Controllo password Oracle

Oracle e' uno dei piu' diffusi e conosciuti database relazionale commerciali in particolare per le aziende. Essendo tipicamente utilizzato all'interno di reti private spesso si sottovalutano le configurazioni relative alla sicurezza. Per esempio lasciando le password delle utenze di base impostate con valori di default: chi non conosce le famigerate SYSTEM/MANAGER SYS/CHANGE_ON_INSTALL e SCOTT/TIGER?
Questa pagina descrive come controllare in modo semplice e veloce le password e lo stato di blocco degli utenti principali.

Codice

Per controllare le password si utilizza una query sulla tabella DBA_USER verificando le password crittografate rispetto ad una lista di valori noti. In questo modo la verifica e' immediata. Per eseguire lo script e' necessario il privilegio DBA o comunque l'accesso alla tabella DBA_USERS.
Il codice SQL necessario e':

column password format a16
column account_status format a16

select username, account_status
from dba_users
where password in
('E066D214D5421CCC', '24ABAB8B06281B4C', '72979A94BAD2AF80', '9AAEB2214DCC9A31',
 'C252E8FA117AF049', 'A7A32CD03D3CE8D5', '88A2B2C183431F00', '7EFA02EC7EA6B86F',
 '9B616F5489F90AD7', '4A3BA55E08595C81', 'F894844C34402B67', '3F9FBD883D787341',
 '79DF7A1BD138CF11', '7C9BA362F8314299', '88D8364765FCE6AF', 'F9DA8977092B7B81',
 '9300C0977D7DC75E', 'A97282CE3D94E29E', 'AC9700FD3F1410EB', 'E7B5D92911C831E1',
 'AC98877DE1297365', '66F4EF5650C20355', '84B8CBCA4D477FA3', 'D4C5016086B2DC6A',
 '5638228DAF52805F', 'D4DF7931AB130E37', 'D728438E8A5925E0', '545E13456B7DDEA0', 
 '2FFDCBB4FD11D9DC', '56DB3E89EAE5788E', '402B659C15EAF6CB', '71E687F036AD56E5',
 '24ABAB8B06281B4C', 'A13C035631643BA0', '72979A94BAD2AF80', '4A3BA55E08595C81', 
 '355CBEC355C10FEF', '80294AE45A46E77B', 'E7B5D92911C831E1', 'E74B15A3F7A19CA8', 
 'BEAA1036A464F9F0', 'B1344DC1B5F3D903', '58872B4319A76363', 'F894844C34402B67', 
 '8A8F025737A9097A', '4DE42795E66117AE', '639C32A115D2CA57', '447B729161192C24', 
 '8BF0DA8E551DE1B9', '482B65ME0BEAF6BB', '2D594E86F93B17A1', '970BAA5B81930A40')
order by account_status desc, username;
Eseguendo lo script con SQL*Plus si ottiene l'elenco delle utenze le cui password sono quelle di default e l'indicazione se l'utente e' attivo o meno.

11g

Nella versione 11g sono state modificate diverse impostazioni relative alla sicurezza (eg. encryption con SHA-1) e le password criptate non sono piu' visibili nella tabella dba_users [NdA ora si trovano nella tabella SYS.USER$]. E' pero' disponibile una vista che consente un semplice controllo delle password non modificate:

select d.username, u.account_status
 from dba_users_with_defpwd d, dba_users u
 where d.username=u.username;

Note

Lo script riportato in questo documenti verifica le principali utenze amministrative di Oracle ed di Oracle Applications controllando che non abbiano la password di default.
Utenze con password di default ma in stato LOCK non sono un problema, al contrario vanno modificate immediatamente le password delle utenze in stato OPEN.

Avvertenza Questo script e' adatto ad un controllo di sicurezza e non per un exploit. La sicurezza di un database Oracle correttamente configurato e' generalmente buona. Un attacco diretto brute-force e' lento (Oracle rallenta la risposta dopo i primi tentativi di accesso errati), le password sono memorizzate crittografate con un algoritmo non reversibile, gli utenti che superano il limite di tentativi di accesso vengono disabilitati.
Oracle e' sicuramente piu' soggetto ad attacchi DOS... esiste comunque una possibilita' per un attacco Brute Force sia rivolto ad Oracle sia ad altri Database.

Altri documenti di questo tipo su questa pagina Hack


Titolo: Controllo password Oracle
Livello: Hack (5/5)
Data: 31 Ottobre 2012 🎃 Halloween
Versione: 1.0.2 - 14 Febbraio 2014 ❤️ San Valentino
Autore: mail [AT] meo.bogliolo.name