Kilka narzędzi sieciowych od Siebie
Witam.
Ostatnio zacząłem nieco programować w Pythonie i napisałem kilka narzędzi które być może przydadzą się komuś ;‑)
wconfig
Link do projektu: - wconfig w GITHub.com
Klient shellowy do WICD, potrafi skanować w poszukiwaniu sieci WIFI, zapisywać output w formacie XML (bardzo łatwo parsowalny).
Posiada dodatkowo opcję automatycznego podłączenia do pierwszej działającej sieci wifi - jest to idealna funkcja na tabletpc czy laptop będąc często w podróży, wystarczy dodać wpis wconfig -as do /etc/rc.local lub innego skryptu startowego a połączenie wifi zawsze zostanie samo nawiązane*.
* Działa zarówno z zabezpieczonymi jak i niezabezpieczonymi sieciami (wicd zapamiętuje hasło - jeżeli już używaliśmy sieci, to się do niej podłączy), wybiera sieć z największym sygnałem
webnull@webnull-gentoo-desktop wconfig $ ./wconfig.py --help wconfig for GNU/Linux, a wireless scanner with option to connect automaticaly to wireless, provide also XML output Usage: wconfig [long GNU option] [option] --xml, -x - output results as XML to be easy to parse --auto-connect, -a - output results as XML to be easy to parse --debug, -g - enable extra debugging --disconnect, -d - disconnect from network if connected --connect-by-mac, -m - connect to wireless network by mac adress --connect-by-name, -e - connect to wireless network name (essid) --help, -h this screen Examples: wconfig -s # scan for wireless networks and show results as plaintext wconfig -xs # scan for wireless networks and show results as parsable XML wconfig -d # disconnect from wireless network wconfig -ds # disconnect from wireless network and scan for network wconfig -m 00:00:00:00:00:00 # connect to wireless network by MAC adress wconfig -e my-network # connect to wireless network by bssid (network name) wconfig -i 0 # connect to first network from list, to list networks type wconfig -s wconfig -as # connect to first working network webnull@webnull-gentoo-desktop wconfig $ ./wconfig.py -s 0 XX:XX:XX:XX:XX:XX "webnull-home-network" WPA2 90% Master 7 *ACTIVE* 1 XX:XX:XX:XX:XX:XX "linksys" WPA2 27% Master 11 2 XX:XX:XX:XX:XX:XX "Litwa" WPA2 33% Master 11 webnull@webnull-gentoo-desktop wconfig $ ./wconfig.py -xs <?xml version="1.0" encoding="UTF-8"?> <networks> <network> <mac>XX:XX:XX:XX:XX:XX</mac> <name>webnull-home-network</name> <encryption>WPA2</encryption> <percentage_strength>90</percentage_strength> <mode>Master</mode> <channel>7</channel> <active>True</active> </network> <network> <mac>XX:XX:XX:XX:XX:XX</mac> <name>linksys</name> <encryption>WPA2</encryption> <percentage_strength>27</percentage_strength> <mode>Master</mode> <channel>11</channel> <active>False</active> </network> <network> <mac>XX:XX:XX:XX:XX:XX</mac> <name>Litwa</name> <encryption>WPA2</encryption> <percentage_strength>33</percentage_strength> <mode>Master</mode> <channel>8</channel> <active>False</active> </network> </networks>
Zastosowanie wconfig: - Laptop/tablet, włączamy urządzenie i jesteśmy od razu podłączeni do internetu jeżeli jesteśmy w zasięgu sieci wifi która oferuje dostęp
- Zbieranie statystyk, można wysyłać skany sieci w postaci XML do zdalnego serwera który zbiera sobie listy sieci wifi na danym obszarze ;‑)
wtop
Link do projektu: - wconfig w GITHub.com
Program używa curses do wyświetlania grafiki, skanuje lokalne sieci wifi i wypisuje na ekranie.
Posiada historię w której zapamiętuje każdą sieć, nawet tą która jest poza zasięgiem, w historii sieć WIFI jest zapamiętywana zawsze z najlepszą jakością sygnału (jak przybliżymy się do access pointu danej sieci to do historii zostanie wpisana lepsza jakość sygnału).
Uwaga: Na niektórych kartach sieciowych potrafi zerwać połączenie wifi przez zbyt częste odświeżanie (co 6 sekund) listy z sieciami bezprzewodowymi. Testowano na dwóch kartach sieciowych, jedna słabsza (od zawsze znana z awarii sprzętowych) potrafi zerwać połączenie.
Zastosowanie wtop: - Sprawdzanie zasięgu własnej sieci WIFI - Sprawdzanie ile sieci można wyłapać na danym obszarze
scan-network
Link do projektu: - wconfig w GITHub.com
Narzędzie do skanowania danego zakresu adresów IP, można nim przeskanować całą sieć lokalną.
Uwaga: Wymaga uprawnień administratora (do ICMP), za niedługo postaram się dodać wersję nie wymagającą uprawnień roota (używającej shellowego pinga zamiast implementacji pinga w Pythonie)
webnull-gentoo-desktop scan-network # ./scan-network.py --from=100 --to=110 --ip 192.168.1 Adresses to scan: 10 Ping 192.168.1.{100 to 110} Delay: 1 192.168.1.100 responds in 0.0013279914856 192.168.1.101 not responding, offline 192.168.1.102 responds in 0.000174999237061 192.168.1.103 not responding, offline 192.168.1.104 not responding, offline 192.168.1.105 not responding, offline 192.168.1.106 not responding, offline 192.168.1.107 not responding, offline 192.168.1.108 not responding, offline 192.168.1.109 not responding, offline 192.168.1.110 not responding, offline
Zastosowanie scan-network: - Sprawdzanie czy jakiś intruz nie grasuje po naszej sieci (jeżeli DHCP dostępne) - Sprawdzanie który z naszych komputerów w domu jest włączony i podłączony do sieci - Atakujący publiczne sieci może wykryć ile jest komputerów w sieci, następnie sprawdzić je dodatkowo przy pomocy nmap czy innego narzędzia
W przygotowywaniu mam narzędzia: + Skaner do śledzenia sygnału bluetooth + Analizator pakietów zesniffowanych Wiresharkiem (filtr na HTTP - POST i GET, z wyciąganiem ciasteczek oraz pól z GET i POST, być może generowanie ciasteczek dla Firefoksa) + Upierdliwy, denerwujący rozsyłacz kartek elektronicznych (vCard) masowo przez bluetooth, czyli bluejacking ;‑)