public/Get-NexposeVulnerabilityExploit.ps1

Function Get-NexposeVulnerabilityExploit {
<#
    .SYNOPSIS
        Returns the details for an exploit.
 
    .DESCRIPTION
        Returns the details for an exploit.
 
    .PARAMETER Id
        The identifier of the exploit
 
    .PARAMETER IncludeVulnerabilities
        Include the list of vulnerabilities contained within the selected exploit
 
    .EXAMPLE
        Get-NexposeVulnerabilityExploit -Id 123
 
    .NOTES
        For additional information please see my GitHub wiki page
 
    .FUNCTIONALITY
        GET: exploits
        GET: exploits/{id}
        GET: exploits/{id}/vulnerabilities
 
    .LINK
        https://github.com/My-Random-Thoughts/Rapid7Nexpose
#>


    [CmdletBinding()]
    Param (
        [string]$Id = 0,

        [switch]$IncludeVulnerabilities
    )

    If ($Id -gt 0) {
        $vulnExp = (Invoke-NexposeQuery -UrlFunction "exploits/$Id" -RestMethod Get)
        If ($IncludeVulnerabilities.IsPresent) {
            $vulns = @(Invoke-NexposeQuery -UrlFunction "exploits/$Id/vulnerabilities" -RestMethod Get)
            $vulnExp | Add-Member -Name 'vulnerabilities' -Value $vulns -MemberType NoteProperty
        }
        Write-Output $vulnExp
    }
    Else {
        Write-Output @(Invoke-NexposeQuery -UrlFunction 'exploits' -RestMethod Get)    # Return All
    }
}