Práctica de webcrack del módulo de complemento de escritura segura Dragonfly

1. Antecedentes

Dragonfly Security Workbench es una plataforma de integración de herramientas de seguridad que integra las principales herramientas de seguridad del mercado y las organiza según escenarios de trabajo. Actualmente, hay cuatro escenarios prefabricados: recopilación de información, escaneo de cajas negras, verificación por lotes de POC y auditoría de código; las características más
importantes Es decir, hay muchas herramientas integradas y de todo tipo. Puedes organizar las herramientas que quieras en cualquier escena y crear rápidamente tu propio banco de trabajo seguro ~

En este artículo, explicaremos cómo admitir herramientas personalizadas; las herramientas deben empaquetarse en forma de duplicación de Docker y a continuación se describe cómo empaquetar las herramientas.

https://github.com/StarCrossPortal/QingTing

Tomaré la herramienta de detección de contraseñas débiles WebCrack como ejemplo para explicar cómo enviar la herramienta en Dragonfly Security Workbench.

2. Uso de herramientas de aprendizaje

2.1 Descarga de herramientas

Descargue la herramienta desde el sitio web oficial o GitHub

git clone https://github.com/yzddmr6/WebCrack

El contenido devuelto es el siguiente.

Cloning into 'WebCrack'...
remote: Enumerating objects: 104, done.
remote: Counting objects: 100% (31/31), done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 104 (delta 9), reused 17 (delta 3), pack-reused 73
Receiving objects: 100% (104/104), 138.12 KiB | 867.00 KiB/s, done.
Resolving deltas: 100% (30/30), done.


2.2 Dependencia de las herramientas de instalación

 cd WebCrack && pip3 install -r requirements.txt

resultado de retorno

Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: bs4 in /Users/tangqingsong/Library/Python/3.8/lib/python/site-packages (from -r requirements.txt (line 1)) (0.0.1)
Requirement already satisfied: lxml in /Users/tangqingsong/Library/Python/3.8/lib/python/site-packages (from -r requirements.txt (line 2)) (4.8.0)
Requirement already satisfied: requests in /Users/tangqingsong/Library/Python/3.8/lib/python/site-packages (from -r requirements.txt (line 3)) (2.27.1)
Requirement already satisfied: beautifulsoup4 in /Users/tangqingsong/Library/Python/3.8/lib/python/site-packages (from bs4->-r requirements.txt (line 1)) (4.11.1)
Requirement already satisfied: charset-normalizer~=2.0.0 in /Users/tangqingsong/Library/Python/3.8/lib/python/site-packages (from requests->-r requirements.txt (line 3)) (2.0.12)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /Users/tangqingsong/Library/Python/3.8/lib/python/site-packages (from requests->-r requirements.txt (line 3)) (1.26.9)
Requirement already satisfied: certifi>=2017.4.17 in /Users/tangqingsong/Library/Python/3.8/lib/python/site-packages (from requests->-r requirements.txt (line 3)) (2021.10.8)
Requirement already satisfied: idna<4,>=2.5 in /Users/tangqingsong/Library/Python/3.8/lib/python/site-packages (from requests->-r requirements.txt (line 3)) (3.3)
Requirement already satisfied: soupsieve>1.2 in /Users/tangqingsong/Library/Python/3.8/lib/python/site-packages (from beautifulsoup4->bs4->-r requirements.txt (line 1)) (2.3.2.post1)

2.3 Aprenda a utilizar

Ahora aprenda a utilizar la herramienta y prepárese para el acceso posterior.

➜  WebCrack git:(master) python3 webcrack.py 

+---------------------------------------------------+
| __          __  _      _____                _     |
| \ \        / / | |    / ____|              | |    |
|  \ \  /\  / /__| |__ | |     _ __ __ _  ___| | __ |
|   \ \/  \/ / _ \ '_ \| |    | '__/ _' |/ __| |/ / |
|    \  /\  /  __/ |_) | |____| | | (_| | (__|   <  |
|     \/  \/ \___|_.__/ \_____|_|  \__,_|\___|_|\_\ |
|                                                   |
|                 code by @yzddmr6                  |
|                  version: 2.2                     |
+---------------------------------------------------+

File or Url:

2.4 Herramientas de modificación

En la experiencia que no usé, descubrí que todavía necesito interactuar, lo cual es muy inconveniente. Quiero ejecutar un comando para que funcione, así que necesito cambiar el código.

Antes de cambiar el código, debe analizar el archivo de entrada principal, que tiene un nombre de variable.url_file_name

    url_file_name = input('File or Url:\n')

    if '://' in url_file_name:
        CrackTask().run(1, url_file_name)
    else:
        url_list = []
        if os.path.exists(url_file_name):

Modifiqué el suyo para obtener esto de los parámetros.

    url_file_name = sys.argv[1]

A continuación, uso permeate para construir un campo de tiro y luego pongo la dirección de inicio de sesión en él.

python3 webcrack.py http://*.*.*/home/index.php?m=user&a=login

Los resultados devueltos son los siguientes, puede ver que los parámetros recibidos fueron exitosos y la operación fue exitosa.

➜  WebCrack git:(master) ✗ python3 webcrack.py http://xx.xx.xx/home/index.php\?m\=user\&a\=login
2022-05-09 19:36:53  id: 1 [*] Start: http://xx.xx.xx/home/index.php?m=user&a=login
2022-05-09 19:36:53  id: 1 [*] http://xx.xx.xx/home/index.php?m=user&a=login 进度: (1/27) checking: admin admin
.....中间过程删减....
2022-05-09 19:36:53  id: 1 [*] http://xx.xx.xx/home/index.php?m=user&a=login 进度: (2/27) checking: admin 123456
2022-05-09 19:36:56  id: 1 [*] http://xx.xx.xx/home/index.php?m=user&a=login 启动万能密码爆破模块
2022-05-09 19:36:56  id: 1 [*] http://xx.xx.xx/home/index.php?m=user&a=login 进度: (1/25) checking: admin' or 'a'='a admin' or 'a'='a
2022-05-09 19:36:56  id: 1 [*] Rechecking... http://xx.xx.xx/home/index.php?m=user&a=login admin' or 'a'='a admin' or 'a'='a
2022-05-09 19:36:56  id: 1 [+] Success: http://xx.xx.xx/home/index.php?m=user&a=login  admin' or 'a'='a/admin' or 'a'='a
➜  WebCrack git:(master) ✗ 

A juzgar por los resultados de los comentarios, la herramienta utilizó la contraseña universal para descifrar con éxito la fuerza bruta.

3. Aprende a hacer imágenes en espejo.

Ahora que sabemos cómo acceder a la herramienta, solo necesitamos dejar que el programa la ejecute, por lo que necesitamos aprender algunas reglas básicas del complemento Dragonfly Security Workbench, y las reglas de aprendizaje son muy simples.

Solo necesitamos descargar el complemento que Dragonfly ha escrito y ver cómo se escribió el complemento anterior.

3.1 Estudio de caso

La siguiente figura muestra el complemento escrito por Dragonfly Security Workbench.

Elegimos un caso al azar, tomando xraycomo ejemplo el acceso a la herramienta de Changting,

Puedes ver que la herramienta tiene tres directorios: code, tools,Dockerfile

Analicemos primero el archivo dockerfile

FROM daxia/qingting:base

COPY ./code /root/code
COPY ./tools /data/tools

CMD ["php","/root/code/index.php"]

Desde el archivo Dockerfile, podemos ver que, de hecho, se crea la imagen reflejada, simplemente copie los dos directorios a la imagen reflejada y luego déjelo iniciar y ejecutar un archivo de entrada principal;

Continúemos mirando codeel directorio donde se encuentra el archivo de entrada principal, abra el archivo para verlo, index.php el contenido es el siguiente

Como se puede ver en esta figura, el proceso del complemento es en realidad leer el objetivo a escanear, luego enviar el objetivo a la herramienta para escanear y luego almacenar el resultado escaneado en la base de datos.

4. Crear imagen de herramienta

Ahora comenzamos a intentar escribir el complemento nosotros mismos. Primero, copiamos toda la carpeta de Xray. El nombre de la nueva carpeta se llama webcrack, y luego eliminamos el contenido en herramientas.

Luego copie el código webcrack descargado al principio, como se muestra en la siguiente figura

A continuación, analicemos index.phpla lógica específica. Aquí hay un spoiler. Solo necesitamos mirar index.php, no necesitamos mirar en otros lugares, solo use la configuración anterior.

Luego comenzamos a reemplazar el contenido del archivo y cambiamos directamente la radiografía del contenido del archivo a webcrack, como se muestra en la siguiente figura.

Un spoiler más, sólo nos falta cambiar estas dos funciones.

4.1 Herramienta de llamada

En primer lugar, debemos prestar atención a la función de la herramienta de ejecución, aquí solo debemos prestar atención al comando CMD.

Simplemente cambie este comando al comando de llamada de webcrack

4.2 Introducir datos

Luego mira la siguiente función para importar datos.writeData

En este método, puede ver que solo se hacen tres cosas: primero leer el resultado de la herramienta, luego convertir la cadena JSON resultante en una matriz y luego insertarla en la base de datos.


Autor: Tang Qingsong
WeChat:
songboy8888 Fecha : 09 de mayo de 2022

Supongo que te gusta

Origin blog.csdn.net/u013431141/article/details/124675119
Recomendado
Clasificación