Good news for mo-lock (aftermarket motorcycle nfc ignition) folks?

I recently got my hands on a new model “Mo-lock NFC”. They are now using an NTAG213 instead of the T5577 in the older models. This is one of the keys that came with mine:

[usb] pm3 --> hf search
 🕕  Searching for ISO14443-A tag...          
[+]  UID: 04 DC 63 1A BA 10 90 
[+] ATQA: 00 44
[+]  SAK: 00 [2]
[+] MANUFACTURER: NXP Semiconductors Germany
[+] Possible types:
[+]    MIFARE Ultralight
[+]    MIFARE Ultralight C
[+]    MIFARE Ultralight EV1
[+]    MIFARE Ultralight Nano
[+]    MIFARE Hospitality
[+]    NTAG 2xx
[=] proprietary non iso14443-4 card found, RATS not supported
[?] Hint: try `hf mfu info`


[+] Valid ISO 14443-A tag found

[usb] pm3 --> hf mfu info                     

[=] --- Tag Information --------------------------
[+]       TYPE: NTAG 213 144bytes (NT2H1311G0DU)  
[+]        UID: 04 DC 63 1A BA 10 90 
[+]     UID[0]: 04, NXP Semiconductors Germany
[+]       BCC0: 33 ( ok )
[+]       BCC1: 20 ( ok )
[+]   Internal: 48 ( default )
[+]       Lock: 00 00  - 0000000000000000
[+] OneTimePad: E1 10 12 00  - 11100001000100000001001000000000

[=] --- NDEF Message
[+] Capability Container: E1 10 12 00 
[+]   E1: NDEF Magic Number
[+]   10: version 0.1 supported by tag
[+]        : Read access granted without any security / Write access granted without any security
[+]   12: Physical Memory Size: 144 bytes
[+]   12: NDEF Memory Size: 144 bytes
[+]   00: Additional feature information
[+]   00000000
[+]   xxx..... - 00: RFU ( ok )
[+]   ...x.... - 00: don't support special frame
[+]   ....x... - 00: don't support lock block
[+]   .....xx. - 00: RFU ( ok )
[+]   .......x - 00: IC don't support multiple block reads

[=] --- Tag Counter
[=]        [02]: 00 00 00 
[+]             - BD tearing ( ok )

[=] --- Tag Signature
[=]  IC signature public key name: NXP NTAG21x (2013)
[=] IC signature public key value: 04494E1A386D3D3CFE3DC10E5DE68A499B1C202DB5B132393E89ED19FE5BE8BC61
[=]     Elliptic curve parameters: NID_secp128r1
[=]              TAG IC Signature: D4C8E4D94AF055A1708440B0CE28E420FE9A2E512C5B9C5FF37ED21CD5F922FC
[+]        Signature verification ( successful )

[=] --- Tag Silicon Information
[=]        Wafer Counter: 19011395 ( 0x1221743 )
[=]    Wafer Coordinates: x 220, y 99 (0xDC, 0x63)
[=]            Test Site: 2

[=] --- Tag Version
[=]        Raw bytes: 00 04 04 02 01 00 0F 03 
[=]        Vendor ID: 04, NXP Semiconductors Germany
[=]     Product type: NTAG
[=]  Product subtype: 02, 50pF
[=]    Major version: 01
[=]    Minor version: 00
[=]             Size: 0F, (256 <-> 128 bytes)
[=]    Protocol type: 03, ISO14443-3 Compliant

[=] --- Tag Configuration
[=]   cfg0 [41/0x29]: 04 00 00 10 
[=]                     - strong modulation mode disabled
[=]                     - page 16 and above need authentication
[=]   cfg1 [42/0x2A]: 18 05 00 00 
[=]                     - Unlimited password attempts
[=]                     - NFC counter enabled
[=]                     - NFC counter password protection enabled
[=]                     - user configuration writeable
[=]                     - write access is protected with password
[=]                     - 05, Virtual Card Type Identifier is default
[=]   PWD  [43/0x2B]: 00 00 00 00 - (cannot be read)
[=]   PACK [44/0x2C]: 00 00       - (cannot be read)
[=]   RFU  [44/0x2C]:       00 00 - (cannot be read)

[+] --- Known EV1/NTAG passwords
[!] ⚠️  password not known
[?] Hint: try `hf mfu pwdgen -r` to get see known pwd gen algo suggestions
[=] ------------------------ Fingerprint -----------------------
[=] Reading tag memory...
[=] ------------------------------------------------------------


It recognizes my NeXT but won’t let me register it (it blinks an “invalid card” error when I try to train it). I’m hoping someone can help figure it out.

Sniff the interaction between good tag and molock to find out what’s going on.

My guesses include;

  • it’s checking version
  • it’s checking memory past end of ntag213 blocks
  • it’s checking password (if set)

Also this is a typo/mistake in the proxmark3 software…

It’s not a one time pad… otp in this context means one time programmable bytes

Sniffing isn’t something I have much experience with, but here’s the data from an hf sniff when I tap the device on:

ah… sorry you want the ISO14443A sniff;

hf 14a sniff

2023-10-06-o79r9JYvYY

I scanned an Apex Flex with my ACR1252U on Windows and it’s a lot because Windows will attempt to probe the hell out of it… but you should get a nice output;

… it just goes on and on but you get the idea…

1 Like

I was wondering what you could possibly see in that data that I didn’t, but figured you’re the king… LOL I’ll get that for you this afternoon.

1 Like

two on/off cycles (four taps)

[=] downloading tracelog data from device
[+] Recorded activity (trace len = 750 bytes)
[=] start = start of start frame end = end of frame. src = source of transfer
[=] ISO14443A - all times are in carrier periods (1/13.56MHz)

      Start |        End | Src | Data (! denotes parity error)                                           | CRC | Annotation
------------+------------+-----+-------------------------------------------------------------------------+-----+--------------------
          0 |       1056 | Rdr |26(7)                                                                    |     | REQA
    7059616 |    7060672 | Rdr |26(7)                                                                    |     | REQA
   14118912 |   14119968 | Rdr |26(7)                                                                    |     | REQA
   21178080 |   21179136 | Rdr |26(7)                                                                    |     | REQA
   28237776 |   28238832 | Rdr |26(7)                                                                    |     | REQA
   28268592 |   28273360 | Rdr |50  00  57  cd                                                           |  ok | HALT
   28440400 |   28441392 | Rdr |52(7)                                                                    |     | WUPA
   28480992 |   28483456 | Rdr |93  20                                                                   |     | ANTICOLL
   28535728 |   28546192 | Rdr |93  70  88  04  dc  63  33  8c  1d                                       |  ok | SELECT_UID
   28583840 |   28586304 | Rdr |95  20                                                                   |     | ANTICOLL-2
   28638576 |   28649104 | Rdr |95  70  1a  ba  10  90  20  41  79                                       |  ok | SELECT_UID-2
   28727840 |   28732608 | Rdr |30  00  02  a8                                                           |  ok | READBLOCK(0)
   28845472 |   28850176 | Rdr |30  04  26  ee                                                           |  ok | READBLOCK(4)
   28901696 |   28909920 | Rdr |1b  fb  78  7d  d0  ef  94                                               |  ok | PWD-AUTH KEY: 0xFB787DD0
   34444320 |   34445376 | Rdr |26(7)                                                                    |     | REQA
   40186560 |   40187616 | Rdr |26(7)                                                                    |     | REQA
   45942480 |   45943536 | Rdr |26(7)                                                                    |     | REQA
   51698192 |   51699248 | Rdr |26(7)                                                                    |     | REQA
   57454208 |   57455264 | Rdr |26(7)                                                                    |     | REQA
   63209968 |   63211024 | Rdr |26(7)                                                                    |     | REQA
   68966416 |   68967472 | Rdr |26(7)                                                                    |     | REQA
   74722496 |   74723552 | Rdr |26(7)                                                                    |     | REQA
   80478032 |   80479088 | Rdr |26(7)                                                                    |     | REQA
   80508816 |   80513584 | Rdr |50  00  57  cd                                                           |  ok | HALT
   80681024 |   80682016 | Rdr |52(7)                                                                    |     | WUPA
   80721520 |   80723984 | Rdr |93  20                                                                   |     | ANTICOLL
   80776112 |   80786576 | Rdr |93  70  88  04  dc  63  33  8c  1d                                       |  ok | SELECT_UID
   80824096 |   80826560 | Rdr |95  20                                                                   |     | ANTICOLL-2
   80878688 |   80889216 | Rdr |95  70  1a  ba  10  90  20  41  79                                       |  ok | SELECT_UID-2
   80967392 |   80972160 | Rdr |30  00  02  a8                                                           |  ok | READBLOCK(0)
   81084800 |   81089504 | Rdr |30  04  26  ee                                                           |  ok | READBLOCK(4)
   81141056 |   81149280 | Rdr |1b  fb  78  7d  d0  ef  94                                               |  ok | PWD-AUTH KEY: 0xFB787DD0
  112157536 |  112158592 | Rdr |26(7)                                                                    |     | REQA
  117913376 |  117914432 | Rdr |26(7)                                                                    |     | REQA
  117944176 |  117948944 | Rdr |50  00  57  cd                                                           |  ok | HALT
  118116000 |  118116992 | Rdr |52(7)                                                                    |     | WUPA
  118156624 |  118159088 | Rdr |93  20                                                                   |     | ANTICOLL
  118211328 |  118221792 | Rdr |93  70  88  04  dc  63  33  8c  1d                                       |  ok | SELECT_UID
  118259408 |  118261872 | Rdr |95  20                                                                   |     | ANTICOLL-2
  118314112 |  118324640 | Rdr |95  70  1a  ba  10  90  20  41  79                                       |  ok | SELECT_UID-2
  118403344 |  118408112 | Rdr |30  00  02  a8                                                           |  ok | READBLOCK(0)
  118520912 |  118525616 | Rdr |30  04  26  ee                                                           |  ok | READBLOCK(4)
  118577120 |  118585344 | Rdr |1b  fb  78  7d  d0  ef  94                                               |  ok | PWD-AUTH KEY: 0xFB787DD0
  124119424 |  124120480 | Rdr |26(7)                                                                    |     | REQA
  129860768 |  129861824 | Rdr |26(7)                                                                    |     | REQA
  135616080 |  135617136 | Rdr |26(7)                                                                    |     | REQA
  141371488 |  141372544 | Rdr |26(7)                                                                    |     | REQA
  147127024 |  147128080 | Rdr |26(7)                                                                    |     | REQA
  152882944 |  152884000 | Rdr |26(7)                                                                    |     | REQA
  152913712 |  152918480 | Rdr |50  00  57  cd                                                           |  ok | HALT
  153085344 |  153086336 | Rdr |52(7)                                                                    |     | WUPA
  153125856 |  153128320 | Rdr |93  20                                                                   |     | ANTICOLL
  153180448 |  153190912 | Rdr |93  70  88  04  dc  63  33  8c  1d                                       |  ok | SELECT_UID
  153228368 |  153230832 | Rdr |95  20                                                                   |     | ANTICOLL-2
  153282976 |  153293504 | Rdr |95  70  1a  ba  10  90  20  41  79                                       |  ok | SELECT_UID-2
  153371728 |  153376496 | Rdr |30  00  02  a8                                                           |  ok | READBLOCK(0)
  153489264 |  153493968 | Rdr |30  04  26  ee                                                           |  ok | READBLOCK(4)
  153545488 |  153553712 | Rdr |1b  fb  78  7d  d0  ef  94                                               |  ok | PWD-AUTH KEY: 0xFB787DD0
  184561248 |  184562304 | Rdr |26(7)                                                                    |     | REQA
  190316976 |  190318032 | Rdr |26(7)                                                                    |     | REQA
  196072608 |  196073664 | Rdr |26(7)                                                                    |     | REQA

Looks like it’s checking for a password, I think?

I really hope you solve this. I got my bike back yesterday after the crash repairs and an nfc ignition is way up at the top of my wish list. I want to be a cyborg centaur!

3 Likes

Yeah it looks like password checks… but I don’t see any tag data. How are you sniffing? The proxmark3 hf antenna should be right up against the reader and the tag should be right up against the proxmark3. You could tape the tag to the pm3 and present the whole thing to the reader at the same time while sniffing.

So… the question is… did they use the same password for every fob or did they use a derivation system based on the UID… if they used the derivation system you would get a different password for a different tag.

At this point I would present a different working fob and see if the password check changes. If it does, then you can get the password for your non-working NExT by sniffing the registration process. If it’s the same password for both working fobs then just change the password on your NExT to FB 78 7D D0 and try to register it.

2 Likes

I rearranged the setup and I see the tag side of the conversation now. We’ll call this one Tag 1 (same one as above) Tap on and tap off:

[usb] pm3 --> hf search
 🕔  Searching for ISO14443-A tag...          
[+]  UID: 04 DC 63 1A BA 10 90 
[+] ATQA: 00 44
[+]  SAK: 00 [2]
[+] MANUFACTURER: NXP Semiconductors Germany
[+] Possible types:
[+]    MIFARE Ultralight
[+]    MIFARE Ultralight C
[+]    MIFARE Ultralight EV1
[+]    MIFARE Ultralight Nano
[+]    MIFARE Hospitality
[+]    NTAG 2xx
[=] proprietary non iso14443-4 card found, RATS not supported
[?] Hint: try `hf mfu info`


[+] Valid ISO 14443-A tag found

ON:

[usb] pm3 --> hf 14a list
[=] downloading tracelog data from device
[+] Recorded activity (trace len = 560 bytes)
[=] start = start of start frame end = end of frame. src = source of transfer
[=] ISO14443A - all times are in carrier periods (1/13.56MHz)

      Start |        End | Src | Data (! denotes parity error)                                           | CRC | Annotation
------------+------------+-----+-------------------------------------------------------------------------+-----+--------------------
          0 |       1056 | Rdr |26(7)                                                                    |     | REQA
       2228 |       4596 | Tag |44  00                                                                   |     | 
      30768 |      35536 | Rdr |50  00  57  cd                                                           |  ok | HALT
     202656 |     203648 | Rdr |52(7)                                                                    |     | WUPA
     204884 |     207252 | Tag |44  00                                                                   |     | 
     243264 |     245728 | Rdr |93  20                                                                   |     | ANTICOLL
     246916 |     252740 | Tag |88  04  dc  63  33                                                       |     | 
     297968 |     308432 | Rdr |93  70  88  04  dc  63  33  8c  1d                                       |  ok | SELECT_UID
     309684 |     313204 | Tag |04  da  17                                                               |  ok | 
     346080 |     348544 | Rdr |95  20                                                                   |     | ANTICOLL-2
     349716 |     355604 | Tag |1a  ba  10  90  20                                                       |     | 
     400784 |     411312 | Rdr |95  70  1a  ba  10  90  20  41  79                                       |  ok | SELECT_UID-2
     412500 |     416084 | Tag |00  fe  51                                                               |  ok | 
     490016 |     494784 | Rdr |30  00  02  a8                                                           |  ok | READBLOCK(0)
     553300 |     574100 | Tag |04  dc  63  33  1a  ba  10  90  20  48  00  00  e1  10  12  00  89  5c   |  ok | 
     607600 |     612304 | Rdr |30  04  26  ee                                                           |  ok | READBLOCK(4)
     613540 |     634404 | Tag |6d  6f  74  6f  67  61  64  67  65  74  2d  6b  65  79  30  30  6a  04   |  ok | 
     663808 |     672032 | Rdr |1b  fb  78  7d  d0  ef  94                                               |  ok | PWD-AUTH KEY: 0xFB787DD0
     673204 |     677876 | Tag |4c  02  74  d2                                                           |  ok | 
    6205216 |    6206272 | Rdr |26(7)                                                                    |     | REQA
    6207444 |    6209812 | Tag |44  00                                                                   |     | 
    6236000 |    6240768 | Rdr |50  00  57  cd                                                           |  ok | HALT
    6407632 |    6408624 | Rdr |52(7)                                                                    |     | WUPA
    6409860 |    6412228 | Tag |44  00                                                                   |     | 
    6448112 |    6450576 | Rdr |93  20                                                                   |     | ANTICOLL
    6451764 |    6457588 | Tag |88  04  dc  63  33                                                       |     | 
    6502688 |    6513152 | Rdr |93  70  88  04  dc  63  33  8c  1d                                       |  ok | SELECT_UID
    6514388 |    6517908 | Tag |04  da  17                                                               |  ok | 
    6550624 |    6553088 | Rdr |95  20                                                                   |     | ANTICOLL-2
    6554276 |    6560164 | Tag |1a  ba  10  90  20                                                       |     | 
    6605200 |    6615728 | Rdr |95  70  1a  ba  10  90  20  41  79                                       |  ok | SELECT_UID-2
    6616900 |    6620484 | Tag |00  fe  51                                                               |  ok | 
    6693872 |    6698640 | Rdr |30  00  02  a8                                                           |  ok | READBLOCK(0)
    6757172 |    6777972 | Tag |04  dc  63  33  1a  ba  10  90  20  48  00  00  e1  10  12  00  89  5c   |  ok | 
    6811376 |    6816080 | Rdr |30  04  26  ee                                                           |  ok | READBLOCK(4)
    6817332 |    6838196 | Tag |6d  6f  74  6f  67  61  64  67  65  74  2d  6b  65  79  30  30  6a  04   |  ok | 
    6867600 |    6875824 | Rdr |1b  fb  78  7d  d0  ef  94                                               |  ok | PWD-AUTH KEY: 0xFB787DD0
    6876996 |    6881668 | Tag |4c  02  74  d2                                                           |  ok | 

OFF:

[usb] pm3 --> hf 14a list
[=] downloading tracelog data from device
[+] Recorded activity (trace len = 280 bytes)
[=] start = start of start frame end = end of frame. src = source of transfer
[=] ISO14443A - all times are in carrier periods (1/13.56MHz)

      Start |        End | Src | Data (! denotes parity error)                                           | CRC | Annotation
------------+------------+-----+-------------------------------------------------------------------------+-----+--------------------
          0 |       1056 | Rdr |26(7)                                                                    |     | REQA
       2244 |       4612 | Tag |44  00                                                                   |     | 
      30752 |      35520 | Rdr |50  00  57  cd                                                           |  ok | HALT
     202880 |     203872 | Rdr |52(7)                                                                    |     | WUPA
     205124 |     207492 | Tag |44  00                                                                   |     | 
     243376 |     245840 | Rdr |93  20                                                                   |     | ANTICOLL
     247028 |     252852 | Tag |88  04  dc  63  33                                                       |     | 
     297936 |     308400 | Rdr |93  70  88  04  dc  63  33  8c  1d                                       |  ok | SELECT_UID
     309652 |     313172 | Tag |04  da  17                                                               |  ok | 
     345888 |     348352 | Rdr |95  20                                                                   |     | ANTICOLL-2
     349540 |     355428 | Tag |1a  ba  10  90  20                                                       |     | 
     400448 |     410976 | Rdr |95  70  1a  ba  10  90  20  41  79                                       |  ok | SELECT_UID-2
     412164 |     415748 | Tag |00  fe  51                                                               |  ok | 
     489152 |     493920 | Rdr |30  00  02  a8                                                           |  ok | READBLOCK(0)
     552436 |     573236 | Tag |04  dc  63  33  1a  ba  10  90  20  48  00  00  e1  10  12  00  89  5c   |  ok | 
     606656 |     611360 | Rdr |30  04  26  ee                                                           |  ok | READBLOCK(4)
     612612 |     633476 | Tag |6d  6f  74  6f  67  61  64  67  65  74  2d  6b  65  79  30  30  6a  04   |  ok | 
     662864 |     671088 | Rdr |1b  fb  78  7d  d0  ef  94                                               |  ok | PWD-AUTH KEY: 0xFB787DD0
     672276 |     676948 | Tag |4c  02  74  d2                                                           |  ok | 

and here is Tag 2:

[usb] pm3 --> hf search                       
 🕓  Searching for ISO14443-A tag...          
[+]  UID: 04 5D EA 6A BA 10 90 
[+] ATQA: 00 44
[+]  SAK: 00 [2]
[+] MANUFACTURER: NXP Semiconductors Germany
[+] Possible types:
[+]    MIFARE Ultralight
[+]    MIFARE Ultralight C
[+]    MIFARE Ultralight EV1
[+]    MIFARE Ultralight Nano
[+]    MIFARE Hospitality
[+]    NTAG 2xx
[=] proprietary non iso14443-4 card found, RATS not supported
[?] Hint: try `hf mfu info`


[+] Valid ISO 14443-A tag found

ON:

[usb] pm3 --> hf 14a list
[=] downloading tracelog data from device
[+] Recorded activity (trace len = 560 bytes)
[=] start = start of start frame end = end of frame. src = source of transfer
[=] ISO14443A - all times are in carrier periods (1/13.56MHz)

      Start |        End | Src | Data (! denotes parity error)                                           | CRC | Annotation
------------+------------+-----+-------------------------------------------------------------------------+-----+--------------------
          0 |       1056 | Rdr |26(7)                                                                    |     | REQA
       2228 |       4596 | Tag |44  00                                                                   |     | 
      30752 |      35520 | Rdr |50  00  57  cd                                                           |  ok | HALT
     202448 |     203440 | Rdr |52(7)                                                                    |     | WUPA
     204676 |     207044 | Tag |44  00                                                                   |     | 
     243040 |     245504 | Rdr |93  20                                                                   |     | ANTICOLL
     246692 |     252580 | Tag |88  04  5d  ea  3b                                                       |     | 
     297712 |     308176 | Rdr |93  70  88  04  5d  ea  3b  20  9c                                       |  ok | SELECT_UID
     309412 |     312932 | Tag |04  da  17                                                               |  ok | 
     345760 |     348224 | Rdr |95  20                                                                   |     | ANTICOLL-2
     349396 |     355220 | Tag |6a  ba  10  90  50                                                       |     | 
     400400 |     410928 | Rdr |95  70  6a  ba  10  90  50  35  1f                                       |  ok | SELECT_UID-2
     412116 |     415700 | Tag |00  fe  51                                                               |  ok | 
     489488 |     494256 | Rdr |30  00  02  a8                                                           |  ok | READBLOCK(0)
     552788 |     573588 | Tag |04  5d  ea  3b  6a  ba  10  90  50  48  00  00  e1  10  12  00  98  f0   |  ok | 
     606928 |     611632 | Rdr |30  04  26  ee                                                           |  ok | READBLOCK(4)
     612884 |     633748 | Tag |6d  6f  74  6f  67  61  64  67  65  74  2d  6b  65  79  30  30  6a  04   |  ok | 
     663088 |     671312 | Rdr |1b  69  ef  1f  ef  bb  d9                                               |  ok | PWD-AUTH KEY: 0x69EF1FEF
     672484 |     677156 | Tag |6f  03  a6  ca                                                           |  ok | 
    6190256 |    6191312 | Rdr |26(7)                                                                    |     | REQA
    6192484 |    6194852 | Tag |44  00                                                                   |     | 
    6220992 |    6225760 | Rdr |50  00  57  cd                                                           |  ok | HALT
    6393056 |    6394048 | Rdr |52(7)                                                                    |     | WUPA
    6395300 |    6397668 | Tag |44  00                                                                   |     | 
    6433536 |    6436000 | Rdr |93  20                                                                   |     | ANTICOLL
    6437188 |    6443076 | Tag |88  04  5d  ea  3b                                                       |     | 
    6488080 |    6498544 | Rdr |93  70  88  04  5d  ea  3b  20  9c                                       |  ok | SELECT_UID
    6499796 |    6503316 | Tag |04  da  17                                                               |  ok | 
    6536000 |    6538464 | Rdr |95  20                                                                   |     | ANTICOLL-2
    6539652 |    6545476 | Tag |6a  ba  10  90  50                                                       |     | 
    6590544 |    6601072 | Rdr |95  70  6a  ba  10  90  50  35  1f                                       |  ok | SELECT_UID-2
    6602244 |    6605828 | Tag |00  fe  51                                                               |  ok | 
    6679184 |    6683952 | Rdr |30  00  02  a8                                                           |  ok | READBLOCK(0)
    6742468 |    6763268 | Tag |04  5d  ea  3b  6a  ba  10  90  50  48  00  00  e1  10  12  00  98  f0   |  ok | 
    6796656 |    6801360 | Rdr |30  04  26  ee                                                           |  ok | READBLOCK(4)
    6802612 |    6823476 | Tag |6d  6f  74  6f  67  61  64  67  65  74  2d  6b  65  79  30  30  6a  04   |  ok | 
    6852816 |    6861040 | Rdr |1b  69  ef  1f  ef  bb  d9                                               |  ok | PWD-AUTH KEY: 0x69EF1FEF
    6862212 |    6866884 | Tag |6f  03  a6  ca                                                           |  ok | 

OFF:

[usb] pm3 --> hf 14a list
[=] downloading tracelog data from device
[+] Recorded activity (trace len = 280 bytes)
[=] start = start of start frame end = end of frame. src = source of transfer
[=] ISO14443A - all times are in carrier periods (1/13.56MHz)

      Start |        End | Src | Data (! denotes parity error)                                           | CRC | Annotation
------------+------------+-----+-------------------------------------------------------------------------+-----+--------------------
          0 |       1056 | Rdr |26(7)                                                                    |     | REQA
       2228 |       4596 | Tag |44  00                                                                   |     | 
      30784 |      35552 | Rdr |50  00  57  cd                                                           |  ok | HALT
     202272 |     203264 | Rdr |52(7)                                                                    |     | WUPA
     204516 |     206884 | Tag |44  00                                                                   |     | 
     242720 |     245184 | Rdr |93  20                                                                   |     | ANTICOLL
     246356 |     252244 | Tag |88  04  5d  ea  3b                                                       |     | 
     297264 |     307728 | Rdr |93  70  88  04  5d  ea  3b  20  9c                                       |  ok | SELECT_UID
     308964 |     312484 | Tag |04  da  17                                                               |  ok | 
     345136 |     347600 | Rdr |95  20                                                                   |     | ANTICOLL-2
     348772 |     354596 | Tag |6a  ba  10  90  50                                                       |     | 
     399680 |     410208 | Rdr |95  70  6a  ba  10  90  50  35  1f                                       |  ok | SELECT_UID-2
     411380 |     414964 | Tag |00  fe  51                                                               |  ok | 
     488304 |     493072 | Rdr |30  00  02  a8                                                           |  ok | READBLOCK(0)
     551588 |     572388 | Tag |04  5d  ea  3b  6a  ba  10  90  50  48  00  00  e1  10  12  00  98  f0   |  ok | 
     605712 |     610416 | Rdr |30  04  26  ee                                                           |  ok | READBLOCK(4)
     611652 |     632516 | Tag |6d  6f  74  6f  67  61  64  67  65  74  2d  6b  65  79  30  30  6a  04   |  ok | 
     661888 |     670112 | Rdr |1b  69  ef  1f  ef  bb  d9                                               |  ok | PWD-AUTH KEY: 0x69EF1FEF
     671284 |     675956 | Tag |6f  03  a6  ca                                                           |  ok | 

The range on these fobs is really surprising.

So not a fixed pwd. If it’s generated based on the UID, I’m thinking we’d need more than two samples to reverse engineer it… Hopefully you see something I don’t :wink:

Yes it appears to be a derived password. But, don’t think we need to reverse engineer the password. The reader should give us the password during registration of a new chip. This is because it’s clear the registration process is checking for the password during registration, and because the protocol between chip and reader is not encrypted, we get to sniff that password.

However, there is another factor here which is the password acknowledgement passed back on successful password authentication. That appears to be different for each as well. This may be somewhat difficult to derive because it’s what the tag sends back and the reader will not reveal this… and it does appear that each good tag does have a unique ack. The ack is only two bytes though so it may be easy enough to brute force that with a lua script and continuous registration attempts.

To confirm the pwd-ack let’s test fob 2 with NFC shell or NFC tools advanced. Send the command 1B and then the password 69 EF 1F EF

According to the sniff data you should get back an ack value of 6F 03.

1 Like

According to the sniff data you should get back an ack value of 6F 03.

Confirmed

1 Like

Yeah so now the fun starts… either the method for calculating the pwd ack needs to be reverse engineered, or it needs to be brute forced.

To brute force it you may need to create a script that is quite involved. My guess is the script will need to be able to control tag emulation (turn it on and off) and you’ll need to probably screen record as the proxmark3 is running through the registration process and emulating different pwd ack responses (assuming it can do this). At the same time you’ll need to probably have a video feed on the lock to detect different LED patterns for successful registration vs invalid registration… and record audio to hear the tone differences as well.

We’re now stepping firmly outside my comfort zone unfortunately. I’ve never actually made a lua script and I’m not even sure the current proxmark3 firmware can do what’s necessary.

For a one-time thing, I should be able to “just” write a script that can send the ack bytes in sequence until one works, right? All the rest is just to make it automated and repeatable for the future? Let’s say I find the needed ack bytes, how would I teach the NeXT to respond with it?

I have a HuskyLens (computer vision module) currently hooked up to a raspberry Pi… I think I can rig it to watch for a blue light and take a photograph when it detects it… So if the script tried each combo and output it to a display, I could capture the successful bytes… But I’m not sure how I would broadcast the my next ID and bytes.

It’s two bytes… That’s only 10,000 possible combinations give or take two :rofl:. If I manually do one every 10 seconds thats… Erm… two bottles of scotch? 28 hours of active work time… That’s dumb brute force, but… It’s a thing… I guess…

2 Likes

Yeah maybe… I’m not sure if there is a max failure counter in the registration process or not. If not then yeah just go to town on it.

If you can do blue light detection great but I was thinking more simply like obs to record your screen and a webcam zoomed way in on the blue light so it takes up nearly all the screen and put the webcam on your obs scene really big so you can capture the script output and the led status in one video.

Could possibly use post processing to detect when the blue light shows or there may also be some other software like a color picker thing that can do the same detection on the computer and screen cap when it goes blueish. Dunno.

If your pi cam solution can capture the screen output as well in the same photo so you can read which ack worked, that’s fine too

Using Key 2 to place the device in training mode:

Output is too long for a post, pasted it here

Rejected attempt to train my NeXt:

[usb] pm3 --> hf 14a list
[=] downloading tracelog data from device
[+] Recorded activity (trace len = 569 bytes)
[=] start = start of start frame end = end of frame. src = source of transfer
[=] ISO14443A - all times are in carrier periods (1/13.56MHz)

      Start |        End | Src | Data (! denotes parity error)                                           | CRC | Annotation
------------+------------+-----+-------------------------------------------------------------------------+-----+--------------------
          0 |       1056 | Rdr |26(7)                                                                    |     | REQA
    5752640 |    5753696 | Rdr |26(7)                                                                    |     | REQA
   11504656 |   11505712 | Rdr |26(7)                                                                    |     | REQA
   17257424 |   17258480 | Rdr |26(7)                                                                    |     | REQA
   23010192 |   23011248 | Rdr |26(7)                                                                    |     | REQA
   28762592 |   28763648 | Rdr |26(7)                                                                    |     | REQA
   34515584 |   34516640 | Rdr |26(7)                                                                    |     | REQA
   40267984 |   40269040 | Rdr |26(7)                                                                    |     | REQA
   40270228 |   40272596 | Tag |44  00                                                                   |     | 
   40298720 |   40303488 | Rdr |50  00  57  cd                                                           |  ok | HALT
   40470720 |   40471712 | Rdr |52(7)                                                                    |     | WUPA
   40472980 |   40475348 | Tag |44  00                                                                   |     | 
   40511248 |   40513712 | Rdr |93  20                                                                   |     | ANTICOLL
   40514900 |   40520788 | Tag |88  04  1c  85  15                                                       |     | 
   40565856 |   40576320 | Rdr |93  70  88  04  1c  85  15  6b  ee                                       |  ok | SELECT_UID
   40577572 |   40581092 | Tag |04  da  17                                                               |  ok | 
   40613840 |   40616304 | Rdr |95  20                                                                   |     | ANTICOLL-2
   40617492 |   40623380 | Tag |32  0a  54  80  ec                                                       |     | 
   40668432 |   40678896 | Rdr |95  70  32  0a  54  80  ec  8a  de                                       |  ok | SELECT_UID-2
   40680148 |   40683732 | Tag |00  fe  51                                                               |  ok | 
   40757280 |   40762048 | Rdr |30  00  02  a8                                                           |  ok | READBLOCK(0)
   40763236 |   40784036 | Tag |04  1c  85  15  32  0a  54  80  ec  48  0f  00  e1  10  6d  00  6c  db   |  ok | 
   40817408 |   40822112 | Rdr |30  04  26  ee                                                           |  ok | READBLOCK(4)
   40823380 |   40844180 | Tag |03  40  d1  02  3b  53  70  91  01  25  55  00  68  74  74  70  16  bb   |  ok | 
   59111744 |   59112800 | Rdr |26(7)                                                                    |     | REQA
   59142496 |   59147264 | Rdr |50  00  57  cd                                                           |  ok | HALT
   59313808 |   59314800 | Rdr |52(7)                                                                    |     | WUPA
   59354304 |   59356768 | Rdr |93  20                                                                   |     | ANTICOLL
   59408880 |   59419344 | Rdr |93  70  88  04  1c  85  15  6b  ee                                       |  ok | SELECT_UID
   59456832 |   59459296 | Rdr |95  20                                                                   |     | ANTICOLL-2
   59511408 |   59521872 | Rdr |95  70  32  0a  54  80  ec  8a  de                                       |  ok | SELECT_UID-2
   59600208 |   59604976 | Rdr |30  00  02  a8                                                           |  ok | READBLOCK(0)
   59660336 |   59665040 | Rdr |30  04  26  ee                                                           |  ok | READBLOCK(4)
   77940800 |   77941856 | Rdr |26(7)                                                                    |     | REQA
   77971552 |   77976320 | Rdr |50  00  57  cd                                                           |  ok | HALT
   78142928 |   78143920 | Rdr |52(7)                                                                    |     | WUPA
   78183456 |   78185920 | Rdr |93  20                                                                   |     | ANTICOLL
   78238032 |   78248496 | Rdr |93  70  88  04  1c  85  15  6b  ee                                       |  ok | SELECT_UID
   78286000 |   78288464 | Rdr |95  20                                                                   |     | ANTICOLL-2
   78340576 |   78351040 | Rdr |95  70  32  0a  54  80  ec  8a  de                                       |  ok | SELECT_UID-2
   78429408 |   78434176 | Rdr |30  00  02  a8                                                           |  ok | READBLOCK(0)
   78489568 |   78494272 | Rdr |30  04  26  ee                                                           |  ok | READBLOCK(4)
   96769296 |   96770352 | Rdr |26(7)                                                                    |     | REQA

and I’m not sure if it is idempotent, but here’s the output when I train Tag 1 and get the blinking green 'success" light. This might be “successfully trained” or it might be “tag already exists”, I suppose.

[usb] pm3 --> hf 14a list
[=] downloading tracelog data from device
[+] Recorded activity (trace len = 280 bytes)
[=] start = start of start frame end = end of frame. src = source of transfer
[=] ISO14443A - all times are in carrier periods (1/13.56MHz)

      Start |        End | Src | Data (! denotes parity error)                                           | CRC | Annotation
------------+------------+-----+-------------------------------------------------------------------------+-----+--------------------
          0 |       1056 | Rdr |26(7)                                                                    |     | REQA
       2228 |       4596 | Tag |44  00                                                                   |     | 
      30720 |      35488 | Rdr |50  00  57  cd                                                           |  ok | HALT
     202032 |     203024 | Rdr |52(7)                                                                    |     | WUPA
     204260 |     206628 | Tag |44  00                                                                   |     | 
     242464 |     244928 | Rdr |93  20                                                                   |     | ANTICOLL
     246100 |     251924 | Tag |88  04  dc  63  33                                                       |     | 
     297024 |     307488 | Rdr |93  70  88  04  dc  63  33  8c  1d                                       |  ok | SELECT_UID
     308740 |     312260 | Tag |04  da  17                                                               |  ok | 
     344976 |     347440 | Rdr |95  20                                                                   |     | ANTICOLL-2
     348628 |     354516 | Tag |1a  ba  10  90  20                                                       |     | 
     399552 |     410080 | Rdr |95  70  1a  ba  10  90  20  41  79                                       |  ok | SELECT_UID-2
     411252 |     414836 | Tag |00  fe  51                                                               |  ok | 
     488352 |     493120 | Rdr |30  00  02  a8                                                           |  ok | READBLOCK(0)
     551636 |     572436 | Tag |04  dc  63  33  1a  ba  10  90  20  48  00  00  e1  10  12  00  89  5c   |  ok | 
     605728 |     610432 | Rdr |30  04  26  ee                                                           |  ok | READBLOCK(4)
     611684 |     632548 | Tag |6d  6f  74  6f  67  61  64  67  65  74  2d  6b  65  79  30  30  6a  04   |  ok | 
     661888 |     670112 | Rdr |1b  fb  78  7d  d0  ef  94                                               |  ok | PWD-AUTH KEY: 0xFB787DD0
     671300 |     675972 | Tag |4c  02  74  d2                                                           |  ok | 
[usb] pm3 -->