beafn28
  • 👩‍💻¡Bienvenidos a mi HackBook!
  • WRITEUPS
    • DockerLabs
      • BuscaLove
      • Amor
      • Injection
      • BorazuwarahCTF
      • Trust
      • Picadilly
      • Pinguinazo
      • AguaDeMayo
      • BreakMySSH
      • NodeClimb
      • Move
      • Los 40 ladrones
      • Vulnvault
      • Pntopntobarra
      • Library
      • Escolares
      • ConsoleLog
      • Vacaciones
      • Obsession
      • FirstHacking
      • SecretJenkins
      • HedgeHog
      • AnonymousPingu
      • ChocolateLovers
      • Dockerlabs
      • Pressenter
      • Candy
      • JenkHack
      • ShowTime
      • Upload
      • Verdejo
      • WalkingCMS
      • WhereIsMyWebShell
      • Whoiam
      • Winterfell
      • -Pn
      • Psycho
      • Mirame
      • Backend
      • Paradise
      • Balurero
      • Allien
      • Vendetta
      • FindYourStyle
      • Stellarjwt
      • File
      • Redirection (Por completar)
      • Extraviado
      • Patriaquerida
      • Tproot
      • Internship
      • Walking Dead
      • Bicho (Por completar)
      • BaluFood
    • TryHackMe
      • Brooklyn Nine Nine
      • Blue
    • HackTheBox
      • Nibbles
      • Starting Point
        • Meow
        • Fawn
        • Dancing
        • Redeemer
        • Appointment
        • Sequel
        • Crocodile
        • Responder
        • Three
        • Archetype
        • Oopsie
        • Vaccine
        • Unified
        • Explosion
        • Preignition
        • Mongod
        • Synced
        • Ignition
        • Bike
        • Funnel
        • Pennyworth
        • Tactics
        • Included
        • Markup
        • Base
      • BoardLight
      • Cap
      • TwoMillion
      • Lame
      • Legacy
      • Devel
      • Beep
      • Optimum
      • Arctic
      • Jerry
      • Sau
      • GoodGames
      • Challenges
        • Emdee five for life
        • MarketDump
      • Intro to Dante
      • Heist
      • OpenAdmin
      • Nest
      • Curling
    • Vulnhub
      • Wakanda
      • Election (Por terminar)
    • The Hacker Labs
      • Avengers
      • Can you hack me?
      • Fruits
      • Microchoft
      • TickTakRoot
      • Grillo
      • Mortadela
      • Zapas Guapas
      • Sal y Azúcar
      • Cyberpunk
      • Papafrita
      • PizzaHot
      • Decryptor
      • Academy
      • Cocido andaluz
      • Find Me
      • Quokka
      • Campana Feliz
      • Bocata de Calamares
      • Casa Paco
      • Torrijas
    • Vulnyx
      • Fuser
      • Blogguer
      • Lower
      • Exec
      • Diff3r3ntS3c
      • Hacking Station
      • Experience
      • Eternal
      • Agent
      • Infected
      • Admin
      • War
      • Hosting
    • OverTheWire
      • Natas
        • Nivel 0-5
        • Nivel 6-11
        • Nivel 12-17
        • Nivel 18-23
        • Nivel 24-29
        • Nivel 30-34
      • Leviathan
        • Nivel 0-7
      • Krypton
      • Bandit
        • Nivel 0-10
        • Nivel 11-20
        • Nivel 21-30
        • Nivel 31-34
    • Proving Ground Play
      • Monitoring
      • DriftingBlues6
  • APUNTES HACKING
    • Pentesting Basics
      • Web Enumeration
      • Public Exploits
      • Types of Shells
      • Privilege Escalation
      • Transfering Files
    • Network Enumeration with NMAP
      • Host Discovery
      • Host and Port Scanning
      • Saving the Results
      • Service Enumeration
      • Nmap Scripting Engine
      • Performance
      • Firewall and IDS/IPS Evasion
    • Footprinting
      • Domain Information
      • Cloud Resources
      • FTP
      • SMB
      • NFS
      • DNS
      • SMTP
      • IMAP/POP3
      • SNMP
      • MySQL
      • MSSQL
      • Oracle TNS
      • IPMI
      • Linux Remote Management Protocols
      • Windows Remote Management Protocols
    • Information Gathering - Web Edition
      • WHOIS
      • DNS
        • Digging DNS
      • Subdomains
        • Subdomain Bruteforcing
        • DNS Zone Transfers
        • Virtual Hosts
        • Certificate Transparency Logs
      • Fingerprinting
      • Crawling
        • robots.txt
        • Well-Known URIs
        • Creepy Crawlies
      • Search Engine Discovery
      • Web Archives
      • Automating Recon
    • Vulnerability Assessment
      • Vulnerability Assessment
      • Assessment Standards
      • Common Vulnerability Scoring System (CVSS)
      • Common Vulnerabilities and Exposures (CVE)
    • Nessus
      • Getting Started with Nessus
      • Nessus Scan
      • Advanced Settings
      • Working with Nessus Scan Output
      • Scanning Issues
    • OpenVAS
      • OpenVAS Scan
      • Exporting The Results
    • Reporting
    • File Transfers
      • Windows File Transfer Methods
      • Linux File Transfer Methods
      • Transferring Files with Code
      • Miscellaneous File Transfer Methods
      • Protected File Transfers
      • Catching Files over HTTP/S
      • Living off The Land
      • Detection
      • Evading Detection
    • Shells & Payloads
      • Anatomy of a Shell
      • Bind Shells
      • Reverse Shells
      • Payloads
        • Automating Payloads & Delivery with Metasploit
        • Crafting Payloads with MSFvenom
        • Infiltrating Windows
        • Infiltrating Unix/Linux
        • Spawning Interactive Shells
      • Introduction to Web Shells
        • Laudanum, One Webshell to Rule Them All
        • Antak Webshell
        • PHP Web Shells
      • Detection & Prevention
    • Metasploit
      • MSFConsole
      • Modules
      • Targets
      • Payloads
      • Encoders
      • Databases
      • Plugins
      • Sessions
      • Meterpreter
      • Writing and Importing Modules
      • Introduction to MSFVenom
      • Firewall and IDS/IPS Evasion
    • Password Attacks
      • John The Ripper
      • Network Services
      • Password Mutations
      • Password Reuse / Default Passwords
      • Attacking SAM
      • Attacking LSASS
      • Attacking Active Directory & NTDS.dit
      • Credential Hunting in Windows
      • Credential Hunting in Linux
      • Passwd, Shadow & Opasswd
      • Pass the Hash (PtH)
  • WEB SECURITY
    • Path Traversal
    • SQL Injection
    • Control de Acceso
  • Mis CTFs
    • Pequeñas Mentirosas
    • CryptoLabyrinth
    • Elevator
    • Facultad
  • PREPARAR EJPTv2
    • Máquinas
    • Curso de Mario
      • Presentación + Preparación de Laboratorios
      • Conceptos Básicos de Hacking
      • Explotación de Vulnerabilidades y Ataques de Fuerza Bruta
      • Explotación vulnerabilidades Web
      • Enumeración y Explotación del Protócolo SMB, SAMBA, SNMP, IIS y RDP
      • Hacking Entornos CMS
      • Escalada de Privilegios + Post Explotación
      • Pivoting con Metasploit
  • Preparar OSCP
    • Información
    • Máquinas
      • Linux
        • Fácil
        • Medio
        • Difícil
      • Windows
        • Fácil
        • Medio
        • Difícil
Powered by GitBook
On this page
  • HTTP/S
  • Nginx - Habilitando PUT
  • Crear un Directorio para Manejar Archivos Subidos
  • Cambiar el Propietario a www-data
  • Crear Archivo de Configuración para Nginx
  • Crear un Enlace Simbólico a sites-enabled
  • Iniciar Nginx
  • Verificación de Errores
  • Eliminar la Configuración Predeterminada de Nginx
  • Subir un Archivo Usando cURL
  • Uso de Herramientas Incorporadas

Was this helpful?

  1. APUNTES HACKING
  2. File Transfers

Catching Files over HTTP/S

HTTP/S

La transferencia de archivos a través de la web es el método más común debido a que los protocolos HTTP/HTTPS son los más frecuentemente permitidos a través de firewalls. Un beneficio significativo es que, en muchos casos, el archivo estará cifrado durante el tránsito. En una prueba de penetración, no hay nada peor que una IDS de red del cliente detecte que se ha transferido un archivo sensible en texto plano y que te pregunten por qué enviamos una contraseña a nuestro servidor en la nube sin usar cifrado.

Ya hemos discutido el uso del módulo uploadserver de Python3 para configurar un servidor web con capacidades de carga, pero también podemos usar Apache o Nginx. Esta sección cubrirá cómo crear un servidor web seguro para operaciones de carga de archivos.

Nginx - Habilitando PUT

Una buena alternativa a Apache para transferir archivos es Nginx, ya que su configuración es menos complicada y el sistema de módulos no conduce a problemas de seguridad como puede ocurrir con Apache.

Cuando se permiten cargas HTTP, es crítico asegurarse al 100% de que los usuarios no puedan subir web shells y ejecutarlos. Apache facilita cometer este error, ya que el módulo PHP ejecuta cualquier cosa que termine en PHP. Configurar Nginx para usar PHP no es tan sencillo.

Crear un Directorio para Manejar Archivos Subidos

sherlock28@htb[/htb]$ sudo mkdir -p /var/www/uploads/SecretUploadDirectory

Cambiar el Propietario a www-data

sherlock28@htb[/htb]$ sudo chown -R www-data:www-data /var/www/uploads/SecretUploadDirectory

Crear Archivo de Configuración para Nginx

Crear el archivo de configuración de Nginx en /etc/nginx/sites-available/upload.conf con el siguiente contenido:

server {
    listen 9001;
    
    location /SecretUploadDirectory/ {
        root    /var/www/uploads;
        dav_methods PUT;
    }
}

Crear un Enlace Simbólico a sites-enabled

sherlock28@htb[/htb]$ sudo ln -s /etc/nginx/sites-available/upload.conf /etc/nginx/sites-enabled/

Iniciar Nginx

sherlock28@htb[/htb]$ sudo systemctl restart nginx.service

Si recibimos mensajes de error, debemos revisar los registros en /var/log/nginx/error.log. Si estamos usando Pwnbox, veremos que el puerto 80 ya está en uso.

Verificación de Errores

sherlock28@htb[/htb]$ tail -2 /var/log/nginx/error.log

2020/11/17 16:11:56 [emerg] 5679#5679: bind() to 0.0.0.0:80 failed (98: Address already in use)
2020/11/17 16:11:56 [emerg] 5679#5679: still could not bind()

Verificar qué servicio está utilizando el puerto 80:

sherlock28@htb[/htb]$ ss -lnpt | grep 80

LISTEN 0      100          0.0.0.0:80        0.0.0.0:*    users:(("python",pid=2811,fd=3),("python",pid=2070,fd=3),("python",pid=1968,fd=3),("python",pid=1856,fd=3))

Verificar el proceso:

sherlock28@htb[/htb]$ ps -ef | grep 2811

user65      2811    1856  0 16:05 ?        00:00:04 python -m websockify 80 localhost:5901 -D
root        6720    2226  0 16:14 pts/0    00:00:00 grep --color=auto 2811

Vemos que ya hay un módulo utilizando el puerto 80. Para solucionarlo, podemos eliminar la configuración predeterminada de Nginx que vincula el puerto 80.

Eliminar la Configuración Predeterminada de Nginx

sherlock28@htb[/htb]$ sudo rm /etc/nginx/sites-enabled/default

Ahora podemos probar la carga de archivos utilizando cURL para enviar una solicitud PUT. En el siguiente ejemplo, subiremos el archivo /etc/passwd al servidor y lo llamaremos users.txt.

Subir un Archivo Usando cURL

sherlock28@htb[/htb]$ curl -T /etc/passwd http://localhost:9001/SecretUploadDirectory/users.txt

Verificar la subida del archivo:

sherlock28@htb[/htb]$ sudo tail -1 /var/www/uploads/SecretUploadDirectory/users.txt

user65:x:1000:1000:,,,:/home/user65:/bin/bash

Uso de Herramientas Incorporadas

En la siguiente sección, introduciremos el tema de "Living off the Land", o el uso de herramientas incorporadas en Windows y Linux para realizar actividades de transferencia de archivos. Volveremos a este concepto en varios módulos del camino de Penetration Tester, cuando cubramos tareas como la escalada de privilegios en Windows y Linux, y la enumeración y explotación de Active Directory.

PreviousProtected File TransfersNextLiving off The Land

Last updated 7 months ago

Was this helpful?

Una vez que esto esté funcionando, una buena prueba es asegurarse de que la lista de directorios no esté habilitada navegando a . De forma predeterminada, con Apache, si accedemos a un directorio sin un archivo index (index.html), listará todos los archivos. Esto es peligroso cuando estamos exfiltrando archivos sensibles, ya que queremos ocultarlos lo mejor posible. Afortunadamente, Nginx no habilita esta función de manera predeterminada.

http://localhost/SecretUploadDirectory