- This topic has 20 hozzászólás, 5 résztvevő, and was last updated 17 years, 7 months telt el by
zoltan22.
-
SzerzőBejegyzés
-
2007-11-15-16:31 #2135661
Ha mar megint elovettuk a temat, akkor probalgattam egy kicsit a gepemen a dolgot. Eredmenyek:
Code:somebody@computer:/$ cd /tmp
somebody@computer:/tmp$ touch libc.so.6
somebody@computer:/tmp$ chmod +x libc.so.6
somebody@computer:/tmp$ LD_LIBRARY_PATH=/tmp ls
ls: error while loading shared libraries: /tmp/libc.so.6: file too short
somebody@computer:/tmp$ LD_LIBRARY_PATH=/tmp passwd
Changing password for somebody.
A (jelenlegi) UNIX jelszó:
passwd: Hitelesítési hiba
passwd: password unchanged
somebody@computer:/tmp$Mintha nem venne figyelembe az LD_LIBRARY_PATH-ot. Valakinek sikerult betoltenie valahogy egy hamisitott libc-t peldaul a passwd-hoz?
2007-11-15-16:31 #2135662Ha mar megint elovettuk a temat, akkor probalgattam egy kicsit a gepemen a dolgot. Eredmenyek:
Code:somebody@computer:/$ cd /tmp
somebody@computer:/tmp$ touch libc.so.6
somebody@computer:/tmp$ chmod +x libc.so.6
somebody@computer:/tmp$ LD_LIBRARY_PATH=/tmp ls
ls: error while loading shared libraries: /tmp/libc.so.6: file too short
somebody@computer:/tmp$ LD_LIBRARY_PATH=/tmp passwd
Changing password for somebody.
A (jelenlegi) UNIX jelszó:
passwd: Hitelesítési hiba
passwd: password unchanged
somebody@computer:/tmp$Mintha nem venne figyelembe az LD_LIBRARY_PATH-ot. Valakinek sikerult betoltenie valahogy egy hamisitott libc-t peldaul a passwd-hoz?
2007-11-15-16:43 #2135663Hát, valaminek a libc.so.6-ban lennie kellene!
Nálam:Code:$ touch libc.so.6
$ LD_LIBRARY_PATH=. passwd
passwd: error while loading shared libraries: ./libc.so.6: file too short2007-11-15-16:43 #2135664Hát, valaminek a libc.so.6-ban lennie kellene!
Nálam:Code:$ touch libc.so.6
$ LD_LIBRARY_PATH=. passwd
passwd: error while loading shared libraries: ./libc.so.6: file too short2007-11-15-19:47 #2135665Ez erdekes. Tehat nalad a setuid programok mas libc-t is betolthetnek, nalam meg nem.
uzsolt wrote:Hát, valaminek a libc.so.6-ban lennie kellene!Hogy mit tegyunk a libc-be?
Mondjuk egy „gyari” gnu libc-be beleirnek a glibc-2.3.3/sysdeps/generic/libc-start.c a main meghivasa ele valamit (tesztnek egy printf megtenne…) majd azt leforgatnam. Itt egy link a fajlrol. A 157., esetleg 181. sorra pakolnam a valtoztatasokat.2007-11-15-19:47 #2135666Ez erdekes. Tehat nalad a setuid programok mas libc-t is betolthetnek, nalam meg nem.
uzsolt wrote:Hát, valaminek a libc.so.6-ban lennie kellene!Hogy mit tegyunk a libc-be?
Mondjuk egy „gyari” gnu libc-be beleirnek a glibc-2.3.3/sysdeps/generic/libc-start.c a main meghivasa ele valamit (tesztnek egy printf megtenne…) majd azt leforgatnam. Itt egy link a fajlrol. A 157., esetleg 181. sorra pakolnam a valtoztatasokat.2007-11-15-20:32 #2135667Ne haragudj, de ezt nem fogom megcsinálni… A glibc frissítésekről rossz emlékeim vannak.
De lehetőségek azért még vannak:Code:$ readelf -d /bin/passwd | grep NEEDED
0x00000001 (NEEDED) Shared library: [libshadow.so.0]
0x00000001 (NEEDED) Shared library: [libcrypt.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.6]Szóval ha nagyon érdekel, akkor a shadow-val próbálkozhatok, ha megmondod, mit, hova írjak be (nem vagyok nagy c-s) – 4.0.15-ös van telepítve.
2007-11-15-20:32 #2135668Ne haragudj, de ezt nem fogom megcsinálni… A glibc frissítésekről rossz emlékeim vannak.
De lehetőségek azért még vannak:Code:$ readelf -d /bin/passwd | grep NEEDED
0x00000001 (NEEDED) Shared library: [libshadow.so.0]
0x00000001 (NEEDED) Shared library: [libcrypt.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.6]Szóval ha nagyon érdekel, akkor a shadow-val próbálkozhatok, ha megmondod, mit, hova írjak be (nem vagyok nagy c-s) – 4.0.15-ös van telepítve.
2007-11-15-20:58 #2135669uzsolt wrote:Ne haragudj, de ezt nem fogom megcsinálni… A glibc frissítésekről rossz emlékeim vannak.Libc frissitesre senkit se biztatnek 🙂
A dologban az igazan erdekes, hogy a _kizarolag_ felhasznalokent meg lehessen csinalni (biztonsagrol beszelunk :)). A dolgot ugy kepzelem, hogy:
1. libc forras letolt, kicsomagol
2. belepiszkal
3. lefordit (de nem telepit!)
Ekkor keletkezik a kicsomagolt forrasban valahol egy libc.so.6 fajl. Az LD_LIBRARY_PATH-et beallitva az uj libc.so.6 helyere nehany programot el lehetne inditani. Ha a dolog mukodik, akkor az adott programok indulas elott kiirnak egy uzenetet.Ha van kedved, kiprobalhatod, de a setuid-os programokkal legy ovatos. 🙂
2007-11-15-20:58 #2135670uzsolt wrote:Ne haragudj, de ezt nem fogom megcsinálni… A glibc frissítésekről rossz emlékeim vannak.Libc frissitesre senkit se biztatnek 🙂
A dologban az igazan erdekes, hogy a _kizarolag_ felhasznalokent meg lehessen csinalni (biztonsagrol beszelunk :)). A dolgot ugy kepzelem, hogy:
1. libc forras letolt, kicsomagol
2. belepiszkal
3. lefordit (de nem telepit!)
Ekkor keletkezik a kicsomagolt forrasban valahol egy libc.so.6 fajl. Az LD_LIBRARY_PATH-et beallitva az uj libc.so.6 helyere nehany programot el lehetne inditani. Ha a dolog mukodik, akkor az adott programok indulas elott kiirnak egy uzenetet.Ha van kedved, kiprobalhatod, de a setuid-os programokkal legy ovatos. 🙂
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz