So now that we have some seed data,
it's time to begin transforming that data into something more useful.
In order to do that,
we're going to need some modules, and this is the bread and butter of Recon‑ng.
As I mentioned earlier, all modules now exist inside of the marketplace.
So we're going to have to be using the marketplace command here to find,
search for, and install the modules that we want to use.
So starting off with the marketplace command, we'll do a help here,
and we can see that we can list info about the
marketplace, we can install modules, we can refresh the marketplace itself,
which will go out and re‑fetch the index off of the remote
repository, and let us know if anything new has happened since
the last time we loaded Recon‑ng,
we can remove modules, and then of course we can search the marketplace as well.
So here what we want to do is look at all modules.
I can just do marketplace search and give it no input.
Giving it no input just means I'm going to show you everything. And so
we can see here the marketplace. Now the table looks kind of ugly here
because of the way I'm doing ASCII tables within an enlarged terminal,
with an enlarge terminal font, but you can generally see the
information that exists here.
I am going to reduce the size a little bit here, there we
go, so we can see a little bit cleaner. Now a couple things
I want to bring your attention.
First you have the Path, then you have the Version of the module, then you
have the Status of whether or not it's installed or needs to be updated, a
date on the last time that the module itself was updated, and this is not
whether or not you updated, this is when the last time it was updated on
the repository, and then you have a column for dependencies and a column
for keys.
Now,
dependencies and keys are interesting here. At the module, if a
developer has created a module and is using some sort of third‑party
Python library in order for the module to function, then that's going
to show up as a dependency. Recon‑ng does not come pre‑installed with
these dependencies.
You would have to go into whatever environment you ran it in and have
those dependencies installed in order for that dependency to be met,
or else the module will not function.
The other sort of, kind of dependency that you're going to
need are these keys. Now the keys aren't a software
dependency, they are a credential dependency,
obviously.
And so if you see a star there in the in the K column for a particular module,
then that means you're going to have to provide it some sort of credentials,
whether be an API key, whether it be a username and password,
so on, and so forth.
So keep in mind when you're looking at modules, that information matters.
Now the other thing I want to point out here with regards to the path is I
spoke about the idea of transformations, well the path itself will
indicate to you what kind of transformation that this module does. So in
the case of the one I have highlighted on the screen now, it takes
information from the companies table,
and it transforms it into information that goes into the contacts table,
and you'll see that translated throughout all of these lists of modules.
That's very important because it makes it super easy for us to
search for modules that do a particular thing.
So in this particular case, we have a company's seed data,
and we want to transform that into other types of data.
So what we can do is we could do a search of the
marketplace for that companies‑,
and it should show us all of the modules that transform
company data into something else.
So let's do that.
And as you can see here,
we have a list of modules that transform company names into something.
So now what I want to do is I want to go ahead and install one of these.
Let's look at whois_minor.
What whois_minor does is it uses third‑party resources that have
already mined the whois database for information about companies
and allows us to query that data and pull back various kinds of
information about a company name.
So let's go ahead and install this one.
Now one of the interesting things that I want to point out
about the marketplace is it also has this idea of smart
installing or smart loading,
which means if I want install a module, but I don't want to come up here
and type this entire path in, then what I can do is I can just give it a
unique string within the name of that path,
and it will automatically install all of the modules
with which that unique string matches.
So, if I do whois_minor for my marketplace install command, I'll see it found
it and installed a single module, recon/companies‑multi.whois_miner. What makes
this powerful is if I wanted to install every module that transform companies
without actually going and doing a marketplace search, I could have just did
marketplace install companies‑,
and it would have installed all of those modules for me. So it's
very flexible in how you can install modules.
It also does the same with removing those, and also loading them,
which were getting ready to do here in just a moment.