Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Adversaries may make use of Domain Generation Algorithms (DGAs) to dynamically identify a destination domain for command and control traffic rather than relying on a list of static IP addresses or ...
.claude/skills/cyberstrikeus-t1568-002-domain-generation-algorithms/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 57% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 46% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -38% | 0% |
| case-17 | ✗→✓ | ▲ Improved | -22% | 0% |
> Sub-technique of: T1568
Adversaries may make use of Domain Generation Algorithms (DGAs) to dynamically identify a destination domain for command and control traffic rather than relying on a list of static IP addresses or domains. This has the advantage of making it much harder for defenders to block, track, or take over the command and control channel, as there potentially could be thousands of domains that malware can check for instructions.
DGAs can take the form of apparently random or “gibberish” strings (ex: istgmxdejdnxuyla.ru) when they construct domain names by generating each letter. Alternatively, some DGAs employ whole words as the unit by concatenating words together instead of letters (ex: cityjulydish.net). Many DGAs are time-based, generating a different domain for each time period (hourly, daily, monthly, etc). Others incorporate a seed value as well to make predicting future domains more difficult for defenders.
Adversaries may use DGAs for the purpose of Fallback Channels. When contact is lost with the primary command and control server malware may employ a DGA as a means to reestablishing command and control.
Platforms: Linux, macOS, Windows, ESXi
> Note: No Atomic Red Team tests available for this technique. See Atomic Red Team GitHub for updates.
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. Malware researchers can reverse engineer malware variants that use DGAs and determine future domains that the malware will attempt to contact, but this is a time and resource intensive effort. Malware is also increasingly incorporating seed values that can be unique for each instance, which would then need to be determined to extract future generated domains. In some cases, the seed that a particular sample uses can be extracted from DNS traffic. Even so, there can be thousands of possible domains generated per day; this makes it impractical for defenders to preemptively register all possible C2 domains due to the cost.
In some cases a local DNS sinkhole may be used to help prevent DGA-based command and control at a reduced cost.
| Finding | Severity | Impact | | ------------------------------------------------- | -------- | ------------------- | | Domain Generation Algorithms technique applicable | Low | Command And Control |
| CWE ID | Title | | ------- | ---------------------------------- | | CWE-300 | Channel Accessible by Non-Endpoint |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-16 | pass→pass | 12,949 | 14,933 | +15% | 1 | 1 | 0% | 1,998 | 3,685 | +84% | 0 | 0 | — |
case-01 | fail→fail | 32,795 | 51,091 | +56% | 1 | 1 | 0% | 4,430 | 8,686 | +96% | 0 | 0 | — |
case-02 | fail→fail | 26,111 | 42,782 | +64% | 1 | 1 | 0% | 4,148 | 8,202 | +98% | 0 | 0 | — |
case-03 | fail→fail | 41,026 | 49,671 | +21% | 1 | 1 | 0% | 5,592 | 7,603 | +36% | 0 | 0 | — |
case-04 | pass→pass | 24,433 | 20,369 | -17% | 1 | 1 | 0% | 3,198 | 4,750 | +49% | 0 | 0 | — |
case-05 | pass→pass | 27,072 | 32,185 | +19% | 1 | 1 | 0% | 3,782 | 6,818 | +80% | 0 | 0 | — |
case-06 | pass→pass | 24,543 | 25,431 | +4% | 1 | 1 | 0% | 3,271 | 4,727 | +45% | 0 | 0 | — |
case-07 | fail→pass | 18,641 | 13,291 | -29% | 1 | 1 | 0% | 2,380 | 2,708 | +14% | 0 | 0 | — |
case-08 | fail→pass | 7,763 | 8,590 | +11% | 1 | 1 | 0% | 1,268 | 1,986 | +57% | 0 | 0 | — |
case-09 | fail→pass | 12,595 | 6,166 | -51% | 1 | 1 | 0% | 1,466 | 2,138 | +46% | 0 | 0 | — |
case-10 | pass→pass | 14,650 | 8,817 | -40% | 1 | 1 | 0% | 1,621 | 1,814 | +12% | 0 | 0 | — |
case-15 | pass→pass | 23,871 | 20,588 | -14% | 1 | 1 | 0% | 2,636 | 3,592 | +36% | 0 | 0 | — |
case-11 | pass→pass | 12,593 | 7,497 | -40% | 1 | 1 | 0% | 1,096 | 1,828 | +67% | 0 | 0 | — |
case-12 | fail→pass | 23,640 | 6,555 | -72% | 1 | 1 | 0% | 2,670 | 1,646 | -38% | 0 | 0 | — |
case-13 | pass→pass | 8,985 | 7,040 | -22% | 1 | 1 | 0% | 726 | 1,714 | +136% | 0 | 0 | — |
case-14 | pass→pass | 15,442 | 11,675 | -24% | 1 | 1 | 0% | 1,442 | 2,451 | +70% | 0 | 0 | — |
case-17 | fail→pass | 15,515 | 7,280 | -53% | 1 | 1 | 0% | 2,159 | 1,687 | -22% | 0 | 0 | — |
case-18 | fail→pass | 18,151 | 3,555 | -80% | 1 | 1 | 0% | 1,988 | 1,757 | -12% | 0 | 0 | — |
case-19 | pass→pass | 26,233 | 16,778 | -36% | 1 | 1 | 0% | 2,785 | 3,041 | +9% | 0 | 0 | — |
case-20 | pass→pass | 7,240 | 7,878 | +9% | 1 | 1 | 0% | 376 | 1,751 | +366% | 0 | 0 | — |
case-21 | fail→pass | 16,504 | 8,731 | -47% | 1 | 1 | 0% | 1,719 | 1,847 | +7% | 0 | 0 | — |
case-22 | fail→pass | 24,245 | 6,744 | -72% | 1 | 1 | 0% | 3,400 | 1,718 | -49% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +36 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.