B.S.A.N.S. - Break Security - Automated Network Scanner [PARTE 1]

Publicado por Perfil removido (última atualização em 26/02/2015)

[ Hits: 2.909 ]

Download scan.py




Bom, resolvi postar a parte 1 de um projeto que estou desenvolvendo com um amigo.

A ideia é criar uma ferramenta simples, porem básica de segurança... O objetivo final é uma ferramenta capaz de identificar informações como sistema operacional, portas, serviços e versões rodando e com base nessas informações básicas, buscar na internet vulnerabilidades relatadas para os serviços rodando e que por ventura afetem o sistema operacional em questão e por fim o script retorna uma lista das possíveis falhas, o código CVE, uma descrição rápida de cada falha, possíveis exploits para PoC e como corrigir a vulnerabilidade.

Claro que não vai chegar a aposentar ferramentas como Nessus ou Nexpose, mas é algo que eu resolvi criar, ajudar em algo e que seu uso seja o mais simples e objetivo possível.

Nessa primeira parte, só o portscan está pronto, onde é possível obter as informações básicas, como sistema operacional, nome do computador, MAC, portas, serviços, versões, etc. Sei que essas informações muita gente obtém com nmap, inclusive o script usa a lib nmap, porém tentei retornar essas informações de uma forma visualmente mais amigável.

Então é isso aí...

Updates:

https://breaksec.wordpress.com/

P.S: não vou deixar o arquivo direto pra download aqui no VOL, pois estava bugando na hora de fazer o upload, então fica o link do GitHub:

Download: https://github.com/expl01t3r/BSANSTMP

  



Esconder código-fonte

#coding: utf-8
print('''

 _|_|_|          _|_|_|        _|_|        _|      _|        _|_|_|
 _|    _|      _|            _|    _|      _|_|    _|      _|
 _|_|_|          _|_|        _|_|_|_|      _|  _|  _|        _|_|
 _|    _|            _|      _|    _|      _|    _|_|            _|
 _|_|_|    _|  _|_|_|    _|  _|    _|  _|  _|      _|  _|  _|_|_|

           Break Security - Automated Network Scanner
[+]Diego Bernardes
[+]https://breaksec.wordpress.com/
''')
import nmap
import argparse
nscan = nmap.PortScanner()
op = argparse.ArgumentParser()
op.add_argument('--alvo', action = 'store', dest = 'alvo', required = False, help = 'Digite o IP do alvo', nargs = '+')
op.add_argument('--porta', action = 'store', dest = 'porta', required = False, help = 'Digite a(s) porta(s) que serão escaneadas', default = '0-65535')
porta = []
nome = []
ver = []

ps = op.parse_args()
print('[+] Inicando escaneamento\n')
ps.alvo = ''.join((x+' ' for x in ps.alvo))

result = nscan.scan(str(ps.alvo), ps.porta, '-A --version-all')
for alvo in result['scan']:
    print('Resultados para o alvo: {alvo}\nNome do Computador: {pcnome}\nSistema Operacional: {so}\nIP: {ip}\nMAC: {mac}\nTécnica de escaneamento: {tecscan}\n' .format(alvo = alvo,
    pcnome = result['scan'][alvo]['hostname'], so = result['scan'][alvo]['osmatch'][0]['name'], ip = result['scan'][alvo]['addresses']['ipv4'],
    mac = result['scan'][alvo]['addresses']['mac'], tecscan = str(result['nmap']['scaninfo']['tcp']['method']).upper()))
    for x in result['scan'][alvo]['tcp']:
        print('Porta: {porta}\nEstado: {estado}\nNome do Serviço: {nome}\nversão do Serviço: {versao}\nInformações Extras: {extra}\n{leponto}'.format(
            porta = x, estado = result['scan'][alvo]['tcp'][x]['state'], nome = result['scan'][alvo]['tcp'][x]['name'], versao = result['scan'][alvo]['tcp'][x]['version'],
            extra = result['scan'][alvo]['tcp'][x]['extrainfo'], leponto = ('-'*20)+'\n'))
        porta.append(x)
        nome.append(result['scan'][alvo]['tcp'][x]['name'])
        ver.append(result['scan'][alvo]['tcp'][x]['version'])

Scripts recomendados

Sockets em Python

IPs Classfull

dhcps - DHCP Listener

Buscar Login/Usuário NIS

Ligando máquina pela rede usando Python


  

Comentários
[1] Comentário enviado por removido em 02/03/2015 - 22:09h

Eu baixei do github e deu um problema! File "scan.py", line 26
print('Resultados para o alvo: {alvo}\nNome do Computador: {pcnome}\nSistema Operacional: {so}\nIP: {ip}\nMAC: {mac}\nTécnica de escaneamento: {tecscan}\n' .format(alvo = alvo,
^
IndentationError: expected an indented block


A liberdade indocil e domada pela propria desgraça -William Shakespeare

[2] Comentário enviado por removido em 03/03/2015 - 13:17h


[1] Comentário enviado por SamsonBurke em 02/03/2015 - 22:09h

Eu baixei do github e deu um problema! File "scan.py", line 26
print('Resultados para o alvo: {alvo}\nNome do Computador: {pcnome}\nSistema Operacional: {so}\nIP: {ip}\nMAC: {mac}\nTécnica de escaneamento: {tecscan}\n' .format(alvo = alvo,
^
IndentationError: expected an indented block


A liberdade indocil e domada pela propria desgraça -William Shakespeare


dei uma conferida no código, depois baixei direto do github e esta tudo ok, baixe o arquivo .zip completo e tenta de volta, lembrando que o código foi escrito com base no python 3.4

[3] Comentário enviado por removido em 20/03/2015 - 16:31h


Hum nossa que espantoso ahhhhhhhhh
o cara fez um scanner que usa o nmap ou seja é muito melhor usar o nmap correto ?
galera pra que isso ?
olha eu sou desenvolvedor estou prestes a lançar um novo sistema de segurança
ai eu pergunto eu poderia plagiar outro sistema e colocar como meu ? sim mais não seria um novo sistema
e sim uma adaptação correto ?
peço desculpas mas que tal vc continuar no caminho maravilhoso da programação desenvolvendo coisas suas sem usar outro software não me entendam mal usar recursos do sistema como utilitários libs e tudo mais eu apoio mas usar outro software é antiprofissional alem de antiético
desde já minhas desculpas

[4] Comentário enviado por removido em 25/03/2015 - 09:22h


[3] Comentário enviado por crk-weidsom em 20/03/2015 - 16:31h


Hum nossa que espantoso ahhhhhhhhh
o cara fez um scanner que usa o nmap ou seja é muito melhor usar o nmap correto ?
galera pra que isso ?
olha eu sou desenvolvedor estou prestes a lançar um novo sistema de segurança
ai eu pergunto eu poderia plagiar outro sistema e colocar como meu ? sim mais não seria um novo sistema
e sim uma adaptação correto ?
peço desculpas mas que tal vc continuar no caminho maravilhoso da programação desenvolvendo coisas suas sem usar outro software não me entendam mal usar recursos do sistema como utilitários libs e tudo mais eu apoio mas usar outro software é antiprofissional alem de antiético
desde já minhas desculpas


o post é apenas uma versão inicial da ferramenta, nesse caso óbvio que compensa mais usar o nmap, mas eu resolvi postar mesmo essa versão inicial porque exibe de uma maneira mais amigável os resultados, então pode ser que seja útil pra alguém, o restante da ferramenta dai sim se difere do nmap, embora o nmap possa ser aplicado a segurança, com scripts NSE por exemplo.
Quanto a usar o nmap dentro do programa, não existe nada de antiético ai, se vc observar isso é super comum, veja ferramentas como armitage por exemplo, usa o nmap pra coletar dados e com base nos dados selecionar possíveis vulnerabilidades que serão exploradas com metasploit, antiético, seria dizer que o script faz o trabalho sem usar nenhum software adicional, porem em nenhum momento isso é dito ;)
Mas agradeço os comentários, mesmo que estes tenham vindo de forma arrogante


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts