From be561c82ef4f18dd49701fe9ecacb094bb351fdc Mon Sep 17 00:00:00 2001 From: seocringe Date: Wed, 21 Feb 2024 16:38:44 +0200 Subject: [PATCH] new file: Pipfile modified: belkin-wpspin.py modified: easybox_wps.py --- Pipfile | 41 +++++++++++++++++++++++++++++++++++++++++ belkin-wpspin.py | 26 ++++++++++++-------------- easybox_wps.py | 37 +++++++++++++++++-------------------- 3 files changed, 70 insertions(+), 34 deletions(-) create mode 100644 Pipfile diff --git a/Pipfile b/Pipfile new file mode 100644 index 0000000..961720a --- /dev/null +++ b/Pipfile @@ -0,0 +1,41 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +pybluez = "==0.21" +pyyaml = "==3.11" +argh = "==0.26.1" +colorama = "==0.3.3" +dnet = "==1.12" +docopt = "==0.6.2" +dpkt = "==1.8.6" +impacket = "==0.9.12" +iwlib = "==1.5" +libnl = "==0.2.0" +netaddr = "==0.7.14" +netlink = "==1.0" +pathtools = "==0.1.2" +pcapy = "==0.10.8" +prettytable = "==0.7.2" +pycparser = "==2.10" +pyroute2 = "==0.3.6" +scapy = "==2.3.1" +terminaltables = "==1.1.1" +watchdog = "==0.8.3" +wireless = "==0.3.0" +wireless-radar = "==0.2.1" +wsgiref = "==0.1.2" +colorclass = "==1.2.0" +pbkdf2 = "==1.3" +python-wifi = "==0.6.0" +wifi = "==0.3.4" +python-wifi-master = {editable = true, ref = "2d20c4f0d057833d5b851280ed2133b0b82bf69c", git = "git+https://github.com/pingflood/pythonwifi.git"} +py80211-master = {editable = true, ref = "4f6ef735d96bddc24a0090af8876bb20a84fb3ff", git = "git+https://github.com/arend/py80211"} + +[dev-packages] + +[requires] +python_version = "3.11" +python_full_version = "3.11.8" diff --git a/belkin-wpspin.py b/belkin-wpspin.py index 0a61165..58f2d33 100755 --- a/belkin-wpspin.py +++ b/belkin-wpspin.py @@ -1,42 +1,40 @@ #!/usr/bin/env python -# -*- encoding: utf-8 -*- -# http://ednolo.alumnos.upv.es/?p=1295 + ''' Created on Dec 9, 2012 -  -@author       : e.novellalorente@student.ru.nl +@author : e.novellalorente@student.ru.nl Original work : ZhaoChunsheng 04/07/2012 -  ''' - import sys VERSION = 0 SUBVERSION = 2 def usage(): - print "[+] WPSpin %d.%d " % (VERSION, SUBVERSION) - print "[*] Usage : python WPSpin.py 123456" + print("[+] WPSpin %d.%d " % (VERSION, SUBVERSION)) + print("[*] Usage : python WPSpin.py 123456") sys.exit(0) def wps_pin_checksum(pin): accum = 0 while(pin): accum += 3 * (pin % 10) - pin /= 10 + pin //= 10 # Change to ensure integer division accum += pin % 10 - pin /= 10 + pin //= 10 # Change to ensure integer division return (10 - accum % 10) % 10 try: if (len(sys.argv[1]) == 6): - p = int(sys.argv[1] , 16) % 10000000 - print "[+] WPS pin is : %07d%d" % (p, wps_pin_checksum(p)) + p = int(sys.argv[1], 16) % 10000000 + print("[+] WPS pin is : %07d%d" % (p, wps_pin_checksum(p))) else: usage() -except Exception: - usage() \ No newline at end of file +except IndexError: # Handles missing sys.argv[1] + usage() +except ValueError: # Handles invalid int conversion + usage() diff --git a/easybox_wps.py b/easybox_wps.py index 918c8a5..bcaed97 100755 --- a/easybox_wps.py +++ b/easybox_wps.py @@ -1,31 +1,29 @@ #!/usr/bin/env python import sys, re -def gen_pin (mac_str, sn): - mac_int = [int(x, 16) for x in mac_str] - sn_int = [0]*5+[int(x) for x in sn[5:]] +def gen_pin(mac_str, sn): + mac_int = [int(mac_str[i:i+2], 16) for i in range(0, len(mac_str), 2)] + sn_int = [0] * 5 + [int(x) for x in sn[5:]] hpin = [0] * 7 k1 = (sn_int[6] + sn_int[7] + mac_int[10] + mac_int[11]) & 0xF k2 = (sn_int[8] + sn_int[9] + mac_int[8] + mac_int[9]) & 0xF - hpin[0] = k1 ^ sn_int[9]; - hpin[1] = k1 ^ sn_int[8]; - hpin[2] = k2 ^ mac_int[9]; - hpin[3] = k2 ^ mac_int[10]; - hpin[4] = mac_int[10] ^ sn_int[9]; - hpin[5] = mac_int[11] ^ sn_int[8]; - hpin[6] = k1 ^ sn_int[7]; - pin = int('%1X%1X%1X%1X%1X%1X%1X' % (hpin[0], hpin[1], hpin[2], hpin[3], hpin[4], hpin[5], hpin[6]), 16) % 10000000 + hpin[0] = k1 ^ sn_int[9] + hpin[1] = k1 ^ sn_int[8] + hpin[2] = k2 ^ mac_int[9] + hpin[3] = k2 ^ mac_int[10] + hpin[4] = mac_int[10] ^ sn_int[9] + hpin[5] = mac_int[11] ^ sn_int[8] + hpin[6] = k1 ^ sn_int[7] + pin = int('%1X%1X%1X%1X%1X%1X%1X' % tuple(hpin), 16) % 10000000 - # WPS PIN Checksum - for more information see hostapd/wpa_supplicant source (wps_pin_checksum) or - # http://download.microsoft.com/download/a/f/7/af7777e5-7dcd-4800-8a0a-b18336565f5b/WCN-Netspec.doc accum = 0 t = pin - while (t): + while t: accum += 3 * (t % 10) - t /= 10 + t //= 10 accum += t % 10 - t /= 10 + t //= 10 return '%i%i' % (pin, (10 - accum % 10) % 10) def main(): @@ -37,10 +35,9 @@ def main(): sys.exit('check MAC format!\n') sn = 'R----%05i' % int(mac_str[8:12], 16) - print 'derived serial number:', sn - print 'SSID: Arcor|EasyBox|Vodafone-%c%c%c%c%c%c' % (mac_str[6], mac_str[7], mac_str[8], mac_str[9], sn[5], sn[9]) - print 'WPS pin:', gen_pin(mac_str, sn) + print('derived serial number:', sn) + print('SSID: Arcor|EasyBox|Vodafone-%c%c%c%c%c%c' % tuple(mac_str[6:12])) + print('WPS pin:', gen_pin(mac_str, sn)) if __name__ == "__main__": main() -