OpenParable
Skip to content
← Back to skills

T1071_application-layer-protocol

DevOps & Security

Adversaries may communicate using OSI application layer protocols to avoid detection/network filtering by blending in with existing traffic.

View on GitHub ↗
QUICK START

How to use this skill

Bring this guide into your coding agent with a prompt tailored to the tool you use.

  1. Open your project in Codex.
  2. Copy and paste the prompt below.
  3. Review files and risks before approving any action.
Prompt to paste
Inspect the Agent Skill at https://github.com/CyberStrikeus/CyberStrike/blob/HEAD/.cyberstrike/skill/mitre_attack/TA0011_command-and-control/T1071_application-layer-protocol/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/t1071-application-layer-protocol, but wait for my approval before writing files or running scripts.

Copying this prompt does not install or run the skill. Review third-party files before use.

T1071 Application Layer Protocol

High-Level Description

Adversaries may communicate using OSI application layer protocols to avoid detection/network filtering by blending in with existing traffic. Commands to the remote system, and often the results of those commands, will be embedded within the protocol traffic between the client and server.

Adversaries may utilize many different protocols, including those used for web browsing, transferring files, electronic mail, DNS, or publishing/subscribing. For connections that occur internally within an enclave (such as those between a proxy or pivot node and other nodes), commonly used protocols are SMB, SSH, or RDP.

Kill Chain Phase

  • Command and Control (TA0011)

Platforms: Linux, macOS, Windows, Network Devices, ESXi

What to Check

  • Identify if Application Layer Protocol technique is applicable to target environment
  • Check Linux systems for indicators of Application Layer Protocol
  • Check macOS systems for indicators of Application Layer Protocol
  • Check Windows systems for indicators of Application Layer Protocol
  • Verify mitigations are bypassed or absent (2 known mitigations)
  • Assess detection coverage (1 detection strategies)

How to Test

Atomic Red Team Tests

The following tests are from Atomic Red Team and provide actionable ways to test this technique:

Atomic Test 1: Telnet C2

An adversary may establish Telnet communication from a compromised endpoint to a command and control (C2) server in order to carry out additional attacks on objectives.

Supported Platforms: windows

#{client_path} #{server_ip} --port #{server_port}

Dependencies:

  • A command and control (C2) server can be established by running PathToAtomicsFolder\T1071\bin\telnet_server.exe on a specified server with a specified IP that must be reachable by a client (telnet_client.exe)

Manual Testing

If Atomic Red Team tests are not applicable, manually verify the technique by:

  1. Identify Attack Surface: Determine if the target environment is susceptible to Application Layer Protocol by examining the target platforms (Linux, macOS, Windows).

  2. Assess Existing Defenses: Review whether mitigations for T1071 are in place. If defenses are absent or misconfigured, this technique may be exploitable.

  3. Execute Test: Use tools and methods described in the MITRE ATT&CK page and external references below.

Remediation Guide

M1031 Network Intrusion Prevention

Network intrusion detection and prevention systems that use network signatures to identify traffic for specific adversary malware can be used to mitigate activity at the network level.

M1037 Filter Network Traffic

Use network appliances to filter ingress or egress traffic and perform protocol-based filtering. Configure software on endpoints to filter network traffic.

Detection

Detection of Command and Control Over Application Layer Protocols

Risk Assessment

FindingSeverityImpact
Application Layer Protocol technique applicableMediumCommand And Control

CWE Categories

CWE IDTitle
CWE-300Channel Accessible by Non-Endpoint

References