有一天,我在看别人的面经
突然就注意到,面试官有这么提问
你能告诉我 nmap 是怎么进行端口检测的吗?你又会用 nmap 中哪些指令,去做什么?
后面的问题似乎有点思路,但是前面的问题,似乎卡住了.
以我的个人感觉,应该是一个个端口发送一个类似检测的包,再检测是否有反馈,来判断该端口是否开放
那么又应该如何验证我的想法呢?
当我对着电脑桌面发呆的时候,我注意到了桌面上的 Wireshark , 前几天看了一本关于 Wireshark 的书,决定实践一下.
环境说明:
-
WSL kali Linux(里面有nmap)
-
Wireshark
打开 Wireshark 找到与外网连接的接口,对这个接口进行监听即可
比方说我现在连的是 WLAN ,那么就点击 WLAN 即可
进入后,就开始监听
然后进入 kali Linux
利用 nmap 对这个博客进行简单的扫描吧(我扫我自己应该没事)
- 图上只是进行了单主机扫描,同样也可进行 IP 范围探测.
然后让我们打开 wireshark 看一下 nmap 发了什么包, 探测的主机又向我们发了什么包
从框里可以看见我们发了4个包,向目标主机.检测该主机是否存在.
其中有两个 ICMP 包是来类似于ping检测, TCP 包则是向目标服务器发送类似连接请求,请求的端口是常见的 80 443 端口
如果说这四个请求中有一个返回结果
那么 nmap 就会认为这个主机是存在的
那么接下来 nmap 就会对常见端口发送连接请求
其中灰色的是请求失败
而绿色是请求成功,并且有返回的结果,那么就说明这个端口是存在的
换个角度想
如果说一开这个主机是不存在的,那么又会进行哪些操作呢?
我以这个 192.168.31.22 IP为例吧,我学校内网的 IP 是100 开头,应该不会检测到
我们还是进行简单的语句
nmap 192.168.31.22
很好,结果是报错
然后让我们去 wireshark 看一眼
不出所料,发了两遍探测包
没有收到回信
然后系统认为这个主机是不存在的
然后进行了报错