JonixLUG Forum
Tecnicherie Generali => Sicurezza Informatica => Web Application => Topic started by: NebulasIT on February 27, 2017, 06:44:02 PM
-
La realizzazione di exploit è uno dei pilastri dell’hacking, un programma si compone di un complesso insieme di regole che seguono un flusso
d’esecuzione prestabilito, il quale determina il comportamento del computer. L'exploit è essenzialmente sfruttare la vulnerabilità di quel programma, per farsì che il computer si comporti come vogliamo noi.
Trovare le falle e correggerle richiede molta esperienza e creatività, però bisogna tenere in considerazione che molte volte il programmatore non sempre scrive quello che intendeva realmente fare... Le cause sono di vario tipo, come:
Cambiamenti di sintassi, cambio di idee oppure semplicemente distrazioni.
Ora ne elencheremo i varii tipi:
Fuori-di-uno:
Come ad'esempio una falla di una vecchia versione di OpenSSH:
if (id < 0 || id > channels_alloc) {
che invece si sarebbe dovuta scrivere:
if (id < 0 || id >= channels_alloc) {
Buffer Overflow:
Un exploit che riguarda la corruzione della memoria, ovvero quando per errore o per malizia, vengono inviati più dati della capienza del buffer destinato a contenerli, i dati extra vanno a sovrascrivere le variabili interne del programma, o il suo stesso stack; come conseguenza di ciò, a seconda di cosa è stato sovrascritto e con quali valori, il programma può dare risultati errati o imprevedibili, bloccarsi, o (se è un driver di sistema o lo stesso sistema operativo) bloccare il computer.
Execution of arbitrary code:
l’exploit dei formati delle stringhe.
Con queste tecniche, lo scopo ultimo è quello di assumere il controllo del flusso di esecuzione del
programma target, facendolo saltare a un punto in memoria nel quale è stato posizionato un frammento
di codice malevolo.
Code injection:
Iniettare codice all'interno di un programma per cambiare il corso d'esecuzione.
Tra i più famosi stanno:
-SQL-Injection
-SSI-Injection
-XSS (cross-site scripting)
-HTML-Injection
____________________________________________________________
Ora che sappiamo la differenza tra gli exploit, nei prossimi articoli ci sarà la parte tecnica e pratica, e non solo dal punto di vista dell'uso! Ma anche dal punto di vista della programmazione.
____________________________________________________________
Articolo: http://www.nebulasit.altervista.org/exploit-cosa-sono-e-come-si-programmano/ (http://www.nebulasit.altervista.org/exploit-cosa-sono-e-come-si-programmano/)
-
la definizione tecnica di exploit è "L'exploit è un programma o pezzo di codice che sfrutta una vulnerabilità locale o remota per accedere al sistema" ;)
-
...Od ad alcune delle sue risorse ;)
-
Me ne faccio ben poco della definizione se poi non so exploitare windows xp, ops... :P
-
E se l'XP lo buttassi x passare al Pinguino?
-
Ma xp serve solo a bucarlo :D