Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Aprile! Scopri di più
La tecnica Shortcut Modification consiste nella creazione o modifica di file collegamento (.lnk) affinché eseguano codice malevolo all'avvio del sistema o al login dell'utente. Rientra in due tattiche distinte: Persistence (TA0003), perché garantisce all'attaccante la sopravvivenza al riavvio, e Privilege Escalation (TA0004), poiché il contesto di esecuzione dello shortcut può ereditare i privilegi dell'utente o del processo che lo lancia.
Il meccanismo è semplice e proprio per questo efficace: la cartella Startup di Windows processa automaticamente ogni .lnk al login, e l'utente medio non distingue un collegamento legittimo da uno manipolato. L'avversario può creare uno shortcut ex-novo che punta a un payload, oppure alterare il campo Target di un collegamento esistente — ad esempio quello di un browser o di un client di messaggistica — per far eseguire prima il malware e poi il programma originale, mascherando l'attività. Alcuni campioni documentati modificano gli shortcut di applicazioni desktop come Telegram, sostituendo il percorso con quello del proprio eseguibile.
Con 4 gruppi APT, 25 software e 3 mitigazioni censite, questa tecnica rappresenta una delle forme di persistenza più trasversali: dal cybercrime finanziario allo spionaggio di stato, la semplicità del vettore .lnk ne garantisce un'adozione diffusa e costante.
L'obiettivo in un engagement red team è dimostrare che la persistenza via shortcut è banale da ottenere e difficile da individuare senza telemetria adeguata. Il test si articola in tre fasi: creazione dello shortcut, verifica dell'esecuzione al login e pulizia.
Creazione di un .lnk nella Startup folder con PowerShell. Questo è il pattern più replicato dai malware censiti — da RogueRobin a Bazar, quasi tutti puntano alla cartella Startup dell'utente corrente.
$ws = New-Object -ComObject WScript.Shell; $sc = $ws.CreateShortcut("$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\Updater.lnk"); $sc.TargetPath = "C:\Temp\payload.exe"; $sc.WindowStyle = 7; $sc.Save()
Il parametro WindowStyle = 7 minimizza la finestra, riducendo la visibilità per l'utente. Dopo il salvataggio, un semplice logout/login conferma l'esecuzione automatica.
Modifica di un collegamento esistente. Il secondo scenario replica il comportamento di MarkiRAT, che altera il target di Telegram per anteporre il proprio eseguibile. Con lo stesso approccio COM:
$ws = New-Object -ComObject WScript.Shell; $sc = $ws.CreateShortcut("C:\Users\Public\Desktop\Telegram.lnk"); $sc.TargetPath = "C:\Temp\wrapper.exe"; $sc.Arguments = "C:\Program Files\Telegram\Telegram.exe"; $sc.IconLocation = "C:\Program Files\Telegram\Telegram.exe,0"; $sc.Save()
Il wrapper lancia il payload e poi il programma legittimo, mantenendo l'apparenza di normalità. L'icona resta identica all'originale grazie al campo IconLocation.
Verifica con strumenti nativi. Per confermare che lo shortcut è in posizione, senza tool esterni:
*Get-ChildItem "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup" -Filter .lnk | Select-Object Name, LastWriteTime
Su un test più avanzato, il framework Empire (open source) offre un modulo dedicato che persiste modificando file .lnk esistenti, utile per dimostrare la catena end-to-end in un esercizio purple team. Lo strumento LNKUp di Harmj0y (open source) consente di generare file .lnk con payload personalizzati direttamente da riga di comando, ideale per automatizzare la fase di weaponization in laboratorio.
Ricorda di documentare hash e timestamp di ogni artefatto creato, per facilitare il clean-up e la correlazione con il blue team.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo