Pular para o conteúdo

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

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
Perfil removido removido
Hits: 3.352 Categoria: Python Subcategoria: Rede
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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
Download scan.py Enviar nova versão

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'])

Shell reverso em Python - cliente e servidor

Shell Reverso em Python

IPs Classfull

Scanner de rede em Python

Busca IP externo

#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

Entre na sua conta para comentar.