
yakit v1.4.8-0821
Plataforma de pruebas de penetración todo en uno con proxy MITM, fuzzer web, gestor de conexiones inversas y sistema de plugins para pruebas de seguridad automatizadas y explotación.
Yakit - Plataforma de Pruebas de Seguridad de Aplicaciones Interactivas
Ver el libro blanco • Documentación oficial • Reportar problemas • Ir al sitio web • Unirse a la comunidad • Arquitectura del proyecto
:book: Selección de idioma: English • 中文
Introducción a Yakit
La fusión de seguridad es una reforma en las operaciones y gestión de seguridad que las empresas deben emprender en la nueva normalidad, y también es una prioridad urgente.
Basándose en el concepto de fusión de seguridad, el equipo de Yaklang.io ha desarrollado el lenguaje vertical de seguridad Yaklang. Para aquellos productos/herramientas que no pueden integrarse de forma nativa en la plataforma Yak, se puede utilizar Yaklang para reescribir "alternativas de alta calidad". Para aquellos productos con un ecosistema completo y alto reconocimiento, Yaklang puede compilar y fusionar directamente, realizando las modificaciones necesarias en el código fuente para una mejor adaptación al lenguaje Yaklang. Para los profesionales de seguridad que no desean escribir código, Yakit proporciona GUI adecuadas para todas las capacidades de Yaklang; con cada versión, las GUI serán más maduras.
Para acercar las capacidades de seguridad de Yaklang al uso práctico real, hemos escrito un servidor gRPC para Yak y hemos construido un cliente utilizando este servidor: Yakit.
Arquitectura del proyecto
Tecnología central: CDSL
CDSL se define como CyberSecurity Domain Specific Language, un lenguaje de programación especializado en el campo de la ciberseguridad; hemos creado una máquina virtual basada en pila para alojar el estado de ejecución de este lenguaje Turing completo. Esperamos lograr la integración de capacidades de seguridad y la unificación de la plataforma subyacente a través del medio "CDSL".
Para que el CDSL del dominio de seguridad desarrollado de forma independiente se adapte mejor a los escenarios de uso real, hemos escrito un servidor gRPC para Yaklang y hemos construido el cliente Yakit sobre el servidor gRPC. En la práctica, se controlan las capacidades del motor a través de la GUI de Yakit. El servidor gRPC de Yakit permite un despliegue más rápido y conveniente, independiente de la plataforma, ya sea remoto o local directamente en el host.
- Puede reemplazar al 100% la plataforma de secuestro MITM de BurpSuite;
- GUI de escaneo pasivo MITM difícil de replicar;
- Integración de scripts Yaklang para depurar dinámicamente el tráfico; ejecución dinámica de código en cualquier momento;
- La primera herramienta de fuzzing web visual del mundo: Web Fuzzer;
- Tienda de plugins de Yakit:
- Posibilidad de ejecutar scripts o plugins personalizados de Yaklang en cualquier paso de las pruebas de penetración ... ...
Resumen de capacidades de seguridad:
Tecnologías destacadas
Secuestro interactivo MITM
La consola MITM puede reemplazar al 100% a BurpSuite para realizar todas las operaciones (descargar e instalar certificados, secuestrar solicitudes, respuestas, editar paquetes capturados, etc.). Además, proporciona un flujo de trabajo completo y fluido: Secuestro => Historial => Repetidor/Intruso. Se capturan datos, se revisa el historial en History, se seleccionan paquetes a "explorar" y se envían a Web Fuzzer para operaciones de Repetidor/Intruso. Además de estos escenarios típicos, MITM también ofrece funciones más flexibles como escaneo pasivo de plugins, recarga en caliente, reemplazo de paquetes, marcado, etc.
El principio del módulo MITM de Yakit es iniciar un proxy HTTP que reenvía automáticamente el tráfico. Cuando el usuario activa el secuestro manual, se detiene el reenvío automático, se bloquea la solicitud, se saca la solicitud de la pila, se realizan procesos como descompresión Gzip, manejo de chunk, decodificación, etc., para que la solicitud sea legible y se muestre en el frontend del usuario. El usuario puede ver, modificar o reproducir la solicitud. Al reproducir, se repara el paquete de solicitud HTTP construido por el usuario para garantizar su validez. El motor Yak implementa manualmente la biblioteca HTTP, por lo que los usuarios pueden personalizar paquetes de solicitud y respuesta malformados para explotar vulnerabilidades en escenarios especiales.
Reproducción interactiva de tráfico y fuzzing en aplicaciones web
El módulo Web Fuzzer permite al usuario enviar solicitudes personalizadas en texto HTTP original. Para facilitar el uso intuitivo, el backend de Yakit realiza mucho trabajo. La información necesaria para la transmisión y análisis de datos en el texto HTTP original es reparada y completada por el backend de Yakit, como corregir CRLF, completar Content-Type, transmitir mediante chunk, completar boundary, reparar Content-Length, etc.
Tecnología Fuzztag
El módulo Web Fuzzer admite la integración natural y perfecta de funciones como colisión de Host, Intruso, y detección de directorios mediante etiquetas Fuzz. Por ejemplo, en un escenario de ataque de fuerza bruta a un solo parámetro, como el id de usuario, se puede usar la etiqueta {{int(1-10)}} para generar automáticamente los ids de fuerza bruta. En escenarios con múltiples parámetros, se utiliza el producto cartesiano como parámetro de fuerza bruta, eliminando los pasos de seleccionar el método de ataque e importar diccionarios en comparación con el módulo Intruder de BurpSuite, reduciendo enormemente la ruta de operación del usuario y ajustándose a sus hábitos. Por supuesto, además de usar etiquetas para generar parámetros automáticamente, el módulo Web Fuzzer también admite la importación de diccionarios externos, por ejemplo: {{file(/tmp/username.txt)}}. Para escenarios de datos más complejos, Web Fuzzer admite la inserción de etiquetas de recarga en caliente. Por ejemplo, para atacar números de identificación de una región determinada, se puede insertar un script Yak en Web Fuzzer para generar datos y realizar el ataque. En cambio, el módulo Intruder de BurpSuite, ante este escenario, requiere escribir código para generar un diccionario y luego importarlo al módulo Intruder.
Para más información sobre fuzztag, consulte: Resumen rápido de Fuzztag
Tecnología de reversión y multiplexación de protocolos de aplicación
Muchos escenarios de explotación de vulnerabilidades requieren reversión con diferentes protocolos de servicio. Las herramientas tradicionales de explotación necesitan escuchar un puerto para cada servicio en un servidor público, como en la explotación de vulnerabilidades de tipo LDAP, que requiere iniciar servicios HTTP, LDAP y luego enviar la solicitud de ataque. Los servicios tradicionales asignan un puerto único para cada servicio, mientras que la tecnología de multiplexación de protocolos de puerto de Yaklang puede escuchar un solo puerto, identificar el protocolo de la solicitud y responder adecuadamente. Las ventajas de la tecnología de multiplexación de protocolos de puerto de Yaklang incluyen el ahorro de recursos del sistema, facilidad para pruebas manuales, y debido a que en el fondo reconoce manualmente varios encabezados de protocolo y los implementa manualmente según los estándares, permite construir paquetes de datos de protocolo de manera flexible. Por ejemplo, se pueden construir paquetes malformados para explotar vulnerabilidades, o llevar datos a través de protocolos DNS, ICMP, etc., para mantener el acceso como backdoor o para explotar vulnerabilidades en entornos donde TCP no está disponible.
Además, Yakit implementa un módulo de reversión basado en la tecnología de multiplexación de protocolos de puerto, que incluye funciones de Reverse Shell, explotación de reversión y detección de reversión. Reverse Shell puede escuchar un puerto específico como receptor de una shell inversa; una vez recibida, se puede controlar el servidor remoto como con SSH. En las necesidades tradicionales de pruebas de penetración, se usaba Nc para escuchar un puerto, pero algunas teclas como retroceso y flechas podían mostrar caracteres extraños, haciendo que la shell inversa se diferenciara mucho de la nativa SSH. El Reverse Shell de Yakit ofrece una experiencia similar a la de SSH nativa. En la parte de explotación de reversión, se puede escuchar un puerto y configurar Payloads para la conexión inversa de diferentes protocolos; al recibir una solicitud, se identifica automáticamente el protocolo y se devuelve el Payload correspondiente, logrando la explotación. La función de detección de reversión proporciona detección de reversión TCP, DNSLog e ICMP, útil para detectar ejecución de comandos.
Uso
- Puede descargar e instalar desde el sitio web oficial
- Puede consultar nuestra documentación oficial para aprender y usar Yakit
Para más contenido técnico, consulte:
Unirse a la comunidad
Si tiene sugerencias constructivas o informes de errores sobre nuestro producto, le invitamos a abrir un issue.
O contáctenos a través de la cuenta pública de WeChat. También puede contactarnos para licencias comerciales y cooperación.
Para unirse al grupo de discusión o si tiene preguntas para el equipo técnico, agregue la cuenta de operaciones de WeChat para unirse a la comunidad:
Cuenta de operaciones de WeChat:
Código QR de la cuenta pública:
Stargazers a lo largo del tiempo
Descargo de responsabilidad
-
Esta herramienta está destinada únicamente a comportamientos de construcción de seguridad empresarial autorizados legalmente y actividades de aprendizaje personal. Si necesita probar la disponibilidad de esta herramienta, por favor configure su propio entorno de laboratorio.
-
Al usar esta herramienta para realizar pruebas, debe asegurarse de que la acción cumpla con las leyes y regulaciones locales y de que ha obtenido la autorización suficiente. No escanee objetivos no autorizados.
-
Prohibido realizar ingeniería inversa, descompilar, intentar descifrar el código fuente, insertar puertas traseras o distribuir software malicioso en este software.
-
Si necesita usar Yakit con fines comerciales, asegúrese de haber obtenido la autorización oficial; de lo contrario, tomaremos las medidas correspondientes.
Si se descubre alguna de las conductas prohibidas anteriores, nos reservamos el derecho de exigirle responsabilidades legales.
Si usted incurre en alguna conducta ilegal durante el uso de esta herramienta, asumirá las consecuencias correspondientes; no asumiremos ninguna responsabilidad legal o solidaria.
Antes de instalar y usar esta herramienta, asegúrese de leer y comprender completamente todos los términos
Las cláusulas de limitación, exención de responsabilidad u otras que impliquen sus intereses importantes pueden resaltarse en negrita o subrayado.
A menos que haya leído completamente, comprendido y aceptado todos los términos de este acuerdo, no instale ni use esta herramienta. Su uso o cualquier otra forma de aceptación expresa o implícita de este acuerdo se considerará que ha leído y aceptado los términos de este acuerdo.
