Pacchetti di Installazione Malevoli: Installer Packages (T1546.016)

La tecnica T1546.016 sfrutta i pacchetti di installazione software come vettore per ottenere sia persistenza (TA0003) sia privilege escalation (TA0004). Il meccanismo è concettualmente semplice ma operativamente devastante: gli installer contengono script che vengono eseguiti prima o dopo l'installazione vera e propria, e questi script ereditano i privilegi elevati concessi dall'utente al momento del prompt di autorizzazione.

Su macOS parliamo degli script preinstall e postinstall dentro i pacchetti .pkg, su Linux dei maintainer script (preinst, postinst, prerm, postrm) gestiti da dpkg o rpm, mentre su Windows entrano in gioco i file .msi processati da msiexec.exe con le loro Custom Actions. In tutti e tre i casi l'esecuzione avviene con privilegi di root o SYSTEM, trasformando un semplice doppio-click su un installer in un canale di deployment per Launch Daemon, servizi persistenti o payload secondari.

L'impatto reale della tecnica emerge nelle supply chain compromise: il caso più eclatante è la campagna C0057 (3CX Supply Chain Attack) del 2022-2023, dove il malware AppleJeus venne distribuito attraverso installer .dmg legittimi firmati da 3CX, raggiungendo potenzialmente un bacino di 12 milioni di utenti. La superficie di attacco copre desktop workstation, sviluppatori con privilegi elevati e ambienti di build, rendendo T1546.016 uno dei vettori più critici per compromissioni di massa.

In un contesto di red team autorizzato, la simulazione di T1546.016 richiede la costruzione di installer funzionanti che incorporino payload negli hook di installazione. Su macOS il tool nativo è pkgbuild (open source, incluso nei Command Line Tools di Xcode), che permette di specificare una directory --scripts contenente file preinstall e postinstall. Un flusso tipico prevede la creazione della struttura di root con pkgbuild --root ./payload --scripts ./scripts --identifier com.test.demo --version 1.0 output.pkg, dove lo script postinstall è un semplice shell script eseguibile che scrive un plist in /Library/LaunchDaemons/ e lo carica con launchctl load.

Per ottenere maggior realismo si può usare productbuild (open source) per firmare il pacchetto con un Developer ID valido, aggirando parzialmente Gatekeeper. Il framework Mythic C2 (open source) include payload macOS come Poseidon che si prestano a essere impacchettati in questo modo, ed è utile per esercizi di detection engineering.

Su Linux il vettore equivalente si costruisce con dpkg-deb (open source, incluso in Debian/Ubuntu). La directory DEBIAN/ del pacchetto contiene i maintainer script: basta creare un file postinst eseguibile con shebang #!/bin/bash che aggiunga un cron job, un systemd unit o una backdoor SSH, poi impacchettare con dpkg-deb --build ./mypackage. Per RPM il flusso equivalente usa rpmbuild (open source) con la sezione %post dello spec file.

Su Windows la costruzione di MSI malevoli passa da WiX Toolset (open source) o dalla più rapida alternativa Advanced Installer (freemium). WiX permette di definire Custom Actions di tipo Type 34 (esecuzione di file installati) o Type 3072 (esecuzione di script embedded). Un pattern classico è dichiarare una CustomAction che invoca cmd.exe /c verso uno script droppato in %TEMP%. Per test rapidi è possibile abusare del tool msiexec.exe con la sintassi /i package.msi /quiet per validare il comportamento silente.

Per scenari di supply chain simulata, tool come Sigstore cosign (open source) e la manipolazione di ambienti CI/CD (GitLab Runner, Jenkins) permettono di riprodurre la catena osservata in C0057, dove l'attaccante compromise l'ambiente di build prima della firma del pacchetto legittimo. Fondamentale documentare hash prima/dopo e mantenere l'attività confinata in VM isolate senza connettività a repository di produzione.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.
We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.