kali linux下nmap的使用

nmap,也就是Network Mapper,是Linux下的网络扫描和嗅探工具包。

 其基本功能有四个:

  1. 主机发现(Host Discovery)
  2. 端口扫描(Port Scanning)
  3. 版本侦测(Version Detection)
  4. 操作系统侦测(Operating System Detection)

主机扫描:

1)-sL 列表扫描:可以对主机进行反向域名解析,校验ip或域名是否存在
nmap -sL 192.168.2.0/24或www.baidu.com/24
2)-sP ping扫描:使用ping主机,得出可响应的主机列表
nmap -sP 192.168.2.0/24或www.baidu.com/24
3)-P0 (无ping):高强度的扫描时用它确定正在运行的机器, 默认情况下,Nmap只对正在运行的主机进行高强度的探测如 端口扫描,版本探测,或者操作系统探测。
nmap -P0 192.168.8.111
4)-PS [portlist] (TCP SYN Ping):发送一个设置了SYN标志位的空TCP报文,尝试建立连接,成功返回报文up以及运行信息,失败返回down;
nmap -PS 192.168.8.118
5)-PA [portlist] (TCP ACK Ping):发送一个设置了ACK标志位的空TCP报文,尝试建立连接,成功返回报文up以及运行信息,失败返回down;
nmap -PA 192.168.8.118
6) -PU [portlist] (UDP Ping):它发送一个空的UDP报文,返回响应报文up以及运行信息,失败返回down;
nmap -PU 192.168.8.118
7)-PE; -PP; -PM (ICMP Ping Types):发送一个ICMP type 8 (回声请求)报文到目标IP地址, 期待从运行的主机得到一个type 0 (回声响应)报文。
nmap -PE 192.168.8.118
8)-PR (ARP Ping):同一个局域网内,当进行ARP扫描时,Nmap用它优化的算法管理ARP请求。 当它收到响应时, Nmap甚至不需要担心基于IP的ping报文,既然它已经知道该主机正在运行了。 这使得ARP扫描比基于IP的扫描更快更可靠。
nmap -PR 192.168.2.118
 

端口扫描 

端口状态:扫描之后,你可能会看到一些端口状态如 open(开放的),filtered(被过滤的),closed(关闭的)等等。
- Open(开放的): 应用程序正在这个端口上监听连接。
- Closed(关闭的): 端口对探测做出了响应,但是现在没有应用程序在监听这个端口。
- Filtered(过滤的): 端口没有对探测做出响应。同时告诉我们探针可能被一些过滤器(防火墙)终止了。
- Unfiltered(未被过滤的):端口对探测做出了响应,但是Nmap无法确定它们是关闭还是开放。
- Open/Filtered: 端口被过滤或者是开放的,Nmap无法做出判断。

- Closed/Filtered: 端口被过滤或者是关闭的,Nmap无法做出判断。

1)-sS (TCP SYN扫描): 被称为半开放扫描, 因为它不打开一个完全的TCP连接。 SYN/ACK表示端口在监听 (开放),而 RST (复位)表示没有监听者。

nmap -sS 192.168.2.118

2)-sT (TCP connect()扫描):Nmap通过创建connect() 系统调用要求操作系统和目标机以及端口建立连接,而不像其它扫描类型直接发送原始报文。

3)-sU (UDP扫描):UDP扫描发送空的(没有数据)UDP报头到每个目标端口。 如果返回ICMP端口不可到达错误(类型3,代码3), 该端口是closed(关闭的)。 其它ICMP不可到达错误(类型3, 代码1,2,9,10,或者13)表明该端口是filtered(被过滤的).

4)-sN; -sF; -sX (TCP Null,FIN,and Xmas扫描):
 

nmap端口状态解析:

  • open : 应用程序在该端口接收 TCP 连接或者 UDP 报文。 
  • closed :关闭的端口对于nmap也是可访问的, 它接收nmap探测报文并作出响应。但没有应用程序在其上监听。
  • filtered :由于包过滤阻止探测报文到达端口,nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由规则 或者主机上的软件防火墙。
  • unfiltered :未被过滤状态意味着端口可访问,但是nmap无法确定它是开放还是关闭。 只有用于映射防火墙规则集的 ACK 扫描才会把端口分类到这个状态。
  • open | filtered :无法确定端口是开放还是被过滤, 开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃了探测报文或者它引发的任何反应。UDP,IP协议,FIN, Null 等扫描会引起。
  • closed|filtered:(关闭或者被过滤的):无法确定端口是关闭的还是被过滤的

ping扫描:扫描192.168.0.0/24网段上有哪些主机是存活的;

[root@laolinux ~]# nmap -sP 192.168.0.0/24

端口扫描:扫描192.168.0.3这台主机开放了哪些端口;

[root@laolinux ~]# nmap -sT 192.168.0.3

隐藏扫描,只在目标主机上留下很少的日志信息:隐藏扫描192.168.0.220

[root@laolinux ~]# nmap -sS 192.168.0.127

UDP端口扫描:扫描192.168.0.127开放了哪些UDP端口;

[root@laolinux ~]# nmap -sU 192.168.0.127

操作系统识别:

[root@laolinux ~]# nmap -sS -O  192.168.0.127

读取文件

假设我们有list.txt文件,文件的内容是ip列表,一行一个。比如这样:

10.73.31.145

10.73.31.116

我们可以输入这条指令让nmap自动扫描:

nmap -iL list.txt

在nmap运行的时候,如果我们可以像其他编程一样打“断点”,直接按键盘的d键就行了,如果想知道运行的进度可以按下X键

猜你喜欢

转载自blog.csdn.net/weixin_44740377/article/details/90580839