A study of penetration testing procedures using Windows PowerShell: introduction to offensive PowerShell & assesment of PowerShell security tools
KeywordsPenetration testing ; PowerShell ; Computer security ; .NET Framework ; Windows (Computer operating systems)
This project is an attempt to approach penetration testing with PowerShell tools. Since PowerShell is at the time being over ten years old, it has ended up being a modern, quite effective but also quite complex management command line interface able to manage not only Windows systems, but any system supporting .NET framework. The mindset behind this project is to quickly present all basic components of PowerShell (.NET objects, commandlets, modules, scripts and functions) and then move on to specific tools and an example scenario, in an attempt to introduce the novice users to most PowerShell functionalities that they may come across. This project is by no means a fully-fledged PowerShell guide or an in depth penetration testing manual but an introductory one, aiming to quickly guide the potential readers to start using the tools in question while maintaining a basic understanding of their actions, rather than just blindly typing or pasting commands into a cli window, without understanding at all, how or why these actually operate. It should be mentioned that, nowadays, there is a great number of PowerShell penetration testing tools available, for all phases of the procedure. Many defensive or incident response tools have also emerged. The majority of the offensive tools will be listed and their utility will be presented throughout this project. The offensive PowerShell community is very enthusiastic, thorough and well organized. All projects are developed in the open, on GitHub, so for source-code and in-depth information, please visit the respective links that can be found in the 8. Resources section.