Webhackingnotes
1- Recopilación de información: la recopilación de información es parte de los errores de seguridad de caza. Reconocimiento de la superficie de ataque: estrategias y el valor de la estandarización
*** Identificación de hosts virtuales: múltiples sitios web se implementan comúnmente en el mismo servidor físico.
- Los sitios web de muchas organizaciones están alojados por proveedores de servicios que utilizan recursos compartidos. El intercambio de direcciones IP es una de las técnicas más útiles y rentables utilizadas por ellas. A menudo verá una serie de nombres de dominio devueltos cuando realiza una consulta DNS inversa para una dirección IP específica. Estos sitios web utilizan alojamiento virtual basado en nombres, y se identifican y diferencian de manera única de otros sitios web alojados en la misma dirección IP por el valor del encabezado del host.
- YouGetSignal (http://www.yougetsignal.com/) es un sitio web que proporciona una función de búsqueda de IP inversa.
*** Enumeración del subdominio:
- Puede comenzar su reconocimiento encontrando subdominios usando sus VPS. Cuantos más subdominios encuentres, más superficie de ataque tendrás.
- Encontrar subdominios de un sitio web puede llevarnos en lugares sorprendentes. Recuerdo una charla del investigador de seguridad israelí, Nir Goldshlager, en el que realizó un escaneo de enumeración de subdominios en un servicio de Google, fuera del grupo de subdominios que encontró que había una que ejecutó una aplicación web con una vulnerabilidad de inclusión de archivos local revelada públicamente.
*** Escaneo de puertos:
- Después de enumerar los subdominios, puede comenzar Portscanning para identificar más superficies de ataque, incluidos los servicios en ejecución.
- Utilice el escaneo de puertos -don no busque solo los 80,443 normales - ejecute un escaneo de puertos contra los puertos 65536. Te sorprenderá lo que se puede ejecutar en puertos altos al azar.
- Los resultados del PortScan también pueden ser indicativos de la seguridad general de una empresa. Por ejemplo, una empresa que ha cerrado todos los puertos, excepto 80 y 443 (puertos web comunes para alojar sitios HTTP y HTTPS) es probable que sea consciente de la seguridad, mientras que una empresa con muchos puertos abiertos abiertos es probablemente lo contrario y puede tener un mejor potencial para las recompensas.
- Después de identificar los puertos abiertos en el servidor web, debe determinar el sistema operativo subyacente.
- Una vez que se haya determinado el sistema operativo subyacente y los puertos abiertos, debe identificar las aplicaciones exactas que se ejecutan en los puertos abiertos. Al escanear los servidores web, debe analizar el sabor y la versión del servicio web que se ejecuta en la parte superior del sistema operativo.
*** Descubrimiento de contenido: descubrir contenido oculto y predeterminado
- Antes de partir nuestro recorrido por los muchos usos de los motores de búsqueda de Internet, queremos tomar nota de un problema adicional relacionado con la búsqueda que pueda mejorar en gran medida la eficiencia de los perfiles. El archivo Robots.txt contiene una lista de directorios que se supone que los motores de búsqueda como Google indexan o ignoran.
- Sitemaps son una forma absurdamente simple de hacer una investigación básica con cero esfuerzo. Hacer un pequeño pirateo de URL con SitEmap.xml Slug a menudo devolverá un archivo XML real que detalla la estructura del sitio, o una página HTML suplicada por Yoast o Otro-Seo-Plugin que documenta diferentes áreas del sitio, con sitios sitios separados, páginas, etc.
- Mapee la aplicación en busca de directorios ocultos o cosas olvidadas como / copia de seguridad / etc.
- Hay algunas formas diferentes de abordar el descubrimiento de contenido. Primero, puede intentar descubrir archivos y directorios brutados que los hacían.
- Las herramientas de fuzzing se pueden usar para descubrir contenido web probando diferentes rutas, con URI tomados de listas de palabras gigantes, luego analizando los códigos de estado HTTP de las respuestas para descubrir directorios y archivos ocultos.
- CEWL es un generador de lista de palabras personalizado hecho por Robin Hood. Básicamente aride el sitio objetivo a una cierta profundidad y luego devuelve una lista de palabras. Esta lista de palabras se puede utilizar más tarde como diccionario para los inicios de sesión de aplicaciones web de Bruteforce, por ejemplo, un portal administrativo.
- Paralelamente al forzamiento bruto para activos sensibles, Spidering puede ayudarlo a obtener una imagen de un sitio que, sin un mapa del sitio, simplemente no puede proporcionar.
- El servidor web puede tener directorios para administradores, versiones antiguas del sitio, directorios de copia de seguridad, directorios de datos u otros directorios a los que no se hace referencia en ningún código HTML.
- Obtenga listados de nombres comunes y directivos y extensiones comunes. Agregue a estas listas todos los elementos realmente observados dentro de las aplicaciones, y también los elementos inferidos de estos. Intente comprender las convenciones de nombres utilizadas por los desarrolladores de aplicaciones. Por ejemplo, si hay páginas llamadas addDocument.jsp y ViewDocument.jsp, también pueden haber páginas llamadas editDocument.jsp y removedocument.jsp.
- Verifique cualquier información potencialmente interesante manualmente para eliminar los falsos positivos dentro de los resultados.
*** Consulte los recursos públicos: acumulando información sobre el sitio web objetivo de los recursos disponibles públicamente
- Cuando necesite ir más allá de los archivos y el directorio Bruteforcing, Google Dorking, también puede proporcionar un descubrimiento de contenido interesante. Google Dorking puede ahorrarle tiempo, particularmente cuando encuentra parámetros de URL que comúnmente están asociados con vulnerabilidades como URL, redirect_TO, ID, etc.
- Los motores de búsqueda siempre han sido el mejor amigo de un hacker. Es una buena apuesta que al menos uno de los principales motores de búsqueda de Internet haya indexado su aplicación web objetivo al menos una vez en el pasado.
- Más allá de Google, hay otros motores de búsqueda con un enfoque específico que puede ser invaluable para encontrar información específica. Ya sea que desee encontrar información sobre una persona o preguntar sobre los registros públicos, es probable que se haya hecho un motor de búsqueda especializado para encontrar lo que desea.
- Realice búsquedas en cualquier nombre y direcciones de correo electrónico que haya descubierto en el contenido de la aplicación, como la información de contacto. Incluya artículos que no se presenten en la pantalla, como los comentarios HTML. Además de las búsquedas web, realice noticias y búsquedas grupales. Busque cualquier detalle técnico publicado en foros de Internet sobre la aplicación objetivo y su infraestructura de soporte.
- Otro enfoque para encontrar contenido interesante es verificar el GitHub de la compañía. Puede encontrar repositorios de código abierto de la empresa o información útil sobre las tecnologías que utilizan.
- Github es un tesoro de datos sorprendentes. Ha habido una serie de pruebas de penetración y evaluaciones de equipo rojo en las que pudimos obtener contraseñas, claves API, código fuente antiguo, nombres de host internos/IP y más. Estos llevaron a un compromiso directo o ayudaron en otro ataque. Lo que vemos es que muchos desarrolladores impulsan el código al repositorio incorrecto (enviándolo a su repositorio público en lugar del repositorio privado de su empresa), o accidentalmente presionan material confidencial (como contraseñas) y luego intentan eliminarlo. Una cosa buena con GitHub es que rastrea cada vez el código de tiempo se modifica o elimina.
- Shodan (https://www.shodan.io) es un gran servicio que regularmente escanea Internet, agarrando pancartas, puertos, información sobre redes y más.
- Censes monitorea continuamente cada servidor y dispositivo alcanzable en Internet, para que pueda buscarlos y analizarlos en tiempo real. Podrá comprender su superficie de ataque de red, descubrir nuevas amenazas y evaluar su impacto global [https://censys.io/].
- Utilice el waybackmachine para encontrar puntos finales olvidados
*** La pila de tecnología: identificar las tecnologías utilizadas
- Una de las primeras tareas que hago al probar una nueva aplicación es identificar las tecnologías que se utilizan. Esto incluye, pero no se limita a Frontend JavaScript Frameworks, Frameworks de aplicaciones del lado del servidor, servicios de terceros, archivos alojados localmente, archivos remotos, etc.
- Tener el conocimiento sobre el marco utilizado para desarrollar un sitio web le brinda una ventaja en la identificación de las vulnerabilidades que pueden existir en las versiones sin parpadear.
- Busque cuál es la tecnología subyacente. La herramienta útil para esto es NMAP nuevamente y para aplicaciones web específicamente wappalyzer
*** Identificación de una nueva fuctionidad:
- También puede descubrir una nueva funcionalidad del sitio rastreando los archivos JavaScript. Centrarse en los archivos JavaScript es particularmente poderoso cuando un sitio se basa en Frontend JavaScript Frameworks para representar su contenido. La aplicación dependerá de tener la mayoría de los puntos finales HTTP que utiliza un sitio incluidos en sus archivos JavaScript.
- Pagar por el acceso a una nueva funcionalidad
*** Código fuente: el análisis del código fuente generalmente se considera algo que solo tiene lugar en una caja blanca, un escenario de prueba interno, ya sea como parte de una cadena de construcción automatizada o como una revisión manual. Pero analizar el código del lado del cliente disponible para el navegador también es una forma efectiva de buscar vulnerabilidades como investigador externo.