Al tener una maquina que no podemos enumerar los hosts desde nuestra maquina atacante, esto puede llegar a ser un problema en la intrusión y el reconocimiento de las redes internas, por lo que este script nos puede ayudar en este inconveniente. Se usaron dos conceptos para realizar el script.
La primera es usada para la enumeración de hosts y la segunda para la enumeración de puertos
Escaneo de Host
Se uso de ping para obtener los hosts activos. Lo normal es usar ping -c 1 10.10.10.10. pero en este caso la ip lo almacenamos en una variable que luego lo incluimos, para luego redirigir el output al /dev/null y no tener outputs durante la ejecución de ping, por ultimo se concadena con un && esto hace referencia a un and en un lenguaje de programación. Entonces si la ejecución del primero no es exitosa(dando referencia a la ejecución de ping) no se imprimirá el mensaje de la segunda parte en la consola.
Para la enumeracion de puertos, vamos uso del recurso de /dev/tcp que aun que en la consola nos dirá que no exista, este si existe (o almenos entiendandolo asi, que esto tiene otra explicación pero ese no es la finalidad de este post)
Si nosotros enviamos un comentario vacio a la ruta /dev/tcp/192.168.98.1/53 con la dirección ip y el puerto, no tendremos ningun ouput si el puerto esta activo, pero podremos ver el codigo de estado. El codigo de estado indica si lo que se ha ejecutado se llevó acabo correctamente, esto nos servira para saber si el puerto esta o no abierto.
Una vez entendido el concepto, podemos agregar 2>/dev/null para redirigir el output del stderr(Los mesajes de los errores). Entonces tendremos las dos formas: