Uso de netcat para realizar conexiones
5/6/20253 min read


Bien, en esta sección como ya sabemos deberemos acceder al usuario bandit14 con su respectiva contraseña como vemos en la imagen, para poder acceder al siguiente nivel.
sshpass -p 'MU4VWeTyJk8ROof1qqmcBPaLh7lDCPvS' ssh bandit14@bandit.labs.overthewire.org -p 2220


Y volvemos a aplicar TERM=xterm para poder limpiar la terminal con CTRL + L sin problema


Ahora, como bien nos indica la página de bandit, vemos que nos indica que para el nivel 14, la contraseña se puede recuperar enviando la contraseña del nivel actual al puerto 30000 de localhost. Pues vamos a por ello...


Actualmente, no deberíamos preocuparnos por saber que es un puerto. Esto lo explicaré más adelante, pero simplemente deciros que, todo funciona por puertos. El puerto TCP/IP, UDP, SSH, HTTP, HTTPS... Y cada respectivo puerto tiene un numero asignado. Como puede ser el puerto 30000. El puerto 3000 se usa en el desarrollo de aplicaciones con frameworks como Node. js y React. En total hay 65535 puertos. Y ¿Qué es NetCat? Netcat es una herramienta de red que permite a través de intérprete de comandos y con una sintaxis sencilla abrir puertos TCP/UDP en un HOST, asociar una shell a un puerto en concreto y forzar conexiones UDP/TCP.


$ nc localhost 30000 - Como vemos netcat se utiliza de la siguiente manera normalmente. Aplicando nc la IP y el puerto. Como en la página de bandit nos indica que la contraseña se encuentra dentro de la misma máquina ( localhost ) Y por el puerto 30000 Por lo tanto como vemos en el primer comando, escribimos cualquier cosa. Y nos indica "contraseña incorrecta". En cambio si aplicamos la contraseña de bandit14 nos proporciona la contraseña para bandit15.
8xCjnmgoKbGLhHFAZlGE5Tmu4M2tKJQo


Llegados a este punto, podemos ver los puertos abiertos en nuestro sistema local con el comando $ netstat -nat Como vemos en la imagen, y nos consta que el puerto que tenemos abierto es el puerto TCP 53. En el caso de que no tuviésemos instalado netstat podemos usar el comando $ ss -nltp Que nos mostrará lo mismo, los puertos abiertos y vemos que tenemos el puerto TCP 53.


Por ejemplo, si volvemos a activar el protocolo sshd, volvemos a hacer un $ netstat -nat que se nos activa el puerto 22


También si comprobamos el archivo /proc/net/tcp En el apartado donde pone local_address podemos ver los siguientes números: 0035 y 0016. Esto también son puertos, lo único que está en hexadecimal.


Y si utilizamos python3 podemos aplicar el comando 0x + el numero en hexadecimal para indicarle que queremos saber que numero corresponde en decimal 0035 y 0016. Y como podemos comprobar corresponden a 0x0016 = 22 y 0x0035 = 53. Que serían los puertos que tenemos abiertos.