1 00:00:38,340 --> 00:00:41,400 Welcome to When TLS Hacks You. 2 00:00:41,400 --> 00:00:44,160 Josh, thanks so much for joining us today for Q&A. 3 00:00:44,160 --> 00:00:47,020 And I was wondering if you would mind introducing yourself to everyone. 4 00:00:47,600 --> 00:00:49,220 Hi, I'm Josh. 5 00:00:49,220 --> 00:00:51,380 I work at a lot of Quora. 6 00:00:52,500 --> 00:00:55,360 And yeah, this is my second Black Hat Talk. 7 00:00:55,820 --> 00:00:57,460 Which you'll see in a second. 8 00:00:57,500 --> 00:00:59,100 Thanks everyone for watching. 9 00:00:59,740 --> 00:01:01,200 Thanks for being here. 10 00:01:01,200 --> 00:01:06,840 Yeah, we were talking a little bit earlier about what inspired you to kind of get into this and, you know, write about it. 11 00:01:06,840 --> 00:01:09,200 I was wondering if you might be willing to share with everyone. 12 00:01:09,820 --> 00:01:10,220 Oh, yeah. 13 00:01:10,220 --> 00:01:14,500 So it was last year with Apple Pay. 14 00:01:15,220 --> 00:01:22,560 We just covered a lot of SRF vulnerabilities and, you know, different ways of exploiting them. 15 00:01:22,940 --> 00:01:26,200 They weren't super obvious internal endpoints to hit. 16 00:01:26,440 --> 00:01:28,700 So that's what we'll be diving into here. 17 00:01:29,180 --> 00:01:33,340 You kind of mentioned Let's Encrypt when we were talking about that. 18 00:01:33,560 --> 00:01:35,380 Is that too much to go into? 19 00:01:36,240 --> 00:01:36,720 Yeah. 20 00:01:36,720 --> 00:01:45,500 So just during exploring this, I ended up needing to create a fair amount of SSL certificates. 21 00:01:46,940 --> 00:01:53,200 And that's where I was really glad that Let's Encrypt was around just in time for me to start doing this research. 22 00:01:56,100 --> 00:02:02,720 Just because, you know, anytime I wanted to create a cert, I could do it for free. 23 00:02:03,180 --> 00:02:05,060 It's really handy. 24 00:02:07,060 --> 00:02:10,140 I see the questions coming in already. 25 00:02:10,740 --> 00:02:18,760 The first one was, I'm a bit confused about how you go from caching the TLS session ID in memcache to SSRF. 26 00:02:19,920 --> 00:02:20,940 Okay. 27 00:02:22,240 --> 00:02:29,760 So I guess maybe where the confusion might be is caching the TLS session ID. 28 00:02:30,480 --> 00:02:37,120 The TLS session ID gets cached on the victim server that I'm attacking with SSRF. 29 00:02:37,120 --> 00:02:45,220 So when the victim server makes a first request, it picks up this TLS session ID. 30 00:02:45,440 --> 00:02:51,660 And then when I send the same URL on the next request, it's going to send that session ID to itself. 31 00:02:51,660 --> 00:03:04,120 And of course, because it's sending a TLS packet to itself on memcache, it's going to be a bunch of binary data in with it, as well as a memcache insert. 32 00:03:04,120 --> 00:03:07,520 And because memcache is so permissive, it will actually 33 00:03:12,180 --> 00:03:18,740 parse that memcache insert as long as it's delimited with new lines, even though it's sandwiched between a bunch of binary data. 34 00:03:20,140 --> 00:03:21,820 Can you go just a little bit further on this? 35 00:03:21,820 --> 00:03:24,880 Because it seems to be an area that people are curious about. 36 00:03:24,880 --> 00:03:32,700 Because the next question is, how did you get the vulnerable server to use TLS session ID ticket as a body of the SMTP request? 37 00:03:33,400 --> 00:03:34,200 Right. 38 00:03:35,240 --> 00:03:39,560 So maybe it helps to step back and 39 00:03:43,340 --> 00:03:48,600 kind of revisit the just kind of the SRF trigger for this. 40 00:03:48,740 --> 00:03:58,940 Is that, you know, say for a practical example, let's see, say you're, you know, wanting GitHub to notify you. 41 00:03:59,600 --> 00:04:06,100 You know, usually it'd be on a Slack channel, but GitHub would notify you of commits to your repo. 42 00:04:06,220 --> 00:04:15,080 But GitHub provides a URL field that you can say, like, anytime someone commits to my repo, post to this URL. 43 00:04:15,860 --> 00:04:25,060 So with SRF, people have discovered that, you know, if you can enter a URL and a website hits it, that can be dangerous. 44 00:04:26,480 --> 00:04:47,500 So, and where this gets to, you know, actually persisting stuff on GitHub, even though I haven't attacked GitHub, but where it gets to actually persisting stuff on GitHub and getting GitHub to send what it persists into itself is it's where I send one request, 45 00:04:47,500 --> 00:05:10,900 GitHub follows a redirect on that request several times, and then after the redirects, the DNS entry is expired and you know, GitHub posts the section ID, which the DNS entry now resolves to itself and onto some local port. 46 00:05:11,780 --> 00:05:13,860 So it was clear. 47 00:05:15,780 --> 00:05:18,100 Let me look back at the question. 48 00:05:18,860 --> 00:05:23,160 No problem, I can ask it again if you want, but I know we kind of put you on the question there. 49 00:05:23,360 --> 00:05:32,120 Most of them just asked me about how you're getting whatever, you know, whether it be SMTP or memcache to actually interact or to bring in DSL. 50 00:05:32,160 --> 00:05:32,840 Yeah. 51 00:05:34,460 --> 00:05:53,120 Actually, something I just realized about this that might be helpful way to frame it is that this is this is a second order attack, and that, you know, if you're familiar with or want to dig deeper, anyone watching can look up second order SQL injection attacks, 52 00:05:53,680 --> 00:06:12,780 which are kind of the same sort of thing where you like send, you know, one attack to, you know, get the server into some state to where you can send the same URL or a different URL again and then actually get the attack to happen based upon that second, 53 00:06:13,840 --> 00:06:15,760 just the second thing that you launch. 54 00:06:17,860 --> 00:06:18,940 Cool. 55 00:06:21,100 --> 00:06:22,480 I'm sorry. 56 00:06:22,760 --> 00:06:24,380 You're doing great. 57 00:06:25,180 --> 00:06:30,240 So we can also ask Nate Brady's question from the Discord. 58 00:06:30,240 --> 00:06:36,100 He wants to know, he said, you mentioned in your talk that MySQL and Postgres might be susceptible services. 59 00:06:36,120 --> 00:06:37,300 What's behind that? 60 00:06:37,300 --> 00:06:41,320 And when looking at other services, what are the main things to look for? 61 00:06:42,220 --> 00:06:42,820 Oh, right. 62 00:06:42,820 --> 00:06:44,120 That's a good question. 63 00:06:45,320 --> 00:06:50,100 So this is actually where I'm really curious to see other people take this further. 64 00:06:51,000 --> 00:07:02,180 Is that, you know, what I have here is the ability to get a server to send, you know, with a really flexible manner, binary data to itself that I control, right? 65 00:07:04,000 --> 00:07:12,820 Now, the difficulty with attacking stuff like MySQL and Postgres is that they're binary protocols. 66 00:07:12,960 --> 00:07:29,100 And, you know, a lot of times, at least as far as I've seen, a valid TLS packet is not going to be it's not going to function as a valid MySQL you know, insert, you know, something that's going to trigger an insert. 67 00:07:29,380 --> 00:07:45,800 But the area where I'm really curious to see if anyone could go with, could do some like memory corruption or, you know, other areas that I'm, I'm definitely not great at like memory corruption vulnerabilities, but I'm really, really curious to see if people can actually take this more in that direction. 68 00:07:46,540 --> 00:07:47,420 Cool. 69 00:07:47,980 --> 00:07:49,020 Let's see. 70 00:07:49,020 --> 00:07:49,800 Go ahead. 71 00:07:49,800 --> 00:07:55,560 On that point, is there a list of, you know, prerequisite conditions for this attack to be successful? 72 00:08:00,900 --> 00:08:14,020 So I guess the big point there is probably the most helpful thing is the, there's a triple Venn diagram I have maybe it's two thirds of the way through the talk. 73 00:08:14,980 --> 00:08:17,120 And I believe the slides are posted. 74 00:08:18,780 --> 00:08:22,800 But it's the three of those together are effectively the prerequisite. 75 00:08:22,800 --> 00:08:27,760 So you need to have a something that looks like SSRF. 76 00:08:28,640 --> 00:08:44,040 Sometimes in the case of like Flum Demo where I'm phishing people, it's actually CSRF, but in that case, it's, you know, it's a little bit weird, but just restricting to SRF, you know, you need to be able to send a server a URL and it needs to hit that URL. 77 00:08:44,820 --> 00:08:51,300 You actually with these, it's flexible enough that you don't care about like, you know, content type restrictions. 78 00:08:51,300 --> 00:08:55,360 You don't care server only except PNGs, stuff like that. 79 00:08:55,360 --> 00:08:58,140 You just need some, you need that precondition. 80 00:08:58,140 --> 00:09:03,640 You also need whatever the server is using to send the URL to be something that caches TLS sessions. 81 00:09:04,300 --> 00:09:09,820 So like, I don't believe like Python currently caches TLS sessions. 82 00:09:11,520 --> 00:09:23,020 And there are other, I think Go, most Go stuff doesn't cache TLS sessions either, or at least, yeah, I think there's an open ticket in Go to actually do this, at which point you will be able to attack Go stuff. 83 00:09:24,640 --> 00:09:33,520 But , and then the third one is that whatever you're attacking has to have some locally authenticated service. 84 00:09:33,520 --> 00:09:44,060 And so the reason I pick on memcached particularly a lot is just that It's so common to be to have memcached sitting on a server locally unauthenticated. 85 00:09:46,760 --> 00:09:56,000 So, but there's See there's There's also, there's like a table in the talk. 86 00:09:56,000 --> 00:10:05,000 And I actually, I'd also be curious to see what locally unauthenticated services, you know, people are using to do srf attacks. 87 00:10:05,460 --> 00:10:06,260 Awesome. 88 00:10:06,260 --> 00:10:15,680 Yeah, I remember in your talk, I think you had a slide on a whole bunch of the different srf examples and you might have even had them ranked. 89 00:10:15,680 --> 00:10:21,260 I think the memcached one you had like RCE next to it all the way down to some others. 90 00:10:21,260 --> 00:10:24,820 And there's often only just like so much room that you can put on there. 91 00:10:24,880 --> 00:10:34,640 Are there like, do you think there's a lot more vectors or areas that would be vulnerable to this type of attack that other people might potentially be able to find? 92 00:10:35,960 --> 00:10:37,840 I do think so. 93 00:10:38,360 --> 00:10:41,760 And actually, one thing that I thought I thought about exploring. 94 00:10:41,760 --> 00:10:46,380 I really wanted to get like a demo like this in time for the presentation would be 95 00:10:49,600 --> 00:10:57,460 Finding some webcam that has like a telnet port open, right, which that has happened in the past. 96 00:10:58,000 --> 00:11:03,640 And then, you know, having the phishing demo then get like a shell on that webcam or something like that. 97 00:11:04,480 --> 00:11:11,080 The catch with that is that I couldn't find any webcams right now that have like that bad of a vulnerability. 98 00:11:11,480 --> 00:11:19,880 Probably just, I mean, there probably are, but I haven't had the time to To order them all and explore them. 99 00:11:22,760 --> 00:11:30,900 We have the next question, which is, you mentioned that using Mozilla within the right parameters instead of Chrome would be preferable to protect you. 100 00:11:30,900 --> 00:11:33,140 What was Chrome's reason for not addressing this? 101 00:11:33,960 --> 00:11:41,440 Um, So I think See, 102 00:11:48,310 --> 00:11:53,060 I think really It seems to boil down to severity. 103 00:11:53,440 --> 00:11:56,620 I don't want to gossip too much about Chrome. 104 00:11:57,640 --> 00:12:05,780 I think And to some extent, Chrome also has other DNS rebinding approaches. 105 00:12:06,600 --> 00:12:18,640 So, for example, you know, if you're phishing someone and you get them to click a link right That in that case, if you get something to load up someone to load a fully malicious page. 106 00:12:19,060 --> 00:12:22,280 I think there are still existing DNS rebinding approaches. 107 00:12:22,280 --> 00:12:34,900 I think, you know, whereas here for for Chrome specifically I'm just adding the ability to If someone's doing an email and doesn't click a link. 108 00:12:36,400 --> 00:12:40,860 Then, you know, I can still attack them by using TLS and image tags. 109 00:12:42,240 --> 00:12:53,700 And actually I don't know if I got into it in this talk, but the reason Mozilla is actually so Mozilla allows you to disable TLS session IDs. 110 00:12:55,420 --> 00:13:06,840 Mozilla has kind of a quirk where it caches by IP address instead of domain, which is, it's kind of, in a way, it's a bug, but I don't think it's really a serious one. 111 00:13:06,840 --> 00:13:15,940 Like it's not consistent with the implementation, but it actually makes Mozilla safer or Firefox safer by default against this stuff. 112 00:13:18,860 --> 00:13:23,320 So how was your experience with reporting the vulnerabilities that you found? 113 00:13:23,320 --> 00:13:25,400 What kind of feedback did you get? 114 00:13:25,400 --> 00:13:26,480 Was it a good experience? 115 00:13:26,480 --> 00:13:27,260 Bad experience? 116 00:13:27,260 --> 00:13:28,680 Mixed all across the board? 117 00:13:28,680 --> 00:13:29,740 How was that? 118 00:13:30,220 --> 00:13:33,140 I'd say it was kind of mixed, especially at first. 119 00:13:34,260 --> 00:13:50,460 But I think what kind of helped with that is kind of reframing this as, you know, this really like when you report this stuff like Chrome or like Girl or someone that's like, you know, even though it's like that software that's making the vulnerability happen, 120 00:13:50,460 --> 00:13:58,900 right, it is ultimately like this is just kind of a consequence of the way TLS, you know, is standardized, right. 121 00:13:59,780 --> 00:14:18,940 And so, you know, even though there definitely are potential fixes, you know, like, I think I can definitely understand why people are not rushing to try to like diverge from the spec in order to like address this particular attack. 122 00:14:22,330 --> 00:14:26,730 Is there a way on the DNS side to be able to protect yourself from this? 123 00:14:28,170 --> 00:14:28,970 Yes. 124 00:14:30,310 --> 00:14:32,730 So there's an interesting... 125 00:14:35,390 --> 00:14:40,950 Like in the past there have been, you know, of course, like DNS rebinding attacks as a whole are not new. 126 00:14:41,810 --> 00:14:46,150 The only thing that's new here is DNS rebinding with TLS, right. 127 00:14:48,350 --> 00:15:05,910 So in the past, just in order to address DNS rebinding over like HTTP, I believe like PFSense and like I think there's like a plugin for like if you have a Raspberry Pi like Pi hole. 128 00:15:07,450 --> 00:15:11,370 Or I think it might be built into like DNS mask and stuff. 129 00:15:11,370 --> 00:15:23,450 To where if they, I think if they like sense a domain name getting resolved to something publicly and then later it's getting resolved to like localhost. 130 00:15:24,710 --> 00:15:32,410 These plugins will detect that and, you know, I think either like block it or just, you know, do something to protect you from it. 131 00:15:32,410 --> 00:15:35,730 So I do think those would also protect from the TLS variant of this. 132 00:15:35,730 --> 00:15:43,530 Although the caveat with that is that even though that's something you could theoretically roll out on like every network, I don't think it's... 133 00:15:43,530 --> 00:15:49,890 I think there are some like instances where it would be a breaking change on a network. 134 00:15:50,190 --> 00:15:53,210 So it's a little bit complicated to roll out in that respect. 135 00:15:54,050 --> 00:15:55,010 Excellent. 136 00:15:56,050 --> 00:16:09,030 Nate Brady wants to know, when you have a second order blind SSRF attack like this, how do you know if you've successfully poisoned something like memcached and when would you report it? 137 00:16:09,030 --> 00:16:25,370 Um, so yeah, this is actually, this is one area where it gets difficult is, you know, a lot of the stuff I've, I've really mainly focused on open source stuff. 138 00:16:25,370 --> 00:16:36,510 Um, you know, so in that case, like I can prove out locally the, whether I've inserted something in the memcached and then, you know, just report it and it's like, it's a substrate. 139 00:16:36,790 --> 00:16:42,790 It does get more difficult if you don't have that level of transparency onto something you're attacking. 140 00:16:43,130 --> 00:16:50,670 Um, I think the way that I've, you know, kind of, I've had a few attempts at this. 141 00:16:50,670 --> 00:16:55,430 Um, it's the first, you know, port scan, right? 142 00:16:55,430 --> 00:17:03,830 Or like first, you know, you can do like internal port scanning by SSRF and lots of people do that and it's not a super serious vulnerability, right? 143 00:17:04,950 --> 00:17:08,410 Um, aside from, you know, launching on other things. 144 00:17:08,490 --> 00:17:13,870 So some people, what they do is, you know, what you could do is you could port scan by SSRF. 145 00:17:13,870 --> 00:17:20,110 Discover that port 11201 or like 205, that something like that is like open. 146 00:17:20,850 --> 00:17:29,370 Um, and then what I've thought about doing is just like, you know, if I, if I see that, right, you know, I can trigger an insert, right? 147 00:17:29,370 --> 00:17:33,550 And say like, Hi, this is Josh in the memcached, right? 148 00:17:33,550 --> 00:17:40,770 And then submit it and it'll be like, you know, if you see this entry in your memcached, then, you know, this is really bad. 149 00:17:40,770 --> 00:17:53,210 Um, you could also try to just spray like Python to your serialization payloads, like, um, because, you know, just because of how big TLS sessions can be. 150 00:17:53,210 --> 00:18:02,590 You could put like, you know, hundreds or thousands of payloads in there and just hope that one of them, one of them will like get deserialized and execute. 151 00:18:02,590 --> 00:18:14,470 Um, and then, you know, another way is, I don't know if I'd recommend this necessarily, but is just trying the DDoS or not DDoS, but just like denial of service angle. 152 00:18:15,530 --> 00:18:17,930 Where memcached does have a flush all command. 153 00:18:18,070 --> 00:18:34,690 So if you were to try this attack and get memcached to flush all and suddenly you see the site like, you know, starting to take one time to load pages, then you know, that's one way you could have evidence that this is actually happening against memcached. 154 00:18:35,990 --> 00:18:43,530 It seems like you're still delving into this and, you know, learning more, but we're being asked is, are you working on this type of attack with anything else? 155 00:18:43,530 --> 00:18:46,370 For example, you know, cross-site forgery requests. 156 00:18:46,450 --> 00:18:48,150 Sorry, I said that one wrong. 157 00:18:48,190 --> 00:18:50,170 Cross-site request forgery. 158 00:18:50,170 --> 00:18:51,290 Right. 159 00:18:51,630 --> 00:19:13,650 Um, so I think the thing with CSRF, um, well specifically with TLS for mining, right, is, uh, the, um, you know, really it kind of, it's something that practically you, you want to send from like, you know, you want to send from like a phishing URL. 160 00:19:13,650 --> 00:19:14,350 Right. 161 00:19:14,350 --> 00:19:23,990 Um, and because kind of the, really in most cases, the, where this happens is just Chrome and where it can be printed as Chrome. 162 00:19:23,990 --> 00:19:24,630 Right. 163 00:19:24,970 --> 00:19:30,370 Um, there's not a whole lot of depth to go, go here with just CSRF attacks. 164 00:19:30,710 --> 00:19:56,970 Um, although, um, in a way, like another avenue of exploiting this on Chrome is to do, uh, is to, if you have an excess in like a PDF generator, um, like there was a talk last year at, uh, I think DEF CON, um, uh, about, uh, about PDF generators getting like SSRC in those. 165 00:19:57,210 --> 00:20:02,330 Um, and that's kind of a CSRF angle, even though it's on a server, it's like Chrome. 166 00:20:02,450 --> 00:20:11,470 Um, so that's, that is one angle is like, if you have a PDF renderer that's running, you know, and it can access. 167 00:20:11,990 --> 00:20:15,830 Like an instance or like a mail instance or something like that. 168 00:20:15,830 --> 00:20:20,470 Um, that's, that's kind of a CSRF attack that you could explore. 169 00:20:21,170 --> 00:20:22,070 Cool. 170 00:20:22,190 --> 00:20:31,830 Um, I think you mentioned before that last year at DEF CON, you presented on SSRF and then this year you have this presentation. 171 00:20:31,950 --> 00:20:34,690 Where do you think that you're going to go from here? 172 00:20:34,690 --> 00:20:36,230 What's next for you? 173 00:20:36,230 --> 00:20:39,930 I'm guessing you probably already have some ideas of things that you want to look into. 174 00:20:39,930 --> 00:20:44,670 Is there some kind of next thing in this area or are you going in a completely different direction next? 175 00:20:45,310 --> 00:20:48,650 Um, oh man, let's see. 176 00:20:48,650 --> 00:20:50,390 I have different directions. 177 00:20:50,530 --> 00:20:54,190 Um, let's see. 178 00:20:55,350 --> 00:21:02,730 Or also, are there other things based on what you found that you want other people to look into that you figured? 179 00:21:02,730 --> 00:21:06,350 I didn't quite get a chance to go as far as I wanted to with this yet. 180 00:21:06,350 --> 00:21:11,070 And if somebody else is interested, they could kind of jump onto your work as well. 181 00:21:11,490 --> 00:21:12,490 Right, right. 182 00:21:12,490 --> 00:21:15,210 Just trying to figure out how, how much I want to delve into detail. 183 00:21:15,410 --> 00:21:16,090 Sure. 184 00:21:16,090 --> 00:21:17,590 Don't want to reveal too much. 185 00:21:20,070 --> 00:21:38,970 The second part of that question I like because there's definitely here for stuff here where I've kind of like been like, okay, this is, I've been spent so much time trying to like DNS rebind or TLS rebind stuff that I don't want to delve too deeply and I just kind of, 186 00:21:38,970 --> 00:21:45,250 to some extent, I look forward to like seeing people find and write up further vulnerabilities in this space. 187 00:21:45,250 --> 00:21:55,410 So definitely like, you know, stuff where you're targeting something with memory corruption payloads, that would be really interesting to see this like change with that. 188 00:21:55,410 --> 00:22:02,790 Because in the past, like, I think an orange size talk in like 2017, a new era of SRF, right? 189 00:22:03,270 --> 00:22:07,330 He had some really interesting vulnerability chains with SRF there. 190 00:22:07,530 --> 00:22:20,590 So doing something, you know, now that we can effectively have, you know, HTTPS URLs that act as go for payloads, right, you know, we can kind of like revive that line of research a bit. 191 00:22:21,410 --> 00:22:37,270 And then also, like, so there are a lot of SRF vulnerabilities out there that, you know, have been reported and written up, right, and been, you know, like, at least assumed to be fixed. 192 00:22:38,510 --> 00:22:47,190 But I think also like some of this research, I found that in some cases that actually invalidates that assumption that something's been fixed. 193 00:22:47,190 --> 00:22:58,970 Because sometimes people will fix something by just, you know, checking out the URLs HTTPS and leaving the fix there, whereas here you can actually go back and unfix those vulnerabilities. 194 00:23:03,010 --> 00:23:06,410 Question earlier about what was your motivation with getting into this? 195 00:23:06,410 --> 00:23:08,190 And I was looking over your GitHub. 196 00:23:08,190 --> 00:23:12,810 And I think I see a lot of, you know, interesting things that go a little bit deeper into this with more information. 197 00:23:12,810 --> 00:23:16,030 Would you be willing to talk to us a little bit about what you have on there? 198 00:23:17,190 --> 00:23:19,750 Um, let's see. 199 00:23:20,490 --> 00:23:22,210 Trying to think what's on my GitHub. 200 00:23:22,830 --> 00:23:24,270 Putting you on the spot there. 201 00:23:24,550 --> 00:23:25,310 What? 202 00:23:25,690 --> 00:23:28,110 I said, we're really putting you on the spot today. 203 00:23:28,110 --> 00:23:29,010 Oh, yeah. 204 00:23:30,190 --> 00:23:33,510 Specifically about your TLS Poison repo? 205 00:23:34,030 --> 00:23:34,490 Oh, right. 206 00:23:34,490 --> 00:23:36,810 Yes, the TLS Poison repo. 207 00:23:43,410 --> 00:23:46,950 I posted the link if people want to take a look. 208 00:23:47,150 --> 00:23:47,890 Oh, yeah. 209 00:23:47,890 --> 00:23:49,610 Yeah, of course, the link's right there. 210 00:23:49,610 --> 00:24:06,550 And definitely like as people are going through these instructions, I've already had a couple of people reach out with some really good feedback on these instructions, because it's definitely like it's just a fair warning on setting this up. 211 00:24:06,550 --> 00:24:17,450 It's the instruction can be a little bit tough to work through just because you have to set up a couple of instances and DNS entries and a TLS certificate. 212 00:24:19,170 --> 00:24:24,270 So like if you're really committed with like infrastructure setup, then it might be a bit of a breeze. 213 00:24:24,610 --> 00:24:27,430 But I mean, otherwise, it can be a learning experience. 214 00:24:28,170 --> 00:24:31,830 But I definitely wrote these instructions up pretty hastily. 215 00:24:31,830 --> 00:24:33,650 So there's some rough edges. 216 00:24:34,350 --> 00:24:35,190 Cool. 217 00:24:35,190 --> 00:24:44,450 Also, along the lines of a learning experience, one question that I've been asking a few of the other speakers that have been doing research. 218 00:24:44,450 --> 00:24:46,070 How do you get started? 219 00:24:46,070 --> 00:24:54,650 Like if you're somebody that's new and really is interested in getting some kind of research angle, or maybe they want to speak at DEF CON one day. 220 00:24:54,650 --> 00:24:57,370 So like, how do I find that next thing? 221 00:24:57,370 --> 00:25:03,210 And how do I actually, you know, jump in and find something to research and where do I start? 222 00:25:04,030 --> 00:25:13,670 Yeah, um, I think one thing, especially with vulnerabilities, like, you know, there's just like vulnerabilities like that. 223 00:25:14,950 --> 00:25:19,010 You know, just opening up Wireshark, right? 224 00:25:19,030 --> 00:25:30,850 And, you know, say there's like some IoT device on your network, trying to get Wireshark to see what the IoT device is doing, or just see what some piece of software is doing. 225 00:25:31,490 --> 00:25:40,390 Or, I mean, honestly, just anytime you can intercept traffic and pick it apart and look at what stuff is doing, that's really helpful. 226 00:25:40,390 --> 00:26:01,830 I think actually even the first The first discovery of this was I'm just remembering, it was when I was doing srf, and I accidentally had an HTTP endpoint that I fed an HTTPS URL. 227 00:26:01,830 --> 00:26:09,970 And I got an error, like Flask was saying, a bunch of random characters, but that's not a valid request method. 228 00:26:09,970 --> 00:26:12,650 And I'm like, that's an interesting error. 229 00:26:13,130 --> 00:26:18,890 Then, opening up Wireshark and seeing, what are some fields here I can use? 230 00:26:18,890 --> 00:26:29,570 And , of course, previously people used S9 field, but there may even be more stuff here. 231 00:26:30,630 --> 00:26:35,630 As well as, I mean, just TLS is really complicated. 232 00:26:35,630 --> 00:26:40,270 So, there's definitely a lot of angles to explore with. 233 00:26:40,990 --> 00:26:44,110 Totally sounds like there's a lot of research to still be done. 234 00:26:44,110 --> 00:26:52,050 And if people kind of wanted to contribute to what you're already working on and start working together, is that something you're looking towards, or a way for them to best do it? 235 00:26:52,510 --> 00:26:53,530 Oh, yeah. 236 00:26:53,990 --> 00:27:14,830 So, I mean, if anyone has, I mean, has just the time and ability to make this repo a little bit easier to set up, whether that's infrastructure as code, or just better documentation, or introductory read-me's, that's definitely welcome. 237 00:27:18,120 --> 00:27:28,060 To the end of the time we have together, besides the GitHub, what is the best way for people to be able to reach out with any other questions, or if they hit issues when they're trying to get this set up on their own? 238 00:27:28,800 --> 00:27:29,560 Oh, yeah. 239 00:27:29,760 --> 00:27:36,660 So, my Twitter, joshmdx, same as my username on this DEF CON server. 240 00:27:38,200 --> 00:27:41,960 And I believe my direct messages are open at least on Twitter. 241 00:27:43,040 --> 00:27:48,120 You can also send me a friend request, or try to reach out on the Discord, too. 242 00:27:49,000 --> 00:27:51,780 Thanks for taking the time to answer these questions. 243 00:27:51,900 --> 00:27:54,320 And, yeah, hopefully we'll see you again next year. 244 00:27:54,320 --> 00:27:56,160 It seems like you're on a roll with the subject. 245 00:27:56,520 --> 00:27:56,940 All right. 246 00:27:56,940 --> 00:27:57,760 Thank you. 247 00:27:57,760 --> 00:27:58,800 Thank you, everyone, for watching. 248 00:27:59,000 --> 00:27:59,620 Thanks, Josh.