Learn Ethical Hacking (#89) - The Attacker's Perspective - A Day in the Life
Learn Ethical Hacking (#89) - The Attacker's Perspective - A Day in the Life

What will I learn
- How real attackers think -- the decision-making process behind target selection, timing, and methodology;
- Criminal operations -- how ransomware gangs, initial access brokers, and APTs actually operate;
- The underground economy -- dark web marketplaces, access-as-a-service, and the ransomware supply chain;
- Attacker economics -- why some targets are attacked and others are not (it is a business decision);
- Operational mistakes -- how attackers get caught and what this teaches defenders;
- Nation-state vs criminal -- the different motivations, capabilities, and constraints;
- The ethical hacker's advantage -- why understanding the attacker mindset makes you a better defender;
- Defense: thinking like an attacker to anticipate, detect, and disrupt their operations.
Requirements
- A working modern computer running macOS, Windows or Ubuntu;
- Understanding of the full series through Episode 88;
- An appreciation for the ethical responsibility that comes with this knowledge;
- The ambition to learn ethical hacking and security research.
Difficulty
- Intermediate
Curriculum (of the Learn Ethical Hacking Series):
- Learn Ethical Hacking (#1) - Why Hackers Win
- Learn Ethical Hacking (#2) - Your Hacking Lab
- Learn Ethical Hacking (#3) - How the Internet Actually Works - For Attackers
- Learn Ethical Hacking (#4) - Reconnaissance - The Art of Not Being Noticed
- Learn Ethical Hacking (#5) - Active Scanning - Mapping the Attack Surface
- Learn Ethical Hacking (#6) - The AI Slop Epidemic - Why AI-Generated Code Is a Security Disaster
- Learn Ethical Hacking (#7) - Passwords - Why Humans Are the Weakest Cipher
- Learn Ethical Hacking (#8) - Social Engineering - Hacking the Human
- Learn Ethical Hacking (#9) - Cryptography for Hackers - What Protects Data (and What Doesn't)
- Learn Ethical Hacking (#10) - The Vulnerability Lifecycle - From Discovery to Patch to Exploit
- Learn Ethical Hacking (#11) - HTTP Deep Dive - Request Smuggling and Header Injection
- Learn Ethical Hacking (#12) - SQL Injection - The Bug That Won't Die
- Learn Ethical Hacking (#13) - SQL Injection Advanced - Extracting Entire Databases
- Learn Ethical Hacking (#14) - Cross-Site Scripting (XSS) - Injecting Code Into Browsers
- Learn Ethical Hacking (#15) - XSS Advanced - Bypassing Filters and CSP
- Learn Ethical Hacking (#16) - Cross-Site Request Forgery - Making Users Attack Themselves
- Learn Ethical Hacking (#17) - Authentication Bypass - Getting In Without a Password
- Learn Ethical Hacking (#18) - Server-Side Request Forgery - Making Servers Betray Themselves
- Learn Ethical Hacking (#19) - Insecure Deserialization - Code Execution via Data
- Learn Ethical Hacking (#20) - File Upload Vulnerabilities - When Users Upload Weapons
- Learn Ethical Hacking (#21) - API Security - The New Attack Surface
- Learn Ethical Hacking (#22) - Business Logic Flaws - When the Code Works But the Logic Doesn't
- Learn Ethical Hacking (#23) - Client-Side Attacks - Beyond XSS
- Learn Ethical Hacking (#24) - Content Management Systems - Hacking WordPress and Friends
- Learn Ethical Hacking (#25) - Web Application Firewalls - Bypassing the Guards
- Learn Ethical Hacking (#26) - The Full Web Pentest - Methodology and Reporting
- Learn Ethical Hacking (#27) - Bug Bounty Hunting - Getting Paid to Hack the Web
- Learn Ethical Hacking (#28) - The AI Web Attack Surface - AI Features as Vulnerabilities
- Learn Ethical Hacking (#29) - Network Sniffing - Seeing Everything on the Wire
- Learn Ethical Hacking (#30) - Wireless Network Attacks - Breaking Wi-Fi
- Learn Ethical Hacking (#31) - Privilege Escalation - Linux
- Learn Ethical Hacking (#32) - Privilege Escalation - Windows
- Learn Ethical Hacking (#33) - Active Directory Attacks - The Crown Jewels
- Learn Ethical Hacking (#34) - Pivoting and Lateral Movement - Spreading Through Networks
- Learn Ethical Hacking (#35) - Cloud Security - AWS Attack and Defense
- Learn Ethical Hacking (#36) - Cloud Security - Azure and GCP
- Learn Ethical Hacking (#37) - Container Security - Docker and Kubernetes Attacks
- Learn Ethical Hacking (#38) - Infrastructure as Code - Securing the Automation
- Learn Ethical Hacking (#39) - Email Security - Phishing Infrastructure and Defense
- Learn Ethical Hacking (#40) - DNS Attacks - Exploiting the Internet's Foundation
- Learn Ethical Hacking (#41) - Exploitation Frameworks - Metasploit and Cobalt Strike
- Learn Ethical Hacking (#42) - Custom Exploit Development - Writing Your Own
- Learn Ethical Hacking (#43) - Exploit Development Advanced - Modern Mitigations and Bypasses
- Learn Ethical Hacking (#44) - Reverse Engineering - Understanding Binaries
- Learn Ethical Hacking (#45) - Supply Chain Attacks - Poisoning the Source
- Learn Ethical Hacking (#46) - The Human Factor - Why Security Training Fails
- Learn Ethical Hacking (#47) - Physical Security and OSINT - The Forgotten Attack Vectors
- Learn Ethical Hacking (#48) - Insider Threats - When the Call Is Coming from Inside the House
- Learn Ethical Hacking (#49) - Deepfakes and AI Deception - The New Social Engineering
- Learn Ethical Hacking (#50) - Red Team Operations - Simulating Real Attacks
- Learn Ethical Hacking (#51) - Incident Response - When Things Go Wrong
- Learn Ethical Hacking (#52) - Threat Intelligence - Knowing Your Enemy
- Learn Ethical Hacking (#53) - Security Architecture - Designing Systems That Resist Attack
- Learn Ethical Hacking (#54) - Compliance and Governance - The Business of Security
- Learn Ethical Hacking (#55) - Privacy and Data Protection - GDPR, CCPA, and Beyond
- Learn Ethical Hacking (#56) - Cryptocurrency Security - Attacking and Defending Digital Assets
- Learn Ethical Hacking (#57) - IoT and Embedded Security - Hacking the Physical World
- Learn Ethical Hacking (#58) - The AI Security Landscape - Attacking and Defending AI Systems
- Learn Ethical Hacking (#59) - Python for Pentesters - Automating Everything
- Learn Ethical Hacking (#60) - Zig for Security Tools - When Speed and Memory Matter
- Learn Ethical Hacking (#61) - Writing Custom Scanners - Beyond Off-the-Shelf
- Learn Ethical Hacking (#62) - C2 Frameworks - Building Command and Control
- Learn Ethical Hacking (#63) - Payload Generation and Evasion - Defeating Antivirus
- Learn Ethical Hacking (#64) - Fuzzing - Finding Bugs at Machine Speed
- Learn Ethical Hacking (#65) - OSINT Automation - Large-Scale Intelligence Gathering
- Learn Ethical Hacking (#66) - Reporting and Documentation - The Professional Difference
- Learn Ethical Hacking (#67) - Continuous Security - DevSecOps and Pipeline Security
- Learn Ethical Hacking (#68) - Wireless and Bluetooth Exploitation Deep Dive
- Learn Ethical Hacking (#69) - Mobile Application Security - Android and iOS
- Learn Ethical Hacking (#70) - Building a Pentesting Practice - Going Professional
- Learn Ethical Hacking (#71) - Hardening Linux - From Default to Fortress
- Learn Ethical Hacking (#72) - Hardening Windows and Active Directory
- Learn Ethical Hacking (#73) - Network Security Architecture - Defending the Wire
- Learn Ethical Hacking (#74) - Security Monitoring and SIEM - Seeing Everything
- Learn Ethical Hacking (#75) - Threat Hunting - Proactive Detection
- Learn Ethical Hacking (#76) - Digital Forensics Deep Dive - Evidence That Holds Up
- Learn Ethical Hacking (#77) - Malware Analysis - Understanding the Threat
- Learn Ethical Hacking (#78) - Secure Development - Writing Code That Doesn't Get Hacked
- Learn Ethical Hacking (#79) - Securing AI Systems in Production
- Learn Ethical Hacking (#80) - Security Automation - Orchestrating Defense
- Learn Ethical Hacking (#81) - Zero Trust Implementation - Beyond the Buzzword
- Learn Ethical Hacking (#82) - Building a Security Operations Center (SOC)
- Learn Ethical Hacking (#83) - Full Red Team Simulation - External to Domain Admin
- Learn Ethical Hacking (#84) - Cloud Breach Simulation - From S3 Bucket to Account Takeover
- Learn Ethical Hacking (#85) - Defending Against AI-Powered Attacks - A Practical Guide
- Learn Ethical Hacking (#86) - Critical Infrastructure Security - Hospitals, Power Grids, Water
- Learn Ethical Hacking (#87) - The Future of Security - Quantum, AI, and Beyond
- Learn Ethical Hacking (#88) - Building Your Security Career - From Episode 1 to Here
- Learn Ethical Hacking (#89) - The Attacker's Perspective - A Day in the Life (this post)
Learn Ethical Hacking (#89) - The Attacker's Perspective - A Day in the Life
Solutions to Episode 88 Exercises
Exercise 1: Security portfolio (abbreviated).
Published 3 blog posts on GitHub Pages:
1. "HTB Keeper Writeup: From Default Credentials to Root"
(detailed methodology, screenshots, lessons learned)
2. "Building a DNS Enumeration Toolkit in Python"
(tool from ep40 with documentation and GitHub repo)
3. "CVE-2024-3094 XZ Backdoor: A Technical Deep Dive"
(analysis of the XZ supply chain attack, episode 45 reference)
Shared on LinkedIn: 12 likes, 3 connection requests from security
professionals, 1 DM from a recruiter. The writeups demonstrate
methodology better than any certification list.
The CVE-2024-3094 writeup is the strongest portfolio piece of the three, and the reason is specificity. Anyone can post a generic HTB writeup (thousands of people do). But a technical deep dive into the XZ supply chain attack -- connecting it to the supply chain attack concepts from episode 45, analyzing the social engineering that allowed the malicious maintainer to gain commit access over two years of patient trust-building -- demonstrates that you understand the PROBLEM, not just the exploit. The recruiter DM happened because of that post specifically. Hiring managers read writeups the same way attackers read reconnaissance data: they are looking for signal in the noise. Three focused, well-documented posts beat thirty low-effort writeups every single time ;-)
Exercise 2: Career gap analysis (abbreviated).
Target role: Penetration Tester (mid-level)
5 job postings analyzed:
Skill gaps:
Web application testing: STRONG (episodes 11-28, practical experience)
Network/AD testing: MODERATE (lab experience, no client experience)
Cloud security testing: GAP (theory from ep35-36, no practical AWS pentest)
Reporting: MODERATE (ep66 theory, no real client reports)
OSCP: NOT YET
6-month plan:
Month 1-3: OSCP preparation (Proving Grounds + HTB)
Month 4: OSCP exam
Month 5: AWS cloud pentest practice (flAWS.cloud + CloudGoat)
Month 6: first freelance engagement (local business, web app pentest)
The cloud security gap is the one that matters most for career timing. Five years ago, "cloud pentesting" was a specialization. Today it is a baseline expectation. Every single one of those job postings lists cloud security experience because every organization has migrated (or is migrating) workloads to AWS, Azure, or GCP. The cloud breach simulation from episode 84 -- S3 bucket to IAM escalation to full account takeover -- is exactly the attack chain that cloud pentest engagements test for. The 6-month plan correctly prioritizes OSCP first (it is still the industry's gold standard for proving you can hack), but the cloud gap needs to be closed immediately after, because a pentester in 2026 who cannot test cloud environments is like a pentester in 2016 who could not test web applications. The market has moved.
Exercise 3: Community event attendance (abbreviated).
Attended: local OWASP chapter meeting (virtual, 45 attendees)
Topic: "API Security Testing in Microservices Architectures"
Learned:
1. GraphQL introspection as a recon technique (not covered in ep21)
2. gRPC security testing methodology (new to me)
3. API gateway bypass techniques (path normalization issues)
Connected with:
1. Speaker (senior AppSec engineer at a bank -- exchanged LinkedIn)
2. Attendee working on same OSCP cert (study partner potential)
Action item: build a GraphQL-specific testing methodology and
add it to my portfolio blog.
The GraphQL introspection discovery is exactly why community events matter. Episode 21 covered API security -- REST APIs, authentication weaknesses, rate limiting, BOLA/IDOR vulnerabilities. But GraphQL has its own entire attack surface (introspection queries that reveal the full schema, batch query abuse, nested query DoS) that we did not cover in depth. The speaker at this OWASP meeting has been testing GraphQL APIs at a bank for three years. That is three years of production experience in a domain you can learn from in a 45-minute talk plus a 10-minute conversation afterward. No tutorial series (including this one) can replace the insights that come from someone who does this work every day against real targets with real consequences. The study partner connection is equally valuable -- OSCP preparation is notoriously isolating, and having someone to compare methodologies with, share stuck points, and hold each other accountable dramatically improves completion rates.
Episode 88 was about YOUR career -- career paths, portfolios, interviews, mentorship, the question of how you turn 88 episodes of accumulated security knowledge into a profession that pays the bills and keeps you engaged for decades. All of that is important. But to be a truly effective security professional -- whether you are testing defenses or building them -- you need to understand how the people on the OTHER side think. Not just what tools they use (we have covered those exhaustively) but WHY they choose specific targets, WHEN they attack, and HOW they decide what is worth the risk versus what is not worth the effort.
Here we go.
Understanding the Adversary
Eighty-eight episodes taught you techniques. This episode teaches you mindset. The techniques are identical whether used by a pentester or a criminal -- the same SQL injection, the same privilege escalation paths, the same lateral movement methods. What differs is the motivation, the constraints, and the decision-making process that determines which technique gets used against which target and when.
I argue that understanding attacker economics is more important for defenders than understanding attacker techniques. We have spent 88 episodes on techniques. You KNOW how SQL injection works (episode 12), how Active Directory attacks chain together (episode 33), how cloud environments get breached (episode 84). But knowing that an attacker CAN exploit a vulnerability is different from understanding WHY they WOULD exploit it. The "why" is almost always money. And once you understand the economics, you understand how to make the economics work against the attacker -- by raising the cost of attack above the expected return. That is defense reduced to its most fundamental principle.
The Ransomware Economy
Modern ransomware is not a lone hacker in a basement.
It is a multi-layered criminal industry:
Initial Access Brokers (IABs):
What: specialize in gaining initial access to networks
How: phishing, credential buying, exploiting VPN vulnerabilities
Revenue: sell access for $500-$50,000 per network
Business model: volume. Compromise 100 networks, sell access to all.
They do NOT deploy ransomware. They sell the door to someone who does.
Ransomware-as-a-Service (RaaS) operators:
What: build and maintain the ransomware platform
How: develop the encryptor, build the payment portal, manage the
leak site, provide the negotiation infrastructure
Revenue: 20-30% of every ransom paid by affiliates
Examples: LockBit, BlackCat/ALPHV, RansomHub, Play
Affiliates:
What: the actual attackers who deploy the ransomware
How: buy initial access from IABs (or get their own), escalate
privileges, exfiltrate data, deploy ransomware, negotiate payment
Revenue: 70-80% of the ransom
Skill level: varies. Some are sophisticated. Some are script kiddies
using the RaaS operator's playbook.
The attack flow:
1. IAB compromises VPN with stolen credentials ($2,000 on dark web)
2. IAB sells access to an affiliate for $10,000
3. Affiliate spends 2-7 days inside the network:
- Escalates to Domain Admin (episode 33)
- Maps the network (episode 34)
- Identifies critical servers and backups
- Exfiltrates sensitive data (double extortion)
- Disables EDR and security tools
4. Affiliate deploys ransomware across all systems simultaneously
(typically Friday night or holiday -- maximizes damage, minimizes response)
5. Victim finds ransom note Monday morning
6. Negotiation via Tor chat or email
7. Payment in cryptocurrency
8. Affiliate pays RaaS operator their cut
Average ransom demand: $1.5M (2024)
Average payment: $400K (many negotiate down)
Average total cost (including recovery): $4.5M per incident
The specialization is what makes modern ransomware so effective, and it directly mirrors legitimate software industry structure. The IAB is the sales team -- they find and qualify leads (compromised networks). The RaaS operator is the platform team -- they build the product (the ransomware), maintain the infrastructure (leak sites, payment portals), and handle customer support (yes, ransomware groups have customer support for victims who need help paying). The affiliate is the field operator -- they take the qualified lead, execute the engagement, and close the deal.
This division of labor matters for defenders because it means you are NOT defending against one attacker with one skill set. You are defending against a supply chain where each participant optimizes their specific role. The IAB who compromises your VPN might be using techniques from episode 39 (phishing infrastructure) or episode 7 (credential stuffing). The affiliate who deploys the ransomware might follow the exact playbook from episodes 33-34 (AD escalation and lateral movement). The RaaS operator who built the encryptor might be using evasion techniques from episode 63. Each phase of the attack comes from a different specialist operating independantly.
The Friday night deployment timing deserves special attention. Ransomware affiliates overwhelmingly deploy on Friday evenings, holiday weekends, and the nights before major holidays. The reason is pure operational logic: the SOC (episode 82) is running on skeleton crew, incident response (episode 51) takes longer to mobilize, and the business decision-makers who need to authorize ransom payment are unreachable. By the time the full team assembles Monday morning, the encryption has been running for 60+ hours, the exfiltrated data is already on the leak site, and the recovery window has closed. If your organization does not have 24/7 SOC coverage with authority to initiate incident response without executive approval, you have a gap that attackers know about and actively exploit.
How Attackers Choose Targets
Criminal attackers (financially motivated):
Target selection criteria:
1. Revenue: larger companies can pay larger ransoms
2. Sector: healthcare, legal, finance pay fastest (can't operate without data)
3. Security posture: easier targets = less effort = more profit
4. Cyber insurance: insured companies pay more reliably
5. Geography: Western countries pay more than developing nations
How they assess security posture BEFORE attacking:
- Shodan scan: what services are exposed?
- LinkedIn: does the company have a CISO? A security team?
- Job postings: "hiring SOC analyst" = they DON'T have one yet
- SSL/TLS configuration: outdated ciphers = outdated infrastructure
- Email security: no DMARC = likely no email filtering = phishing will work
The economics:
Cost of attack: $5K-$50K (IAB access + time + infrastructure)
Expected ransom: $500K-$5M
Success rate: ~40-60% of targets pay some amount
ROI: 10x-100x return on investment
This is why ransomware exists: it is extremely profitable.
Reducing the ROI (better defenses, not paying ransoms, faster
recovery from backups) is the only way to reduce the threat.
The LinkedIn reconnaissance is something I want to highlight because it connects directly to the OSINT concepts from episode 47 and the reconnaissance methodology from episode 4. An attacker deciding whether to invest $10,000 in IAB access to your network will spend 30 minutes on LinkedIn first. They are looking for signals: Does this company have a dedicated security team? If the company has 500 employees and zero people with "security" in their title, the attacker knows they are probably under-defended. If the company is actively hiring for "SOC Analyst -- Urgent," the attacker knows they have a gap right now. If the CISO just left (LinkedIn shows job changes), the attacker knows there is a leadership vacuum. None of this requires technical hacking. It is pure open-source intelligence, and it costs the attacker nothing but time.
The cyber insurance factor is particularly cynical. Insurers have created a perverse incentive: companies WITH cyber insurance pay ransoms more often (because the insurer covers it), which makes them MORE attractive targets, which drives up insurance premiums, which makes companies less likely to buy insurance, which... you see the cycle. Some ransomware groups specifically TARGET organizations they know have cyber insurance because the payment is more reliable and the negotiation is easier (insurance adjusters are professional negotiators who understand the math). The insurance industry is slowly adapting -- policies now require security controls like MFA and EDR as conditions for coverage -- but the fundamental economic incentive remains.
Nation-state attackers (strategically motivated):
Target selection: determined by intelligence objectives
- Government agencies (diplomatic intelligence)
- Defense contractors (military technology)
- Critical infrastructure (pre-positioning for conflict)
- Technology companies (intellectual property, surveillance)
- Political organizations (election interference)
- Dissidents and journalists (surveillance, intimidation)
Differences from criminals:
- Money is not the objective (they have state budgets)
- Stealth is paramount (detection = diplomatic incident)
- Persistence: they stay for YEARS, not days
- Resources: custom zero-days, dedicated teams, unlimited time
- Rules of engagement: some (avoid allies, avoid escalation)
- Attribution: actively work to avoid or misdirect attribution
Known nation-state groups (attributed by multiple vendors):
APT29 (Russia/SVR): SolarWinds, government espionage
APT28 (Russia/GRU): election interference, Ukraine attacks
Lazarus (North Korea): financial theft (crypto exchanges)
APT41 (China): IP theft, supply chain attacks
Charming Kitten (Iran): dissidents, regional espionage
Having said that, the line between nation-state and criminal is blurring. Lazarus Group (North Korea) is technically a nation-state APT, but their primary objective is financial theft -- stealing cryptocurrency to fund the North Korean weapons program. They operate more like a criminal gang with state backing than a traditional intelligence service. They hit crypto exchanges (episode 56 covered the security of those), DeFi protocols, and even individual high-value wallets. The estimated total stolen by Lazarus exceeds $3 billion as of 2024. North Korea effectively runs a state-sponsored cybercrime operation because international sanctions have cut off traditional revenue sources. When people say "nation-state threat," they sometimes imagine sophisticated spies in a bunker. The reality is often closer to "criminals with government funding and legal immunity" ;-)
Assessing Targets from the Outside
The following script demonstrates how an attacker evaluates a potential target using only externally observable information. Understanding this assessment process is critical for defenders -- if you know what the attacker is looking for, you can either fix the weaknesses or (deliberately) present a harder target than you actually are.
#!/usr/bin/env python3
"""target_assessment.py -- evaluate target attractiveness (defender perspective)"""
SECTOR_RISK = {
'healthcare': {'pay_speed': 'fast', 'multiplier': 1.5,
'reason': 'patient safety pressure'},
'legal': {'pay_speed': 'fast', 'multiplier': 1.3,
'reason': 'client confidentiality obligations'},
'finance': {'pay_speed': 'medium', 'multiplier': 1.4,
'reason': 'regulatory and reputational pressure'},
'manufacturing': {'pay_speed': 'medium', 'multiplier': 1.0,
'reason': 'production downtime costs'},
'education': {'pay_speed': 'slow', 'multiplier': 0.5,
'reason': 'limited budgets'},
'government': {'pay_speed': 'very_slow', 'multiplier': 0.3,
'reason': 'policy against paying ransoms'},
'retail': {'pay_speed': 'medium', 'multiplier': 0.8,
'reason': 'seasonal revenue dependency'},
}
def assess_target(revenue_millions, sector, has_ciso, has_mfa,
has_cyber_insurance, exposed_services, has_dmarc):
"""Score target attractiveness from an attacker's perspective.
All inputs are externally observable -- this is what an attacker
can determine without touching the target's network."""
score = 0
factors = []
# Revenue determines ransom ceiling (typically 1-3% of annual revenue)
sector_info = SECTOR_RISK.get(sector, {'multiplier': 1.0})
base_ransom = revenue_millions * 0.01 * 1000 # in thousands
adjusted_ransom = base_ransom * sector_info.get('multiplier', 1.0)
if not has_ciso:
score += 30
factors.append('no CISO on LinkedIn')
if not has_mfa:
score += 25
factors.append('no MFA on external portals')
if has_cyber_insurance:
score += 15
factors.append('cyber insurance (more likely to pay)')
if exposed_services > 5:
score += 20
factors.append(f'{exposed_services} exposed services on Shodan')
if not has_dmarc:
score += 15
factors.append('no DMARC (phishing will land)')
if sector_info.get('pay_speed') in ('fast',):
score += 20
factors.append(f'sector pays fast: {sector_info["reason"]}')
attack_cost = 15000 # average: IAB fee + affiliate time + infra
roi = adjusted_ransom / attack_cost if attack_cost > 0 else 0
return {
'estimated_ransom_k': round(adjusted_ransom),
'attractiveness': min(score, 100),
'attack_cost': attack_cost,
'estimated_roi': round(roi, 1),
'factors': factors,
'verdict': 'HIGH VALUE' if score >= 60 else
'MODERATE' if score >= 35 else 'LOW PRIORITY',
}
# Example: assess a mid-size hospital
result = assess_target(
revenue_millions=200, sector='healthcare',
has_ciso=False, has_mfa=False,
has_cyber_insurance=True, exposed_services=8,
has_dmarc=False,
)
print(f" Target: 200M revenue healthcare org")
print(f" Estimated ransom: ${result['estimated_ransom_k']}K")
print(f" Attractiveness: {result['attractiveness']}/100 [{result['verdict']}]")
print(f" Estimated ROI: {result['estimated_roi']}x")
print(f" Risk factors:")
for f in result['factors']:
print(f" - {f}")
Run this against your own organization (or a fictional one based on your employer's profile) and the output will show you exactly what an attacker sees. The script is deliberately simple because the attacker's initial assessment IS simple -- it takes 30 minutes of LinkedIn, Shodan, and DNS lookups to determine whether a target is worth pursuing. The defender's job is to make the assessment come back with a low score: hire a CISO (or at least give someone the title on LinkedIn), deploy MFA on all external-facing services, implement DMARC, and reduce the number of exposed services. Every factor you fix removes points from the attacker's scorecard.
The ROI calculation is the part that should shift how you think about security budgets. A $200M healthcare organization without a CISO, without MFA, without DMARC, and with 8 exposed services on Shodan is offering an attacker an estimated 200x return on investment. The cost to deploy MFA organization-wide is maybe $50K-$100K per year. The cost of NOT deploying it is a potential $3M ransom plus $4.5M in recovery costs. The math is not close. Security investment is not a cost -- it is ROI destruction against the attacker's business plan.
Attacker Operational Mistakes
How attackers get caught -- lessons for defenders:
1. Infrastructure reuse
Using the same C2 server for multiple operations.
Threat intelligence links the IP to previous campaigns.
Lesson: monitor for known-bad infrastructure (TI feeds, ep52).
2. Timezone leaks
Compilation timestamps in malware reveal the attacker's timezone.
Activity patterns (when they are active) correlate with timezones.
Multiple Russian APTs only operate during Moscow business hours.
Lesson: analyze attacker activity times for attribution clues.
3. Cryptocurrency tracing
Ransomware payments are on a public blockchain (episode 56).
Law enforcement traces payments through mixers and exchanges.
Colonial Pipeline: FBI recovered $2.3M of the $4.4M ransom by
seizing the Bitcoin wallet the attackers controlled.
4. OpSec failures
LockBit developer left a debug path with his Windows username.
REvil affiliate used the same cryptocurrency wallet for
legitimate purchases and ransom payments.
Hive ransomware operators left server access logs exposed.
5. Undercover operations
Law enforcement runs honeypot operations on dark web forums.
"Hive" ransomware was taken down after FBI infiltrated the
group for 7 months, obtained decryption keys for 1,300 victims.
6. Too much noise
Attackers who scan too aggressively, move too fast, or deploy
ransomware before fully mapping the network trigger alerts that
a patient attacker would not. Speed kills -- OpSec, that is.
The Colonial Pipeline recovery deserves a closer look because it demonstrates something most people do not realize about cryptocurrency and law enforcement. Episode 56 covered cryptocurrency security -- how blockchain transactions are pseudonymous (not anonymous), how chain analysis firms like Chainalysis can trace funds through mixers and tumblers, and how exchanges with KYC requirements create off-ramp chokepoints. The Colonial Pipeline attackers (DarkSide) received 75 Bitcoin (~$4.4M) in ransom. The FBI traced the payment through the blockchain to a wallet where the private key was accessible to law enforcement (the exact method is still classified, but it likely involved seizing infrastructure where the key was stored). They recovered 63.7 Bitcoin (~$2.3M). The attackers made a classic OpSec mistake: they moved the ransom to a wallet whose infrastructure they did not fully control.
The timezone leak is one of my favorites because it is so mundane and so devastating. Sophisticated nation-state groups build custom malware, use zero-day exploits, and operate through layers of proxy infrastructure -- but then their developers compile the malware during Moscow business hours (9 AM to 6 PM UTC+3), take breaks for Russian public holidays, and leave Cyrillic strings in the debug symbols. APT28 (Fancy Bear) was partially attributed because their operation hours mapped perfectly to Russian government work schedules, including lunch breaks. You can build the most sophisticated C2 infrastructure in the world (episode 62), and a compilation timestamp will undo all of it ;-)
The Ethical Hacker's Advantage
You have the same technical knowledge as an attacker.
You have something they do not: authorization.
This matters because:
1. You can test without fear
An attacker who crashes a production server faces no consequences
(they are already committing a crime). But they also cannot ask
the system administrator for help debugging.
You can. You can collaborate with the blue team. You can ask
"what does this error mean?" You can request access to logs.
Authorization enables thorough testing.
2. You understand both sides
An attacker knows offense. A defender knows defense. You know BOTH.
This makes you uniquely valuable -- you can build defenses that
account for real attacker behavior, not theoretical threats.
The best defensive recommendations come from people who have
tried and failed to attack the same system.
3. You can communicate the risk
An attacker steals data. You demonstrate the ABILITY to steal data,
explain the business impact in language executives understand,
and provide actionable remediation. This is more valuable than
the attack itself.
4. You build, not break
The attacker's success is measured by damage caused.
Your success is measured by damage PREVENTED.
Every vulnerability you find and help fix is an attack that
will never succeed. That is the ethical hacker's purpose.
The "you can test without fear" point connects directly to why the red team simulation in episode 83 was so valuable as a learning exercise. In that simulation, we went from external reconnaissance to domain admin -- the same attack chain a real attacker would execute. But when we hit a roadblock (a service that crashed during exploitation), we could restart it, examine the logs to understand WHY it crashed, fix our exploit, and try again. A real attacker who crashes a service during a stealthy operation has just triggered an alert, potentially burned their access, and has no way to examine the logs to understand what went wrong. Authorization turns hacking from a high-risk, single-attempt gamble into a systematic, repeatable methodology.
I argue that the communication advantage is actually the most important one, and it is the skill that seperate good pentesters from great ones. The red team simulation report from episode 83 did not just list vulnerabilities -- it mapped each exploitation step to business impact, calculated the cost of the breach in concrete financial terms, and provided prioritized remediation with estimated implementation costs. An attacker produces a list of stolen data. An ethical hacker produces a business case for security investment. The executive reading that report does not care about the technical details of the Kerberoasting attack (episode 33) -- they care that their entire Active Directory can be compromised in 45 minutes and that the fix (managed service accounts, privilege tiering) costs $200K versus the $4.5M average breach cost. That translation from technical finding to business risk to dollar-denominated remediation is what gets budgets approved and defenses built.
#!/usr/bin/env python3
"""attacker_timeline.py -- model a ransomware attack timeline"""
ATTACK_PHASES = [
{
'phase': 'Initial Access',
'actor': 'IAB',
'duration_days': (1, 14),
'methods': ['phishing (ep39)', 'credential purchase',
'VPN exploit', 'exposed RDP'],
'detection': 'email gateway, SIEM login anomalies (ep74)',
'cost': 2000,
},
{
'phase': 'Access Sale',
'actor': 'IAB -> Affiliate',
'duration_days': (1, 30),
'methods': ['dark web forum listing', 'private broker'],
'detection': 'threat intelligence (ep52) -- monitor for your '
'org mentioned on dark web',
'cost': 10000,
},
{
'phase': 'Internal Recon',
'actor': 'Affiliate',
'duration_days': (1, 3),
'methods': ['AD enumeration (ep33)', 'network scanning (ep5)',
'share discovery'],
'detection': 'unusual LDAP queries, port scans from '
'workstations (ep74)',
'cost': 0,
},
{
'phase': 'Privilege Escalation',
'actor': 'Affiliate',
'duration_days': (1, 2),
'methods': ['Kerberoasting (ep33)', 'local exploits (ep31-32)',
'credential dumping'],
'detection': 'LSASS access alerts, unusual service ticket '
'requests (ep75)',
'cost': 0,
},
{
'phase': 'Data Exfiltration',
'actor': 'Affiliate',
'duration_days': (1, 5),
'methods': ['cloud upload', 'DNS tunneling (ep40)',
'encrypted channels'],
'detection': 'DLP alerts, unusual outbound data volume, '
'DNS anomalies (ep74)',
'cost': 500,
},
{
'phase': 'Ransomware Deployment',
'actor': 'Affiliate',
'duration_days': (0, 1),
'methods': ['group policy push', 'PsExec', 'scheduled task'],
'detection': 'EDR, mass file encryption patterns, '
'shadow copy deletion (ep77)',
'cost': 0,
},
]
def model_attack(has_mfa=False, has_edr=False, has_segmentation=False,
has_siem=False, has_backups=False):
"""Model which attack phases succeed given defensive controls."""
results = []
blocked_at = None
for phase in ATTACK_PHASES:
blocked = False
block_reason = ''
if phase['phase'] == 'Initial Access' and has_mfa:
blocked = True
block_reason = 'MFA blocks credential reuse'
elif phase['phase'] == 'Privilege Escalation' and has_segmentation:
block_reason = 'segmentation limits lateral reach (not blocked)'
elif phase['phase'] == 'Ransomware Deployment' and has_edr:
blocked = True
block_reason = 'EDR detects ransomware behavior'
elif phase['phase'] == 'Data Exfiltration' and has_siem:
block_reason = 'SIEM may detect (depends on rules)'
results.append({
'phase': phase['phase'],
'blocked': blocked,
'reason': block_reason if block_reason else 'no control',
'detection_window': phase['detection'],
})
if blocked and not blocked_at:
blocked_at = phase['phase']
recovery = 'from backups (days)' if has_backups else 'pay ransom or rebuild (weeks)'
return {
'phases': results,
'blocked_at': blocked_at,
'recovery': recovery,
'total_attacker_cost': sum(p['cost'] for p in ATTACK_PHASES),
}
# Scenario: organization with MFA but no EDR
result = model_attack(has_mfa=True, has_edr=False,
has_segmentation=True, has_siem=True,
has_backups=True)
print("Attack simulation (MFA + segmentation + SIEM + backups, no EDR):")
for p in result['phases']:
status = 'BLOCKED' if p['blocked'] else 'SUCCEEDS'
print(f" {p['phase']}: {status} -- {p['reason']}")
print(f" Recovery: {result['recovery']}")
This timeline model demonstrates something that the entire series has been building toward: defense in depth is not a slogan, it is a strategy. MFA blocks initial access (or at least makes it dramatically harder). Network segmentation slows lateral movement. SIEM detects anomalous behavior. EDR catches ransomware deployment. Backups enable recovery without paying. No single control stops the entire attack chain -- but each control removes one phase from the attacker's playbook, and the cumulative effect transforms a 90% success rate into a 10% success rate. The attacker's ROI calculation from the previous section assumed NO controls. With controls, the math flips: the attack costs $12,500, has a 10% success rate, and the expected payout drops to $40K (because backed-up organizations do not pay). That is a 3.2x ROI versus 200x. At 3.2x, the attacker moves on to an easier target.
The AI Slop Connection
AI is lowering the barrier to entry for cybercrime in ways that connect directly to the attacker economics we just analyzed. The cost of the "Initial Access" phase from the attack timeline is dropping because AI can generate convincing phishing emails at scale -- not the obvious "Dear Sir, I am a prince" variety, but personalized, grammatically correct, context-aware emails that reference the target's actual LinkedIn profile, recent company news, and industry jargon. Episode 39 covered phishing infrastructure -- the infrastructure still costs the same, but the content that rides on it is now generated at near-zero marginal cost.
The "script kiddie" of 2020 -- someone who runs Metasploit modules they do not understand (episode 41) -- becomes the "AI kiddie" of 2026: someone who prompts an AI to conduct attacks they do not understand. The technical barrier that used to separate sophisticated attackers from amateurs is collapsing. An affiliate who previously needed to understand Active Directory internals (episode 33) to perform Kerberoasting can now ask an AI to walk them through it step by step. The TECHNIQUE remains the same. The SKILL REQUIRED to execute it has dropped dramatically.
This democratization of attack capability makes the attacker perspective MORE important for defenders to understand, not less. When the attacker economics shift (lower cost per attack = more attacks = broader targeting), the defense cannot rely on being "too small to target" or "not worth the effort." If the effort drops by 90% because AI handles the skilled portions, the targeting threshold drops by 90% too. A mid-size company that was previously safe because the attack cost exceeded the expected ransom is now a viable target because AI reduced the attack cost to near zero.
The ethical hacker who understands both the AI tools AND the underlying techniques has a double advantage: they can test defenses against AI-powered attacks AND they can explain to clients WHY traditional defenses are no longer sufficient. The organizations that still rely on "our employees are trained to spot phishing" as a primary control (episode 46 explained why security training fails) are about to learn that AI-generated phishing defeats human pattern recognition. The organizations that deploy FIDO2 MFA (episode 81) are protected regardless of how convincing the phishing email is, because the authentication is cryptographically bound to the legitimate domain. Architectural controls beat human vigilance. That was true before AI, and it is EVEN MORE true now.
Understanding how attackers think -- their economics, their decision-making, their operational patterns -- is not just academic knowledge for a certification exam. It is the foundation of a security mindset that transforms how you approach every system you interact with. When you look at a network, you stop seeing a topology diagram and start seeing attack paths. When you look at a login page, you stop seeing a user interface and start seeing an authentication boundary. When you look at a job posting, you stop seeing a career opportunity and start seeing OSINT that an attacker can use against the organization. That shift in perspective -- from "how does this work?" to "how could this be abused?" -- is what makes the difference between someone who knows security and someone who THINKS security.
Exercises
Exercise 1: Research a ransomware group (LockBit, BlackCat/ALPHV, or RansomHub). Document: (a) their operational model (RaaS structure, affiliate recruitment), (b) their known TTPs mapped to MITRE ATT&CK, (c) their targeting criteria (which industries, which countries), (d) notable incidents they are responsible for, (e) how they were disrupted (law enforcement actions, if any). Save to ~/lab-notes/ransomware-group-profile.md.
Exercise 2: Conduct a target assessment of your own organization (or a fictional one) FROM THE ATTACKER'S PERSPECTIVE. Use the target_assessment.py script as a starting point but go deeper: (a) what does Shodan show for your external IP ranges, (b) what does LinkedIn reveal (employee count, security team size, tech stack from job postings), (c) what email security is in place (check SPF, DKIM, DMARC via dig txt yourdomain.com), (d) estimated difficulty of initial access based on exposed services, (e) estimated value as a ransomware target based on revenue and sector. Rate the organization's attractiveness to a ransomware affiliate (1-10) and document what you would fix first.
Exercise 3: Design a deception strategy based on attacker behavior patterns from this episode. Deploy 3 honeypots/honeytokens that exploit known attacker behavior: (a) a fake "backup-credentials.xlsx" on a network share (use canarytokens.org to create a canary document), (b) a fake RDP service on port 3389 that logs all connection attempts (use a honeypot like rdppot or a simple Python socket listener), (c) a fake admin account "helpdesk-admin" that triggers an alert on any authentication attempt (create the account in AD with a strong password and alert on Event ID 4625/4624). Document what attacker behavior each deception targets and how you would respond to each alert.
Thanks for your contribution to the STEMsocial community. Feel free to join us on discord to get to know the rest of us!
Please consider delegating to the @stemsocial account (85% of the curation rewards are returned).
Consider setting @stemsocial as a beneficiary of this post's rewards if you would like to support the community and contribute to its mission of promoting science and education on Hive.