nmap进阶
nmap进阶
探测主机存活常用方式
(1)-sP:
nmap -sP 10.0.3.0/24
进行ping扫描 -- 打印做出响应的主机,不做进一步测试
该命令主要用于探测局域网存在的机器
(2)-sn:
nmap -sn 10.0.1.161-166
用ping探测扫描主机,不进行端口扫描
(3)-sA
nmap 10.0.1.161 -sA
发送tcp的ack包进行探测,可以探测主机是否存活
高级的端口扫描
(1)-sS:
nmap -sS 10.0.1.161 -- 半开放扫描
SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快,效率高(一个完整的tcp连接需要3次握手,而-sS选项不需要3次握手)
优点:Nmap发送SYN包到远程主机,但是它不会产生任何会话,目标主机几乎不会把连接记入系统日志。(防止对方判断为扫描攻击)
缺点:它需要root/administrator权限执行
(2)sT:
nmap -sT 10.0.1.161 --3次握手方式tcp的扫描
不同于Tcp SYN扫描,Tcp connect()扫描需要完成三次握手,并且要求调用系统的connect().
优点:普通用户即可
缺点:扫描易被检测,目标主机会记录大批的连接请求和错误信息
(3)sU:
nmap -sU 10.0.1.161
Udp scan:寻找目标主机打开的UDP端口,不需要发送任何的SYN包,针对UDP端口的。UDP扫描发送UDP数据包到目标主机,
并等待响应,如果返回ICMP不可达的错误消息,说明端口是关闭的;如果得到正确的适当的回应,说明端口是开放的。
(4)sF:
nmap -sF 10.0.1.161
目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手。
(5)-sF -sX -sN
有的防火墙可能专门阻止-sS扫描。使用这些扫描可以发送特殊标记位的数据包
比如:-sF发送一个设置了FIN标志的数据包
它们和-sS一样也需要完成TCP的握手
和sS扫描效果差不多,都比sT速度快
除了探测报文的标志位不同,三种扫描在行为上一致
优点:能躲过一些无状态防火墙和报文过滤路由器,比SYN还要隐秘
缺点:现代的IDS产品可以发现,并非所有的系统严格遵循RFC 793
即使SYN扫描都无法确定的情况下使用:一些防火墙和包过滤软件能够对发送到被限制端口的SYN数据包进行监视,
而且有些程序比如synlogger和courtney能够检测那些扫描。使用-sF、-sX、-sN可以逃过这些干扰。
这些扫描方式的理论依据是:关闭的端口需要对你的探测包回应RST包,而打开的端口必需忽略有问题的包。
FIN扫描使用暴露的FIN数据包来探测,而圣诞树扫描打开数据包的FIN、URG和PUSH标志。
可以使用这种方式来分别两种不同的平台。
如果使用这种扫描方式可以发现打开的端口,你就可以确定目标注意运行的不是Windows系统。
如果使用-sF、-sX或者-sN扫描显示所有的端口都是关闭的,而使用-sS(SYN)扫描显示有打开的端口,你可以确定目标主机可能运行的是Windwos系统。
现在这种方式没有什么太大的用处,因为nmap有内嵌的操作系统检测功能。还有其它几个系统使用和windows同样的处理方式,包括Cisco、BSDI、HP/UX、MYS、IRIX。
抛弃数据包时,以上这些系统都会从打开的端口发出复位数据包。
(5)sW:
nmap -sW 10.0.1.161 -p22
Window扫描,即窗口扫描,Window扫描方式只对某些TCPIP协议栈才有效。也是基于tcp的扫描。
(6)sV:
nmap -sV 10.0.1.161 -- 版本检测
扫描目标主机和端口上运行的软件的版本
nmap不常用参数
(1)iR :
nmap -iR 2 -Pn -p22
会随机找几个ip或主机名进行扫描
(2)--top-ports
nmap --top-ports 5 10.0.1.161
扫描常用的端口,5 为扫描常用的5个端口
如:ssh,http,ftp等热门端口
(3)--port-ratio
--port-ratio 0.1 10.0.1.161
扫描常用端口里,占的比重在0.x之上的端口。
如:ratio=0.2 那么就是常用端口中占的分量超过0.2的端口,比如:http的80端口。
(4)-sO:
nmap -sO 10.0.1.161
探测对方,TCP/IP协议簇中有哪些协议,类型号分别是多少
(5)--allports:
netstat -Intp --inet|grep -v 127.0.0.1 (扫描所有端口)
nmap 10.0.1.161 --allport
发现对于一些大的端口号,它没能检测出来 默认情况下,Nmap版本探测会跳过9100 TCP端口,因为一些打印机简单地打印送到该端口的任何数据,这回导致数十页HTTP get请求,二进制SSL会话请求等等被打印出来.这一行为可以通过修改或删除nmap-service-probes中的Exclude指示符改变,您也可以不理会任何Exclude指示符,指定--allports扫描所有端口
很少使用的参数
(1)-P0:
在扫描前,不需要ping主机。 有些网络的防火墙不允许ICMPecho请求穿过,使用这个选项可以对这些网络进行扫描。microsoft.com就是一个例子,因此在扫描这个站点时,你应该一直使用-P0或者-PT80选项。
(2)-PT:
扫描之前,使用TCPping确定哪些主机正在运行。nmap不是通过发送ICMPecho请求包然后等待响应来实现这种功能,而是向目标网络(或者单一主机)发出TCPACK包然后等待回应。
(3)-A:
nmap -A www.baidu.com
综合扫描,速度慢
(4)-e:
nmap 10.0.1.161 -e eth0
指定网络接口,扫描时使用哪个网卡
(5)-S:
nmap -e eth0 10.0.1.161 -S 10.0.1.167 -Pn
使用-e 指定网卡和-Pn参数才能伪装
使用B机器伪装成10.0.1.167去扫描A机器,是可以扫描成功的
我们在A机器上禁止源地址为10.0.1.167的访问请求,那么B机器就应该无法扫描A的端口了.
iptables -I INPUT -s 10.0.1.167 -j DROP
iptables -L -n
B机器伪装成10.0.1.167扫描A机器,扫描不到对方端口
nmap -e eth0 10.0.1.161 -S 10.0.1.167 -Pn
伪装成别的地址就应该能继续扫描到端口
(6)-iflist:
nmap -iflist
查看本地路由与接口
当遇到无法达到目标主机或想选择从多块网卡中某一特定网卡访问目标主机时,可以查看nmap –iflist中提供的网络接口信息。
和route -n功能一样

浙公网安备 33010602011771号