Transferência de Arquivos
Configurando Servidor Web
Python
Abre um servidor web na porta 9999 (a porta padrão é a 8000):
# Python 2
python -m SimpleHTTPServer 9999
# Python 3
sudo python3 -m http.server 9999PHP
php -S 0.0.0.0:<port>Ruby
ruby -run -e httpd . -p <port>Baixando Arquivos de Servidores Web
Para baixar os arquivos dos servidores web acima (PHP e Python), utilize um dos comandos abaixo:
Linux
curl
wget
Windows - Fileless
Essa técnica consiste em executar o arquivo diretamente na Memória RAM, sem precisar salvar no HD, fazendo assim com que o ataque fique em modo stealth, conseguindo realizar bypass em ferramentas de segurança, como o AV.
WebClient
Invoke-WebRequest (IWR)
Internet Explorer
certutil
WinHttpRequest
Msxml2
BitsAdmin, uma ferramente nativa do Windows que permite fazer download (e também upload) de arquivos.
Windows - Salvando no HD
Powershell
Primeiro é preciso abrir uma sessão na máquina alvo
Após isso podemos transferir arquivo (de maneira bidirecional), com as seguintes maneiras:
WebClient
Caso tenho problemas de certificado ao realizar download de arquivos via WebClient, execute o comando abaixo:
Invoke-WebRequest (IWR)
Certutil
nc
Ncat
RDP
GfxDownloadWrapper
NGNIX
Criando diretório e atribuindo permissões
Crie arquivo de configuração em /etc/nginx/sites-available/upload.conf, com o seguinte conteúdo:
Criar link simbólico
Reiniciando o Ngnix
OBS.: Caso tenho algum erro nesse ponto, verifique o arquivo /var/log/nginx/error.log para obter mais informações.
Removendo padrões do ngnix
Agora basta enviar um arquivo via PUT.
O arquivo enviado irá ser enviado para /var/www/uploads/myuploads/.
PHP
Python 2 e 3
Ruby
Perl
Javascript
Primeiro salve o arquivo abaixo com o nome downloader.js (ou outro nome da sua preferência)
Agora execute-o através do cscript.exe, que é nativo Windows
VBScript
Primeiro salve o arquivo abaixo com o nome downloader.vbs (ou outro nome da sua preferência)
Agora execute-o através do cscript.exe, que é nativo Windows
Baixando Arquivos de Servidores FTP
Para este cenário, iremos precisar ter as credenciais de autenticação no servidor FTP. Todo o seu conteúdo será baixado de form recursiva
SCP (Download/Upload)
Arquivos do Linux para Linux
Certifique-se de que o host remoto tenha o SSH instalado, pois esse processo irá pedir a senha do usuário em questão.
OBS.: Utilize o parâmetro -r depois do scp para enviar um diretório completo de modo recursivo.
Arquivos do Windows para Linux
Ao colocar o caminho absoluto em sistema Windows, temos que fazer um pouco diferente, pois o : é utilizado como delimitador entre host e path, porém o Windows tem um : após sua unidade de disco (Ex.: C:\), então devemos escapar isso utilizando aspas duplas e invertendo as barras.
Clonando Site
Esse tipo de clone é com recursividade
Netcat
Método 1
Método 2
Método 3
xfreerdp
Irá ser criado a unidade data no Windows, que pode ser acessada no /tmp do Linux.
Socat
Recebendo arquivo:
Enviando arquivo:
Base64
Copiando e Colando
No host onde contém o arquivo, iremos digitar o comando:
Copie a saída encodada em base64 e execute no host onde o arquivo irá ser salvo:
Enviando via POST
Também podemos encodar um arquivo e enviá-lo via POST. Primeiro vamos abrir o nosso listener para receber o conteúdo do arquivo em base64.
Agora na máquina alvo, execute:
SMB
Esse método utiliza o Linux como um servidor SMB e iremos acessar os seus arquivos através do Windows (PowerShell), como em um mapeamento de unidade de rede.
impacket-smbserver
Execute no Linux:
Execute no Windows de duas maneiras, via web browser / UNC, com o caminho:
Ou se preferir, via powershell, da seguinte maneira:
No comando New-PSDrive... não é necessário ter mesmo name que foi setado no Linux. Caso precise realizar mais de uma conexão, altere esse valor.
smbserver.py (Impacket)
Compartilhando o arquivo via Linux
Baixando o arquivo pelo Windows
FTP
Download
Máquina que irá fornecer o arquivo
Depois acesse o ftp com o usuário anonymous a partir da máquina que irá receber o arquivo
Upload
Na máquina atacante vamos abrir um FTP com permissão de escrita, para que assim, a máquina comprometida realize upload de arquivos.
Realizando upload na máquina alvo
UploadServer
Esse método é um pouco diferente dos demais, pois apesar de termos uma máquina atacante sendo utilizada como servidor, dessa vez será um servidor que irá aceitar upload de arquivos, ou seja, a máquina alvo irá realizar enviar os arquivos para a máquina atacante. Se quiser baixar arquivos do server, acesse a raiz (http://<ip>:<port>) e se quiser fazer um upload, acesso http://<ip>:<port>/upload.
Agora que já temos um servidor que aceita upload de arquivos, vamos acessá-lo a partir de um Windows (nossa máquina alvo) e enviar arquivos através do script PSUpload.ps1. Note que temos que passar o /upload no final da URI, porém ao recebermos o arquivo, ele estará no mesmo diretório em que o servidor foi executado.
Ou então, fazer um upload a partir do Python
TempDavFS
Ferramenta semelhante ao smbserver, para disponibilizar arquivos entre computadores
Sites
Last updated
Was this helpful?