2019年05月08日 10:12 阅读量:1621
Nmap Scripting
Nmap Scripting是Nmap最好的功能之一。Nmap的脚本对渗透测试者是非常有用的,因为他们可以节省很多的时间与操作。在写这篇文章时,Nmap Scripting引擎已经超过了400个脚本,并且你也可以构造你自己的脚本,而且每个人都可以构造脚本,提交到脚本引擎中来帮助社区中的渗透测试人员。 Nmap脚本实现许多不同的功能,从漏洞扫描到利用,从恶意软件检测到暴力破解,无所不包。在这小节中,我们将讨论一些好用的Nmap脚本和他们的用法:
smb-check-vulns
这是一个用于检测以下漏洞的重要脚本:
1.MS08-067 Windows vulnerability that can be exploited 2.Conficker malware on the target machine 3.Denial of service vulnerability of Windows 2000 4.MS06-025 Windows vulnerability 5.MS07-029 Windows vulnerability
它可以非常容易的在目标机器发现以上漏洞,并且你可以通过Metasploit很容易的利用这些漏洞。
Http-enum
如果你想在web server中枚举出web站点的目录,这个Nmap脚本可以帮你很好的达到这个目的。http-enum脚本也可以发现打开的端口和每个端口软件的版本。
samba-vuln-cve-2012-1182
这个脚本可以用于查看目标机器是否存在Samba堆溢出CVE-2012-1187。
smtp-strangeport
许多机构在运行SMTP服务时,考虑到安全的因素,没有使用默认端口。Smtp-strangeport是一个可以判断SMTP是否运行在默认端口的脚本
http-php-version
顾名思义,这个脚本可以从web server获得PHP版本信息。这个软件版本信息对于渗透测试人员发现漏洞很重要,所以这个脚本对于web应用程序渗透测试非常有帮助。
Nmap脚本引擎包含很多你实际中遇到的软件平台的测试脚本。例如:如果你想对一个基于WordPress的web站点进行渗透测试,那么你可以使用以下Nmap脚本。
1.http-wordpress-plugins 2.http-wordpress-enum 3.http-wordpress-brute
dns-blacklist
这是我所见过的用户发现IP地址黑名单的最好的脚本。你需要做的只是提供IP地址,然后脚本会检查DNS反垃圾邮件和代理黑名单
PORT命令起作用,可以制造是别人进行端口扫描,扫描任何FTP服务器所能访问的主机,绕过防火墙和端口过滤器,但还是存在一些危险的,如果对方登陆到了你的这个匿名FTP服务器上,从日志查找到相应的匿名FTP连接,从而知道你的IP地址,这样就直接暴露了。
nmap -sI 空闲扫描,主要是欺骗端口扫描的源地址。
nmap -f 可以把TCP头分片的IP报文进行一些隐蔽的扫描。不完整的TCP报文不被防火墙阻塞也不被IDS检测到。
nmap-D
选择几台肉鸡,并使用-D标志在命令行中指定它们。namp通过诱骗的IP地址来进行欺骗式端口扫描,而系统管理员可以同时看到不同的端口扫描,而只有一个是真实的,很好的保护了自己。
os指纹识别
这个是nmap最有用的功能之一,就是可以鉴别远程主机。通过简单的执行网络扫描,nmap通常可以告诉你远程主机所运行的OS,甚至详细到版本号。当你指定-Q标志时,nmap将用几种不同的技术从主机返回IP报文中寻找这些鉴别信息。通过发送特别设计的TCP和UDP头,nmap可以得到远程主机对TCP/IP协议栈的处理方法。它将分析结果与保存在文件中的已知特征信息进行比较。
OS鉴别选项也可以让nmap对TCP报文进行分析以决定另外一些信息,如系统的启动时间,TCP序列号,预测的序列号使我们更容易截获报文并猜测序列号从而伪造TCP连接。
nmap命令使用详细解释
-P0 -PT -PS -PU -PE -PP -PM -PB 当nmap进行某种类型的端口或协议扫描时,通常都会尝试先ping 主机,这种尝试可使nmap不会浪费时间在那些未开机的主机上,但是许多主机与防火墙会阻塞ICMP报文,我们希望能通过控制使用。
-P0 告诉nmap不ping 主机,只进行扫描
-PT 告诉nmap使用TCP的ping
-PS 发送SYN报文。
-PU 发送一个udp ping
-PE 强制执行直接的ICMP ping
-PB 这是默认类型,可以使用ICMP ping 也可以使用TCP ping .
-6 该标志允许IPv6支持
-v -d 使用-v选项可得到更详细的输出,而-d选项则增加调试输出。
-oN 按照人们阅读的格式记录屏幕上的输出,如果是在扫描多台机器,则该选项很有用。
-oX 以xml格式向指定的文件记录信息
-oG 以一种易于检索的格式记录信息,即每台主机都以单独的行来记录所有的端口和0s信息。
-oA 使用为基本文件名,以普通格式(-oN)、XML格式(-oX)和易于检索的格式(-oG)jilu xinxi
-oM 把输出格式化为机器可阅读的文件
-oS 把输出进行傻瓜型排版
--resume如果你取消了扫描,但生成了供人或者供机器阅读的文件,那么可以把该文件提供给nmap继续让它扫描。
-iR-iL可以不在命令行中指定目标主机,而是使用-iR选项随即产生待扫描的主机,或者使用-iL选项从一个包含主机名或IP地址列表的文件中读取目标主机,这些主机名或IP地址使用空格、制表符或换行隔开。
-F nmap只扫描在nmap内建的服务文件中已知的端口,如果不指定该选项,nmap将扫描端口1-1024及包含在nmap-services文件中的所有其他端口。如果用-sO选项扫描协议,nmap将用它内建的协议文件(nmap-protocols文件)而不是默认地扫描所有256个协议。
-A nmap使用所有的高级扫描选项
-p 参数可以是一个单独的端口、一个用逗号隔开的端口列表、一个使用“-”表示的端口范围或者上述格式的任意组合。如果没有指定该选项,nmap将对包含前1024个端口的所有端口进行一次快速扫描。
-e在多穴主机中,可以指定你用来进行网络通信的网络接口。
-g可以选择一个源端口,从该端口执行所有的扫描。
--ttlnmap其发送的任何报文在到中间路由器的跳后会失效。
--packet-trace 可以显示扫描期间nmap发送和接收的各个报文的详细列表,这对调试非常有用。要与-o选项之一联合使用,需要根权限,以将所有的数据记录到文件。
--scanflags可以使用这个选项手工的指定欲在扫描报文中设置的TCP标志。也可以指定TCP标志的OOred值的整数形式,或者标志的字符串表示形式。
以上介绍的就是nmap在windows下和unix中的命令介绍。
nmap -sS -A --script=smb-check-vulns -P0 192.168.1.40
nmap -sS -A --script=smb-check-vulns --script-args=unsafe=1 -P0 192.168.1.40
nmap -PN -T4 -p139,445 -n -v --script smb-check-vulns,smb-os-discovery --script-args=unsafe=1 -P0 192.168.1.40