Ora proveremo un altro modo per iniettare SQL. Vediamo se il database continua a rilasciare messaggi di errore. Questo metodo è chiamato "attesa di un ritardo" e il ritardo stesso è scritto come segue: waitfor delay 00:00:01'. Lo copio dal nostro file e lo incollo nella barra degli indirizzi del mio browser.
Tutto questo si chiama "blind SQL injection su base temporanea". Tutto quello che stiamo facendo qui è dire "attendere un ritardo di 10 secondi". Se noti, in alto a sinistra abbiamo la scritta "connecting ...", cioè cosa fa la nostra pagina? Attende una connessione e, dopo 10 secondi, sul monitor viene visualizzata la pagina corretta. Con questo trucco, chiediamo al database di permetterci di porgli qualche domanda in più, ad esempio, se l'utente è Joe, allora dobbiamo aspettare 10 secondi. È chiaro? Se l'utente è dbo, attendi anche 10 secondi. Questo è il metodo Blind SQL Injection.
Penso che gli sviluppatori non risolvano questa vulnerabilità durante la creazione di patch. Questa è SQL injection, ma neanche il nostro programma IDS la vede, come i precedenti metodi di SQL injection.
Proviamo qualcosa di più interessante. Copia questa riga con l'indirizzo IP e incollala nel browser. Ha funzionato! La barra TCP nel nostro programma è diventata rossa, il programma ha rilevato 2 minacce alla sicurezza.
Ok, vediamo cosa è successo dopo. Abbiamo una minaccia per la shell XP e un'altra minaccia è un tentativo di iniezione SQL. In totale, ci sono stati due tentativi di attacco all'applicazione web.
Ok, ora aiutami con la logica. Abbiamo un pacchetto di dati di manomissione in cui l'IDS afferma di aver risposto a varie manomissioni della shell XP.
Se scendiamo, vediamo una tabella di codici HEX, alla cui destra c'è un flag con il messaggio xp_cmdshell + &27ping, e ovviamente questo è male.
Vediamo cosa è successo qui. Cosa ha fatto SQL Server?
Il server SQL ha detto "puoi avere la password del mio database, puoi ottenere tutti i record del mio database, ma amico, non voglio che tu esegua i tuoi comandi su di me, non è affatto bello"!
Quello che dobbiamo fare è assicurarci che anche se l'IDS segnala una minaccia alla shell XP, la minaccia venga ignorata. Se utilizzi SQL Server 2005 o SQL Server 2008, se viene rilevato un tentativo di SQL injection, la shell del sistema operativo verrà bloccata, impedendoti di continuare il tuo lavoro. È molto fastidioso. Quindi cosa dobbiamo fare? Dovresti provare a chiedere molto affettuosamente al server. Dovrei dire qualcosa del tipo "per favore, papà, posso avere questi biscotti"? Questo è quello che faccio, seriamente, chiedo molto educatamente al server! Sto chiedendo più opzioni, sto chiedendo la riconfigurazione e sto chiedendo che le impostazioni della shell dei comandi XP vengano modificate per rendere disponibile la shell dei comandi perché ne ho bisogno!
Vediamo che IDS ha rilevato questo - vedi, 3 minacce sono già state notate qui.
Guarda qui: abbiamo fatto saltare in aria i registri di sicurezza! Sembra un albero di Natale, tante cose sono appese qui! Ben 27 minacce alla sicurezza! Evviva ragazzi, abbiamo catturato questo hacker, l'abbiamo preso!
Non siamo preoccupati che rubi i nostri dati, ma se può eseguire i comandi di sistema nella nostra "scatola", questo è già serio! Puoi tracciare il percorso Telnet, FTP, puoi prendere il controllo dei miei dati, va bene, ma non mi preoccupo di questo, semplicemente non voglio che tu prenda il controllo del guscio della mia "scatola".
Voglio parlare di cose che mi hanno davvero colpito. Lavoro per organizzazioni, lavoro per loro da molti anni, e te lo dico perché la mia ragazza pensa che io sia disoccupato. Lei pensa che io non faccia altro che salire sul palco e chiacchierare, questo non può essere considerato lavoro. Ma io dico: “no, gioia mia, sono un consulente”! Questa è la differenza: dico quello che penso e vengo pagato per questo.
Mettiamola in questo modo: noi hacker amiamo rompere il guscio e per noi non c'è piacere più grande al mondo che "ingoiare il guscio". Quando gli analisti IDS scrivono le loro regole, puoi vedere che le scrivono in un modo che protegge dall'hacking della shell. Ma se parli con il CIO del problema dell'estrazione dei dati, ti offrirà di pensare a due opzioni. Diciamo che ho un'applicazione che produce 100 "pezzi" all'ora. Cosa è più importante per me: garantire la sicurezza di tutti i dati in questa applicazione o la sicurezza della shell "scatola"? Questa è una domanda seria! Di cosa dovresti essere più preoccupato?
Solo perché hai una shell "scatola" rotta non significa necessariamente che qualcuno abbia ottenuto l'accesso al funzionamento interno delle applicazioni. Sì, è più che probabile, e se non è ancora successo, potrebbe presto. Ma tieni presente che molti prodotti di sicurezza sono costruiti sulla premessa che un utente malintenzionato si aggira nella tua rete. Quindi prestano attenzione all'esecuzione dei comandi, all'inserimento dei comandi, e dovresti notare che questa è una cosa seria. Sottolineano vulnerabilità banali, script cross-site molto semplici, iniezioni SQL molto semplici. Non si preoccupano delle minacce complesse, non si preoccupano dei messaggi crittografati, non si preoccupano di quel genere di cose. Si può dire che tutti i prodotti di sicurezza cercano rumore, cercano "abbaiare", vogliono fermare qualcosa che ti morde la caviglia. Ecco cosa ho imparato quando ho a che fare con i prodotti per la sicurezza. Non è necessario acquistare prodotti per la sicurezza, non è necessario guidare il camion in retromarcia. Hai bisogno di persone competenti e qualificate che capiscano la tecnologia. Sì, mio Dio, gente! Non vogliamo buttare milioni di dollari in questi problemi, ma molti di voi hanno lavorato in questo campo e sanno che non appena il vostro capo vede un annuncio, corre al negozio urlando "dobbiamo prendere questa cosa!". Ma non ne abbiamo davvero bisogno, dobbiamo solo sistemare il casino che c'è dietro di noi. Questa è stata la premessa per questa performance.
Un ambiente ad alta sicurezza è qualcosa su cui ho dedicato molto tempo per comprendere le regole su come funzionano i meccanismi di protezione. Una volta compresi i meccanismi di protezione, aggirare la protezione non è difficile. Ad esempio, ho un'applicazione Web protetta dal proprio firewall. Copio l'indirizzo del pannello delle impostazioni, lo incollo nella barra degli indirizzi del browser e vado alle impostazioni e provo ad applicare il cross-site scripting.
Di conseguenza, ricevo un messaggio del firewall su una minaccia: sono stato bloccato.
Penso che sia brutto, sei d'accordo? Stai affrontando un prodotto di sicurezza. Ma cosa succede se provo qualcosa del genere: inserisci il parametro Joe'+OR+1='1 nella stringa
Come puoi vedere, ha funzionato. Correggimi se sbaglio, ma abbiamo visto SQL injection sconfiggere il firewall dell'applicazione. Ora facciamo finta di voler avviare una società di sicurezza, quindi indossiamo il cappello del produttore di software. Ora incarniamo il male perché è un cappello nero. Sono un consulente, quindi posso farlo con i produttori di software.
Vogliamo creare e implementare un nuovo sistema di rilevamento delle intrusioni, quindi avvieremo una campagna di rilevamento delle manomissioni. Snort, in quanto prodotto open source, contiene centinaia di migliaia di firme di minacce di intrusione. Dobbiamo agire in modo etico, quindi non ruberemo queste firme da altre applicazioni e le inseriremo nel nostro sistema. Ci sediamo e le riscriviamo tutte - ehi Bob, Tim, Joe, venite qui e fate una rapida rassegna di tutte quelle 100 firme!
Dobbiamo anche creare uno scanner di vulnerabilità. Sai che Nessus, il rilevatore automatico di vulnerabilità, ha ben 80 firme e script che controllano le vulnerabilità. Agiremo di nuovo in modo etico e li riscriveremo personalmente tutti nel nostro programma.
La gente mi chiede: "Joe, fai tutti questi test con software open source come Mod Security, Snort e simili, quanto sono simili ai prodotti di altri fornitori?" Rispondo loro: "Non si assomigliano affatto!" Poiché i venditori non rubano roba dai prodotti di sicurezza open source, si siedono e scrivono tutte queste regole da soli.
Se riesci a far funzionare le tue firme e le stringhe di attacco senza utilizzare prodotti open source, questa è una grande opportunità per te. Se non sei in grado di competere con i prodotti commerciali, muovendoti nella giusta direzione, devi trovare un concetto che ti aiuti a farti conoscere nel tuo campo.
Tutti sanno che bevo. Lascia che ti mostri perché bevo. Se hai mai fatto un controllo del codice sorgente nella tua vita, ti ubriacherai sicuramente, fidati di me, dopodiché inizierai a bere.
Quindi il nostro linguaggio preferito è il C++. Diamo un'occhiata a questo programma: Web Knight è un'applicazione firewall per server web. Ha eccezioni predefinite. È interessante: se distribuisco questo firewall, non mi proteggerà da Outlook Web Access.
Meraviglioso! Questo perché molti fornitori di software estraggono regole da alcune applicazioni e le inseriscono nel loro prodotto senza fare un sacco di ricerche giuste. Quindi, quando distribuisco un'applicazione firewall di rete, penso che tutto ciò che riguarda la webmail sia fatto male! Perché quasi tutte le webmail violano la sicurezza predefinita. Hai un codice web che esegue i comandi di sistema e interroga LDAP o qualsiasi altro archivio di database utente direttamente sul web.
Dimmi, su quale pianeta una cosa del genere può essere considerata sicura? Pensaci: apri Outlook Web Access, premi b ctrl+K, cerchi utenti e tutto il resto, gestisci Active Directory direttamente dal web, esegui comandi di sistema su Linux se usi "squirrel mail" o Horde o altro qualcos'altro. Stai inserendo tutte quelle valutazioni e altri tipi di funzionalità non sicure. Pertanto, molti firewall li escludono dall'elenco delle minacce alla sicurezza, prova a chiedere informazioni al produttore del software.
Torniamo all'applicazione Web Knight. Ha rubato molte regole di sicurezza da uno scanner di URL che scansiona tutti questi intervalli di indirizzi IP. E cosa, tutti questi intervalli di indirizzi sono esclusi dal mio prodotto?
Qualcuno di voi vuole installare questi indirizzi sulla propria rete? Vuoi che la tua rete funzioni su questi indirizzi? Sì, è incredibile. Ok, scorriamo questo programma e guardiamo altre cose che questo firewall non vuole fare.
Si chiamano "1999" e vogliono che il loro server web sia nel passato! Qualcuno di voi ricorda questa schifezza: /scripts, /iishelp, msads? Forse un paio di persone ricorderanno con nostalgia quanto fosse divertente hackerare queste cose. "Ricorda, amico, quanto tempo fa abbiamo "ucciso" i server, è stato bello!".
Ora, se guardi queste eccezioni, vedrai che puoi fare tutte queste cose - msads, stampanti, iisadmpwd - tutte queste cose di cui nessuno ha bisogno oggi. E i comandi che non ti è permesso eseguire?
Questi sono arp, at, cacls, chkdsk, cipher, cmd, com. Quando li elenchi, sei sopraffatto dai ricordi dei vecchi tempi, "amico, ricordi come abbiamo rilevato quel server, ricordi quei giorni"?
Ma ecco cosa è veramente interessante: qualcuno vede WMIC qui o forse PowerShell? Immagina di avere una nuova applicazione che funziona eseguendo script sul sistema locale, e questi sono script moderni, perché vuoi eseguire Windows Server 2008, e farò un ottimo lavoro nel proteggerlo con regole progettate per Windows 2000. In modo che la prossima volta che un venditore viene da te con la sua applicazione web, chiedigli: "Ehi amico, hai provveduto a cose come l'amministratore di bit o l'esecuzione di comandi PowerShell, hai controllato tutte le altre cose, perché stiamo andando aggiornare e utilizzare la nuova versione di DotNET"? Ma tutte queste cose dovrebbero essere presenti nel prodotto di sicurezza per impostazione predefinita!
La prossima cosa di cui voglio parlarti sono gli errori logici. Andiamo a 192.168.2.6. Questa è più o meno la stessa applicazione della precedente.
Potresti notare qualcosa di interessante se scorri verso il basso la pagina e fai clic sul link Contattaci.
Se guardi il codice sorgente della scheda "Contattaci", che è uno dei metodi di pentesting che faccio sempre, noterai questa riga.
Pensaci! Ho sentito che molti alla vista di questo hanno detto: "Wow"! Una volta ho fatto dei test di penetrazione per, diciamo, una banca miliardaria, e lì ho notato qualcosa di simile. Quindi, non abbiamo bisogno di SQL injection o cross site scripting: abbiamo la cosa principale, questa barra degli indirizzi.
Quindi, senza esagerare - la banca ci ha detto che avevano entrambi - e uno specialista di rete e un ispettore web, e non hanno fatto commenti. Cioè, consideravano normale che un file di testo potesse essere aperto e letto attraverso un browser.
Cioè, puoi semplicemente leggere il file direttamente dal file system. Il capo del loro team di sicurezza mi ha detto: "sì, uno degli scanner ha rilevato questa vulnerabilità, ma l'ha considerata minore". A cui ho risposto, va bene, dammi un minuto. Ho digitato filename=../../../../boot.ini nella barra degli indirizzi e sono stato in grado di leggere il file di avvio del file system!
A questo mi hanno detto: “no, no, no, questi non sono file critici”! Ho risposto, ma è Server 2008, vero? Hanno detto di sì, è lui. Dico - ma questo server ha un file di configurazione situato nella directory principale del server, giusto? "Giusto", rispondono. "Fantastico", dico, "e se l'attaccante lo fa" e digito filename=web.config nella barra degli indirizzi. Dicono: e allora, non vedi nulla sul monitor?
Dico: cosa succede se faccio clic con il pulsante destro del mouse sul monitor e seleziono l'opzione "Mostra codice pagina"? E cosa troverò qui? "Niente di critico"? Vedrò la password dell'amministratore del server!
E dici che qui non ci sono problemi?
Ma la mia parte preferita è la prossima. Non mi lasci eseguire comandi nella casella, ma posso rubare la password e il database dell'amministratore del server web, guardare l'intero database, strappare tutto il database e gli errori di sistema e andarmene via con tutto. Questo è il caso in cui il cattivo dice "ehi amico, oggi è un grande giorno"!
Non lasciare che i prodotti per la sicurezza diventino la tua malattia! Non lasciare che i prodotti per la sicurezza ti facciano ammalare! Trova dei nerd, dai loro tutti quei cimeli di Star Trek, falli interessare, incoraggiali a stare con te, perché quei puzzolenti nerd che non si fanno la doccia tutti i giorni sono quelli che fanno funzionare le tue reti come segue! Queste sono le persone che aiuteranno i tuoi prodotti di sicurezza a funzionare correttamente.
Dimmi, quanti di voi riescono a stare a lungo nella stessa stanza con una persona che dice costantemente: "oh, devo stampare urgentemente questo copione!", E chi è sempre impegnato con questo? Ma hai bisogno di persone che facciano funzionare i tuoi prodotti di sicurezza.
Per ribadire, i prodotti di sicurezza sono stupidi perché le luci sono sempre sbagliate, fanno costantemente cose di merda, semplicemente non forniscono sicurezza. Non ho mai visto un buon prodotto per la sicurezza che non richieda un ragazzo con un cacciavite per modificarlo dove è necessario farlo funzionare più o meno normalmente. È solo un enorme elenco di regole che dicono che è brutto, e basta!
Quindi ragazzi, voglio che prestiate attenzione all'istruzione, a cose come la sicurezza, i politecnici, perché ci sono molti corsi online gratuiti sui problemi di sicurezza. Impara Python, impara Assembly, impara i test delle applicazioni web.
Ecco cosa ti aiuterà davvero a proteggere la tua rete. Le persone intelligenti proteggono le reti, i prodotti di rete non proteggono! Torna al lavoro e dì al tuo capo che hai bisogno di più budget per persone più intelligenti, so che ora è una crisi ma digli comunque che abbiamo bisogno di più soldi per le persone per istruirli. Se compriamo un prodotto ma non compriamo un corso su come usarlo perché è costoso, allora perché lo compriamo se non insegneremo alla gente come usarlo?
Ho lavorato per molti fornitori di prodotti di sicurezza, ho passato quasi tutta la mia vita a implementare questi prodotti e mi sto stancando di tutti questi controlli di accesso alla rete e roba del genere perché ho installato ed eseguito tutti questi prodotti di merda. Un giorno sono andato da un cliente, volevano implementare lo standard 802.1x per il protocollo EAP, quindi avevano indirizzi MAC e indirizzi secondari per ogni porta. Sono venuto, ho visto che era brutto, mi sono girato e ho iniziato a premere i pulsanti della stampante. Sai, la stampante può stampare una pagina di prova dell'apparecchiatura di rete con tutti gli indirizzi MAC e gli indirizzi IP. Ma si è scoperto che la stampante non supporta lo standard 802.1x, quindi dovrebbe essere esclusa.
Quindi ho scollegato la stampante e ho cambiato l'indirizzo MAC del mio laptop nell'indirizzo MAC della stampante e ho collegato il mio laptop, aggirando così questa costosa soluzione MAC, pensaci! Quindi a che serve questa soluzione MAC per me se una persona può semplicemente far passare qualsiasi apparecchiatura come una stampante o un telefono VoIP?
Quindi per me oggi, pentesting significa passare il tempo cercando di capire e comprendere un prodotto di sicurezza che il mio cliente ha acquistato. Ora ogni banca in cui eseguo un test di penetrazione ha tutti questi HIPS, NIPS, LAUGTHS, MACS e un sacco di altri acronimi che fanno schifo. Ma sto cercando di capire cosa stanno cercando di fare questi prodotti e come stanno cercando di farlo. Quindi, una volta che ho capito quale metodologia e logica usano per fornire protezione, aggirarlo non diventa affatto difficile.
Il mio prodotto preferito, con cui vi lascio, si chiama MS 1103. È un exploit basato su browser che spruzza HIPS, Host Intrusion Prevention Signature o Host Intrusion Prevention Signature. In effetti, ha lo scopo di aggirare le firme HIPS. Non voglio mostrarti come funziona perché non voglio prendermi il tempo per dimostrarlo, ma fa un ottimo lavoro nell'aggirare questa protezione e voglio che tu la adotti.
OK ragazzi, ora vado.
Alcuni annunci 🙂
Grazie per stare con noi. Ti piacciono i nostri articoli? Vuoi vedere contenuti più interessanti? Sostienici effettuando un ordine o raccomandando agli amici,
Dell R730xd 2 volte più economico nel data center Equinix Tier IV ad Amsterdam? Solo qui
Fonte: habr.com