Implications of Powershell Going Open Source
LevelBlue Completes Acquisition of Cybereason. Learn more
Get access to immediate incident response assistance.
Get access to immediate incident response assistance.
LevelBlue Completes Acquisition of Cybereason. Learn more
I make every effort to be thorough and hit every aspect, there are times that I inadvertently omit things or skip them due to scope, time, length or applicability. I am admittedly not a Powershell guru, but I am interested to see how this plays out. Email any questions you have about this or any other topic to blog@advancedpersistentsecurity.net This blog aims to provide you with some analysis about Powershell going open source. This is from the perspective of a user that has no inside information from Microsoft. Disclaimer: I am in no way, shape, or form - past or present, compensated to endorse any software mentioned throughout this blog post.
In a seemingly strange move, Microsoft has released its Powershell scripting language as an open source package and it is now available for Linux. View the press release for it here. This comes shortly after Bash was made available in Windows 10. This is not the first time that Microsoft open sourced some of their software, but Powershell is not the same as the .NET framework or the Javascript engine for Edge and Internet Explorer. In listening to several podcasts and speaking with industry professionals, I believe that Powershell has been growing in popularity. Powershell has been used for both automation and post-exploitation for security professionals alike, it is had been ignored for too long. Soon enough, we will see Powershell scripts connecting to remote hosts using SSH (Secure Shell).
To be completely transparent and honest, I have no inside knowledge of this. I surmise that there are a few reasons as to why Microsoft is becoming more open in terms of the source code of their products. Here is my analysis:
It never hurts to have a different scripting language. Especially if you are not the only one to be able to understand and contribute to it. Even more so if you are more comfortable with Powershell from working with it in a previous role, perhaps as a Windows Administrator. It could be more valuable to you than Python - given you did not use it heavily as a pen tester. This will also allow pen testers the ability to rarely have to touch a windows system when scripting using Powershell. Yes, I know they will still need to touch Windows systems to test new techniques, tools, and exploits, but no longer for the purpose of writing the scripts. Microsoft will only need to train their engineers and internal administrators for projects, like Azure, in (presumably) one language. It would not make sense to apply for a position as an engineer at Microsoft without some Powershell knowledge, but now it means more.
I am having great difficulty in coming up with any legitimate negative outcomes at this time. Here is a list of my satire reasons:
In conclusion, this could be a great thing or an epic fail. This allows system administrators of all walks of life to collaborate and share code snippets. I am not sure this will do anything for the Windows versus *nix rivalry, but it may. At the end of the day, another scripting language on non-Windows platforms is not all that bad. How long until we get another Ruby, Joomla, or Jython? My two cents is to use what you are comfortable with and take into account any employer requirements or restrictions.
LevelBlue is a globally recognized cybersecurity leader that reduces cyber risk and fortifies organizations against disruptive and damaging cyber threats. Our comprehensive offensive and defensive cybersecurity portfolio detects what others cannot, responds with greater speed and effectiveness, optimizes client investment, and improves security resilience. Learn more about us.