# T1518.001 - Software Discovery: Security Software Discovery

## Description from ATT&CK

> Adversaries may attempt to get a listing of security software, configurations, defensive tools, and sensors that are installed on a system or in a cloud environment. This may include things such as cloud monitoring agents and anti-virus. Adversaries may use the information from [Security Software Discovery](https://attack.mitre.org/techniques/T1518/001) during automated discovery to shape follow-on behaviors, including whether or not the adversary fully infects the target and/or attempts specific actions.
> 
> Example commands that can be used to obtain security software information are [netsh](https://attack.mitre.org/software/S0108), <code>reg query</code> with [Reg](https://attack.mitre.org/software/S0075), <code>dir</code> with [cmd](https://attack.mitre.org/software/S0106), and [Tasklist](https://attack.mitre.org/software/S0057), but other indicators of discovery behavior may be more specific to the type of software or security system the adversary is looking for. It is becoming more common to see macOS malware perform checks for LittleSnitch and KnockKnock software.
> 
> Adversaries may also utilize the [Cloud API](https://attack.mitre.org/techniques/T1059/009) to discover cloud-native security software installed on compute infrastructure, such as the AWS CloudWatch agent, Azure VM Agent, and Google Cloud Monitor agent. These agents  may collect  metrics and logs from the VM, which may be centrally aggregated in a cloud-based monitoring platform.

[Source](https://attack.mitre.org/techniques/T1518/001)

## Atomic Tests

- [Atomic Test #1: Security Software Discovery](#atomic-test-1-security-software-discovery)
- [Atomic Test #2: Security Software Discovery - powershell](#atomic-test-2-security-software-discovery---powershell)
- [Atomic Test #3: Security Software Discovery - ps (macOS)](#atomic-test-3-security-software-discovery---ps-macos)
- [Atomic Test #4: Security Software Discovery - ps (Linux)](#atomic-test-4-security-software-discovery---ps-linux)
- [Atomic Test #5: Security Software Discovery - pgrep (FreeBSD)](#atomic-test-5-security-software-discovery---pgrep-freebsd)
- [Atomic Test #6: Security Software Discovery - Sysmon Service](#atomic-test-6-security-software-discovery---sysmon-service)
- [Atomic Test #7: Security Software Discovery - AV Discovery via WMI](#atomic-test-7-security-software-discovery---av-discovery-via-wmi)
- [Atomic Test #8: Security Software Discovery - AV Discovery via Get-CimInstance and Get-WmiObject cmdlets](#atomic-test-8-security-software-discovery---av-discovery-via-get-ciminstance-and-get-wmiobject-cmdlets)
- [Atomic Test #9: Security Software Discovery - Windows Defender Enumeration](#atomic-test-9-security-software-discovery---windows-defender-enumeration)
- [Atomic Test #10: Security Software Discovery - Windows Firewall Enumeration](#atomic-test-10-security-software-discovery---windows-firewall-enumeration)
- [Atomic Test #11: Get Windows Defender exclusion settings using WMIC](#atomic-test-11-get-windows-defender-exclusion-settings-using-wmic)

### Atomic Test #1: Security Software Discovery

Methods to identify Security Software on an endpoint

when sucessfully executed, the test is going to display running processes, firewall configuration on network profiles
and specific security software.

**Supported Platforms:** Windows

**auto_generated_guid:** `f92a380f-ced9-491f-b338-95a991418ce2`

#### Attack Commands: Run with `command_prompt`!

```cmd
netsh.exe advfirewall  show allprofiles 
netsh.exe advfirewall firewall dump
netsh.exe advfirewall show currentprofile
netsh.exe advfirewall firewall show rule name=all
netsh.exe firewall show state
netsh.exe firewall show config
sc query windefend
powershell.exe /c "Get-Process | Where-Object { $_.ProcessName -eq 'Sysmon' }"
powershell.exe /c "Get-Service | where-object {$_.DisplayName -like '*sysm*'}"
powershell.exe /c "Get-CimInstance Win32_Service -Filter 'Description = ''System Monitor service'''"
tasklist.exe
tasklist.exe | findstr /i virus
tasklist.exe | findstr /i cb
tasklist.exe | findstr /i defender
tasklist.exe | findstr /i cylance
tasklist.exe | findstr /i mc
tasklist.exe | findstr /i "virus cb defender cylance mc"
```

### Atomic Test #2: Security Software Discovery - powershell

Methods to identify Security Software on an endpoint

when sucessfully executed, powershell is going to processes related AV products if they are running.
Note that, depending on the privilege of current user, get-process | ?{$_.Description -like "*"} may not return the processes related to AV products of the check.
For instance, only with Administrator right, you can see the process description of McAffee processes. Hence, it is better to use get-process | ?{$_.ProcessName -like "*"},
if you know the name of those processes.

**Supported Platforms:** Windows

**auto_generated_guid:** `7f566051-f033-49fb-89de-b6bacab730f0`

#### Attack Commands: Run with `powershell`!

```powershell
get-process | ?{$_.Description -like "*virus*"}
get-process | ?{$_.Description -like "*carbonblack*"}
get-process | ?{$_.Description -like "*defender*"}
get-process | ?{$_.Description -like "*cylance*"}
get-process | ?{$_.Description -like "*mc*"}
get-process | ?{$_.ProcessName -like "*mc*"}
get-process | Where-Object { $_.ProcessName -eq "Sysmon" }
```

### Atomic Test #3: Security Software Discovery - ps (macOS)

Methods to identify Security Software on an endpoint
when sucessfully executed, command shell  is going to display AV/Security software it is running.

**Supported Platforms:** macOS

**auto_generated_guid:** `ba62ce11-e820-485f-9c17-6f3c857cd840`

#### Attack Commands: Run with `sh`!

```sh
ps aux | egrep 'Little\ Snitch|CbOsxSensorService|falcond|nessusd|santad|CbDefense|td-agent|packetbeat|filebeat|auditbeat|osqueryd|BlockBlock|LuLu'
```

### Atomic Test #4: Security Software Discovery - ps (Linux)

Methods to identify Security Software on an endpoint
when sucessfully executed, command shell  is going to display AV/Security software it is running.

**Supported Platforms:** Linux

**auto_generated_guid:** `23b91cd2-c99c-4002-9e41-317c63e024a2`

#### Attack Commands: Run with `sh`!

```sh
ps aux | egrep 'falcond|nessusd|cbagentd|td-agent|packetbeat|filebeat|auditbeat|osqueryd'
```

### Atomic Test #5: Security Software Discovery - pgrep (FreeBSD)

Methods to identify Security Software on an endpoint
when sucessfully executed, command shell is going to display AV/Security software it is running.

**Supported Platforms:** Linux

**auto_generated_guid:** `fa96c21c-5fd6-4428-aa28-51a2fbecdbdc`

#### Attack Commands: Run with `sh`!

```sh
pgrep -l 'bareos-fd|icinga2|cbagentd|wazuh-agent|packetbeat|filebeat|osqueryd'
```

### Atomic Test #6: Security Software Discovery - Sysmon Service

Discovery of an installed Sysinternals Sysmon service using driver altitude (even if the name is changed).

when sucessfully exe