File Transfer
Verify correct file content after transfer
Download Operations
SMB Server
Las nuevas versiones de Windows bloquean el acceso de invitados no autenticados, como podemos ver en el siguiente comando:
You can't access this shared folder because your organization's security policies block unauthenticated guest access. These policies help protect your PC from unsafe or malicious devices on the network.
Para transferir archivos en este escenario, podemos establecer un nombre de usuario y una contraseña usando nuestro servidor SMB Impacket y montar el servidor SMB en nuestra máquina de destino de Windows:
Certutil.exe
PowerShell Download Operations
Disponemos de diversas maneras de realizar una transferencias de archivos hacía la máquina objetivo a través de PowerShell.
Bitsadmin Download Function
El servicio Background Intelligent Transfer Service (BITS) puede usarse para descargar archivos desde sitios HTTP o recursos compartidos SMB. Este servicio tiene la ventaja de que descarga los archivos de forma "inteligente", tomando en cuenta la carga de la red y del sistema para minimizar el impacto en el trabajo del usuario.
File Download with BitsAdmin
PowerShell + BITS
Curl
Wget
FTP Downloads
Otra forma de transferir archivos es mediante FTP (File Transfer Protocol), que utiliza los puertos TCP/21 y TCP/20. Podemos utilizar el cliente FTP o PowerShell Net.WebClient para descargar archivos desde un servidor FTP.
Podemos configurar un servidor FTP en nuestro host de ataque utilizando el módulo pyftpdlib de Python3. Se puede instalar con el siguiente comando:
Una vez configurado el servidor FTP, podemos realizar transferencias de archivos utilizando el cliente FTP preinstalado desde Windows o PowerShell Net.WebClient.
Create a Command File for the FTP Client and Download the Target File
JavaScript
JavaScript es un lenguaje de programación que permite implementar funciones complejas en páginas web. Al igual que con otros lenguajes de programación, podemos usarlo para muchas cosas diferentes.
Podemos usar el siguiente comando desde un símbolo del sistema de Windows o una terminal de PowerShell para ejecutar nuestro código JavaScript y descargar un archivo.
Download a File Using JavaScript and cscript.exe
VBScript
Podemos usar el siguiente comando desde un símbolo del sistema de Windows o una terminal de PowerShell para ejecutar nuestro código VBScript y descargar un archivo.
Download a File Using VBScript and cscript.exe
Upload Operations
PowerShell Upload Operations
Disponemos de diversas maneras de realizar una transferencias de archivos de la máquina objetivo hacía la nuestra a través de PowerShell.
SMB Uploads
SMB Server
Las nuevas versiones de Windows bloquean el acceso de invitados no autenticados, como podemos ver en el siguiente comando:
You can't access this shared folder because your organization's security policies block unauthenticated guest access. These policies help protect your PC from unsafe or malicious devices on the network.
Para transferir archivos en este escenario, podemos establecer un nombre de usuario y una contraseña usando nuestro servidor SMB Impacket y montar el servidor SMB en nuestra máquina de destino de Windows:
WebDAV
Anteriormente discutimos que las empresas suelen permitir el tráfico saliente a través de los protocolos HTTP (TCP/80) y HTTPS (TCP/443). Normalmente, las empresas no permiten el protocolo SMB (TCP/445) fuera de su red interna, ya que esto podría exponerlas a posibles ataques. Para más información sobre esto, podemos leer la publicación de Microsoft Preventing SMB traffic from lateral connections and entering or leaving the network.
Una alternativa es ejecutar SMB sobre HTTP con WebDAV. WebDAV (RFC 4918) es una extensión de HTTP, el protocolo de Internet que utilizan los navegadores y servidores web para comunicarse entre sí. El protocolo WebDAV permite que un servidor web funcione como un servidor de archivos, admitiendo la creación colaborativa de contenido. WebDAV también puede usar HTTPS.
Cuando se usa SMB, primero intentará conectarse mediante el protocolo SMB y, si no encuentra un recurso compartido SMB disponible, intentará conectarse a través de HTTP. En la siguiente captura de Wireshark, intentamos conectarnos al recurso compartido testing3 y, como no encontró nada con SMB, utilizó HTTP.
1 - Configuring WebDav Server
2 - Installing WebDav Python modules
3 - Using the WebDav Python module
4 - Connecting to the Webdav Share
Ahora podemos intentar conectarnos al recurso compartido utilizando el directorio DavWWWRoot. Desde CMD.
Otro método desde PowerShell
.
Comprobar que podemos listar la unidad que se nos ha asignado.
5 - Uploading Files using SMB
FTP Uploads
Subir archivos usando FTP es muy similar a descargar archivos. Podemos usar PowerShell o el cliente FTP para realizar la operación. Antes de iniciar nuestro servidor FTP utilizando el módulo de Python pyftpdlib, necesitamos especificar la opción --write para permitir que los clientes suban archivos a nuestro host de ataque.
Ahora usemos la función de carga de PowerShell para subir un archivo a nuestro servidor FTP.
PowerShell Upload File
Create a Command File for the FTP Client to Upload a File
Última actualización