SPAGHETTI HACKER

  1. maze0 - bash
    LOG.003

    Tags
    re
    By AKIRA BASHO il 21 Nov. 2022
     
    0 Comments   74 Views
    .
    b9BQOiv

    080491f6 <main>:
    80491f6: 55 push ebp
    80491f7: 89 e5 mov ebp,esp
    80491f9: 56 push esi
    80491fa: 53 push ebx
    80491fb: 83 ec 20 sub esp,0x20

    prologo della funzione main;sottrae 32 byte allo stack pointer per la memoria allocata per le variabili locali della funzione main

    80491fe: 8b 45 0c mov eax,DWORD PTR [ebp+0xc]
    8049201: 89 45 d8 mov DWORD PTR [ebp-0x28],eax
    8049204: 65 a1 14 00 00 00 mov eax,gs:0x14

    ;Stack Canary Protection

    804920a: 89 45 f4 mov DWORD PTR [ebp-0xc],eax
    804920d: 31 c0 xor eax,eax
    804920f: 6a 14 push 0x14 ; la size, 20 byte a null
    8049211: 6a 00 push 0x0 ; il null byte
    8049213: 8d 45 e0 lea eax,[ebp-0x20]

    ;l'indirizzio della stringa

    8049216: 50 push eax
    8049217: e8 a4 fe ff ff call 80490c0<memset@plt>

    ;memset(&ebp-0x20, 0x0, 20) : setta a 0 tutti e 20 i byte dello stack allocati per le variabili locali

    804921c: 83 c4 0c add esp,0xc
    804921f: 6a 04 push 0x4
    8049221: 68 08 a0 04 08 push 0x804a008
    8049226: e8 a5 fe ff ff call 80490d0 <access@plt>

    ;a questo indirizzo 0x804a008 c'è una stringa;
    ;è un path /tmp/128ecf542a35ac5270a87dc740918404

    804922b: 83 c4 08 add esp,0x8
    804922e: 85 c0 test eax,eax
    8049230: 75 5e jne 8049290 <main+0x9a>

    ;salta nella zona finale

    8049232: e8 49 fe ff ff call 8049080 <geteuid@plt>
    8049237: 89 c6 mov esi,eax
    8049239: e8 42 fe ff ff call 8049080 <geteuid@plt>
    804923e: 89 c3 mov ebx,eax
    8049240: e8 3b fe ff ff call 8049080 <geteuid@plt>

    ;tre chiamate uguali perchè? comunque geteuid ritorna l'uid di maze1 che è l'euid del processo chiamante

    8049245: 56 push esi
    8049246: 53 push ebx
    8049247: 50 push eax
    8049248: e8 f3 fd ff ff call 8049040 <setresuid@plt>

    ;setta maze1

    804924d: 83 c4 0c add esp,0xc
    8049250: 6a 00 push 0x0
    8049252: 68 08 a0 04 08 push 0x804a008
    8049257: e8 44 fe ff ff call 80490a0 <open@plt>

    ;qui apre il file; ho già creato un link simbolico
    ;ln -sf /etc/maze_pass/maze1 \
    ;/tmp/128ecf542a35ac5270a87dc740918404

    804925c: 83 c4 08 add esp,0x8
    804925f: 89 45 dc mov DWORD PTR [ebp-0x24],eax
    8049262: 83 7d dc 00 cmp DWORD PTR [ebp-0x24],0x0
    8049266: 79 07 jns 804926f <main+0x79>

    ;jns - salta se non c'è segno (positivo), salta se è riuscito ad aprire il file;

    8049268: 6a ff push 0xffffffff
    804926a: e8 21 fe ff ff call 8049090 <exit@plt>

    804926f: 6a 13 push 0x13
    8049271: 8d 45 e0 lea eax,[ebp-0x20]
    8049274: 50 push eax
    8049275: ff 75 dc push DWORD PTR [ebp-0x24]
    8049278: e8 e3 fd ff ff call 8049060 <read@plt>

    ;qui legge il file linkato dal link simbolico

    804927d: 83 c4 0c add esp,0xc
    8049280: 6a 13 push 0x13
    8049282: 8d 45 e0 lea eax,[ebp-0x20]
    8049285: 50 push eax
    8049286: 6a 01 push 0x1
    8049288: e8 23 fe ff ff call 80490b0 <write@plt>

    ;qui scrive il contenuto di /etc/maze_pass/maze1 sul terminale
    ;write(int fd, const void *buf, size_t count);

    804928d: 83 c4 0c add esp,0xc
    8049290: b8 00 00 00 00 mov eax,0x0
    8049295: 8b 55 f4 mov edx,DWORD PTR [ebp-0xc]
    8049298: 65 2b 15 14 00 00 00 sub edx,DWORD PTR gs:0x14
    804929f: 74 05 je 80492a6 <main+0xb0>
    80492a1: e8 ca fd ff ff call 8049070 <__stack_chk_fail@plt>

    ;check del canary, e stack fail in caso di violazione

    80492a6: 8d 65 f8 lea esp,[ebp-0x8]
    80492a9: 5b pop ebx
    80492aa: 5e pop esi
    80492ab: 5d pop ebp
    80492ac: c3 ret


    while [ 1 ];
    do
    ln -sf /etc/maze_pass/maze0 /tmp/128ecf542a35ac5270a87dc740918404
    ln -sf /etc/maze_pass/maze1 /tmp/128ecf542a35ac5270a87dc740918404
    done;

    while [ 1 ];
    do
    /maze/maze0
    done;

    ;per risolvere il problema della race condition

    Edited by AKIRA BASHO - 29/10/2023, 18:15
      Share  
     
    .