SFX - trochę inaczej

hxv

Były Moderator
Dołączył
Sierpień 9, 2006
Posty
797
Dobra, tutków o SFX było już parę ale ten jest inny. Czemu? Otóż nasz plik będzie zabezpieczony hasłem i dzięki drobnej modyfikacji exe'ca hasło będzie 'samo się wpisywać' (nie będzie żadnych okienek itd.). Dzięki temu mamy zmniejszoną wykrywalność (większość AV toleruje spakowane pliki które są zabezpieczone hasłem), mniejszy rozmiar (dzięki kompresji) oraz dyskrecje (nic się nie wyświetli).

Co będzie potrzebne: OllyDbg, WinRAR, serwer trojana.

Ok, zaczynamy od jakiegoś trojana. Ja biorę Hamtaro, tworzę serwer i wysyłam na virustotal (i tak już jest wykrywalny więc nic to nie zaszkodzi).
Wynik: 26/32 (81.25%)... Może być lepiej
<


Odpalamy winrar i dodajemy serwer do archiwum:

84211892qe4.jpg

65459362cq5.jpg

90115582ba6.jpg

44499285ka4.gif


Ważne żeby hasło brzmiało 'a', nic więcej nie jest potrzebne (AV nie będzie tego łamał) a przy modyfikacji wg. tego tutka jest to ważny 'szczegół'
<


Wysyłamy plik do skanu, Wynik: 1/32 (3.13%). Nieźle, przyczepił się NOD że plik jest zabezpieczony hasłem (i słusznie).
Mamy więc najłatwiejszą część za sobą. Teram musimy się pozbyć okienka:
92328738el0.gif

Nie jest to wcale takie trudne. Uruchamiamy OllyDbg i wczytujemy nasz plik. Po załadowaniu naciskamy F9 i chwilkę czekamy.
Teraz troszkę na temat tego sposobu. Przed wyświetleniem komunikatu z prośbą o hasło program sprawdza czy hasło nie jest wpisane (a dokładniej czy w pewnym miejscu w pamięci programu nie ma ciągu znaków). Wystarczy więc nadpisać ten fragment pamięci przed wyświetleniem okienka.
Do dzieła, wszystko powinno wyglądać mniej więcej tak:
51014911nb6.gif

Naciskamy enter aby przejść do dalszej części programu (tylko w kodzie, program ma być zatrzymany). Widzimy coś takiego:
94153174pu0.gif

To są w tym momencie najbardziej istotne instrukcje. Zjeżdżamy na sam dół kodu następnie powoli do góry aż trafimy na 'zielone linie'
<
:
52661330jt0.gif

Szare linijki to instrukcje które nie są wykonywane więc można je (w miarę) bezpieczne nadpisywać.
To jest adres do którego musimy przeskoczyć i nadpisać w nim nasze instrukcje a następnie wrócić. Cofamy się więc do wcześniejszego fragmentu (004038A4) i zaznaczamy instrukcję PUSH EBP a następnie naciskamy spację w celu edycji.
W okienku które się pojawi wpisujemy JMP 00413D90 (uwaga, w każdym pliku adres może być inny, jest to ten który wybraliśmy z końca kodu). Naciskamy enter aby zatwierdzić modyfikacje, klikamy na nowo napisaną instrukcję i ponownie enter aby przeskoczyć do wybranego miejsca.
Jak zauważyliście wcześniej (albo i nie) zostały nadpisane trzy instrukcje. Wypadałoby je odtworzyć. Naciskamy spację i przepisujemy je:
Kod:
PUSH EBP
MOV EBP, ESP
ADD ESP, -3C
Teraz musimy nadpisać fragment pamięci z kodem, wpisujemy więc:
Kod:
MOV BYTE PTR DS:[4150E0], 61
JMP 004038AA
Pierwsza instrukcja powoduje przeniesienie w miejsce gdzie powinno znajdować się hasło litery a (a dokładniej 0x61 czyli numeru ascii litery a).
Druga powoduje skok do poprzedniego fragmentu kody w celu kontynuacji. Powinno to wyglądać jakoś tak:
1111gf9.gif

Teraz wystarczy zapisać plik (drugi przycisk myszy na kodzie, Copy to executable -> All modifications -> Copy All
Zamykamy okienko które wyskoczy
10oy8.gif

klikamy na 'Tak' i zapisujemy plik pod nową nazwą. Jeśli wszystko zrobiliście jak należy po uruchomieniu zmodyfikowanego pliku nic nie powinno wyskoczyć a trojan się uruchomi. Tak samo wynik skanu nie powinien ulec zmianie. Po zapisaniu plik może być trochę większy ale dzięki kompresji i tak zajmuje mniej niż oryginał. Możemy zmieniać ikonki itd.

I na koniec parę uwag: jak nie rozumiesz to się nie baw. Tak samo jak nie możesz znaleźć programu/skonfigurować go. Tutek należy (chyba) do tych trudniejszych więc nie będę nikogo za rękę prowadził jak sobie nie będzie w stanie poradzić.
Można to było zrobić inaczej więc jak ktoś zna inny sposób to niech się pochwali [;

Prosiłbym o przeniesienie (o ile się nada)
smile.gif
 
Do góry Bottom