Time-Delayed Payload Delivery
Attackers send emails with benign links that become malicious after security scanning completes; exploits the gap between scan-time and click-time.
MITRE ATT&CK: T1566.002Timeline: The Cat and Mouse
2016 β Attack emerges β 2017 β Defenses respond β 2022 β Sophisticated timing β Present
The Evolution
| Phase | Period | What Happened |
|---|---|---|
| ATTACK | 2016 | Attackers discover scan-time vs click-time gap |
| PEAK | 2018-2021 | Weaponization post-delivery becomes common |
| RESPONSE | 2017 | URL rewriting/Safe Links (Microsoft, Proofpoint) |
| Β | 2020 | Continuous URL monitoring post-delivery |
| Β | 2021 | Full page content analysis at click-time |
| ADAPTATION | 2022+ | Very short windows, per-user URLs, scanner detection |
| CURRENT | Present | Cat-and-mouse continues; sophisticated timing attacks |
Key Events with Sources
| Date | Event | Significance | Source |
|---|---|---|---|
| 2016 | Time-delay attacks emerge | Attackers weaponize URLs after security scanning | Proofpoint |
| 2017 | Safe Links released | Microsoft O365 rewrites URLs, checks at click-time | Microsoft |
| 2020 | Continuous monitoring | Post-delivery re-scanning of URLs in emails | Mimecast |
| 2021 | Click-time detonation | Full sandbox analysis when user clicks link | Proofpoint |
| 2022 | Scanner detection | Attackers fingerprint security scanners, serve different content | Cofense |
Overview
Email security scans URLs when emails arrive. Attackers exploit the time gap between scanning and clicking by initially hosting benign content, then switching to malicious content after the email passes inspection. When the victim clicks hours or days later, they reach a phishing page that wasnβt there during scanning.
The Attack
The Time Gap
T+0 (Email Received):
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SECURITY SCAN β
β URL: https://attacker.com/page β
β Content: "Coming Soon" landing page β
β Malware: NONE β
β Verdict: CLEAN β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Email delivered to inbox
T+4 hours (Attacker Action):
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ATTACKER UPDATES PAGE β
β URL: https://attacker.com/page (same URL) β
β Content: Microsoft 365 phishing page β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
T+8 hours (User Clicks):
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β USER EXPERIENCE β
β Clicks link β Phishing page β
β Enters credentials β Compromised β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Technical Methods
Simple Page Swap:
Before scan: Upload innocent page
After scan: Replace with phishing page
JavaScript-Based:
// Serve different content based on time
var launchTime = new Date("2024-01-15T18:00:00Z");
if (new Date() > launchTime) {
loadPhishingContent();
} else {
loadBenignContent();
}
Server-Side Logic:
def serve_page(request):
if is_security_scanner(request):
return benign_page()
if datetime.now() > launch_time:
return phishing_page()
return benign_page()
Redirect Chains:
Email link β Redirector (benign initially)
Later: Redirector updated to point to phishing
Timing Strategies
Weekend Weaponization:
- Send Friday afternoon
- Security scans Friday
- Weaponize Saturday
- Victims click Monday
Business Hours Targeting:
- Send late evening
- Weaponize overnight
- Active when users arrive
Scan Detection:
- Detect security scanner visits (user agent, IP, behavior)
- Only weaponize after scanner has visited
- Ensures scan sees clean content
Why It Works
Scan-Once Limitation:
- Traditional security scans at delivery
- One-time check, verdict cached
- No re-checking later
Attacker Control:
- Full control over when content changes
- Can observe scanner behavior
- Weaponize with precision timing
Volume Advantage:
- Send thousands of emails
- All pass initial scan
- Weaponize single page, affect all
Defenses
URL Rewriting (Safe Links)
Microsoft Safe Links, Proofpoint URL Defense:
Original: https://attacker.com/page
Rewritten: https://safelinks.protection.outlook.com/
?url=https://attacker.com/page
Click β Security checks URL again β Then redirects
Limitation: Attackers can detect rewriting and adapt.
Time-of-Click Scanning
Check URL when clicked, not just when delivered:
- Real-time reputation check
- Page content analysis
- Block if malicious at click time
Continuous Monitoring
Re-scan URLs after delivery:
- Periodic re-checking of links in delivered emails
- Alert if previously clean URLs become malicious
- Retroactive protection
Detonation at Click
Full sandbox analysis at click time:
- Open URL in sandbox
- Analyze actual page content
- Check for credential forms, malware
Attacker Adaptation
Defeating Time-of-Click
Very Short Windows:
Weaponize just before business hours
De-weaponize after expected click window
Re-scan misses malicious period
Per-User Tracking:
Each recipient gets unique URL
Track who has clicked
Weaponize only unclicked URLs
De-weaponize after click
Scanner Detection:
If request from security scanner IP: Serve benign
If request from target organization IP: Serve phishing
Fast Flux
Rapidly change what URL points to:
- Page changes every few minutes
- Scanner sees version A (clean)
- User sees version B (malicious)
Legitimate Infrastructure
Use compromised legitimate sites:
- Good reputation masks malicious intent
- Harder to block known-good domains
- Change content on compromised page
Current State
Status: Active
Time-delayed attacks continue to evolve:
| Defense | Attacker Counter |
|---|---|
| Time-of-click scanning | Very short windows |
| Continuous monitoring | Per-user URLs |
| URL rewriting | Scanner detection |
| Sandbox detonation | Legitimate infrastructure |
Detection Guidance
URL Monitoring
Implement continuous re-scanning:
- Re-check URLs in delivered emails
- Flag URLs that change post-delivery
- Alert on cleanβmalicious transitions
Behavioral Indicators
Suspicious patterns:
- Recently registered domain in email
- URL with no initial content (βcoming soonβ)
- Redirectors in email links
- URLs that resolve differently over time
Click-Time Analysis
Ensure time-of-click protections:
- Enable Safe Links or equivalent
- Configure for all users
- Donβt whitelist external domains
SIEM Correlation
email.delivered_time < click_time - 4 hours
AND click.url.content_changed = true
AND click.url.now_contains credential_form
User Reports
Investigate when users report:
- βLink didnβt work earlier but now shows login pageβ
- βPage looks different than expectedβ
- βI clicked but nothing happened initiallyβ
What Killed It (or Weakened It)
| Defense | Introduced | Impact |
|---|---|---|
| URL Rewriting/Safe Links | 2017 | URLs checked at click-time, not just delivery |
| Continuous URL Monitoring | 2020 | Re-scan URLs periodically after delivery |
| Page Content Analysis | 2021 | Check what page actually contains, not just URL reputation |