quarta-feira, 22 de junho de 2016


O Fail2Ban é uma ferramenta de gerenciamento de requisições que funciona como um agente monitor de portas e serviços do sistema, gerando logs constantes de acessos aos serviços que você parametriza. Em suas configurações você determina um número de tentativas que um IP será considerado suspeito e um tempo de jail, onde todas as máquinas que tentarem forçar uma entrada após X tentativas são colocadas e automaticamente são negadas pelo firewall dinamicamente por um X período de tempo.

Essa solução é muito bacana, e detém muito do core dos ataques automatizados em vários tipos de situações. Eu mesmo já passei por algo bem parecido, onde criamos uma blacklist gigante de IP's chineses que ficavam tentando xeretar alguns roteadores.

Site do projeto: http://www.fail2ban.org/

Instalando em distribuições Debian e Ubuntu:
 root@servidor:~# sudo apt-get install fail2ban  

Instalando em distribuições Fedora, Red Hat e CentOS
 root@servidor:~# sudo yum install fail2ban  

Instalando em distribuições Slackware via SBOpkg
 root@servidor:~# sbopkg -i fail2ban  


Configurando o Monitoramento de Serviços do Fail2Ban 

Para realizar uma configuração básica que proteja sua porta SSH, vamos editar o arquivo de configurações do Fail2Ban
 root@servidor:~# vim /etc/fail2ban/jail.conf  
Procure no arquivo pela tag [DEFAULT]
Nela, iremos realizar algumas configurações de funcionamento do serviço, como Whitelists de acesso, tempo do ban e o número de tentativas que vai identificar o IP como malicioso e 'enjaular' o mesmo no Firewall.

Dentro dela, tente localizar os parâmetros abaixo e altere seus valores para:
 ignoreip =192.168.0.202  
 bantime = 3600  
 maxretry = 5  

Ajuste os parâmetros como melhor desejar, no caso:

ignoreip: Irá ignorar todos os IPs que você descrever, tornando os mesmos imunes as regras do Fail2Ban
bantime: É a quantidade de tempo descrita em segundos que a máquina ficara banida caso o Fail2Ban seja acionado
maxretry: É o número de tentativas que uma máquina poderá realizar sem ativar o serviço

Agora localize a tag [sshd] e modifique os parâmetros
 enabled = true  
 port = ssh  
 filter = sshd  
 logpath = /var/log/auth.log  

Vou realizar um teste em um ambiente de teste onde atacarei a porta 22 padrão ssh de um servidor em produção monitorando os logs de acesso. Você pode acessá-lo em tempo real dando um tail ou cat -f no arquivo fail2ban.log
 root@servidor:~# tail -f /var/log/fail2ban.log  


Realizei o teste com uma máquina com IP 192.168.0.61, e ela entrou em jail por 3600 segundos após 6 tentativas de acesso na porta ssh

Para proteger os acessos a um FTP, basta procurar o tipo de serviço que você está utilizando como ProFTPD, Pure FTPD ou WuFTPD. Vou dar um exemplo utilizando o ProFTPD, é só modificar os parâmetros para:
 [proftpd]  
 enabled = true  
 port   = ftp,ftp-data,ftps,ftps-data  
 filter  = proftpd  
 logpath = /var/log/proftpd/proftpd.log  
 maxretry = 6  

E no caso de um servidor Web
 [apache]  
 enabled = true  
 port   = http,https  
 filter  = apache-auth  
 logpath = /var/log/apache*/*error.log  
 maxretry = 60000  

No caso de um servidor Web, o numero de Max Retry tem que ser muito alto, pois normalmente a cada acesso, são várias requisições realizadas entre o cliente e o servidor. Aconselho você a ser bem generoso nesse sentido para não arrumar mais dores de cabeça com o cliente. (Dica da dor).

Visualizando a Lista de IP's Banidos 

Para visualizar a lista de IP's que entraram e sairam da Blacklist do Fail2ban, basta acessar o arquivo
 # vim /var/log/fail2ban.log

Esse aquivo tem uma lista (quase) completa de todos os IP's que entram e saem da Blacklist do Fail2ban.
Quase? Mas por que quase?? Porque quando o log passa de um tamanho x, ele é compactado  em um arquivo.gz. Caso queira consultar, eles sempre vão ficar ali ba pasta de logs do sistema.


Para visualizar os logs de autenticação do sistema, basta ler o arquivo
 # vim /var/log/auth.log  

Os serviços suportados por default pelo Fail2ban são:

[ssh-ddos], [apache] [apache-multiport] [apache-noscript] [apache-overflows] [vsftpd] [proftpd] [pure-ftpd] [wuftpd] [postfix] [couriersmtp] [courierauth] [sasl] [dovecot] [named-refused-tcp] [xinetd-fail] [pam-generic] [dropbear] [ssh]

Espero ter ajudado :)

Fail2Ban :: Serviço de Proteção e Jail de Serviços Contra Ataques de Força Bruta

terça-feira, 21 de junho de 2016



Uma das maiores preocupações dos administradores de sistemas é sem duvida a segurança das aplicações e serviços que ele é responsável por manter no ar. A segurança a nível de ambiente e servidor é quase tão importante do que a nível de aplicação e programação. Existem várias formas de fazer auditorias nos seus servidores em ambientes de stage e produção, porém muitos deles são executados a nível Gray/Black hat na visão do Hacker ou Pentester, porém existem alguns recursos que nos permitem fazer auditorias White Box em nossos ambientes, e um dos meus favoritos é o Lynis.
O Lynis é uma ferramenta Open Source de auditoria de servidores Linux que avalia desde permissões de arquivos e pastas do sistema, encriptação de dados, gestão de inicialização, processos correntes, sistemas de autenticação, usuários, grupos,  Kernel, CPU e memória até frameworks de segurança como SELINUX, e além de apontar brechas e possíveis melhorias, ele te da um relatório de sugestões de hardening para o sistema.

Baixando o Lynis

 # cd /opt/  
 # wget https://cisofy.com/files/lynis-2.1.1.tar.gz  
 # tar xvf lynis-2.1.1.tar.gz  
 # cd lynis/  


Menu de Ajuda

O Lynis é bem rico em módulos e opções de teste, podemos ver todos executando o mesmo sem nenhum parâmetro como argumento:

 # ./lynis  
 root@foxnotdti202:/opt/lynis# ./lynis   
   
 [ Lynis 2.1.1 ]  
   
 ################################################################################  
  Lynis comes with ABSOLUTELY NO WARRANTY. This is free software, and you are  
  welcome to redistribute it under the terms of the GNU General Public License.  
  See the LICENSE file for details about using this software.  
   
  Copyright 2007-2015 - CISOfy, https://cisofy.com  
  Enterprise support and plugins available via CISOfy  
 ################################################################################  
   
 [+] Initializing program  
 ------------------------------------  
   
  Usage: lynis [options] mode  
   
   
  Mode:  
   
   audit  
     audit system         : Perform security scan  
     audit dockerfile <file>    : Analyze Dockerfile  
   
   update  
     update info          : Show update details  
     update release        : Update Lynis release  
   
   
  Scan options:  
   --auditor "<name>"      : Auditor name  
   --dump-options        : See all available options  
   --no-log           : Don't create a log file  
   --pentest           : Non-privileged scan (useful for pentest)  
   --profile <profile>      : Scan the system with the given profile file  
   --quick (-Q)         : Quick mode, don't wait for user input  
   --tests "<tests>"       : Run only tests defined by <tests>  
   --tests-category "<category>" : Run only tests defined by <category>  
   
  Layout options:  
   --no-colors          : Don't use colors in output  
   --quiet (-q)         : No output, except warnings  
   --reverse-colors       : Optimize color display for light backgrounds  
   
  Misc options:  
   --debug            : Debug logging to screen  
   --view-manpage (--man)    : View man page  
   --version (-V)        : Display version number and quit  
   
  Enterprise options:  
   --plugin-dir "<path>"     : Define path of available plugins  
   --upload           : Upload data to central node  
   
   
  Error: No scanning mode specified!  
  See man page and documentation for all available options.  
   
 Exiting..  
   


Fazendo uma varredura simples

 # ./lynis --check-all -Q  




Utilizando o módulo Pentest para verificar o hardening e escalação de privilégios do sistema


É o Lynis possui um template muito interessante que se chama Pentest. O mesmo avalia o mesmo que o check all mas sem privilégios de admin, buscando por informações expostas e formas de escalação de privilégios no sistema

 # ./lynis --pentest  




:)

Auditando o Hardening e Segurança do Linux com Lynis

terça-feira, 14 de junho de 2016



De anos em anos, surgem várias pesquisas relacionadas a força das senhas mais utilizadas no mundo, sejam elas muito fracas, ou muito obvias vinda de empresas muito influentes dentro do ramo da tecnologia da informação e segurança da informação como a Kaspersky, Symantec e etc ou quando são vazadas de alguma fonte pública e privada por aí. Muitos fabricantes de equipamentos como câmeras, roteadores e switches gerenciáveis, usam muitas dessas senhas como default em seus equipamentos como admin, 123456, guest, administrator e etc, confiando a segurança somente ao administrador que fará a gestão dos recursos do equipamento, o que de fato não é errado. O errado é quando o próprio administrador se isenta da responsabilidade da segurança dos painéis administrativos abertos a internet com essas senhas default como se nada de ruim pudesse acontecer.

Dando uma olhada no blog do Anchises, vi que o LeakedSource fez uma análise nas 100 milhões de senhas vazadas no começo de junho do VK, a maior rede social russa e constatou que o top 50 passwords eram no mínimo senhas obvias e comuns, provando que qualquer um tentasse invadir o perfil, evidentemente conseguiria sem problema algum como mostra a table abaixo:



Nos últimos anos o uso de serviços como Censys e o Shodan vem facilitando o acesso a praticamente todos os equipamentos que estão abertos a internet, e a exploração desses descuidos com senhas fracas se torna um prato cheio para pessoas mau intencionadas por diversos motivos, como roubo do servidor, vazamento e venda de informação, criação de botnets e etc.

Não faz muito tempo que abordei essa diretiva

Há algum tempo desenvolvi uma ferramenta escrita em Python para fazer Brute Force em roteadores e painéis administrativo, o Kill-Router, onde já fizemos explicando algumas funcionalidades do mesmo neste post. A ferramenta era bem simples e deixei o projeto parado no Github por algum tempo por não ter nada de especial. Esses dias estava lendo a documentação da API do Shodan por indicação de alguns amigos, e decidi então complementar algumas funcionalidades relacionadas ao buscador

A documentação da API é bem completa, de forma com que você com a autorização da sua API Key fornecida após o cadastro no site, consegue enviar dorks para o buscador, que te retorna uma resposta em formato JSON com alguns, ou até todos os resultados encontrados com base na Dork fornecida. Para testar utilizei o termo 'zabbix' pra busca como dork:

O retorno de cada resultado encontrado vem mais ou menos nesse formato
 {u'ip': 3497740638, u'hash': 195745723, u'port': 80, u'transport': u'tcp', u'uptime': 33, u'version': u'2.4.6', u'location': {u'city': u'Austin', u'region_code': u'TX', u'area_code': 512, u'longitude': -97.7344, u'country_code3': u'USA', u'latitude': 30.3544, u'postal_code': u'78757', u'dma_code': 635, u'country_code': u'US', u'country_name': u'United States'}, u'product': u'Apache httpd', u'http': {u'redirects': [], u'title': None, u'robots': None, u'server': u'Apache/2.4.6 (CentOS) PHP/5.4.16', u'host': u'208.123.73.94', u'html': u'', u'location': u'/', u'sitemap': None, u'html_hash': 0}, u'timestamp': u'2016-06-11T18:45:51.400583', u'hostnames': [], u'link': u'Ethernet or modem', u'org': u'Netgate', u'data': u'HTTP/1.1 302 Found\r\nDate: Sat, 11 Jun 2016 18:45:49 GMT\r\nServer: Apache/2.4.6 (CentOS) PHP/5.4.16\r\nX-Powered-By: PHP/5.4.16\r\nLocation: http://zabbix.atx.netgate.com/zabbix\r\nContent-Length: 0\r\nContent-Type: text/html; charset=UTF-8\r\n\r\n', u'asn': u'AS30312', u'info': u'(CentOS) PHP/5.4.16', u'deprecated': {u'opts.robots': {u'new': u'http.robots', u'eol': u'2016-07-01'}, u'opts.pem': {u'new': u'ssl.chain', u'eol': u'2016-07-01'}, u'html': {u'new': u'http.html', u'eol': u'2016-07-01'}, u'opts.sitemap': {u'new': u'http.sitemap', u'eol': u'2016-07-01'}, u'title': {u'new': u'http.title', u'eol': u'2016-07-01'}}, u'isp': u'Core NAP, L.P.', u'cpe': [u'cpe:/a:apache:http_server:2.4.6'], u'domains': [], u'ip_str': u'208.123.73.94', u'os': None, u'_shodan': {u'options': {}, u'module': u'http', u'crawler': u'545144fc95e7a7ef13ece5dbceb98ee386b37950'}}  

Como tratar isso também não foi muito problema, eu precisava ver somente algumas informações importantes de forma mais organizada, então verifiquei os itens do JSON e imprimi somente as que eu queria:


Para realizar o Brute Force, eu utilizei o método convencional do Kill-Router, porém com algumas modificações. Na verdade, ele só chama a função convencional de brute force mas agora lendo os resultados da dork e realizando o brute force para cada resultado exibindo o status dos testes e printando caso o resultado seja positivo. 

Kill-Router :: Instalação do Projeto

Para realizar a instalação do Kill Router, basta seguir o passo a passo informado nesse artigo que escrevi há uns meses.

Kill-Router :: Brute Force em senhas de Roteadores e Painéis utilizando Python


Shodan Search :: Configurando a API

Para realizar a busca pelo Shodan, primeiramente será necessário utilizar uma API de desenvolvimento do Shodan. Antes de mais nada será necessário você se cadastrar no Shodan e gerar sua API Key

Link de cadastro: https://account.shodan.io/register

Após confirmar seu cadastro, o Shodan vai gerar uma Hash de desenvolvedor pra você. Copie essa hash e cole na linha 20 do código para realizar a consulta.




Kill-Router :: Fazendo buscas e Brute Force em resultados do Shodan

Para realizar uma pesquisa, você deve passar pelo menos o parâmetro -s com o termo a ser buscado. Caso você esteja utilizando uma Key free, as querys são bem limitadas como City:SP e etc, então só foi testado termos bem simples como camera, apache2, router e etc.

Os comandos são os mesmos do Kill Router ou seja:
 * -l / --passlist :: Caminho para a Passlist  
 * -u / --user :: Usuário que será testado (Default: Admin)  
 * -p / --port :: Porta que será realizado o teste (Default: 80) ou no caso do Shodan, a porta retornada  
 * -m / --method :: HTTP ou HTTPS (Default: HTTP)   

Para realizar um scanning com as opções default basta utilizar:
 # ./kill-router-py -s camera   

O Shodan irá retornar um JSON com os resultados da busca, que não serão todos disponíveis para o teste de acordo com a sua API, contendo algumas informações relevantes como host, porta do serviço localização e o Header do serviço, se houver.


Logo em seguida será questionado se você deseja carregar alguma wordlist padrão do sistema.
Tomei a liberdade de carregar algumas, sendo elas 10 passwords mais fracos (média, devo ter complementado e ter uns 16 agora, rs), 100 passwords mais fracos, a lista vazada do Ashley Madison caso você esteja com tempo e uma pequena lista com passwords bem fracos, ou até mesmo, meio bestas. Basta escolher uma delas, isto é, se você não especificou nenhuma outra wordlist com o parâmetro -l.


É só selecionar uma delas e deixar que o script conclua os testes de acordo com o planejado. Ele faz algumas verificações antes de iniciar o teste real, como tentativa de conexão para ver se o host ou serviço ainda está ativo e verifica se o mesmo está nas condições de ser testado.



Kill-Router :: Logs 

Como o script trabalha com uma grande quantidade de informações na tela, fiz um esqueminha para ele gerar um arquivo CSV com todas as entradas dadas como positivo. Dentro da pasta do Kill-Router, será criado um arquivo chamado results.csv. Dentro dele serão armazenados os resultados do brute force como

host; porta;usuario;senha


Kill-Router :: Outras Opções de Varredura

Segue uma série de combinações a mais que foram inseridas nessa nova versão do Kill Router
 Especificando uma Wordlist  
 # ./kill-router.py -s camera -l /home/matheus/passlist.txt   
   
 Especificando um usuário   
 # ./kill-router.py -s camera -u root   
   
 Realizando o brute force com HTTPS  
 # ./kill-router.py -s camera -l /home/matheus/passlist.txt -m https  


Quer contribuir? Mande algum pull request para o git do projeto :)
Link: https://github.com/msfidelis/Kill-Router-


Kill-Router 1.0 :: Brute Force em Massa em Roteadores e Painéis encontrados no Shodan com Python

sábado, 11 de junho de 2016


O WPScan é um projeto muito bacana apadrinhado pela Sucuri que tem como objetivo mapear e reconhecer ambientes que estejam hospedando uma aplicação em Wordpress.

Ainda essa semana postei o Droopescan, um scanner que visa fazer a mesma coisa com demais CMS incluindo o Wordpress, porém com foco maior em Drupal.

Alguns de vocês já sabem, mas eu sou desenvolvedor PHP como profissão, e sempre que eu busco aprender algum framework novo, seja por algum trabalho Freelancer, no trabalho mesmo, ou por diversão, eu sempre busco as principais vulnerabilidades nos bancos de CVE e algumas ferramentas que me ajudem a mapear meus deslises com relação a isso. Eu tenho minha formação base como SysAdmin Unix, onde passei meus primeiros anos como profissional, e trouxe essa boa prática do ramo de Operações para a área de Desenvolvimento, e como estava estudando alguns CMS pra aprender mais sobre. acabei por encontrar o WPScan.

O WPScan é um scanner bem User Friendly toda escrita em Ruby. Esse post não tem o intuito de ser muito detalhado sobre a ferramenta, até porque o helper da mesma é muito completo e a documentação do git é bem bacana. Então vai funcionar bem mais como dica do que como tutorial.

Site do projeto: http://wpscan.org/
Git do Projeto: https://github.com/wpscanteam/wpscan

Instalação do Projeto: 

Para instalar o projeto em distribuições Debian Like é bem simples. Nas demais distribuições, você pode procurar no Git do projeto, tem uma documentação bem completa lá:
 # sudo apt-get install git ruby ruby-dev libcurl4-openssl-dev make zlib1g-dev  
 # git clone https://github.com/wpscanteam/wpscan.git  
 # cd wpscan  
 # sudo gem install bundler  
 # bundle install --without test --path vendor/bundle  

Helper:

 _______________________________________________________________  
     __     _______  _____           
     \ \    / / __ \ / ____|           
      \ \ /\ / /| |__) | (___  ___ __ _ _ __   
      \ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \   
       \ /\ / | |   ____) | (__| (_| | | | |  
       \/ \/  |_|  |_____/ \___|\__,_|_| |_|  
   
     WordPress Security Scanner by the WPScan Team   
             Version 2.9.1  
      Sponsored by Sucuri - https://sucuri.net  
   @_WPScan_, @ethicalhack3r, @erwan_lr, pvdl, @_FireFart_  
 _______________________________________________________________  
   
 Help :  
   
 Some values are settable in a config file, see the example.conf.json  
   
 --update              Update the database to the latest version.  
 --url    | -u <target url>    The WordPress URL/domain to scan.  
 --force   | -f          Forces WPScan to not check if the remote site is running WordPress.  
 --enumerate | -e [option(s)]    Enumeration.  
  option :  
   u    usernames from id 1 to 10  
   u[10-20] usernames from id 10 to 20 (you must write [] chars)  
   p    plugins  
   vp    only vulnerable plugins  
   ap    all plugins (can take a long time)  
   tt    timthumbs  
   t    themes  
   vt    only vulnerable themes  
   at    all themes (can take a long time)  
  Multiple values are allowed : "-e tt,p" will enumerate timthumbs and plugins  
  If no option is supplied, the default is "vt,tt,u,vp"  
   
 --exclude-content-based "<regexp or string>"  
                   Used with the enumeration option, will exclude all occurrences based on the regexp or string supplied.  
                   You do not need to provide the regexp delimiters, but you must write the quotes (simple or double).  
 --config-file | -c <config file>  Use the specified config file, see the example.conf.json.  
 --user-agent  | -a <User-Agent>  Use the specified User-Agent.  
 --cookie <String>          String to read cookies from.  
 --random-agent | -r         Use a random User-Agent.  
 --follow-redirection        If the target url has a redirection, it will be followed without asking if you wanted to do so or not  
 --batch               Never ask for user input, use the default behaviour.  
 --no-color             Do not use colors in the output.  
 --wp-content-dir <wp content dir>  WPScan try to find the content directory (ie wp-content) by scanning the index page, however you can specified it.  
                   Subdirectories are allowed.  
 --wp-plugins-dir <wp plugins dir>  Same thing than --wp-content-dir but for the plugins directory.  
                   If not supplied, WPScan will use wp-content-dir/plugins. Subdirectories are allowed  
 --proxy <[protocol://]host:port>  Supply a proxy. HTTP, SOCKS4 SOCKS4A and SOCKS5 are supported.  
                   If no protocol is given (format host:port), HTTP will be used.  
 --proxy-auth <username:password>  Supply the proxy login credentials.  
 --basic-auth <username:password>  Set the HTTP Basic authentication.  
 --wordlist | -w <wordlist>     Supply a wordlist for the password brute forcer.  
 --username | -U <username>     Only brute force the supplied username.  
 --usernames   <path-to-file>   Only brute force the usernames from the file.  
 --threads | -t <number of threads> The number of threads to use when multi-threading requests.  
 --cache-ttl    <cache-ttl>    Typhoeus cache TTL.  
 --request-timeout <request-timeout> Request Timeout.  
 --connect-timeout <connect-timeout> Connect Timeout.  
 --max-threads   <max-threads>   Maximum Threads.  
 --throttle    <milliseconds>  Milliseconds to wait before doing another web request. If used, the --threads should be set to 1.  
 --help   | -h           This help screen.  
 --verbose | -v           Verbose output.  
 --version              Output the current version and exit.  
   
   
 Examples :  
   
 -Further help ...  
 ruby ./wpscan.rb --help  
   
 -Do 'non-intrusive' checks ...  
 ruby ./wpscan.rb --url www.example.com  
   
 -Do wordlist password brute force on enumerated users using 50 threads ...  
 ruby ./wpscan.rb --url www.example.com --wordlist darkc0de.lst --threads 50  
   
 -Do wordlist password brute force on the 'admin' username only ...  
 ruby ./wpscan.rb --url www.example.com --wordlist darkc0de.lst --username admin  
   
 -Enumerate installed plugins ...  
 ruby ./wpscan.rb --url www.example.com --enumerate p  
   
 -Enumerate installed themes ...  
 ruby ./wpscan.rb --url www.example.com --enumerate t  
   
 -Enumerate users ...  
 ruby ./wpscan.rb --url www.example.com --enumerate u  
   
 -Enumerate installed timthumbs ...  
 ruby ./wpscan.rb --url www.example.com --enumerate tt  
   
 -Use a HTTP proxy ...  
 ruby ./wpscan.rb --url www.example.com --proxy 127.0.0.1:8118  
   
 -Use a SOCKS5 proxy ... (cURL >= v7.21.7 needed)  
 ruby ./wpscan.rb --url www.example.com --proxy socks5://127.0.0.1:9000  
   
 -Use custom content directory ...  
 ruby ./wpscan.rb -u www.example.com --wp-content-dir custom-content  
   
 -Use custom plugins directory ...  
 ruby ./wpscan.rb -u www.example.com --wp-plugins-dir wp-content/custom-plugins  
   
 -Update the DB ...  
 ruby ./wpscan.rb --update  
   
 -Debug output ...  
 ruby ./wpscan.rb --url www.example.com --debug-output 2>debug.log  
   
 See README for further information.  
   


Atualizando a base de dados do WPScan 

 # wpscan --update  

Scanning Básico 

Fazendo um Scanning default no site:
 # wpscan --url http://localhost/wordpress  

Enumerando usuários do site:
 # wpscan --url http://localhost/wordpress --enumerate u  


Espero ter ajudado :)

WPScan :: Um Scanner de Reconhecimento de Ambientes WordPress

quarta-feira, 8 de junho de 2016


O Droopescan é um utilitário muito bacana para fazer varreduras de módulos, métodos e diretórios em sites que são construídos em cima de Drupal e Wordpress. Seu diferencial é exatamente o Drupal, pois passa um baita pente fino nas vulnerabilidades criticas de diversas versões do Framework.
O DroopeScan não fica muito atrás quando se trata de Wordpress também, e pode ser uma alternativa válida ao wpscan.

Site do projeto: https://github.com/droope/droopescan

Instalação :: Clone

Para fazer o clone do projeto e em seguida rodar o PIP para instalar as dependências do projeto.
 git clone https://github.com/droope/droopescan.git  
 cd droopescan  
 pip install -r requirements.txt  
 ./droopescan scan --help  

Instalação :: PIP

O Droopescan também pode ser encontrado nos repositórios Python default. É só rodar o Pip install e esperar ele suprir as dependências do projeto
 apt-get install python-pip  
 pip install droopescan  


Scanneando CMS's com o Droopescan

Até o momento em que escrevo este artigo a ferramenta se encontra na versão 1.34.8, onde o mesmo possui testes automatizados de segurança para os ambientes:

  • Wordpress
  • Drupal
  • SilverStripe
  • Joomla (Ainda não completo) 


Especificando um CMS e Alvo:
 # ./droopescan scan <CMS> -u <URL>.com  
 # ./droopescan scan drupal -u drupal.localhost.com  
 # ./droopescan scan wordpress -u wordpress.localhost.com  

Passando uma lista de URL's para teste:
 # droopescan scan drupal -U lista.txt  

O pacote é bem legal e te proporciona vários testes em stage ou em local para muitos erros óbvios de desenvolvimento e versão de plugins com falhas de segurança. Vale a pena conferir e realizar os testes em ambientes de homologação ou até mesmo em produção.

Espero ter ajudado :)

Droopescan :: Um Scanner de Vulnerabilidades para CMS Drupal, Wordpress e SilverStripe.

quarta-feira, 1 de junho de 2016



O Burp Suite é uma das minhas ferramentas favoritas de Pentest e Análise, pelo simples fato de ser um framework de interceptação, modificação e análise de tráfego que funciona como um proxy das máquinas conectadas e faz isso utilizando recursos muito inteligentes a customizáveis. O funcionamento default dele já foi abordado em alguns posts aqui no blog, porém esse manualzinho visa fazer com que aparelhos android funcionem com o Burp. Com isso será possível interceptar a maioria do tráfego que ocorre dentro entre os Apps e Web Services.

1 :: Verificando as configurações de rede

Primeiramente vamos verificar o IP do computador que será utilizado como proxy e interceptará o tráfego pelo mesmo. Você pode fazer isso da forma que quiser, pelo shell ou pelas configurações de rede. 
 # ifconfig   
 # ip addr  


2 :: Configurando o Burp Suite

Imaginando que vocês já tenham o utilitário instalado com o Java na sua estação de trabalho, abra o mesmo e procure pela aba Proxy > Options. Marque o checkbox em 'Running' e em seguida clique no botão "Edit" para efetuarmos algumas outras parametrizações de performance do software.


Para criarmos um proxy acessível para outras máquinas da rede, teremos que tirar nosso monitoramento da interface de loopback e colocar uma placa acessível. Aqui podemos definir de duas formas:

1- Todas as Interfaces (All Interfaces) que fará todas as placas, sem exceção servir de proxy para os clientes.
2 - Um endereço específico onde definiremos somente uma para ficar fazendo o serviço de proxy.

Escolha a que mais lhe vier ao caso. No caso desse tutorial estarei demonstrando a opção mais simplificada acionando todas as interfaces para interceptar o tráfego.

O burp irá interceptar agora todas as requisições que chegarem as interfaces selecionadas pela porta 8080.


Vá até a aba de "Request handling" e marque a opção de proxy invisível. Isso será extremamente importante para interceptarmos de uma forma mais dinâmica o tráfego dos dispositivos conectados. 




3 :: Configurando o Proxy no Android

Acesse as configurações do WIFI do aparelho e se conecte na mesma rede que o seu computador proxy está, entre nas configurações e clique em "Modificar Rede".

Sete o proxy como "Manual" e coloque como Host e Porta o IP da máquina que estará rodando o Burp e a porta 8080 que setamos como default no proxy.



4 :: Interceptando o tráfego 

Entre no navegador, ou teste qualquer aplicativo que tenha comunicação com a internet. Na aba Proxy nas sub abas HTTP History e Intercept, você poderá visualizar, modificar e gerar histórico de todas as comunicações efetuadas do aparelho, sejam requests, responses de requisições HTTP, Json, Text, visualizar cookies, tokens e muito mais. A partir daqui é tudo o mesmo esquema de interceptação padrão do Burp. 








Espero ter ajudado :)



Burp Suite :: Interceptando o Tráfego das Requisições de Aparelhos Android

 
Nanoshots | Open Source Security, Linux e Tutoriais © 2015 - Designed by Templateism.com