Pular para o conteúdo

Simple wireless scanner

Simples script em Python que descobre todas as redes Wireless próximas e exibe suas informações, e o resultado de um pouco de pesquisa na z-library usando torbrowser.

#freefreepalestine
Jonathan jonathanmichael7
Hits: 5.224 Categoria: Python Subcategoria: Rede
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

Simples script em Python que descobre todas as redes Wireless próximas e exibe suas informações, e o resultado de um pouco de pesquisa na z-library usando torbrowser.

#freefreepalestine
Download network_scanner.py Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Esconder código-fonte

from scapy.all import *
from time import sleep
from threading import Thread
import subprocess
import argparse

ap_list = []

class AP:
    """Armazena informação sobre uma rede."""
    def __init__(self, essid, bssid):
        self.essid = essid.decode('utf-8')  # Nome da rede
        self.bssid = bssid  # MAC do pointo de acesso
        return
    def show(self):
        """Mostra informação sobre o objeto"""
        print(f"[+] ESSID: {self.essid:<40} -- BSSID: {self.bssid.upper()}")
        return

def set_channel(interface, channel):
    command = ["iwconfig", interface, "channel", f"{ channel }"]
    # executa o commando iwconfig
    err = subprocess.run(command, stderr=subprocess.PIPE)
    if err.stderr:
        print(f"error: { err.stderr }")
        quit()
    return

def network_scanner(interface):
    """ Pesquisa todas as redes wifi proximas e salva o ESSID e o BSSID. """
    """ Adiciona as redes para network_list. """
    
    def exists(bssid):
        """Não permite duplicata."""
        global ap_list
        for n in ap_list:
            if n.bssid == bssid:
                return True     # Já existe uma rede com esse endereço.
        return False

    def probe(frame):
        global ap_list
        if frame.haslayer(Dot11Beacon):
            if not exists(frame.addr2):
                ap = AP(frame.info, frame.addr2) # nova rede
                ap_list.append(ap)
        return

    print("[+] SCANNING...", end='')
    for i in range(1,12):
        set_channel(interface, i)
        # Capitura pacotes por 5 segundos e verifica se são anucios de rede
        t = AsyncSniffer(iface=interface, prn=probe)
        t.start()
        for _ in range(25):
            sleep(0.2)
            print(".",end='')
    print()
    return

def main():
    parser = argparse.ArgumentParser()
    # processa argumentos da linha de commando.
    parser.add_argument('-i', dest='interface', help="fornecer uma interface")
    res = parser.parse_args()
    if not res.interface:
        parser.print_help() # nenhuma interface fornecida, impreme ajuda e termina
        return

    network_scanner(res.interface)
    for n in ap_list: n.show()
    return

if __name__ == '__main__':
    main()
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Aplicação gráfica para Wake-on-LAN com Python 3 + GUI Tk/Tcl

HCoin - Preço do Dólar, Bitcoin e Euro em Python

auth_ig.py: Script para autenticação do IG

Importar múltiplos hosts ZABBIX

Ping threading python

#2 Comentário enviado por ESMEK em 28/11/2023 - 18:03h

Contribuir com comentário

Entre na sua conta para comentar.