第八章(二)—漏洞扫描(nmap脚本使用)

nmap脚本

nmap扫描脚本,默认集成500多个脚本,这些脚本是有分类的,每个脚本所做的工作是不同方面的。
在这里插入图片描述

/usr/share/nmap/scripts/   #nmap的脚本都在该目录下存放
cat script.db
less script.db | grep vuln | wc -l #查看nmap中有多少个关于弱点vuln的脚本

每个脚本后面都有一个分类categories,后面的参数内容描述了该脚本属于哪些分类
第八章(二)—漏洞扫描(nmap脚本使用)_第1张图片
在这里插入图片描述

nmap漏洞扫描

NSE漏洞扫描的优势:

可以使用Nmap API来完成对扫描过程中收集信息的处理
NSE脚本可以在执行过程中和其他脚本共享获得的信息
NSE中提供了大量网络协议库的组件
NSE中提供了漏洞库文件,利用漏洞库文件可以创建一份优秀的漏洞报告
NSE中提供了强大的并发机制和错误处理机制

如果想要使用这个分类下的所有脚本,可以在–script的后面加上分类名称,同样我们可以用相似的方法来提高目标版本的检测功能,以及将目标端口设置为全部有效端口。

nmap -p- -sV --version-all --script vuln 192.168.126.131

如果我们想得到详细的信息,可以使用参数vuln.showall显示全部内容

#常用的nse分类如下:
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

-p- 指的是将目标端口指定为全部有效端口, -sV --version-all 用来提高版本检测的效率。
运行上面的指令稍微等待一会儿,我们可以得到一份漏扫报告

例:smb-vuln-ms10-061.nse

这个脚本是stuxnet蠕虫利用的4个漏洞之一。计算机武器类的病毒。
通过LANMAN API去枚举对方目标系统的共享打印机,如果发现了共享打印机,一些低版本的操作系统在没有打补丁的情况下,他的Print Spooler系统服务默认的权限是配置不当的,通过请求Print Spooler这个服务就可以实现在目标系统的系统目录下去创建文件,执意任意代码,直接控制目标系统。当然前提是目标系统开放了LANMAN

nmap -p 445 1.1.1.1 --script=smb-vuln-ms10-061

原理:
连接目标系统的445文件共享端口。
在这里插入图片描述第八章(二)—漏洞扫描(nmap脚本使用)_第2张图片
如何去发现这个漏洞?
不同的扫描软件有不同的判断机制。

1.smb-vuln-ms10-061.nse
有些扫描软件会向nmap使用的smb-vuln-ms10-061.nse脚本,它会先去探测目标系统有没有共享的打印机,然后去探测共享打印机的名称,如果说目标系统有共享打印机,并被扫描器探测到其名称,使用LANMAN API去探测到打印机的名称,他就会直接进行攻击性的探测。

判断条件:基于目标系统是否开放LANMAN服务。

缺点:只通过smb-vuln-ms10-061.nse脚本默认的LANMAN API去查询目标机器,如果目标机器没有开放LANMAN,当使用nmap的这个脚本去查询的时候,扫描脚本会直接判断目标系统不存在这个漏洞。

2.smb-vuln-ms10-061.nse+smb-enum-share
如果目标系统没有开放LANMAN API,通过smb-vuln-ms10-061.nse脚本默认的连接方式,连接不上目标系统的共享打印机,这时可以通过nmap的smb-enum-shares.nes枚举共享脚本去发现目标系统的共享打印机,在使用该脚本的时候,有时候需要你提供目标系统管理员的账号密码才可以跟目标系统建立上连接然后枚举上他的共享打印机,这个是受目标系统的共享打印机共享时的权限所限制的,所有有些是必须提供账号密码才可以建立连接。然后利用这个脚本去发现目标系统有共享打印机,然后再利用smb-vuln-ms10-061.nse这个漏洞去探测他是不是可以在目标系统的目录下创建文件和执行任意代码。

判断条件:基于目标系统ms10-061这个补丁是否安装。

缺点:通过目标系统的账号密码去登录到目标系统,然后通过查目标系统有没有打ms10-061这个补丁这种方式去判断目标系统是否存在这个漏洞。这样存在一个问题,当目标系统没有安装ms10-061这个补丁,有些扫描器就会判断目标系统有这个漏洞了。但是其实目标服务器也没有开放共享的打印机,即这个漏洞不会被别人利用去控制我的服务器。此时判断的结果也就没办法百分百的准确,应综合的看待漏洞威胁。
smb-enum-share枚举共享

#身份认证参数——smbuser/smbpassword
 nmap -p445 --script=smb-enum-shares.nes --script-args=smbuser=admin,smbpassword=pass 1.1.1.1

第八章(二)—漏洞扫描(nmap脚本使用)_第3张图片

可以用同样的方法去学习和了解nmap中vuln相关的脚本。
可参考:https://blog.51cto.com/14309999/2448947

你可能感兴趣的:(kail)