Che cosa dovrebbe sapere un tester di penetrazione sui database?

2

Voglio iniziare a conoscere i database dal punto di vista del tester di penetrazione e vorrei sapere quali saranno le cose utili a lungo termine.

Conosce anche qualche buon libro per avviare la mia esperienza con i database?

    
posta Spyros Chiotakis 01.10.2012 - 22:16
fonte

3 risposte

3

Questa domanda è molto ampia. In generale è necessario sapere come sono configurate tutte le diverse tecnologie e quali sono i loro punti deboli (fare riferimento a google).

"Database" è un termine generico. Esistono molti tipi di database che utilizzano lingue diverse:

  • LDAP (directory attiva, OpenLDAP, ...)
  • SQL (MySQL, PostgreSQL, SQL server, Oracle, ...)
  • noSQL (MongoDB, Cassandra, ...)

Durante il pentesting puoi concentrarti sul servizio fornito dal database stesso:

  • l'autenticazione
  • connessioni simultanee

    oppure puoi provare ad accedere al database tramite un programma che si connette ad esso (iniezione LDAP / SQL per esempio).

Anche i mezzi possono essere diversi: potresti voler scaricare i contenuti dal database o provare a fare in modo che il database emetta un comando (se viene eseguito come SYSTEM / root puoi accedere al server sottostante per metterlo in scena più attacchi).

Ci sono tonnellate di libri diversi su database. In generale guardo sempre tutto ciò che O'Reilly ha da offrire. Hanno un processo di revisione e ammissione abbastanza rigoroso. Suggerisco di iniziare con SQL e LDAP come vedrete questi più in the wild rispetto a qualsiasi altro protocollo.

    
risposta data 01.10.2012 - 22:34
fonte
1

A seconda di ciò di cui hai bisogno, il database stesso potrebbe essere un bel primo passo per infiltrare o esfiltrare il resto del sistema operativo. Impara i comandi che ti consentono l'accesso al filesystem (ad esempio LOAD DATA INFILE)

L'utilizzo dei dati dai database può essere molto efficace per l'enumerazione degli account. Spesso i nomi dei database, i nomi degli utenti, il nome della tabella corrispondono ai nomi degli utenti del sistema.

Le password sono i miei contenuti preferiti dei database. Le persone tendono a riutilizzare le password, quindi puoi usarle su account utente di sistema, account di posta elettronica, ecc. Un'altra cosa sulle password nei database, di solito sono memorizzate usando hash schifosi, come il vecchio hash MySQL o l'hash basato su DES di oracle, che sono tutti molto rapidamente crackabili.

Inoltre, puoi trovare ulteriori informazioni sul sistema con SHOW VARIABLES MySQL esempio che mostra i percorsi per vari motori di archiviazione, la piattaforma su cui è in esecuzione, se è 32/64 bit, la versione esatta del database, dove sono le chiavi crittografiche o i certificati, quale altro demone sta ascoltando il demone .. .

Quindi di solito avrai una sorta di meccanismo di subshell, o almeno di abilità di eseguire script SQL dal filesystem. Questa è una comunicazione DB < - > per filesystem, che può essere utile.

    
risposta data 24.01.2013 - 15:45
fonte
1

Vorrei dirti che oltre a quanto sopra imparo anche l'iniezione sql. L'iniezione sql è principalmente per gli sviluppatori, ma è bene sapere che dal momento che stai pensando come un tester di penetrazione.

    
risposta data 25.01.2013 - 06:10
fonte

Leggi altre domande sui tag