社工模拟:利用BadUSB穿透3层内网

栏目: 编程工具 · 发布时间: 5年前

内容简介:作为一个安全人员,听过许多社工APT案例,钓鱼邮件、水坑攻击、丢个u盘等等。前段时间在一次培训中了解到BadUSB的攻击方式,可以通过U盘达到控制服务器的效果,在著名的美剧《黑客军团》中也出现了在停车场扔BadUSB来进行钓鱼的场景。

作者:tinyfisher@先知社区

作为一个安全人员,听过许多社工APT案例,钓鱼邮件、水坑攻击、丢个u盘等等。

前段时间在一次培训中了解到BadUSB的攻击方式,可以通过U盘达到控制服务器的效果,在著名的美剧《黑客军团》中也出现了在停车场扔BadUSB来进行钓鱼的场景。

社工模拟:利用BadUSB穿透3层内网

一时好奇,于是尝试模拟一次社工,利用VMware搭建了3层网络靶场,通过BadUSB+MSF的攻击手段,一步一步渗透到第三层网络。

三层网络靶场搭建

本次模拟实验的网络拓扑如下:

  1. 第一层网络,模拟企业办公网,为一台win7的员工办公电脑,

  2. 第二层网络模拟内网,是一台win2003服务器,

  3. 第三层网络为企业核心网,为一台 Linux 服务器。攻击者的攻击机有kali和win10。

社工模拟:利用BadUSB穿透3层内网

我们可以利用VMware搭建出3层网络的网络环境,首先在虚拟机中新建3块网卡,并选择仅主机模式:

社工模拟:利用BadUSB穿透3层内网

我们将kali设为第一层网络vmnet1,在网络适配器中选择自定义vmnet1:

社工模拟:利用BadUSB穿透3层内网

在第一层靶机win7虚拟机设置中添加一个网络,并将两个网络分别设为vmnet1和vmnet2,达到双网卡的效果:

社工模拟:利用BadUSB穿透3层内网

同理,将第二层靶机win2003设为双网卡vmnet2和vmnet3:

社工模拟:利用BadUSB穿透3层内网

最后,将第三层靶机linux的网络设为vmnet3:

社工模拟:利用BadUSB穿透3层内网

至此,我们本次试验的3层网络靶场已经搭建完毕,攻击者的kali只能访问第一层网络,而无法访问第二层和第三层的靶机:

社工模拟:利用BadUSB穿透3层内网

BadUSB介绍

效果演示

在介绍BadUSB之前,我们先来看一下他的威力,下面的u盘看上去是一个u盘,但其实内部是一个单片机,普通人很容易被迷惑。

社工模拟:利用BadUSB穿透3层内网

我在本地的win10上做了演示,我的系统装了防病毒软件,并且补丁也更新到最新,但当我将上面的u盘查到电脑上的时候,他达到了任意执行命令的效果。

社工模拟:利用BadUSB穿透3层内网

当然上面的操作只是为了演示,我们完全可以利用他来做更多隐蔽的攻击操作。

什么是BadUSB?

简单来说,就是让USB设备伪装成键盘,被插入的电脑猝不及防会被迅速输入一定的“指令”,这个指令会让该电脑迅速成为肉鸡,这个漏洞最早在2014年的BlackHat安全大会上公布。

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

常见的BadUSB

1、TEENSY

攻击者在定制攻击设备时,会向USB设备中置入一个攻击芯片,此攻击芯片是一个非常小而且功能完整的单片机开发系统,它的名字叫TEENSY。

通过TEENSY你可以模拟出一个键盘和鼠标,当你插入这个定制的USB设备时,电脑会识别为一个键盘,利用设备中的微处理器与存储空间和编程进去的攻击代码,就可以向主机发送控制命令,从而完全控制主机,无论自动播放是否开启、是否安装杀毒软件,都可以成功。

社工模拟:利用BadUSB穿透3层内网

2、USB RUBBER DUCKY

简称USB橡皮鸭,是最早的按键注入工具,通过嵌入式开发板实现,后来发展成为一个完全成熟的商业化按键注入攻击平台。

它的原理同样是将USB设备模拟成为键盘,让电脑识别成为键盘,然后进行脚本模拟按键进行攻击。

社工模拟:利用BadUSB穿透3层内网

制作一款简易BadUSB

制作一款BadUSB我们需要以下工具:

1、BadUSB设备

目前在淘宝有售,我们这里选用的是Digispark,Digispark是一个基于ATTINY85微控制器的USB开发板,体积小且价钱便宜,淘宝有售:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.57db2e8dK2zETX&id=559310622821&_u=b50qdl8ef4d

社工模拟:利用BadUSB穿透3层内网

2、Arduino IDE

Arduino IDE用于烧录代码的编译器,可以将我们的恶意代码烧录到BadUSB中,配置好相关参数,将开发板设为Digispark,编程器设为USBtinyISP:

社工模拟:利用BadUSB穿透3层内网

编写好代码后,我们就可以点击“上传”按钮,然后插入BadUSB设备,一款简易BadUSB就做好了。

MSF内网渗透

有了上面的BadUSB的知识,我们可以模拟一个社工场景:企业内部人员捡到了一个“u盘”,出于好奇插在了自己的办公电脑上,而这个“u盘”其实是一个BadUSB,插上之后会自动下载攻击者用MSF制作的后门,所以在插上u盘之后,员工的办公电脑就已经被黑客控制,黑客从而可以进一步进行内网渗透、横向扩展。

下面我们就来看看如何利用MSF一步一步进行内网渗透:

制作MSF后门:

msf的msfvenom命令可以生成我们所需要的后门:

社工模拟:利用BadUSB穿透3层内网

其中,192.168.59.128是msf监听端的地址,6666是msf监听端的端口。我们将生成的shell.exe放在卡里搭建的web服务上。

MSF开启监听:

在MSF服务端,我们开启监听,等待win7反弹shell:

社工模拟:利用BadUSB穿透3层内网 社工模拟:利用BadUSB穿透3层内网

BadUSB烧入攻击程序

根据工作中真实监控的payload套路,我们在BadUSB中烧入如下程序,让第一层靶机Win7自动下载攻击者kali中的制作好的shell.exe,并执行:

社工模拟:利用BadUSB穿透3层内网

这样一来,当win7被插上u盘后,攻击者的msf就获得了一个反弹shell:

社工模拟:利用BadUSB穿透3层内网

meterpreter渗透

Meterpreter是MSF中的一个模块,攻击payload在攻击成功以后给我们返回一个控制通道——Meterpreter shell。

Meterpreter shell作为渗透模块有很多有用的功能,比如添加一个用户、打开 shell 、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等信息等等。

我们可以在meterpreter中输入shell获得靶机win7的shell,执行ipconfig,发现第二层网络的网段信息:

社工模拟:利用BadUSB穿透3层内网

为了使得MSF能够继续对第二层网络进行渗透,我们首先需要添加路由表:

社工模拟:利用BadUSB穿透3层内网 社工模拟:利用BadUSB穿透3层内网

这样,通往192.168.90.0/24网段的流量通过meterpreter 的session2进行路由。然后,我们在msf启动socks代理:

社工模拟:利用BadUSB穿透3层内网 社工模拟:利用BadUSB穿透3层内网

这样其他攻击软件可以通过MSF socks代理、添加的路由对第二层渗透。

此时,我们已经可以访问第二层网络192.168.90.0/24了,按照常见的渗透思路,我们会对第二层网络进行扫描探测,看看存活主机有哪些,比如用nmap进行扫描,不过在此之前,我们还需要配置kali中的proxychain,通过proxychain 将nmap的流量通过msf的socks代理,进行第二层的网络扫描。

配置proxychain

修改/etc/proxychains.conf,将里面的服务器和端口设置为msf socksserver的信息:

社工模拟:利用BadUSB穿透3层内网

此时,我们可以利用nmap进行第二层网络的探测:

由于proxychains无法代理icmp的数据包 所以必须添加-Pn -sT参数,即不检测主机是否存活,直接进行端口tcp扫描。

社工模拟:利用BadUSB穿透3层内网 社工模拟:利用BadUSB穿透3层内网

通过扫描我们发现了,第二层网络中的靶机地址192.168.90.129,同时开启了80、445、3306、3389端口,因此下一步的渗透可以从这几个端口考虑。 这里有几个思路,可以从80端口找漏洞,尝试上传webshell,3306和3389可以尝试口令爆破,而445端口第一个就会想到大名鼎鼎的MS17-010,永恒之蓝。

永恒之蓝

虽然wannacry事件已经过去一年多了,内网里存在ms17-010漏洞的情况在各个行业并不少见,在这次模拟环境中,第二层网络win2003就存在这个漏洞,我们可以利用msf直接对ms17-010进行利用,拿到shell,配置攻击参数,由于第二层服务器无法直接和攻击者的kali进行通信,所以这里注意payload要设置为bind_tcp,即采用正向代理的模式。

社工模拟:利用BadUSB穿透3层内网

成功攻击,获得meterpreter shell:

社工模拟:利用BadUSB穿透3层内网

拿到system权限,我们可以修改administrator密码,或者新增管理员用户:

社工模拟:利用BadUSB穿透3层内网

端口转发

我们看到,第二层的win2003服务器开启了3389,我们可以登录远程桌面,如果没有开启也没关系,我们可以通过下面的命令开启。

社工模拟:利用BadUSB穿透3层内网

现在,我们无法直接从最外层访问第二层的3389,我们需要将3389的流量转发出来,从而登录远程桌面:

metepreter> portfwd add -l 7777 -p 3389 -r 192.168.90.129 #将目标机192.168.90.129的3389端口转发到本地kali 7777端口

社工模拟:利用BadUSB穿透3层内网

至此,我们已经可以在自己的攻击机上,远程登录并控制第二层靶机了。

第三层网络渗透

同样,我们要进一步对第三层网路进行渗透的话,第一步还是添加到第三层的路由:

社工模拟:利用BadUSB穿透3层内网

然后是利用nmap探测第三层网络端口信息:

社工模拟:利用BadUSB穿透3层内网

开放了80和22端口,思路比较明显,要拿到权限,要么ssh口令爆破,要么从web端找漏洞传webshell。

口令爆破

首先尝试第一个思路,看看ssh是否存在弱口令,我们使用auxiliary/scanner/ssh/ssh_login模块,配置好用户名和字典,开始爆破:

社工模拟:利用BadUSB穿透3层内网

果然存在弱口令123456,直接拿到root权限。

web渗透

我们可以在浏览器中配置kali为代理服务器,从而访问第三层网络:

社工模拟:利用BadUSB穿透3层内网

打开访问,发现是Typecho的博客系统:

社工模拟:利用BadUSB穿透3层内网

对于这种CMS我们的思路一般是直接去互联网搜索CMS的漏洞poc进行测试,这里就不再进一步演示:

社工模拟:利用BadUSB穿透3层内网

至此,我们通过BadUSB让第一层网络中的win7系统下载并运行我们的恶意软件,然后通过MSF利用 MS17-010、口令爆破、web渗透 等方式穿透三层内网,最终拿下第三层网络系统的权限。常见的渗透思路可以参考下面的脑图:

社工模拟:利用BadUSB穿透3层内网

总结

本次模拟只是最简单的演示,实际情况会比这个复杂的多,比如目标会安装防病毒软件,因此,当利用BadUSB下载msf后门的时候需要考虑如何免杀,不然很容易被发现;各个网段一般也会做隔离, 因此如何找到网络突破口比较难 ;内部会有各种安全设备,比如IDS、蜜罐、TDA等等,所以真正渗透比本次试验要难的多。

但这里出现的员工安全意识较差,补丁更新不及时、没有安装防病毒软件或者病毒库更新不及时、以及系统存在弱口令的问题在实际工作中也是经常遇到, 做好企业安全工作这些基础工作很重要。

最后,通过USB接口攻击的案例很多,BadUSB只是一类,还有通过USB接口横跨PC和Mobile平台进行攻击的案例。 我们在日常使用USB设备时,不要使用陌生的USB设备,避免USB存在恶意代码导致安全风险。

声明:本文来自阿里安全响应中心,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如需转载,请联系原作者获取授权。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法技术手册

算法技术手册

[美]海涅曼 (Heineman.G.T.)、[美]波利切 (Pollice.G.)、[美]塞克欧 (Selkow.S.) / 东南大学出版社 / 2009-4 / 58.00元

创造稳定的软件需要有效的算法,但是程序设计者们很少能在问题出现之前就想到。《算法技术手册(影印版)》描述了现有的可以解决多种问题的算法,并且能够帮助你根据需求选择并实现正确的算法——只需要一定的数学知识即可理解并分析算法执行。相对于理论来说,本书更注重实际运用,书中提供了多种程序语言中可用的有效代码解决方案,可轻而易举地适合一个特定的项目。有了这本书,你可以: 解决特定编码问题或改进现有解决......一起来看看 《算法技术手册》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试