Pokaż wyniki 1 do 8 z 8

Temat: problem z szelkodem

  1. #1
    Zarejestrowany
    Dec 2007
    Postów
    271

    Domyślnie problem z szelkodem

    Kod:
    shellcode db 0x6A, 0x00, 0x6A, 0x00, 0x6A, 0x00, 0x6A, 0x00, 0xFF, 0x15, 0x8C, 0x30, 0x40, 0x00, 0xC3
    nie ukrywam ze nie umiem jeszcze pisac shelkodow, to jest moj pierwszy. Dlatego w dziale newbie.
    push 0
    push 0
    push 0
    push 0
    call [MessageBoxA]
    retn 0


    wiem rowniez ze biblioteki sa ladowane pod stale adresy w pamieci w danym systemie.
    Ale to nie dziala, co zle zrobilem? Proces ma handle ALL_ACCESS, zapisuje sie poprawnie. Ale nie dziala (crash programu).

  2. #2

    Domyślnie

    Cytat Napisał h3x Zobacz post
    Kod:
    shellcode db 0x6A, 0x00, 0x6A, 0x00, 0x6A, 0x00, 0x6A, 0x00, 0xFF, 0x15, 0x8C, 0x30, 0x40, 0x00, 0xC3
    nie ukrywam ze nie umiem jeszcze pisac shelkodow, to jest moj pierwszy. Dlatego w dziale newbie.
    push 0
    push 0
    push 0
    push 0
    call [MessageBoxA]
    retn 0


    wiem rowniez ze biblioteki sa ladowane pod stale adresy w pamieci w danym systemie.
    Ale to nie dziala, co zle zrobilem? Proces ma handle ALL_ACCESS, zapisuje sie poprawnie. Ale nie dziala (crash programu).
    null byte - wyeliminuj z shellcode funkcje przestaja kopiowac po napodkaniu owego bajtu

  3. #3
    Zarejestrowany
    Dec 2007
    Postów
    271

    Domyślnie

    to nie tego wina, nie uzywam go do wysploitowania funkcji str*, tylko writeprocessmemory + remotethread

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

    Domyślnie

    Mnie zawsze uczono że shellcode nie może mieć 0x00 w sobie. Może zrób:
    xor eax, eax
    push eax
    push eax
    push eax
    push eax
    call [MessageBoxA]
    retn eax

    I wiesz co mi się jeszcze wydaje? Nigdy nie programowałem w assemblerze pod windowsa, ale wydaje mi się że MessageBoxA jest ETYKIETĄ, przez co powinno być "Call MessageBoxA" więc według mnie powinno być coś takiego:
    Kod:
    xor eax, eax
    push eax
    push eax
    push eax
    push eax
    call MessageBoxA
    Wiesz co, jestem tego pewien na 99.99%
    Ostatnio edytowane przez Nikow : 01-20-2008 - 08:24

  5. #5
    Zarejestrowany
    Dec 2007
    Postów
    271

    Domyślnie

    widze ze nikt tu nie rozumie o co mi chodzi... prosze zamknac temat, moze dostane odpowiedz gdzie indziej.

    ps:

    MessageBoxA = adres 4 bajtow alokowanych statycznie
    [MessageBoxA] = dword [MessageBoxA] = 4 pierwsze bajty pod tym adresem


    Mnie zawsze uczono że shellcode nie może mieć 0x00 w sobie.
    a szkoda ze nie uczono cie dlaczego.
    http://pl.wikipedia.org/wiki/String
    Ostatnio edytowane przez h3x : 01-20-2008 - 08:57

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

    Domyślnie

    Wiem dlaczego, jeśli o to Ci chodzi. Tylko nie wiem skąd mamy wiedzieć dlaczego Ci program nie działa widząc jego jedną procedurę. Nawet nie powiedziałeś jaki program Ci się wywala, jak wstrzykujesz shellcode. Znam też różnicę między podaniem czegoś w '[' i ']' a bez tego. Skąd mamy wiedzieć co jest nie tak, jak nawet nie wiemy czy jesteś w jakiejś procedurze? Jeśli nie to od razu widać. Po drugie wydaje mi się że źle wywołujesz to okno, struktura MessageBox jest następująca:
    Kod:
    int MessageBox(      
        HWND hWnd,
        LPCTSTR lpText,
        LPCTSTR lpCaption,
        UINT uType
    );
    Szczegółowe info znajdziesz tu >> http://msdn2.microsoft.com/en-us/library/ms645505.aspx <<
    CoreDump i "Objawy crashu"(mesgi itd.) by się przydały.

  7. #7

    Domyślnie

    Nigdy nie będzie ci działać
    Wiesz dlaczego ?
    Bo ty sam tego nie kumasz i zaczynasz od dupy strony całą swoją przygode.
    Najpierw chcesz być haksiorem a potem programistom co?

    Pokaż cały kod i przestań być zarozumiałym gówniarzem to
    może ci ktoś pomoże
    Dlaczego ktoś ma wiedzieć czemu twój własny kod nie działa
    i to lepiej od ciebie kiedy ty do tego wszystkiego jeszcze jakiegoś focha strzelasz
    Człowieku litości
    Ostatnio edytowane przez naichniach : 01-20-2008 - 13:12
    Dlaczego wszystkie piosenki są o sexie ,miłości
    i innym pozytywnym gównie
    Nie mogły by być o czystym bólu ,nienawiści i frustracji i innych prawdach których więcej niż mniej ? ......... Ten świat to plastikowe ,fałszywe gówno
    nie mające nic wspólengo z moją rzeczywistością.
    Mtv to nie mój świat
    (tak jestem nie dojrzały ,mam kompelksy ..... i wiecie co? i chuj)

  8. #8
    Zarejestrowany
    Dec 2007
    Postów
    271

    Domyślnie

    wiem ze blad na 100% tkwi w adresie messageboxa z shellkodu. No ale nikt z was nie umie mi pomoc, tylko pisze ot.

    Kod:
    format pe console
    section '.code' code readable executable
    push 4016 ; Nawet nie pytaj.... pid jest dobry.
    push 0
    push 0x001F0FFF
    call [OpenProcess]
    mov ebx, eax
    push 0x00000040
    push 0x00001000
    push 32
    push 0
    push ebx
    call [VirtualAllocEx]
    mov esi, eax
    push 0
    push 15
    push shellcode
    push esi
    push ebx
    call [WriteProcessMemory]
    push 0
    push 0
    push 0
    push esi
    push 0
    push 0
    push ebx
    call [CreateRemoteThread]; zwraca != -1, wiec funkcje pozostale tez sa dobre.
    retn
    shellcode db 0x6A,0x00,0x6A,0x00,0x6A,0x00,0x6A,0x00,0xFF,0x15,0x70,0x30,0x40,0x00,0xC3
    section '.idata' import data readable
    dd 0,0,0,RVA kernel32_name,RVA kernel32_table
    dd 5 dup 0
    kernel32_table:
    OpenProcess dd RVA _OpenProcess
    WriteProcessMemory dd RVA _WriteProcessMemory
    VirtualAllocEx dd RVA _VirtualAllocEx
    CreateRemoteThread dd RVA _CreateRemoteThread
    dd 0
    kernel32_name db 'kernel32.dll',0
    _OpenProcess db 0,0,'OpenProcess',0
    _WriteProcessMemory db 0,0,'WriteProcessMemory',0
    _VirtualAllocEx db 0,0,'VirtualAllocEx',0
    _CreateRemoteThread db 0,0,'CreateRemoteThread',0

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