freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

nmap 诸神之眼笔记(1)
shenmomingzihao 2021-12-08 16:28:09 145049
所属地 河南省

笔记

nmap范围扫描

格式法

192.168.0.1-255		//指定范围
192.168.0.1/24     //对整个子网进行扫描
192.168.0.1,192.168.0.50,192.168.0.30	//对多个主机进行扫描
nmap [目标]  --exclude  [指定不扫描的主机] 	//排除主机扫描
-iL a.txt 	//指定a.txt 文件内容进行扫描
-iR  [数量]   //要指定的随机ip扫面

探测存活主机

nmap发送的那些数据包可以用--packet-trace来查看

ARP扫描探测存活主机

交换机里面中每个接口都有寻址寄存器,里面存放这物理地址表
ARP扫描原理就是,向内网送ARP包如果主机给我相应了,就说明主机存活
注意:这个ARP扫描很难防御,在内网扫描ARP扫描是最佳的扫描

nmap -PR [目标]

image

## ICMP探测探测存活主机

20200529113412411.png

请求和响应应答探测存活主机

发送ICMP响应请求,如果得到目标主机发回的ICMP响应,则说明该主机处于活跃状态,就和ping命令一样

nmap -PE [目标地址]


20200529115611152.png

时间戳请求和响应探测存活主机

nmap   -sn  -PP [目标]

地址俺码请求和响应探测存活主机

nmap  -sn   -PM  [端口,或多个端口] [目标]

TCP探测存活主机

SYN探测存活主机

原理是客户端发送SYN目标会返回SYN ACK创建连接,如果端口没有开放就断开连接回RST数据包,如何有一个返回就说明目标存活
格式

nmap  -sn  -PS [端口,或多个端口] [目标]

ACK探测存活主机

这个被防火墙过滤
原理客户端发送一个ACK数据包给服务器,如果服务器存活就发送RST数据包,如果没有存活就没有都不响应
格式

nmap -sn -PA [端口,或多个端口] [目标]

UDP探测存活主机

当目标收到UDP数据包如果这个端口是关闭的,就返回ICMP端口不可达数据包,
这个扫描不太准
格式

nmap -sn PU  [端口,或多个端口] [目标]

SCTP探测存活主机

SCTP用的比较少
流控制传输协议(SCTP,Stream Control Transmission Protocol)是一种在网络连接两端之间同时传输多个数据流的协议。SCTP提供的服务于UDP和TCP类似
SCTP是可以确保数据传输的,和TCP类似,也是通过确认机制来实现的。和TCP不同的是:

TCP是以字节为单位传输的,SCTP是以数据块为单位传输的

TCP接收端确认的是收到的字节数,SCTP接收端确认的是接收到的数据块。SCTP的这种数据块(被称为DATA CHUNK)通常会携带应用的一个数据包,或者说是应用要发送的一个消息。

在实际的应用中,TCP发送方的可以将应用程序需要发送的多个消息打包到一个TCP包里面发出去。比如,应用程序连续调用两次send()向对端发送两条消息,TCP协议可能把这两条消息都打包放在同一个TCP包中。接收端在收到这个TCP包时,回给对端的ACK只是表明自己接收到了多少个字节,TCP协议本身并不会把收到的数据重新拆散分成两条应用层消息并通知应用程序去接收。事实上,应用程序可能只需要调用一次receive(),就会把两条消息都收上来,然后应用需要根据应用程序自己定义的格式去拆成两条消息。

与TCP不同,SCTP是将应用程序的每次调用sendmsg()发送的数据当作一个整体,放到一个被称为DATA CHUNK的数据块里面,接收端也是以DATA CHUNK为单位接收数据,并重新组包,通知应用程序接收。通常,应用程序每次调用recvmesg()都会收到一条完整的消息。

在SCTP的发送端,多条短的应用层消息可以被SCTP协议打包放在同一个SCTP包中,此时在SCTP包中可以看到多个DATA CHUNK。另一方面,一条太长(比如,超过了路径MTU)的应用层消息也可能被SCTP协议拆分成多个片段,分别放在多个DATA CHUNK并通过不同的SCTP包发送给对端。这两种情况下,SCTP的接收端都能重新组包,并通知应用程序去接收。
格式

nmap -sn  -PY [端口,多个端口]   [目标]

使用IP进行主机发现

ICMP为1
IGMP为2
TCP为6
UDP为7
GRE4为7
ESP为50

格式

nmap -sn PO 号  [目标]

如果不指定号默认是1
这个方法容易被被目标检查出来
可以加上--data-length添加随机数据包

DNS活跃主机发现和DNS相关选项

在对一台主机扫描的时候,如果它有域名的话,nmap会向域名服务器提出请求,显示ip对映的域名,扫描的时候可以指定范围

  1. 无论是活跃的主机和不活跃的主机都叫域名给列出来 -R

nmap -R 192.168.1.1-20

这个扫描可能会消耗大量的时间

端口扫描技术

1. nmap对端口的状态的定义

  1. open:如果目标端口的状态为open,这表明在该端口有应用程序接收TCP连接或者UDP报文。

  2. closed:如果目标端口的状态为closed,这里要注意closed并不意味着没有任何反应,状态为closed的端口是可访问的,这种端口可以接收Nmap探测报文并做出响应。相比较而言,没有应用程序在open上监听。

  3. filtered:产生这种结果的原因主要是存在目标网络数据包过滤,由于这些设备过滤了探测数据包,导致Nmap无法确定该端口是否开放。这种设备可能是路由器、防火墙甚至专门的安全软件。

  4. unfiltered:这种结果很少见,它表明目标端口是可以访问的,但是Nmap却无法判断它到底是open还是closed的。通常只有在进行ACK扫描时才会出现这种状态。

  5. open | filtered:无法确定端口是开放的还是被过滤了,开放的端口不响应就是一个例子。

  6. closed|filtered:无法确定端口是关闭的还是被过滤了。只有在使用idle扫描时才会发生这种情况。

端口扫描

SYN扫描

nmap默认就是SYN扫描,扫描速度快
nmap会像主机发送一个SYN数据包,目标会返回SYN加ACK进行应答。然后nmap会返回给服务器RST数据包断开连接,没有建立三次握手,目标主机是不记录的
响应状态

20200530165532233.png
扫描语法

nmap -sS [目标]

Connect扫描

和SYN扫描方式一样,只是完成三次握手了
格式

nmap -sT [目标]

UDP扫描

响应状态
2020053017092356.png
格式

nmap -sU [目标]

TCP FIN扫描

发一个FIN数据包目标端口返回RST就说明端口是关闭的
格式

nmap -sF [目标]

NULL扫描

NULL扫描发送一个没有包含任何数据的数据包,目标端口返回RST就说明端口是关闭的
格式

nmap -sN [目标]

Xmas Tree 扫描

是向目标端发送一个含有FIN,URG和PUSH标志的数据包,目标端口返回RST就说明端口是关闭的
格式

nmap -sX [目标]

idle扫描

僵尸机扫描端口开发
1.攻击端给僵尸机发一个SYN/ACK僵尸机回RST/包里面有IPID=x
2.攻击端发服务器端口SYN是伪造僵尸机ip服务器发给僵尸 机SYN/ACK,应为没有建立连接僵尸机就回RST/IPID=x+1
3.攻击端在给僵尸机发一个SYN/ACK僵尸机回RST/IPIF=x+2
僵尸机扫描端口开发
1.攻击端给僵尸机发一个SYN/ACK僵尸机回RST/IPID=x
2.攻击端发服务器端口SYN是伪造僵尸机ip服务器发给僵尸机没有建立连接服务器回发僵尸机RST
3.攻击端在给僵尸机发一个SYN/ACK僵尸机回RST/IPIF=x+1

判断是否是僵尸机--script是使用脚本

nmap -p端口 要判断是僵尸机的ip  --script=ipidseq.nse

使用僵尸机扫描目标端口 -sI是僵尸扫描

nmap 目标ip -sI 僵尸机ip -Pn -p 0-100

指定扫描的端口

20200531163447804.png

  1. 指定常见的100个端口
    格式

nmap -F [目标]
  1. 指定一个端口扫描
    格式

nmap -p [端口]  [目标]
  1. 使用名字指定扫描端口
    格式
    nmap -p U:53 [目标]

  2. 扫描所有的端口
    格式

nmap -p *  [目标]
  1. 常用的端口扫描
    格式

nmap  --top-ports [目标]

远程系统与服务探测

主机探测

查看返回的ttl值查看主机的系统
ttl值Windows 是128(65——128)
Linux 和 Unix = 64 (1-64) Unix = 255

nmap -O [目标]

版本探测

发送探针报文,得到返回确认值,得到服务的版本

探测服务器版本参数-sV

nmap  -sV [目标]

1.如果想对全端口扫描可以加上--allport
2.设置版本扫描的强度加上--version-intensity [1到9]
3.如果轻量级模式扫描可以加上--version-light
4.尝试每个探测相当于--version-intensity 9加上--version-all
6.--version-trace这个参数将会打印出关于正在进行的扫描的详细调试信息
7.-sR(RPC扫描)
这个方法和许多端口扫描方法联合使用。它对所有的被发现的开发的TCP/UDP端口执行SunRPC程序NULL命令试图确定他们是否RPC端口,如果是,可以确定是什么程序和版本号
nmap -sP [目标]

# nmap
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 shenmomingzihao 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
shenmomingzihao LV.2
这家伙太懒了,还未填写个人描述!
  • 2 文章数
  • 0 关注者
信息收集之Shodan搜索引擎总结
2021-12-01
文章目录