WEBVTT 0:00:03.220000 --> 0:00:06.000000 Hello everyone, welcome to this video. 0:00:06.000000 --> 0:00:11.200000 In this section specifically we're going to be covering passive web application 0:00:11.200000 --> 0:00:16.780000 fingerprinting. And to begin this we're going to be taking a look at how 0:00:16.780000 --> 0:00:21.400000 to perform web application technology and framework fingerprinting using 0:00:21.400000 --> 0:00:26.320000 a plethora of browser plugins or extensions, as well as some additional 0:00:26.320000 --> 0:00:28.760000 command line tools and utilities. 0:00:28.760000 --> 0:00:33.880000 So the objective here is that we've now identified the website ownership 0:00:33.880000 --> 0:00:39.800000 details, IP addresses, we've performed some DNS enumeration, we've also 0:00:39.800000 --> 0:00:43.840000 taken a look at how to utilize what's publicly available to learn more 0:00:43.840000 --> 0:00:45.240000 about the target website. 0:00:45.240000 --> 0:00:47.940000 But we're now turning our attention to the website and more specifically 0:00:47.940000 --> 0:00:49.800000 the web application. 0:00:49.800000 --> 0:00:51.240000 And we're trying to learn more about it. 0:00:51.240000 --> 0:00:52.680000 So what's the first step? 0:00:52.680000 --> 0:00:58.060000 The first step is going to involve identifying information like what web 0:00:58.060000 --> 0:01:01.900000 application frameworks are being used, what server side language is being 0:01:01.900000 --> 0:01:05.220000 used. And we've already done this to a certain extent with netcraft, but 0:01:05.220000 --> 0:01:08.440000 we're going to be taking a look at tools that have been built to do this 0:01:08.440000 --> 0:01:12.440000 specifically. So again, in this particular case, we're not going to be 0:01:12.440000 --> 0:01:15.760000 utilizing a lab environment, we're just going to be you can do this directly 0:01:15.760000 --> 0:01:18.120000 through your browser or through Kali Linux. 0:01:18.120000 --> 0:01:22.040000 So I'm going to switch over to my Kali Linux system and we can get started. 0:01:22.040000 --> 0:01:24.780000 So let me switch over. 0:01:24.780000 --> 0:01:27.940000 All right, so I'm back on my Kali Linux system. 0:01:27.940000 --> 0:01:32.760000 And the first tools I'm going to show you are going to be tools that work 0:01:32.760000 --> 0:01:33.540000 with your browser. 0:01:33.540000 --> 0:01:36.120000 So they essentially browser extensions or plugins. 0:01:36.120000 --> 0:01:40.840000 In my case, I'm utilizing Firefox, but these two plugins in specific will 0:01:40.840000 --> 0:01:45.260000 work on both Firefox and chromium based browsers. 0:01:45.260000 --> 0:01:53.380000 So you know, we can simply just search in the case of I'll search for 0:01:53.380000 --> 0:01:54.400000 that here. There we are. 0:01:54.400000 --> 0:01:55.580000 So we have addons. 0:01:55.580000 --> 0:01:59.460000 So the first one, of course, is good is a an add on called built with 0:01:59.460000 --> 0:02:04.400000 and built with as you'll see shortly allows you to perform a website profiling 0:02:04.400000 --> 0:02:05.500000 or fingerprinting. 0:02:05.500000 --> 0:02:09.560000 It'll essentially tell you when once you browse to a website what technologies 0:02:09.560000 --> 0:02:12.460000 are in use on that page that it can find. 0:02:12.460000 --> 0:02:14.060000 So it's very passive. 0:02:14.060000 --> 0:02:15.760000 And that's the first one. 0:02:15.760000 --> 0:02:17.440000 And that'll be added right over here. 0:02:17.440000 --> 0:02:21.540000 The second one is something called WAP ELISA, which works very, very similar 0:02:21.540000 --> 0:02:24.560000 to to built with. 0:02:24.560000 --> 0:02:28.020000 And again, it again allows you to identify technologies on websites. 0:02:28.020000 --> 0:02:29.520000 So I'll add that as well. 0:02:29.520000 --> 0:02:32.120000 And then we're going to run this on a couple of sites just to show you 0:02:32.120000 --> 0:02:33.000000 what this looks like. 0:02:33.000000 --> 0:02:36.900000 And then we're going to take a look at how to utilize what web in the 0:02:36.900000 --> 0:02:40.340000 command line, which is a command line utility that comes pre-packaged 0:02:40.340000 --> 0:02:45.200000 with Kali. So I'll navigate to my own website, which is my blog here. 0:02:45.200000 --> 0:02:47.040000 And we'll start off with built with. 0:02:47.040000 --> 0:02:50.620000 So we've already performed the preliminary tests. 0:02:50.620000 --> 0:02:54.580000 But if we wanted to identify or perform web application fingerprinting 0:02:54.580000 --> 0:02:58.480000 passively, more specifically trying to get an ideas to what web technologies 0:02:58.480000 --> 0:03:02.500000 are running on the site, we can click on built with here. 0:03:02.500000 --> 0:03:04.140000 And that's going to get a profile. 0:03:04.140000 --> 0:03:08.800000 Now, in this particular case, it looks like, you know, we have a bit of 0:03:08.800000 --> 0:03:10.340000 a capture, but there we are. 0:03:10.340000 --> 0:03:12.860000 So it's sorted in different categories. 0:03:12.860000 --> 0:03:17.540000 You have tech detailed meta relationship redirects and most of these features 0:03:17.540000 --> 0:03:20.340000 will require you to create an account. 0:03:20.340000 --> 0:03:24.200000 But one of the things that you can take a look at to begin with is the 0:03:24.200000 --> 0:03:30.700000 tech. So it'll tell you right over here that if we scroll to the widgets, 0:03:30.700000 --> 0:03:32.200000 you can see it'll give you an idea. 0:03:32.200000 --> 0:03:35.980000 And it's actually performing some passive WordPress enumeration, but it 0:03:35.980000 --> 0:03:39.220000 tells you that this site is using monster insights, which is a WordPress 0:03:39.220000 --> 0:03:41.840000 plugin, MailChimp. 0:03:41.840000 --> 0:03:47.600000 We also have the Google font API, Google calendar, Yost SEO. 0:03:47.600000 --> 0:03:51.580000 So we're pretty much able to tell that this site is indeed using WordPress 0:03:51.580000 --> 0:03:54.000000 or is indeed running WordPress. 0:03:54.000000 --> 0:03:57.260000 And the web server, in this case, it also looks like it's leveraging light 0:03:57.260000 --> 0:04:01.460000 speed. As for the frameworks, you can see that it's using PHP, which we 0:04:01.460000 --> 0:04:02.640000 were able to find. 0:04:02.640000 --> 0:04:07.560000 And it also identifies the third party theme that's being used on this 0:04:07.560000 --> 0:04:10.520000 website. So you can actually perform bit of research on the theme to see 0:04:10.520000 --> 0:04:13.980000 if there any vulnerabilities that affect that particular WordPress theme 0:04:13.980000 --> 0:04:16.140000 and all the plugins installed. 0:04:16.140000 --> 0:04:20.520000 All right, as for the content delivery network, you can see that's Cloudflare. 0:04:20.520000 --> 0:04:24.200000 And the content management system is WordPress and discourse. 0:04:24.200000 --> 0:04:24.920000 That's very interesting. 0:04:24.920000 --> 0:04:28.660000 Now the reason it's pointing out discourse is because there is a link 0:04:28.660000 --> 0:04:32.920000 on this site that takes us to a forum that's running discourse. 0:04:32.920000 --> 0:04:37.420000 So if I open that up, it will redirect me to the Hackersploit forum here. 0:04:37.420000 --> 0:04:41.340000 And again, in this case, the forum is indeed running discourse. 0:04:41.340000 --> 0:04:44.520000 So that's one of the uses there. 0:04:44.520000 --> 0:04:48.000000 And we can scroll all the way to the bottom here. 0:04:48.000000 --> 0:04:50.260000 You can also see that this is very important. 0:04:50.260000 --> 0:04:53.920000 It tells you what JavaScript libraries and functions are being used. 0:04:53.920000 --> 0:04:58.340000 So you can see we have a magnetic pop up moment JS. 0:04:58.340000 --> 0:05:02.180000 And the reason why I'm covering this is because you can potentially find 0:05:02.180000 --> 0:05:06.620000 vulnerabilities within these JavaScript libraries to then facilitate JavaScript 0:05:06.620000 --> 0:05:11.560000 based attacks. As for the other ones, you can see we have some advertisement 0:05:11.560000 --> 0:05:16.020000 links here, or what is being used for advertisements. 0:05:16.020000 --> 0:05:19.840000 And the web servers, in this case, is pointing towards the fact that this 0:05:19.840000 --> 0:05:23.720000 site or the web server technology is light speed. 0:05:23.720000 --> 0:05:25.380000 So there we are. 0:05:25.380000 --> 0:05:29.960000 And what you can then do is to get a detailed view of this. 0:05:29.960000 --> 0:05:32.560000 But this actually requires a subscription. 0:05:32.560000 --> 0:05:37.760000 So the tech view is what you're limited to with a free or as a free standard 0:05:37.760000 --> 0:05:41.020000 user. But I think that's also very, very useful. 0:05:41.020000 --> 0:05:44.940000 Of course, the other one is WAPLISA, which I personally like quite a lot 0:05:44.940000 --> 0:05:48.640000 because it gives you everything you need in a very succinct way. 0:05:48.640000 --> 0:05:51.600000 So you can see the content management system is WordPress. 0:05:51.600000 --> 0:05:54.540000 We have a Patreon widget analytics. 0:05:54.540000 --> 0:05:57.780000 You can see there's use of monster insights and the plugin version is 0:05:57.780000 --> 0:06:01.600000 displayed here. Google analytics is being used. 0:06:01.600000 --> 0:06:05.820000 The font scripts are displayed here, programming languages or the server 0:06:05.820000 --> 0:06:09.260000 side languages, language in this case is PHP. 0:06:09.260000 --> 0:06:13.360000 The WordPress plugins it was able to enumerate our used jetpack, MailChimp 0:06:13.360000 --> 0:06:15.260000 and monster insights. 0:06:15.260000 --> 0:06:17.440000 The database is obviously MySQL. 0:06:17.440000 --> 0:06:21.320000 So a lot we have been able to identify a lot about the target site. 0:06:21.320000 --> 0:06:24.840000 And then of course, the JavaScript library is also displayed here. 0:06:24.840000 --> 0:06:28.700000 And you can get more information by getting the plus subscription. 0:06:28.700000 --> 0:06:33.260000 But again, the free account or the free version, you know, gives you everything 0:06:33.260000 --> 0:06:34.980000 you need to get started. 0:06:34.980000 --> 0:06:38.040000 Now that is, of course, WAPLISA is in built with. 0:06:38.040000 --> 0:06:40.080000 And of course, we can run this on different sites. 0:06:40.080000 --> 0:06:42.960000 So for example, zone transfer.me. 0:06:42.960000 --> 0:06:44.760000 I'm just going to open that up. 0:06:44.760000 --> 0:06:48.000000 For some reason, I clicked on the Google hacking database, but essentially 0:06:48.000000 --> 0:06:51.280000 the same thing can be repeated here. 0:06:51.280000 --> 0:06:57.540000 If we take a look at specifically, let's see if we can find this here. 0:06:57.540000 --> 0:07:00.160000 But we have the, we have the document standards. 0:07:00.160000 --> 0:07:06.100000 And also, it looks like if we take a look at WAPLISA, the server side 0:07:06.100000 --> 0:07:10.520000 language, what we weren't able to detect that, but we were able to identify 0:07:10.520000 --> 0:07:15.140000 the web server. And yes, indeed, the programming languages, PHP. 0:07:15.140000 --> 0:07:19.320000 So this will give you different results based on different websites, obviously. 0:07:19.320000 --> 0:07:23.640000 But again, the reason why I covered both of these add-ons is because you 0:07:23.640000 --> 0:07:28.140000 need to have a bit of flexibility with regards to the tools that you use. 0:07:28.140000 --> 0:07:30.460000 These are not the only tools available. 0:07:30.460000 --> 0:07:34.800000 As I'll show you right now, you also have a command line utility called 0:07:34.800000 --> 0:07:38.280000 what web, all right, and it comes pre-packaged with Kelly. 0:07:38.280000 --> 0:07:42.600000 This will give you additional information or a bit more detailed information. 0:07:42.600000 --> 0:07:44.460000 And this is all done passively. 0:07:44.460000 --> 0:07:48.360000 And we'll be taking a look at this in the next video when we will be exploring 0:07:48.360000 --> 0:07:50.900000 web application, firewall detection. 0:07:50.900000 --> 0:07:55.260000 But I can run it against a particular site like hackasploit.org. 0:07:55.260000 --> 0:07:59.460000 And once you can actually see it's going to go through and send a request, 0:07:59.460000 --> 0:08:07.180000 and it's going to does is if we open up the what is command and we say 0:08:07.180000 --> 0:08:11.280000 what web, you can see, sorry, that's not the correct spelling. 0:08:11.280000 --> 0:08:15.160000 But if I say what web here, it's a next generation web scanner, and it's 0:08:15.160000 --> 0:08:18.040000 used to identify technologies used by websites. 0:08:18.040000 --> 0:08:22.540000 So what happens is when we perform the footprinting on the site with what 0:08:22.540000 --> 0:08:24.240000 web, it'll show you the redirect. 0:08:24.240000 --> 0:08:36.120000 And that's because it's going through over here, the HTTP headers. 0:08:36.120000 --> 0:08:41.300000 So you can see the exact version or library of jQuery being used, the 0:08:41.300000 --> 0:08:46.180000 JavaScript modernizer library there, the version of PHP running on the 0:08:46.180000 --> 0:08:50.540000 web server, which is very important as PHP, in certain cases is vulnerable 0:08:50.540000 --> 0:08:54.680000 to specific vulnerabilities and can be exploited for command injection 0:08:54.680000 --> 0:08:56.600000 or remote code execution. 0:08:56.600000 --> 0:09:00.460000 It displays the web, the website title right over here. 0:09:00.460000 --> 0:09:03.780000 And then the uncommon headers are displayed here. 0:09:03.780000 --> 0:09:06.660000 So it looks like a lot of the headers are pointing towards some WordPress 0:09:06.660000 --> 0:09:10.160000 plugins and yeah, some WordPress plugins. 0:09:10.160000 --> 0:09:13.360000 And it tells us right over here that it is indeed running WordPress and 0:09:13.360000 --> 0:09:14.940000 it's powered by PHP. 0:09:14.940000 --> 0:09:19.240000 So I typically like using what web because it gives me everything in the 0:09:19.240000 --> 0:09:20.280000 format that I like it. 0:09:20.280000 --> 0:09:21.900000 Now this is not very readable. 0:09:21.900000 --> 0:09:26.420000 But when I'm doing things in a hurry, I typically resort to the two addons 0:09:26.420000 --> 0:09:28.960000 here that work on all browsers. 0:09:28.960000 --> 0:09:33.020000 And then when I want to perform detailed, when I want to perform detailed 0:09:33.020000 --> 0:09:36.520000 fingerprinting, web app fingerprinting, I then utilize something like 0:09:36.520000 --> 0:09:39.800000 what web, just to give me an idea as to what I'm dealing with from the 0:09:39.800000 --> 0:09:41.400000 perspective of the stack. 0:09:41.400000 --> 0:09:45.760000 So what stack is being used on the web server in this case, because it's 0:09:45.760000 --> 0:09:49.600000 running WordPress, it's very likely or it's pretty much the case that 0:09:49.600000 --> 0:09:55.140000 it's running a lamp stack, which is Linux Apache, MySQL and PHP. 0:09:55.140000 --> 0:10:01.880000 Now we can also run this for the other site, which was zone transfer.me. 0:10:01.880000 --> 0:10:04.160000 And we'll see what this will look like. 0:10:04.160000 --> 0:10:06.480000 So we'll give it a couple of seconds. 0:10:06.480000 --> 0:10:08.980000 All right, so that is done. 0:10:08.980000 --> 0:10:11.700000 And you can see the initial redirect there. 0:10:11.700000 --> 0:10:17.140000 And we're able to identify right of here that the web service Apache, 0:10:17.140000 --> 0:10:21.540000 we get an email, which is customer service as zone transfer.me and a couple 0:10:21.540000 --> 0:10:22.520000 of other emails. 0:10:22.520000 --> 0:10:25.680000 So the reason why we're seeing this is because, as I said before, this 0:10:25.680000 --> 0:10:29.860000 site was set up to teach you how to identify this information through 0:10:29.860000 --> 0:10:30.640000 a plethora of tools. 0:10:30.640000 --> 0:10:34.740000 So we were actually able to identify some very important emails here. 0:10:34.740000 --> 0:10:38.460000 We also get the uncommon headers here. 0:10:38.460000 --> 0:10:42.500000 And in this case, X power tells us, and this is a custom piece of text 0:10:42.500000 --> 0:10:45.380000 that was put in by the developer, which is very, very funny. 0:10:45.380000 --> 0:10:52.960000 It tells us that, you know, we have a couple of frameworks for our web 0:10:52.960000 --> 0:10:55.300000 service, but we know that it's running Apache and most likely it's running 0:10:55.300000 --> 0:10:56.580000 on a Linux server. 0:10:56.580000 --> 0:11:00.700000 So that is how to perform web app technology fingerprinting. 0:11:00.700000 --> 0:11:04.280000 And of course, I've gone a little bit out of scope covering frameworks. 0:11:04.280000 --> 0:11:09.140000 But what you're typically looking to do is firstly identify the frameworks 0:11:09.140000 --> 0:11:10.220000 that are being used. 0:11:10.220000 --> 0:11:12.760000 So both the client side and then the server side. 0:11:12.760000 --> 0:11:16.760000 So in this case, we know that, you know, most of the sites we've explored 0:11:16.760000 --> 0:11:18.260000 are running PHP. 0:11:18.260000 --> 0:11:21.180000 And then we're also trying to identify the web server technology that 0:11:21.180000 --> 0:11:24.520000 is being used, which we will cover independently in its own video. 0:11:24.520000 --> 0:11:27.980000 But we can see that in the in the examples we've taken a look at that 0:11:27.980000 --> 0:11:29.360000 is running Apache. 0:11:29.360000 --> 0:11:33.380000 And we were also able to identify additional information like the presence 0:11:33.380000 --> 0:11:36.920000 of a proxy or a web application firewall. 0:11:36.920000 --> 0:11:40.720000 In the case of HACISPLOY.org, it was a cloud flare. 0:11:40.720000 --> 0:11:46.040000 And we were also able to take a look at some of the headers for the particular 0:11:46.040000 --> 0:11:52.620000 website. So all in all, this was a very useful look into how to perform 0:11:52.620000 --> 0:11:56.420000 this passively. And that will conclude the practical demonstration side 0:11:56.420000 --> 0:11:59.200000 of this video. All right. 0:11:59.200000 --> 0:12:04.060000 Now that we've been able to identify passively what a web server is running, 0:12:04.060000 --> 0:12:08.260000 or is being used to host the web application, we've been able to identify 0:12:08.260000 --> 0:12:13.020000 the server side and client side technologies being used as well as frameworks. 0:12:13.020000 --> 0:12:15.420000 We can now turn our attention to something that's very important. 0:12:15.420000 --> 0:12:20.860000 And that is identifying the presence of a proxy or a web application firewall. 0:12:20.860000 --> 0:12:23.760000 So let's take a look at how to do that passively. 0:12:23.760000 --> 0:12:26.040000 And I'll be seeing you in the next video.