0%

初始Metasploit

环境:

攻击机:Kali Linux

受害机:Windows 7

什么是 Metasploit

    这是一个免费的、开源的渗透测试框架,由 H.D.Moore 在 2003 年发布,后来被 Rapid7 收购。Metasploit 核心中绝大部分有 Rudy 实现,一小部分由汇编和C语言实现。

为什么要用 Metasploit

  1. 效率:Metasploit 提供了一系列已经开发好的攻击模块,使得攻击者能够快速地在目标系统上执行攻击,同时减少了犯错的机会。

  2. 易用性:Metasploit 使用简单,用户无需具备深入的技术知识,只需了解一些基本的操作就能使用它进行渗透测试。

  3. 支持多种操作系统:Metasploit 支持多种操作系统,包括 Windows、Linux、macOS等,因此,它可以用于攻击各种不同的目标系统。

  4. 兼容性:Metasploit 兼容多种漏洞扫描工具和其他渗透测试工具,使得用户可以将其集成到他们的工具链中。

  5. 实用性:Metasploit 具有强大的漏洞利用功能,可以进行端口扫描、漏洞扫描、漏洞利用等,从而帮助用户发现和利用系统中的漏洞。

如何使用 Metasploit

Metasploit的模块

  1. 扫描模块(Scanning modules):用于发现目标系统的开放端口和漏洞,常见的扫描模块包括nmap、arp_scanner、ping_sweep等。

  2. 渗透模块(Exploit modules):用于利用目标系统的漏洞进行攻击,以获取系统权限或者执行命令,常见的渗透模块包括MS08_067_netapi、MS17_010_eternalblue等。

  3. 模块辅助(Auxiliary modules):提供一些辅助功能,如指纹识别、密码破解、后门创建等,常见的辅助模块包括enum、ftp_login、smb_login等。

  4. 转发模块(Payload modules):用于在攻击成功后提供一个交互式的shell,以执行更复杂的攻击,常见的转发模块包括meterpreter_reverse_tcp、meterpreter_reverse_http等。

  5. 木马模块(Shellcode modules):用于创建一些自定义的木马程序,可以绕过一些安全措施,常见的木马模块包括windows/meterpreter/reverse_https、windows/x64/meterpreter/reverse_tcp等

扫描

    扫描模块是Metasploit中的一类模块,用于发现目标系统的开放端口和漏洞。以下是一些常见的扫描模块及其功能:

  1. Nmap扫描模块:Nmap是一个开源的端口扫描工具,Metasploit中的nmap模块可以调用Nmap的功能,扫描目标系统的开放端口,以及判断操作系统、服务和应用程序版本等信息。

  2. Ping扫描模块:ping_sweep模块可以通过发送ICMP包来扫描目标系统是否在线,快速确定目标的IP地址是否可用。

  3. ARP扫描模块:arp_scanner模块可以通过发送ARP包来扫描目标局域网上的主机,快速获取局域网内的主机IP和MAC地址。

  4. SMB扫描模块:smb_version模块可以利用SMB协议获取目标系统上共享文件夹的信息,包括共享文件夹名称、操作系统版本等。

  5. Web应用程序扫描模块:Metasploit中的web_app_scanner模块可以扫描目标Web应用程序的漏洞,包括SQL注入、XSS漏洞等。

Example:

    以 Nmap 为例,查看受害机的 IP,攻击机测试连通性,结果可以 PING 通,进行下一步

    

    使用nmap [ 受害机 IP ] 查看受害机开放的端口以及对应的服务

渗透

    Metasploit渗透模块是用于利用已知漏洞或弱点对目标系统进行攻击的工具。以下是几个常用的渗透模块及其功能:

  1. exploit:用于执行针对已知漏洞的攻击,例如远程代码执行、缓冲区溢出、文件包含等。使用这个模块可以获取对目标系统的完全控制。

  2. payload:用于在目标系统上执行特定的操作,例如打开反向shell、上传/下载文件、添加管理员账户等。这个模块的功能取决于攻击者的目的和实际需求。

  3. auxiliary:用于执行非攻击性任务的模块,例如端口扫描、漏洞扫描、密码爆破、信息收集等。这个模块通常用于获取目标系统的信息,以便为后续攻击做准备。

  4. post:用于在攻击成功后对目标系统进行后续操作的模块,例如上传后门、获取系统信息、清除痕迹等。这个模块通常用于长期攻击和渗透,以保持对目标系统的持续访问。

Example:

    以永恒之蓝为例,搜索永恒之蓝漏洞

    使用探测模块 auxiliary ,show options 命令查看所需的参数,默认必填参数中只有RHOSTS 没有补充,RHOSTS 为被攻击的主机IP,RPORT 为端口

    配置RHOSTS,使用set RHOSTS [ IP ]

    run指令进行探测,[+] 为探测到的结果

    接下来可以使用 exploit 模块进行攻击

    RHOSTS 为被攻击机的 IP,LHOST , LPORT 为监听主机的 IP 和端口号,设置完成后使用RUN 指令进行攻击

后渗透阶段

    运行了完命令之后,我们开启了一个 reverse TCP 监听器来监听本地的 4444 端口,即我(攻击者)的本地主机地址(LHOST)和端口号(LPORT)。运行成功之后,我们将会看到命令提示符 meterpreter > 出现,我们输入: shell  即可切换到目标主机的windows shell,要想从目标主机 shell 退出到 meterpreter ,我们只需输入:exit 。也可以使用其他指令进行更多操作。( 例如使用 upload 指令上传文件到被攻击机 )