¿Cómo los hackers encuentran vulnerabilidades en los sistemas operativos de código cerrado?

3

No planeo piratear nada, pero me pregunto cómo los hackers encuentran vulnerabilidades en los sistemas operativos de código cerrado como Windows, ya que no saben exactamente qué está haciendo el código. Por algunas búsquedas en línea, sé que algunos piratas informáticos experimentados escriben y usan "herramientas de escaneo", pero ¿cómo sabrían cómo escribirlas en primer lugar? ¿Y cómo encontraría vulnerabilidades sin un programa de herramientas de escaneo?

    
pregunta user180969 21.08.2018 - 04:35
fuente

2 respuestas

4

Ingeniería inversa , es el proceso mediante el cual un objeto hecho por el hombre se deconstruye para revelar sus diseños, arquitectura o extraer conocimiento del objeto; Similar a la investigación científica, la única diferencia es que la investigación científica tiene que ver con un fenómeno natural. Así es como empezamos.

Esto no es un exploit que codifiqué e implementé, pero noté que en el inicio de Windows 7 la recuperación a veces abre los resultados en notepad.exe. Más importante aún, presumí que notepad.exe se estaba ejecutando como un administrador elevado, también notepad.exe tiene la capacidad de abrir el Explorador de Windows. Por lo tanto, ahora tenía privilegios de administrador elevados sobre todas las particiones de unidad enumeradas. Ahora puedo asegurar que cmd.exe pueda ejecutarse desde la pantalla de bloqueo, que también se ejecuta como un administrador elevado restringido. Así es como me convertí en un admin local en una computadora de la que solo era un usuario y la máquina tenía contraseñas de bios, para protegerme contra este tipo de ataque. Además, este ataque podría omitir BitLocker si se hubiera utilizado.

Este es un tipo de forma en la que deduje que Windows 7 tenía un vector de ataque, del que tenía razón. Aunque, sospecho que su pregunta se centró en las hazañas de día cero. Por lo tanto, herramientas de ingeniería inversa son a menudo la forma. Esto se convierte en prueba de caja negra.

Conelcódigocompilado,presumoqueelprogramadorcodificóelprogramadeunamaneraparticularmientrasobservocómolaentradaafectalasalida.

  • Entrada()=3
  • Código()=...(Nolosabemos,estácompilado)
  • Salida()=10

Podemosdeducirahora,segúnquelaentradasea3ylasalidasea10.Uncálculoprobablepodríaser3*3+1=10.Aunque,tambiénpodríaser3*4-2=10...¿Quépasasihacemosotra:

  • Entrada()=5
  • Código()=...
  • Salida()=16

Entonces,elpatrón5*3+1=16podríaserunpatróncomún,deducimosotrosresultadosyencontramosquécoincidenciaentrenuestrasentradasysalidasprobadas.

Entonces,unafórmulaaritméticacomún,paraelcódigopodríasersum=$input*3+1.

Ahorahemosreducidoloqueeslaingenieríainversa,centrémonosenexplotarunserviciodered,SafarieniOS4.0.2,quepermitió '. pdf' Local Privilege Escalation 'Jailbreak' . Una vulnerabilidad como esta probablemente se hubiera detectado al notar que el navegador se bloquearía (a menudo, un desbordamiento del búfer) al cargar un PDF bajo ciertas condiciones. Específicamente CVE-2010-1797

  

Múltiples desbordamientos de búfer basados en pila en el   Función cff_decoder_parse_charstrings en el CFF Type2 CharStrings   intérprete en cff / cffgload.c en FreeType antes de 2.4.2, como se usa en   Apple iOS antes de 4.0.2 en el iPhone y iPod touch y antes de 3.2.2   en el iPad, permita que los atacantes remotos ejecuten código o causa arbitraria   una denegación de servicio (corrupción de memoria) a través de opcodes CFF diseñados en   Fuentes incrustadas en un documento PDF, como lo demuestra JailbreakMe.   NOTA: algunos de estos detalles se obtienen a partir de información de terceros.

Esta vulnerabilidad permitida que se muestra en JailbreakMe, permite que se ejecute un código arbitrario dentro del navegador web y se eleven a privilegios de root sin su permiso. El navegador se bloquearía seguido del reinicio de iOS, con cierta frecuencia en iOS 4.

  

OllyDbg es un depurador de análisis de nivel de ensamblador de 32 bits para Microsoft®   Windows®. El énfasis en el análisis de código binario lo hace particularmente   útil en casos donde una fuente no está disponible.

Tutorial de ingeniería inversa para principiantes 1 [HD] describe cómo funciona OllyDbg y le debería enseñar a usar esta herramienta en particular para ingeniería inversa.

Esto está lejos de ser una guía completa sobre ingeniería inversa. Como puntos relacionados con Sqlmap, dex2jar, jd-gui, edb-debugger y Valgrind, solo para nombrar algunos, no se han incluido. Sin mencionar la ingeniería inversa de un servidor web de directorio cerrado o la ingeniería inversa de hardware.

    
respondido por el safesploit 21.08.2018 - 06:15
fuente
2

Aparte de lo que Safesploit mencionó, también está el concepto de fuzzing. Esto implica proporcionar datos no válidos, inesperados o aleatorios como entradas a un programa de computadora. Luego, el programa se supervisa para detectar excepciones, como bloqueos, fallos en las aserciones de código incorporadas o para detectar posibles pérdidas de memoria.

    
respondido por el Lucas Kauffman 21.08.2018 - 07:47
fuente

Lea otras preguntas en las etiquetas