- [Instructor] When it comes to penetration testing,
a proper lab environment is extremely important.
Not only, of course, to practice your skills
in a safe environment, but in some cases,
you may be also trying to mimic,
a production environment of your client.
And they may even ask you that,
to have a way to not test a production environment
but tested offline and have a mimic of that.
Does a concept that nowadays we're calling cyber ranges
into the fact that yes, you can actually practice
your skills and that's one
of the main purpose of a cyber range.
Or in other cases, is to simulate attacks
in a safe environment and not cause any lateral
or collateral damage to a production system.
Now, depending on the type of testing that you're doing,
this environment will look very, very different.
The types of tools that you use in your lab
will also vary based on many different factors.
We will definitely discuss tools of penetration testing
in a lot of details later in the course.
But here, I will touch on some of the types of tools
that you may be probably already familiar with,
that you can actually use to just getting started and put,
some type of a penetration testing lab
for you to actually practice.
And in a real world, I'm going to give you some examples
of a little bit larger scale penetration testing labs,
that large organizations like the one that I work for,
we have actually developed, you know,
to automate a lot of the testing.
So, the first thing that I want to actually start with,
is of course, you can actually start with just basic VMs.
You can use things like VirtualBox, or VMware,
or KVM in Linux, and create your own virtual environments.
Me personally, you know,
I can actually use penetration testing distributions,
like Kali Linux, which is based on Debian,
and it's a very, very popular distribution out there.
And that distribution is actually supported
by an organization called Offensive Security,
so it has a lot of support.
And the convenience of the distribution is that
it combines a lot of the penetration testing tools
that are very popular there,
and then you can build upon that, right.
You can put this in your laptop,
you can put it in a VMware environment,
I have actually even use it an OpenStack,
and automating, you know, in a very large scale,
a lot of the testing.
There are other distributions out there
like Parrot Linux is another one that actually I have used,
and BlackArch which is based on Arch Linux.
Now, you also can have different
intentionally vulnerable applications and systems
that allows you to practice your skills.
And I actually created a GitHub repository,
and in this repository, I have a section
that has a list of intentionally vulnerable applications,
and other systems like VMs, and also different resources
that you can participate in Capture the Flag events, right.
So you can actually practice your skills
and do a lot of exercises to enhance your skills as well.
So all these is here for you, of course,
completely free and feel free to contribute as well.
Now, as I mentioned before,
whenever you're testing a customer network
or any other systems, you most likely be doing the majority
of the test against the customer production
or staging environments,
because this is the actual environment
that the customer is actually concerned
about securing improperly.
But in some cases, actually, they may actually ask you
to create your own lab.
And you should always test your tools and techniques,
of course, before you run them against the customer network,
and you do that in a lab environment as well.
There's no guarantee that the tools,
I mean we will use, and something like that
will not break something in production.
So that's the reason that is very important to discuss,
these are the pre-engagement tasks.
And again, we're going to be covering that in a few minutes.
But the fact that most of these tools are actually designed
to actually literally break systems,
that's why you actually have to, you know,
make sure that you know, what damage,
some of these tools actually can do
and practice in your own lab.
So again, going back, you can have, you know,
these vulnerable applications running on VMs.
I also have an only one version of Kali
that I call WebSploit that has several
vulnerable applications in Docker containers.
But you can do this in your own right.
So I'm here I'm actually sharing the link
and where you can download that vulnerable machine.
But also you can install all these different applications
and vulnerable applications in Docker containers
in your own environment.
So again, the sky's the limit.
For the purpose, of course, in this course,
we're going to be focusing a lot into the methodologies,
and the actual technologies, and how to break into things
like databases, and web applications,
and networking devices and, you know,
Windows and Linux operating systems, and so on.
So again, there's many different tools,
many different ways that you can build
your environment, and I'm going to be highlighting
this throughout the course.