2.1.1 工具准备
在蓝队攻击任务中,各类工具的运用会贯穿始终,高质量的工具往往能起到事半功倍的效果,极大提升蓝队的攻击效率。因为攻防演练任务紧、时间有限,很多战机稍纵即逝,而现场临时对渗透工具进行搜集匹配或调试往往会耽误宝贵的时间,甚至错过极佳的突破时机,所以高质量的工具准备是蓝队攻击任务高效推进的有力保证。网络实战攻防演练前,需要准备任务各环节会用到的工具,包括信息搜集、扫描探测、口令爆破、漏洞利用、远程控制、Webshell管理、隧道穿透、网络抓包分析和集成平台等各类工具。
1. 信息搜集工具
蓝队主要利用信息搜集工具搜集目标网络IP、域名等详细网络信息,并利用搜集到的信息准确确定渗透攻击范围。常用的工具如下。
(1)Whois
Whois(音同“Who is”,非缩写)是用来查询域名的IP及所有者等信息的传输协议。简单来说,Whois就是一个用来查询域名是否已经被注册、注册域名详细信息(如域名所有人、域名注册商)的数据库。通过Whois可实现对域名信息的查询。早期的Whois查询多以命令列接口存在,现在出现了一些基于网页接口的简化线上查询工具,可以一次向不同的数据库查询。APNIC(Asia-Pacific Network Information Center,亚太互联网络信息中心),是全球五大区域性因特网注册管理机构之一,负责亚太地区IP地址、ASN(自治域系统号)的分配并管理一部分根域名服务器镜像。CNNIC(China Internet Network Information Center,中国互联网络信息中心)是我国的域名体系注册管理机构。APNIC和CNNIC均提供所辖范围内域名信息查询的Whois服务。
(2)nslookup命令工具
nslookup是Windows系统中一个非常有用的命令解析工具,用于连接DNS服务器、查询域名信息。它可以指定查询的类型,可以查到DNS记录的生存时间,还可以指定使用哪个DNS服务器进行解释。在已安装TCP/IP协议的电脑上均可以使用这个命令工具探测域名系统(DNS)基础结构的信息。
(3)DIG命令工具
DIG(Domain Information Groper,域名信息搜索器)是Linux和Unix环境下与Windows环境下的nslookup作用相似的域名查询命令工具。DIG工具能够显示详细的DNS查询过程,是一个非常强大的DNS诊断查询工具,具有设置灵活、输出清晰的特点。一般Linux和Unix系统都已内置了该功能,而在Windows环境下只有nslookup工具,也可以考虑安装和部署DIG工具。
(4)OneForAll子域名搜集工具
OneForAll是一款基于CPython开发的功能强大的子域收集工具,具有全面的接口和模块支持,集成证书透明度、网络爬虫、常规检查、DNS数据集、DNS查询与搜索引擎6个模块,支持各搜集模块多线程调用,对搜集的子域结果自动去重,有较高的扫描效率,并且支持将搜集结果以多种格式导出利用。
2. 扫描探测工具
蓝队主要利用扫描探测工具对目标Web应用系统、网络设备、终端主机或服务器进行漏洞和薄弱点发现,为进一步利用扫描探测到的漏洞实施渗透攻击做准备。网上公开、免费的扫描探测工具非常多,有的蓝队还会自主开发扫描探测工具。比较有名的开源扫描探测工具有以下几个。
(1)Nmap
Nmap(Network Mapper)是一款开放源代码的网络探测和安全审核工具,具备对Windows、Linux、macOS等多个操作系统的良好兼容性,功能包括在线主机探测(检测存活在网络上的主机)、端口服务探测(检测主机上开放的端口和应用服务)、设备指纹探测(监测目标系统类型和版本信息)和漏洞探测(借助Nmap脚本对目标脆弱性进行扫描和检测)。Nmap扫描示例见图2-3。
图2-3 Nmap扫描示例
(2)Nessus
Nessus是一款功能强大、操作方便的网络系统安全扫描工具,号称是“全球使用人数最多的系统漏洞扫描与分析软件,全世界超过75 000个组织在使用它”。Nessus采用集成技术帮助执行物理和虚拟设备发现及软件安全审核,通过插件库实现功能拓展和最新漏洞补丁检测,并提供对包括移动设备在内的广泛的网络资产覆盖和架构环境探测。
(3)AWVS
AWVS(Acunetix Web Vulnerability Scanner)是一款知名的Web网络漏洞扫描工具,利用网络爬虫原理来测试Web网站的安全性。AWVS采用AcuSensor技术和自动化客户端脚本分析器实现业内最先进且深入的SQL注入和跨站脚本测试,集成了HTTP Editor和HTTP Fuzzer等高级渗透测试工具,允许对AJAX和Web 2.0应用程序进行安全性测试,支持通过多线程高速扫描Web网络服务来检测流行安全漏洞。AWVS的扫描任务界面如图2-4所示。
图2-4 AWVS扫描任务界面
(4)Dirsearch
Dirsearch是一款用Python开发的目录扫描工具,可对包括目录和文件在内的网站Web页面结构进行扫描,进而搜集关于后台目录、后台数据库、弱口令、安装包、网站源码和后台编辑器类型等敏感信息的信息。
(5)Nikto
Nikto是一款开源的Web安全扫描工具,可对Web服务器进行全面的多项安全测试,扫描指定主机的Web类型、主机名、目录、特定CGI漏洞。Nikto使用Rain Forest Puppy的LibWhisker实现HTTP功能,并且可以检查HTTP和HTTPS,同时支持基本的端口扫描以判定网页服务器是否运行在其他开放端口上。
3. 口令爆破工具
口令意味着访问权限,是打开目标网络大门的钥匙。蓝队主要利用口令爆破工具来完成对目标网络认证接口用户名和口令的穷尽破解,以实现对目标网站后台、数据库、服务器、个人终端、邮箱等目标的渗透控制。
(1)超级弱口令检查工具
超级弱口令检查工具(弱口令扫描检测)是可在Windows平台运行的弱密码口令检测工具,支持批量多线程检查,可以快速检测弱密码、弱密码账户、密码支持和用户名组合检查,从而大大提高检查成功率,并且支持自定义服务。该工具目前支持SSH、RDP、Telnet、MySQL、SQL Server、Oracle、FTP、MongoDB、Memcached、PostgreSQL、SMTP、SMTP_SSL、POP3、POP3_SSL、IMAP、IMAP_SSL、SVN、VNC、Redis等服务的弱密码检查爆破(见图2-5)。
图2-5 超级弱口令检查工具
(2)Medusa
Medusa是Kali Linux系统下对登录服务进行暴力破解的工具,基于多线程并行可同时对多个主机、服务器进行用户名或密码强力爆破,以尝试获取远程验证服务访问权限。Medusa支持大部分允许远程登录的服务,包括FTP、HTTP、SSH v2、SQL Server、MySQL、SMB、SMTP、SNMP、SVN、Telnet、VNC、AFP、CVS、IMAP、NCP、NNTP、POP3、PostgreSQL、rlogin、rsh等(见图2-6)。
图2-6 Medusa可爆破种类列表
(3)Hydra
Hydra是一个自动化的爆破工具,可暴力破解弱密码,已经集成到Kali Linux系统中。Hydra可对多种协议执行字典攻击,包括RDP、SSH(v1和v2)、Telnet、FTP、HTTP、HTTPS、SMB、POP3、LDAP、SQL Server、MySQL、PostgreSQL、SNMP、SOCKS5、Cisco AAA、Cisco auth、VNC等。它适用于多种平台,包括Linux、Windows、Cygwin、Solaris、FreeBSD、OpenBSD、macOS和QNX/BlackBerry等。Hydra命令参数见图2-7。
图2-7 Hydra命令示意图
(4)Hashcat
Hashcat是一款免费的密码破解工具,号称是基于CPU的最快的密码破解工具,适用于Linux、Windows和macOS平台。Hashcat支持各种散列算法,包括LM Hashes、MD4、MD5、SHA系列、UNIX Crypt格式、MySQL、Cisco PIX。它支持各种攻击形式,包括暴力破解、组合攻击、字典攻击、指纹攻击、混合攻击、掩码攻击、置换攻击、基于规则的攻击、表查找攻击和Toggle-Case攻击(破译示例见图2-8)。
图2-8 Hashcat破译示意图
4. 漏洞利用工具
漏洞利用工具可实现对目标网络中硬件、软件、服务或协议漏洞的自动化应用。根据不同的漏洞类型,漏洞利用工具可以分为许多种,多通过单个Poc & Exp实现漏洞利用。蓝队会根据新漏洞的不断出现而不停更换漏洞利用工具。以下是最近攻防演练中比较典型的几个。
(1)WebLogic全版本漏洞利用工具
WebLogic是基于Java EE架构的中间件,被用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。该漏洞利用工具集成WebLogic组件各版本多个漏洞自动化检测和利用功能,可对各版本WebLogic漏洞进行自动化检测和利用,根据检测结果进行执行命令等针对性利用并获取服务器控制权限(见图2-9)。
图2-9 WebLogic漏洞工具
(2)Struts2综合漏洞利用工具
Struts2是一个相当强大的Java Web开源框架,在MVC设计模式中,Struts2作为控制器来建立模型与视图的数据交互。Struts2综合漏洞利用工具集成了Struts2漏洞的检测和利用功能,可实现利用Struts2漏洞进行任意代码执行和任意文件上传(见图2-10)。
图2-10 Struts2漏洞利用工具
(3)sqlmap注入工具
sqlmap是一个自动化的SQL注入工具,可用来自动检测和利用SQL注入漏洞并接管数据库服务器。它具有强大的检测引擎,集成众多功能,包括数据库指纹识别、从数据库中获取数据、访问底层文件系统以及在操作系统上内连接执行命令,同时内置了很多绕过插件,支持的数据库有MySQL、Oracle、PostgreSQL、SQL Server、Access、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB(见图2-11)。
图2-11 sqlmap模拟执行
(4)vSphere Client RCE漏洞(CVE-2021-21972)利用工具
vSphere是VMware推出的虚拟化平台套件,包含ESXi、vCenter Server等一系列的软件,其中vCenter Server为ESXi的控制中心,可从单一控制点统一管理数据中心的所有vSphere主机和虚拟机。vSphere Client(HTML5)在vCenter Server插件中存在一个远程执行代码漏洞。蓝队可以通过开放443端口的服务器向vCenter Server发送精心构造的请求,写入Webshell,控制服务器(见图2-12)。
图2-12 vCenter Server管理界面
(5)Windows Print Spooler权限提升漏洞(CVE-2021-1675)
Windows Print Spooler是Windows系统中用于管理打印相关事务的服务。在域环境中合适的条件下,无须进行任何用户交互,未经身份验证的远程攻击者就可以利用CVE-2021-1675漏洞以system权限在域控制器上执行任意代码,从而获得整个域的控制权。
(6)Exchange Server漏洞组合利用(CVE-2021-26855 & CVE-2021-27065)
Exchange Server是微软公司的一套电子邮件服务组件,是个消息与协作系统。CVE-2021-26855是一个SSRF(服务器端请求伪造)漏洞,蓝队可以利用该漏洞绕过身份验证发送任意HTTP请求。CVE-2021-27065是一个任意文件写入漏洞,单独情况下利用该漏洞需要进行身份认证。此漏洞还伴生着一个目录跨越漏洞,蓝队可以利用该漏洞将文件写入服务器的任何路径。两个漏洞相结合可以达到绕过权限直接获取反弹执行命令权限。
5. 远程控制工具
蓝队主要利用远程控制工具对目标网络内服务器、个人计算机或安全设备进行管理控制。借助于一些好的远程控制工具,蓝队可以跨不同系统平台进行兼容操作,实现高效拓展。
(1)Xshell
Xshell是一款强大的安全终端模拟软件,支持SSH1、SSH2以及Windows平台的TELNET协议。Xshell可以用来在Windows界面下访问远端不同系统下的服务器,从而比较好地达到远程控制终端的目的(见图2-13)。
图2-13 Xshell远程连接界面
(2)SecureCRT
SecureCRT是一款终端仿真程序,支持Windows下远程登录Unix或Linux服务器主机。SecureCRT支持SSH,同时支持Telnet和rlogin协议,是一款用于连接运行Windows、Unix和VMS的远程系统的理想工具(见图2-14)。
(3)PuTTY
PuTTY是一个串行接口连接软件,可用于远程登录控制功能,支持对Windows平台、各类Unix平台SSH、Telnet、Serial等协议的连接(见图2-15)。
图2-14 SecureCRT初始连接界面
图2-15 PuTTY连接配置截图
(4)Navicat
Navicat是一款数据库管理工具,可用来方便地管理MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB和MongoDB等不同类型的数据库,并与Amazon RDS、Amazon Aurora、Oracle Cloud、Microsoft Azure、阿里云、腾讯云和华为云等云数据库管理兼容,支持同时创建多个连接、无缝数据迁移、SQL编辑、数据库设计和高级安全连接等功能(见图2-16)。
图2-16 Navicat管理维护数据库
6. Webshell管理工具
蓝队主要利用Webshell管理工具对攻击载荷进行管理和运用,借助Webshell规避免杀、远程注入和跨网间隐蔽通信等技术实现对目标系统的渗透拓展。
(1)冰蝎
冰蝎(Behinder)是一个动态二进制加密网站管理客户端,基于Java,可以跨平台使用,因其优秀的跨平台兼容性和加密传输特性而被攻击者广泛采用。冰蝎集成了命令执行、虚拟终端、文件管理、SOCKS代理、反弹shell、数据库管理、自定义代码、Java内存马注入、支持多种Web容器、反向DMZ等功能(见图2-17)。
(2)中国蚁剑
中国蚁剑(AntSword)是一款开源的跨平台网站管理工具,也是一款非常优秀的Webshell管理工具。它集成了shell代理、shell管理、文件管理、虚拟终端和数据库管理功能,通过自定义编码器支持攻击载荷加密或编码免杀实现WAF、防火墙等一些防御手段规避绕过,通过丰富的插件库支持自定义载荷实现静态、动态免杀,进而实现Webshell高效渗透利用(见图2-18)。
图2-17 冰蝎界面
图2-18 利用中国蚁剑连接初始化
(3)哥斯拉
哥斯拉(Godzilla)是一款相对较新的Webshell管理工具,它基于Java开发,具有较强的各类shell静态查杀规避和流量加密WAF绕过优势,且自带众多拓展插件,支持对载荷进行AES等各种加密、自定义HTTP头、内存shell以及丰富的Webshell功能(见图2-19)。
图2-19 哥斯拉远程管理
7. 内网穿透工具
出于业务安全需要,目标网络内部应用多无法直接出网。蓝队在攻击过程中需要利用内网穿透工具实现外网到内网的跨边界跳转访问,借助端口转发、隧道技术等手段对内网目标实现转发访问或将目标内网IP映射到外网,并在远控客户端和被攻击目标终端之间建立一个安全通信通道,为进一步从外到内渗透拓展提供便利。
(1)FRP
FRP是一个可用于内网穿透的高性能反向代理工具,支持TCP、UDP、HTTP、HTTPS等协议类型,主要利用处于内网或防火墙后的机器,对外网环境提供HTTP或HTTPS服务,支持加密传输和点对点穿透(见图2-20)。
(2)ngrok
ngrok是一个开源的反向代理工具。蓝队可利用ngrok将边界服务器(如Web服务器)作为反向代理服务器,在客户端和目标边界服务器之间建立一个安全通道,客户端可通过反向代理服务器间接访问后端不同服务器上的资源(见图2-21)。
图2-20 FRP服务端和客户端配置文件
图2-21 ngrok用法示例
(3)reGeorg
reGeorg是一款利用Web进行代理的工具,可用于在目标服务器在内网或做了端口策略的情况下连接目标服务器内部开放端口,利用Webshell建立一个SOCKS代理进行内网穿透,将内网服务器的端口通过HTTP/HTTPS隧道转发到本机,形成通信回路(见图2-22)。
(4)SSH
Secure Shell(SSH)是专为远程登录会话和其他网络服务提供安全性的协议,支持SOCKS代理和端口转发。SSH的端口转发就是利用SSH作为中间代理,绕过两个网络之间的限制,顺利进行任意端口的访问。SSH适用于多种平台,Linux系统环境下自带该工具,Windows环境下需要借助SecureCRT或Putty等工具实现SSH访问操作。
图2-22 reGeorg模拟扫描
(5)Netsh
Netsh(Network Shell)是Windows系统自带的网络配置命令行脚本工具,可用来通过修改本地或远程网络配置实现端口转发功能,支持配置从IPv4或IPv6端口转发代理,或者IPv4与IPv6的双向端口转发代理。
8. 网络抓包分析工具
网络抓包分析工具是拦截并查看网络数据包内容的软件工具,可对通信过程中的网络数据的所有IP报文进行捕获并逐层拆包分析,从中提取有用信息。借助网络抓包分析工具,蓝队可进行目标网络通联分析、攻击工具通信分析和安全通信认证信息截获等操作。
(1)Wireshark
Wireshark是一款非常常用的网络抓包分析软件,提供抓取网络封包、显示封包资料、检测网络通信数据、查看网络通信数据包中的详细内容等非常实用的功能,更强大的功能有包含强显示过滤器语言和查看TCP会话重构流的能力,支持上百种协议和媒体类型,实时检测通信数据,检测其抓取的通信数据快照文件等(见图2-23)。
图2-23 Wireshark数据抓包示例
(2)Fiddler
Fiddler是一个非常好用的HTTP调试抓包工具,该数据抓包工具能记录所有客户端与服务器的HTTP和HTTPS请求,允许用户监视,设置断点,对通过网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,用其检测与调试Web浏览器和服务器的交互情况(见图2-24)。
图2-24 Fiddler网络数据调试
(3)tcpdump
tcpdump是Linux平台下一款非常知名、非常强大的网络抓包分析工具,它可以将网络中传送的数据包完全截获下来提供分析。不仅支持针对网络层、协议、主机、网络或端口的过滤,还支持功能强大和灵活的截取策略,实现对网络数据的筛选和分组输出(见图2-25)。
图2-25 tcpdump抓包示例
9. 开源集成工具平台
(1)Linux集成环境(Kali)
Kali是基于Debian的Linux免费发行版,预装了许多渗透测试软件,集成了包括Metasploit在内的超过300个渗透测试工具。
(2)Windows集成环境(Commando VM)
Commando VM是基于Windows的高度可定制的渗透测试虚拟机环境,集成了超过140个开源Windows工具,包含一系列常用的工具,比如Python和Go编程语言,Nmap和Wireshark网络扫描器,Burp Suite之类的网络安全测试框架,以及Sysinternals、Mimikatz等Windows安全工具。
(3)Cobalt Strike
Cobalt Strike是一款由美国Red Team开发的渗透测试神器,常被业界人士称为CS。CS采用Metasploit为基础的渗透测试GUI框架,支持多种协议上线方式,集成了Socket代理、端口转发、Office攻击、文件捆绑、钓鱼、提权、凭证导出、服务扫描、自动化溢出、多模式端口监听、exe和PowerShell木马生成等功能。
(4)Burp Suite
Burp Suite是用于攻击Web应用程序的集成平台,包含许多工具,集成了Web访问代理、Web数据拦截与修改、网络爬虫、枚举探测、数据编解码等一系列功能。Burp Suite为这些工具设计了许多接口,可以加快攻击应用程序的部署与调用。