threat-intelligence

Threat Intelligence Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "threat-intelligence" with this command: npx skills add sherifeldeeb/agentskills/sherifeldeeb-agentskills-threat-intelligence

Threat Intelligence Skill

Gather, analyze, and disseminate cyber threat intelligence with IOC extraction, threat actor profiling, and MITRE ATT&CK mapping.

Capabilities

  • IOC Extraction: Extract indicators from text, logs, and reports

  • IOC Management: Deduplicate, validate, and enrich indicators

  • Threat Profiling: Document threat actors and campaigns

  • ATT&CK Mapping: Map threats to MITRE ATT&CK framework

  • Intelligence Reports: Generate threat bulletins and assessments

  • Feed Processing: Parse and normalize threat feeds

Quick Start

from cti_utils import IOCExtractor, ThreatActor, IntelReport

Extract IOCs from text

extractor = IOCExtractor() iocs = extractor.extract_from_text(''' Malware connects to 192.168.1.100 and evil.com. Hash: d41d8cd98f00b204e9800998ecf8427e ''') print(iocs)

Document threat actor

actor = ThreatActor('APT29', aliases=['Cozy Bear', 'The Dukes']) actor.add_ttp('T1566', 'Phishing') actor.set_motivation('espionage')

Generate intel report

report = IntelReport('Emerging Ransomware Campaign') report.add_ioc('ip', '10.0.0.1', 'C2 server') print(report.generate())

Usage

IOC Extraction

Extract indicators of compromise from various text sources.

Example:

from cti_utils import IOCExtractor

extractor = IOCExtractor()

Extract from text

text = ''' The malware was downloaded from hxxp://malware[.]evil[.]com/payload.exe It connects to C2 server at 192.168.100.50 on port 443. The file hash is: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4 Email originated from attacker@phishing.com '''

iocs = extractor.extract_from_text(text)

print(f"IPs: {iocs['ip']}") print(f"Domains: {iocs['domain']}") print(f"URLs: {iocs['url']}") print(f"Hashes: {iocs['hash']}") print(f"Emails: {iocs['email']}")

Defang/refang IOCs

defanged = extractor.defang('http://evil.com') # hxxp://evil[.]com refanged = extractor.refang('hxxp://evil[.]com') # http://evil.com

Validate IOCs

valid = extractor.validate_ioc('ip', '192.168.1.1') # True invalid = extractor.validate_ioc('ip', '999.999.999.999') # False

IOC Management

Manage collections of indicators with context.

Example:

from cti_utils import IOCCollection

collection = IOCCollection('Campaign-2024-001')

Add IOCs with context

collection.add_ioc( ioc_type='ip', value='192.168.1.100', context='C2 server', confidence='high', source='Sandbox analysis' )

collection.add_ioc( ioc_type='domain', value='malware.evil.com', context='Payload delivery', confidence='medium', source='Network logs' )

collection.add_ioc( ioc_type='hash', value='a1b2c3d4e5f6...', context='Ransomware executable', confidence='high', source='EDR' )

Deduplicate

collection.deduplicate()

Export formats

print(collection.to_csv()) print(collection.to_json()) print(collection.to_stix()) # STIX 2.1 format

Threat Actor Profiling

Document threat actors and their characteristics.

Example:

from cti_utils import ThreatActor

actor = ThreatActor( name='APT29', aliases=['Cozy Bear', 'The Dukes', 'YTTRIUM'] )

Set attributes

actor.set_motivation('espionage') actor.set_sophistication('advanced') actor.set_origin('Russia')

Add TTPs (MITRE ATT&CK)

actor.add_ttp('T1566.001', 'Spearphishing Attachment') actor.add_ttp('T1059.001', 'PowerShell') actor.add_ttp('T1071.001', 'Web Protocols') actor.add_ttp('T1486', 'Data Encrypted for Impact')

Add targeting

actor.add_target_sector('Government') actor.add_target_sector('Healthcare') actor.add_target_region('North America') actor.add_target_region('Europe')

Add tools

actor.add_tool('Cobalt Strike') actor.add_tool('Mimikatz')

Add infrastructure

actor.add_infrastructure('ip', '192.168.1.100', 'C2 server') actor.add_infrastructure('domain', 'actor-c2.com', 'Primary C2')

Generate profile

print(actor.generate_profile())

Campaign Tracking

Track threat campaigns over time.

Example:

from cti_utils import Campaign

campaign = Campaign( name='Operation DarkSide', first_seen='2024-01-01', threat_actor='APT29' )

Add campaign details

campaign.set_description(''' Targeted campaign against financial institutions using spearphishing emails with malicious Excel attachments. ''')

campaign.set_objective('Financial theft and espionage')

Add IOCs

campaign.add_ioc('domain', 'campaign-c2.evil.com') campaign.add_ioc('hash', 'abc123...', 'Excel dropper')

Add TTPs

campaign.add_ttp('T1566.001', 'Initial access via phishing') campaign.add_ttp('T1059.005', 'VBA macro execution')

Add targets

campaign.add_target('Financial Services', 'North America')

Timeline events

campaign.add_event('2024-01-01', 'First phishing emails observed') campaign.add_event('2024-01-05', 'New C2 infrastructure identified') campaign.add_event('2024-01-10', 'Malware variant updated')

Generate report

print(campaign.generate_report())

MITRE ATT&CK Mapping

Map threats to the ATT&CK framework.

Example:

from cti_utils import ATTACKMapper

mapper = ATTACKMapper()

Map techniques

mapper.add_technique('T1566.001', 'Spearphishing used for initial access') mapper.add_technique('T1059.001', 'PowerShell scripts executed') mapper.add_technique('T1055', 'Process injection observed') mapper.add_technique('T1486', 'Files encrypted with ransomware')

Generate matrix view

print(mapper.generate_matrix())

Get technique details

print(mapper.get_technique_info('T1566.001'))

Export for ATT&CK Navigator

mapper.export_navigator('attack_layer.json')

Intelligence Reports

Generate threat intelligence reports.

Example:

from cti_utils import IntelReport

report = IntelReport( title='Emerging Ransomware Campaign Targeting Healthcare', classification='TLP:AMBER' )

Executive summary

report.set_summary(''' A new ransomware campaign has been identified targeting healthcare organizations in North America. The campaign uses phishing emails with malicious attachments to gain initial access. ''')

Key findings

report.add_finding('New ransomware variant identified: "MedLocker"') report.add_finding('Campaign active since January 2024') report.add_finding('At least 5 healthcare organizations targeted')

Add IOCs

report.add_ioc('hash', 'abc123...', 'Ransomware executable') report.add_ioc('domain', 'medlocker-payment.onion', 'Payment portal') report.add_ioc('ip', '192.168.1.100', 'C2 server')

Add TTPs

report.add_ttp('T1566.001', 'Phishing with malicious attachments') report.add_ttp('T1486', 'Data encryption')

Recommendations

report.add_recommendation('Block IOCs at perimeter') report.add_recommendation('Update endpoint detection signatures') report.add_recommendation('Conduct phishing awareness training')

Generate outputs

print(report.generate()) print(report.generate_executive_brief())

Configuration

Environment Variables

Variable Description Required Default

CTI_FEED_API_KEY

API key for threat feeds No None

CTI_OUTPUT_DIR

Output directory for reports No ./output

Supported IOC Types

  • ip - IPv4 and IPv6 addresses

  • domain - Domain names

  • url - Full URLs

  • hash - MD5, SHA1, SHA256 hashes

  • email - Email addresses

  • cve - CVE identifiers

Limitations

  • No Live Feeds: Feed fetching requires manual configuration

  • Offline ATT&CK: Uses embedded technique data

  • No Enrichment APIs: External enrichment not included

Troubleshooting

Invalid IOC Format

IOC validation uses standard regex patterns:

Valid

extractor.validate_ioc('ip', '192.168.1.1') # True

Invalid

extractor.validate_ioc('ip', '192.168.1.256') # False

Defanging Issues

Use consistent defanging format:

Standard defanging

extractor.defang('http://evil.com')

Returns: hxxp://evil[.]com

Related Skills

  • incident-response: Apply CTI during incidents

  • soc-operations: CTI-informed detection

  • research: General research capabilities

References

  • Detailed API Reference

  • MITRE ATT&CK

  • STIX 2.1 Specification

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Security

malware-forensics

No summary provided by upstream source.

Repository SourceNeeds Review
Security

vulnerability-management

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

email-forensics

No summary provided by upstream source.

Repository SourceNeeds Review