Something I've often wondered; typically, serious pen testing tutorials go hand in hand with recommendations of linux-based tools (kali for example). Linux, generally, seems like the favoured choice for certain 'trades', pen-testing being one of them.

What, specifically, does a linux/unix OS provide that Windows doesn't? Linux feels a lot more 'low-level' and a lot less UI, if that makes sense. Is this one of the benefits?

  • 1
    Have a feeling that this might be a bit too opinion based - you can pen-test from Windows, and I've even seen some people testing from Macs, but lots of the tools are command line, so there is little need for GUIs, and using something that looks different can make it look like you're doing something fancy, even if you're just running nmap!
    – Matthew
    Commented Dec 16, 2016 at 11:55
  • @Matthew I can see why you would say that, but I think there are factual and technical answers to the specific question stated here.
    – schroeder
    Commented Dec 21, 2016 at 7:38

3 Answers 3


Pen testing means interfering with multiple different components of a remote system, working at different levels of abstraction - crafting a customized single network packet, or sending a specific series of interactions via HTTPS while capturing/replaying cookies.

Further, each case is slightly different - you are constructing attack tools out of the available primitives as you go. This is how Unix works - its a bag of tools which allow a competent person to solve problems. Unix is an IDE (integrated development environment).

MSWindows on the other hand is a platform for running programs. There's little economic justification for third parties to build the granular tools which are so common on Unix systems that we think of them as part of the OS. Its only really practical to make money by building "solutions".

A really important consideration for doing pen-testing is that you need to be able to protect your system against the munitions you are deploying and potentially against counter measures. Unix has always been a multi-user system and the concepts of permissions and privilege seperation run deep in its design. Historically there has been a lot less malware targetting Unix than MSWindows.

Linux distinguishes itself from other versions of Unix by being open-source, well-supported and running on cheap hardware. Most of which could also be said about BSD - but typically Linux is delivered in a more user friendly package.

  • When you want to change your MAC in Windows, the resulting MAC starts with 00 or 02, and you cannot override. Linux does not have the same restrictions. It's the little things like that that makes Linux a much more attractive option.
    – schroeder
    Commented Dec 21, 2016 at 7:36

The main purpose of the kali is testing. Generally all over the world developers use other OS than Windows because we have to go from basics. Kali is used by hackers and network tester just because it all works on command line. Moreover it comes with inbuilt tools for every vulnerabilities.

  • Windows has a command line too. And many Kali tools require a UI. Kali just has many tools as part of the build, but one could make the same thing in Windows.
    – schroeder
    Commented Dec 21, 2016 at 7:35

If you are talking about Kali Linux in specific or say black arch or parrot os, it could be because it contains most of the required tools for basic penetration testing. Btw penetration testing is not only about using tools, sometimes it is about building your own scripts and using them. Linux has different development tools builtin where as in windows you require to install the developer tools or other penetrating tools (example python, java, nmap, ssh, nc etc). It's just the preference and what the tester is comfortable with.

You must log in to answer this question.