Do you sudowin?

Uno dei commenti al mio post che spiegava come funziona UAC «dietro le quinte» mi segnalava l'esistenza di Sudowin un port per Windows del comando sudo disponibile su tutte le piattaforme *nix. Il tool l'avevo notato in precedenza, ma il commento è stata una buona scusa per approfondire: alla fine si è rivelato un utile esercizio e credo di aver capito qualcosa di più di come funziona sudo ad esempio su Ubuntu.

 doyousudo

La prima sostanziale differenza tra il mondo Windows e il mondo *nix è la figura dell'amministratore. In Windows è amministratore qualsiasi utente appartenga al gruppo Administrators: in *nix c'è un unico amministratore - qualcuno mi corregga se sbaglio - che è root. Discutere sui pro ed i contro di ciascuna delle due soluzioni porterebbe ad una [in]utile guerra di religione, per cui non ci provo neanche. La seconda soluzione però ha qualche implicazione di tipo pratico su sistemi "condivisi": come dare la possibilità ad un utente di svolgere compiti amministrativi senza condividere la password di root (un'idea molto malvagia!)? Sudo colma appunto tale «lacuna» dando la possibilità ad altri utenti (i sudoers) di lanciare processi con permessi di root; il tutto è ampiamente configurabile tramite file di configurazione.

L'implementazione per Windows, per me più immediatamente comprensibile, esegue il «gioco di prestigio» in questo modo: durante l'installazione del tool viene installato un servizio che gira con le credenziali di LocalSystem e che si pone in ascolto di «richieste» sudo. In presenza di una richiesta legittima il servizio aggiunge l'utente al gruppo degli amministratori, lancia il processo richiesto usando il nuovo token, e subito dopo rimuove l'utente dal gruppo.

La differenza con l'approccio UAC è evidente: con sudowin un qualsiasi utente potrebbe essere messo in grado di lanciare alcuni processi senza necessariamente essere parte del gruppo degli amministratori.

Sudowin può essere usato per due scopi:

  1. dare la possibilità ad un amministratore di girare normalmente con credenziali non amministrative, esattamente come avviene con l'Admin Approval Mode (AAM) di Vista.
  2. dare la possibilità ad un utente "normale" di eseguire un numero limitato di applicazioni che potrebbe richiedere permessi amministrativi.

Per quanto riguarda il primo uso, sudowin potrebbe essere perfetto per XP in quanto l'AAM di Vista è sotto molti aspetti più sicuro e conveniente (ad esempio le credenziali vengono richieste in un desktop separato a prova di spoofing): perció ne sconsiglio l'uso - a tale scopo - su Vista; tuttavia qualcuno che ha più dimistichezza con il mondo *nix potrebbe trovarlo più «familiare».

Per quanto riguarda la seconda possibilità sudowin è perfetto: l'unico problema è che occorre estrema attenzione nel configurare quali applicazioni inserire in una eventuale white list. Dare ad un utente qualsiasi la possibilità di eseguire notepad con un token da amministratore non è molto diverso da aggiungere l'utente al gruppo degli amministratori (ovviamente se l'utente è scaltro ed ha cattive intenzioni): l'elevation of priviledges via notepad è una delle più banali da individuare.

Un'ultima nota a commento di un'affermazione contenuta nella documentazione di sudowin:

UAC also introduces Admin Approval Mode. This is what is confused for sudo. Essentially, administrators are prompted for their credentials or their consent whenever they need to perform a sensitive task. Because the administrators are being prompted for their own passphrase this may seem a lot like sudo, but there is one very important thing to remember – the administrator is not being granted any priviliges that she does not already have. There is no privilege escalation occurring.

In realtà per via dello split token la privilege escalation avviene eccome!

-quack

Technorati tags: ,

Pubblicato lunedì 21 aprile 2008 alle 4:12 PM - 30 commenti so far
Archiviato in: Windows, Security

Omaggio a Dylan Dog

Complice una combinazione casuale di fattori, ieri mi sono ritrovato in ufficio con giacca nera, camicia rossa, jeans azzurri, stivaletti simil-Clarks e la mia buona dose di incubi:

dylandog

Peccato solo che da queste parti Dylan Dog non sia mai "atterrato"

Sempre a proposito di misteri, quello riguardo la vulnerabilità di Adobe Flash sfruttata al CanSecWest comincia a dipanarsi, grazie all'aiuto attento di un collega:

To claim a laptop as your own, you will need to read the contents of a designated file on each system through exploitation of a 0day code execution vulnerability (ie: no directory traversal style bugs).

Fonte: le regole del CanSecWest

A quanto pare non c'era neanche bisogno di bypassare il Protected Mode di IE in quanto, come già spiegato altrove, il Protected Mode non previene la lettura dei file ma ne limita semplicemente le operazioni di scrittura.

-bau!

Technorati Tags:

Pubblicato venerdì 18 aprile 2008 alle 5:52 PM - 2 commenti so far
Archiviato in: Cazzate

Abilitare la DEP in IE7

Dopo le recenti defaillance di Adobe, e rincuorato dal fatto che su IE8 la DEP sarà abilitata di default, ho deciso di mettere insieme un post-ino su come abilitare la DEP su IE7.

Avviare IE come amministratore (altrimenti la voce relativa alla DEP sarà "disabilitata") cliccando col tasto destro sull'icona di IE:

IERunAsAdmin

Infine cliccare sulla voce di menù Internet Options, selezionare il tab Advanced e spuntare la voce "Enable memory protection ...":

ie7-dep-enable

Perché la DEP non è abilitata di default? Per motivi di compatibilità con alcuni plugin abbastanza "popolari". Visto che le nuove versioni di tali plugin sembrerebbero essere compatibili con la DEP, vale la pena provare. Se qualcosa non funziona disabilitare è altrettanto semplice.

Un'altra soluzione per evitare il pericolo di exploit basati su Flash, è fare uso di plugin che creano una white-list di siti considerati "affidabili" e disabilitano di default le maledette animazioni (usate spesso per bypassare il popup-blocker) per tutti gli altri siti. Per IE7 tale lavoro è svolto egregiamente da IE7Pro. YMMV

-quack

Technorati Tags: ,

Pubblicato giovedì 17 aprile 2008 alle 7:24 PM - 7 commenti so far
Archiviato in: Security

GAME OVER

Questa vulnerabilità di Flash (Adobe alla ribalta) sta facendo il giro della blogosfera. Il pdf è riassunto brillantemente in questo post di Thomas Ptacek intitolato Dowd's Inhuman Flash Exploit.

Inumano perché non solo Dowd è riuscito a creare un exploit quasi impossibile oltre che cross-browser (e probabilmente anche cross-platform): ma l'exploit - che altro non è che una animazione Flash - è costruito in maniera tale da lanciare la remote execution senza neanche interrompere l'animazione vettore dell'exploit!! Un genio!

gameover

-quack

Technorati Tags:

Pubblicato mercoledì 16 aprile 2008 alle 11:13 PM - 3 commenti so far
Archiviato in: Security

SQL Execution

Wikipedia, a proposito di SQL Injection, recita:

La SQL injection è una tecnica dell'hacking mirata a colpire le applicazioni web che si appoggiano su un database di tipo SQL. Questo exploit sfrutta l'inefficienza dei controlli sui dati ricevuti in input ed inserisce codice maligno all'interno di una query SQL. Le conseguenze prodotte sono imprevedibili per il programmatore: l'Sql Injection permette al malintezionato di autenticarsi con ampi privilegi in aree protette del sito (ovviamente, anche senza essere in possesso delle credenziali d'accesso) e di visualizzare e/o alterare dati sensibili.

Insomma per ottenere un attacco basato su una SQL Injection, il sito vulnerabile deve prendere in input un parametro malformato e trasformarlo accidentalmente in una query SQL.

Ma se il sito come parametro prende direttamente una query? Si ottiene la nuova frontiera delle SQL Injection: la SQL Execution!

Enjoy!

Technorati Tags:

Pubblicato martedì 15 aprile 2008 alle 10:06 PM - 3 commenti so far
Archiviato in: Security