文章目录
Nmap简介
Nmap是一个综合性的、特性丰富的端口扫描工具,用来探测计算机网络上的主机和服务。Nmap发送特定数据包到目标主机,然后对返回的数据包进行分析。
Nmap功能
主机发现
端口扫描
服务 / 版本检测
支持探测脚本的编写
Nmap扫描命令
1、sP/sn PING扫描
下面展示一些 内联代码片
。
nmap -sP <target ip>
一般利用sP命令扫描内网的一个ip范围,用于内网主机发现。
nmap -sP 192.168.124.1-255
PING扫描只用于查看主机是否存在于网络中,并不能看到是否开放端口。PING扫描需要ROOT权限。
几种指定目标的方法:
1|nmap -sP 192.168.124.10 192.168.124.20
2|nmap -sP 192.168.124.1-255
3|nmap -sP -iL Ahost //扫描名为Ahost文件所包含的主机ip
4|nmap -sP 192.168.124.0/24 -exclude 192.168.124.91 // 除了.91的主机
5|nmap -sP 192.168.124.0/24 -excludefile Ahost// 除了Ahost文件包含的主机
2、sS SYN半开放扫描
nmap -sS <target ip>
sS扫描不需要完整的握手就能获得远程主机的信息。Nmap发送SYN包到远程主机,但是它不会产生任何会话,因此不会在目标主机上产生任何日志记录。若Nmap命令没有指出扫描类型,默认为TCP SYN描扫。需要ROOT权限。
3、sT TCP扫描
nmap -sT <target ip>
不同于sS扫描,sT扫描需要完成三次握手,并调用系统的connect()。sT扫描只适用于找出TCP和UDP端口。
4、sU UDP扫描
nmap -sU <target ip>
sU扫描用于寻找目标主机打开的UDP端口,不需要发送任何SYN包,而是发送UDP数据包到目标主机,等待响应,若返回ICMP不可达,则端口关闭;若得到正确的回应,则端口为开放。
5、sF FIN扫描
nmap -sF <target ip>
FIN扫描也不会在目标主机上创建日志(FIN扫描的优势之一)。个类型的扫描都是具有差异性的,FIN扫描发送的包只包含FIN标识,NULL扫描不发送数据包上的任何字节,XMAS扫描发送FIN、PSH和URG标识的数据包。
6、sV 端口版本服务检测扫描
nmap -sV <target ip>
版本检测是用来扫描目标主机和端口上运行的软件的版本。它不同于其它的扫描技术,不是用来扫描目标主机上开放的端口,需要从开放的端口获取信息来判断软件的版本,所以使用sV检测扫描之前需要先用TCPSYN(sS)扫描开放了哪些端口。
7、O 操作系统类型探测
nmap -O <target ip>
用于检测远程主机操作系统和软件,通过获取的信息可以知道已知的漏洞。
osscan-guess 猜测匹配操作系统
通过Nmap准确的检测到远程操作系统是比较困难的,需要使用到Nmap的猜测功能选项,–osscan-guess猜测认为最接近目标的匹配操作系统类型。
PN No ping扫描
如果远程主机有防火墙,IDS和IPS系统,可以使用-PN命令来确保不ping远程主机,因为有时候防火墙会阻止ping请求。-PN命令告诉Nmap不用ping远程主机,使用-PN参数可以绕过PING命令,但不影响主机的系统的发现。
8、T 设置时间模板
nmap -sS -T<0-5> <target ip>
Nmap提供6个时间模板,分别为paranoid (0)、sneaky (1)、polite (2)、normal(3)、 aggressive (4)和insane (5)。
1、Paranoid、Sneaky模式用于IDS躲避;
2、Polite模式降低了扫描 速度以使用更少的带宽和目标主机资源;
3、Normal为默认模式,因此-T3 实际上是未做任何优化;
4、Aggressive模式假设用户具有合适及可靠的网络从而加速扫描;
5、Nsane模式假设用户具有特别快的网络或者愿意为获得速度而牺牲准确性。
9、网段扫描格式
nmap -sn <network address > </CIDR >
10、从文件中读取需要扫描的IP列表
nmap -iL HostList
11、A 综合扫描
nmap -A <target ip>
Python实现Nmap功能
1、python nmap ping 扫描
测试python nmap ping 扫描
2、python nmap A 扫描
测试python nmap A 扫描
3、python nmap A扫描 只返回OS
测试python nmap A扫描 只返回OS
4、python nmap 先ping然后A扫描
测试python nmap 先ping然后A扫描