1 00:00:35,110 --> 00:00:36,270 Can you hear me? 2 00:00:48,710 --> 00:00:51,090 The slide looks a little bit like shit, but yeah. 3 00:00:51,690 --> 00:00:52,690 It is what it is. 4 00:00:52,690 --> 00:00:55,110 It is what it is, yes, unfortunately. 5 00:00:56,570 --> 00:01:00,810 Now, do I need to see you on a webcam here, or should we turn off... 6 00:01:00,810 --> 00:01:03,170 No, I have to do that, otherwise you can't stream me. 7 00:01:03,170 --> 00:01:04,490 Alright, alright, alright. 8 00:01:07,850 --> 00:01:10,110 Alright, so, and then we have... 9 00:01:12,030 --> 00:01:14,030 This there, and yeah, ok. 10 00:01:14,030 --> 00:01:16,750 Cool, ooh, look at the background, looks nice, brother. 11 00:01:17,930 --> 00:01:19,370 Man, you've been busy. 12 00:01:19,990 --> 00:01:21,670 And you've got a nice shirt on as well. 13 00:01:21,670 --> 00:01:24,050 I just put on a fucking t-shirt. 14 00:01:24,050 --> 00:01:25,610 You should have told me I could... 15 00:01:25,610 --> 00:01:30,010 I would have swapped to an RRG t-shirt here. 16 00:01:30,010 --> 00:01:32,170 Give me one second here. 17 00:01:36,190 --> 00:01:37,730 It is in the end of the slideshow. 18 00:01:37,730 --> 00:01:40,730 It's loads of crappy slides, but it shouldn't be there. 19 00:01:42,890 --> 00:01:46,930 Well, anyway, we just said goodbye anyway, so that's how it is. 20 00:01:47,090 --> 00:01:48,550 It's a part of life. 21 00:01:49,350 --> 00:01:52,850 We pushed this one a little bit too close. 22 00:01:52,850 --> 00:01:53,510 Dude. 23 00:01:54,250 --> 00:01:56,490 Yeah, so just so you know, we are... 24 00:01:57,170 --> 00:02:01,090 I'm streaming, but I don't think the event has started, so I don't think... 25 00:02:01,090 --> 00:02:03,210 I don't see anything live yet. 26 00:02:03,310 --> 00:02:06,730 Alright, because that's not live until 4 minutes 20 seconds, that's why. 27 00:02:06,730 --> 00:02:08,130 Yeah, yeah, yeah. 28 00:02:17,760 --> 00:02:19,820 Do-do-do-do. 29 00:02:20,640 --> 00:02:24,540 Na-na-na-na-na-na-na-na-na-na. 30 00:02:32,240 --> 00:02:36,740 Do-do-do-do-do-do-do-do-do-do. 31 00:02:37,960 --> 00:02:42,620 So we got the Zero Day Initiative up and running. 32 00:02:42,620 --> 00:02:43,480 Yep. 33 00:02:45,060 --> 00:02:46,220 Yeah. 34 00:02:46,220 --> 00:02:49,540 So basically after we new tools, it's demo time. 35 00:02:49,540 --> 00:02:51,140 Or how did you say? 36 00:02:51,140 --> 00:02:54,100 I think that's where we're going to squeeze it in. 37 00:02:55,700 --> 00:02:58,920 Because when we talked about everything, and then we just want to show it off. 38 00:02:58,920 --> 00:02:59,840 Pretty much. 39 00:03:00,220 --> 00:03:04,720 We show off standalone things first, I guess, and then we do Zero Day after that. 40 00:03:04,720 --> 00:03:06,520 And then we do Q&A. 41 00:03:07,180 --> 00:03:09,420 And if you want to have that in... 42 00:03:09,420 --> 00:03:13,580 I'm going to have Discord up and stuff like that, so I can see if there are... 43 00:03:13,580 --> 00:03:17,940 You know, if they keep track of any questions or stuff like that. 44 00:03:17,940 --> 00:03:18,660 I don't think so. 45 00:03:18,660 --> 00:03:22,100 What contact info do you want to use? 46 00:03:23,200 --> 00:03:27,900 Make Iceman at iuses.sc or something like that. 47 00:03:28,060 --> 00:03:29,700 iuseskill or something. 48 00:03:29,860 --> 00:03:31,980 Usually this one goes well. 49 00:03:36,300 --> 00:03:38,440 Yeah, that one works. 50 00:03:39,020 --> 00:03:40,260 Keybase. 51 00:03:42,760 --> 00:03:43,840 Bye. 52 00:03:44,730 --> 00:03:45,820 See ya. 53 00:03:57,330 --> 00:03:59,390 And I need to... 54 00:03:59,390 --> 00:04:00,970 take that one. 55 00:04:01,410 --> 00:04:02,070 Iceman. 56 00:04:02,070 --> 00:04:02,830 Ha! 57 00:04:02,830 --> 00:04:04,410 The Penguin, yay! 58 00:04:04,890 --> 00:04:07,790 I think they are listening in to us already, that's why. 59 00:04:07,950 --> 00:04:09,250 Oh, that's possible. 60 00:04:09,390 --> 00:04:10,950 That's possible, okay. 61 00:04:11,070 --> 00:04:13,690 Let's keep this one clean then. 62 00:04:14,770 --> 00:04:17,730 I mean, I don't know. 63 00:04:17,730 --> 00:04:19,310 I don't know if anyone can hear us. 64 00:04:19,310 --> 00:04:21,590 No one has been saying anything else. 65 00:04:21,590 --> 00:04:22,210 Yay! 66 00:04:22,930 --> 00:04:23,890 Yay! 67 00:04:25,970 --> 00:04:28,930 Turks, this should be... 68 00:04:44,720 --> 00:04:48,000 Alright, I take away Keybase. 69 00:04:48,000 --> 00:04:50,660 And I'm looking here on Turks. 70 00:04:57,500 --> 00:05:00,180 Yeah, you're live and visible. 71 00:05:00,180 --> 00:05:01,540 Alright, nice. 72 00:05:01,540 --> 00:05:03,060 Oh, okay. 73 00:05:03,080 --> 00:05:03,760 Cool. 74 00:05:03,760 --> 00:05:05,660 I've been doing this the whole time. 75 00:05:07,340 --> 00:05:09,060 I don't see it on YouTube. 76 00:05:09,060 --> 00:05:10,300 Ah, right. 77 00:05:10,300 --> 00:05:11,240 I don't either. 78 00:05:11,240 --> 00:05:12,400 That's probably for the best. 79 00:05:12,400 --> 00:05:13,580 I'll save the bandwidth. 80 00:05:15,820 --> 00:05:18,400 No, I meant I'm on the YouTube channel. 81 00:05:18,400 --> 00:05:20,180 I didn't see it there on that one. 82 00:05:20,180 --> 00:05:22,000 Oh, you can or can't see it? 83 00:05:22,000 --> 00:05:22,760 I can't see it. 84 00:05:22,760 --> 00:05:24,900 It's just RFHS logo. 85 00:05:24,900 --> 00:05:25,580 Okay. 86 00:05:25,580 --> 00:05:27,160 But it's live? 87 00:05:27,160 --> 00:05:28,400 Are we sure it's live? 88 00:05:28,560 --> 00:05:32,000 Yes, Zerus just said it on Discord. 89 00:05:32,000 --> 00:05:33,880 But we are both live and visible. 90 00:05:33,880 --> 00:05:35,400 So, hello. 91 00:05:35,980 --> 00:05:37,480 Hello, everyone. 92 00:05:37,520 --> 00:05:38,140 Yeah. 93 00:05:38,260 --> 00:05:39,220 Let's see. 94 00:05:39,220 --> 00:05:40,720 Let's double check. 95 00:05:41,120 --> 00:05:44,200 This is very odd now because now I'm confused. 96 00:05:44,420 --> 00:05:46,680 I gotta say, I'm looking... 97 00:05:48,400 --> 00:05:50,800 I'm looking at the YouTube link. 98 00:05:50,800 --> 00:05:52,800 It doesn't look live. 99 00:05:53,500 --> 00:05:54,280 Yeah, exactly. 100 00:05:54,280 --> 00:05:57,780 I'm on YouTube link and it doesn't look live. 101 00:05:59,160 --> 00:06:00,960 Let's check in with Zero. 102 00:06:00,960 --> 00:06:03,720 I don't want to start until we're sure we're good to go. 103 00:06:04,200 --> 00:06:05,040 We don't... 104 00:06:06,340 --> 00:06:12,120 If anyone can see us and hear us, thank you for standing by as a result. 105 00:06:12,120 --> 00:06:14,240 Potential technical difficulties. 106 00:06:16,420 --> 00:06:19,180 Yeah, because we don't know how this stuff works. 107 00:06:22,280 --> 00:06:23,960 All right. 108 00:06:25,280 --> 00:06:26,400 Okay. 109 00:06:27,400 --> 00:06:28,720 Maybe I should do that privately. 110 00:06:28,720 --> 00:06:29,280 Okay. 111 00:06:32,140 --> 00:06:32,540 So... 112 00:06:33,240 --> 00:06:35,120 Am I on the wrong YouTube channel? 113 00:06:35,120 --> 00:06:35,880 No, it can't be. 114 00:06:35,880 --> 00:06:36,980 It should be this one. 115 00:06:38,120 --> 00:06:40,760 It says 27 is waiting. 116 00:06:41,400 --> 00:06:42,740 Yeah, it does say waiting. 117 00:06:43,140 --> 00:06:43,920 Yeah. 118 00:06:43,940 --> 00:06:45,700 See, I don't think the stream has started. 119 00:06:45,700 --> 00:06:47,660 I think we need to click something in YouTube. 120 00:06:48,140 --> 00:06:49,420 Yeah, I think we need to... 121 00:06:49,420 --> 00:06:52,120 You have to enable it in YouTube. 122 00:06:52,120 --> 00:06:56,100 I think that's what Wasabi should do. 123 00:06:56,100 --> 00:06:57,840 If you, Zero, hear this... 124 00:06:57,840 --> 00:06:59,600 I wonder if the stream is still private. 125 00:06:59,600 --> 00:07:03,680 Wasabi set the stream to private, so it needs to be set un-private if that's the case. 126 00:07:03,940 --> 00:07:05,160 Yeah, yeah, yeah, yeah. 127 00:07:07,540 --> 00:07:09,740 Well, if they see us, maybe... 128 00:07:09,740 --> 00:07:10,660 I don't know. 129 00:07:11,260 --> 00:07:12,520 I have no idea. 130 00:07:22,970 --> 00:07:23,730 Boom. 131 00:07:24,810 --> 00:07:28,810 All right, let's see in the chat if someone can tell us if you actually see us here. 132 00:07:28,810 --> 00:07:32,290 And I mean in the YouTube chat, because we can't see ourselves on YouTube. 133 00:07:32,290 --> 00:07:33,250 That's why. 134 00:07:35,210 --> 00:07:36,010 I don't know. 135 00:07:38,430 --> 00:07:39,470 How about now? 136 00:07:39,470 --> 00:07:40,670 It's marked public now. 137 00:07:40,670 --> 00:07:41,710 Okay, let's see. 138 00:07:41,710 --> 00:07:44,270 All right, let's see if it kicks over. 139 00:07:45,430 --> 00:07:48,010 I'm refreshing it, and it says, waiting for... 140 00:07:49,270 --> 00:07:51,270 It might be on a delay. 141 00:07:52,590 --> 00:07:54,030 Yeah, maybe. 142 00:07:54,170 --> 00:07:56,130 So don't say anything stupid yet. 143 00:07:56,510 --> 00:07:58,590 Because it might be buffered. 144 00:07:59,030 --> 00:07:59,910 Oh. 145 00:08:02,530 --> 00:08:03,870 Oh my. 146 00:08:05,450 --> 00:08:07,590 So where's the live stream exactly? 147 00:08:07,590 --> 00:08:09,170 People are asking where it is. 148 00:08:09,170 --> 00:08:11,470 Yeah, I am curious as well. 149 00:08:11,470 --> 00:08:12,150 Yeah. 150 00:08:18,080 --> 00:08:18,720 So... 151 00:08:18,720 --> 00:08:20,200 It's marked private. 152 00:08:20,200 --> 00:08:22,880 You have to navigate straight to the live link. 153 00:08:22,880 --> 00:08:24,000 All right. 154 00:08:25,840 --> 00:08:30,340 Mine says, waiting for... 155 00:08:31,940 --> 00:08:32,340 Rfhf... 156 00:08:33,360 --> 00:08:33,760 Rfhacker... 157 00:08:33,760 --> 00:08:36,520 So here's... 158 00:08:36,520 --> 00:08:37,580 Oh, here's a different link. 159 00:08:37,580 --> 00:08:38,440 Ah, shit. 160 00:08:38,600 --> 00:08:39,660 Oh, look at that. 161 00:08:39,840 --> 00:08:40,240 Yeah. 162 00:08:40,240 --> 00:08:41,400 They gave us the wrong link. 163 00:08:41,400 --> 00:08:43,360 People have been watching this whole time. 164 00:08:45,860 --> 00:08:48,720 So that means people have the wrong link. 165 00:08:48,720 --> 00:08:50,400 We need to get the correct link. 166 00:08:50,400 --> 00:08:51,220 Yeah , okay. 167 00:08:52,360 --> 00:08:55,040 So I'm going to change back to the other one. 168 00:08:57,500 --> 00:08:58,300 And then... 169 00:08:58,300 --> 00:08:59,240 Oh man. 170 00:08:59,240 --> 00:09:00,540 That sucks. 171 00:09:02,840 --> 00:09:03,740 You can go... 172 00:09:03,740 --> 00:09:04,720 It's public now. 173 00:09:04,720 --> 00:09:05,860 Yeah, yeah, okay. 174 00:09:06,060 --> 00:09:08,740 The new link works. 175 00:09:09,820 --> 00:09:12,520 The one YouTube suggests. 176 00:09:20,200 --> 00:09:26,040 All right, let's go into this chat here and just... 177 00:09:26,040 --> 00:09:27,520 Here we go. 178 00:09:27,780 --> 00:09:28,580 This one, yeah? 179 00:09:28,580 --> 00:09:31,060 Let's go into this chat here and... 180 00:09:31,060 --> 00:09:32,240 No, this one. 181 00:09:33,080 --> 00:09:34,440 No, this one. 182 00:09:37,080 --> 00:09:38,580 Can I delete this one? 183 00:09:38,580 --> 00:09:39,080 No, I can't. 184 00:09:39,080 --> 00:09:40,580 Ah, well, the last one. 185 00:09:44,030 --> 00:09:45,510 All right, I don't know. 186 00:09:46,030 --> 00:09:47,770 So, Ferdy's waiting there. 187 00:09:48,050 --> 00:09:48,930 And , yeah. 188 00:09:49,410 --> 00:09:50,650 Eight is watching. 189 00:09:50,650 --> 00:09:52,950 Those eight who's here, hi, it's public. 190 00:09:53,430 --> 00:09:53,870 So... 191 00:09:53,870 --> 00:09:54,670 Yeah. 192 00:09:54,690 --> 00:09:56,770 But the problem is the talk description... 193 00:09:57,490 --> 00:09:58,550 Oh, come on. 194 00:09:58,550 --> 00:09:59,650 It's the other link. 195 00:09:59,650 --> 00:10:01,670 The other link needs to be set live. 196 00:10:02,130 --> 00:10:03,030 Yeah, but I will... 197 00:10:03,030 --> 00:10:05,390 Or I was given the wrong key. 198 00:10:05,390 --> 00:10:07,750 Or I was given the wrong stream key. 199 00:10:08,170 --> 00:10:08,830 I have no idea. 200 00:10:08,830 --> 00:10:13,870 But this one does not have a stream description or anything like that. 201 00:10:13,870 --> 00:10:15,730 So it looks like you have a new link. 202 00:10:17,030 --> 00:10:17,930 All right, yeah. 203 00:10:17,930 --> 00:10:19,490 So, sorry about that. 204 00:10:19,490 --> 00:10:20,670 It says Ferdy waiting. 205 00:10:20,670 --> 00:10:22,270 No, we need to... 206 00:10:22,270 --> 00:10:24,590 Yeah, those Ferdy there is going to be... 207 00:10:24,590 --> 00:10:25,290 Yeah. 208 00:10:25,290 --> 00:10:26,830 Because that's the correct link. 209 00:10:26,830 --> 00:10:30,730 I was either given the wrong stream key or something needs to be adjusted. 210 00:10:33,470 --> 00:10:38,550 For those who are watching this on the other stream, our apologies. 211 00:10:38,550 --> 00:10:41,410 We're trying to figure out exactly what's going on. 212 00:10:41,410 --> 00:10:43,130 Because we have people in two places. 213 00:10:44,730 --> 00:10:46,590 Sorry about that, sirs. 214 00:10:49,210 --> 00:10:50,590 And y'all. 215 00:10:55,200 --> 00:10:56,460 DefconInfoBooth has that link. 216 00:10:56,460 --> 00:10:57,520 We are working on it. 217 00:10:57,520 --> 00:10:58,100 All right. 218 00:10:58,100 --> 00:10:59,360 Here is Filip. 219 00:10:59,600 --> 00:11:00,700 All right. 220 00:11:05,220 --> 00:11:06,960 So he is there. 221 00:11:08,620 --> 00:11:09,340 All right. 222 00:11:09,920 --> 00:11:11,280 Yeah, all right. 223 00:11:15,640 --> 00:11:16,600 Yeah. 224 00:11:16,940 --> 00:11:18,420 All right, yeah. 225 00:11:20,060 --> 00:11:21,660 All right, that's sad. 226 00:11:21,660 --> 00:11:23,740 All right, see if we can get people in here. 227 00:11:24,140 --> 00:11:25,340 Okay, 15 watching. 228 00:11:25,340 --> 00:11:27,340 So everybody who is watching, say hi. 229 00:11:30,100 --> 00:11:38,480 Well, Iceman, the problem at the moment is I'm seeing the waiting count for the actual talk link go up. 230 00:11:38,480 --> 00:11:39,740 So people are still going to be... 231 00:11:39,740 --> 00:11:39,760 Yeah, I agree. 232 00:11:39,760 --> 00:11:41,260 So that needs to be resolved. 233 00:11:41,260 --> 00:11:42,360 Like, I can't... 234 00:11:42,360 --> 00:11:43,100 Yeah. 235 00:11:43,100 --> 00:11:47,560 If we just switch, people are going to miss the information. 236 00:11:47,820 --> 00:11:49,600 Yeah, a little bit upset about it as well. 237 00:11:49,600 --> 00:11:51,940 It's 32 waiting now. 238 00:11:52,300 --> 00:11:52,640 So... 239 00:11:52,640 --> 00:11:52,960 Yeah. 240 00:11:52,960 --> 00:11:54,820 I posted in the chat there. 241 00:11:57,360 --> 00:11:58,940 We're so sorry for this. 242 00:12:00,200 --> 00:12:01,500 Can you repost that link? 243 00:12:01,500 --> 00:12:02,340 All right, let's go... 244 00:12:04,360 --> 00:12:05,500 This one. 245 00:12:05,840 --> 00:12:06,680 Here you go. 246 00:12:07,880 --> 00:12:09,560 Can you post links? 247 00:12:10,240 --> 00:12:11,920 Yeah, I just did. 248 00:12:11,920 --> 00:12:13,120 No, they're being filtered. 249 00:12:13,120 --> 00:12:14,680 They're filtered out of our freaking chat. 250 00:12:14,680 --> 00:12:15,540 Thank you, YouTube. 251 00:12:16,680 --> 00:12:17,200 All right. 252 00:12:17,200 --> 00:12:18,400 You can't see it? 253 00:12:18,400 --> 00:12:19,460 No, I can't. 254 00:12:19,460 --> 00:12:19,960 I can't. 255 00:12:19,960 --> 00:12:21,560 I tried to paste it as well. 256 00:12:22,100 --> 00:12:23,160 Okay, okay. 257 00:12:23,160 --> 00:12:23,860 Shit. 258 00:12:24,400 --> 00:12:25,100 Okay. 259 00:12:27,340 --> 00:12:29,100 All right, all right, all right. 260 00:12:29,560 --> 00:12:31,340 So, if you go to my Twitter... 261 00:12:32,160 --> 00:12:32,940 What? 262 00:12:34,140 --> 00:12:35,940 I posted there. 263 00:12:36,680 --> 00:12:38,660 So, I'm going to do this. 264 00:12:38,960 --> 00:12:40,360 Is this something... 265 00:12:41,840 --> 00:12:43,600 Are you talking to Zero? 266 00:12:43,860 --> 00:12:47,880 Is this something they can resolve by giving us the correct stream key or something? 267 00:12:48,040 --> 00:12:50,040 I have no idea right now. 268 00:12:50,160 --> 00:12:51,500 Let's do this. 269 00:12:51,500 --> 00:12:54,920 And I'm going to see if I have him on Discord. 270 00:12:55,580 --> 00:12:56,380 All right. 271 00:12:56,380 --> 00:12:58,100 Both links works for Zero. 272 00:12:58,100 --> 00:12:59,640 He can see us on both. 273 00:13:00,640 --> 00:13:01,800 What do you want me to solve? 274 00:13:01,800 --> 00:13:02,620 Both links for me? 275 00:13:02,620 --> 00:13:02,980 Okay. 276 00:13:02,980 --> 00:13:04,860 Because only one link works for me. 277 00:13:04,860 --> 00:13:07,860 It's the last link you gave to me is working for me. 278 00:13:07,860 --> 00:13:09,640 The G-H-I. 279 00:13:09,760 --> 00:13:12,820 And the previous one with the stream description doesn't work. 280 00:13:12,820 --> 00:13:17,480 So, that one looks like it's private or... 281 00:13:17,480 --> 00:13:18,680 Yeah, so I... 282 00:13:19,820 --> 00:13:20,780 Okay. 283 00:13:21,180 --> 00:13:24,360 Because you are probably allowed. 284 00:13:25,500 --> 00:13:26,700 Yeah. 285 00:13:27,120 --> 00:13:28,320 Yeah. 286 00:13:32,440 --> 00:13:34,780 Okay, because we are chatting on the... 287 00:13:35,440 --> 00:13:37,940 Yeah, he's posted there now. 288 00:13:42,180 --> 00:13:43,380 Last link... 289 00:13:43,380 --> 00:13:44,420 Works. 290 00:13:49,710 --> 00:13:50,310 And... 291 00:13:54,520 --> 00:13:56,240 All right. 292 00:13:56,500 --> 00:13:57,640 How do I write the URL? 293 00:13:57,640 --> 00:13:59,160 Ah, the deviant is here. 294 00:13:59,160 --> 00:14:00,220 Mark is there. 295 00:14:00,220 --> 00:14:02,480 And Rick is there. 296 00:14:07,460 --> 00:14:12,220 And people to join the last link. 297 00:14:13,960 --> 00:14:14,820 All right. 298 00:14:14,820 --> 00:14:18,780 So, I don't know how they are able to resolve this anyway, so... 299 00:14:29,800 --> 00:14:31,860 All right, we're working on it. 300 00:14:31,860 --> 00:14:33,420 So, I texted Wasabi. 301 00:14:33,420 --> 00:14:36,840 I texted Zero in Discord. 302 00:14:39,820 --> 00:14:43,380 All right, it's like really far back lagging, so... 303 00:14:43,380 --> 00:14:46,260 Oh, wow, I'm not going to listen to myself on that stream. 304 00:14:47,080 --> 00:14:47,940 Oh, just mute it. 305 00:14:47,940 --> 00:14:49,180 Yeah, don't listen to yourself. 306 00:14:49,180 --> 00:14:49,440 Come on. 307 00:14:49,440 --> 00:14:51,740 Yeah, I'm not going to listen to myself. 308 00:14:52,380 --> 00:14:53,360 Oh, man. 309 00:14:53,720 --> 00:14:54,360 Come on. 310 00:14:54,360 --> 00:14:56,120 Okay, so the first link doesn't work. 311 00:14:56,120 --> 00:14:57,380 I'm so sorry for that. 312 00:15:01,880 --> 00:15:03,460 All right, so... 313 00:15:03,460 --> 00:15:05,240 Now it's 30 waiting, so... 314 00:15:05,240 --> 00:15:08,860 All right. 315 00:15:08,860 --> 00:15:09,380 Yeah. 316 00:15:10,300 --> 00:15:12,920 You want to have some girl from Ipanema? 317 00:15:16,760 --> 00:15:25,480 A little bit of Las Vegas elevator music, but, you know, it gives that vibe. 318 00:15:25,480 --> 00:15:26,920 Yeah, yeah. 319 00:15:28,600 --> 00:15:29,120 So... 320 00:15:30,400 --> 00:15:32,480 This seems silly. 321 00:15:33,280 --> 00:15:34,120 All right, so here's... 322 00:15:34,480 --> 00:15:36,400 I think here's going to be our plan. 323 00:15:36,400 --> 00:15:43,620 I will instruct people to click on the RFHS account to move over. 324 00:15:43,620 --> 00:15:44,100 Oh , yeah . 325 00:15:44,520 --> 00:15:45,600 Yeah, do that. 326 00:15:45,600 --> 00:15:47,600 I don't know if people are monitoring the chat. 327 00:15:47,600 --> 00:15:48,840 This is the problem. 328 00:15:49,660 --> 00:15:50,420 Yes. 329 00:15:50,420 --> 00:15:51,380 This is really... 330 00:15:51,380 --> 00:15:55,600 But I posted on Twitter and Discord, and so... 331 00:15:55,600 --> 00:15:56,460 Yeah. 332 00:15:57,560 --> 00:15:58,500 Yes. 333 00:15:58,500 --> 00:16:00,440 And other people have done that as well, so... 334 00:16:02,880 --> 00:16:03,720 Yeah. 335 00:16:03,720 --> 00:16:05,680 All right, let me type out a message here. 336 00:16:05,680 --> 00:16:07,120 Yeah, do it. 337 00:16:08,560 --> 00:16:10,620 Do that, do that, do that, do that. 338 00:16:10,620 --> 00:16:11,500 I'm going to do this. 339 00:16:11,500 --> 00:16:12,400 I'm going to do that. 340 00:16:12,640 --> 00:16:14,760 Oh, Zero says he just did something. 341 00:16:14,760 --> 00:16:16,100 Let's see if something changes. 342 00:16:16,680 --> 00:16:17,740 Fingers crossed. 343 00:16:23,980 --> 00:16:25,560 Well, maybe not. 344 00:16:25,560 --> 00:16:27,320 I'm going to keep typing instructions. 345 00:16:29,340 --> 00:16:31,260 Well, I don't see anything on that stream anymore. 346 00:16:31,260 --> 00:16:31,860 No , I don't either. 347 00:16:31,920 --> 00:16:33,900 I reloaded that one, and so... 348 00:16:33,900 --> 00:16:34,380 Yeah. 349 00:16:35,780 --> 00:16:38,820 29 waiting, so now I don't know if people have sent us... 350 00:16:38,820 --> 00:16:40,360 It happened to me before. 351 00:16:40,360 --> 00:16:43,140 You come in somewhere and don't get it. 352 00:16:43,300 --> 00:16:44,520 We're wasting time. 353 00:16:44,520 --> 00:16:46,220 It's 10 minutes into this. 354 00:16:46,220 --> 00:16:47,080 Well, we got this. 355 00:16:47,080 --> 00:16:48,060 It's fine. 356 00:16:48,360 --> 00:16:50,780 All right, so we've got 35 watching, at least. 357 00:16:57,000 --> 00:16:57,920 Ah. 358 00:17:00,400 --> 00:17:02,160 Tuta Denan. 359 00:17:02,280 --> 00:17:04,220 Carhackers Deluxe. 360 00:17:07,000 --> 00:17:07,800 Okay. 361 00:17:07,800 --> 00:17:14,160 I think if America's in them, it seems like those people, it works for them. 362 00:17:14,160 --> 00:17:15,560 I'm in the US. 363 00:17:15,560 --> 00:17:17,080 I don't see it. 364 00:17:17,180 --> 00:17:18,640 Ah, yeah, you're... 365 00:17:24,340 --> 00:17:25,460 Yeah. 366 00:17:25,820 --> 00:17:26,740 All right. 367 00:17:33,010 --> 00:17:33,930 All right. 368 00:17:33,930 --> 00:17:34,650 All right. 369 00:17:34,650 --> 00:17:36,090 Right, right, right. 370 00:17:43,120 --> 00:17:44,740 All right. 371 00:17:44,740 --> 00:17:51,840 So I'm going to give it 30 more seconds for people to hopefully see that message. 372 00:17:53,700 --> 00:17:55,140 Fingers crossed. 373 00:17:58,720 --> 00:18:00,080 Yep, yep, yep. 374 00:18:00,360 --> 00:18:01,580 Fingers crossed. 375 00:18:02,660 --> 00:18:03,940 Fingers crossed. 376 00:18:14,460 --> 00:18:14,960 Oh, yeah. 377 00:18:14,960 --> 00:18:15,840 Let's see. 378 00:18:17,940 --> 00:18:18,900 All right. 379 00:18:18,920 --> 00:18:21,300 So it's 30 still waiting on this one here. 380 00:18:21,300 --> 00:18:24,060 Well, so Wasabi did not have the link... 381 00:18:24,060 --> 00:18:27,900 Sorry, Xero did not have the link that Wasabi gave me, so I just forwarded him that. 382 00:18:28,480 --> 00:18:29,160 All right. 383 00:18:30,660 --> 00:18:31,460 Yay. 384 00:18:32,800 --> 00:18:34,440 So people's coming here, yeah. 385 00:18:34,440 --> 00:18:36,300 All right, so we're up in 44 here, so... 386 00:18:38,280 --> 00:18:39,080 Yep. 387 00:18:39,100 --> 00:18:41,120 So at least some people are moving over. 388 00:18:41,520 --> 00:18:42,200 Yeah, all right. 389 00:18:42,200 --> 00:18:43,180 So Olem is here. 390 00:18:43,180 --> 00:18:44,440 25 is waiting there, so... 391 00:18:46,840 --> 00:18:48,940 The links doesn't appear in the chat, no. 392 00:18:49,560 --> 00:18:51,200 No, it's filtered. 393 00:18:51,200 --> 00:18:52,600 So people aren't... 394 00:18:53,200 --> 00:18:54,060 Yeah. 395 00:18:54,160 --> 00:18:56,280 ...sending malicious links to each other. 396 00:18:56,640 --> 00:18:57,940 Yeah, exactly. 397 00:18:58,260 --> 00:18:59,560 Makes sense. 398 00:19:04,120 --> 00:19:06,400 It's almost like an online gaming. 399 00:19:06,400 --> 00:19:08,840 It's like, yeah, so are we going live now? 400 00:19:20,680 --> 00:19:22,400 Yeah, exactly. 401 00:19:23,320 --> 00:19:25,380 So, success. 402 00:19:26,600 --> 00:19:28,560 All right, all right, all right, all right. 403 00:19:30,540 --> 00:19:34,220 Haha, never took Babak as a standing desk student. 404 00:19:35,160 --> 00:19:36,180 Hey. 405 00:19:36,720 --> 00:19:37,820 Chris-man. 406 00:19:38,760 --> 00:19:40,240 Deviant-man. 407 00:19:44,810 --> 00:19:46,270 Yeah, Olem has the... 408 00:19:47,190 --> 00:19:50,570 Deviant has the power to make everybody follow. 409 00:19:52,450 --> 00:19:54,650 All right, so let's go ahead and kick it off. 410 00:19:54,650 --> 00:19:56,230 We did the best we could. 411 00:19:58,530 --> 00:19:59,050 And... 412 00:20:09,320 --> 00:20:11,540 Yep, yep. 413 00:20:24,520 --> 00:20:25,880 All right. 414 00:20:29,020 --> 00:20:31,500 So that's fully live. 415 00:20:35,430 --> 00:20:38,990 Okay, well, let's go ahead and get started. 416 00:20:38,990 --> 00:20:46,390 First of all, thank you everyone for your patience as we worked our way through these problems. 417 00:20:46,390 --> 00:20:54,030 This is definitely my first YouTube live stream, so always fun to learn that way. 418 00:20:54,150 --> 00:21:01,350 And apparently for the DEF CON Safe Mode Villages, we had some new learning experience as well, so no worries there. 419 00:21:03,010 --> 00:21:07,790 And I'm just going to set up the final setting for the slideshow and we'll kick that off. 420 00:21:14,630 --> 00:21:16,350 Yep, yeah. 421 00:21:16,350 --> 00:21:26,890 That would be an interesting conflict right now because the slides you're going to present is not going to be showing to me if I don't look at the live stream. 422 00:21:26,910 --> 00:21:29,230 No, you can look at it in the Jitsi. 423 00:21:29,370 --> 00:21:30,970 Ah, yeah, there it is. 424 00:21:31,250 --> 00:21:31,830 Perfect. 425 00:21:31,930 --> 00:21:33,230 You got the word there for it. 426 00:21:33,230 --> 00:21:35,350 Yeah, I know, I know, I know. 427 00:21:35,770 --> 00:21:37,050 Don't do that. 428 00:21:37,110 --> 00:21:37,490 I know. 429 00:21:37,490 --> 00:21:39,490 All right, all right. 430 00:21:39,490 --> 00:21:40,950 Thank you again, everyone. 431 00:21:41,290 --> 00:21:45,130 We are going to do our best to see how this goes. 432 00:21:45,610 --> 00:21:48,570 So we did a couple things. 433 00:21:48,570 --> 00:21:53,530 So as you all know, the best thing that you can do if you're a DEF CON talk is have a live demo. 434 00:21:54,430 --> 00:21:59,530 Because, you know, the demo gods always smile down upon you when you do stuff like that. 435 00:21:59,530 --> 00:22:04,590 So I was talking to Iceman over the past couple weeks and I said, let's not just do one demo. 436 00:22:04,590 --> 00:22:06,950 Let's do a crap ton of demos. 437 00:22:06,950 --> 00:22:16,310 So I have a wide variety of demos that I've been working 18 hours a day, getting all prepped for the last couple days to fit all this in. 438 00:22:16,310 --> 00:22:17,890 We're going to see how it goes. 439 00:22:17,890 --> 00:22:19,270 I'm not sure yet. 440 00:22:19,270 --> 00:22:22,770 The slides are also acceptable, but not great. 441 00:22:22,770 --> 00:22:28,570 So I want to appreciate everyone's, you know, understanding as we do a lot of firsts here. 442 00:22:28,570 --> 00:22:32,170 So without further ado, this is Ghosting the Paxman. 443 00:22:32,170 --> 00:22:38,990 And we're focusing on new tools and techniques for 2020 related to physical access control systems. 444 00:22:39,130 --> 00:22:43,430 To bring everyone up to speed, I am going to start the talk off with a little bit of context. 445 00:22:43,430 --> 00:22:47,490 So don't worry, it will get technical further towards the end. 446 00:22:47,490 --> 00:22:49,970 But let's go ahead and get started. 447 00:22:50,230 --> 00:22:54,110 So we have two people with us, including myself. 448 00:22:54,110 --> 00:22:56,110 So I'm Bhavik Jivadi. 449 00:22:56,170 --> 00:23:03,790 I'm a professional penetration tester and, you know, log picker, hardware hacker. 450 00:23:03,790 --> 00:23:08,210 Been instructing Cobra Methods of Entry for over 10 years. 451 00:23:08,350 --> 00:23:13,210 I'm a founder and partner at the Core Group, a consulting and research firm. 452 00:23:13,210 --> 00:23:20,370 Also a founding partner at the Red Team Alliance, a premier Red Team training firm as well. 453 00:23:20,370 --> 00:23:29,110 And I spent a lot of years, especially my earlier years in the scene, developing and building up the lockpicking community with Tool. 454 00:23:29,170 --> 00:23:40,670 So if any of you have ever visited the lockpicking village over the past years, you will have possibly seen me or seen some of the projects that I've been working on in the past. 455 00:23:40,970 --> 00:23:46,910 Deviant, big shout out to Deviant for all of his help, helping with some of the last minute slides. 456 00:23:46,910 --> 00:23:51,310 I see his comment there in the chat. 457 00:23:51,970 --> 00:24:03,290 Iceman is also here calling in remotely, just so everyone knows we're doing a really crazy thing where I have a Jitsi video stream with Iceman that's coming to me from Sweden. 458 00:24:03,290 --> 00:24:08,850 So we have Sweden to Phoenix, Arizona, and then we have from Phoenix out to YouTube again. 459 00:24:08,850 --> 00:24:12,590 So we got some fun traffic bouncing going on here. 460 00:24:12,590 --> 00:24:15,090 Iceman, do you want to talk a little bit about yourself? 461 00:24:15,090 --> 00:24:16,870 Well, yeah, sure. 462 00:24:16,910 --> 00:24:19,590 First of all, yeah, most excited to be here. 463 00:24:19,590 --> 00:24:22,530 And thank you for being able to do this today. 464 00:24:22,530 --> 00:24:28,190 And the technical uphill was a little bit more than I expected, but yeah, that's how it is. 465 00:24:28,190 --> 00:24:31,570 And it's a heatwave also in my country, in Europe right now. 466 00:24:31,570 --> 00:24:32,990 So yeah, I'm sweating. 467 00:24:32,990 --> 00:24:36,950 If you see me pounding, it's not just me being normally talkative. 468 00:24:36,950 --> 00:24:38,270 It's just, it's warm. 469 00:24:38,270 --> 00:24:39,470 It's really warm. 470 00:24:39,610 --> 00:24:41,130 Anyway, I'm Iceman. 471 00:24:41,170 --> 00:24:47,990 And most of you know me and have seen my Iceman channel and have seen me on Proxmog freely. 472 00:24:48,050 --> 00:24:55,550 So I'm an administrator, maintainer, developer, and you can call me an evangelist of Proxmog nowadays. 473 00:24:55,550 --> 00:25:09,030 I've been into that since 2013, and I've been lucky to learn this way and being able to meet people and talk to people and learn even more and to become the person I am today. 474 00:25:09,030 --> 00:25:17,750 But before that, and during that, and I'm not just spending all my time on this, is that I'm actually a certified MCPD Enterprise Architect in .NET development. 475 00:25:17,770 --> 00:25:24,510 And I've been running my own company since 2006, trying to do consultancy and stuff like that. 476 00:25:24,510 --> 00:25:26,870 And I like Proxmog more. 477 00:25:26,870 --> 00:25:28,230 I have more fun with that. 478 00:25:28,870 --> 00:25:42,870 And that led to something called ROG, where I co-founded it two and a half, three years ago, where we ended up with actually making something what you all know as a Rv4, where you all can see my little name on it. 479 00:25:42,870 --> 00:25:43,450 And that's me. 480 00:25:43,450 --> 00:25:47,770 I don't think you need any more introductions for me, because everybody knows who I am, usually. 481 00:25:48,390 --> 00:25:51,010 When it comes to Proxmogs, everybody knows who I am. 482 00:25:51,010 --> 00:25:51,890 That's true. 483 00:25:52,250 --> 00:25:55,890 And everybody who's new, I'm kind of okay with Proxmogs. 484 00:25:55,890 --> 00:25:56,650 All right? 485 00:25:57,850 --> 00:26:05,170 So, we have, like I said, we're going to provide everyone some brief overall context regarding access control. 486 00:26:05,170 --> 00:26:11,270 We're not going to dive too deep into traditional topics like cloning cards and stuff like that. 487 00:26:11,270 --> 00:26:17,610 But I do want to give everyone a nice holistic picture of what a physical access control actually looks like. 488 00:26:17,610 --> 00:26:27,550 Because as I try to remind people, when we talk about RFID as it relates to access control, RFID is just the very, very tip of the access control iceberg. 489 00:26:28,110 --> 00:26:29,770 It's easy to forget about that. 490 00:26:29,770 --> 00:26:30,370 Yes. 491 00:26:30,370 --> 00:26:31,110 Yes. 492 00:26:32,030 --> 00:26:37,030 So, what we're talking about with access control is normally this. 493 00:26:37,110 --> 00:26:41,110 So , this is what most people think of when they think of access control. 494 00:26:41,110 --> 00:26:45,330 They think of a door with a reader next to it, and they present a card of some kind. 495 00:26:45,330 --> 00:26:47,150 And I know the video is glitching. 496 00:26:47,150 --> 00:26:48,370 I apologize for that. 497 00:26:48,370 --> 00:26:49,890 We'll just move past it. 498 00:26:50,530 --> 00:26:53,210 You present a card of some kind, and you just pull open the door. 499 00:26:53,210 --> 00:26:53,710 Right? 500 00:26:53,710 --> 00:26:54,970 Simple as that. 501 00:26:56,610 --> 00:27:02,850 Oftentimes, there has to be a connector between the physical world and the electronic world. 502 00:27:02,850 --> 00:27:10,550 And when it comes to access control, that's usually in the form of an electrified strike or a magnetic lock. 503 00:27:10,550 --> 00:27:14,150 You might have seen a lot of mag locks around different doors in different facilities. 504 00:27:14,150 --> 00:27:26,030 There are also built-in handsets that have integrated electromechanical components that work all in a self-contained unit. 505 00:27:26,030 --> 00:27:27,770 So, you might not see an electric strike. 506 00:27:27,770 --> 00:27:29,390 You might not see a mag lock. 507 00:27:29,390 --> 00:27:33,550 But it still might be an electronically controlled door. 508 00:27:34,270 --> 00:27:37,790 What's happening here, and again, I want to emphasize this. 509 00:27:37,790 --> 00:27:43,710 In a lot of the analogies and examples that I use, we are intentionally very, very general. 510 00:27:43,710 --> 00:27:47,330 So, we're going to intentionally dumb it down considerably. 511 00:27:47,330 --> 00:27:49,290 This is not to insult your intelligence. 512 00:27:49,370 --> 00:27:57,430 It's to make sure that we're focusing on the actual concept and not let people get too lost in the finer details. 513 00:27:57,510 --> 00:28:03,950 So, generally speaking, these magnetic locks, these electrified strikes, there's a power source of some kind. 514 00:28:03,950 --> 00:28:06,670 So, there's a transformer of some kind powering it. 515 00:28:06,670 --> 00:28:09,590 Or, if power is out, there's a backup battery. 516 00:28:09,610 --> 00:28:13,150 But, of course, it's not just connected directly to a power source. 517 00:28:13,150 --> 00:28:15,970 Ultimately, it's connected to a door controller. 518 00:28:15,970 --> 00:28:36,830 The door controller is generally an embedded device of some kind, often runs on Linux, but not always, that has a series of power supplies, relays, and other microcontrollers to take in multiple inputs and make logical decisions based off of that, and then control certain outputs. 519 00:28:37,450 --> 00:28:41,310 So, credentials come in, and then something happens on the output. 520 00:28:41,310 --> 00:28:51,450 So, whether you have a prox card or a mag stripe or a weekend swipe card, which we'll talk about in a moment, those are all different types of inputs as far as the credential data is concerned. 521 00:28:51,570 --> 00:28:59,370 So, in terms of credentials, we are talking about a card, like something you have, or a pin, which is something you know. 522 00:28:59,370 --> 00:29:06,150 Or, in the case of biometrics, like a fingerprint or iris scan, facial recognition, what have you, something you are. 523 00:29:06,210 --> 00:29:10,850 But, ultimately, as we mentioned, it's just a panel making decisions based off of inputs. 524 00:29:10,850 --> 00:29:19,610 So, here is an example of one of the most common types of inputs that people might see. 525 00:29:19,610 --> 00:29:24,590 People have probably seen how to bypass doors using a can of air. 526 00:29:24,590 --> 00:29:27,670 Well, here's another kind of input that that relates to. 527 00:29:27,670 --> 00:29:33,710 So, here's our access control system, and we have a couple of players here. 528 00:29:33,710 --> 00:29:41,030 And imagine that the bellman here is a door stripe, so an electrified stripe. 529 00:29:41,030 --> 00:29:46,570 Then we have our manager, our door controller, and then we have, sorry, not our card reader. 530 00:29:46,570 --> 00:29:50,570 We have a REX motion sensor, which we'll see a photo of shortly. 531 00:29:50,670 --> 00:30:00,770 So, whenever that motion sensor activates, depending on how the door controller is configured, that door controller is going to make a decision saying, hey, I should let that person out. 532 00:30:00,770 --> 00:30:02,550 Let's go ahead and open up that door. 533 00:30:02,550 --> 00:30:09,350 And this is something that, again, a lot of folks are going to be already familiar with, because these REX sensors are very, very easy to fool. 534 00:30:09,410 --> 00:30:12,530 So, here we have a double door. 535 00:30:13,390 --> 00:30:16,770 Someone's on the locked side, and they're just going to use 536 00:30:20,210 --> 00:30:28,250 a burst of air to trick that REX sensor into seeing a motion and then allowing you to open the door. 537 00:30:28,250 --> 00:30:31,670 And I'm seeing that some of the videos are not playing correctly in PowerPoint. 538 00:30:31,670 --> 00:30:37,750 I apologize for that, but we'll just kind of move past it and see if the next one does any better. 539 00:30:37,750 --> 00:30:39,570 So, we'll try again. 540 00:30:39,670 --> 00:30:46,670 So, here is a different lab, and we were showing one of my friends how this process works. 541 00:30:46,690 --> 00:30:51,730 And so, what he's going to try to do is, oh man, jumping all over the place. 542 00:30:51,730 --> 00:30:58,710 He's going to try to take that canned air, turn it upside down, insert it between the doors, and trip that motion sensor. 543 00:30:58,710 --> 00:31:00,070 Oh man, okay. 544 00:31:00,370 --> 00:31:02,550 Videos are bad for live streaming. 545 00:31:02,550 --> 00:31:03,570 That's what I'm learning. 546 00:31:03,570 --> 00:31:07,690 So, we are going to probably not play a whole lot more videos. 547 00:31:08,010 --> 00:31:10,370 But we're not going to focus on that topic too much. 548 00:31:10,370 --> 00:31:18,510 Suffice to say that there are different ways of manipulating different motion sensors as they relate to door controllers. 549 00:31:18,510 --> 00:31:20,250 So, that's the most common method. 550 00:31:20,290 --> 00:31:22,210 We're going to skip over a couple more videos. 551 00:31:22,370 --> 00:31:24,410 These are the sensors that we're talking about, right? 552 00:31:24,410 --> 00:31:26,490 So, these are normally mounted above doors. 553 00:31:26,490 --> 00:31:28,510 And they can be used in one of two ways. 554 00:31:28,510 --> 00:31:37,010 They can either be used for automatic egress, where simple motion will activate the electrified strike and allow you to exit. 555 00:31:37,110 --> 00:31:41,450 Or, it might be used for detecting forced entry. 556 00:31:41,450 --> 00:31:46,770 So, let me just see really quickly if those slides exist. 557 00:31:46,770 --> 00:31:48,690 So, pardon me one moment. 558 00:31:48,690 --> 00:31:53,230 I'm realizing that a couple of these slides might have been out of order. 559 00:31:53,230 --> 00:32:00,250 So, we will switch cameras briefly while we check that. 560 00:32:00,810 --> 00:32:07,590 Have you noticed the really sexy soldering station behind Babak? 561 00:32:07,590 --> 00:32:10,190 You know, I'm getting jealous. 562 00:32:12,990 --> 00:32:21,730 Okay, so yeah, I'll just explain it and talk through it since apparently I don't have the door contact slides in this deck. 563 00:32:21,730 --> 00:32:24,470 So, my apologies for that. 564 00:32:24,590 --> 00:32:28,570 One moment as we get the presentation spun back up. 565 00:32:30,780 --> 00:32:33,240 And then switching back. 566 00:32:33,240 --> 00:32:34,120 Alright. 567 00:32:35,680 --> 00:32:40,120 So, a lot of doors can have little door position switches. 568 00:32:40,120 --> 00:32:44,980 These are magnetic sensors built into the door and the door frame. 569 00:32:44,980 --> 00:32:48,540 And that allows the door controller to monitor the state of the door. 570 00:32:48,540 --> 00:33:08,040 So, basically there is some logic in the door controller that says if the door opens and it's not preceded by a valid card read, or it's not preceded by someone approaching the door and tripping one of these motion sensors, then it's going to assume a forced entry state and it's going to trigger an alarm. 571 00:33:08,040 --> 00:33:11,880 So, those are the two use cases for rec sensors, for example. 572 00:33:11,880 --> 00:33:13,640 There are other types of inputs. 573 00:33:13,640 --> 00:33:14,900 They're not as common. 574 00:33:14,900 --> 00:33:17,020 We're not going to talk about them in this talk. 575 00:33:17,020 --> 00:33:21,420 But if you're curious about that, definitely find me online or offline later. 576 00:33:21,420 --> 00:33:24,180 And I'm happy to go over extra stuff with you folks. 577 00:33:24,180 --> 00:33:26,920 So, we'll just go ahead and skip past more videos. 578 00:33:27,000 --> 00:33:32,420 But ultimately, enterprise access control systems contain a multitude of different components. 579 00:33:32,420 --> 00:33:34,200 So, we have our credentials. 580 00:33:34,200 --> 00:33:37,280 These are things that most folks are very familiar with. 581 00:33:37,280 --> 00:33:42,860 We have the readers, which come in a lot of different technologies, shapes, colors, sizes. 582 00:33:43,100 --> 00:33:44,580 We have the door hardware. 583 00:33:44,580 --> 00:33:47,000 That's what's actually securing the door. 584 00:33:47,000 --> 00:33:51,840 And then we have our motion sensors, our door position switches, etc. 585 00:33:52,020 --> 00:33:55,900 Our door controller, which actually handles all of the decision making. 586 00:33:55,900 --> 00:34:05,300 And then a server of some kind that actually contains the main primary user database that is synchronized across different door controllers. 587 00:34:05,340 --> 00:34:06,780 And these are all connected, right? 588 00:34:06,780 --> 00:34:08,000 They all play nice. 589 00:34:08,000 --> 00:34:17,420 Except, this is not a system that is connected in the way that some folks think it is. 590 00:34:17,420 --> 00:34:24,240 Each segment of an access control system operates independently of the other segments. 591 00:34:24,240 --> 00:34:31,140 And we can take advantage of gaps that exist between these different segments to manipulate the behavior of the system. 592 00:34:31,980 --> 00:34:45,560 So when we talk about RFID, when we talk about PROX, when we talk about MagStrike, what we're only talking about is that very, very first link between the credential itself and the card reader. 593 00:34:45,560 --> 00:34:48,820 It just has nothing to do with anything behind it. 594 00:34:48,820 --> 00:34:52,200 RFID operates independently of everything else. 595 00:34:52,200 --> 00:34:58,580 So when we talk about access control, we're not just talking about RFID, we're talking about everything. 596 00:34:59,360 --> 00:35:09,120 So first, to really understand a little bit of the history of RFID, I want to talk a little bit more about the history of credentials and cards in general. 597 00:35:09,120 --> 00:35:11,820 So a lot of folks have heard the term WIEGAND. 598 00:35:12,000 --> 00:35:19,320 WIEGAND is actually a man who moved and immigrated to the U.S. 599 00:35:19,320 --> 00:35:24,880 back in the early 1900s, originally to study music at Juilliard. 600 00:35:24,880 --> 00:35:43,460 And through his different experiences became very interested in audio amplifiers and ultimately became a wonderfully innovative researcher that came up with some really cool ideas and discoveries revolving around electromagnetics. 601 00:35:44,320 --> 00:35:47,900 Most people know him for his invention of the WIEGAND wire. 602 00:35:47,900 --> 00:35:55,400 And this is actually, even though it's very, very old technology, it's something that still permeates access control as it exists today. 603 00:35:55,760 --> 00:36:08,420 And understanding that this is where modern access control comes from is important because it informs a lot of the different weaknesses, limitations, and vulnerabilities that exist in access control still today. 604 00:36:08,860 --> 00:36:12,080 So let's talk a little bit about these WIEGAND wires. 605 00:36:12,440 --> 00:36:14,240 I'm going to skip a couple slides. 606 00:36:14,240 --> 00:36:20,400 I'm actually just going to switch to a downward-facing camera here. 607 00:36:20,400 --> 00:36:26,440 What I have here is an original WIEGAND swipe card. 608 00:36:26,440 --> 00:36:28,560 Let's move our camera down here. 609 00:36:28,560 --> 00:36:35,480 And I've actually also got an original WIEGAND reader. 610 00:36:36,300 --> 00:36:39,480 And we'll get this powered on as well. 611 00:36:42,640 --> 00:36:44,620 Adjust our camera. 612 00:36:45,200 --> 00:36:46,900 There we go. 613 00:36:46,900 --> 00:36:53,480 All right, so we have our display here that is connected to the card reader. 614 00:36:53,480 --> 00:36:56,780 This is kind of pretending to be a door controller of sorts, if you will. 615 00:36:56,780 --> 00:36:59,980 And I'm just going to swipe this card. 616 00:36:59,980 --> 00:37:01,300 And let's see if I do it right. 617 00:37:01,300 --> 00:37:02,160 There we go. 618 00:37:02,160 --> 00:37:03,640 So I got some data. 619 00:37:03,760 --> 00:37:09,320 This says Facility Code 40, card number 2115. 620 00:37:09,320 --> 00:37:11,020 Where did that data come from? 621 00:37:11,220 --> 00:37:12,820 These wires on the back. 622 00:37:12,820 --> 00:37:17,700 So I've actually taken a blade and I've removed a layer of the plastic from the card. 623 00:37:17,700 --> 00:37:19,860 So we can see these wires. 624 00:37:19,860 --> 00:37:22,220 These wires are very, very interesting. 625 00:37:22,220 --> 00:37:26,500 Because they exhibit a very peculiar electromagnetic property. 626 00:37:26,500 --> 00:37:39,400 As they pass over permanent magnets of a given polarity, the outside shell of the wire magnetizes at a different rate than the inside shell. 627 00:37:39,400 --> 00:37:44,100 And the reason that happens is because during manufacture, that wire is actually twisted. 628 00:37:44,180 --> 00:37:50,160 And so the outside of it is work-hardened in a way that makes it more brittle and more hard than the inside. 629 00:37:50,740 --> 00:37:54,880 When you do that to wire, something very interesting happens. 630 00:37:55,200 --> 00:37:57,980 So here we have a sense coil. 631 00:37:58,100 --> 00:38:01,880 And we have two permanent magnets oriented in opposite directions. 632 00:38:01,880 --> 00:38:20,060 As these weekend wires pass the first wire, and both the outside shell and the inner core of the wire are magnetized, and then you move that wire towards the second one, the center of the wire flips polarity faster and before the outside of the wire. 633 00:38:20,060 --> 00:38:28,200 And that results in a very interesting behavior that results in a field that can be picked up by this sense coil in the middle. 634 00:38:28,200 --> 00:38:37,160 So inside this reader here that you see on my small screen, there are actually multiple sense coils and multiple magnets. 635 00:38:37,160 --> 00:38:44,600 And what it's doing is as these wires are passing over it, those wires are briefly getting magnetized and demagnetized. 636 00:38:44,600 --> 00:38:49,200 And that sense coil is picking up these pulses coming back off of the wire. 637 00:38:49,320 --> 00:38:52,060 Now this was used in a lot of different applications. 638 00:38:52,060 --> 00:38:59,460 It was used in everything from anti-lock braking systems to machine automation in factories and such. 639 00:38:59,460 --> 00:39:03,840 It's in fact still used today in a lot of different mechanical applications. 640 00:39:03,840 --> 00:39:10,500 There are even casino chips that use weekend wires inside the chip to identify that the chip is authentic. 641 00:39:10,500 --> 00:39:15,180 Because weekend wires are historically very difficult to manufacture on your own. 642 00:39:15,180 --> 00:39:21,360 In fact, there's only one machine that I know of in the United States that still produces this type of wire. 643 00:39:21,360 --> 00:39:24,940 And it's not in operation very much. 644 00:39:24,960 --> 00:39:31,680 HID, which used to make weekend cards, some time ago sold their only machine to a company in Germany. 645 00:39:31,680 --> 00:39:35,340 So this is not something that is easy to do on your own. 646 00:39:35,340 --> 00:39:43,120 In fact, the only way that I can get my own weekend wire is dissolving it or harvesting it out of other weekend swipe cards. 647 00:39:45,960 --> 00:39:49,600 So, let me keep going here. 648 00:39:50,320 --> 00:39:54,200 And apologies if anyone's asking questions that I'm not seeing yet. 649 00:39:54,200 --> 00:39:56,600 I'm going to focus on questions during the Q&A. 650 00:39:56,600 --> 00:40:00,660 We have a lot of content, a lot of demos to get through, so I want to focus on getting through that. 651 00:40:00,660 --> 00:40:03,460 So I appreciate everyone's understanding with that. 652 00:40:03,500 --> 00:40:14,340 So weekend wires, as they're used in swipe card systems, they literally represent the 0 bits and the 1 bits of the credential data. 653 00:40:14,340 --> 00:40:15,780 What do I mean by that? 654 00:40:15,780 --> 00:40:20,000 Well, let's take a look at an example. 655 00:40:20,540 --> 00:40:26,400 I'm going to open up a notepad window here and walk people through. 656 00:40:29,560 --> 00:40:32,860 It is ultra cred for this old tech. 657 00:40:32,960 --> 00:40:36,160 It's the basics, it's the beginning of things. 658 00:40:36,160 --> 00:40:39,420 You see the red thread pretty soon. 659 00:40:45,070 --> 00:40:51,470 Alright, so what we're going to do is we're going to together decode... 660 00:40:52,550 --> 00:40:55,490 Well actually, for the sake of time, we won't do that. 661 00:40:55,490 --> 00:40:57,210 I'm just going to tell you how it all works. 662 00:40:57,210 --> 00:41:04,290 So here I have a real weekend card and here I have a fake one. 663 00:41:04,610 --> 00:41:09,450 So what I've done is I've just... I'm just going to switch this back here. 664 00:41:13,900 --> 00:41:15,720 Nope, not that one, that one. 665 00:41:15,720 --> 00:41:21,700 So what I've done here is I've just printed where the weekend wires would be on a card. 666 00:41:21,700 --> 00:41:24,820 To give you a little example here. 667 00:41:24,820 --> 00:41:28,860 So we're going to pretend that these are real wires on a card. 668 00:41:28,860 --> 00:41:33,300 And these top wires are the 0 bits, these bottom wires are the 1 bits. 669 00:41:33,360 --> 00:41:36,580 And the swipe direction is like this. 670 00:41:36,580 --> 00:41:43,920 So what that means is if we're flipping this over, these bits are at the beginning of the credential and these bits are at the end. 671 00:41:43,920 --> 00:41:53,790 Now, what I have here, and I'm going to switch windows here, is Notepad. 672 00:41:54,010 --> 00:41:54,490 And 673 00:42:00,470 --> 00:42:02,070 I'm going to copy this. 674 00:42:03,670 --> 00:42:05,890 And we're going to move Iceman down. 675 00:42:05,890 --> 00:42:07,090 Whoops, not that. 676 00:42:07,910 --> 00:42:09,250 Are you moving me down? 677 00:42:09,250 --> 00:42:10,470 Yeah, right? 678 00:42:11,950 --> 00:42:13,310 Alright. 679 00:42:14,190 --> 00:42:21,610 So, if you can see, I'm going to move this camera even closer. 680 00:42:22,830 --> 00:42:27,890 So, compare this binary string up here. 681 00:42:27,890 --> 00:42:33,170 If we compare it to this card from right to left, you'll see that it matches. 682 00:42:33,170 --> 00:42:34,610 So here's our 1. 683 00:42:34,750 --> 00:42:41,750 And then we have, I'm going to use a pencil as a pointer here to make my life a little bit easier. 684 00:42:41,750 --> 00:42:43,870 So we have a 1 and we have two 0s. 685 00:42:43,870 --> 00:42:50,130 We have 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, etc. 686 00:42:50,130 --> 00:42:52,250 And we have 26 of those wires. 687 00:42:52,250 --> 00:43:02,250 And that corresponds, in this particular example, with 26 bits that are read from the card by the reader and then sent onward to the door controller. 688 00:43:02,250 --> 00:43:10,970 So those original systems, developed in the early and mid 80s, just took that raw data and sent it to the door controller. 689 00:43:10,970 --> 00:43:16,550 And thus began the Wiegand communication protocol as a standard. 690 00:43:16,610 --> 00:43:21,050 Then there's this also here as a Wiegand bit format. 691 00:43:21,050 --> 00:43:24,430 So here we have the open 26-bit format. 692 00:43:24,490 --> 00:43:29,250 And if we take a look at this next slide here. 693 00:43:29,250 --> 00:43:34,270 This is just one example of a Wiegand bit format. 694 00:43:34,270 --> 00:43:35,330 Now, there are many. 695 00:43:35,330 --> 00:43:36,690 We're not going to talk about all of them. 696 00:43:36,690 --> 00:43:38,130 This is just one. 697 00:43:38,170 --> 00:43:52,170 The phrase Wiegand bit format refers to how you can decode a group of binary bits into something that we're going to arbitrarily call facility code and card number. 698 00:43:52,170 --> 00:43:56,670 So with the 26-bit format, for example, we have 26 bits. 699 00:43:56,830 --> 00:43:59,670 The first and last bits are parity. 700 00:43:59,830 --> 00:44:04,370 And then we have 8 bits used for the facility code and 16 for the card number. 701 00:44:04,370 --> 00:44:07,790 Again, that's just the open 26-bit format. 702 00:44:07,790 --> 00:44:17,510 So if we come back over here and pull up a little calculator here. 703 00:44:39,230 --> 00:44:40,430 There we go. 704 00:44:40,430 --> 00:44:41,150 Alright. 705 00:44:41,630 --> 00:44:44,510 Oh, Iceman is on top of my calculator. 706 00:44:46,730 --> 00:44:48,230 Crunching numbers, am I? 707 00:44:48,310 --> 00:44:50,110 Yeah, yeah, yeah. 708 00:44:50,430 --> 00:44:52,830 We're just going to move the calculator itself. 709 00:44:53,390 --> 00:44:54,430 There we go. 710 00:44:55,150 --> 00:44:57,750 Alright, so what do I mean by that? 711 00:44:57,750 --> 00:44:59,850 Here's those first 8 bits. 712 00:44:59,850 --> 00:45:06,850 If I copy that and convert from binary to hex, there's our decimal 42 value. 713 00:45:07,010 --> 00:45:16,130 And if I take this and I copy that and I convert it from binary to hex, or sorry, to decimal, there's our 16180 value. 714 00:45:16,130 --> 00:45:29,450 So the phrase facility code and card number really only refers to these little arbitrary values that we define as part of the whole PACS data stream that gets sent from the card reader to the door controller. 715 00:45:29,450 --> 00:45:32,590 If that doesn't fully make sense yet, that's okay. 716 00:45:32,590 --> 00:45:35,390 We can talk about it more in depth during Q&A. 717 00:45:35,390 --> 00:45:39,270 But just understanding that this is what the credential data itself is. 718 00:45:39,270 --> 00:45:42,250 This is your token that is actually granting you access. 719 00:45:42,250 --> 00:45:43,810 This is the important thing. 720 00:45:43,810 --> 00:45:46,030 Understanding that concept is important. 721 00:45:46,710 --> 00:45:51,010 So we have our WGAN data stream, and that's what's stored on the card. 722 00:45:51,270 --> 00:45:54,750 As technology progressed, we're going to switch back here. 723 00:45:55,630 --> 00:46:00,230 As technology progressed, oh, this is actually a cool link. 724 00:46:00,230 --> 00:46:02,390 I just forgot this slide was in this order. 725 00:46:02,390 --> 00:46:08,610 If you want to learn about more WGAN data formats, this is a great site that has some really wonderful tools. 726 00:46:08,610 --> 00:46:18,990 So if you go to cardinfo.barkweb.com.au, you'll actually see a bunch of different WGAN formats, some more popular ones. 727 00:46:18,990 --> 00:46:24,210 There are technically hundreds, if not thousands, of proprietary WGAN formats, and these are just some of them. 728 00:46:24,210 --> 00:46:34,790 But if you want to learn more about them, check out 0xFFFF's website there, and you'll see quite a few variety of formats. 729 00:46:35,770 --> 00:46:45,870 So inside a modern credential, when we're talking about prox cards, when we're talking about RFID, and I have actually an example here. 730 00:46:45,950 --> 00:46:54,790 So here we have a low-frequency card that is made of clear PVC rather than white plastic, so you can see what's inside. 731 00:46:55,650 --> 00:47:02,070 These are just containers that are different ways of holding that same WGAN data. 732 00:47:02,070 --> 00:47:20,130 What I mean by that is even when you present these different kinds of cards and credentials to the reader, the reader is just looking for that PAX data that it recognizes, and it's still converting that into that kind of somewhat ancient format that the door controller was expecting, 733 00:47:20,130 --> 00:47:26,050 because that's kind of the system that everyone agreed upon and everyone used for the sake of PAX compatibility. 734 00:47:28,970 --> 00:47:42,910 So when we talk about credential-to-reader communication, when we talk about RFID, when we talk about the signal between cards and readers, whether it's prox or I-class, what have you, these are all just different containers. 735 00:47:43,170 --> 00:47:46,550 So I'm going to give you another analogy to kind of get this point across. 736 00:47:46,550 --> 00:47:54,830 So we have, again, our RFID credential, we have our RFID reader, we have our door controller, and then we have our door hardware, right? 737 00:47:54,830 --> 00:48:00,610 So we're going to look at the access control system as if it's all people having a conversation. 738 00:48:02,710 --> 00:48:07,770 So that card reader is always looking for a credential, it's always interrogating, right? 739 00:48:07,770 --> 00:48:11,770 So here's our card reader saying, hello, hello, hello. 740 00:48:11,930 --> 00:48:19,730 Eventually, a credential comes along and it says, hello, I am 43-1048. 741 00:48:19,950 --> 00:48:24,490 The card reader says, oh yes, 43-1048, I will send that on. 742 00:48:24,490 --> 00:48:30,850 Door controller gets that information, they recognize the user, they go ahead and activate the electrified strike. 743 00:48:32,570 --> 00:48:34,670 Another user comes along. 744 00:48:35,070 --> 00:48:37,910 Maybe this is a different credential. 745 00:48:37,910 --> 00:48:39,110 It doesn't matter. 746 00:48:39,110 --> 00:48:41,910 Its conversation might be simpler. 747 00:48:41,910 --> 00:48:49,870 It might not have all of this extra syntax and structure or preamble, but the data is still formatted the same way. 748 00:48:49,870 --> 00:49:01,790 So that older, dumber credential, if you will, will still provide information the reader translates into a standard format that the door controller is expecting. 749 00:49:03,470 --> 00:49:06,390 So the syntax and preamble can vary. 750 00:49:06,390 --> 00:49:15,370 So for example, here is a different user and they might say the information in a different way. 751 00:49:15,370 --> 00:49:20,170 It might use a different communication language, so to speak. 752 00:49:20,170 --> 00:49:31,130 But that card reader, again, is still going to convert that into a sanitized standard format and send that to the door controller, which the door controller sees and does its thing. 753 00:49:31,130 --> 00:49:41,570 Notice that in all of these examples that we have discussed so far, the door controller doesn't have any idea about the rest of the conversation that is happening between the card and the reader. 754 00:49:41,570 --> 00:49:45,310 It doesn't matter if the card is prox or andala. 755 00:49:45,310 --> 00:49:49,610 It doesn't matter if it's a high security card or a low security card. 756 00:49:49,610 --> 00:49:56,350 Because when the data goes from the card reader to the door controller, it's still going to be formatted in that same standard way. 757 00:49:57,570 --> 00:49:59,470 So apologies for the sake of time. 758 00:49:59,470 --> 00:50:01,890 You're going to see me skipping over a couple of slides. 759 00:50:01,890 --> 00:50:02,970 That's okay. 760 00:50:03,130 --> 00:50:06,430 Some credentials, we're going to say, speak other languages. 761 00:50:06,430 --> 00:50:12,790 What I mean by that is that they might present the data in a way that initially doesn't make sense. 762 00:50:13,030 --> 00:50:19,030 So there's, you know, instead of prox, maybe that's like an EM card. 763 00:50:19,590 --> 00:50:23,770 I'll give you an example of what I think an andala conversation will look like. 764 00:50:23,770 --> 00:50:31,710 So andala is notorious for scrambling the order of how the bits are sent from the card to the reader. 765 00:50:31,710 --> 00:50:39,750 Iceman is laughing because we spent way too many hours debugging andala encoding and decoding problems a few months ago. 766 00:50:40,630 --> 00:50:46,250 So here's an example of a conversation between a card reader and, say, an andala credential. 767 00:50:46,250 --> 00:50:55,170 So instead of providing everything in a nice, easy-to-understand format, that andala credential might say, Oh, yes, here's a bunch of numbers. 768 00:50:55,170 --> 00:51:06,110 And if you understand the correct way to parse my sentence, then you will also know that this is the format that it actually wants and it sends that to the door controller. 769 00:51:06,210 --> 00:51:09,030 Again, this is really, really dumbed down. 770 00:51:09,030 --> 00:51:12,470 That is intentional because this is not the thing that we're learning about. 771 00:51:12,470 --> 00:51:19,770 What we're learning about right now is the foundation of the card reader is going to send sanitized data to the door controller. 772 00:51:19,770 --> 00:51:24,270 And that's important for understanding all the other demos and stuff that we're going to end up showing you. 773 00:51:27,150 --> 00:51:30,830 Then there's the difference between low frequency and high frequency. 774 00:51:30,890 --> 00:51:34,170 That's a very commonly misunderstood difference. 775 00:51:34,170 --> 00:51:38,130 So we're going to, again, use really, really simple analogies. 776 00:51:38,190 --> 00:51:42,970 So remember that that credential reader is looking to talk. 777 00:51:44,130 --> 00:51:45,850 So here is. 778 00:51:47,550 --> 00:51:51,670 Here is a example of a contactless smart card, right? 779 00:51:51,670 --> 00:51:59,810 So instead of just providing the information without any authentication, there is something that takes place between the card and the reader called mutual authentication. 780 00:51:59,850 --> 00:52:14,590 There is a secret handshake that takes place between the card and the reader that has to be mutually authenticated by both sides before that card data can be read from the card and then transmitted to the door controller. 781 00:52:14,670 --> 00:52:23,870 So if you are trying to, say, get this card's data and you don't understand that handshake protocol, you won't be able to actually get that credential information. 782 00:52:27,530 --> 00:52:30,350 So how many languages does your reader speak? 783 00:52:30,350 --> 00:52:35,730 I'm going to be showing you a couple of demos today using what are called migration or transition readers. 784 00:52:35,730 --> 00:52:42,390 Some readers will only work with one type of credential, meaning they only speak one language. 785 00:52:42,390 --> 00:52:45,330 Some readers will read multiple credential technologies. 786 00:52:45,330 --> 00:52:52,210 They might read Prox and Mandala and also some high-frequency stuff like MyFair or iClass or Desfire. 787 00:52:52,210 --> 00:53:04,410 So your card reader might speak multiple different languages and have the ability to read multiple credential technologies, but again, door controller does not care. 788 00:53:04,410 --> 00:53:09,170 Door controller is still, again, getting sanitized data from the card reader. 789 00:53:09,630 --> 00:53:11,570 We're going to skip ahead a little bit. 790 00:53:13,130 --> 00:53:18,570 So when you are cloning, you need to know the same language that the reader is speaking, right? 791 00:53:18,570 --> 00:53:23,630 So here's our attacker. 792 00:53:23,630 --> 00:53:28,270 Our attacker knows how to talk to the card and it records that information. 793 00:53:28,270 --> 00:53:35,970 And then when we approach the reader, we're going to speak the same language as the original card, right? 794 00:53:37,770 --> 00:53:40,330 What if you don't know the language? 795 00:53:40,330 --> 00:53:45,810 And what I mean by this, and we're going to do demos about all this, so I apologize if I'm going a little bit fast. 796 00:53:45,810 --> 00:53:48,170 I want to make sure that we have time to cover everything. 797 00:53:48,630 --> 00:53:50,390 What if you don't know the language? 798 00:53:50,390 --> 00:53:58,310 What if you have an encrypted credential or contactless smart card that you don't know the key or the password to? 799 00:53:58,310 --> 00:53:59,830 Or you don't know the protocol. 800 00:53:59,830 --> 00:54:01,370 How do you deal with that? 801 00:54:01,370 --> 00:54:08,430 Well, remember, the thing that we actually care about is the credential data itself, not necessarily the card. 802 00:54:08,430 --> 00:54:10,330 The card is just a container. 803 00:54:10,770 --> 00:54:21,360 So here, as an attacker, we're looking at a credential in a reader and we're like, man, they have a secret handshake. 804 00:54:21,360 --> 00:54:26,140 I don't know how to replicate that secret handshake. 805 00:54:26,180 --> 00:54:31,080 So instead, what we're going to do is we're going to take that reader off the wall. 806 00:54:34,310 --> 00:54:36,190 We're going to borrow him, right? 807 00:54:36,190 --> 00:54:37,910 So we're going to borrow the reader. 808 00:54:37,910 --> 00:54:40,170 We're not even going to connect it to a real door controller. 809 00:54:40,170 --> 00:54:42,850 We're just going to connect it to our own data logger. 810 00:54:43,330 --> 00:54:46,390 And we're going to give it some power and we're going to read a credential. 811 00:54:46,390 --> 00:54:50,010 So that card reader knows the secret handshake. 812 00:54:50,010 --> 00:54:53,890 It's able to talk to that credential and get that PAX data. 813 00:54:53,890 --> 00:54:55,610 And now we have it as well. 814 00:54:56,210 --> 00:55:02,970 If we can find another way of getting that PAX data to the door controller, then that's all we need. 815 00:55:02,970 --> 00:55:04,230 The game is over. 816 00:55:09,260 --> 00:55:23,980 So in this example where the card reader can speak multiple languages, so to speak, we can just provide that card information in a format that the reader understands and then the system will operate as if it was the original card. 817 00:55:26,920 --> 00:55:32,220 I'm going to give you one more analogy just to really kind of seal in the flavor, so to speak. 818 00:55:32,220 --> 00:55:37,040 Think of low frequency credentials like PROXX, Andala, IO, EM, and others. 819 00:55:37,040 --> 00:55:43,240 Think of them as just a file folder that all you have to do is open it and there's your WGAN data. 820 00:55:43,240 --> 00:55:44,640 It's just right there. 821 00:55:44,640 --> 00:55:52,600 You don't necessarily have to understand what all the ones and zeros mean, but you can just take that piece of paper, stick it in a copy machine, and now you have a duplicate. 822 00:55:54,160 --> 00:56:08,300 With smart cards, with high frequency credentials, what we're talking about is taking that credential information, locking it in a bag, and then putting that bag in a safe with a unique combination that only the reader knows. 823 00:56:08,920 --> 00:56:13,180 That's what we're talking about when we talk about MyFair, when we talk about iClass. 824 00:56:13,340 --> 00:56:17,380 Again, we're not going to get too deep into technical details because we don't have time for that. 825 00:56:17,380 --> 00:56:21,700 We have a lot of demos we want to show you, so we'll skip over these slides here. 826 00:56:22,840 --> 00:56:29,560 So, now that you understand that, you understand the building blocks of what I call a technology downgrade attack. 827 00:56:29,680 --> 00:56:37,640 This is a slide that anyone who has seen any of our trainings that we've done over the past 10 years or so may have seen. 828 00:56:37,640 --> 00:56:42,140 It shows an iClass SEOS card next to a Prox card. 829 00:56:42,400 --> 00:56:49,100 And what I explain is that as far as the door controller is concerned, these two cards are equal. 830 00:56:49,100 --> 00:56:50,600 Well, how can that be? 831 00:56:50,600 --> 00:56:59,900 What we're talking about is a situation where the card reader can read multiple credential technologies, but the PAX data on both cards is the same. 832 00:56:59,900 --> 00:57:03,160 That will make more sense once I start doing the demo. 833 00:57:07,430 --> 00:57:22,370 So, just to give you an example of readers that can speak multiple languages, so to speak, I have here an example of what we call a migration or transition reader. 834 00:57:22,430 --> 00:57:27,950 I'm going to try to get this to focus. 835 00:57:32,460 --> 00:57:35,080 All right, it's focused-ish. 836 00:57:35,560 --> 00:57:36,620 Let's see. 837 00:57:39,290 --> 00:57:41,850 Come on, camera, you can do it. 838 00:57:41,850 --> 00:57:44,190 A little bit up. 839 00:57:44,770 --> 00:57:52,730 Yeah , it really doesn't want to be focused. 840 00:57:53,610 --> 00:57:55,270 All right, it's close enough. 841 00:57:55,270 --> 00:57:57,250 We can see that that word says secured. 842 00:57:57,390 --> 00:57:59,930 So, this is an example of a migration reader. 843 00:58:00,070 --> 00:58:05,490 This is a reader that is used for customers that are upgrading from an older technology to a newer one. 844 00:58:05,490 --> 00:58:13,530 So, let's say you have a facility that is still using Prox or still using Andala, and you're like, man, we've got to upgrade, but we've got thousands of doors. 845 00:58:13,530 --> 00:58:15,170 We can't do all that in one weekend. 846 00:58:15,170 --> 00:58:18,250 That's unrealistic and sounds very expensive. 847 00:58:18,370 --> 00:58:21,290 So, instead, what you do is you use a migration reader. 848 00:58:21,290 --> 00:58:26,310 The migration reader can read both older credential technologies and new ones. 849 00:58:26,370 --> 00:58:39,350 So, at your own pace, your integrator can go out and upgrade readers in the building, and when an entire site has all the readers changed, then you can start upgrading credentials. 850 00:58:39,350 --> 00:58:47,970 So, while you're doing the upgrade, everyone who still has old cards, their cards still work, because those new readers speak multiple languages, right? 851 00:58:48,090 --> 00:58:57,230 Once all the readers have been replaced, then we can take people's old cards away and show them newer, secure credentials, which the readers also understand. 852 00:58:57,310 --> 00:59:09,250 However, what is not always done, a step that is often missed, is disabling that older credential technology in the reader and preventing those old cards from working. 853 00:59:09,330 --> 00:59:15,790 That's important, because if you don't do that, then you're susceptible to what's called a format downgrade attack. 854 00:59:16,030 --> 00:59:18,970 Not format, technology downgrade attack. 855 00:59:18,970 --> 00:59:21,970 This slide had a typo there. 856 00:59:21,990 --> 00:59:31,530 So, I'm going to show you multiple cards that are going to show up as the same credential, but they are different technologies. 857 00:59:31,770 --> 00:59:35,810 So, we have here a prox card. 858 00:59:35,810 --> 00:59:39,710 So, we're going to present that prox card, and that gives us access granted. 859 00:59:39,710 --> 00:59:48,410 Our WGAN data represented in hex, for the sake of simplicity, is 2547EC068. 860 00:59:48,570 --> 00:59:49,990 Here's a different card. 861 00:59:49,990 --> 00:59:51,950 This is an Indala card, right? 862 00:59:51,950 --> 00:59:57,190 Different card technology, but it's encoded with the same PAX data. 863 00:59:57,190 --> 01:00:02,830 When I present that credential, we can see the same data, 2547EC068. 864 01:00:02,870 --> 01:00:08,170 Again, for those of you who might have gotten lost, when I switched from binary to hex, it's the same data. 865 01:00:08,170 --> 01:00:11,370 We're just representing it in a different base. 866 01:00:11,370 --> 01:00:14,970 So, it's base 16, instead of base 2 or base 10. 867 01:00:15,410 --> 01:00:20,810 So, as far as the door controller is concerned, these two cards are the same. 868 01:00:20,810 --> 01:00:25,690 It's seeing the same data, because this reader speaks multiple languages. 869 01:00:25,690 --> 01:00:27,610 Here's a different example. 870 01:00:27,670 --> 01:00:30,850 Here is a I-class credential, right? 871 01:00:30,850 --> 01:00:34,310 And again, the same data is on the card. 872 01:00:34,390 --> 01:00:42,350 So, now you're beginning to understand that the card technology itself doesn't matter, because the card is just a container. 873 01:00:42,350 --> 01:00:47,650 It's what's inside that card that matters to both the reader and to the door controller. 874 01:00:50,920 --> 01:00:53,180 So, let's see here. 875 01:00:53,180 --> 01:00:56,600 Let me see if the live demos are coming up now or next. 876 01:00:57,420 --> 01:01:00,780 We're going to do all the live demos at once, so I'm going to get through all of this content. 877 01:01:00,780 --> 01:01:01,620 Iceman, what do you think? 878 01:01:01,620 --> 01:01:04,640 Should we get through all the slides and just do all the live demos at once? 879 01:01:05,140 --> 01:01:08,480 Let's go all the slides and then we'll take the live demos afterwards. 880 01:01:08,480 --> 01:01:09,740 Yeah, I like that idea. 881 01:01:09,920 --> 01:01:12,000 I like that concept. 882 01:01:12,680 --> 01:01:15,540 So, remember, technology downgrade attack. 883 01:01:17,980 --> 01:01:22,840 So, now we talked about cards to reader communication. 884 01:01:22,940 --> 01:01:27,400 Let's talk briefly about reader to panel communication. 885 01:01:27,400 --> 01:01:30,820 What does it look like after the reader has read the credential? 886 01:01:30,960 --> 01:01:37,000 Well, here is that visual representation of WGAN data on the wire, but I can do you one better. 887 01:01:37,000 --> 01:01:38,660 I can actually show you. 888 01:01:39,780 --> 01:01:44,720 What I'm going to do is I'm actually just going to remove this reader. 889 01:01:44,720 --> 01:01:52,060 So, here's that reader that we were just using, and I am going to connect it to 890 01:01:56,400 --> 01:01:57,900 a logic analyzer. 891 01:02:01,360 --> 01:02:03,160 So, there's our card. 892 01:02:25,000 --> 01:02:31,600 Alright, so, again, we have our reader, which is currently covered up by Iceman's beautiful face. 893 01:02:31,600 --> 01:02:34,880 So, I'm just going to move this down here. 894 01:02:35,260 --> 01:02:36,560 So, here's our reader. 895 01:02:36,740 --> 01:02:38,440 Good, our video is still working. 896 01:02:38,740 --> 01:02:43,200 And what I'm going to do is I already have my channels set up. 897 01:02:43,200 --> 01:02:50,540 So, this channel 0, channel 1 is actually directly connected to those WGAN data lines coming out of the reader. 898 01:02:50,540 --> 01:02:54,840 So, this is the electrical signals that the door controller would be seeing. 899 01:02:55,460 --> 01:02:58,540 And I'm going to take that same I-class credential. 900 01:02:59,420 --> 01:03:01,920 So, here's an I-class credential, right? 901 01:03:01,920 --> 01:03:05,660 And I'm going to start recording, and I'm going to present it to the reader. 902 01:03:05,660 --> 01:03:07,580 And you just saw a blip go by really fast. 903 01:03:07,580 --> 01:03:10,660 Let's go ahead and zoom out and zoom back in. 904 01:03:11,660 --> 01:03:14,940 And we have the data represented in two different ways here, actually. 905 01:03:14,940 --> 01:03:17,440 So, we have, here's the digital representation up here. 906 01:03:17,440 --> 01:03:20,660 So, we have the line pulled high, the line pulled low. 907 01:03:20,660 --> 01:03:24,240 And here we can see what that actually looks like from an analog perspective. 908 01:03:24,240 --> 01:03:30,660 So, normally those data lines are held at 5 volts, and then they're pulsed briefly to 0 volts, and then released again. 909 01:03:30,780 --> 01:03:38,860 Now, what I really love about this particular example, and I'm going to try to zoom this so it all fits on the screen. 910 01:03:38,860 --> 01:03:39,560 Perfect. 911 01:03:39,560 --> 01:03:43,180 Alright, remember this fake Wigan card that we made? 912 01:03:43,180 --> 01:03:44,760 Let's take another look. 913 01:03:45,000 --> 01:03:47,850 I told you that all those cards have the same data. 914 01:03:49,800 --> 01:04:03,670 If you look at the data represented in the logic analyzer, you'll notice that all the ones and zeros line right up. 915 01:04:03,670 --> 01:04:13,050 So, here we have 1, 0, 0, 1, 0, 1, and here we have 1, 0, 0, 1, 0, 1, and so on and so forth. 916 01:04:13,050 --> 01:04:14,670 It's literally that simple. 917 01:04:14,670 --> 01:04:24,690 As the data comes out of the reader, it's being converted into these very, very basic electrical signals that the door controller interprets as logical ones and zeros. 918 01:04:24,810 --> 01:04:30,310 So, there's no extra layers on top of it beyond that. 919 01:04:30,310 --> 01:04:44,550 We just scanned an I-class credential, but we can see by connecting to the wires that we're still just seeing the same data as if it was still a Wigan credential from the 1980s. 920 01:04:44,690 --> 01:04:51,350 And that is a really important piece of context that I think is important to be aware of. 921 01:04:51,610 --> 01:04:55,230 So, we'll go ahead and move that back out of the way, 922 01:05:03,320 --> 01:05:04,980 and we'll switch here. 923 01:05:05,700 --> 01:05:12,000 So, again, no matter what you're talking about as it relates to the credential, that's just talking about the first link. 924 01:05:12,000 --> 01:05:16,660 It has nothing to do with that second piece of the communication. 925 01:05:16,660 --> 01:05:18,720 That is usually Wigan. 926 01:05:18,720 --> 01:05:19,880 Not always. 927 01:05:19,880 --> 01:05:24,260 There are a couple of data protocols and communication protocols that exist. 928 01:05:24,280 --> 01:05:26,260 Most of them are unencrypted. 929 01:05:26,260 --> 01:05:34,900 OSDP version 2 has something called secure channel protocol, which can encrypt the data between the card reader and the door controller. 930 01:05:34,900 --> 01:05:41,480 It does have to be set up correctly for it to work reliably, but that is the only way that that credential information is encrypted. 931 01:05:41,480 --> 01:05:50,120 And it's one of the mitigations that we will discuss at the end for ways that you can defend your access control system against malicious manipulation. 932 01:05:51,540 --> 01:06:01,100 That Wigan communication, that signal that you all just saw on the logic analyzer, is something that we can intercept, and we can take advantage of how simple it is. 933 01:06:01,100 --> 01:06:03,680 There have been a number of tools over the years that do this. 934 01:06:03,820 --> 01:06:10,400 Years and years ago, Zach Franken and Adam Lloyd built a beautiful tool called the Gecko, and then later on the Chameleon. 935 01:06:10,400 --> 01:06:16,720 And its only job was to sit on those Wigan wires, intercept that data, and then allow you to come back and replay it. 936 01:06:16,720 --> 01:06:20,760 In recent years, there have been a number of open source projects that do the same thing. 937 01:06:20,760 --> 01:06:33,540 A few years ago, Mark Visaggio and Eric Evinchik released the BLE key, which is a little battery-powered tool that you punch down behind the reader and it just monitors those Wigan data lines and records credential information. 938 01:06:33,920 --> 01:06:48,800 And then a little bit more recently, also still a few years ago, one of our other friends, Kenny McElroy, he developed the ESP key, which was powered off the bus rather than the battery, and used Wi-Fi instead of Bluetooth. 939 01:06:48,800 --> 01:06:50,560 But the concept was the same. 940 01:06:50,640 --> 01:06:58,540 This is something that you can install behind the reader, and intercept that credential information, and then just come back and replay it. 941 01:06:58,540 --> 01:07:04,300 If we have time, after all of our other cooler demos, in my opinion, we can do a demo of that as well. 942 01:07:04,300 --> 01:07:12,220 But I just wanted to cover this as something that is a completely valid attack still today on any systems that are running Wigan. 943 01:07:14,930 --> 01:07:29,630 So what we're doing with an ESP key is, again, if we think about our analogy, when that credential data is read from the card and transmitted from the reader to the door controller, the ESP key or the Gecko or the BLE key, it's listening and it's able to record that information. 944 01:07:29,730 --> 01:07:34,970 Then when we as an attacker approach the door, we don't actually deal with the card reader at all. 945 01:07:34,970 --> 01:07:37,330 We don't have a card even, necessarily. 946 01:07:37,330 --> 01:07:45,490 What we do is we interact directly with the ESP key, check to see if there's any credentials recorded, and then tell the ESP key to replay it. 947 01:07:45,490 --> 01:07:53,150 The door controller, not knowing that there's another device connected to the line, will see the same data and process the transaction the same way. 948 01:07:56,160 --> 01:07:58,100 Just a couple of photos of the install. 949 01:07:58,100 --> 01:08:00,000 We'll skip over the video. 950 01:08:00,000 --> 01:08:03,900 The last piece, panel to server communication. 951 01:08:04,040 --> 01:08:08,680 And we have a special surprise demo with this one as well that hopefully we have time for. 952 01:08:10,300 --> 01:08:16,180 Remember, these door controllers often do run on Ethernet, especially today. 953 01:08:16,180 --> 01:08:24,040 And remember how I said they are basically embedded Linux devices that maybe aren't always super protected? 954 01:08:24,040 --> 01:08:33,000 So both the software and the door controllers themselves have to be protected properly on a segmented network. 955 01:08:33,000 --> 01:08:35,480 Otherwise, interesting things can happen. 956 01:08:35,520 --> 01:08:46,460 Because these door controllers are usually Linux devices or other embedded hardware that are not part of the normal IT infrastructure, they're not part of the normal patch cycle. 957 01:08:46,460 --> 01:09:01,020 In fact, a lot of vendors specifically call out in the instructions that you don't have to tell IT about this because this is just a physical security appliance. 958 01:09:01,020 --> 01:09:04,540 This is not a computer, even though it actually is a computer. 959 01:09:04,660 --> 01:09:20,240 And so you often times run into situations where libraries, open source libraries used by Linux hardware are criminally out of date or they have security holes or other bugs or whatnot in the system, in the firmware that can be exploited. 960 01:09:20,500 --> 01:09:27,380 And door controllers are also not something that most users update because they don't want their system to go down. 961 01:09:27,420 --> 01:09:32,920 So the only time that you update your firmware on a door controller in practice is when there is a problem. 962 01:09:33,220 --> 01:09:40,300 I don't know of any of my clients, actually, that routinely update the software, rather the firmware, on their door controllers. 963 01:09:40,700 --> 01:09:43,860 And you'll see why that can be a problem here in a moment. 964 01:09:43,860 --> 01:09:50,100 And actually, there was a few years ago, there was a really great toolkit called Concierge. 965 01:09:50,100 --> 01:09:55,480 If people have trouble finding it on GitHub, I'll post the link during the Q&A. 966 01:09:55,580 --> 01:10:09,280 Concierge was a collection of exploits that were patched, but then released, that allows you to directly scan for and then compromise different brands and models of door controllers. 967 01:10:09,280 --> 01:10:20,340 So instead of attacking the card or attacking the reader, you can attack the door controller itself and either tell it to open a door or add new users to the local database, etc. 968 01:10:20,340 --> 01:10:21,540 Stuff like that. 969 01:10:22,960 --> 01:10:24,240 How can you target it? 970 01:10:24,240 --> 01:10:26,020 Well, you've got to be on the same network. 971 01:10:26,100 --> 01:10:28,960 And initially, you're like, OK, well, that's a little hard, right? 972 01:10:28,960 --> 01:10:32,800 I've got to either break their Wi-Fi or find a port to plug into. 973 01:10:32,800 --> 01:10:34,320 Not necessarily. 974 01:10:34,380 --> 01:10:51,020 You can actually find a lot of door controllers directly connected to the Internet using Google or using Shodan, and you will find different door controllers that, again, are running outdated software that are directly connected to the Internet. 975 01:10:51,380 --> 01:10:52,740 How outdated? 976 01:10:52,740 --> 01:11:01,920 Well, the couple that we found, when we tried to connect to it, the version of SSL was so old, all the modern browsers we used wouldn't let us try to talk to it. 977 01:11:03,560 --> 01:11:10,120 Instead, we had to manually turn off SSL and connect to it over HTTP. 978 01:11:10,440 --> 01:11:15,720 And then, of course, you have default credentials, admin, admin, used to log in. 979 01:11:15,720 --> 01:11:24,380 Again, that's an example of what not to do with your door controller and why it's so important to be mindful of how integrators are deploying and installing hardware. 980 01:11:26,540 --> 01:11:29,420 This is where the slides go a little bit sideways. 981 01:11:29,420 --> 01:11:32,740 And I appreciate everyone being very forgiving here. 982 01:11:32,740 --> 01:11:41,340 We have a lot of topics that we were trying to cram into this, and we have now just about 55 minutes left for demos, so we're just going to get through a couple more slides. 983 01:11:42,060 --> 01:11:48,100 I mentioned that different card readers can have different configurations. 984 01:11:48,580 --> 01:11:50,660 They can read different technologies. 985 01:11:50,660 --> 01:11:59,700 And I mentioned that a best practice is to turn off those older technologies in order to protect the system from being manipulated. 986 01:11:59,760 --> 01:12:00,960 How do you do that? 987 01:12:00,960 --> 01:12:03,560 If weekend is one way, how do you do that? 988 01:12:03,560 --> 01:12:05,360 There's no Ethernet port on it. 989 01:12:05,360 --> 01:12:08,840 Well, there are things called configuration cards. 990 01:12:08,840 --> 01:12:11,720 Configuration cards are not unique to one vendor. 991 01:12:11,780 --> 01:12:22,980 Many vendors support different types of configuration cards that are special cards that the reader will only read during its boot-up cycle, and it will reconfigure how that reader operates. 992 01:12:22,980 --> 01:12:31,920 That can change things like the key that's stored on the reader, so if the customer wants a special or a custom or a unique key, they can do that. 993 01:12:31,920 --> 01:12:38,900 They can also change which card technologies are supported by the reader, so you can turn different technologies on and off. 994 01:12:39,980 --> 01:12:42,240 There's a lot of other behaviors you can change as well. 995 01:12:42,240 --> 01:12:47,380 You can change the LED color, you can change whether or not it beeps, how long it beeps for, all that stuff. 996 01:12:47,380 --> 01:12:51,040 All that can be changed through the use of configuration cards. 997 01:12:51,040 --> 01:12:54,220 That's important to keep in mind once we get to our demos. 998 01:12:55,800 --> 01:13:02,860 So using configuration cards, you can do a couple of interesting things, and we're going to show you demos of all this stuff. 999 01:13:03,900 --> 01:13:20,820 A new exploit, a topic that is not completely brand new, but no one has really talked about, is a method of doing a denial-of-service attack against certain older readers that prevent valid users from using the facility. 1000 01:13:20,920 --> 01:13:24,340 We're also going to do a live demo of a tech downgrade attack that I mentioned. 1001 01:13:24,340 --> 01:13:30,640 We're going to take secure, high-security credentials that, as far as we know, there's no public thing on Defeat. 1002 01:13:30,640 --> 01:13:34,340 People don't know how to break DESFire, EV1, EV2. 1003 01:13:34,580 --> 01:13:37,620 People don't really know how to break CEOS currently. 1004 01:13:37,700 --> 01:13:44,940 But depending on how the rest of the system is configured, we'll see how we don't even need to do that to necessarily create a working clone. 1005 01:13:45,200 --> 01:13:47,560 And then we're also going to do an example of key recovery. 1006 01:13:47,560 --> 01:13:52,980 This is related to the low-class attack, or leak key extraction, that was released many years ago. 1007 01:13:53,180 --> 01:13:59,820 But Iceman has written some new tools for the Proxmark 3 to make that even easier and even faster. 1008 01:14:00,160 --> 01:14:05,920 And we spent a lot of time testing it and debugging it over the past couple of weeks, and it's so freaking awesome. 1009 01:14:05,920 --> 01:14:07,760 I'm really excited to share it with you all. 1010 01:14:11,410 --> 01:14:19,730 So, before we get to demos, Iceman, you want to talk a little bit about some of the new tools that have come out within the past six months regarding RFID? 1011 01:14:20,730 --> 01:14:22,250 Yes, I do, actually. 1012 01:14:22,250 --> 01:14:26,710 And that was an amazing crunching of the old PAX background. 1013 01:14:27,110 --> 01:14:29,270 Defeating the PAX man ghost. 1014 01:14:29,670 --> 01:14:35,190 And yes, you got a lot of info about what's the setup now. 1015 01:14:35,190 --> 01:14:37,650 So what is the tools that we use? 1016 01:14:38,010 --> 01:14:41,130 What are we using today when we do this stuff? 1017 01:14:41,210 --> 01:14:44,010 I need to just move a little bit here on the slideshow. 1018 01:14:44,010 --> 01:14:44,630 Sure. 1019 01:14:46,110 --> 01:14:49,710 And let's see, I'm on almost the same part of you. 1020 01:14:50,830 --> 01:14:51,990 And there we go. 1021 01:14:52,490 --> 01:14:57,970 It's because the screens I get from Parvac is very blurry, so I can't see what it says on it. 1022 01:14:58,450 --> 01:15:00,050 Even if I know it by heart. 1023 01:15:00,450 --> 01:15:02,470 So, the new tools of 2020. 1024 01:15:02,470 --> 01:15:07,950 We talked about the BLE key and ASP key, and of course, everybody knows the Proxmark. 1025 01:15:08,350 --> 01:15:22,630 There was... Adam Lorre is a famous name, he's also called as RFIDidiot, and he's an amazing RFID researcher, slash hacker, and DEFCON quarter manager, quarter major? 1026 01:15:22,630 --> 01:15:23,290 Quarter master. 1027 01:15:23,530 --> 01:15:25,930 Quarter master, okay, right, sorry. 1028 01:15:26,570 --> 01:15:28,450 Got to get the titles correct. 1029 01:15:29,410 --> 01:15:38,330 And he has just recently released and made something for NFC tools, the LibNFC-based version. 1030 01:15:38,330 --> 01:15:54,590 It is called NFC iClass, and that's a software that gives the possibility to use your old other readers, PM53532 or 5333, and you can now communicate with iClass. 1031 01:15:54,590 --> 01:15:56,670 It wasn't possible before. 1032 01:15:56,670 --> 01:16:15,190 You have to see, iClass has been like a little bit of a separate world, because it's been a little bit special, and the crypto involved with it, it wasn't adapted to different tools, and also about keys, of course, and HRD being known as a little bit hard hands. 1033 01:16:16,150 --> 01:16:23,290 So, this is a major step that he did with this software, because it enables us to do things. 1034 01:16:23,490 --> 01:16:33,110 And the other one is the Proxmark, which you all know that I know about, and you know that everybody else knows about, which is the Swiss armor knife of RFID hacking. 1035 01:16:33,630 --> 01:16:53,890 And now what happened here is some really intensive changes to the firmware and client used, which includes what I would call FPGA changes, and a new iClass standalone mode, which involves some separate modes I will talk more about, because it comes related to the surreptitious attacks that we want to demo for you. 1036 01:16:53,890 --> 01:16:57,230 So, without further ado, next slide. 1037 01:16:57,750 --> 01:16:59,290 Oh, yeah, my apologies. 1038 01:16:59,490 --> 01:17:03,870 Yeah, my assistant Babak has to do this. 1039 01:17:04,430 --> 01:17:06,010 And for you, Rick, I'm going to do this. 1040 01:17:06,010 --> 01:17:08,450 Because it's DEF CON, you're going to get this one. 1041 01:17:08,450 --> 01:17:09,570 It's for you, Rick. 1042 01:17:12,010 --> 01:17:13,330 I'm Iceman. 1043 01:17:13,610 --> 01:17:14,730 And that's it. 1044 01:17:15,870 --> 01:17:21,770 So, yes, NFC tools, iClass by Adam Lorry. 1045 01:17:21,770 --> 01:17:31,590 It uses the LibNFC behind it, and you see Filip Tøven and DotJocks, you know, the little puppet there, and they make it great. 1046 01:17:31,590 --> 01:17:47,930 It tricks, and it uses a trick, because the LibNFC is not very good on ISO 15693 protocol, so it uses a trick where it actually, because iClass can talk to different tech, is ISO 443B or 15693. 1047 01:17:47,930 --> 01:17:53,270 So, on this version, it tricks the reader to use that to talk to an iClass. 1048 01:17:53,270 --> 01:18:09,810 The thingy, thingy, thingy, the fine, fine thing here is, of course, that what we are interested in is that this tool, Adam was so gracious, he made us config cards, possibilities to generate simply by open source. 1049 01:18:10,150 --> 01:18:18,250 Other people, like Babak and other people, of course, have had the possibility to generate config cards at will, like many of us. 1050 01:18:18,250 --> 01:18:28,190 But it hasn't been publicly released in the way that it has done now, so this is a good stepping stone for what is to come, of what we want to see. 1051 01:18:28,410 --> 01:18:30,950 You can skip to the next slide. 1052 01:18:33,450 --> 01:18:35,830 I'm not going to talk so much about the config card. 1053 01:18:36,370 --> 01:18:44,070 It's the concept of having a config card that's interesting, not what the config card is, and how it's done, or whatever. 1054 01:18:44,070 --> 01:18:45,310 You can look at that software. 1055 01:18:45,310 --> 01:18:46,970 So, the next one is... 1056 01:18:47,570 --> 01:18:49,990 We're not supporting I-Class timeline. 1057 01:18:50,190 --> 01:18:51,350 Yes, yes. 1058 01:18:51,370 --> 01:19:06,950 So, given the support for I-Class in Proxmox, I don't know how it is, but Proxmox is an open source tool, and it's as good as the firmware is, and it has had a story of two different repos, mainly mine and the official repo. 1059 01:19:06,990 --> 01:19:12,930 And the thing is how this happened to be able to speak I-Class. 1060 01:19:12,930 --> 01:19:30,110 And it started 2010-2013, where Ruelle researchers, cryptological researchers called Ruelle and Milosh and all those others, did some amazing attacks and research about the I-Class system, the encrypto, the hashes used, and released tools and attacks about it. 1061 01:19:30,110 --> 01:19:37,350 And they also released some Malgos into the Proxmox repo, but that was it. 1062 01:19:37,650 --> 01:19:55,570 And skipping a little bit forward, 2014-2015, a user called Hollyman, he did some improvements, where he actually implemented the crypto, the I-Class crypto use, which was a major thing, because before that Proxmox couldn't really talk I-Class. 1063 01:19:55,670 --> 01:20:04,730 It's a deviant of ISO 15693, so I-Class is a little bit different, and you need the crypto part as well. 1064 01:20:04,730 --> 01:20:23,010 So he did that, which is an amazing feature, and he also implemented, from that research made before, from Ruelle and everybody, he also made that elite key recovery attack, which we all call low-class nowadays, which has been, since then, has been a state-of-the-art attack to recover elite keys, 1065 01:20:23,350 --> 01:20:28,570 based on Carl and Babax and all other people who helped to get the readers and all that. 1066 01:20:28,570 --> 01:20:29,310 It's amazing. 1067 01:20:29,310 --> 01:20:30,070 It's a shout-out. 1068 01:20:30,070 --> 01:20:36,990 I'm just doing a shout-out to people who have done this, and I want to show appreciation for them, because that's what it is. 1069 01:20:37,790 --> 01:20:43,570 Skipping forward again, 2008 and 2019, until then, nothing much happened with I-Class. 1070 01:20:43,670 --> 01:20:45,550 The support worked. 1071 01:20:45,550 --> 01:20:47,130 It was bad modulation. 1072 01:20:47,130 --> 01:20:48,650 You had to find the right spot. 1073 01:20:48,650 --> 01:20:52,310 If you ever used a Proxmog, you always were like, do you have the right antenna? 1074 01:20:52,310 --> 01:20:53,770 Do you have the right distance? 1075 01:20:53,770 --> 01:20:58,710 It's fidgety, and you might have been able to do the sniffing, snooping, and reading. 1076 01:20:58,710 --> 01:21:00,330 It's a painful experience. 1077 01:21:00,330 --> 01:21:09,470 If you've been as long as I've been into the Proxmog world, where it's come from, you know, crashing and bugging and everything like that, it's been painful. 1078 01:21:09,730 --> 01:21:16,330 2018-2019, another user, who actually is another amazing contributor, is Peavey. 1079 01:21:16,330 --> 01:21:23,450 And he did some historic use improvements on this code and form interface class. 1080 01:21:23,450 --> 01:21:26,750 We majorly improved this. 1081 01:21:26,750 --> 01:21:29,190 I talk majorly. 1082 01:21:29,190 --> 01:21:37,110 And that really made the official repo, he works in the official repo, it makes it super, super stable. 1083 01:21:37,410 --> 01:21:40,090 So all of a sudden, we have a good communication. 1084 01:21:40,210 --> 01:21:41,790 We have all the pieces in place. 1085 01:21:41,790 --> 01:21:45,570 Remember now, we have a public config card-generated software. 1086 01:21:45,690 --> 01:21:51,730 We have good stability in Proxmog, reading of the cryptos, and we now have a very good way of doing it. 1087 01:21:51,730 --> 01:21:58,890 I can talk more about how it's actually done, how it changes, and why it's kind of awesome the way he did it, because he went kind of deep. 1088 01:21:58,890 --> 01:22:00,490 I will talk a little more about it. 1089 01:22:00,510 --> 01:22:03,650 And 2020 is what I call Merge Hell start. 1090 01:22:03,930 --> 01:22:06,250 And I will... yeah. 1091 01:22:06,610 --> 01:22:07,850 Merge Hell is something... 1092 01:22:08,450 --> 01:22:09,930 It's a little my fault. 1093 01:22:10,390 --> 01:22:10,750 So... 1094 01:22:11,730 --> 01:22:13,150 Yeah, you want to talk about that? 1095 01:22:13,150 --> 01:22:13,790 Yeah, yeah, yeah. 1096 01:22:13,790 --> 01:22:18,490 So I met Iceman for the first time in person last year, at DEF CON last year. 1097 01:22:18,790 --> 01:22:23,570 And I pulled him aside at some point, and I'm like, hey, first of all, thank you for all the hard work. 1098 01:22:23,570 --> 01:22:25,110 Like, I can't write code. 1099 01:22:25,190 --> 01:22:26,570 Like, I wish I could contribute more. 1100 01:22:26,570 --> 01:22:31,050 I can contribute in testing, I can contribute hardware, I can do a lot of other stuff. 1101 01:22:31,050 --> 01:22:32,430 I'm not a great coder. 1102 01:22:32,430 --> 01:22:34,050 I can do a lot of other things. 1103 01:22:35,270 --> 01:22:37,290 Why is iClass so unstable? 1104 01:22:37,290 --> 01:22:37,910 He's like, what do you mean? 1105 01:22:37,910 --> 01:22:38,810 It works fine for me. 1106 01:22:38,810 --> 01:22:41,330 I'm like, no, it's really bad. 1107 01:22:41,330 --> 01:22:43,570 I don't know if you really appreciate how bad it is. 1108 01:22:44,250 --> 01:22:45,730 It's unusable bad. 1109 01:22:46,730 --> 01:22:56,070 And at some point, PeeWee made all these changes in the official repo, and all of a sudden it was rock solid, but, like, RRG was, like, still behind. 1110 01:22:56,070 --> 01:23:03,210 And I'm like, oh, man, like, surely at some point it's going to be merged, but I didn't really appreciate how much work it was. 1111 01:23:03,230 --> 01:23:06,570 So what I did is I tricked Iceman a little bit. 1112 01:23:06,590 --> 01:23:13,850 I invited Iceman to participate in some of our trainings that we were doing for our professional pen testers. 1113 01:23:13,990 --> 01:23:15,890 We were in classes. 1114 01:23:16,250 --> 01:23:17,730 And just to watch. 1115 01:23:17,730 --> 01:23:22,810 And he saw, he saw how bad the performance was. 1116 01:23:22,890 --> 01:23:24,990 Again, not his fault. 1117 01:23:24,990 --> 01:23:26,530 This is a community project. 1118 01:23:26,530 --> 01:23:28,210 Everyone is doing their best. 1119 01:23:28,810 --> 01:23:32,510 But that was, that was the thing, like a month and a half ago, right? 1120 01:23:32,510 --> 01:23:33,930 That was in June. 1121 01:23:34,150 --> 01:23:35,970 Where you're like... 1122 01:23:35,970 --> 01:23:36,970 It was bad. 1123 01:23:37,630 --> 01:23:40,550 Anyone who was in that June class, it was a solid class. 1124 01:23:40,550 --> 01:23:46,970 But once we got to I-class, we hit a freaking brick wall because we just had a lot of trouble communicating with cards. 1125 01:23:47,330 --> 01:23:48,950 You've been having that for years. 1126 01:23:48,950 --> 01:23:51,810 The thing is, I use it at home. 1127 01:23:51,810 --> 01:23:52,970 I have some credentials. 1128 01:23:52,970 --> 01:23:54,050 It works. 1129 01:23:54,190 --> 01:23:54,870 That's it. 1130 01:23:54,870 --> 01:23:56,410 You don't do very much more with it. 1131 01:23:56,410 --> 01:23:57,550 You don't need to. 1132 01:23:57,710 --> 01:23:59,430 You dump some cards and look at it. 1133 01:23:59,430 --> 01:24:01,530 It works. 1134 01:24:01,670 --> 01:24:07,550 But for a class, for teaching, for using it on field, oh man, that sucks. 1135 01:24:08,390 --> 01:24:15,350 So yeah, two months ago, let's say two months ago, because it started a little bit earlier and I came up to this. 1136 01:24:15,350 --> 01:24:16,830 I decided finally... 1137 01:24:16,830 --> 01:24:23,330 I didn't want to do it because I was actually supposed to do a high tech 2 code and then we made a release of this stable thing. 1138 01:24:23,330 --> 01:24:28,550 Once that was in place, I could do other things and that would become merge hell. 1139 01:24:28,550 --> 01:24:35,850 Meaning that the total changes that we've done for two years to be merged into the RG Iceman repo. 1140 01:24:35,890 --> 01:24:37,330 Which is... yeah. 1141 01:24:37,330 --> 01:24:43,590 The thing is, what I want to say, the most important part is that the I-class support that we made is rock solid. 1142 01:24:43,590 --> 01:24:44,610 It's so good. 1143 01:24:45,750 --> 01:24:49,670 Even if you use LibNFC now, you're going to go like, oh that's ugly. 1144 01:24:49,990 --> 01:24:52,170 Bad compared to this. 1145 01:24:52,170 --> 01:24:53,130 Next slide. 1146 01:24:53,590 --> 01:24:55,550 Oops, sorry. 1147 01:24:56,290 --> 01:25:00,730 And in true Proxmark form, by the way, fixing one thing broke another. 1148 01:25:00,730 --> 01:25:04,690 So I-class support, rock solid. 1149 01:25:04,770 --> 01:25:08,190 ISO 14b support, completely broken. 1150 01:25:08,290 --> 01:25:11,430 Thankfully, not as many people use ISO 14b. 1151 01:25:11,430 --> 01:25:16,210 I think I-class is more useful myself, but it's just whack-a-mole, right? 1152 01:25:16,610 --> 01:25:20,710 Yeah, it's what's... 1153 01:25:21,170 --> 01:25:22,050 God. 1154 01:25:22,530 --> 01:25:23,730 I don't know what to say. 1155 01:25:23,730 --> 01:25:24,510 Anyway. 1156 01:25:26,850 --> 01:25:27,990 I know. 1157 01:25:27,990 --> 01:25:28,770 We're on a timeline. 1158 01:25:28,770 --> 01:25:29,490 I know, I know. 1159 01:25:29,490 --> 01:25:30,230 Sorry. 1160 01:25:32,650 --> 01:25:34,330 I'm trying to do this seriously. 1161 01:25:34,330 --> 01:25:35,490 I know, I know. 1162 01:25:35,490 --> 01:25:36,810 It's so hard. 1163 01:25:37,470 --> 01:25:39,810 Okay, you made me lose my mind here. 1164 01:25:41,090 --> 01:25:42,430 Two repos, yes. 1165 01:25:42,430 --> 01:25:43,910 Two very different repos. 1166 01:25:47,370 --> 01:25:48,650 Yes, two repos. 1167 01:25:48,650 --> 01:25:50,630 Official repo and Iceman repo. 1168 01:25:50,890 --> 01:25:57,630 It's separate a couple of years ago because we wanted to build the support for RG4 a little bit better and put some effort in. 1169 01:25:57,630 --> 01:25:59,810 So it's a different way of using and thinking and using. 1170 01:25:59,810 --> 01:26:04,910 Once you use RG, Iceman repo, you will see the difference and you feel the difference in it. 1171 01:26:04,910 --> 01:26:06,430 It is what it is. 1172 01:26:06,630 --> 01:26:08,210 Basically, the FPGA changes. 1173 01:26:08,210 --> 01:26:11,290 This is an amazing thing because it's a huge feature that's coming out. 1174 01:26:11,290 --> 01:26:13,010 The FPGA changes. 1175 01:26:13,110 --> 01:26:22,010 You have a system here, you have a client on a PC, you have an ARM device and on it you have also an FPGA that talks to the ADC and do things. 1176 01:26:22,010 --> 01:26:23,610 It's all programmable. 1177 01:26:23,610 --> 01:26:29,670 It all had to change and PV made things and move IQ handling and stuff into the FPGA code. 1178 01:26:29,670 --> 01:26:39,030 Since he did that, the thing is, the FPGA before did the ADC signal, send it to the ARM, ARM demodulated, sent it off to the client, the client did all the hard lifting. 1179 01:26:39,030 --> 01:26:45,450 It did all the select the card, it did all the calculation of cryptos, calculation of MAC values when writing and everything like that. 1180 01:26:45,490 --> 01:26:52,570 However, afterwards, FPGA took the signals, made IQ pairs of it and sent those to the ARM. 1181 01:26:52,710 --> 01:26:57,530 ARM decoded that one much better because IQ's demodulation is super much better and stable. 1182 01:26:57,530 --> 01:26:59,470 That's where that comes from. 1183 01:26:59,750 --> 01:27:04,090 And then sent it all off to the client again, who still did the hard lifting. 1184 01:27:04,210 --> 01:27:05,490 Next queue. 1185 01:27:08,170 --> 01:27:11,850 And here is when things become funny. 1186 01:27:12,770 --> 01:27:14,510 You did that and I didn't do that. 1187 01:27:15,390 --> 01:27:23,390 And so, you talk with people, you talk with yourself and you talk with Bambach and you go like, hmm... 1188 01:27:23,390 --> 01:27:26,630 So, we have rock solid demodulation of IQ class. 1189 01:27:26,630 --> 01:27:28,430 What can we do now? 1190 01:27:29,370 --> 01:27:31,110 And you know, it's a bouncing thing. 1191 01:27:31,110 --> 01:27:34,810 I don't want to say who brought that in first because people have been saying these ideas for years. 1192 01:27:35,010 --> 01:27:38,510 But , you know, with all this stuff, I'm like sitting here and I'm like thinking... 1193 01:27:39,170 --> 01:27:41,550 We were talking about it at DEF CON last year. 1194 01:27:41,730 --> 01:27:42,270 Yeah. 1195 01:27:42,630 --> 01:27:43,290 Yeah. 1196 01:27:43,290 --> 01:27:43,370 Yeah. 1197 01:27:43,370 --> 01:27:43,550 Yeah. 1198 01:27:43,550 --> 01:27:45,810 How about moving this crypto? 1199 01:27:46,230 --> 01:27:48,190 How about , you know, do that to ARM, you know? 1200 01:27:48,190 --> 01:27:53,170 And people are... I know I've even kept meeting and asked , why can't you get a nice class standalone mode ? 1201 01:27:53,170 --> 01:27:55,990 And I'm like, yeah, you know. 1202 01:27:55,990 --> 01:28:00,510 It's not solid for demodulation and the crypto parts is also better. 1203 01:28:00,510 --> 01:28:02,390 You know, I don't want to do that work. 1204 01:28:02,690 --> 01:28:03,990 So, we do that stuff. 1205 01:28:03,990 --> 01:28:07,390 So , we're like, how about we move it? 1206 01:28:07,390 --> 01:28:12,250 Now, one part that Peavey did, he actually optimized the crypto so it went even faster. 1207 01:28:12,250 --> 01:28:15,530 And that's needed when you simulate things on the device. 1208 01:28:15,530 --> 01:28:16,690 You need speed. 1209 01:28:16,870 --> 01:28:17,830 So, he did that. 1210 01:28:17,830 --> 01:28:22,150 You know, shaving off milliseconds or microseconds, you know. 1211 01:28:22,610 --> 01:28:38,670 So, I had to refactor the whole code because since before everything was in the client, move it all into the device and by doing that, you can call it achievement unlocked, we have full crypto and MAC generation on the device. 1212 01:28:39,170 --> 01:28:41,610 Which is an amazing feature. 1213 01:28:41,870 --> 01:28:44,390 It enables us to do more things. 1214 01:28:44,390 --> 01:28:48,390 It took a whole remake because the whole flow of work is just different. 1215 01:28:48,950 --> 01:28:53,470 Next thing that comes up, how about a stand-alone mode? 1216 01:28:53,470 --> 01:28:56,970 Now that we can do these things here, how about that? 1217 01:28:57,070 --> 01:28:59,890 Well, you know, how are we going to do the dumps? 1218 01:28:59,950 --> 01:29:04,770 We have a flash memory on Rdb4, so let's do it like that. 1219 01:29:04,770 --> 01:29:09,790 So, let's create a stand-alone mode which can talk iClass. 1220 01:29:10,990 --> 01:29:11,650 Doable. 1221 01:29:11,650 --> 01:29:14,830 Have to rework all the code again because make it work. 1222 01:29:14,830 --> 01:29:21,730 And we actually achieved the very first iClass legacy simulation stand-alone mode one and a half month ago. 1223 01:29:22,690 --> 01:29:28,570 Next question when you do this, just the bouncing ideas and you go like, what more can we do? 1224 01:29:28,570 --> 01:29:31,170 Because we implemented all of this stuff in the client before. 1225 01:29:31,170 --> 01:29:32,990 Can we push the limit? 1226 01:29:32,990 --> 01:29:33,970 What more can we do? 1227 01:29:33,970 --> 01:29:35,130 That would be cool. 1228 01:29:35,590 --> 01:29:46,170 So, how about we do two more modes of the stand-alone modes where we now do reading and dumping. 1229 01:29:46,170 --> 01:29:51,510 Read a tag, proxmark act as a reader and store the credential. 1230 01:29:51,770 --> 01:29:55,550 And the next one is elite reader. 1231 01:29:55,550 --> 01:29:57,670 Do the sim2 attack. 1232 01:29:57,770 --> 01:29:59,570 It's a simple one in that sense. 1233 01:30:00,130 --> 01:30:02,330 And achieve that as well. 1234 01:30:02,330 --> 01:30:03,650 Too much is amazing. 1235 01:30:03,650 --> 01:30:04,870 We have three in one. 1236 01:30:05,610 --> 01:30:08,110 We were not quite done yet. 1237 01:30:08,110 --> 01:30:10,230 And here's the next talk with Babak. 1238 01:30:10,230 --> 01:30:18,750 We said this and he goes like, hey, do you remember my config card glitch attack? 1239 01:30:18,750 --> 01:30:20,230 I want to clarify. 1240 01:30:20,230 --> 01:30:22,050 This is not my attack. 1241 01:30:22,050 --> 01:30:24,210 This was true. 1242 01:30:24,970 --> 01:30:28,370 You showed it to me and you demonstrated it in your trainings and all that stuff. 1243 01:30:28,370 --> 01:30:32,890 So, I called you in the context of where we were. 1244 01:30:33,010 --> 01:30:35,090 But you had it. 1245 01:30:35,090 --> 01:30:36,490 It's your baby. 1246 01:30:36,610 --> 01:30:38,250 So, I'm like, yeah. 1247 01:30:38,770 --> 01:30:41,730 We have a config card glitch attack. 1248 01:30:41,730 --> 01:30:44,030 Okay, so what is that then? 1249 01:30:44,030 --> 01:30:45,630 How does that work? 1250 01:30:46,250 --> 01:30:53,730 Yeah, basically you simulate one, you present one card and then you present another card and Babak will demonstrate all this stuff pretty soon. 1251 01:30:53,750 --> 01:30:56,530 So, I have to refactor all things again and do that. 1252 01:30:56,530 --> 01:30:58,890 And then do that to standalone mode. 1253 01:30:58,890 --> 01:31:06,550 We achieve another thing unlocked and we now have a first ever implementation of a glitching config attack in a standalone mode for Poxbox. 1254 01:31:06,750 --> 01:31:13,130 And we call this standalone mode HF Ice Class because we really love the way naming things. 1255 01:31:13,130 --> 01:31:15,470 Instead of I-Class, we call it Ice Class. 1256 01:31:15,470 --> 01:31:16,550 Because of me. 1257 01:31:17,570 --> 01:31:21,290 However, this little mode only works on Proxmox AutoV4. 1258 01:31:21,290 --> 01:31:29,610 It saves files to the on-board store memory, which will look like this. 1259 01:31:29,610 --> 01:31:32,410 I will explain the four different modes. 1260 01:31:32,630 --> 01:31:35,510 Basically, you upload, you have a dump of your credential before. 1261 01:31:35,510 --> 01:31:36,770 You talked about secure storage. 1262 01:31:36,770 --> 01:31:38,390 You dump it with Proxmox. 1263 01:31:38,390 --> 01:31:39,250 You read it off. 1264 01:31:39,490 --> 01:31:45,770 You send it up to the flash memory and then you just start the standalone mode and it simulates it. 1265 01:31:45,770 --> 01:31:48,710 It keeps on simulating just before but it's a complete standalone. 1266 01:31:48,850 --> 01:31:54,070 You press the button to exit and then it saves a copy of that emulated memory. 1267 01:31:54,070 --> 01:32:04,070 So you have, as you see, you have the original bin that you were simulating the dump and then you have a modified so you can see what the reader did to update it or if it did any updates to it. 1268 01:32:04,070 --> 01:32:07,330 Usually the EPRS of course but it could have changed the PACS data. 1269 01:32:07,670 --> 01:32:09,510 So it's a good thing to have. 1270 01:32:10,130 --> 01:32:11,070 Next. 1271 01:32:12,790 --> 01:32:17,610 The reader attack is based on the elite recovery attack. 1272 01:32:17,610 --> 01:32:26,650 It's a two-phase attack which you need the online part where you send and emulate some CSM and you recover that data, store it to a file. 1273 01:32:27,370 --> 01:32:29,510 And it's a very simple one. 1274 01:32:30,010 --> 01:32:33,210 Since you have the simulation in place, it's very simple to do. 1275 01:32:33,210 --> 01:32:48,790 So as you say that you want to do this attack, you put the CSM on there and you present this to an elite configured reader and it collects the data very fast and it quits the standalone mode and you can go to the next reader and do the same thing. 1276 01:32:48,790 --> 01:32:52,570 Start the standalone mode and collect this data from those and do that over and over again. 1277 01:32:52,610 --> 01:33:00,230 Then you go home and you download it from the memory of the Proxmox and you run the low-class attack and we collect the data and recover the key. 1278 01:33:00,230 --> 01:33:05,470 Super simple, all of a sudden very much more useful for pen tests and all that other stuff. 1279 01:33:05,470 --> 01:33:06,570 Fun attacks! 1280 01:33:08,450 --> 01:33:10,590 The third one is a read and dump. 1281 01:33:10,670 --> 01:33:19,810 It's just a plain simple one for people you want to see go on snooping things credentialed secretly on the toilet, what I've seen someone do with these major antennas. 1282 01:33:19,810 --> 01:33:34,710 Now you can do it with your large HF antenna or battery and you just present it and it just you start it and it starts reading and it starts dumping and you press the button to quit it and it saves all the dumps it finds it saves it to the flash memory. 1283 01:33:34,710 --> 01:33:36,910 As you see here, it has two cards I presented to it. 1284 01:33:36,910 --> 01:33:40,610 It goes kind of fast, it takes a quarter of a second to do it. 1285 01:33:40,730 --> 01:33:44,110 And the glitch and config card... We'll just do a live demo. 1286 01:33:44,810 --> 01:33:45,850 Yeah, yeah, yeah. 1287 01:33:45,990 --> 01:33:47,250 We'll do a live demo, yeah. 1288 01:33:47,530 --> 01:34:11,810 So for glitch and config, what I was explaining before I really cut him off, is that the short version behind the glitch is that there was in two of the most popular versions of firmware of legacy iClass readers, there was a bug in the firmware that if the card was programmed a certain way the card misbehaved, 1289 01:34:11,810 --> 01:34:18,410 the reader would lock up, get confused, and then a watchdog timer would kick in and reboot the reader. 1290 01:34:18,410 --> 01:34:19,950 Normally it's not a big deal. 1291 01:34:19,950 --> 01:34:22,050 Reader reboots still works, no problem. 1292 01:34:22,050 --> 01:34:35,690 However, once you remember that configuration cards can only be used right after the reader boots up, now you have an attack chain that you can use to reconfigure the reader without ever actually taking the reader off the wall. 1293 01:34:35,690 --> 01:34:38,870 And we're going to do a demo of some of the things that you can do with that. 1294 01:34:39,110 --> 01:34:41,470 So now we have 30 minutes for live demos. 1295 01:34:41,470 --> 01:34:46,090 We're going to go very, very, very fast. 1296 01:34:46,090 --> 01:34:47,930 As fast as I reasonably can. 1297 01:34:48,350 --> 01:34:50,510 We worked hard to make this happen for them. 1298 01:34:50,670 --> 01:34:55,050 You have to understand it's been two long months. 1299 01:34:55,050 --> 01:35:04,390 So, I'm going to go fast because RF Hacker Sanctuary is going to kick us off in half an hour sharp. 1300 01:35:04,870 --> 01:35:09,650 So, we can talk about this more later in the Discord channel or elsewhere. 1301 01:35:09,650 --> 01:35:15,370 So, first thing we're going to do, we're going to talk about that tech downgrade attack that I was talking about. 1302 01:35:15,370 --> 01:35:21,190 So, for example we're going to take this reader we had before. 1303 01:35:27,810 --> 01:35:34,090 It's been an intensive month for us to do this and we're really psyched to show you off all of this stuff actually. 1304 01:35:34,090 --> 01:35:35,790 I did not get much sleep. 1305 01:35:36,450 --> 01:35:37,290 Alright. 1306 01:35:37,650 --> 01:35:45,610 So, we have this reader and if you recall, that reader reads multiple credential technologies. 1307 01:35:45,610 --> 01:35:48,110 So, it reads Prox. 1308 01:35:48,490 --> 01:35:50,810 It reads Indala. 1309 01:35:51,730 --> 01:35:56,570 This one also, you know, it reads I-Class. 1310 01:35:56,570 --> 01:35:59,450 And it also reads SEOS. 1311 01:35:59,450 --> 01:36:02,230 I have a SEOS card here. 1312 01:36:02,230 --> 01:36:05,730 He's actually a Desfire card. 1313 01:36:05,730 --> 01:36:06,530 Right. 1314 01:36:06,530 --> 01:36:11,490 And here is a SEOS card here. 1315 01:36:11,730 --> 01:36:16,050 For you who don't understand this , this is a very amazing reader. 1316 01:36:17,470 --> 01:36:28,030 So, what we're going to do is show you how to take a secure credential that we don't know how to talk to and copy it to a weaker credential technology. 1317 01:36:28,310 --> 01:36:31,850 So, we're going to start with, right now this is blank, so it does nothing. 1318 01:36:31,850 --> 01:36:33,750 We'll set that right next to the reader. 1319 01:36:34,130 --> 01:36:41,530 And by way of example, what we're going to do is we're going to grab we're going to start with, we're going to pick on Desfire . 1320 01:36:41,530 --> 01:36:43,190 Actually, yeah. 1321 01:36:43,550 --> 01:36:45,150 So, we have two cards here. 1322 01:36:45,270 --> 01:36:48,570 We have Desfire Evolution 1 and an example of a SEOS card. 1323 01:36:48,570 --> 01:36:50,150 There's nothing special about these cards. 1324 01:36:50,150 --> 01:36:52,970 They were ordered through a regular supplier. 1325 01:36:52,970 --> 01:36:55,210 This is a regular, you know, customer card. 1326 01:36:56,090 --> 01:36:58,510 And they work with the system. 1327 01:36:59,890 --> 01:37:01,450 So, that's one card. 1328 01:37:01,530 --> 01:37:02,910 That's the other card. 1329 01:37:02,950 --> 01:37:10,910 And so, if you are an attacker, you might think, okay, the first thing I'm going to do is I'm going to go to my Proxmark and I'm going to switch here. 1330 01:37:10,910 --> 01:37:11,830 There we go. 1331 01:37:11,830 --> 01:37:13,190 So, I'm going to go to my Proxmark. 1332 01:37:13,190 --> 01:37:17,210 I'm going to type in hfsearch and oh, crap. 1333 01:37:17,210 --> 01:37:21,530 It's, you know, some sort of oh, that's right. 1334 01:37:21,530 --> 01:37:24,730 This is this card emulates multiple technologies. 1335 01:37:24,850 --> 01:37:25,350 So, okay. 1336 01:37:25,350 --> 01:37:32,290 This is a 14a card that rather, it's a Java card that uses 14a commands to communicate. 1337 01:37:32,290 --> 01:37:35,030 Short version, we don't know how to talk to it. 1338 01:37:35,490 --> 01:37:37,550 Here's a Desfire credential. 1339 01:37:41,720 --> 01:37:43,360 There's a Desfire card. 1340 01:37:43,520 --> 01:37:45,360 Again, we don't know the keys. 1341 01:37:45,360 --> 01:37:48,900 We don't know how to read the data off of these cards. 1342 01:37:48,900 --> 01:37:50,940 But the reader does, right? 1343 01:37:50,940 --> 01:38:03,300 So, what I can do is I can take this reader, and remember, this special reader is showing me, because of this little add-on here, it's showing me the WeGand data that's on that reader. 1344 01:38:03,300 --> 01:38:08,780 So, what I can do is I can say, take this CEOS card. 1345 01:38:09,480 --> 01:38:16,340 I can read it, and I can see, oh, that WeGand data is 2547 E76. 1346 01:38:18,400 --> 01:38:22,800 So, we're going to come back here to DopePad. 1347 01:38:29,660 --> 01:38:31,780 So, I'm going to type it again. 1348 01:38:31,780 --> 01:38:32,920 Pardon me. 1349 01:38:33,520 --> 01:38:39,320 So, this is 2547 Echo 76. 1350 01:38:42,780 --> 01:38:48,460 And I'm going to convert that to binary. 1351 01:38:48,540 --> 01:38:49,040 Whoops . 1352 01:38:50,820 --> 01:38:52,260 There we go. 1353 01:38:56,450 --> 01:39:01,530 And let me just make sure that we have 26 bits. 1354 01:39:01,530 --> 01:39:02,110 We do. 1355 01:39:02,110 --> 01:39:02,810 Good. 1356 01:39:02,890 --> 01:39:15,290 The next thing that I'm going to kind of gloss over here, those of you who are familiar with the Proxmark and know Prox, Prox credentials have a preamble that is necessary to use when programming it with the Proxmark. 1357 01:39:15,290 --> 01:39:16,670 So, that's what I'm doing here. 1358 01:39:16,670 --> 01:39:23,430 What I've done is I've just added this preamble that the Proxmark client requires in order to encode Prox credentials. 1359 01:39:23,730 --> 01:39:30,230 And I'm going to take this string and I'm going to encode it back into hex. 1360 01:39:30,230 --> 01:39:38,530 So, the hex value that we're going to write in our Proxmark client is this, this 2006547 Echo 76. 1361 01:39:38,850 --> 01:40:02,810 So, now, we're going to pop back over to our Proxmark client, and we're going to take this low frequency T5577 and there we go, fit on camera there and we'll run LF HID clone and then this new value and then I'll double check my work to make sure it's there. 1362 01:40:03,190 --> 01:40:04,990 Yep, that's there. 1363 01:40:04,990 --> 01:40:10,610 So, if I did this correctly, now, these two cards should be the same. 1364 01:40:10,610 --> 01:40:13,410 So, let's switch back to our BigView camera 1365 01:40:17,550 --> 01:40:21,070 and I'm going to... I know you can't see the top of the reader, but that's okay. 1366 01:40:21,070 --> 01:40:24,130 So, here's our original credential. 1367 01:40:24,490 --> 01:40:27,710 There's our WGAN data, 2547 Echo 76. 1368 01:40:27,710 --> 01:40:30,730 Let's go ahead and try our Prox card. 1369 01:40:32,150 --> 01:40:36,070 Same data, 2547 Echo 76. 1370 01:40:36,270 --> 01:40:39,190 This is the data that the door controller is seeing. 1371 01:40:39,190 --> 01:40:52,390 So, what that means is that right now, as far as the door controller is concerned, this very, very secure and much more expensive credential is equivalent in security access in all things to this one. 1372 01:40:52,390 --> 01:40:57,550 And it's only because this reader was left in transition mode. 1373 01:40:57,550 --> 01:41:04,690 It was left in the mode that allows it to read other, more secure credential types that we do know how to talk to. 1374 01:41:04,690 --> 01:41:17,330 So, even when we're dealing with secure credentials, as it relates to access control, sometimes we can find other ways of re-encoding that credential data onto something else and making it work with the reader. 1375 01:41:18,810 --> 01:41:24,330 So, same demo, super fast, with DESFire. 1376 01:41:24,330 --> 01:41:26,170 So, here is... 1377 01:41:26,170 --> 01:41:28,450 here's our DESFire credential. 1378 01:41:28,970 --> 01:41:31,370 This has different WGAN data. 1379 01:41:31,370 --> 01:41:35,490 This one is 1 Bravo 5 Delta Bravo 6 Delta. 1380 01:41:35,650 --> 01:41:40,030 And we're going to switch back to our notepad here. 1381 01:41:41,450 --> 01:41:44,370 And we're going to run through this super quick. 1382 01:41:44,430 --> 01:41:46,570 So, we'll just delete all this. 1383 01:41:46,570 --> 01:41:48,090 So, now we're going to do this credential. 1384 01:41:48,090 --> 01:41:55,870 We're going to do 1 Bravo 5 Delta Bravo 6 Delta. 1385 01:41:56,990 --> 01:41:59,170 And we're going to copy that. 1386 01:41:59,430 --> 01:42:03,650 We're going to convert that to WGAN. 1387 01:42:05,250 --> 01:42:09,190 And it looks like it dropped a leading zero, so we're going to add that back in. 1388 01:42:09,190 --> 01:42:11,230 I only saw 25 bits. 1389 01:42:12,030 --> 01:42:19,570 And we're also going to add our prox preamble here. 1390 01:42:20,710 --> 01:42:25,410 And then we're going to convert that back to weekend. 1391 01:42:25,730 --> 01:42:30,050 Sorry, back to the format that the proxmark3 is going to expect. 1392 01:42:30,590 --> 01:42:33,750 And, again, we're going to do the same thing. 1393 01:42:33,750 --> 01:42:47,680 We're going to take our proxmark, run lf.hid.clone and then this value. 1394 01:42:47,680 --> 01:42:49,540 Make sure it wrote. 1395 01:42:49,820 --> 01:42:50,960 Looks good. 1396 01:42:50,960 --> 01:42:52,240 Let's try it. 1397 01:42:53,780 --> 01:42:56,280 So, switching back here. 1398 01:42:57,900 --> 01:43:00,480 Here's our DESFire credential. 1399 01:43:00,520 --> 01:43:04,780 We have 1 Bravo 5 Delta Bravo 6 Delta access granted. 1400 01:43:04,780 --> 01:43:06,460 Here's our prox credential. 1401 01:43:07,120 --> 01:43:08,540 Same credential. 1402 01:43:08,540 --> 01:43:10,900 1 Bravo 5 Delta Bravo 6 Delta. 1403 01:43:10,900 --> 01:43:15,180 So, again, two different examples, different card technologies completely, right? 1404 01:43:15,180 --> 01:43:16,660 We did not crack DESFire. 1405 01:43:16,660 --> 01:43:18,240 We did not crack CEOS. 1406 01:43:18,240 --> 01:43:26,520 What we did is we took advantage of a configuration in the system that was not changed after the transition or the migration was complete. 1407 01:43:26,520 --> 01:43:30,260 So, that's the entire concept behind a technology downgrade attack. 1408 01:43:30,260 --> 01:43:42,720 It's something that not everyone really thinks about very often and it's crucial to be aware of as customers, as integrators, as installers in defending the system because it really undermines the security of the system otherwise. 1409 01:43:43,760 --> 01:43:44,780 All right. 1410 01:43:44,960 --> 01:43:47,280 So, now we're going to move on to... 1411 01:43:52,440 --> 01:43:53,480 Let's do... 1412 01:43:53,480 --> 01:43:56,740 Let me just show config cards, actually, because it's related. 1413 01:43:56,760 --> 01:43:57,620 So, let's say... 1414 01:43:57,620 --> 01:44:00,120 Let's say, like, okay, well, you know what? 1415 01:44:00,120 --> 01:44:02,380 We disabled those old credentials. 1416 01:44:02,380 --> 01:44:03,380 So, we're fine. 1417 01:44:03,380 --> 01:44:04,640 So, we're secure, right? 1418 01:44:04,640 --> 01:44:08,620 So, actually, I'm going to take this reader off. 1419 01:44:08,820 --> 01:44:10,520 I have a different reader. 1420 01:44:13,760 --> 01:44:16,440 And I pre-baked a cake already. 1421 01:44:16,440 --> 01:44:17,920 Yes, correct. 1422 01:44:27,720 --> 01:44:29,000 All right. 1423 01:44:29,220 --> 01:44:31,740 So , here we have a different reader . 1424 01:44:31,740 --> 01:44:35,120 And right off the bat, what we're going to notice is it says multi-class. 1425 01:44:35,120 --> 01:44:39,780 It says that it's a migration or a transition reader, but it doesn't read prox. 1426 01:44:40,480 --> 01:44:45,640 It doesn't read, if I present it, a regular iClass card . 1427 01:44:45,640 --> 01:44:46,580 Let's see here. 1428 01:44:46,580 --> 01:44:47,320 I forgot. 1429 01:44:47,320 --> 01:44:49,240 So , here's my regular iClass card. 1430 01:44:49,240 --> 01:44:51,080 It doesn't read that either. 1431 01:44:51,080 --> 01:44:55,660 It will, however, read CEOS. 1432 01:44:56,040 --> 01:44:56,560 Okay ? 1433 01:44:56,560 --> 01:44:58,080 So, right now , we're like, great. 1434 01:44:58,080 --> 01:44:59,780 This is a secure reader , right? 1435 01:44:59,780 --> 01:45:00,800 We're set. 1436 01:45:00,800 --> 01:45:05,220 However, remember, configuration cards can change the behavior of the reader. 1437 01:45:05,220 --> 01:45:19,860 So, now we have a reader that only supports CEOS, but what we can do is we can use a different configuration card to re-enable those legacy credentials. 1438 01:45:19,860 --> 01:45:21,700 So, I'm going to power cycle the reader. 1439 01:45:23,340 --> 01:45:27,600 I'm going to present the configuration card to re-enable legacy credentials. 1440 01:45:28,260 --> 01:45:32,140 It's going to take a couple of seconds as it reads that data off the card. 1441 01:45:32,340 --> 01:45:34,660 And these are standard parts, to be clear. 1442 01:45:34,660 --> 01:45:36,200 This is not an exploit. 1443 01:45:36,260 --> 01:45:40,960 This is using design-intended functionality that is available to any customer, right? 1444 01:45:40,960 --> 01:45:45,280 So, these are cards that can be ordered by customers, by integrators. 1445 01:45:45,540 --> 01:45:51,900 And now, if that card worked correctly, what we're going to see is there's my PROX, right? 1446 01:45:52,040 --> 01:45:53,680 There's my iClass. 1447 01:45:53,680 --> 01:45:54,960 It all comes back. 1448 01:45:55,500 --> 01:45:59,040 So, that is something to be mindful of. 1449 01:45:59,040 --> 01:46:08,580 Being able to take the reader off the wall and power cycle it, if you're not monitoring for that, that can be a huge gap in the system's security. 1450 01:46:08,580 --> 01:46:15,480 Because older, more secure credential technologies might be re-enabled in the reader. 1451 01:46:15,480 --> 01:46:27,980 And then, someone can just take one of those readers that can read your secure credentials and then convert that weekend data to work off of a card that you can easily read and write with a PROXmark or any other tool. 1452 01:46:28,900 --> 01:46:33,040 So, that attack, again, is... 1453 01:46:33,040 --> 01:46:35,140 I don't consider it an exploit. 1454 01:46:35,140 --> 01:46:41,220 I consider it taking advantage of misconfiguration, taking advantage of how the system was designed. 1455 01:46:41,220 --> 01:46:44,840 In fact, this issue is not unique to HID. 1456 01:46:45,660 --> 01:46:49,140 Multiple brands, many brands, have this problem. 1457 01:46:49,140 --> 01:46:53,260 So, what I have here is... 1458 01:46:53,260 --> 01:46:56,220 And I'm not going to do a full demo on this other one. 1459 01:46:56,840 --> 01:46:58,500 I'm just going to move our camera. 1460 01:47:01,580 --> 01:47:02,420 So, we have... 1461 01:47:02,420 --> 01:47:03,740 Oh, there we go. 1462 01:47:03,740 --> 01:47:04,840 It's a little jittery. 1463 01:47:04,840 --> 01:47:05,760 My apologies. 1464 01:47:05,900 --> 01:47:07,880 So, we have a different branded reader. 1465 01:47:07,880 --> 01:47:09,420 This is just an example. 1466 01:47:09,420 --> 01:47:11,160 Again, I want to be clear. 1467 01:47:11,160 --> 01:47:12,880 We're not picking on any one brand . 1468 01:47:12,880 --> 01:47:16,280 This is just something to be aware of as far as systems can be designed. 1469 01:47:16,440 --> 01:47:30,300 So , right now, this card reader will read and beep on both high frequency contactless smart cards and low frequency cards. 1470 01:47:30,300 --> 01:47:34,740 So, it's reading both this Mindfair card and this Prox card. 1471 01:47:35,590 --> 01:47:37,160 So, there we go. 1472 01:47:38,860 --> 01:47:40,600 I can't fit everything. 1473 01:47:40,600 --> 01:47:41,460 Hold on. 1474 01:47:42,620 --> 01:47:44,260 Yeah, you can do it. 1475 01:47:44,860 --> 01:47:46,340 There we go. 1476 01:47:46,840 --> 01:47:57,980 So, again, I can power cycle the reader and I can use a different configuration card to disable proximity. 1477 01:47:57,980 --> 01:48:08,480 Now, when that reader reboots, it reads Mindfair as expected, and that's fine, but it's not going to read this Prox card. 1478 01:48:09,420 --> 01:48:12,900 So, let's say a customer has that in a secure configuration. 1479 01:48:12,900 --> 01:48:24,960 Again, if you're not monitoring your tamper sensors, someone can come back and re-enable proximity, and now they're able to use Prox credentials again. 1480 01:48:24,960 --> 01:48:35,880 So, monitoring those tamper sensors on the back of the reader is very, very important, because it's the only way to defend against knowing when these types of manipulations take place. 1481 01:48:36,560 --> 01:48:38,080 Yep, very true. 1482 01:48:38,080 --> 01:48:39,940 Alright, our next demo. 1483 01:48:39,940 --> 01:48:41,520 So many demos, all the demos. 1484 01:48:41,520 --> 01:48:43,440 Okay, we have 15 minutes. 1485 01:48:43,440 --> 01:48:44,360 Holy crap. 1486 01:48:44,360 --> 01:48:45,860 This is going to be interesting. 1487 01:48:45,860 --> 01:48:51,140 Alright, let me grab the camera again. 1488 01:48:51,140 --> 01:48:53,500 It's going to be the best 15 minutes ever. 1489 01:48:53,500 --> 01:48:54,600 Yep. 1490 01:48:58,930 --> 01:49:01,170 In the RFID hacking. 1491 01:49:01,290 --> 01:49:07,330 Alright, so we have our different readers already set up. 1492 01:49:07,870 --> 01:49:21,190 So we have our stand-alone reader mode, our stand-alone full simulator mode, our stand-alone low-class attack mode, and our stand-alone config card mode. 1493 01:49:22,470 --> 01:49:25,390 Iceman, we're not going to be able to finish all of our demos. 1494 01:49:25,390 --> 01:49:28,230 No, yes, take the config card first. 1495 01:49:28,230 --> 01:49:30,230 You wanted the config card one first, okay. 1496 01:49:30,230 --> 01:49:31,190 Yeah, yeah, yeah. 1497 01:49:31,190 --> 01:49:33,490 Okay, so you have... 1498 01:49:34,530 --> 01:49:35,670 That's a cool one. 1499 01:49:35,670 --> 01:49:37,210 I mean... 1500 01:49:38,810 --> 01:49:41,730 The rest is what we could do with a client before. 1501 01:49:41,730 --> 01:49:45,130 Alright, so I'm just going to explain what's happening. 1502 01:49:45,130 --> 01:49:47,070 Put some of these aside. 1503 01:49:47,490 --> 01:49:49,430 And we're going to power these readers on. 1504 01:49:51,720 --> 01:49:52,560 Alright. 1505 01:49:52,560 --> 01:49:54,360 So this is a fun attack. 1506 01:49:55,240 --> 01:50:01,320 The reason this is a fun attack is because this is a very interesting model of service attack. 1507 01:50:01,320 --> 01:50:05,640 So right now, we have two I-class readers. 1508 01:50:05,640 --> 01:50:08,340 These are older legacy readers. 1509 01:50:08,340 --> 01:50:10,500 These are not modern readers. 1510 01:50:10,500 --> 01:50:12,080 These are revision C. 1511 01:50:12,080 --> 01:50:14,600 So anything produced before 2012. 1512 01:50:14,600 --> 01:50:18,000 And it reads standard I-class cards. 1513 01:50:18,000 --> 01:50:20,020 So users can use that normally. 1514 01:50:20,500 --> 01:50:25,960 What we're going to do is we're going to do an attack where we're going to glitch one reader. 1515 01:50:26,040 --> 01:50:29,900 We're going to automatically reboot it using the glitch. 1516 01:50:29,900 --> 01:50:35,580 And then use the configuration card to put the reader in something called key rolling mode. 1517 01:50:35,580 --> 01:50:41,280 Key rolling mode is supposed to help you transition from a standard key to a high security key. 1518 01:50:41,680 --> 01:50:48,480 And when you do that, the reader talks to both old cards, and then if it finds an old key, it updates it to the new one. 1519 01:50:49,260 --> 01:50:57,260 The issue is, if all the readers aren't in that mode, then the key on the card gets changed to one of the second reader that doesn't necessarily understand. 1520 01:50:57,420 --> 01:51:01,160 So what I'm going to do is I'm going to present my proxmark. 1521 01:51:01,420 --> 01:51:03,000 It's going to glitch the reader. 1522 01:51:03,440 --> 01:51:04,220 Oh, I have to. 1523 01:51:04,220 --> 01:51:04,620 Hold on. 1524 01:51:04,620 --> 01:51:06,040 I have to put it in the standard mode. 1525 01:51:06,380 --> 01:51:07,420 There we go. 1526 01:51:08,240 --> 01:51:09,700 So I'm going to present this here. 1527 01:51:09,720 --> 01:51:11,320 It's going to glitch the reader. 1528 01:51:11,320 --> 01:51:12,620 The reader is going to reboot. 1529 01:51:12,620 --> 01:51:13,900 There's the first reboot. 1530 01:51:13,900 --> 01:51:18,080 Now the proxmark is going to emulate a key roll configuration card. 1531 01:51:18,140 --> 01:51:19,600 That's complete. 1532 01:51:19,880 --> 01:51:22,860 And here's... let's pretend this is the exterior door. 1533 01:51:22,860 --> 01:51:24,740 This is the door on the inside. 1534 01:51:24,740 --> 01:51:27,640 So here's the same card. 1535 01:51:28,060 --> 01:51:30,060 It works on the first reader. 1536 01:51:30,060 --> 01:51:34,680 And now at this point, the key in this card has been changed. 1537 01:51:35,140 --> 01:51:37,780 And it will not work on the second reader. 1538 01:51:37,780 --> 01:51:40,000 It will only work on that first reader. 1539 01:51:43,240 --> 01:51:45,160 It's such a meme . 1540 01:51:46,860 --> 01:51:47,820 Alright . 1541 01:51:48,000 --> 01:51:51,500 What's the next stupid thing that we can move to here? 1542 01:51:52,420 --> 01:51:54,080 So yeah , full simulation. 1543 01:51:54,080 --> 01:51:58,120 We're not going to go into it right now because we are so gosh darn short on time. 1544 01:51:58,120 --> 01:51:59,040 Low class . 1545 01:51:59,040 --> 01:51:59,980 Low class. 1546 01:52:00,480 --> 01:52:01,300 Yeah, yeah, yeah. 1547 01:52:01,300 --> 01:52:04,800 So actually we have an elite reader . 1548 01:52:10,810 --> 01:52:16,350 Actually, I'm realizing that the camera doesn't like to be far away from the computer. 1549 01:52:16,350 --> 01:52:20,750 So I'm just going to move this all really, really close. 1550 01:52:21,070 --> 01:52:22,170 There we go. 1551 01:52:22,170 --> 01:52:23,390 Much better. 1552 01:52:23,630 --> 01:52:28,330 So this is an example of an elite reader. 1553 01:52:31,210 --> 01:52:40,310 And as it stands right now, it does not read standard I-class cards. 1554 01:52:40,310 --> 01:52:42,690 So here's an example of a standard I-class card. 1555 01:52:42,690 --> 01:52:47,010 It won't read because it's not using the high security key. 1556 01:52:47,010 --> 01:52:51,490 Here's an elite key designed for that system that reads. 1557 01:52:53,290 --> 01:52:58,590 What we're going to do is switch here so we can see the debug data. 1558 01:53:00,790 --> 01:53:05,390 And we're going to hold down our button to enter standalone mode. 1559 01:53:05,770 --> 01:53:09,650 And so right now, all I have to do is just wave this over the reader. 1560 01:53:10,370 --> 01:53:11,610 And that's it. 1561 01:53:11,610 --> 01:53:15,790 So now it's saved that Mac attack file. 1562 01:53:16,390 --> 01:53:18,510 And I can grab that. 1563 01:53:34,650 --> 01:53:36,650 What did I do wrong? 1564 01:53:37,590 --> 01:53:39,810 There sure is. 1565 01:53:43,170 --> 01:53:44,090 Alright. 1566 01:53:44,090 --> 01:53:47,070 And now we just operate the low class attack normally. 1567 01:53:47,070 --> 01:53:52,110 So we'll do HFI class, low class, and then the file name. 1568 01:53:54,920 --> 01:53:57,120 Oh, you're running that version. 1569 01:53:57,140 --> 01:53:58,860 I'm running FPGA, yes. 1570 01:54:02,110 --> 01:54:04,090 So it's not going to take very long. 1571 01:54:04,090 --> 01:54:06,370 It's only going to take us about 30 seconds or so. 1572 01:54:06,370 --> 01:54:08,130 And that's going to crack the key. 1573 01:54:08,130 --> 01:54:11,970 So now we have the high security key that was in that reader. 1574 01:54:12,030 --> 01:54:22,030 And now if I wanted to, I could take this elite card that worked on that and I can do HFI class dump. 1575 01:54:23,330 --> 01:54:26,370 Specify the elite key without spaces. 1576 01:54:29,400 --> 01:54:31,380 Make sure to tell it it's elite. 1577 01:54:32,160 --> 01:54:34,280 And there is our data for the card. 1578 01:54:37,420 --> 01:54:40,460 So, that's your standalone low class attack. 1579 01:54:41,160 --> 01:54:41,880 Yeah. 1580 01:54:41,880 --> 01:54:46,260 With a battery, just walk around with it and collect from different readers. 1581 01:54:46,380 --> 01:54:48,060 What can we fit in 10 minutes? 1582 01:54:48,940 --> 01:54:53,440 We did an out of service, we did a check downgrade, we did key recovery. 1583 01:54:53,780 --> 01:54:57,780 Should we show the special door controller zero day that was sent to us? 1584 01:54:57,920 --> 01:54:58,620 Yes! 1585 01:55:00,180 --> 01:55:01,520 It's really cool. 1586 01:55:01,520 --> 01:55:06,220 So first of all, I want to make sure the link gets out there. 1587 01:55:06,680 --> 01:55:18,740 This repository contains an unpatched vulnerability in a semi -common, not super common, semi-common single door controller. 1588 01:55:19,580 --> 01:55:21,480 And I'm going to show you how that works. 1589 01:55:21,480 --> 01:55:25,880 So this exploit has been reported to the vendor that was about nine months ago. 1590 01:55:25,880 --> 01:55:31,660 And then the person who discovered the exploit reached out and said, hey, I'm kind of done with this. 1591 01:55:31,660 --> 01:55:35,260 I want it to be public, but I don't really feel like doing a talk. 1592 01:55:35,260 --> 01:55:37,280 Which is totally fine and reasonable. 1593 01:55:37,280 --> 01:55:45,690 So, we got their demo board, their demo kit here to show you, to show everyone how this works. 1594 01:55:45,930 --> 01:55:53,570 What's important to mention here is I'm really big on not picking on individual vendors because this is an industry problem. 1595 01:55:53,570 --> 01:55:59,310 The type and category of exploit that you're going to see on this demo is common, actually. 1596 01:55:59,310 --> 01:56:01,190 It's not unique to this situation. 1597 01:56:01,190 --> 01:56:11,710 I've seen variations of this, both published and unpublished, for at least five or six different vendors of door controllers, of software. 1598 01:56:11,710 --> 01:56:18,670 And you're just going to see what can happen when these systems aren't properly protected and patched. 1599 01:56:18,750 --> 01:56:26,390 So, let's go ahead and again switch all this stuff out of the way. 1600 01:56:31,310 --> 01:56:34,690 We'll see if the camera can keep up. 1601 01:56:34,750 --> 01:56:36,790 I don't know if it will. 1602 01:56:42,870 --> 01:56:45,170 It's really, really jittery. 1603 01:56:45,170 --> 01:56:46,950 My apologies to folks. 1604 01:56:46,950 --> 01:56:55,370 Well, we've got less than ten minutes, so they get jitter and hoard nothing. 1605 01:57:14,950 --> 01:57:19,570 Before we end up, some questions about the Q&A. 1606 01:57:19,770 --> 01:57:27,810 Did you get something from Wireless Village, the Ricks of Wasabi, about where Q&A is possible to do? 1607 01:57:27,810 --> 01:57:28,730 Was that in Discord? 1608 01:57:28,730 --> 01:57:31,110 No, but we can do it in our Discord. 1609 01:57:31,110 --> 01:57:31,990 I don't know. 1610 01:57:32,010 --> 01:57:33,550 Yeah, we can do Discord, yeah. 1611 01:57:37,210 --> 01:57:39,090 Alright, I will do that soon. 1612 01:57:39,090 --> 01:57:44,290 I can let you guys know if you see that I'm not paying attention. 1613 01:57:44,870 --> 01:57:55,170 Alright, so what we're looking at here is two Proxcard readers connected to a single door controller, and here's our user Alice. 1614 01:57:55,410 --> 01:58:03,850 And Alice can badge in, and this green LED represents the door strike. 1615 01:58:05,550 --> 01:58:08,530 I'm realizing that people can't see me, but that's okay. 1616 01:58:08,530 --> 01:58:11,070 So this green LED here represents the door strike. 1617 01:58:11,070 --> 01:58:12,310 So here we go. 1618 01:58:12,350 --> 01:58:13,450 That's fine. 1619 01:58:13,450 --> 01:58:16,330 And in fact, our log... 1620 01:58:16,330 --> 01:58:19,150 This is so tricky. 1621 01:58:19,150 --> 01:58:20,110 My apologies. 1622 01:58:20,350 --> 01:58:21,290 So our log... 1623 01:58:22,350 --> 01:58:25,310 I'm just going to explain what's happening, because we're tight on time. 1624 01:58:25,310 --> 01:58:28,210 I realize the camera won't be able to show the screen, unfortunately. 1625 01:58:28,210 --> 01:58:30,470 So my sincere apologies to folks there. 1626 01:58:30,570 --> 01:58:35,010 But some mics say Alice can get in, Alice can get out. 1627 01:58:35,630 --> 01:58:40,850 Bob wasn't doing so great on their employee performance, so they've been fired. 1628 01:58:41,050 --> 01:58:43,010 Their badge no longer works. 1629 01:58:45,390 --> 01:58:56,130 Mallory, our malicious attacker, is really interested in what App Incorporation is working on, but unfortunately they can't get in either. 1630 01:58:56,890 --> 01:59:01,670 So what we're going to do is we're going to plug in this exploit stick. 1631 01:59:03,710 --> 01:59:08,070 And this is actually just a unified cloud key that's been repurposed. 1632 01:59:08,070 --> 01:59:10,770 It's just a little Debian box with a POE port on it. 1633 01:59:10,770 --> 01:59:14,630 It's been repurposed to execute a very fun exploit. 1634 01:59:14,630 --> 01:59:20,810 So this is going to do an ArcCache poisoning attack automatically when it boots up. 1635 01:59:20,810 --> 01:59:24,390 It's going to look for this type of door controller. 1636 01:59:24,650 --> 01:59:26,990 It's going to poison the ArcCache. 1637 01:59:26,990 --> 01:59:30,770 It's going to force the door controller to connect to it. 1638 01:59:31,370 --> 01:59:40,750 And then this will then connect to the system monitoring software, which is actually here in the background. 1639 01:59:40,750 --> 01:59:51,430 Unfortunately, I don't have a great setup to show the data that's happening on this laptop here, so my sincere apologies there as well. 1640 01:59:52,490 --> 01:59:56,230 But we're just going to wait another 10 or 15 more seconds. 1641 01:59:56,250 --> 02:00:00,750 And what I'm waiting for is a light here to start flashing. 1642 02:00:00,870 --> 02:00:09,310 So during this time, what will happen in the log is in the event log, I'm going to try. 1643 02:00:09,310 --> 02:00:12,070 I know I said it's not going to work well, but we're going to try. 1644 02:00:12,670 --> 02:00:19,630 Alright, so in the event log, we're going to see that the door controller briefly went offline and then came back online. 1645 02:00:19,830 --> 02:00:22,630 And that was the attack tool running. 1646 02:00:23,710 --> 02:00:28,310 Temporarily taking the door controller offline and then bringing it back online. 1647 02:00:28,990 --> 02:00:31,330 So here we can see the light flashing. 1648 02:00:31,610 --> 02:00:35,770 There's only one flash, which tells us it only found one door controller to take over. 1649 02:00:35,770 --> 02:00:38,630 And everything continues working normally. 1650 02:00:38,630 --> 02:00:41,650 So the door controller still has credentials cached. 1651 02:00:41,650 --> 02:00:44,950 Alice can still get in normally. 1652 02:00:45,930 --> 02:00:47,810 Bob is still fired. 1653 02:00:47,810 --> 02:00:50,070 Bob, they can't get in. 1654 02:00:50,070 --> 02:00:54,970 But something interesting happens now when Mallory scans their credential. 1655 02:00:54,970 --> 02:01:04,450 When Mallory scans their credential, that invalid access attempt is going to go out over the network to this exploit device. 1656 02:01:04,710 --> 02:01:14,350 It's going to see that it's Mallory's card, and it's going to manually tell that door controller to unlock the door for several seconds. 1657 02:01:14,390 --> 02:01:21,930 In the meantime, it is not going to forward Mallory's attempt to get in to the system software, to the server. 1658 02:01:21,930 --> 02:01:26,570 So there will be no log entry of any kind for any of Mallory's attempts. 1659 02:01:26,570 --> 02:01:28,530 So here is Mallory's card. 1660 02:01:29,710 --> 02:01:33,170 And they have access down here to the door strike. 1661 02:01:34,210 --> 02:01:36,750 And, of course, they can get out as well. 1662 02:01:39,650 --> 02:01:44,250 And, again, remember, Alice's credential still works. 1663 02:01:44,970 --> 02:01:57,890 And what we'll notice is that the only log information that we see here is related to the real system credentials, that the exploit tool is not filtering out. 1664 02:01:58,130 --> 02:02:00,910 It's just the Alice and Bob credentials. 1665 02:02:00,910 --> 02:02:06,370 So it is actively filtering everything related to Mallory. 1666 02:02:07,170 --> 02:02:11,770 And you might be curious, well, what happens when you unplug this? 1667 02:02:11,770 --> 02:02:20,070 After a few minutes, the door controller reconnects back to the original server, and everything continues working as expected. 1668 02:02:20,070 --> 02:02:27,390 So this is this specific exploit is in that GitHub link that we mentioned here. 1669 02:02:27,710 --> 02:02:28,910 If you're interested in it... 1670 02:02:29,790 --> 02:02:38,370 We got lenient, so we have... it's not a hard stop, so we can make a nice exit. 1671 02:02:38,470 --> 02:02:40,170 Good enough. 1672 02:02:41,410 --> 02:02:47,390 So, if you want to read more about it, the code is published here in this GitHub repository. 1673 02:02:48,470 --> 02:02:51,410 It's something that I really want to stress. 1674 02:02:51,910 --> 02:02:55,030 This category of exploit is not unique to this vendor. 1675 02:02:55,030 --> 02:03:08,250 It's something that we've seen time and time again over the years, but it's such a great, beautiful example of what happens when we treat network-enabled devices as if they're not network-enabled devices. 1676 02:03:08,970 --> 02:03:14,970 So, definitely, if you are in this section here, I'm going to talk about mitigations. 1677 02:03:14,970 --> 02:03:16,790 So , we'll just... yeah, there we go. 1678 02:03:16,790 --> 02:03:19,570 So, overall defenses and mitigations. 1679 02:03:19,710 --> 02:03:31,270 I see I didn't add here my biggest mitigation for door controllers, which is assume that your door controller is super insecure, and that if anyone is able to talk to it, they're able to compromise it. 1680 02:03:31,270 --> 02:03:44,530 That may not actually be the case, but if you assume that when you're designing the system, whether you're a customer or you're an integrator, that will minimize the risk related to these types of exploits, these types of attacks. 1681 02:03:44,630 --> 02:03:59,070 If you want to prevent credential interception by things like the ESP key or the BLE key, what you want to use is OSDP version 2 with secure channel to encrypt the communications between the reader and the door controller. 1682 02:03:59,290 --> 02:04:04,730 If you want to resist cloning, you want to use secure credential with secure objects. 1683 02:04:04,730 --> 02:04:21,570 We don't have time to get into it, but short description, secure objects are basically ways of cryptographically encrypting and signing that PACS payload and tying it to the serial number of that card, which makes it harder to duplicate or compromise later. 1684 02:04:22,190 --> 02:04:31,350 If you want to resist tech downgrade attacks, if you want to just know if people are messing with your readers, those tamper switches are super important to monitor. 1685 02:04:31,630 --> 02:04:36,930 There are a couple of different solutions that you can employ to actually stop attacks cold when they happen. 1686 02:04:36,930 --> 02:04:53,590 If you have good tamper switches, and not all of them are, some access control software packages will allow you to configure an action that takes place where if a reader is tampered, then that door gets shut off until someone goes out and inspects the reader. 1687 02:04:53,590 --> 02:05:04,740 There is also an additional product that was released sometime last year called the spider blocker. 1688 02:05:04,740 --> 02:05:09,720 Super weird name, but interesting tool all the same. 1689 02:05:10,120 --> 02:05:13,140 I don't recommend this for most people, if I'm being frank. 1690 02:05:13,140 --> 02:05:15,520 So the spider blocker is an add-on board. 1691 02:05:15,520 --> 02:05:26,520 You need one per reader, and it lives next to your door controller, and it is a man in the middle between the reader and the door controller that monitors the tamper line. 1692 02:05:26,520 --> 02:05:31,120 And if tamper is detected, it physically disconnects the reader from the system. 1693 02:05:31,120 --> 02:05:36,940 And then someone has to walk back into the wiring closet and press this red reset button. 1694 02:05:36,940 --> 02:05:44,520 It's an interesting thought, and for some applications, it might be useful, but it is probably not really great for wide scale deployment. 1695 02:05:44,520 --> 02:06:01,800 If you're really worried about people messing with your readers, the biggest things that you can do are having a good tamper monitoring solution, having a good plan of action for what happens if a tamper gets triggered , and depending on the vendor, if you are able to use custom keys, 1696 02:06:01,800 --> 02:06:09,680 custom encryption keys for your credentials and readers, in many cases , that can offer an additional layer of protection. 1697 02:06:09,840 --> 02:06:19,940 Specifically , with multiple vendors, if you are using custom keys, HID calls them elite, other vendors might call them different terminology. 1698 02:06:19,940 --> 02:06:37,740 If you are using custom keys, then those configuration cards that we talked about also have to have those custom keys loaded, which is much harder to do, because there is a special restricted ordering process for ordering readers and credentials with custom keying data. 1699 02:06:38,200 --> 02:06:51,020 So the only reason that this worked is because our reader was using a standard global key, and we were using a standard global configuration card that was available to all integrators and all customers. 1700 02:06:52,460 --> 02:06:55,580 So, yeah, there are a couple of things to do there as well. 1701 02:06:56,120 --> 02:06:58,520 Now, I don't know if we have any time left. 1702 02:06:58,540 --> 02:07:02,220 Iceman, how much flexibility did they give us for Q &A? 1703 02:07:02,760 --> 02:07:05,560 They made a very small one. 1704 02:07:05,560 --> 02:07:06,020 Very small . 1705 02:07:06,580 --> 02:07:12,400 I said that we are going to have a Q&A over at Wireless Village RFID channel. 1706 02:07:12,400 --> 02:07:14,880 And how do people get there if they want to do that? 1707 02:07:15,000 --> 02:07:18,340 I sent you a link, so I thought you could post it there. 1708 02:07:18,340 --> 02:07:21,780 I posted on Twitter and I posted on Discord. 1709 02:07:22,840 --> 02:07:23,520 Sure, sure. 1710 02:07:23,520 --> 02:07:24,140 Give me a second. 1711 02:07:24,140 --> 02:07:25,200 Let me grab that. 1712 02:07:25,300 --> 02:07:31,800 Feel free to follow both me and Babak on Twitter, and shout out to YouTubes and all that stuff. 1713 02:07:33,220 --> 02:07:40,680 So, give me one moment here, and I will add this link so everyone has it. 1714 02:07:41,200 --> 02:07:41,640 Yeah. 1715 02:07:44,180 --> 02:07:45,840 We have a text channel there. 1716 02:07:45,840 --> 02:07:49,420 If you want to have a video channel, we can make it as well also later on. 1717 02:07:49,820 --> 02:07:54,840 But the Wireless Village people, we are going to make a little talk now as well, so we don't want to. 1718 02:07:54,840 --> 02:07:56,240 Of course, absolutely. 1719 02:07:56,960 --> 02:07:58,300 Wade's talk is soon also. 1720 02:07:58,600 --> 02:08:03,840 This link here, this Discord channel, we will be doing a little bit of Q&A for a few minutes. 1721 02:08:03,840 --> 02:08:08,240 And if you have any questions, reach out, email us. 1722 02:08:08,660 --> 02:08:11,200 We are happy to point you in the right direction. 1723 02:08:11,200 --> 02:08:17,760 If you are a pen tester and you are interested in training, this is the point where I just plug for 10 seconds. 1724 02:08:17,760 --> 02:08:19,460 Go to redteamalliance.com. 1725 02:08:19,460 --> 02:08:29,780 Iceman and I have a new 5-day hands-on training where we are going to work hands-on with everything from door controllers to weaponized readers to some more advanced techniques for manipulating credentials. 1726 02:08:29,780 --> 02:08:32,560 That's going to be coming out in end of September. 1727 02:08:32,560 --> 02:08:34,560 So we have dates announced for it. 1728 02:08:34,620 --> 02:08:36,540 And it is a hands-on course. 1729 02:08:36,540 --> 02:08:40,660 So every student will receive hardware like the reader that you saw here. 1730 02:08:40,960 --> 02:08:45,220 And test credentials and tools to weaponize things. 1731 02:08:45,400 --> 02:08:48,540 So if you are curious about that, you can ask us about that as well. 1732 02:08:48,540 --> 02:08:49,800 So that's it. 1733 02:08:49,800 --> 02:08:55,540 Thank you everyone so much for being so patient with our first DEF CON livestream attempt. 1734 02:08:55,700 --> 02:09:01,660 And for the back and forth that we had with the slides, all things considered, it went better than I expected somehow. 1735 02:09:02,360 --> 02:09:03,880 So, thank you again. 1736 02:09:03,880 --> 02:09:05,320 Hope you guys enjoyed it. 1737 02:09:05,760 --> 02:09:07,260 Yes, yes one shipping. 1738 02:09:07,260 --> 02:09:08,100 Thank you so much. 1739 02:09:08,100 --> 02:09:09,600 It's been a delight. 1740 02:09:09,600 --> 02:09:12,920 Pleasure as always to talk with you, Babak, and meet all you guys. 1741 02:09:12,920 --> 02:09:17,440 And I'm looking forward to have you over at the Q&A and have some chats with you there. 1742 02:09:17,960 --> 02:09:18,720 Stay cool.