前言
Nmap是功能最强大的扫描程序,用于执行许多功能,包括端口扫描,服务检测甚至漏洞检测。从入门到高级的Nmap 涵盖了许多基本概念和命令,我将讨论Nmap的一些高级技术。
正文
从安全的角度来看,防火墙和IDS(入侵检测系统)通常起着很好的作用,可以很好地保护远程目标,因为这些硬件和软件能够阻止入侵,但是在渗透测试的情况下,您需要绕过这些入侵工具以获得正确的结果,否则您将被误导。Nmap可以扫描远程目标计算机上的防火墙和其他入侵检测系统,因为它使用不同类型的技术来对抗这些软件,并且这些技术取决于远程软件。目标计算机上可能会安装两种类型的防火墙:
在目标计算机上还可以安装两种类型的IDS / IPS,这是渗透测试人员需要解决的情况。在这种情况下,可以使用许多不同类型的Nmap技术,例如:
nmap -sA 192.168.1.9
最好发送ACK数据包而不是SYN数据包,因为如果远程计算机上有活动的防火墙在工作,则由于ACK数据包,防火墙无法创建日志,因为防火墙将ACK数据包视为SYN的响应包。TCP ACK扫描要求攻击者侧具有root特权,并且对于无状态防火墙和IDS而言,其性能非常好。作为渗透测试人员,您需要检查防火墙的响应。可能有四种类型的响应:
因此,这是您在渗透测试期间可能会得到的一些重要响应。ACK扫描与其他类型的扫描技术略有不同,因为它并非旨在发现开放端口,但具有确定已过滤和未过滤响应的能力。
nmap -sW 192.168.1.9
与ACK扫描非常相似,只是略有不同,TCP窗口扫描旨在区分打开和关闭的端口,而不显示未过滤的端口。它还需要root特权才能执行。这种类型的扫描不会打开与目标计算机的任何活动会话,因此受害人的计算机不可能创建活动日志。它处理简单的现象,以发送ACK数据包并接收单个RST数据包作为响应。
nmap -f 192.168.1.9
nmap -ff 192.168.1.9
这是一个非常笼统的概念,可以在许多不同的情况下使用,例如:如果目标计算机没有处理较大数据包的能力,则分段技术可用于逃避防火墙。该技术的参数是-f,它只是将请求分成IP数据包的小段,称为分段IP数据包。如果要进一步中断IP标头,可以使用-f两次-ff。
nmap --spoof-mac Cisco 192.168.1.9
这是一种较为简单的技术,您可以欺骗您的MAC(攻击者MAC)地址。MAC地址欺骗给受害者提供了一个非常困难的情况,使受害者无法识别发起传入请求的计算机。Nmap可以基于供应商名称为每次扫描选择一个完全随机的MAC地址,另一种选择是手动指定MAC地址(通过这样做,攻击者可以欺骗同一网络上计算机的地址)。Nmap有一个名为nmap-mac-prefixes的数据库,
只要提供了供应商名称,它就会在数据库中查找合适的MAC地址。
==========================================================================================================分割线
高级部分
定时选项是Nmap的一个非常重要且有趣的功能,因为有时您需要在每个请求之间进行延迟。有很多原因,但是最重要的原因是网络压力。有时受害者的计算机甚至网络都无法处理大请求。作为渗透测试人员,您需要确保您的扫描不应被视为拒绝服务攻击(DoS),因此及时响应和请求是扫描中非常重要的方面。Nmap具有如此众多的功能和参数,它们对于及时扫描目标非常有帮助,如前所述,分段技术(-f)也是将请求分为多个段的有用技术。其他重要参数讨论如下:
nmap -scan_delay 5ms 192.168.1.9
这是可用于控制每个请求之间的延迟的最佳参数。由于您可以控制每个探测之间的时间,因此需要确保使用整数形式的计时,并且不要忘记提及时间单位:
nmap --host-timeout 5ms 192.168.1.9/24
有时主机需要太多时间来响应,如果您要扫描整个网络,则很难等待单个主机。响应缓慢的背后可能有很多原因,例如网络连接和防火墙,因此,如果您不想浪费时间,则可以设置时间限制。
Nmap脚本是Nmap的最佳功能之一。Nmap脚本对于渗透测试人员非常有用,因为它们可以节省大量时间和精力。在撰写本文时,Nmap脚本引擎拥有400多个脚本,您可以创建自己的脚本,每个人都可以创建脚本并将其提交给脚本引擎,以帮助渗透测试人员社区。
Nmap脚本可以执行许多不同的功能,从漏洞扫描到漏洞利用,从恶意软件检测到暴力破解。在本节中,我将讨论一些最佳的Nmap脚本及其用法:
nmap -sT -A --script=smb-vuln-*.nse 192.168.1.9/24
这是可以扫描以检查漏洞的重要脚本之一:
由于从NMAP 6.49beta6开始,smb-check-vulns.nse脚本被取消了。它被分为smb-vuln-conficker、•smb-vuln-cve2009-3103、smb-vuln-ms06-025、smb-vuln-ms07-029、smb-vuln-regsvc-dos、smb-vuln-ms08-067这六个脚本。用户根据需要选择对应的脚本。如果不确定执行哪一个,可以使用smb-vuln-*.nse来指定所有的脚本文件。
nmap -sV --script=http-enum 192.168.1.9/24
如果要在Web服务器上枚举以查找网站目录,则这是用于此目的的最佳Nmap脚本。http-enum脚本还用于发现打开的端口,并列出每个端口及其版本的软件。
nmap --script=samba-vuln-cve-2012-1182 -p 139 192.168.1.9/24
对目标计算机执行所需扫描以查找Samba堆溢出漏洞CVE-2012-1182的脚本。
nmap -sV --script=smtp-strangeport 192.168.1.9/24
出于安全原因,许多组织都在非标准端口上运行SMTP服务器。Smtp-strangeport是用于查找SMTP是否在标准端口上运行的脚本。
nmap -sV --script=http-php-version 192.168.1.9/24
顾名思义,已创建此脚本以从Web服务器获取PHP版本。该软件版本对于渗透测试人员查找相应漏洞非常重要,因此此脚本对于Web应用程序渗透测试非常有用。
Nmap脚本引擎包含许多脚本,您甚至可以找到针对特定软件或平台的多个脚本。例如:如果您想在基于WordPress的网站上进行渗透测试,则可以使用Nmap脚本来实现此目的。
nmap -sn 67.213.218.72 --script=dns-blacklist
在我看来,这是查找列入黑名单的IP地址的最佳脚本。您所要做的只是提供一个IP,然后脚本会检查它是否存在DNS反垃圾邮件和代理黑名单。