nmap操作说明之nmap高级用法

Nmap高级用法

Nmap 脚本引擎

Nmap Scripting Engine(NSE) 是 Nmap 非常重要的特性,它允许用户使用 Lua 语言编写简单的脚本程序来实现各种网络管理任务的自动化运行。目前 Nmap 已提供超过 150 个脚本,可以在 https://nmap.org/nsedoc/ 查看和下载这些脚本,或者在本地 Nmap 安装目录下的 scripts 目录中查看这些脚本,或者编写 Lua 程序定制脚本。

nmap脚本主要分为以下几类,在扫描时可根据需要设置–script=类别这种方式进行比较笼统的扫描:

类别解释
auth负责处理鉴权证书(绕开鉴权)的脚本
broadcast在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务
brute提供暴力破解方式,针对常见的应用如http/snmp等
default使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力
discovery对网络进行更多的信息,如SMB枚举、SNMP查询等
dos用于进行拒绝服务攻击
exploit利用已知的漏洞入侵系统
external利用第三方的数据库或资源,例如进行whois解析
fuzzer模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞 intrusive:入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽
malware探测目标机是否感染了病毒、开启了后门等信息
safe此类与intrusive相反,属于安全性脚本
version负责增强服务与版本扫描(Version Detection)功能的脚本
vuln负责检查目标机是否有常见的漏洞(Vulnerability),如是否有MS08_067

nmap的脚本默认目录为:/usr/share/nmap/scripts/

扫描优化

选项解释
–min-hostgroup调整并行扫描组的大小
–min-parallelism调整探测报文的并行度
–max-parallenlism调整探测报文的并行度
–min-rtt-timeout调整探测报文超时
–max-rtt-timeout调整探测报文超时
–initial-rtt-timeout调整探测报文超时
–host-timeout放弃低速目标主机
–scan-delay调整探测报文的时间间隔
–max-scan-delay调整探测报文的时间间隔

调整并行扫描组的大小

Nmap默认情况下在进行扫描的时候,首先开始扫描较小的组,最小为5,随后慢慢增长组的大小,最大为1024,为了保证效率,Nmap会针对UDP或少量端口的TCP扫描。
–max-hostgroup选项用于说明使用最大的组,Nmap不会超过这个大小。–min-hostgroup选项说明最小的组,Nmap会保持组大于这个值。

nmap  --min-hostgroup  30  192.168.0.12/24
nmap  --max-hostgroup  10  192.168.0.12/24

调整探测报文的并行度

–min-parallelism大于1可以在网络或主机不好的情况下更好地扫描,但会影响准确度。–max-parallelism应该设置为1,防止Nmap对同一主机同一时间发送多次报文。

nmap --min-parallelism 100 192.168.0.12/24
nmap --max-parallelism 100 192.168.0.12

调整探测报文超时

使用–max-rtt-timeout选项时,规定100毫秒比较合适。一般情况下,rtt值不得小于100毫秒,也最好不要超过1000毫秒。

namp --initial-rtt-timeout 1000ms 192.168.0.12
nmap --max-rtt-timeout 500ms 192.168.0.12
nmap --min-rtt-timeout 500ms 192.168.0.12

放弃缓慢的目标主机

nmap --host-timeout 100ms 192.168.0.12/24

调整报文适合时间间隔

改选项可以控制Nmap对一个或多个主机发送探测报文的等待时间,等待时间以毫秒为单位,很多时候Nmap会发送很多不必要的报文,会时Nmap运行速度降低。当我们的带宽不是很乐观的情况下可以使用该选项,但此选项并不能将Nmap应有的性能发挥出来,对于这个选项还是需要谨慎使用。

nmap --scan-delay ls 192.168.0.12
nmap--max-scan-delay 30s 192.168.0.12

防火墙/IDS逃逸

选项解释
-f报文分段
–mtu指定偏移大小
-DIP欺骗
-sI源地址欺骗
–source-port源端口欺骗
–data-length指定发包长度
–randomize-hosts目标主机随机排序
–spoof-macMAC地址欺骗

报文分段

在Nmap使用-f选项时会将TCP头分段在几个包中,使得包过滤器、IDS以及其他工具的检测更加困难。Nmap在IP头后会将包分为8个字节或更小。
一些主机会禁止相应ICMP请求,对于这种情况就可以使用报文分段的方法来逃避目标防火墙的规则。

nmap  -f  -v  192.168.121.1

指定偏移大小

此值设定TCP/IP协议传输数据报时的最大传输单元。使用指定MTU可以达到逃逸防火墙/IDS的目的,需要注意的是偏移量必须是8的倍数。

nmap  --mtu  16  192.168.126.131

IP欺骗

在使用该选项对目标进行扫描的时候,会让目标主机误认为是在利用诱饵进行扫描,而不是一个真实的扫描,这样可以躲避防火墙和某些规则的限制,也可以达到隐藏自身的目的,这在实际的扫描中是非常有用的一个选项。
可以使用英文的逗号对每个诱饵主机进行分割,当然也要领会目标主机管理员的想法,他可能会认为该扫描使用的是诱饵主机进行的扫描,而不是真实的扫描地址,因此会忽略这次扫描,反而可以使用自己的真实IP去进行扫描,会达到欺骗目标主机管理员的目的,这样做时最好与诱饵主机交叉使用。
IP欺骗语法如下:

Nmap -D【decoy1,decoy2…|RND:number】【目标】

使用-D选项可以指定多个IP地址,或使用RND随机生成几个地址,在指定的诱饵之间使用逗号进行分割,需注意的是在进行版本检测或者TCP扫描的时候诱饵是无效的。

nmap -D RND:11 192.168.126.131
nmap -D 192.168.0.1,192.168.0.2,192.168.0.254 192.168.121.1
nmap -D 192.168.0.1,192.168.0.2,192.168.0.254,ME  192.168.121.1

注意:诱饵主机必须处于工作状态,否则会导致目标主机的syn洪水攻击。

源地址欺骗

使用-sI可以进行源地址欺骗,如果Nmap无法确定你的源地址,Nmap会给出相应的提示,我们使用该选项指定所需要发包的接口IP地址。

nmap  -sI  www.oday.co:80  192.168.126.131

源端口欺骗

使用–source-port选项就可以进行源端口欺骗,也可以使用-g,我们只需提供一个端口号,Nmap就可以从这些端口中发送数据,因为防火墙对服务器的设置会根据端口选择是否信任数据流,管理员可能会认为这些端口不会有攻击发生,可以利用这些端口进行扫描。

nmap  --source-port  53 192.168.126.131

指定发包长度

通常情况下,TCP包时40个字节,ICMP Echo 有28个字节,所以在原来的报文基础上附加随机数据达到规避防火墙的效果。

nmap  --data-length 30 192.168.126.131

目标主机随机排序

使用–randomize-hosts选项就可以对目标主机的顺序进行随机排序,最多可达8096个主机。单方面使用这个选项对防火墙/IDS逃逸效果不大,如果配合时间选项则会有很好的效果。

nmap  -randomize-hosts 192.168.126.1-200

MAC地址欺骗

使用–spoof-mac选项就可以进行MAC欺骗。冒失的指定一个MAC定制反而会引起管理员的怀疑,这时我们可以使用字符串“0”随机分配一个MAC地址。指定的MAC地址最好真实存在,这样才能起到欺骗效果。
–spoof-mac选项可以使用 的参数包括0、MAC Address、Vendor Name。0表示随机生成一个MAC地址,MAC Address表示用户手动指定一个MAC地址,Vendor Name表示从指定的厂商生成一个MAC地址。

nmap -sT -PN --spoof-mac 0 192.126.131

Nmap技巧

nmap中不常用但是却非常有用的选项。

选项解释
–send-eth发送以太网数据包
–send-ip网络层发送
–privileged假定拥有所有权
–interactive在交互模式中启动
-d设置调试级别
–packet-trace跟踪发送接受的报文
-iflist列举接口和路由
-e指定网络接口
-oG继续中断扫描
firewalk探测防火墙
vmauthd-bruteVM认证破解

 

发送以太网数据包

该选项会要求Nmap在数据链路层发送报文,而不是在网络层发送报文。注意:在UNIX中无论是否使用该选项,Nmap都会使用原IP包。

nmap  --send-eth  192.168.126.131

网络层发送

该选项要去Nmap通过网络层发送报文,而不是在数据链路层发送报文,这个选项与–send-eth选项在实际运用中相互补充。

nmap  --send-ip  192.168.126.131

假定拥有所有权

–privileged选项要求Nmap假定其具有足够的权限进行源套接字包发送、报文捕获和类似UNIX系统中根用户操作的权限。默认状态下,如果由getuid()请求的类似操作不为0,Nmap将退出。
–pricileged在具有Linux内核性能的类似系统中使用非常有效,这些系统配置允许非特权用户可以进行原报文扫描。需要明确的是,其他选项之前使用这些西药权限的选项(SYN扫描、操作系统检测等)。Nmap-PRIVILEGED变量设置等价于–privileged选项。

在交互模式中启动

Nmap提供交互模式,便于进行多个扫描。如果使用这个选项,需要对shell终端的命令足够熟悉。

nmap  --interactive 
n  -T4  192.168.126.163

设置调试级别

当详细模式也不能为问提供充足的数据时,可以启用-d选项,在-d选项后面填入输入表示调试级别可选1~9,-d 9 是最高阶别,这时候产生的数据会非常多。

nmap  -d  1  192.168.126.131

跟踪发送接受的报文

该选项经常用于调试,而不是实际运用到扫描网络。该选项会要求Nmap将接收到的每个报文打印出来。未来便于分析,可以使用-p选项控制端口而产生少量的报文,便于我们分析。

nmap  --packet-trace  -p  20-30  192.168.126.131

列举接口和路由

该选项会告诉Nmap打印出检测到的接口列表和路由,多用于调试路由。

nmap  --iflist www.0day.co

指定网络接口

-e选项可以指定从哪个网络接口发送数据。

nmap -e eth0 192.168.126.131

继续中断扫描

在使用Nmap扫描网络的时候可能会需要很长的时间,但是我们可能需要在多个时间的进行扫描,或者由于其他的原因导致网络中断时,我们可以使用–resume选项继续扫描,但是必须配合-oN选项或者-oG选项使用。
我们使用-oG将扫描结果保存为TXT,然后在扫描过程中按下Ctrl+C中断扫描。

nmap  -oG 1.txt -v 192.168.126.1/24
nmap  --resume 1.txt

Nmap的分布式实现-Dnmap

Dnmap是一款基于Nmap的分布式框架,使用客户端/服务器架构,服务器接受命令并发送至客户端进行Nmap安全扫描,扫描完毕后,客户端返回扫描结果。
首先再http://sourceforge.net/projects/dnmap/下载Dnmap。
下载安装好之后
新建一个文件,写入需要扫描的命令,每行一条,如下所示:

启动Dnmap服务。-f选项指定我们的命令文件。

./dnmap_server.py  -f  /home/test

重新打开一个终端,让Dnmap链接服务器。

./dnmap_client.py -s 192.168.126.130 -a test 

此时两个Dnmap的窗口数据会不断滚动直到扫描完成。
在nmap_output文件夹下面有Dnmap保存的扫描结果。

探测防火墙

在Nmap的firewalk脚本通过发送一个请求并分析TTL值,可以探测防火墙的规则。

nmap  --script=firewalk  --traceroute 192.168.131.1

VMWare认证破解

Nmap中的vmauthd-brute脚本可以破解安装虚拟机系统的用户名与密码。

nmap -p 902 --script vmauthd-brute 192.168.121.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值