Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
1714368
Update Merge-LrIdentities.ps1
Jt3kt Aug 29, 2022
07ec2d4
Update LR.Tools_Installer.gif
Jt3kt Aug 29, 2022
5f78253
Update List Expire logic (#91)
jberkers42 Sep 21, 2022
131f383
Add support for Networks in Add-LrListItem (#90)
jberkers42 Sep 21, 2022
ab0febe
Fixes to Get-LrNetworks (#95)
jberkers42 Sep 23, 2022
fd0de0b
Update Version Validation (#94)
lincolnsayhelloworld Sep 23, 2022
9596896
Add test for AddressFamily (#97)
jberkers42 Oct 20, 2022
54f4481
Potential solution to issue #96
Jt3kt Mar 30, 2023
bce76fe
Update LogRhythm.Tools.json
Jt3kt Mar 30, 2023
8ad8220
Update New-LrHost.ps1
Jt3kt Jun 27, 2023
032d33f
Add support for RF v3 API
Jt3kt Jul 17, 2023
9028e48
New v3 RF cmdlets
Jt3kt Jul 17, 2023
fcfac11
Create Add-LrLogSource.ps1
Jt3kt Sep 26, 2023
d536f0b
Create Get-LrLogSourceTypeDetails.ps1
Jt3kt Sep 26, 2023
766d5e1
Create Get-LrMpePolicies.ps1
Jt3kt Sep 26, 2023
4b287ed
Create Get-LrMpePolicy.ps1
Jt3kt Sep 26, 2023
214276a
Create Get-LrMpeRules.ps1
Jt3kt Sep 26, 2023
b23fbf0
Update Update-LrLogSource.ps1
Jt3kt Sep 26, 2023
b181daf
Update Get-LrLogSourceTypes.ps1
Jt3kt Sep 26, 2023
f0ab317
Create Invoke-ManageWinLocalSources.ps1
Jt3kt Sep 26, 2023
e6691e5
Update Invoke-ManageWinLocalSources.ps1
Jt3kt Sep 27, 2023
011f14d
Update Invoke-ManageWinLocalSources.ps1
Jt3kt Sep 28, 2023
6544874
Exabeam initial
Jt3kt Oct 28, 2024
20d3217
Update Invoke-ManageWinLocalSources.ps1
Jt3kt Oct 28, 2024
9932370
Update ModuleInfo.json
Jt3kt Oct 28, 2024
7d88c54
Cmdlets to support Exa context lists
Jt3kt Nov 20, 2024
135a3f7
Updates
Jt3kt Jan 21, 2025
98888c2
Exabeam Resources
Jt3kt May 30, 2025
cd2f09f
Update path for RecordedFuture
Jt3kt May 30, 2025
b38817c
Update Invoke-ExaExportFHK.ps1
Jt3kt Jun 3, 2025
2739932
Update Invoke-ExaExportFHK.ps1
Jt3kt Jun 4, 2025
d839cea
Update Get-LrtExaFHKResults.ps1
Jt3kt Jun 4, 2025
cc97879
Basic Updates
Jt3kt Jun 30, 2025
2c33d7f
Hour restart logic
Jt3kt Jun 30, 2025
b798f14
Update Invoke-ExaExportFHK.ps1
Jt3kt Jun 30, 2025
a6a771b
Add end hour support
Jt3kt Jun 30, 2025
55091c2
Updated handler for start
Jt3kt Jun 30, 2025
a774026
Fix order and error
Jt3kt Jun 30, 2025
7df4bdb
Add search date as the core
Jt3kt Jun 30, 2025
40237f8
Small updates
Jt3kt Jul 1, 2025
3ba2ab0
Add month roll over handler
Jt3kt Jul 1, 2025
02661b3
Update cmdlet to generic search
Jt3kt Jul 1, 2025
a94840f
Update Invoke-ExaExportFHK.ps1
Jt3kt Jul 1, 2025
51fabae
Rename Get-ExaSearch
Jt3kt Jul 15, 2025
3772c5f
Improve logic to go from older to newer logs
Jt3kt Jul 15, 2025
0208957
Update Invoke-ExaExportFHK.ps1
Jt3kt Jul 15, 2025
d87f724
Update Get-ExaSearch.ps1
Jt3kt Aug 22, 2025
51ff4af
Delete Invoke-ExaExportFHK.ps1
Jt3kt Aug 22, 2025
b76d7ec
Update Exabeam Search and New cmdlet for retrieving correlation rules
Jt3kt Jan 2, 2026
158bfd4
Merge branch 'dev' into dev-1.4.0
Jt3kt Jan 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 92 additions & 0 deletions src/Public/Exabeam/Correlation/Get-ExaCorrelationRules.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
using namespace System
using namespace System.IO
using namespace System.Collections.Generic

Function Get-ExaCorrelationRules {
<#
.SYNOPSIS
Get a list of Correlation Rules.
.DESCRIPTION
Returns a list of all correlation rules that match the name.
.PARAMETER Credential
PSCredential containing an API Token in the Password field.
.INPUTS
The Name parameter can be provided via the PowerShell pipeline.
.OUTPUTS
PSCustomObject representing the specified LogRhythm List and its contents.

If parameter ListItemsOnly is specified, a string collection is returned containing the
list's item values.
.EXAMPLE
PS C:\> Get-ExaCorrelationRules
---

.NOTES
Exabeam-API
.LINK
https://github.com/LogRhythm-Tools/LogRhythm.Tools
#>

[CmdletBinding()]
Param(
[Parameter(Mandatory = $false, Position = 0)]
[ValidateNotNull()]
[string] $Name,

[Parameter(Mandatory = $false, Position = 1)]
[ValidateNotNull()]
[pscredential] $Credential = $LrtConfig.Exabeam.ApiKey
)

Begin {
$Me = $MyInvocation.MyCommand.Name
Set-LrtExaToken
# Request Setup
$BaseUrl = $LrtConfig.Exabeam.BaseUrl
$Token = $LrtConfig.Exabeam.Token.access_token

# Define HTTP Headers
$Headers = [Dictionary[string,string]]::new()
$Headers.Add("accept", "application/json")
$Headers.Add("Authorization", "Bearer $Token")

# Define HTTP Method
$Method = $HttpMethod.Get

# Define HTTP URI
$RequestUrl = $BaseUrl + "correlation-rules/v2/rules"

# Check preference requirements for self-signed certificates and set enforcement for Tls1.2
Enable-TrustAllCertsPolicy
}

Process {


$QueryParams = [Dictionary[string,string]]::new()

if ($Name) {
$QueryParams.Add('nameContains', $Name)
}


if ($QueryParams.Count -gt 0) {
$QueryString = $QueryParams | ConvertTo-QueryString
Write-Verbose "[$Me]: QueryString is [$QueryString]"
$RequestUrl += $QueryString
}

Write-Verbose "[$Me]: Request URL: $RequestUrl"

# Send Request
$Response = Invoke-RestAPIMethod -Uri $RequestUrl -Headers $Headers -Method $Method -Origin $Me
if (($null -ne $Response.Error) -and ($Response.Error -eq $true)) {
return $Response
}


return $Response
}

End { }
}
6 changes: 5 additions & 1 deletion src/Public/Exabeam/Search/Get-ExaSearch.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@ Function Get-ExaSearch {
[ValidateNotNull()]
[string[]] $Fields,

[Parameter(Mandatory = $false, Position = 5)]
[ValidateNotNull()]
[int] $Limit = 1000000,

[Parameter(Mandatory = $false, Position = 5)]
[ValidateNotNull()]
[string[]] $ShaFields,
Expand Down Expand Up @@ -109,7 +113,7 @@ Function Get-ExaSearch {
}

$body = [PSCustomObject]@{
limit = 1000000
limit = $Limit
distinct = $Distinct
filter = $Filter
startTime = $startTime
Expand Down
20 changes: 10 additions & 10 deletions src/Public/RecordedFuture/General/Invoke-RfExaSync.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ Function Invoke-RfExaSync {
}
}

$Results = Add-ExaContextRecords -ContextId $ListStatusHash.id -Data $RfHashRiskDescriptions -Operation 'append'
$Results = Add-ExaContextRecords -ContextId $ListStatusHash.id -Data $RfHashRiskDescriptions -Operation 'replace'

Start-Sleep -Seconds 30
# User Enabled Hash List
Expand Down Expand Up @@ -165,7 +165,7 @@ Function Invoke-RfExaSync {
}
}

$Results = Add-ExaContextRecords -ContextId $ListStatusUrl.id -Data $RfUrlRiskDescriptions -Operation 'append'
$Results = Add-ExaContextRecords -ContextId $ListStatusUrl.id -Data $RfUrlRiskDescriptions -Operation 'replace'

Start-Sleep -Seconds 30
# User Enabled URL List
Expand Down Expand Up @@ -216,7 +216,7 @@ Function Invoke-RfExaSync {
}
}

$Results = Add-ExaContextRecords -ContextId $ListStatusDomain.id -Data $RfDomainRiskDescriptions -Operation 'append'
$Results = Add-ExaContextRecords -ContextId $ListStatusDomain.id -Data $RfDomainRiskDescriptions -Operation 'replace'

Start-Sleep -Seconds 30
# User Enabled URL List
Expand Down Expand Up @@ -267,7 +267,7 @@ Function Invoke-RfExaSync {
}
}

$Results = Add-ExaContextRecords -ContextId $ListStatusIP.id -Data $RfIPRiskDescriptions -Operation 'append'
$Results = Add-ExaContextRecords -ContextId $ListStatusIP.id -Data $RfIPRiskDescriptions -Operation 'replace'

Start-Sleep -Seconds 30
# User Enabled URL List
Expand Down Expand Up @@ -317,7 +317,7 @@ Function Invoke-RfExaSync {
}
}

$Results = Add-ExaContextRecords -ContextId $ListStatusVuln.id -Data $RfVulnRiskDescriptions -Operation 'append'
$Results = Add-ExaContextRecords -ContextId $ListStatusVuln.id -Data $RfVulnRiskDescriptions -Operation 'replace'

Start-Sleep -Seconds 30
# User Enabled URL List
Expand Down Expand Up @@ -400,7 +400,7 @@ Function Invoke-RfExaSync {
})
}

$Results = Add-ExaContextRecords -ContextId $HashListStatus.id -Data $($Data | Sort-Object risk_level ) -Operation 'append'
$Results = Add-ExaContextRecords -ContextId $HashListStatus.id -Data $($Data | Sort-Object risk_level ) -Operation 'replace'
}

Write-Host "$(Get-TimeStamp) - Clearing Variables: Hash*"
Expand Down Expand Up @@ -488,7 +488,7 @@ Function Invoke-RfExaSync {
})
}

$Results = Add-ExaContextRecords -ContextId $UrlListStatus.id -Data $($Data | Sort-Object risk_level ) -Operation 'append'
$Results = Add-ExaContextRecords -ContextId $UrlListStatus.id -Data $($Data | Sort-Object risk_level ) -Operation 'replace'
}
Write-Host "$(Get-TimeStamp) - Clearing Variables: Url*"
Clear-Variable -Name Url* -ErrorAction SilentlyContinue
Expand Down Expand Up @@ -576,7 +576,7 @@ Function Invoke-RfExaSync {
})
}

$Results = Add-ExaContextRecords -ContextId $DomainListStatus.id -Data $($Data | Sort-Object risk_level ) -Operation 'append'
$Results = Add-ExaContextRecords -ContextId $DomainListStatus.id -Data $($Data | Sort-Object risk_level ) -Operation 'replace'
}

Write-Host "$(Get-TimeStamp) - Clearing Variables: Domain*"
Expand Down Expand Up @@ -666,7 +666,7 @@ Function Invoke-RfExaSync {
})
}

$Results = Add-ExaContextRecords -ContextId $IPListStatus.id -Data $($Data | Sort-Object risk_level ) -Operation 'append'
$Results = Add-ExaContextRecords -ContextId $IPListStatus.id -Data $($Data | Sort-Object risk_level ) -Operation 'replace'
}

Write-Host "$(Get-TimeStamp) - Clearing Variables: IP*"
Expand Down Expand Up @@ -758,7 +758,7 @@ Function Invoke-RfExaSync {
})
}

$Results = Add-ExaContextRecords -ContextId $VulnListStatus.id -Data $($Data | Sort-Object risk_level ) -Operation 'append'
$Results = Add-ExaContextRecords -ContextId $VulnListStatus.id -Data $($Data | Sort-Object risk_level ) -Operation 'replace'
}

Write-Host "$(Get-TimeStamp) - Clearing Variables: Vuln*"
Expand Down
Loading