SlideShare a Scribd company logo
An Introduction to PowerShell for
Security Assessments
James Tarala, Enclave Security
Problem Statement
• During a security assessment, bringing tools to a
system can be problematic
• Potential issues include:
– Network transfers
– Anti-malware software
– Whitelisting software
– Business owner nerves
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
“Living off the Land”
• Ideally a penetration tester or auditor would be able
to “live off the land”
• In other words: Only use native operating system
tools to perform a security assessment
• Removes the need to download or transfer software
• Lowers the likelihood of being blocked by AV or
whitelisting software
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Potential Solution: PowerShell
• Potential solution = Microsoft Windows PowerShell
• Available for Microsoft Windows XP / Server 2003
and later Microsoft Windows operating systems
• Security assessors will still need the rights &
permissions to do their assessment
• However some common pitfalls can be avoided using
PowerShell
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
What is PowerShell?
• A scripting language targeted at system administrators
• A command line mechanism for performing tasks
normally reserved for GUIs
• An object oriented approach to command line
administration (rather than text based)
• A gateway into all Microsoft Windows operating
system objects (file system, registry, AD, WMI, etc)
• A command line gateway into .NET programming
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
PowerShell vs Unix Shells
PowerShell
• Object oriented
• Consistent cmdlets naming
conventions
• Available for most Windows
services
• Requires code signing
• Native command remoting
• Consistent across all
Windows systems
Unix Shells
• Text oriented
• Inconsistent binary naming
conventions
• Unique service binaries
required per Unix service
• Does not require code signing
• SSH required for remote code
• Multiple shells, inconsistent
syntax between systems
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
PowerShell Objects vs Text Strings
• Text is text – does not utilize properties or methods
• PowerShell objects all have properties & methods
• Consider a Refrigerator as a sample object
• Sample Attributes:
– Refrigerator.Color
– Refrigerator.Temperature
• Sample Methods:
– Refrigerator.On()
– Refrigerator.MakeIce()
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Cmdlets, Aliases, & Applications
• PowerShell primarily utilizes cmdlets, aliases, &
binary applications to function
• Cmdlets:
– Native command line tools with built in functions
– Example: get-childitem, get-help
• Aliases:
– Shortcuts or pointers to cmdlets, applications, or scripts
– Example: dir, ls
• Applications:
– Binaries files with defined functionality
– Example: netsh
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Sample PowerShell Cmdlets
• Get-Command
• Get-Help
• Get-Member
• Get-Content
• Where-Object
• Select-Object
• Format-List
• Fomat-Table
• Get-ACL
• Get-Process
• Get-ChildItem
• ConvertTo-CSV
• ConvertTo-HTML
• Import-certificate
• Export-certificate
• Stop-service
• Start-service
• Add-pssnapin
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Sample PowerShell Modules
• Active Directory
• AD Certificate Services
• Group Policy
• Microsoft Exchange
• Office 365
• Remote Desktop Services
• SharePoint
• SQL Server
• System Center Configuration
Manager
• VMWare vSphere
• Windows Azure
• AD Replication
• DnsShell
• File System Security
• FTP Client
• Local User Management Module
• PowerShell EventLogWatcher
• Remote Registry
• SCSM PowerShell Cmdlets
• SQL Server PowerShell Extensions
• Terminal Services
• Windows Automation Snap-In
• Windows Update
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Functions & Scripts
• If PowerShell does not include the functionality that
you need, you can also extend it
• Functions & Scripts:
– Repeatable code within a PowerShell environment
– Both follow the same philosophical idea of
extending native functionality
– Scripts utilize *.PS1 files to repeat functionality
– Reminder: Set-ExecutionPolicy RemoteSigned
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Accessing .NET Objects
• PowerShell can also even utilize .NET libraries
• Anything .NET can do, PowerShell can also
• There is a fuzzy line between PowerShell & VB.NET
• Both of the following commands are the same:
– [datetime]::now
– Get-Date
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Case Study: Microsoft ADCS
• Imagine you are responsible for assessing a Microsoft
Active Directory Certificate Services (ADCS) server
• What would you do to assess the system?
• What steps could you follow to automate the process?
• The following is a step by step approach you might
consider taking to assess the system
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Step #1: Governance & Architecture
• To start any security assessment it is worth
considering operational & governance controls
• Sample questions to consider:
– Have required functionality requirements been defined?
– Do policies, procedures, & standards exist for the system?
– Has an architecture been defined for the PKI hierarchy that
matches the business needs?
– Do proper operational controls exist to protect private keys
(such as utilizing an HSM)?
– Is redundancy built into the PKI architecture?
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Step #2: Native Windows Cmdlets
• The security of a service is dependent on the security of
the underlying operating system
• If the OS is not secure, services can never be secured
• Therefore start an assessment with native Windows
cmdlets & interrogate the host OS
• For example:
– Running services & software
– Installed system patches
– Local user accounts & groups
– File system & registry permissions
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Native Windows Cmdlet (Sample)
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Get-WMIObject Win32_userAccount | Select-Object Name,SID
List all user accounts on the PKI Server:
Native Windows Cmdlet (Sample)
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Get-acl c:windowssystem32certlog | fl
Retrieve NTFS permissions from directory:
Step #3: Registry Settings
• Many service configuration settings are located in
the Windows Registry
• If you look in the registry you can quickly learn the
configuration of the service without a GUI
• PowerShell has the ability to query both entire
registry hives and individual registry keys
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
ADCS Registry Settings
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesCertSvc
HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftSystemCertificatesRootProtectedRoots
Querying the Registry (Sample)
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Get-ChildItem "hklm:SYSTEMCurrentControlSetServicesCertSvcConfiguration"
Querying the Registry (Sample)
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Get-ItemProperty "hklm:SYSTEMCurrentControlSetServicesCertSvcConfigurationGet-ChildItem"
Get-ItemProperty "hklm:SYSTEMCurrentControlSetServicesCertSvcConfigurationGet-ChildItem“
| Select-Object DBLogDirectory
Step #4: Service Specific Cmdlets
• Microsoft has committed that each of their product
teams will make their services 100% configurable via
PowerShell cmdlets
• The beta test for this program was Exchange 2007
• Most all services now have service specific cmdlets
• These extend the standard functionality of PowerShell on
that system
• Sample cmdlets:
– Import-Module ActiveDirectory
– Get-Module -ListAvailable
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Service Specific Cmdlets (Sample)
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Query information about CRL Distribution Points (CDPs)
Get-CACrlDistributionPoint
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Query information about available Certificate Templates
Get-CATemplate
Step #5: Querying Config Files
• During an assessment you may also need to query
configuration files for specific services
• Often times XML or CONFIG files are used to store
configuration date instead of the registry
• Third party application developers especially like to
store configurations this way
• To view the content of any file use:
– Get-content
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Querying Config Files (Sample)
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Microsoft IIS Web Server Configuration Files for the Certsrv Website
Querying Config Files (Sample)
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Microsoft IIS Web Server Configuration Files for the Certsrv Website
get-content C:WindowsSystem32inetsrvconfigapplicationhost.config
Step #6: Native Windows Binaries
• Microsoft also makes available application binaries
for managing specific services
• Prior to PowerShell, binaries were the only method
for querying information about a system from the
command line
• If a service specific cmdlets does not meet your
needs, possibly a binary will
• For example:
– DNSCMD.EXE
– CERTUTIL.EXE
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Native Windows Binaries (Sample)
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Dump verbose properties from Certificate Templates
Certutil –v -template
Step #7: Reporting
• Once you have gathered all your data, the next step
is to report your findings
• Microsoft aprovides a number of cmdlets that can be
useful for reporting
• Reporting cmdlets include:
– ConvertTo-CSV
– ConvertTo-HTML
– ConvertTo-XML
– Export-CSV
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Next Steps
• If you find yourself regularly assessing Microsoft
Windows based systems – learn PowerShell
1. Learn the foundations of PowerShell scripting
2. Learn the basic built-in cmdlets Windows provides
3. Learn about additional modules that can be added to a
standard Windows environment
4. Write scripts to automate common assessment tasks
5. Experiment with output & reporting in PowerShell
6. Share your scripts with the community
An Introduction to PowerShell for Security Assessments © Enclave Security 2013
Further Questions
• James Tarala
– E-mail: james.tarala@enclavesecurity.com
– Twitter: @isaudit
– Website: http://www.auditscripts.com
• Resources for further study:
– SANS SEC 505: Securing Windows & Resisting Malware
– Windows PowerShell in Action by Bruce Payette
– PowerShell and WMI by Richard Siddaway
An Introduction to PowerShell for Security Assessments © Enclave Security 2013

More Related Content

PPTX
Enterprise PowerShell for Remote Security Assessments
PPTX
Automating Post Exploitation with PowerShell
PPTX
An Introduction to PowerShell for Security Assessments
PPTX
Hacked? Pray that the Attacker used PowerShell
PPTX
Lateral Movement with PowerShell
PPTX
Secure360 - Extracting Password from Windows
PPTX
Lateral Movement with PowerShell
PPTX
RACE - Minimal Rights and ACE for Active Directory Dominance
Enterprise PowerShell for Remote Security Assessments
Automating Post Exploitation with PowerShell
An Introduction to PowerShell for Security Assessments
Hacked? Pray that the Attacker used PowerShell
Lateral Movement with PowerShell
Secure360 - Extracting Password from Windows
Lateral Movement with PowerShell
RACE - Minimal Rights and ACE for Active Directory Dominance

What's hot (20)

PDF
Attack All the Layers: What's Working during Pentests (OWASP NYC)
PPTX
Forging Trusts for Deception in Active Directory
PPTX
Powerpreter: Post Exploitation like a Boss
PPTX
VMworld 2016: Getting Started with PowerShell and PowerCLI for Your VMware En...
PPTX
Client side attacks using PowerShell
PPTX
PowerShell for Cyber Warriors - Bsides Knoxville 2016
PPTX
PowerShell for Practical Purple Teaming
PDF
The Dark Side of PowerShell by George Dobrea
PDF
CNIT 126 11. Malware Behavior
PDF
Continuous intrusion: Why CI tools are an attacker’s best friends
PPTX
Outlook and Exchange for the bad guys
PPTX
Server Hardening Primer - Eric Vanderburg - JURINNOV
PPTX
Kautilya: Teensy beyond shell
PPTX
Secure360 - Attack All the Layers! Again!
PDF
System Hardening Recommendations_FINAL
PDF
05 security automationwithansible
PPTX
Sticky Keys to the Kingdom
PDF
KACE Agent Architecture and Troubleshooting Overview
PDF
BlueHat v18 || Return of the kernel rootkit malware (on windows 10)
PDF
Ch 10: Attacking Back-End Components
Attack All the Layers: What's Working during Pentests (OWASP NYC)
Forging Trusts for Deception in Active Directory
Powerpreter: Post Exploitation like a Boss
VMworld 2016: Getting Started with PowerShell and PowerCLI for Your VMware En...
Client side attacks using PowerShell
PowerShell for Cyber Warriors - Bsides Knoxville 2016
PowerShell for Practical Purple Teaming
The Dark Side of PowerShell by George Dobrea
CNIT 126 11. Malware Behavior
Continuous intrusion: Why CI tools are an attacker’s best friends
Outlook and Exchange for the bad guys
Server Hardening Primer - Eric Vanderburg - JURINNOV
Kautilya: Teensy beyond shell
Secure360 - Attack All the Layers! Again!
System Hardening Recommendations_FINAL
05 security automationwithansible
Sticky Keys to the Kingdom
KACE Agent Architecture and Troubleshooting Overview
BlueHat v18 || Return of the kernel rootkit malware (on windows 10)
Ch 10: Attacking Back-End Components
Ad

Similar to An Introduction to PowerShell for Security Assessments (20)

PDF
Powering up on PowerShell - BSides Charleston - Nov 2018
PPTX
Powering up on power shell avengercon - 2018
PPTX
Powering up on PowerShell - BSides Greenville 2019
PDF
Power on, Powershell
PDF
Who Should Use Powershell? You Should Use Powershell!
PPTX
PowerShell - Be A Cool Blue Kid
PPTX
Incorporating PowerShell into your Arsenal with PS>Attack
PDF
2017-BSidesCharm-DetectingtheElusive-ActiveDirectoryThreatHunting-Final.pdf
PPSX
Sunil phani's take on windows powershell
PPTX
Catch Me If You Can: PowerShell Red vs Blue
PPTX
Powershell Tech Ed2009
PDF
Sql Server & PowerShell
PPTX
Get-Help: An intro to PowerShell and how to Use it for Evil
PDF
PowerShell In 2024 And Beyond The Future Of Automation.pdf
PDF
2010 za con_jameel_haffejee
PDF
Under the Wire PowerShell workshop - BSides Augusta 2018
PDF
Basic commands for powershell : Configuring Windows PowerShell and working wi...
PPTX
Pwning the Enterprise With PowerShell
PPTX
BSidesLV 2016 - Powershell - Hunting on the Endpoint - Gerritz
PPT
No-script PowerShell v2
Powering up on PowerShell - BSides Charleston - Nov 2018
Powering up on power shell avengercon - 2018
Powering up on PowerShell - BSides Greenville 2019
Power on, Powershell
Who Should Use Powershell? You Should Use Powershell!
PowerShell - Be A Cool Blue Kid
Incorporating PowerShell into your Arsenal with PS>Attack
2017-BSidesCharm-DetectingtheElusive-ActiveDirectoryThreatHunting-Final.pdf
Sunil phani's take on windows powershell
Catch Me If You Can: PowerShell Red vs Blue
Powershell Tech Ed2009
Sql Server & PowerShell
Get-Help: An intro to PowerShell and how to Use it for Evil
PowerShell In 2024 And Beyond The Future Of Automation.pdf
2010 za con_jameel_haffejee
Under the Wire PowerShell workshop - BSides Augusta 2018
Basic commands for powershell : Configuring Windows PowerShell and working wi...
Pwning the Enterprise With PowerShell
BSidesLV 2016 - Powershell - Hunting on the Endpoint - Gerritz
No-script PowerShell v2
Ad

More from EnclaveSecurity (14)

PPTX
Using an Open Source Threat Model for Prioritized Defense
PPTX
The CIS Critical Security Controls the International Standard for Defense
PPTX
Practical steps for assessing tablet & mobile device security
PPTX
Utilizing the Critical Security Controls to Secure Healthcare Technology
PPTX
Information Assurance Metrics: Practical Steps to Measurement
PPTX
Governance fail security fail
PPTX
The intersection of cool mobility and corporate protection
PPTX
Recent changes to the 20 critical controls
PPTX
Prioritizing an audit program using the 20 critical controls
PPTX
Overview of the 20 critical controls
PPTX
More practical insights on the 20 critical controls
PPTX
Its time to rethink everything a governance risk compliance primer
PPTX
Cyber war or business as usual
PPT
Benefits of web application firewalls
Using an Open Source Threat Model for Prioritized Defense
The CIS Critical Security Controls the International Standard for Defense
Practical steps for assessing tablet & mobile device security
Utilizing the Critical Security Controls to Secure Healthcare Technology
Information Assurance Metrics: Practical Steps to Measurement
Governance fail security fail
The intersection of cool mobility and corporate protection
Recent changes to the 20 critical controls
Prioritizing an audit program using the 20 critical controls
Overview of the 20 critical controls
More practical insights on the 20 critical controls
Its time to rethink everything a governance risk compliance primer
Cyber war or business as usual
Benefits of web application firewalls

Recently uploaded (20)

PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Big Data Technologies - Introduction.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Cloud computing and distributed systems.
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Big Data Technologies - Introduction.pptx
The AUB Centre for AI in Media Proposal.docx
MIND Revenue Release Quarter 2 2025 Press Release
Building Integrated photovoltaic BIPV_UPV.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Encapsulation_ Review paper, used for researhc scholars
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Cloud computing and distributed systems.
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Spectral efficient network and resource selection model in 5G networks
Advanced methodologies resolving dimensionality complications for autism neur...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
MYSQL Presentation for SQL database connectivity
Review of recent advances in non-invasive hemoglobin estimation
Digital-Transformation-Roadmap-for-Companies.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx

An Introduction to PowerShell for Security Assessments

  • 1. An Introduction to PowerShell for Security Assessments James Tarala, Enclave Security
  • 2. Problem Statement • During a security assessment, bringing tools to a system can be problematic • Potential issues include: – Network transfers – Anti-malware software – Whitelisting software – Business owner nerves An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 3. “Living off the Land” • Ideally a penetration tester or auditor would be able to “live off the land” • In other words: Only use native operating system tools to perform a security assessment • Removes the need to download or transfer software • Lowers the likelihood of being blocked by AV or whitelisting software An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 4. Potential Solution: PowerShell • Potential solution = Microsoft Windows PowerShell • Available for Microsoft Windows XP / Server 2003 and later Microsoft Windows operating systems • Security assessors will still need the rights & permissions to do their assessment • However some common pitfalls can be avoided using PowerShell An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 5. What is PowerShell? • A scripting language targeted at system administrators • A command line mechanism for performing tasks normally reserved for GUIs • An object oriented approach to command line administration (rather than text based) • A gateway into all Microsoft Windows operating system objects (file system, registry, AD, WMI, etc) • A command line gateway into .NET programming An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 6. PowerShell vs Unix Shells PowerShell • Object oriented • Consistent cmdlets naming conventions • Available for most Windows services • Requires code signing • Native command remoting • Consistent across all Windows systems Unix Shells • Text oriented • Inconsistent binary naming conventions • Unique service binaries required per Unix service • Does not require code signing • SSH required for remote code • Multiple shells, inconsistent syntax between systems An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 7. PowerShell Objects vs Text Strings • Text is text – does not utilize properties or methods • PowerShell objects all have properties & methods • Consider a Refrigerator as a sample object • Sample Attributes: – Refrigerator.Color – Refrigerator.Temperature • Sample Methods: – Refrigerator.On() – Refrigerator.MakeIce() An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 8. Cmdlets, Aliases, & Applications • PowerShell primarily utilizes cmdlets, aliases, & binary applications to function • Cmdlets: – Native command line tools with built in functions – Example: get-childitem, get-help • Aliases: – Shortcuts or pointers to cmdlets, applications, or scripts – Example: dir, ls • Applications: – Binaries files with defined functionality – Example: netsh An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 9. Sample PowerShell Cmdlets • Get-Command • Get-Help • Get-Member • Get-Content • Where-Object • Select-Object • Format-List • Fomat-Table • Get-ACL • Get-Process • Get-ChildItem • ConvertTo-CSV • ConvertTo-HTML • Import-certificate • Export-certificate • Stop-service • Start-service • Add-pssnapin An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 10. Sample PowerShell Modules • Active Directory • AD Certificate Services • Group Policy • Microsoft Exchange • Office 365 • Remote Desktop Services • SharePoint • SQL Server • System Center Configuration Manager • VMWare vSphere • Windows Azure • AD Replication • DnsShell • File System Security • FTP Client • Local User Management Module • PowerShell EventLogWatcher • Remote Registry • SCSM PowerShell Cmdlets • SQL Server PowerShell Extensions • Terminal Services • Windows Automation Snap-In • Windows Update An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 11. Functions & Scripts • If PowerShell does not include the functionality that you need, you can also extend it • Functions & Scripts: – Repeatable code within a PowerShell environment – Both follow the same philosophical idea of extending native functionality – Scripts utilize *.PS1 files to repeat functionality – Reminder: Set-ExecutionPolicy RemoteSigned An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 12. Accessing .NET Objects • PowerShell can also even utilize .NET libraries • Anything .NET can do, PowerShell can also • There is a fuzzy line between PowerShell & VB.NET • Both of the following commands are the same: – [datetime]::now – Get-Date An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 13. Case Study: Microsoft ADCS • Imagine you are responsible for assessing a Microsoft Active Directory Certificate Services (ADCS) server • What would you do to assess the system? • What steps could you follow to automate the process? • The following is a step by step approach you might consider taking to assess the system An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 14. Step #1: Governance & Architecture • To start any security assessment it is worth considering operational & governance controls • Sample questions to consider: – Have required functionality requirements been defined? – Do policies, procedures, & standards exist for the system? – Has an architecture been defined for the PKI hierarchy that matches the business needs? – Do proper operational controls exist to protect private keys (such as utilizing an HSM)? – Is redundancy built into the PKI architecture? An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 15. Step #2: Native Windows Cmdlets • The security of a service is dependent on the security of the underlying operating system • If the OS is not secure, services can never be secured • Therefore start an assessment with native Windows cmdlets & interrogate the host OS • For example: – Running services & software – Installed system patches – Local user accounts & groups – File system & registry permissions An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 16. Native Windows Cmdlet (Sample) An Introduction to PowerShell for Security Assessments © Enclave Security 2013 Get-WMIObject Win32_userAccount | Select-Object Name,SID List all user accounts on the PKI Server:
  • 17. Native Windows Cmdlet (Sample) An Introduction to PowerShell for Security Assessments © Enclave Security 2013 Get-acl c:windowssystem32certlog | fl Retrieve NTFS permissions from directory:
  • 18. Step #3: Registry Settings • Many service configuration settings are located in the Windows Registry • If you look in the registry you can quickly learn the configuration of the service without a GUI • PowerShell has the ability to query both entire registry hives and individual registry keys An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 19. ADCS Registry Settings An Introduction to PowerShell for Security Assessments © Enclave Security 2013 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesCertSvc HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftSystemCertificatesRootProtectedRoots
  • 20. Querying the Registry (Sample) An Introduction to PowerShell for Security Assessments © Enclave Security 2013 Get-ChildItem "hklm:SYSTEMCurrentControlSetServicesCertSvcConfiguration"
  • 21. Querying the Registry (Sample) An Introduction to PowerShell for Security Assessments © Enclave Security 2013 Get-ItemProperty "hklm:SYSTEMCurrentControlSetServicesCertSvcConfigurationGet-ChildItem" Get-ItemProperty "hklm:SYSTEMCurrentControlSetServicesCertSvcConfigurationGet-ChildItem“ | Select-Object DBLogDirectory
  • 22. Step #4: Service Specific Cmdlets • Microsoft has committed that each of their product teams will make their services 100% configurable via PowerShell cmdlets • The beta test for this program was Exchange 2007 • Most all services now have service specific cmdlets • These extend the standard functionality of PowerShell on that system • Sample cmdlets: – Import-Module ActiveDirectory – Get-Module -ListAvailable An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 23. Service Specific Cmdlets (Sample) An Introduction to PowerShell for Security Assessments © Enclave Security 2013 Query information about CRL Distribution Points (CDPs) Get-CACrlDistributionPoint
  • 24. An Introduction to PowerShell for Security Assessments © Enclave Security 2013 Query information about available Certificate Templates Get-CATemplate
  • 25. Step #5: Querying Config Files • During an assessment you may also need to query configuration files for specific services • Often times XML or CONFIG files are used to store configuration date instead of the registry • Third party application developers especially like to store configurations this way • To view the content of any file use: – Get-content An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 26. Querying Config Files (Sample) An Introduction to PowerShell for Security Assessments © Enclave Security 2013 Microsoft IIS Web Server Configuration Files for the Certsrv Website
  • 27. Querying Config Files (Sample) An Introduction to PowerShell for Security Assessments © Enclave Security 2013 Microsoft IIS Web Server Configuration Files for the Certsrv Website get-content C:WindowsSystem32inetsrvconfigapplicationhost.config
  • 28. Step #6: Native Windows Binaries • Microsoft also makes available application binaries for managing specific services • Prior to PowerShell, binaries were the only method for querying information about a system from the command line • If a service specific cmdlets does not meet your needs, possibly a binary will • For example: – DNSCMD.EXE – CERTUTIL.EXE An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 29. Native Windows Binaries (Sample) An Introduction to PowerShell for Security Assessments © Enclave Security 2013 Dump verbose properties from Certificate Templates Certutil –v -template
  • 30. Step #7: Reporting • Once you have gathered all your data, the next step is to report your findings • Microsoft aprovides a number of cmdlets that can be useful for reporting • Reporting cmdlets include: – ConvertTo-CSV – ConvertTo-HTML – ConvertTo-XML – Export-CSV An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 31. Next Steps • If you find yourself regularly assessing Microsoft Windows based systems – learn PowerShell 1. Learn the foundations of PowerShell scripting 2. Learn the basic built-in cmdlets Windows provides 3. Learn about additional modules that can be added to a standard Windows environment 4. Write scripts to automate common assessment tasks 5. Experiment with output & reporting in PowerShell 6. Share your scripts with the community An Introduction to PowerShell for Security Assessments © Enclave Security 2013
  • 32. Further Questions • James Tarala – E-mail: james.tarala@enclavesecurity.com – Twitter: @isaudit – Website: http://www.auditscripts.com • Resources for further study: – SANS SEC 505: Securing Windows & Resisting Malware – Windows PowerShell in Action by Bruce Payette – PowerShell and WMI by Richard Siddaway An Introduction to PowerShell for Security Assessments © Enclave Security 2013

Editor's Notes

  • #2: An Introduction to PowerShell for Security AssessmentsWith the increased need for automation in operating systems, every platform now provides a native environment for automating repetitive tasks via scripts. Since 2007, Microsoft has gone “all in” with their PowerShell scripting environment, providing access to every facet of the Microsoft Windows operating system and services via a scriptable interface. Not only can administrators completely administer and audit an operating system from this shell, but most all Microsoft services, such as Exchange, SQL Server, and SharePoint services as well. In this presentation James Tarala of Enclave Security will introduce students to using PowerShell scripts for assessing the security of thee Microsoft services. Auditors, system administrators, penetration testers, and others will all learn practical techniques for using PowerShell to assess and secure these vital Windows services.
  • #4: http://social.technet.microsoft.com/wiki/contents/articles/4308.popular-powershell-modules.aspxhttp://social.technet.microsoft.com/wiki/contents/articles/4309.powershell-enabled-technologies.aspx