Bash - Analisando a saída XML do nmap

1

Estou tentando escrever um script bash que levará o ID da porta que recupero de um comando nmap e, em seguida, utilizarei essas portas para enviar um arquivo usando o netcat. Então eu tenho um conhecimento básico usando este link,

Como posso usar um script bash para executar o nmap e capturar o IP e o nome do host?

e man page do nmap. Como resultado, criei o seguinte script:

#! /bin/bash

FILE="input.txt"
sudo nmap -p1-20000 -sS 192.168.122.35 -oG - | awk '$4=="Status:" && $5=="Up" {cat $FILE | nc $2 $6}'

Então, o problema que estou tendo tem a ver com os $ 6. Supõe-se que sejam os números de porta recuperados do comando nmap, mas na verdade não são nada. Eu queria saber se vocês poderiam me ajudar a recuperar os códigos de porta.

    
por soccerman stan 05.03.2015 / 01:30

1 resposta

0

Supondo que você esteja tentando enviar o arquivo para todas as portas abertas em um host, aqui está um script que deve funcionar para você:

#!/bin/bash

HOST=192.168.122.35
FILE="input.txt"

nmap --open -n -p1-20000 $HOST | sed -rn 's/^([0-9]+)\/tcp.*open.*//p' | 
    while read port; do nc $HOST $port < "$FILE"; done
    
por 05.03.2015 / 10:57