JonixLUG Forum

Tecnicherie Generali => Sicurezza Informatica => Web Application => Topic started by: NebulasIT on February 27, 2017, 06:44:02 PM

Title: Exploit – Cosa sono e come si programmano
Post 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:

Code: You are not allowed to view links. Register or Login
if (id < 0 || id > channels_alloc) {
che invece si sarebbe dovuta scrivere:
Code: You are not allowed to view links. Register or Login
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/)
Title: Re:Exploit – Cosa sono e come si programmano
Post by: davenull on March 04, 2017, 04:38:52 PM
la definizione tecnica di exploit è "L'exploit è un programma o pezzo di codice che sfrutta una vulnerabilità locale o remota per accedere al sistema" ;)
Title: Re:Exploit – Cosa sono e come si programmano
Post by: g on March 04, 2017, 06:36:38 PM
...Od ad alcune delle sue risorse ;)
Title: Re:Exploit – Cosa sono e come si programmano
Post by: NebulasIT on March 08, 2017, 10:46:05 PM
Me ne faccio ben poco della definizione se poi non so exploitare windows xp, ops...  :P
Title: Re:Exploit – Cosa sono e come si programmano
Post by: g on March 08, 2017, 11:03:53 PM
E se l'XP lo buttassi x passare al Pinguino?
Title: Re:Exploit – Cosa sono e come si programmano
Post by: NebulasIT on March 09, 2017, 07:38:29 AM
Ma xp serve solo a bucarlo  :D