本文已参与「新人创作礼」活动,一起开启掘金创作之路。
NMAP端口状态解析
open:应用程序在该端口接收TCP连接或者UDP报文
closed:关闭的端口对于nmap也是可访问的,它接收nmap探测报文并作出响应,但没有应用程序在其上监听
filtered:由于包过滤阻止探测报文到达端口,nmap无法确定该端口是否开放,过滤可能来自专业的防火墙设备,路由规则 或者主机上的软件防火墙
unfiltered:未被过滤状态意味着端口可访问,但是nmap无法确定它是开放还是关闭。只有用于映射防火墙规则集的ACK扫描才会把端口分类到这个状态
open|filtered:无法确定端口时开放还是被过滤,开放的端口不响应就是一个例子,没有响应也可能意味着报文过滤器丢弃了探测报文或者它引发的任何反应,UDP,IP协议,FIN,Null等扫描会引起
close|filtered:(关闭或者被过滤的):无法确定端口是关闭的还是被过滤的
Nmap语法及示例
使用NMAP扫描一台服务器
nmap 192.168.68.1
扫描一台机器,查看它打开的端口及详细信息
nmap -v 192.168.68.1
总过有65536个端口,范围 16553565535
扫描一个范围:端口1
nmap -p 1-65535 192.168.68.1
扫描一台机器:查看此服务器开放的端口号和操作系统类型
nmap -sS -O 192.168.68.1
-O:显示出操作系统的类型,每一种操作系统都有一个指纹\
-sS:半开扫描(half-open):因为不必全部打开一个TCP连接,所以这项技术通常称为半开扫描,你可以发出一个TCP同步包(SYN),然后等待回应,如果对方返回syn|ack(响应)包就表示目标端口正在监听,如果返回RST数据包,就表示目标端口没有监听程序;如果收到一个SYN|ACK包,源主机就会马上发出一个RST(复位)数据包断开和目标主机的连接,这实际上由我们的操作系统内核主动完成的
扫描一个网段中所有机器是什么类型的操作系统
nmap -sS -O 192.168.1.0/24
查找一些有特点的ip地址中,开启80端口的服务器
nmap -v -p 80 192.168.68.15-65
如何更隐藏的去扫描,频繁扫描会被屏蔽或者锁定IP地址
--randomize_hosts #随机扫描,对目标主机的顺序随机划分
--scan-delay #延时扫描,单位秒,调整探针之间的延迟
nmap -v --randomize-hosts --scan-delay 3000ms -p 80 192.168.68.62-69
dnmap
用户在服务器端设定好nmap执行的命令,dnmap会自动的分配给客户端进行扫描,并将扫描结果提交给服务器
dnmap有两个可执行文件,分别是dnmap_client和dnmap_server。在进行一个分布式nmap扫描之前,我们可以用dnmap_server来生成一个dnmap的服务端,然后在其他机器用dnmap_client进行连接,然后就能进行分布式的nmap扫描了
这里我们可以使用KALI linux 自带有dnmap
生成证书文件
因为dnmap自带的用于TLS连接的pem文件证书太过久远,必须要重新生成一个pem证书客户端和服务器才能正常连接
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out server.pem