¿Cómo encuentran los investigadores de seguridad vulnerabilidades en grandes sitios web como Google, Facebook, PayPal y Ebay? ¿Cuál es el flujo de trabajo que siguen para encontrarlos?

Historia divertida. Un buen amigo mío, lo llamaremos Jeff, es un programador de seguridad de TI líder para una corporación multinacional que por razones de confidencialidad no revelaré aquí. Sin embargo, en un caso particular, Jeff estaba tratando de probar la seguridad del cliente de correo electrónico del “sitio web”, por lo que fingió ser un usuario que olvidó su contraseña.

La historia fue algo como esto: después de elegir una “víctima”, Jeff creó una dirección de correo electrónico alternativa que se parecía a la dirección de correo electrónico que eligió atacar. Luego, envió un correo electrónico al “sitio web” alegando que había olvidado su contraseña y que estaba enviando un correo electrónico desde su dirección alternativa para poder recuperarla.

Jeff tenía un poco de información sobre su víctima y sabía que se llamaba Nick y que tenía un mejor amigo llamado Brian. (Esto se descubrió olfateando en una red wifi pública para capturar fragmentos de mensajes cifrados) Al ver que Jeff era un descifrador de programadores de TI con mucha experiencia, fue increíblemente simple. Los correos electrónicos hablaban de reunirse en un bar local para tomar una copa los jueves (aparentemente siempre salían juntos los jueves). Los mensajes también dieron los nombres de las esposas de ambos hombres y el nombre del perro de Nick. Al buscar el nombre de la barra en un motor de búsqueda estándar (irónicamente, el propio motor de búsqueda del “sitio web”), Jeff pudo establecer de qué ciudad, condado y estado eran residentes. Con una simple búsqueda en todos los archivos de registros de estudiantes de la escuela secundaria local, Jeff pudo establecer a qué escuela secundaria asistió Nick y cuál fue su año de graduación. Con esta información, Jeff pudo realizar una búsqueda en las páginas blancas para establecer la dirección, el número de teléfono, la fecha exacta de nacimiento e incluso la ciudad de nacimiento.

Ahora, Jeff tenía todo lo que necesitaba para el robo de identidad y cuando el “sitio web” le hizo la serie estándar de preguntas de verificación, Jeff respondió a cada una de ellas con facilidad. Aún así, el “sitio web” le negó la contraseña sin un número de identificación que cada usuario mantiene para restaurar su cuenta en casos como estos.

Ahora, la historia se vuelve un poco más complicada. Jeff explicó que nunca había anticipado que tendría que usar su número y, por lo tanto, lo había perdido. Preguntó si podrían enviárselo por correo y, por supuesto, dijeron que estaba bien. Jeff conocía la dirección de Nick, así que ahora era simplemente cuestión de jugar bien sus cartas. Como el envío estándar demora entre 3 y 5 días, Jeff esperó pacientemente calle abajo desde la casa de Nick cada uno de los 3 días en la ventana de entrega esperando al cartero. Se enteró de que tanto Nick como su esposa trabajaban de 8 a 6 todos los días y que el correo siempre llegaba a 1. Con un par de binoculares básicos, Jeff observaba al cartero poner el correo en la caja todos los días y, si no se veía nada de interés, condujo a casa (solo a unos 20 minutos). Al cuarto día, Jeff vio el sello fácilmente reconocible en una de las cartas, por lo que esperó a que el cartero se apartara y luego pasó por el buzón lo más rápido posible y enganchó la carta.

Tan pronto como llegó a casa, volvió a llamar al sitio web y les leyó el código. Así de fácil, el “sitio web” envió a la dirección de correo electrónico falsa de Jeff un enlace para restablecer la contraseña y Jeff entró. En el buzón, Jeff encontró el número de ruta bancaria de Nick, los números de tarjeta de crédito, el nombre de usuario y la información de contraseña para varios otros sitios, su horario diario e incluso su número de seguro social enviado al azar a un agente de seguros. Jeff podría literalmente robar la identidad de Nick si quisiera y así de simple.

Cabe decir que Nick no era una persona aleatoria, era un sujeto de prueba voluntario que trabajaba para la misma compañía que Jeff, sin embargo, esta historia no es exclusiva de un solo caso. Historias como la de Nick tienen lugar todos los días y es responsabilidad de sitios web como Google, Facebook y Paypal proteger a sus usuarios de tener que lidiar con situaciones como estas. La historia de Jeff es el ejemplo perfecto de cómo los grandes sitios web cometen sus mayores defectos en la vulnerabilidad de sus empleados y parece ser que este problema es el más importante de solucionar.

Dado que la pregunta se formuló con respecto a los investigadores de seguridad, que son legítimos y tratan de hacer del mundo un lugar mejor, el primer paso es obtener un permiso legal para hurgar en su sitio. No puedes comenzar a hackear un sitio web importante (o cualquier otro sitio web) si no quieres ir a la cárcel.

Suponiendo que tiene permiso, y este es un primer paso crítico, el proceso es algo como esto:

  1. Recopile información sobre el objetivo, generalmente utilizando información que está disponible públicamente. Se sorprendería de la cantidad de información útil que puede obtener de blogs, sitios de redes sociales (especialmente LinkedIn, puede buscar empleados de la empresa objetivo), etc. Busque cualquier cosa que pueda darle pistas sobre la estructura de la dirección de correo electrónico, el diseño de la red, etc.
  2. Busque puertos abiertos en el objetivo. Ciertos números de puerto lo alertarán sobre servicios vulnerables, como FTP.
  3. Use un escáner de vulnerabilidades automatizado para recopilar más información, como los sistemas operativos en uso, los números de versión del software (el software no parcheado es un buen lugar para hurgar). La mayoría de los escáneres hoy en día también lo alertarán sobre posibles vulnerabilidades.
  4. Pruebe manualmente las vulnerabilidades potenciales que encontró en los pasos 1-3.
  5. Sin embargo, si es un investigador de seguridad, no puede confiar en estas herramientas para contarle todo, por lo que este es el paso divertido en el que puede ser creativo e intentar romper cosas. Un amplio conocimiento de cómo funcionan las redes y el software es fundamental para poder hacer esto correctamente sin realmente romper las cosas.
  6. Si encuentra una vulnerabilidad, y esto también es crítico , existen estándares para la divulgación responsable de esa vulnerabilidad. Primero debe alertar a la empresa antes de decírselo a otra persona. Por lo general, solicitarán una cantidad de tiempo establecida para reparar la vulnerabilidad antes de que se pueda divulgar públicamente.

Si esto es algo que le interesa perseguir seriamente, también recomendaría encarecidamente recibir capacitación de SANS o (ISC) 2. También hay muchas cosas divertidas para aprender en conferencias como Black Hat y DEFCON.

¡Feliz pirateo!

Si eres un ladrón y quieres entrar a una casa, lo primero que debes hacer es tratar de “examinar la articulación”, es decir, encontrar la mayor cantidad de información posible sobre el lugar. ¿Qué tipo de seguridad tiene? ¿Cuándo están los dueños? ¿Qué tipo de objetos de valor puede contener?

Luego intenta determinar qué tipos de debilidades puede haber en las defensas. Los perros comerán cualquier cosa? ¿Los propietarios pueden dejar la puerta o portón desbloqueado o abierto cuando se van? Ventanas abiertas?

Luego prueba esas suposiciones a través de prueba y error. Dele a los perros algo de comer para que tengan sueño. Pruebe las puertas / portones / ventanas cuando los propietarios no están allí.

Si entra, intente tomar cosas y vea si puede irse. Y así has ​​descubierto las vulnerabilidades.

Lo mismo con cualquier sitio o aplicación.

Recoges información. ¿Qué tipo de lenguaje de programación usan? Que base de datos ¿Sistemas operativos? APIs? Ir a través de documentación y noticias. Es sorprendente lo que puede encontrar en sus documentos de acceso público.

Luego descubra las amenazas a cada una de esas cosas y pruébelas. ¿Métodos débiles en el idioma? Inyección SQL o XSS? Vulnerabilidades sin parchear?

Una vez que esté dentro, intente obtener información como la lista de usuarios, los datos CC o las contraseñas.

Cada paso prueba una capa diferente de las defensas. Las pruebas de seguridad de las aplicaciones requieren un conocimiento profundo de la programación de aplicaciones. Probar redes requerirá un conocimiento profundo de las redes. Tú entiendes.

La respuesta es confusa. Fuzzing fue históricamente iniciado (o pionero) por UWisconsin (Fuzz Testing of Application Reliability) y ha evolucionado desde entonces. Es una técnica en la que la entrada con formato incorrecto (con intención específica) se inyecta en los campos del formulario. Si bien hacer esto en un formulario web es tedioso usar un proxy local donde realmente se puede ver el tráfico HTTP lo hace más fácil. Uno podría usar herramientas automatizadas (pero eso generalmente no da mucho en sitios bien probados como FB, Twitter, etc.). El uso de un proxy local y la comprensión de cómo la entrada controlada por el usuario se abre paso o influye en el comportamiento de la aplicación brinda a los investigadores la idea de encontrar vulnerabilidades.

Echa un vistazo a estas publicaciones recientes de Nir Goldshlager. Él te guía a través de su proceso.

Cómo pirateé Facebook OAuth para obtener el permiso completo en cualquier cuenta de Facebook (sin la interacción “Permitir” de la aplicación)

Cómo pirateé cualquier cuenta de Facebook … otra vez

Aquí hay un buen tutorial de un exploit MongoDB de SCRT: mongodb – SSJI to RCE

Como la pregunta está enmarcada en los investigadores de seguridad (no en los hackers de sombrero negro) en mente, recomendaría comprender las vulnerabilidades comunes que se enumeran aquí. Categoría: Proyecto OWASP Top Ten. Tiene toda la información básica, con los mecanismos de prevención para todos y cada uno de los tipos de ataques web.

Siguiente: Encontrar una vulnerabilidad no es tan fácil como ver el sol durante el día. Llevaría mucho tiempo, ya que no todas las páginas web serían vulnerables a los ataques. Puede usar herramientas automatizadas (algunas de ellas se mencionan en el propio OWASP). Eso ahorraría mucho tiempo.

PRECAUCIÓN: no intente utilizar lo que haya aprendido en el mundo web.

Recientemente descubrí algunas vulnerabilidades críticas en un sitio web que estaba navegando, sin dañar a nada ni a nadie o sin recopilar información confidencial, estoy tratando de informarlo al propietario del sitio web por el bien. Estoy confundido acerca de ¿es legítimo informar?

Como también soy un cazador de errores, investigador de seguridad y pirata informático ético, encontré vulnerabilidades en los principales sitios web como Google, Ebay, Intel, Nvidia, Seagate, etc., según mi experiencia, encontrar vulnerabilidad no es una tarea fácil en los principales sitios web como Google, Facebook , Paypal, Ebay porque son muy seguros pero ningún sitio web es 100% seguro en este mundo. Por lo tanto, estos sitios web principales también tienen algún tipo de vulnerabilidad, pero para encontrarlos debemos tener un excelente conocimiento de OWASP y debemos trabajar duro.

Según mi experiencia, si desea utilizar Pruebas de penetración de aplicaciones web y seguridad, comience a aprender HTML / Javascript / PHP o cualquier otro lenguaje de secuencias de comandos. Además, comience a aprender OWASP y comience a buscar errores. De esto obtendrás una experiencia sobre trabajar en proyectos en vivo y ganar dinero y fama también.

Saludos,

http://yogeshprasad.com/

Hay una gran cantidad de scripts en ejecución: simplemente elige un dominio, apunta su script hacia él, y genera una gran cantidad de vulnerabilidades posibles e imprime un informe al final para que pueda copiarlo y pegarlo en un correo electrónico.

Puede encontrar dominios alternativos simplemente hurgando un poco: mire las solicitudes en el inspector web, vea desde dónde se envían los correos electrónicos y solo intente algunas cosas comunes.

“99% de transpiración, 1% de inspiración”, como dijo Thomas Edison.

Crea un script que busca cosas como puertos abiertos y la versión IIS. Luego, ejecuta esa información a través de una base de datos de vulnerabilidades y hay una buena probabilidad de que encuentre una vulnerabilidad conocida que tiene el sitio y tal vez incluso un exploit para usar en su contra.
En cuanto a los dominios ocultos, puede hacer fuerza bruta con un diccionario.