Skip to content

Instantly share code, notes, and snippets.

@dennythecoder
Created August 12, 2021 21:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dennythecoder/b8eed487a1a8beb3e79005cd08f1332a to your computer and use it in GitHub Desktop.
Save dennythecoder/b8eed487a1a8beb3e79005cd08f1332a to your computer and use it in GitHub Desktop.
Example of consolidating STIG Checklists with PowerShell into a single CSV
$files = Get-ChildItem -Path "Y:\" *.ckl -r
$xmls = $files | % {[xml](get-content $_.FullName)}
$data = $xmls.Checklist | % {
$hostname = $_.Asset.HOST_NAME
#Vulns are each checklist item
$vulns = $_.STIGS.iSTIG.VULN
( $vulns | select @{Name="Host_Name";Expression={$hostname}},
STATUS,
@{Name="Vuln_Num"; Expression={$_.STIG_DATA[0].ATTRIBUTE_DATA}},
@{Name="Severity"; Expression={$_.STIG_DATA[1].ATTRIBUTE_DATA}},
@{Name="Group_Title"; Expression={$_.STIG_DATA[2].ATTRIBUTE_DATA}},
@{Name="Rule_ID"; Expression={$_.STIG_DATA[3].ATTRIBUTE_DATA}},
@{Name="Rule_Ver"; Expression={$_.STIG_DATA[4].ATTRIBUTE_DATA}},
@{Name="Rule_Title"; Expression={$_.STIG_DATA[5].ATTRIBUTE_DATA}},
@{Name="Vuln_Discuss"; Expression={$_.STIG_DATA[6].ATTRIBUTE_DATA}},
@{Name="IA_Controls"; Expression={$_.STIG_DATA[7].ATTRIBUTE_DATA}},
@{Name="Check_Content"; Expression={$_.STIG_DATA[8].ATTRIBUTE_DATA}},
@{Name="Fix_Text"; Expression={$_.STIG_DATA[9].ATTRIBUTE_DATA}},
@{Name="STIGRef"; Expression={$_.STIG_DATA[22].ATTRIBUTE_DATA}},
@{Name="STIG_UUID"; Expression={$_.STIG_DATA[24].ATTRIBUTE_DATA}})
}
$data | export-csv -NoTypeInformation -path "C:\Temp\ResultingData12Aug2021.csv"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment