Czy da sie zrobic shellcode ktory wywoluje funkcje system z argsami a przy okazji zeby byl maly
A jesli tak to jak![]()
Czy da sie zrobic shellcode ktory wywoluje funkcje system z argsami a przy okazji zeby byl maly
A jesli tak to jak![]()
Da sie... mozna znalezc adres funkcji system albo wywolac cos innego co jest standardowo dostepne. Oczywiscie dochodzi zabawa z kanarkami na stosie ale to tez da sie obejsc dosc latwo. Jesli chcesz odpalac system() to moze zainteresuj sie "return to libc" :P
ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)
Shellcode z funkcją systemW shellcode możesz wstawiać co si się podoba, ogranicza Cię ograniczony rozmiar i przede wszystkim wyboraźnia. Zwykle w systemach unixowych jest to execve wywołujące powłokę.
Return to libc - technika omijania zabezpieczeń typu non-executable-stack. Shellcode jest tu niepotrzebny. Kopia EIP jest nadpisywana adresem funkcji system() (lub innej), i do tego na stos są kładzione argumenty funkcji.
Napisz dokładniej o co Ci chodzi.
Na twoje pytanie na tym etapie mogę Ci odpowiedzić:
Nie wiem czy dobrze, ponieważ bawiłem się tym dawno.Kod:call name run: call <adres do system> name: call run db "argumenty dla system"
Ostatnio edytowane przez rafal44 : 02-22-2009 - 20:22
"a imię jego będzie czterdzieści i cztery"
A. Mickiewicz Dziady cz. III
znalazlem takie cos:
Address Publics by Name
0001:00005C9C System
Z devcpp.
Czy wystarczy ze uzyje takiego adresu i kompilne nasmem
A tak w ogole czy ta funkcja czegos nie zwraca
Bo jakzwraca to chyba jest jakas jeszcze zabawa![]()
O tworzeniu shellcodów możesz sobie poczytać w książce Hacking. Sztuka penetracji. Tam wszystko jest dobrze opisane.
Adres funkcji system zależy, jeżeli dobrze pamiętam, od wersji kompilatora. W twoim przypadku jest to gcc z Dev-C++. Adres każdej funkcji można znaleźć w prosty sposób: w katalogu głównym Deva jest podkatalog bin a w nim pomocnicze narzędzie nm. Uruchamiasz nm, jako argument podajesz nazwę pliku wykonywalnego i widzisz adresu wszystkich funkcji łącznie z ich nazwami.
Sprawdzałem u siebie, funkcja system miała adres 0x00401800, co utrudnia sprawę, ponieważ adres zawiera dwa bajty zerowe.
Radzę ci zajrzeć do tej książki, tam poznasz odpowiedzi na dręczące Cię pytania.
"a imię jego będzie czterdzieści i cztery"
A. Mickiewicz Dziady cz. III
Mam pierwsze wydanie XD.
Wiem cos o stosie.
Ale w ogole tam nie ma nic o kompilowaniu programow z funkcjami...