WEBVTT

00:00:00.040 --> 00:00:01.380
So now that we have some seed data,

00:00:01.390 --> 00:00:04.930
it's time to begin transforming that data into something more useful.

00:00:05.150 --> 00:00:06.180
In order to do that,

00:00:06.410 --> 00:00:10.240
we're going to need some modules, and this is the bread and butter of Recon‑ng.

00:00:10.690 --> 00:00:14.310
As I mentioned earlier, all modules now exist inside of the marketplace.

00:00:15.120 --> 00:00:18.150
So we're going to have to be using the marketplace command here to find,

00:00:18.260 --> 00:00:21.360
search for, and install the modules that we want to use.

00:00:22.400 --> 00:00:26.250
So starting off with the marketplace command, we'll do a help here,

00:00:28.740 --> 00:00:30.720
and we can see that we can list info about the

00:00:30.720 --> 00:00:34.300
marketplace, we can install modules, we can refresh the marketplace itself,

00:00:34.530 --> 00:00:37.030
which will go out and re‑fetch the index off of the remote

00:00:37.030 --> 00:00:40.090
repository, and let us know if anything new has happened since

00:00:40.090 --> 00:00:42.130
the last time we loaded Recon‑ng,

00:00:42.420 --> 00:00:46.350
we can remove modules, and then of course we can search the marketplace as well.

00:00:48.040 --> 00:00:51.000
So here what we want to do is look at all modules.

00:00:51.010 --> 00:00:53.400
I can just do marketplace search and give it no input.

00:00:53.400 --> 00:00:56.580
Giving it no input just means I'm going to show you everything. And so

00:00:56.580 --> 00:01:00.800
we can see here the marketplace. Now the table looks kind of ugly here

00:01:01.040 --> 00:01:05.400
because of the way I'm doing ASCII tables within an enlarged terminal,

00:01:05.410 --> 00:01:08.610
with an enlarge terminal font, but you can generally see the

00:01:08.610 --> 00:01:09.890
information that exists here.

00:01:10.380 --> 00:01:13.710
I am going to reduce the size a little bit here, there we

00:01:13.710 --> 00:01:18.650
go, so we can see a little bit cleaner. Now a couple things

00:01:18.650 --> 00:01:19.590
I want to bring your attention.

00:01:19.590 --> 00:01:25.020
First you have the Path, then you have the Version of the module, then you

00:01:25.020 --> 00:01:27.840
have the Status of whether or not it's installed or needs to be updated, a

00:01:27.840 --> 00:01:30.950
date on the last time that the module itself was updated, and this is not

00:01:30.950 --> 00:01:33.720
whether or not you updated, this is when the last time it was updated on

00:01:33.720 --> 00:01:37.180
the repository, and then you have a column for dependencies and a column

00:01:37.180 --> 00:01:38.070
for keys.

00:01:39.140 --> 00:01:39.300
Now,

00:01:39.300 --> 00:01:42.480
dependencies and keys are interesting here. At the module, if a

00:01:42.480 --> 00:01:46.690
developer has created a module and is using some sort of third‑party

00:01:46.690 --> 00:01:50.620
Python library in order for the module to function, then that's going

00:01:50.620 --> 00:01:54.990
to show up as a dependency. Recon‑ng does not come pre‑installed with

00:01:54.990 --> 00:01:55.960
these dependencies.

00:01:55.970 --> 00:01:59.400
You would have to go into whatever environment you ran it in and have

00:01:59.400 --> 00:02:04.030
those dependencies installed in order for that dependency to be met,

00:02:04.070 --> 00:02:06.050
or else the module will not function.

00:02:07.650 --> 00:02:09.699
The other sort of, kind of dependency that you're going to

00:02:09.699 --> 00:02:12.410
need are these keys. Now the keys aren't a software

00:02:12.410 --> 00:02:14.500
dependency, they are a credential dependency,

00:02:14.500 --> 00:02:15.170
obviously.

00:02:15.580 --> 00:02:20.180
And so if you see a star there in the in the K column for a particular module,

00:02:20.310 --> 00:02:22.710
then that means you're going to have to provide it some sort of credentials,

00:02:22.710 --> 00:02:25.780
whether be an API key, whether it be a username and password,

00:02:25.990 --> 00:02:26.930
so on, and so forth.

00:02:26.930 --> 00:02:30.650
So keep in mind when you're looking at modules, that information matters.

00:02:31.410 --> 00:02:36.460
Now the other thing I want to point out here with regards to the path is I

00:02:36.460 --> 00:02:39.810
spoke about the idea of transformations, well the path itself will

00:02:39.810 --> 00:02:43.480
indicate to you what kind of transformation that this module does. So in

00:02:43.480 --> 00:02:47.570
the case of the one I have highlighted on the screen now, it takes

00:02:47.580 --> 00:02:49.680
information from the companies table,

00:02:49.840 --> 00:02:54.300
and it transforms it into information that goes into the contacts table,

00:02:54.370 --> 00:02:58.400
and you'll see that translated throughout all of these lists of modules.

00:02:58.710 --> 00:03:02.160
That's very important because it makes it super easy for us to

00:03:02.260 --> 00:03:04.980
search for modules that do a particular thing.

00:03:05.490 --> 00:03:08.600
So in this particular case, we have a company's seed data,

00:03:08.600 --> 00:03:11.200
and we want to transform that into other types of data.

00:03:11.590 --> 00:03:13.500
So what we can do is we could do a search of the

00:03:13.500 --> 00:03:16.690
marketplace for that companies‑,

00:03:16.700 --> 00:03:20.190
and it should show us all of the modules that transform

00:03:20.190 --> 00:03:21.800
company data into something else.

00:03:21.810 --> 00:03:22.550
So let's do that.

00:03:29.070 --> 00:03:30.140
And as you can see here,

00:03:30.380 --> 00:03:34.250
we have a list of modules that transform company names into something.

00:03:35.340 --> 00:03:38.310
So now what I want to do is I want to go ahead and install one of these.

00:03:38.840 --> 00:03:39.980
Let's look at whois_minor.

00:03:40.530 --> 00:03:44.500
What whois_minor does is it uses third‑party resources that have

00:03:44.500 --> 00:03:48.090
already mined the whois database for information about companies

00:03:48.090 --> 00:03:51.600
and allows us to query that data and pull back various kinds of

00:03:51.600 --> 00:03:53.820
information about a company name.

00:03:53.830 --> 00:03:55.150
So let's go ahead and install this one.

00:03:55.910 --> 00:03:57.930
Now one of the interesting things that I want to point out

00:03:57.940 --> 00:04:01.630
about the marketplace is it also has this idea of smart

00:04:01.640 --> 00:04:03.340
installing or smart loading,

00:04:03.480 --> 00:04:06.990
which means if I want install a module, but I don't want to come up here

00:04:07.030 --> 00:04:11.900
and type this entire path in, then what I can do is I can just give it a

00:04:11.900 --> 00:04:14.960
unique string within the name of that path,

00:04:15.040 --> 00:04:18.149
and it will automatically install all of the modules

00:04:18.160 --> 00:04:20.040
with which that unique string matches.

00:04:20.180 --> 00:04:27.290
So, if I do whois_minor for my marketplace install command, I'll see it found

00:04:27.290 --> 00:04:34.100
it and installed a single module, recon/companies‑multi.whois_miner. What makes

00:04:34.100 --> 00:04:37.830
this powerful is if I wanted to install every module that transform companies

00:04:37.860 --> 00:04:41.250
without actually going and doing a marketplace search, I could have just did

00:04:41.250 --> 00:04:42.930
marketplace install companies‑,

00:04:43.170 --> 00:04:45.760
and it would have installed all of those modules for me. So it's

00:04:45.760 --> 00:04:48.860
very flexible in how you can install modules.

00:04:48.870 --> 00:04:52.750
It also does the same with removing those, and also loading them,

00:04:52.750 --> 00:04:55.070
which were getting ready to do here in just a moment.
