欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

运用WHID为断绝主机建起秘密通道

来源:本站整理 作者:佚名 时间:2017-09-05 TAG: 我要投稿

从2014年BADUSB呈现今后,USB-HID进击就这不停被存眷,且具争议。争议的核心是USB-HID的实战效果过于“鸡肋”,无论从晚期的BADUSB,照样到起初的各类USB-HID装备,对付目标机来讲,都要经由进程弹出“运转框”来实现payload的植入,由于弹框过于显著,以是实战中效果就大打折扣。因而,围绕着若何晋升实战效果,很多人提出了分歧的设法主意,我也做过屡次测验考试,好比经由进程改良payload的存储地位,经由进程参加BLE模块等办法,目标只要两个,一是尽量削减payload植入进程中的code字符数,二是节制payload的植入光阴。再到起初,我也开端测验考试引入wifi模块,经由进程wifi停止节制,如2017年5月,我在freebuf上颁发了《利用micropython快速实现Badusb及手机摇控扩大》,其时第一次经由进程wifi来节制usb-hid,实现与演示了长途关机的操纵。
WIFI与HID相结合外洋有个更业余的名字便是WHID。WHID在以后的浩繁文章和利用中,多是把它作为一个节制模块,经由进程假装,节制HID进击的效果,更多呈现的是手机或许别的wifi下装备若何利用WHID对目标机停止进击节制。但实际上,WHID完整能够在目标机上构成一个自定义的通道实现目标机与手机或许wifi下别的进击装备的通信,相当于给目标机安装了一个自定义网卡。这一办法,对付断绝主机的信息获得具备必定的利用效果。
1 WHID及其组成
一个传统的USB-HID装备,经常是用来虚构或许仿真键盘、鼠标等usb外设来实现歹意代码的植入。最罕见的便是经由进程仿真键盘来实现,重要流程是当USB-HID装备拔出PC后,会仿真出一个虚构键盘,而后经由进程输出win+R,调出体系的运转框,在运转框内输出code。这里常用的办法是,输出cmd等敕令,调出最小结构的cmd(也能够改变颜色,目标便是让这个cmd不容易察觉),再经由进程上下键把cmd拖出窗外,让被进击者无奈看到。这时候,开端在cmd里输出code。如遍历磁盘,找到payload的存储地位,植入payload。
在植入的这个进程中,又会面对权限、免杀、过UAC等事情,假如你有充足的光阴,都能够经由进程这个仿真键盘事先写好代码或许批处理敕令,一一办理。从这一点看,USB-HID照样很实用的,然则实际上,在拔出后必要输出的code量过大,这时候代假如被进击机械的键盘操纵过,或许鼠标动过,就会影响到仿真键盘的事情,从而使实现效果不尽人意。因而,有人经由进程在目标机械上启动Empire或Meterpreter会话,将输出的2670个字符压缩到116个字符,输出光阴从38秒压缩到3秒。还有人经由进程改动padload存储地位,如存储在A盘,能够将输出的字符压缩到8个(如a:\m.exe),输出光阴压缩到不敷1秒,但这些办法都无奈节制弹出运转框的光阴,WHID能够说是办理了这个成绩。
WHID便是在USB-HID上参加了wifi模块。你能够把wifi设置装备摆设成AP,也能够设置装备摆设成STA,而后利用你的PC或许手机来节制USB-HID的举措及举措光阴。比方,我在《利用micropython快速实现Badusb及手机摇控扩大》一文中写到的,经由进程手机遥控关机。
那末WHID由哪几部门组成呢?
第一,易于利用的USB-HID进击模块,咱们罕见的便是teensy、arduino等。这里我选用的是支撑micropython的模块Tpyboard V102,其采纳python来停止硬件节制,代码写起来比拟简略、便利,并且这个模块有6个串口,充足咱们停止扩大与利用。其毛病也很显著,体积略大,不容易假装,不像arduino nano、arduino pro、teensy、arduino lenorado那样能够很容易的假装为U盘。对我来讲,我感到这不是大的毛病,由于TPYBoard也属开源硬件,道理图都是凋谢的,完整能够本身再画成得当假装的状态。
第二,适合的WIFI模块。我最后在测验考试时,利用的是MT7681模块,详细可见《利用micropython快速实现Badusb及手机摇控扩大》一文。起初,在进修micropython的进程中,发明利用TPYBoard v202(ESP8266芯片)加倍便利,能够间接构成一个AP,并树立一个WEB办事器。因而,选定用这个模块来实现。
第三,WIFI与USB-HID的衔接。衔接的接口也有很多种,能够经由进程I2C、SPI等接口。这里我选用的是串口,只必要将TPYBoardV102与TPYBoardV202两个板子上的TX、RX互相穿插接线就能够够了,操纵异常简略。
WHID示意图以下:

利用micropython实现WHID的简略单纯拼装:

2 WHID通道搭建道理
对付一个WHID来讲,由于其带有的WIFI模块,构建了一个无线收集,以是咱们完整能够斟酌利用这个WIFI收集实现与PC之间的隐藏通信,从而树立一套自定义的无线网卡。假如说,对付互联网主机,USB-HID能够实现payload的植入,利用payload反弹一个shell的话,那末对付断绝主机,WHID同样能够反弹一个shell给进击者,实现对断绝主机的进击。从道理来讲,便是WHID经由进程HID在断绝主机内植入一个payload,也能够认为是WHID自定义网卡的驱动,而后断绝主机遇经由进程串口等接口与WHID停止交互,WHID再将交互内容经由进程WIFI模块传递给远端的节制者。
第一,实现USB-HID装备与断绝主机的通信。实在,USB-HID卖力与PC停止通信的便是一个单片机,其与PC的通信方法有很多种,最为罕见的便是串口通信,每每在单片机与pc之间会有一个TTL转USB的芯片,如CH340等。同样平常串口通信的最大速率为115200bps,约相当于每秒14KB。假如在通信中感到这个速率过于无限,那也能够测验考试利用SPI转USB,如许速率能够到达每秒10MB以上。TPYBoard v102开辟板自带了TTL转USB模块,以是本文中的研讨进程全体采纳串口通信。
第二,实现USB-HID与WIFI模块以前的通信,由于TPYBoard v102本身带有SD卡存储,能够作为缓存寄存,如许在速率上请求不是很高,以是TPYBoard v102与TPYBoard v202(ESP8266)之间完整能够采纳串口通信,衔接简略,操控便利。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载