我想使用NMAP检测所有运行Telnet和SSH的主机,即使它们没有使用默认端口。然后我想将NMAP的输出发送到一个文件,该文件定义了NCRACK要使用的非标准服务 我使用-sV开关运行NMAP以检测版本并得到类似的内容:
Nmap scan report for 192.168.1.1
Host is up (0.0019s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh Dropbear sshd 2015.67 (protocol 2.0)
23/tcp open telnet?
Nmap scan report for 192.168.1.133
Host is up (0.0048s latency).
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
2323/tcp open telnet Linux telnetd
4444/tcp open ssh (protocol 2.0)
我需要操纵此输出来创建这样的文件:
ssh://192.168.1.1:22
ssh://192.168.1.133:4444
telnet://192.168.1.1:23
telnet://192.168.1.133:2323
据我所知,使用NMAP XML输出和xmllint会有所帮助,但之后我就卡住了。
提前感谢您的帮助。
答案 0 :(得分:0)
nmap -sv | awk '/Nmap scan/ { ip=$5 } /ssh/ { split($1,arg,"/");print "ssh://"ip":"arg[1] } /telnet/ { split($1,arg,"/");print "telnet://"ip":"arg[1] }'
检查“Nmap scan”的模式匹配,然后将ip地址存储在变量ip中。然后检查ssh或telnet的模式匹配,将第一个以空格分隔的数据分成数组arg。打印arg的第一个元素以及ip地址和telnet或ssh。
输出:
ssh://192.168.1.1:22
telnet://192.168.1.1:23
telnet://192.168.1.133:2323
ssh://192.168.1.133:4444
答案 1 :(得分:0)
您正在做太多工作:Ncrack can already parse Nmap's XML format直接处理,根据-sV
检测到的服务名称处理每个开放端口。
nmap -oX scan.xml -sV 192.168.1.0/24
ncrack -iX scan.xml