CoWitness


CoWitness es una herramienta diseñada para funcionar como un servidor HTTP, HTTPS y DNS. Te permite servir páginas web, registrar solicitudes HTTP y personalizar respuestas DNS. Este README proporciona una visión general de las características e instrucciones sobre cómo compilar y usar la herramienta CoWitness.
Características
- Servidor HTTP: CoWitness incluye un servidor HTTP que escucha en el puerto 80. Puede servir archivos estáticos desde el directorio de trabajo actual. Cada solicitud HTTP se registra, incluyendo la dirección IP del cliente, el recurso solicitado y el agente de usuario.
- Servidor HTTPS: Además del servidor HTTP, CoWitness también proporciona un servidor HTTPS que escucha en el puerto 443. Al igual que el servidor HTTP, sirve archivos estáticos y registra cada solicitud.
- Servidor DNS: CoWitness funciona como un servidor DNS, escuchando en el puerto 53. Te permite personalizar respuestas DNS, incluyendo registros NS y A. Las solicitudes DNS se registran, incluyendo la dirección IP del cliente y el dominio solicitado.
- Registro: CoWitness crea archivos de registro para solicitudes HTTP y DNS. Los registros se añaden a archivos existentes, permitiéndote rastrear y analizar la actividad del servidor.
- Modo silencioso: CoWitness puede ejecutarse en modo silencioso pasando el argumento
-q de línea de comandos. En este modo, el banner de arte ASCII no se mostrará.
Requisitos previos 📝
Antes de usar CoWitness, asegúrate de tener los siguientes requisitos:
- Lenguaje de programación Go instalado en tu sistema, consíguelo AQUÍ. Se requiere Go 1.21 si se compila desde el código fuente.
- Acceso a Internet para descargar las dependencias de Go.
- Un servidor remoto con una dirección IP pública.
Compilación 👨🏼🔧
Sigue estos pasos para instalar y compilar CoWitness:
- Clona el repositorio de CoWitness desde GitHub:
git clone https://github.com/your-username/CoWitness.git
- Cambia al directorio de CoWitness:
- Compila el ejecutable de CoWitness:
Este comando compila el código fuente de CoWitness y crea un archivo ejecutable para amd64 y arm64.
Instalación 👨🏻💻
Para usar CoWitness en un servidor remoto, sigue estos pasos:
- Elige un nombre de dominio para tu entorno de pruebas.
- Configura un servidor remoto y obtén una dirección IP pública para él.
- Registra tus servidores de nombres para que apunten a la dirección IP pública. (Consulta la documentación de tu registrador de dominios para obtener instrucciones sobre cómo configurar servidores de nombres.)
- Crea registros de enlace (glue records) para asociar la dirección IP con tu servidor remoto. Este paso puede variar según tu proveedor de DNS. Consulta su documentación para obtener orientación sobre cómo crear registros de enlace.
- Asegúrate de que los puertos 80 y 53 estén disponibles en el servidor remoto. Configura cualquier cortafuegos o ajustes de red para permitir conexiones entrantes en estos puertos.
- Transfiere el ejecutable de CoWitness al servidor remoto utilizando un método seguro como SCP o SFTP.
Conéctate al servidor remoto vía SSH:
ssh username@your-server-ip
Una forma fácil de instalar cowitness es obtener el paquete automatizado desde aquí que luego puedes descargar con curl o wget a tu sistema o copiar el archivo con scp desde tu sistema.
Personalización ⚒️
Puedes personalizar CoWitness para adaptarlo a tus necesidades específicas. Aquí hay algunas modificaciones posibles:
- Cambiar los puertos predeterminados: Consulta la ayuda de uso para las banderas de línea de comandos para cambiar los puertos predeterminados.
- Modificar las rutas de los archivos de registro: Puedes cambiar las rutas para los archivos de registro HTTP y DNS (http.log y dns.log) actualizando las llamadas a
os.OpenFile en el código fuente.
Comunidad y Contribuciones
Aceptamos contribuciones y comentarios de la comunidad. Si encuentras algún problema o tienes sugerencias de mejora, por favor abre un issue o envía un pull request en nuestro repositorio de GitHub.
Licencia
CoWitness se publica bajo la Licencia MIT.