探测主机存活常用方式
(1)-sP :进行ping扫描
打印出对ping扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):
下面去扫描10.0.3.0/24这个网段的的主机
1 |
|
这个命令可以用于探测局域网有哪些机器
1 2 3 4 5 6 7 8 9 10 11 |
|
(2) -sn:
-sn: Ping Scan - disable port scan #ping探测扫描主机, 不进行端口扫描 (测试过对方主机把icmp包都丢弃掉,依然能检测到对方开机状态)
1 2 3 4 5 6 7 8 9 10 |
|
(3)-sA
nmap 10.0.1.161 -sA (发送tcp的ack包进行探测,可以探测主机是否存活)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
端口扫描的高级用法
(1) -sS :半开放扫描(非3次握手的tcp扫描)
1 2 3 4 5 |
|
命令如下
1 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
(2) sT:3次握手方式tcp的扫描
1 2 3 4 |
|
nmap -sT 10.0.1.161等同于 nmap 10.0.1.161
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
(3)sU:udp端口的扫描
Udp scan(sU) 顾名思义,这种扫描技术用来寻找目标主机打开的UDP端口.它不需要发送任何的SYN包,因为这种技术是针对UDP端口的。UDP扫描发送UDP数据包到目标主机,并等待响应,
如果返回ICMP不可达的错误消息,说明端口是关闭的,如果得到正确的适当的回应,说明端口是开放的.udp端口扫描速度比较慢
1 |
|
(4)sF:也是tcp的扫描一种,发送一个FIN标志的数据包
FIN scan(sF)
有时候TcpSYN扫描不是最佳的扫描模式,因为有防火墙的存在.目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手.
和sS扫描效果差不多,比sT速度快
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
-sF、-sX、-sN
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
(5)sW:窗口扫描
Window扫描,即窗口扫描
当然也可以利用Window扫描方式,得出一些端口信息,可以与之前扫描分析的结果相互补充。Window扫描方式只对某些TCPIP协议栈才有效。
它也是基于tcp的扫描,个人感觉用处不大
另外我尝试使用它对A机器的22端口扫描,发现对方22端口状态居然是错误的。
1 2 3 4 5 6 7 8 9 10 11 |
|
(6) sV:版本检测(sV)
版本检测是用来扫描目标主机和端口上运行的软件的版本,如下扫描,多出了ssh的版本信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
nmap及其少用的
(1)iR Choose random targets,它会随机找几个ip或者主机名进行扫描
nmap -iR 2 -Pn -p22
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
(2)--top-ports <number>: Scan <number> most common ports
#扫描常用的端口,number如果写成10,那就是扫描最常用的10个端口。比如,ssh,http,ftp等热门端口
nmap --top-ports 5 10.0.1.161
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
(3)--port-ratio <ratio>: Scan ports more common than <ratio> #扫描常用端口里,占的比重在0.x 之上的端口
比如ratio=0.2 那么就是常用端口中占的分量超过0.2的端口,比如http的80端口
nmap --port-ratio 0.1 10.0.1.161
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
(4)-sO:探测对方,TCP/IP协议簇中有哪些协议,类型号分别是多少
nmap -sO 10.0.1.161
没什么用,就是探测对方,TCP/IP协议簇中有哪些协议,类型号分别是多少
icmp即是 1 Internet控制消息
6 传输控制 协议
udp即是 17 用户数据报文
47 通用路由封装
103 协议独立多播
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
(5)--allports
--allports (不为版本探测排除任何端口)经过我的测试,发现对于一些大的端口号,它没能检测出来 默认情况下,Nmap版本探测会跳过9100 TCP端口,因为一些打印机简单地打印送到该端口的任何数据,这回导致数十页HTTP get请求,二进制SSL会话请求等等被打印出来.这一行为可以通过修改或删除nmap-service-probes中的Exclude指示符改变,您也可以不理会任何Exclude指示符,指定--allports扫描所有端口
1 2 3 4 5 6 7 8 9 |
|
如下,对于一些端口号仍然没检测出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
其余很少使用的参数
1 2 3 4 |
|
-A参数,综合扫描。比较慢,不推荐
-A: Enable OS detection, version detection, script scanning, and traceroute #-A综合扫描,包括系统探测,版本探测,脚本扫描,路由跟踪
nmap -A www.baidu.com
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
|
-e:指定网络接口,扫描时使用哪个网卡
用法 :nmap -e eth0 targetip
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
-S:可以伪装源地址进行扫描。这样好处在于不会被对方发现自己的真实IP
[[email protected] ~]# nmap -e eth0 10.0.1.161 -S 10.0.1.167
WARNING: If -S is being used to fake your source address, you may also have to use -e <interface> and -Pn . If you are using it to specify your real source address, you can ignore this warning.
上面提示如果你使用-S伪装自己源地址进行扫描的话,你必须另外使用-e 指定网卡和-Pn参数才能伪装
把自己源地址伪装成10.0.1.167扫描A机器
nmap -e eth0 10.0.1.161 -S 10.0.1.167 -Pn
接下来我们来验证一下
1 2 3 4 5 6 7 8 9 10 11 12 |
|
然后我们使用B机器伪装成10.0.1.167去扫描A机器,是可以扫描成功的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
假如我们在A机器上禁止源地址为10.0.1.167的访问请求,那么B机器就应该无法扫描A的端口了。我们来验证下
A机器禁止源地址为10.0.1.167的机器访问
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
B机器伪装成10.0.1.167扫描A机器,扫描不到对方端口
1 2 3 4 5 6 7 8 9 10 |
|
如果我们伪装成别的地址就应该能继续扫描到端口
我们伪装成了10.0.1.168,扫描成功
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
nmap -iflist:查看本地路由与接口
Nmap中提供了–iflist选项来查看本地主机的接口信息与路由信息。当遇到无法达到目标主机或想选择从多块网卡中某一特定网卡访问目标主机时,可以查看nmap –iflist中提供的网络接口信息。
和route -n功能一样
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
nmap功能参数还有很多,个人觉得以上功能能应付工作中99%的需要了。没特殊必要,不用花太多时间在上面。
小结:
1 2 3 4 5 6 7 8 |
|
一些nmap相关的链接,有时间可以参照下,这两篇笔记总结的比较全了
http://www.91ri.org/4105.html
http://www.91ri.org/3870.html
http://blog.163.com/jianshitianxia_ao/blog/static/1765693842012731114821230/
https://nmap.org/download.html#windows
http://www.91ri.org/8516.html
http://blog.csdn.net/huangwwu11/article/details/20230795
http://blog.csdn.net/tan6600/article/details/45340511
原文地址:https://www.cnblogs.com/uestc2007/p/10948743.html