1、基本快速扫描 {#1、基本快速扫描}
首先探测物理机ip地址,ipconfig,查看自己物理机ip {#首先探测物理机ip地址,ipconfig,查看自己物理机ip}
┌──(root㉿kali)-[~]
└─# nmap 192.168.0.77(这里扫描的是我的测试靶机ip,没有靶机的用自己的物理机ip)
扫描结果:
注释:open代表相关端口是开放的状态,可以看出我这个靶机开放了很多端口,生产环境这样做很容易被攻击者利用,具体每个端口代表什么含义查看我的上篇文章nmap理论篇 {#注释:open代表相关端口是开放的状态,可以看出我这个靶机开放了很多端口,生产环境这样做很容易被攻击者利用,具体每个端口代表什么含义查看我的上篇文章nmap理论篇}
2、快速扫描多个目标 {#2、快速扫描多个目标}
格式:nmap <target ip1 address> <target ip2 address>
┌──(root㉿kali)-[~]
└─# nmap 192.168.0.77 192.168.0.106
扫描结果:
图上可以看出192.168.0.77和192.168.0.106两个地址端口开放情况都被扫出来了 {#图上可以看出192.168.0.77和192.168.0.106两个地址端口开放情况都被扫出来了}
3、详细描述输出扫描 {#3、详细描述输出扫描}
普通扫描你看到的只有输出结果,而详细扫描你能看到扫描的过程
┌──(root㉿kali)-[~]
└─# nmap -vv 192.168.0.77
扫描结果:
4、指定端口和范围扫描 {#4、指定端口和范围扫描}
扫描格式:nmap -p (range) <target IP>
┌──(root㉿kali)-[~]
└─# nmap -p 22,80-500 192.168.0.77
扫描结果:
5、扫描除过某一个ip外的所有子网主机 {#5、扫描除过某一个ip外的所有子网主机}
┌──(root㉿kali)-[~]
└─# nmap 192.168.0.1/24 -exclude 192.168.0.77
扫描结果:(由于外网下有很多ip,暂不全部列出)
6、扫描除过某一个文件中的ip外的子网主机 {#6、扫描除过某一个文件中的ip外的子网主机}
首先新建一个文件iptest.txt {#首先新建一个文件iptest.txt}
┌──(root㉿kali)-[~]
└─# touch iptest.txt
┌──(root㉿kali)-[~]
└─# vi iptest.txt
`:wq保存退出
`
┌──(root㉿kali)-[~]
└─# nmap 192.168.0.1/24 -excludefile iptest.txt
经过漫长的等待。。。。。 {#经过漫长的等待。。。。。}
扫描结果:除我们靶机192.168.0.77没被扫出来,其他ip全部扫描出来
6、显示扫描的所有主机的列表 {#6、显示扫描的所有主机的列表}
┌──(root㉿kali)-[~]
└─# nmap -sL 192.168.0.1/24
扫描结果:
7、sP ping 扫描 {#7、sP ping 扫描}
nmap 可以利用类似window/linux 系统下的ping方式进行扫描,一般来说 我们会用这个命令去扫描内网的一个ip范围,用来做内网的主机发现。
格式:nmap -sP <target ip>
┌──(root㉿kali)-[~]
└─# nmap -sP 192.168.0.1-255(表示扫描192.168.0.1-192.168.0.255之内的所有在线主机)
扫描结果:
8、sS SYN半开放扫描 {#8、sS SYN半开放扫描}
┌──(root㉿kali)-[~]
└─# nmap -sS 192.168.0.77
扫描结果:
Tcp SYN Scan (sS) 这是一个基本的扫描方式,它被称为半开放扫描,因为这种技术使得Nmap不需要通过完整的握手,就能获得远程主机的信息。Nmap发送SYN包到远程主机,但是它不会产生任何会话,因此不会在目标主机上产生任何日志记录,因为没有形成会话。这个就是SYN扫描的优势,如果Nmap命令中没有指出扫描类型,默认的就是Tcp SYN,但是它需要root/administrator权限。
9、sT TCP扫描 {#9、sT TCP扫描}
┌──(root㉿kali)-[~]
└─# nmap -sT 192.168.0.77
扫描结果:
不同于Tcp SYN扫描,Tcp connect()扫描需要完成三次握手,并且要求调用系统的connect(),Tcp connect()扫描技术只适用于找出TCP和UDP端口。
10、sU UDP扫描 {#10、sU UDP扫描}
└─# nmap -sU 192.168.0.77
扫描结果:(估计要2000年才能出,下面是我5分钟的扫描进度,想看结果的自己经过漫长的等待)
这种扫描技术用来寻找目标主机打开的UDP端口。它不需要发送任何的SYN包,因为这种技术是针对UDP端口的。UDP扫描发送UDP数据包到目标主机,并等待响应,如果返回ICMP不可达的错误消息,说明端口是关闭的,如果得到正确的适当的回应,说明端口是开放的。
11、sF FIN标志的数据包扫描 {#11、sF FIN标志的数据包扫描}
┌──(root㉿kali)-[~]
└─# nmap -sF 192.168.0.77
扫描结果:
可以看出这个扫描的话,会漏扫许多。。。 FIN扫描也不会在目标主机上创建日志(FIN扫描的优势之一),各类型的扫描都是具有差异性的,FIN扫描发送的包只包含FIN标识,NULL扫描不发送数据包上的任何字节,XMAS扫描发送FIN、PSH和URG标识的数据包。
12、sV Version版本检测扫描 {#12、sV Version版本检测扫描}
┌──(root㉿kali)-[~]
└─# nmap -sV 192.168.0.77
扫描结果:
版本检测是用来扫描目标主机和端口上运行的软件的版本。它不同于其它的扫描技术,它不是用来扫描目标主机上开放的端口,不过它需要从开放的端口获取信息来判断软件的版本,使用版本检测扫描之前需要先用TCPSYN扫描开放了哪些端口。
13、O OS操作系统类型的探测 {#13、O OS操作系统类型的探测}
┌──(root㉿kali)-[~]
└─# nmap -O 192.168.0.77
扫描结果:
远程检测操作系统和软件,Nmap的OS检测技术在渗透测试中用来了解远程主机的操作系统和软件是非常有用的,通过获取的信息你可以知道已知的漏洞。Nmap有一个名为的nmap-OS-DB数据库,该数据库包含超过2600操作系统的信息。Nmap把TCP和UDP数据包发送到目标机器上,然后检查结果和数据库对照。
14、osscan-guess 猜测匹配操作系统 {#14、osscan-guess 猜测匹配操作系统}
┌──(root㉿kali)-[~]
└─# nmap -O --osscan-guess 192.168.0.77
扫描结果:
通过Nmap准确的检测到远程操作系统是比较困难的,需要使用到Nmap的猜测功能选项,--osscan-guess猜测认为最接近目标的匹配操作系统类型
15、PN No ping扫描 {#15、PN No ping扫描}
┌──(root㉿kali)-[~]
└─# nmap -O -PN 192.168.0.1/24
扫描结果:
如果远程主机有防火墙,IDS和IPS系统,你可以使用-PN命令来确保不ping远程主机,因为有时候防火墙会拦截掉ping请求。-PN命令告诉Nmap不用ping远程主机。使用-PN参数可以绕过PING命令,但是不影响主机的系统的发现。(比较耗时,但是我比较快,因网络情况而异)
16、T 设置时间模板 {#16、T 设置时间模板}
nmap -sS -T<0-5> 192.168.0.77(0-5自己选择需要的)
扫描结果:(由于扫描实在很慢就不展示了,具体效果大家自行测试)
优化时间控制选项的功能很强大也很有效,但有些用户会被迷惑。此外, 往往选择合适参数的时间超过了所需优化的扫描时间。因此,Nmap提供了一些简单的 方法,使用6个时间模板,使用时采用-T选项及数字(0 - 5) 或名称。模板名称有 paranoid (0)、sneaky (1)、polite (2)、normal(3)、 aggressive (4)、insane (5) paranoid、sneaky模式用于IDS躲避 Polite模式降低了扫描 速度以使用更少的带宽和目标主机资源。 Normal为默认模式,因此-T3 实际上是未做任何优化。 Aggressive模式假设用户具有合适及可靠的网络从而加速 扫描. nsane模式假设用户具有特别快的网络或者愿意为获得速度而牺牲准确性。
17、路由跟踪扫描 {#17、路由跟踪扫描}
┌──(root㉿kali)-[~]
└─# nmap -traceroute www.baidu.com
扫描结果:
18、A ,OS识别,版本探测,脚本扫描和traceroute综合扫描 {#18、A ,OS识别,版本探测,脚本扫描和traceroute综合扫描}
┌──(root㉿kali)-[~]
└─# nmap -A 192.168.0.77
扫描结果: