Buenas noches necesito crear un script que realice lo siguiente
Desarrollar un shell script que determine las interfaces de red dentro del sistema y obtenga la dirección IP de cada una de estas.
Por cada interfaz lleve a cabo el siguiente procedimiento:
Realice un barrido de las direcciones IP de acuerdo al identificador de Red y Subred de cada interfaz.
En el caso de determinar que cierta dirección IP se encuentre activa proceder a realizar un barrido en los puertos para tal dirección IP mediante el siguiente procedimiento:
Utilice el comando telnet IP PORT, para desarrollar la prueba de cada puerto.
En caso de no existir una aplicación en tal puerto, se debe indicar tal situación
En la situación en la que un puerto se encuentre activo y la aplicación telnet se bloque en espera de una interacción del usuario. Se deberá concluir con dicha aplica aplicación mediante un comando kill.
Se debe de indicar mediante un mensaje a pantalla cuando ocurra una aplicación activa en dicho puerto.
creo que la primera parte lo puedo hacer con el comando iwconfig aunque no tengo idea de como realizar el resto.
Agradezco que lo hayan leido y espero que alguien me pueda explicar.
gracias

Aquí esta, necesita tener
Aquí esta, necesita tener instalado `fping' y `ipcalc'. Importante, esta testeado en debian, en los demás sistemas no se como responderá.
Pedía que se escanearan todos los puertos, yo le he puesto que escanee solo el 23 que es el de telnet, si quiere escanear más meta un bucle pero ya le digo que tardará mucho.
#!/bin/bash # Copyright (C) 2012 pwned # Bajo GPLv3 o posterior http://www.gnu.org/licenses/ # Autor: pwned (pwned[at]tormail[dot]com) declare -a interfaz declare -a ip declare -a netmask declare -a activa declare -a cidr # Sacamos las interfaces levantadas. interfaz_all=`/sbin/ifconfig -s | sed -n '2,$p' | grep --invert-match -w "lo" | awk '{printf $1" "}'` interfaz=($interfaz_all) # Imprimimos las interfaces encontradas en número y nombre. echo "[*] Interfaces: ${#interfaz[*]} (${interfaz[*]})" total=${#interfaz[*]} # Sacamos la IP privada de cada una, en caso de tener IP muestra que no esta en red dicha interfaz. # si esta en red, se saca también la máscara de red. for ((i=0; i<total; i++ )); do ip[${i}]=`/sbin/ifconfig ${interfaz[${i}]} | grep "inet addr" | awk '{printf $2}' | cut --delimiter=':' --fields=2` if [[ "${ip[${i}]}" == "" ]]; then echo "La interfaz ${interfaz[${i}]} no esta en red." else activa[${i}]=$i # Nos quedamos con las interfaces en red. netmask[${i}]=`/sbin/ifconfig ${interfaz[${i}]} | grep "Mask" | awk -F':' '{printf $NF}'` fi done echo # Imprimimos las interfaces activas, junto a su IP y máscara. echo "[*] Interfaces activas: ${#activa[*]}" for i in ${activa[*]}; do echo "${interfaz[${i}]} ${ip[${i}]} ${netmask[${i}]}" done echo # Sacamos la subnet de cada interfaz activa con notación CIDR para el escáner posterior. for i in ${activa[*]}; do cidr[${i}]=`ipcalc ${ip[${i}]} ${netmask[${i}]} | grep -w "Network:" | awk '{printf $2}'` done # Imprimimos lo nuevos la interfaz con el nuevo la subnet. echo "[*] Notación CIDR:" for i in ${activa[*]}; do echo "${interfaz[${i}]} ${cidr[${i}]}" done echo # Buscamos host vivos en la red de cada interfaz, y realizamos las operaciones. for i in ${activa[*]}; do echo "[*] Buscando targets en la red ${cidr[${i}]} (${interfaz[${i}]})" target_all=`fping -a -g ${cidr[${i}]} 2> /dev/null | awk '{printf $1"\n"}'` echo -e "${target_all}\n" # Mostramos los host vivos. echo -e "[*] Escaneando..." echo "$target_all" | while read line; do # Vamos escaneando puertos para cada puerto, y mostrando resultados. echo -ne "\035" | telnet $line 23 &> /dev/null # Solo en el puerto 23. if [[ $? -eq 0 ]]; then echo "El target $line tiene el puerto 23 activo." else echo "El target $line NO tiene el puerto 23 activo." fi done echo doneUn ejemplo de ejecución: