概述
在野的Powershell恶意脚本往往经过多重混淆和加密,单纯的静态分析难以揭示其具体的恶意行为,因此需要进行动态调试。目前,常用的Powershell调试器是ISE,但其调试界面不够友好,导致调试效率低下。以下将介绍如何使用VSCode进行远程调试Powershell脚本,以提高解密分析Powershell恶意脚本的效率。
白瓜面试
白瓜面试 – AI面试助手,辅助笔试面试神器
40 查看详情
样本获取本次演示使用的样本是一个Powershell后门,其特点是包含多层恶意代码,会从C&C服务器多次加载不同的payload。
母体是一个bat脚本,其主要功能是执行一段经过base64加密的Powershell脚本。
解密后的代码是这个样本的核心代码,接下来将对其进行调试分析。
虚拟机环境搭建首先,建议使用Win10作为虚拟机,因为VSCode的远程调试功能与Win10的兼容性更好。同时,建立远程会话需要将虚拟机的网络类型设置为专用。
然后在虚拟机中运行:winrm quickconfig,即可开启Windows远程管理(WinRM)服务。
为了在虚拟机中成功运行和调试Powershell脚本,还需要开放脚本执行权限set-executionpolicy unrestricted,并关闭Windows Defender。
本机VSCode环境搭建远程调试需要安装Powershell插件,打开VSCode,直接在商店中搜索并安装即可。
在Powershell控制台中输入:Enter-PSSession -ComputerName [虚拟机ip] -Credential [虚拟机用户名],输入密码,即可远程登录到虚拟机。然后将待调试的脚本放入虚拟机中,输入:psedit [虚拟机中的脚本路径],加载目标脚本。
远程调试分析在关键代码处设置断点,按下F5开始调试,运行到断点处,右侧显示变量的值。通过调试,我们可以发现这段代码的作用是从http://miranda.tattooforsure.com:8888/admin/get.php读取并执行恶意代码。
VSCode远程调试还支持编辑脚本,可以添加一行代码:payload = -JOIn [ChAr[]](& Data (IV + K)),将下载的恶意代码赋值给payload,便可以在调试窗口中获取到。
复制payload的值,保存为payload.ps1并进行调试。发现其结构简单,声明Start-NEGOtiatE函数并调用。值得注意的是,函数执行需要传入母脚本的ser、u、hop参数。
payload.ps1的功能是上传终端的域名、用户名、主机名、IP、操作系统版本以及Powershell版本信息。为了绕过检测,它会使用RC4对上述信息进行加密,并在传输前先上传RC4秘钥。
上传的C&C地址为http://miranda.tattooforsure.com:8888/login/process.php,上传完成后,C&C还会返回第二阶段的payload。
将第二阶段的payload保存为payload2.ps1并打开,原来是一个函数定义,函数名为U5BS3,然后在payload.ps1中进行调用。
为了方便调试,我们直接将U5BS3函数定义复制到payload.ps1中。单步步过:U5BS3 -Servers @((s -split “/“)[0..2] -join “/“) -StagingKey SK -SessionKey key -SessionID ID -WorkingHours “WORKING_HOURS_REPLACE” -KillDate “REPLACE_KILLDATE” -ProxySettings
通过搜索特征代码,可以确认这段代码是开源的Empire代码,是一个Powershell的攻击框架。
这段代码就是核心的后门代码了,根据C&C服务器下发的指令码,执行相应的恶意操作,这里就不详细分析了。
总结对于恶意样本的分析,必须在虚拟机环境中进行,因此远程调试是一个不错的选择。VSCode作为微软开发的脚本IDE,对Powershell远程调试功能的支持非常完善,大家可以通过VSCode的远程调试功能,提升解混淆分析恶意Powershell脚本的效率。
以上就是使用VSCode远程调试恶意Powershell脚本的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/608807.html
微信扫一扫
支付宝扫一扫