渗透测试工具Nmap

Nmap介绍:

是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具。软件名字Nmap是Network Mapper的简称。Nmap最初是由Fyodor在1997年开始创建的。随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行安全必备工具之一。最新版的Nmap6.0在2012年5月21日发布,详情请参见:www.nmap.org。
一般情况下,Nmap用于列举网络主机清单、管理服务升级调度、监控主机或服务运行状况。Nmap可以检测目标机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等信息。

Nmap优点:

1.      灵活。支持数十种不同的扫描方式,支持多种目标对象的扫描。
2.      强大。Nmap可以用于扫描互联网上大规模的计算机。
3.      可移植。支持主流操作系统:Windows/Linux/Unix/MacOS等等;源码开放,方便移植。
4.      简单。提供默认的操作能覆盖大部分功能,基本端口扫描nmap targetip,全面的扫描nmap –A targetip。
5.      自由。Nmap作为开源软件,在GPL License的范围内可以自由的使用。
6.      文档丰富。Nmap官网提供了详细的文档描述。Nmap作者及其他安全专家编写了多部Nmap参考书籍。
7.      社区支持。Nmap背后有强大的社区团队支持。
8.      赞誉有加。获得很多的奖励,并在很多影视作品中出现(如黑客帝国2、Die Hard4等)。
9.      流行。目前Nmap已经被成千上万的安全专家列为必备的工具之一。

Nmap功能:

主机发现(Host Discovery)

端口扫描(Port Scanning)
版本侦测(Version Detection)
操作系统侦测(Operating System Detection)

Nmap常用命令:

1.批量Ping探测: -sP参数,用来批量扫描一个网段的主机存活数,这里的结果只会显示在线的主机.

[root@localhost ~]# nmap -sP 192.168.1.0/24 > scan.log
[root@localhost ~]# cat scan.log | grep "Nmap scan" | awk '{print $5}'

2.跳过Ping探测: 有些主机关闭了ping检测,所以可以使用-P0跳过ping的探测,这样可加快扫描速度.

[root@localhost ~]# nmap -P0 192.168.1.7

3.计算网段主机IP: 仅列出指定网段上的每台主机,不发送任何报文到目标主机.

[root@localhost ~]# nmap -sL 192.168.1.0/24 > scan.log
[root@localhost ~]# cat scan.log | grep "Nmap scan" | awk '{print $5}'

4.扫描在线主机: 扫描一个网段的在线主机列表,功能类似于批量ping检测存活主机.

[root@localhost ~]# nmap -sn 27.201.193.0/24
[root@localhost ~]# cat scan.log | grep "Nmap scan" | awk '{print $5}'

5.扫描IP地址范围: 指定探测的网段,看是否在线.

[root@localhost ~]# nmap -sP 192.168.1.1-10
[root@localhost ~]# nmap -sP 27.201.193.100-200

6.探测开放端口(TCP/UDP): 探测目标主机开放的端口,可指定一个以逗号分隔的端口列表,如(-pS22,443,80).

[root@localhost ~]# nmap -pS22,80,443 192.168.1.10              // TCP探测
[root@localhost ~]# nmap -pU22,80,443 192.168.1.10              // UDP探测
[root@localhost ~]# nmap -p smtp,http,https 192.168.1.10

7.探测主机(SYN/TCP/UDP)扫描: SYN半开放扫描,TCP开放扫描.

[root@localhost ~]# nmap -sS 192.168.1.10       //SYN扫描
[root@localhost ~]# nmap -sT 192.168.1.10       // tcp
[root@localhost ~]# nmap -sU 192.168.1.10       // UDP扫描
[root@localhost ~]# nmap -sA 192.168.1.10       // TCP ACK扫描

8.主机协议探测: IP协议扫描,可以确定目标机支持哪些IP协议(TCP, ICMP, IGMP).

[root@localhost ~]# nmap -sO 192.168.1.10 | grep '^[0-9]'
1        open  icmp
6        open  tcp
7        open  udp

9.探测目标系统: 扫描探测目标主机操作系统,这里结果仅供参考有时候并不准确.

[root@localhost ~]# nmap -O 192.168.1.10 | grep "Running:"
Running: Microsoft Windows 2000 | XP

10.探测服务版本: 用于扫描目标主机服务的具体版本号.

[root@localhost ~]# nmap -sV 192.168.1.10 | grep '^[0-9]'
80/tcp   open   http            Apache httpd 2.4.23 ((Win32) OpenSSL/1.0.2j PHP/5.4.45)
3306/tcp open   mysql           MySQL 5.5.53
139/tcp  open   netbios-ssn
443/tcp  open   ssl/http        VMware VirtualCenter Web service
445/tcp  closed microsoft-ds
912/tcp  open   vmware-auth     VMware Authentication Daemon 1.0 (Uses VNC, SOAP)

11.跟踪报文(tracert): 跟踪发送和接收报文的数据流向.

[root@localhost ~]# nmap --packet-trace 192.168.1.10
SENT (4.7014s) TCP 192.168.1.30:50000 > 192.168.1.10:3527 S
SENT (4.7100s) TCP 192.168.1.30:50000 > 192.168.1.10:4446 S

12.输出本机接口: 输出检测到的接口列表和系统路由

root@localhost ~]# nmap --iflist 192.168.1.10

13.扫描多台主机: 一次性扫描多台目标主机,与网段扫描不相同.

[root@localhost ~]# nmap -sP 192.168.1.10 192.168.1.20
[root@localhost ~]# nmap -sP 192.168.1.10 192.168.1.20 192.168.1.30

14.扫描时排除主机:

nmap 10.0.1.161-162  --exclude 10.0.1.162       // 排除单个主机
nmap 10.0.1.161-163 --exclude 10.0.1.162-163    // 排除连续主机
nmap 10.0.1.161-163 --exclude 10.0.1.161,10.0.1.163  //排除分散主机
nmap 10.0.1.161-163  --excludefile ex.txt            // 排除文件里的主机

15.控制扫描时间: 调整探测报文的时间间隔,防止在单一主机上等待时间过长.

[root@localhost ~]# nmap --scan-delay 1 192.168.1.10
[root@localhost ~]# nmap --max-scan-delay 1 192.168.1.10   // 表示最多等待1秒
[root@localhost ~]# nmap --max-retries 1 192.168.1.10      // 数据包最多重传1次

16.输出指定格式: 通过相关选项,可以让Nmap输出指定的文件格式.

[root@localhost ~]# nmap -oX lyshark.xml 192.168.1.10     // 以XML格式输出扫描结果
[root@localhost ~]# nmap -oN lyshark.log 192.168.1.10     // 以标准格式输出到文本
[root@localhost ~]# nmap -oG lyshark.log 192.168.1.10     // 以Grep可识别的格式输出

17.导入扫描文件: 从一个文件中导入IP地址,并进行扫描.

[root@localhost ~]# cat lyshark.log
localhost
www.baidu.com
192.168.1.7

[root@localhost ~]# nmap -iL lyshark.log


防火墙的规避

18.规避IDS检测: 通过设置时间模板(<Paranoid=0|Sneaky=1)的方式,来规避IDS的检测.

[root@localhost ~]# nmap -T0 192.168.1.10
[root@localhost ~]# nmap -T1 192.168.1.10

19.报文分段探测: 将TCP头分段在几个包中,使得包过滤器、IDS以及其它工具的检测更加困难.

[root@localhost ~]# nmap -f 192.168.1.10            // 自动分段
[root@localhost ~]# nmap --mtu 4/8/16 192.168.1.10  // 自定义分段,必须是4的倍数

20.使用诱饵绕过: 使用诱饵隐蔽扫描,此处也可用自己的真实IP作为诱饵.

[root@localhost ~]# nmap -D 192.168.1.1 192.168.1.10

使用扫描脚本

Nmap不仅用于端口扫描,服务检测,其还具有强大的脚本功能,利用Nmap Script可以快速探测服务器,一般情况下,常用的扫描脚本会放在/usr/share/nmap/script目录下,并且脚本扩招名为*.nse后缀的,接下来将介绍最常用的扫描脚本.

扫描WEB敏感目录: 通过使用--script=http-enum.nse可以扫描网站的敏感目录.

[root@localhost ~]# nmap -p 80 --script=http-enum.nse www.mkdirs.com

绕开鉴权: 负责处理鉴权证书(绕开鉴权)的脚本,也可以作为检测部分应用弱口令.

[root@localhost ~]# nmap --script=auth www.mkdirs.com

默认脚本扫描: 脚本扫描,主要是搜集各种应用服务的信息,收集到后可再针对具体服务进行攻击.

[root@localhost ~]# nmap --script=default www.mkdirs.com

检测常见漏洞: 通过使用--script=vuln,可以扫描网站的常见漏洞,以及网页的目录结构.

[root@localhost ~]# nmap --script=vuln www.mkdirs.com

内网服务探测: 通过使用--script=broadcast,可以实现在局域网内探查更多服务开启状况.

[root@localhost ~]# nmap -n -p445 --script=broadcast 127.0.0.1

进行WhoIS查询: 通过使用--script whois模块,可以查询网站的简单信息.

[root@localhost ~]# nmap --script whois www.baidu.com

详细WhoIS解析: 利用第三方的数据库或资源,查询详细的WhoIS解析情况.

[root@localhost ~]# nmap --script external www.baidu.com

发现内网网关: 通过使用--script=broadcast-netbios-master-browser可以发现内网网关的地址.

[root@localhost ~]# nmap --script=broadcast-netbios-master-browser 192.168.1.1

发现WEB中Robots文件: 通过使用--script=http-robots.txt.nse可以检测到robots文件内容.

[root@localhost scripts]# nmap --script=http-robots.txt.nse www.baidu.com

检查WEB服务器时间: 检查web服务器的当前时间.

[root@localhost scripts]# nmap -p 443 --script http-date.nse www.baidu.com

执行DOS攻击: dos攻击,对于处理能力较小的站点还挺好用的.

[root@localhost ~]# nmap --script http-slowloris --max-parallelism 1000 www.mkdirs.com
Warning: Your max-parallelism (-M) option is extraordinarily high, which can hurt reliability

Starting Nmap 6.40 ( http://nmap.org ) at 2019-03-31 02:21 EDT

检查DNS子域: 检查目标ns服务器是否允许传送,如果能,直接把子域拖出来就好了.

[root@localhost scripts]# nmap -p 53 --script dns-zone-transfer.nse -v www.baidu.com

查询WEB旁站: 旁站查询,ip2hosts接口该接口似乎早已停用,如果想继续用,可自行到脚本里把接口部分的代码改掉.

[root@localhost scripts]# nmap -p80 --script hostmap-ip2hosts.nse www.baidu.com

口令爆破模块

暴力破解DNS记录: 这里以破解百度的域名为例子,由于内容较多这里简化显示.

[root@localhost scripts]# nmap --script=dns-brute.nse www.baidu.com

内网VNC扫描: 通过使用脚本,检查VNC版本等一些敏感信息.

[root@localhost ~]# nmap --script=realvnc-auth-bypass 127.0.0.1                                            #检查VNC版本
[root@localhost ~]# nmap --script=vnc-auth 127.0.0.1                                                       #检查VNC认证方式
[root@localhost ~]# nmap --script=vnc-info 127.0.0.1                                                       #获取VNC信息
[root@localhost ~]# nmap --script=vnc-brute.nse --script-args=userdb=/user.txt,passdb=/pass.txt 127.0.0.1  #暴力破解VNC密码

内网SMB扫描: 检查局域网中的Samba服务器,以及对服务器的暴力破解.

[root@localhost ~]# nmap --script=smb-brute.nse 127.0.0.1                                                            #简单尝试破解SMB服务
[root@localhost ~]# nmap --script=smb-check-vulns.nse --script-args=unsafe=1 127.0.0.1                               #SMB已知几个严重漏
[root@localhost ~]# nmap --script=smb-brute.nse --script-args=userdb=/user.txt,passdb=/pass.txt 127.0.0.1            #通过传递字段文件,进行暴力破解
[root@localhost ~]# nmap -p445 -n --script=smb-psexec --script-args=smbuser=admin,smbpass=1233 127.0.0.1             #查询主机一些敏感信息:nmap_service
[root@localhost ~]# nmap -n -p445 --script=smb-enum-sessions.nse --script-args=smbuser=admin,smbpass=1233 127.0.0.1  #查看会话
[root@localhost ~]# nmap -n -p445 --script=smb-os-discovery.nse --script-args=smbuser=admin,smbpass=1233 127.0.0.1   #查看系统信息

MSSQL扫描: 检查局域网中的SQL Server服务器,以及对服务器的暴力破解.

[root@localhost ~]# nmap -p1433 --script=ms-sql-brute --script-args=userdb=/var/passwd,passdb=/var/passwd 127.0.0.1  #暴力破解MSSQL密码
[root@localhost ~]# nmap -p 1433 --script ms-sql-dump-hashes.nse --script-args mssql.username=sa,mssql.password=sa 127.0.0.1   #dumphash值
[root@localhost ~]# nmap -p 1433 --script ms-sql-xp-cmdshell --script-args mssql.username=sa,mssql.password=sa,ms-sql-xp-cmdshell.cmd="net user" 192.168.137.4 xp_cmdshell      #执行命令

 关于Nmap的命令还有很多...常见参数:

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值