NMAP工具学习笔记

1 工具介绍

Nmap使用TCP/IP协议栈指纹准确地判断目标主机的操作系统类型,Nmap工作原理如下图所示:

Nmap的固定语法格式如下:

Nmap [空格] [选项多选项|协议] [空格] [目标]

示例:nmap -A 192. 168.126.131            #-A 全面扫描/综合扫描

2 主机发现

  • Ping 扫描只进行Ping,然后显示出在线的主机:nmap -sP 192.168.126.131/24
  • 无Ping扫描通常用于防火墙禁止Ping的情况下,这可以穿透防火墙,也可以避免被防火墙发现。

如果想知道这些协议是如何判断目标主机是否存活可以使用--packet-trace 选项。

可以手动指定扫描目标主机的协议,nmap -p06,17,2

TCP: 对应协议编号为6

IGMP:对应协议编号为2

ICMP:对应协议编号为1

UDP:对应协议编号为17

  • -PS选项发送一个设置了SYN标志位的空TCP报文。默认目的端口为80,可以指定一个以逗 号分隔的端口列表 (如-PS22, 23,25, 80,115, 3306, 3389)。
  • -PU选项是发送-个空的UDP报文到指定端口。如果不指定端口则默认是40125。
  • -PE; -PP; -PM选项,Nmap发送一个ICMP type 8 (回声请求)报文到目标IP地址,从运行的主机得到一个type0 (回声响应)报文。

                  -PE选项简单地来说是通过向目标发送ICMP Echo数据包来探测目标主机是否在线。

                 -PP选项是ICMP时间戳Ping扫描。

                 -PM选项可以进行ICMP地址掩码Ping扫描。

  • -PR选项通常在扫描局域网时使用。
  • -R选项多用于绑定域名的服务器主机上,便于我们了解目标的详细信息。
  • SCTP ( Stream Control Transmission Protocol, 流控制传输协议) 可以看作是TCP协议的改进,通过向目标发送INIT包,根据目标主机的相应判断目标主机是否存活。

3 端口扫描

电脑运行的系统程序,其实就像一个闭合的圆圈,但是电脑是为人服务的,它需要接受一些指令,并且按照指令调整系统功能来工作,于是系统程序设计者就把这个圆圈截成很多段,这些线段接口就叫端口(通俗讲是断口,就是中断)。系统运行到这些端口时,先判断端口是否打开或关闭,如果关闭,则是绳子接通了,系统往下运行;如果端口是打开的,系统就得到命令,有外部数据输入,接受外部数据并执行。

Nmap提供了6个端口状态:

Open Closed Filtered Unfiltered Open|Filtered Closed|Filtered

  1. -T (0-5) 可以启用时序选项,对于时序选项这里有0~5不同的选项。
  2. -T0 (偏执的):非常慢的扫描,用于IDS逃避。
  3. -T1 (鬼祟的):缓慢的扫描,用于IDS逃避。
  4. -T2 (文雅的):降低速度以降低对带宽的消耗,此选项一般不常用。
  5. -T3(普通的):默认,根据目标的反应自动调整时间。
  6. -T4 (野蛮的):快速扫描,常用扫描方式,需要在很好的网络环境下进行扫描,请求可能会淹没目标。
  7. T5 (疯狂的):极速扫描,这种扫描方式以牺牲准确度来提升扫描速度。

一般用-T4进行扫描,这样保证了可以在最少的时间内扫描到尽可能精确的数据。配合-F选项效果更好。

  • -p选项,以指定扫描的端口号。

如果既想扫描TCP端口又想扫描UDP端口,可以在端口号前加上“T: “或”U: “,分别代表TCP协议与UDP协议。注意,要既扫描UDP又扫描TCP,必须指定-sU以及至少一个TCP扫描类型(如-sS,-sF, 或者-sT)。

  • -F选项,使用该选项可以快速地扫描有限的端口。

nmap-services 包含了默认扫描的端口,也可以用--datadir 选项指定自己的nmap-services文件。

  • -r选项,使用该选项不会对端口进行随机顺序扫描。
  • --top-ports选项,这个功能便于我们发现具体而又有用的端口。
  • -sS扫描方式是比较常用的一种扫描方式,比较隐蔽。

它常常被称为半开放扫描,因为它不打开一个完全的TCP连接即3次握手。目标主机端口是关闭的情况下,Nmap的工作流程为向目标主机发送一个SYN包请求连接,如果收到RST包则表明无法连接目标主机。如果目标主机端口是开放的,会响应个SYN/ACK包,当Nmap收到目标主机的响应后,则向目标发送一个RST替代ACK包,连接结束,则此时3次握手并没有完成。

  • -sT选项是用于SYN扫描不能使用的时候,基础、稳定。

接收到请求后响应了-个SYN+ACK包,Nmap 向目标主机发送一个ACK包,确认连接。

  • -sU选项可以进行UDP扫描,UDP扫描或许可以发现更多可以被黑客利用的端口。

UDP扫描发送空的UDP报文到目标端口,UDP头是没有任何数据的,这就使Nmap可以轻松辨别目标端口的开放状态。如果返回ICMP端口不可到达错误就可以认定该端口是关闭的,其他的就可以被认定是被过滤的,如果被响应了则判断目标端口是开放状态。UDP扫描是相当慢的,使用-p选项指定需要扫描的端口。

  • 隐蔽扫描,-sN是Null扫描、-sF是FIN扫描、-sX是Xmas扫描。

-sA选项启用TCPACK扫描,TCPACK扫描有一个非常致命的缺点,它不能确定端口是否是开放的还是被过滤的。

  • --scanflags选项可以启用自定义TCP扫描,--scanflags URGACKPSHRSTSYNFIN设置了所有标志位。
  • -sI选项就可以启用空闲扫描,允许进行端口完全欺骗扫描。可以利用不活跃的僵尸主机反弹给攻击者一个旁通信道,从而进行端口扫描。

nmap -sI www. Oday.co80 192. 168.126.131          #僵尸主机为www..0day.co

4 指纹识别与探测

  • -sV使用该选项不是进行一个端口扫描,而是根据端口对应的服务,根据服务指纹识别出相应的版本。
  • --version-intensity 选项可以为每个报文赋予1~9之间的值。被赋予较低值的探测报文对大范围的常见服务有效,而被赋予较高值的报文一般没有实际作用。值越高,服务越有可能被正确识别,但是这也会牺牲相当长的一段时间,强度必须在0~9,默认的强度是7。

--version-light则是对应的--version- intensity 2。

--version-all对应的是--version-intensity 9。

  • -sR选项多用于与其他端口扫描选项相结合使用。它对所有被发现开放的TCP/UDP端口执行SunRPC程序NULL命令,来试图确定它们是否为RPC端口,如果是RPC端口,则返回程序和版本号。
  • --osscan-limit选项仅在使用-O或-A进行操作系统检测时起作用。

5 时机调整

  1. 并行扫描组有最小、最大的设置:-min-hostgroup与 -max-hostgroup,介于5~1024,nmap --min-hostgroup 30 192.168.126.1/24
  2. -min-parallelism大于1可以在网络或主机不好的情况下更好地扫描,但这会影响到结果的准确度。-max-parallelism 应该设置为1,防止Nmap对同主机同 一时间发送多次报文。
  3. 一般情况下,rtt 值不得小于100毫秒,也最好不要超过1000毫秒。nmap --initial-rtt- timeout 1000ms 192. 168.126.131
  4. --host-timeout的单位是毫秒,一般我们设置为1800000 毫秒,保证Nmap在对单个主机扫描的时间上不会超过半小时,当然并不是在这半个小时的时间中只扫描这一个主机,其他的主机也会同时被扫描。

6 防火墙/IDS逃逸

  • 偏移量必须是8的倍数.
  • IP欺骗的语法如下:

Nmap -D [ decoy1, decoy2|RND: number] [目标]

使用-D选项可以指定多个IP地址,或者使用RND随机生成几个地址,在指定的诱饵之间使用逗号进行分割,需要注意的是在进行版本检测或者TCP扫描的时候诱饵是无效的。需要注意的是,诱饵主机必须处于工作状态,否则会导致目标主机的SYN洪水攻击。

  • -sI选项指定所需要发包的接口IP地址,nmap -sI www. Oday.co80 192. 168.126.131
  • 通常情况下,TCP包是40个字节,ICMPEcho有28个字节,所以在原来的报文基础上附加随机数据达到规避防火墙的效果。nmap --data-length 30 192.168.126.131
  • 冒失地指定一个MAC定制反而会引起管理员的怀疑,这时我们可以使用数字“0” 随机分配一个MAC地址。可以使用的参数包括0、MAC Address、Vendor Name.0表示随机生成个MAC地址,MAC Address表示用户手动指定一个MAC地址,Vendor Name表示从指定的厂商生成个 MAC地址。

摘录自:《NMAP渗透测试指南》

安全学习交流群:687398569

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值