nmap原理与使用

kali的命令行中可以直接使用 nmap 命令,打开一个「终端」,输入 nmap 后回车,可以看到 nmap 的版本,证明 nmap 可用。

一、端口扫描

扫描主机的「开放端口」,在nmap后面直接跟主机IP(默认扫描1000个端口)

nmap 192.168.31.180

从上图可以看到:它用1.58秒扫描了1000个端口,其中991个端口关闭,结果中列出的9个端口就是开放的端口。

1. 指定端口

扫描「指定端口」,使用 -p 参数,可以一次扫描单个端口、多个端口、或扫描一个范围的端口

nmap 192.168.31.180 -p 80
nmap 192.168.31.180 -p 1-80
nmap 192.168.31.180 -p 80,3389,22,21
nmap 192.168.31.180 -p 1-65535
nmap 192.168.31.180 -p-    # -p- 等价于 -p 1-65535

https://zhuanlan.zhihu.com/p/585377081?utm_id=0

没写完

原理

关于主机扫描默认的-sP选项, Nmap官方指南是这么介绍的:

该选项告诉Nmap仅仅进行ping 扫描(主机发现),然后打印出对扫描做出响应的那些主机。没有进一步的测试(如端口扫描或者操作系统探测)。这比列表扫描更积极,常常用于和列表扫描相同的目的。它可以得到些许目标网络的信息而不被特别注意到。对于攻击者来说,了解多少主机正在运行比列表扫描提供的一列IP 和主机名往往更有价值。

-sP 选项在默认情况下, 发送一个ICMP 回声请求和一个TCP 报文到80端口。如果非特权用户执行,就发送一个SYN 报文(用connect()系统调用)到目标机的80端口。

笔者在实践中,发现指南中的描述和实际的抓包结果并不一致,下面举例说明。


 

先来说一个ping不通的主机,打开CMD,运行如下命令:

nmap -sP 1.2.3.4

使用wireshark抓包如下图所示,根据抓取到的流量,可以分析出实际上我们向目标主机发送了四种类型的数据包:

1、ICMP 回声请求

2、到目标443端口的TCP SYN报文

3、到目标80端口的TCP ACK报文

4、ICMP 时间戳请求

从抓包情况看,只有去主机1.2.3.4的IP包,没有从主机1.2.3.4传回的IP包,所以结论是没有扫描到活跃主机。


 

下面再看一个能ping通的例子,打开CMD,运行如下命令:

nmap -sP 1.1.1.1

使用wireshark抓包如下图所示,根据抓取到的流量,可以看到同样是向目标主机发送四种类型的数据包,不同的是这次目标主机1.1.1.1在TCP 80端口回送了RST包,在TCP 443端口回送了SYN,ACK包,这说明目标主机1.1.1.1在443端口处于开放状态,所以自然目标主机处于活跃状态。

总结一下,当我们使用Nmap进行网络主机扫描时,会发送四种类型的数据给目标主机,只要收到一个目标主机的回复包,即可证明目标主机处于活跃状态,这比官方指南上说明的只发送两种类型的数据包要复杂的多,并且80端口也不是发送SYN包,而是ACK包,依笔者揣测,这样改进应该是为了更好的应对防火墙的拦截规则。

TCP三次握手中SYN,ACK,seq ack的含义 - 程序员大本营

三挥手与四握手

 

三个渗透靶场看完

简历弄完

三个漏洞文章写完

专利写完盖章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值