Shellcode: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Xqbot (discussione | contributi)
m Bot: Modifico: ru:Шелл-код; modifiche estetiche
Riga 1:
Uno '''shellcode''' è un programma in linguaggio [[assembly]] che tradizionalmente esegue una [[Shell (informatica)|shell]], come la [[shell Unix]] '/bin/sh' oppure la shell [[command.com]] sui [[sistema operativo|sistemi operativi]] [[MS-DOS|DOS]] e [[Microsoft Windows]]. Uno shellcode può essere utilizzato per sfruttare un bug mediante un [[exploit]], consentendo ad un [[hacker]] o un [[cracker]] di acquisire l'accesso alla [[riga di comando]] di un [[computer]], o più in generale di eseguire codice arbitrario.
 
== Come funziona uno shellcode ==
 
Gli shellcode sono tipicamente inseriti nella memoria del computer sfruttando [[buffer overflow]] nello [[stack]] e nell'[[heap]], o tramite un [[format string attack]]. L'esecuzione dello shellcode può essere ottenuta sovrascrivendo l'indirizzo di ritorno dello stack con l'indirizzo dello shellcode. In questo modo quando la ''subroutine'' prova a ritornare al chiamante, ritorna invece al codice dello shellcode che apre una riga di comando che può essere usata dal cracker.
 
=== Scoprire l'inserimento di shellcode ===
 
I cracker che scrivono gli shellcode utilizzano spesso tecniche per nascondere il loro attacco. Essi provano generalmente ad aggirare il modo in cui i gli [[Intrusion Detection System]]s (IDS) riconoscono un attacco in arrivo. Un tipico IDS di solito cerca in tutti i pacchetti in arrivo gli spezzoni di codice tipici degli shellcode (spesso un grande array di istruzioni [[NOP (informatica)|NOP]]); se vengono trovati il pacchetto viene scartato prima di arrivare all'applicazione cui è destinato. Il punto debole degli IDS è che non possono fare delle ricerche effettivamente buone poiché richiederebbe troppo tempo, rallentando così la connessione ad [[Internet]].
Riga 13:
Per aggirare questo tipo di misure anti-intrusione, i cracker fanno a volte uso di [[crittazione]], [[codice auto-modificante]], [[codice polimorfico]] e [[codice alfanumerico]].
 
== Voci correlate ==
* [[Buffer overflow]]
* [[Heap overflow]]
Riga 19:
* [[Assembly]]
 
== Collegamenti esterni ==
* [http://www.shell-storm.org/shellcode/ Shell-Storm.org] Database di shellcodes multi-piattaforma.
* http://www.metasploit.com/shellcode/ Contiene esempi di shellcode [[x86]] e non-[[x86]] e un'interfaccia on-line per la generazione e la codifica automatica di shellcode.
Riga 37:
[[ms:Kod cangkerang]]
[[pl:Shellcode]]
[[ru:Код оболочкиШелл-код]]