[megoldva] Obfuscated Perl

Üdv!

Közben megfejtve:
http://hup.hu/node/129446#comment-1682959

Adott a következő perl script:
http://74.114.204.122/CFIDE/meep
(egyébként egy zimbra exploit része)

Némi google és olvasgatás után azt sikerült megállapítanom róla, hogy valószínűleg ACME:EyeDrops-al van obfuscatelve.
Nagyon érdekelne azonban, hogy mit csinál ez a script.
Mivel tudomásom szerint ezt így visszafelé kihajtogatni nagyon nehéz lenne, arra gondoltam, hogy csinálok egy virtuális gépet a cél rendszerrel, majd egyszerűen lefuttatom rajta és közben figyelem mi történik.
A perlhez azonban abszolút nem értek, így szeretnék segítséget kérni, hogy milyen debuggerrel és hogyan a legcélszerűbb végigkövetni, hogy egy script mit csinál (pl. milyen fájlokhoz nyúl, mik jönnek létre, stb.)

Hozzászólások

OMG, ez gyönyörű, pont jól jellemzi, mennyire elborult dolgok vannak Perlben :). Szerintem ezt ne próbáld meg futtatni, vissza kellene fejteni.

Ezek az obfuszkálások elég alap dolgokra építenek. JS-ről olvastam hasonlót (ebben azért kevesebb a kriksz-kraksz). Nézd meg, se szám, se betű nincs a kimenetben, pedig az minden értelmes programba kell. Ezért alapvető nyelvi elemekből felépítik a számokat, abból a betűket, és így tovább. Ha megvan, hogy ezt hogyan csinálja, akkor egy text editorban search-and-replace a visszafejtés nagyjából. Persze mindez csak leírva egyszerű...

--

Amíg nem a perlt akarod debuggolni, csak arra vagy kíváncsi, hogy milyen fájlokat piszkál, addig első menetben:
strace -eopen -f ./perlprogram.pl

Ha egyéb rendszerhívásokra is kíváncsi vagy, azt a -eopen nélkül futtatva kapod meg, így "valamivel" hosszabb lesz a listád.
Bővebben man strace.
De ha ennyire nem vagy képben, nem látok rá sok esélyt, hogy bármit tudj kezdeni az így szerzett infókkal.

köszönöm, ezt a utilt nem ismertem eddig. Kipróbálom!

Közben megtaláltam, hogy van egy -MO=Deparse funkciója az interpereternek, ami ezt az outputot adja a fenti scriptre:
http://paste2.org/wtgOZeGC
Bár a karakterliterálok még mindig hexában vannak, de eddig irc botnak néz ki :)

Kimentette valaki? Csak mert a linkelt oldalon ma'r "not found"...

köszönöm a segítséget, sikerült visszahajtogatni:
Az eredeti script az utókornak:
http://paste2.org/B4K0LHb5

Deobfuscatelve:
http://paste2.org/pE4ZEUIy

összesen 10 percet töltöttem az olvasgatásával, de én úgy értelmeztem, hogy ez egy irc bot amit parancsok segítségével arra lehet rávenni, hogy a cél rendszerről más ip címeket dosoljon.
Esetleg ha valaki ráér megerősíthetne/cáfolhatna.