Preguntas de la entrevista de seguridad de red de 2023: análisis detallado de respuestas e intercambio de mejores prácticas

Si hay problemas de infracción de derechos de autor en términos de fuentes de datos y uso compartido de redes, comuníquese conmigo de inmediato para eliminar el contenido relevante.

caballo de troya de una palabra

【Fundamental】

Utilice la vulnerabilidad de carga de archivos para cargar un caballo de Troya de una oración en el sitio web de destino y luego use el chopper chino chopper.exe para obtener y controlar todo el directorio del sitio web. @ significa que incluso si el error de ejecución se ejecuta más tarde, no se informará ningún error. La función eval() significa ejecutar la cadena de sentencia entre paréntesis como código. $_POST['attack']Indica que el valor del parámetro denominado "ataque" se obtiene de la página.

Principales vulnerabilidades web

inyección SQL

Principio:  el filtrado de datos del sitio web no es estricto, la entrada de datos de los usuarios es demasiado confiable, la entrada de datos maliciosos de los usuarios no se filtra y la entrada de datos de los usuarios se ejecuta incondicionalmente como declaraciones SQL, lo que resulta en vulnerabilidades de inyección SQL.

Clasificación de inyección Sql:

  • Clasificado por si hay caracteres cerrados: tipo de carácter, tipo entero
  • Clasificado por método de transmisión de datos: tipo POST, tipo GET
  • Subdivisión de métodos de inyección: inyección de consulta conjunta, inyección de error, inyección ciega booleana, inyección ciega de tiempo, inyección de bytes anchos

Funciones comúnmente utilizadas para la inyección de errores:

  • UpdateXML()
  • Floor()
  • Extractvalue()

¿Qué base de datos existe en mysql de forma predeterminada y se usa a menudo para la inyección?

  • Information_schema

tiempo ciego

Características:  se utiliza en escenarios donde no hay eco de datos, no hay error y falla la inyección ciega booleana. En la inyección a ciegas basada en el tiempo, no hay un eco evidente en la página, y la corrección de la declaración construida solo se puede juzgar de acuerdo con la duración del tiempo de actualización de la página.

Funciones de uso común: sleep() funciones, ifsentencias condicionales, etc.

Vulnerable a las fluctuaciones de la red.

Características de la inyección ciega booleana:
La inyección ciega booleana es un método de inyección que adivina si la declaración de construcción es correcta al juzgar el estado correcto y de error de la página. Según la respuesta de la página, se puede deducir si los datos almacenados en la base de datos cumplen con las condiciones de la construcción.

Funciones comunes:

  • length(): utilizado para adivinar la longitud de la cadena de retorno de datos
  • substr(): cadena de intercepción
  • mid(): Sacar una parte del valor de la cadena
  • left(): Elimina algunos caracteres de la izquierda de la cadena
  • ascii(): Devuelve el valor del código ASCII de un carácter

Pasos generales para las notas del manual de SQL:

  1. Punto de inyección de juicio
  2. Determinar el tipo de inyección.
  3. Determinar el método de envío del punto de inyección
  4. Use order byla declaración para consultar cuántos campos hay en la base de datos
  5. Use consultas federadas para consultar información como  union select User()(usuario actual), union select Database()(base de datos), union select Version()(versión de la base de datos)
  6. Consultar tablas, columnas y valores en una base de datos

Inyección de bytes anchos:

La inyección de bytes anchos se omite mediante el uso de ciertos métodos de codificación. Algunos WAF pueden agregarla antes de enviar los datos. \Codificándola , agréguela y codifíquela en un carácter chino tradicional, omitiendo así el cierre de comillas simples y escapando de la conversión \. restricciones%5c%df

Inyección SQL en torno a la postura WAF:

  1. Omisión de mayúsculas y minúsculas de funciones: aproveche la función que no distingue entre mayúsculas y minúsculas del lado del servidor que no está habilitada para usar mayúsculas y minúsculas.
  2. Omisión de varias palabras clave: al aprovechar la función del lado del servidor de reemplazar los caracteres confidenciales con caracteres vacíos, se utilizan varias palabras clave para unir y evitar la detección.
  3. Omisión de codificación: use palabras clave que no se detecten o que no se detecten estrictamente en forma de codificación en el lado del servidor, como la codificación hexadecimal, la codificación de URL y la codificación Unicode.
  4. Omisión de comentarios: use las cadenas no detectadas o detectadas del lado del servidor en comentarios sueltos, y los formularios de comentarios incluyen /**/, /*!*/, /*!12345*/, #, -- -etc.
  5. Omisión de función o comando equivalente: aproveche la lista negra incompleta del lado del servidor o el filtro suelto, y use la forma equivalente de la función o comando original para omitir. Por ejemplo, use union distinctsustituto union, updatexml, extractvalue, flooretc.

Funciones relacionadas con la consulta de MySQL:

  • union: consulta conjunta de múltiples conjuntos de resultados.
  • distinguido: eliminar líneas duplicadas.
  • updatexml: Actualiza el contenido de un nodo en una columna de tipo XML.
  • extractvalue: Extrae el valor del nodo especificado de la columna de tipo XML.
  • piso: Devuelve el entero más grande que no sea mayor que el número dado.

Función de interceptación de cadenas:

  • mid: intercepta una parte de la cadena desde la posición especificada.
  • substr: interceptar parte de la cadena.
  • subcadena: intercepta parte de la cadena.
  • izquierda: intercepta la parte de la longitud especificada en el lado izquierdo de la cadena.
  • invertir: invertir la cadena.

Función de concatenación de cadenas:

  • concat: concatenar varias cadenas en una cadena.
  • group_concat: concatenar varias cadenas en una cadena, separadas por el delimitador especificado.
  • concat_ws: concatene varias cadenas en una cadena y sepárelas con el delimitador especificado.

Función de conversión de cadenas:

  • char: convierte el número al carácter correspondiente.
  • hex: convierte una cadena en una representación hexadecimal.
  • unhex: convierte la representación hexadecimal en una cadena.

Reemplazar comas:
Reemplace las comas en lo siguiente con el contenido especificado:

  • límite 1 compensación 0
  • mid(versión() de 1 por 1)

Reemplazar signo igual:
reemplaza el signo igual con el contenido especificado:

  • como

6. Omisión de símbolos especiales:

  • Motivo de omisión: el efecto es el mismo en la base de datos, pero no hay límite en el lado del servidor.
  • forma:
    • notación científica y 1e0 = 1e0
    • Caracteres en blanco %0a %a0 %0b %20 %09
    • acento grave table_name
    • corchetes seleccionar * de (test.admin)

7. Derivación combinada:

  • La razón por la que se puede omitir: el servidor detecta varias ubicaciones y es necesario utilizar varios métodos de omisión en combinación.
  • Formato: id = 1' y/ /'1'like'2'/ // !12345union /select 1,2,3

¿Qué tipo de sitios web pueden tener vulnerabilidades de inyección SQL?

  • Sitios web que interactúan con bases de datos, como sitios web escritos con scripts dinámicos como PHP y ASP.
  • Aunque el sitio web pseudoestático parece un sitio web HTML, en realidad es un sitio web dinámico que interactúa con la base de datos.

Condiciones para la explotación exitosa de la vulnerabilidad de inyección SQL (inyección SQL y troyano):

  1. Soporte para consultas conjuntas.
  2. Conozca la ruta absoluta del sitio web.
  3. La ruta para cargar el caballo permite escribir archivos.
  4. Los troyanos se pueden analizar y ejecutar después de cargarlos.
  5. Capaz de encontrar la ubicación del caballo de Troya cargado.

Cuando encuentra un sitio web con una vulnerabilidad de inyección SQL, ¿cómo lo monta?

  • Instalarás el caballo mediante inyección manual y herramientas SQLMap.

Funciones utilizadas en el modo de inyección manual:

  • unión, seleccionar, en outfile

Los parámetros y principios utilizados en el caballo colgante de SQLMap:

  • Parámetros: –os-shell. Principio: SQLMap tiene un método integrado select * into dumpfile, que puede escribir el resultado en un archivo.

¿Cómo suele explotar las vulnerabilidades de inyección de SQL?

  • Use vulnerabilidades de inyección de SQL para leer datos, generalmente para leer datos de usuario o datos de fondo del sitio web.
  • Use inyección SQL para colgar caballos para obtener permisos de servidor.

¿Cómo extraer vulnerabilidades de inyección de SQL?

  • Primero, juzgará si el sitio web es un sitio web dinámico y luego usará la inyección manual o la herramienta SQLMap para escanear.
  • Cuando use la inyección manual, intente usar caracteres confidenciales para probar, descubra los caracteres de cierre, seleccione el modo de inyección (como consulta conjunta) de acuerdo con el estado de la página y luego juzgue la cantidad de columnas y bits de visualización para obtener la base de datos actual. , nombre de tabla, nombre de columna y campo.

¿Cómo solucionar las vulnerabilidades de inyección de SQL?

  • Filtre caracteres y funciones maliciosos (como seleccionar, unir, ordenar por).
  • Filtre o escape comillas simples y dobles.
  • Use declaraciones parametrizadas para pasar variables ingresadas por el usuario.

Tenga en cuenta que la inyección SQL es una vulnerabilidad de seguridad grave, y las medidas de reparación deben ser implementadas por personal de seguridad profesional. La información proporcionada anteriormente es solo para fines informativos.

Principio de precompilación Sql (PreparedStatement)

  • PreparedStatement es una interfaz en java.sql y una subinterfaz de Statement.
  • Al crear un objeto PreparedStatement, especifique la declaración SQL y envíela al DBMS para su compilación inmediatamente.
  • Al ejecutar una declaración precompilada, el DBMS ejecuta directamente la declaración SQL compilada para mejorar el rendimiento del procesamiento.

getshell de inyección sql

  • Utilice la función outfile o el método –os-shell para obtener permisos de webshell.
  • Las condiciones de uso incluyen un directorio web con permiso de escritura, poder usar comillas simples, conocer la ruta absoluta del sitio web y no establecer un valor específico para secure_file_priv.

Vulnerabilidad de carga de archivos

1. El principio de la vulnerabilidad de carga de archivos

  • El desarrollador no filtró estrictamente el nombre del archivo y el contenido del archivo en el punto de carga del archivo, lo que provocó que los usuarios pudieran cargar scripts maliciosos en el servidor.

2. ¿Cuál es la forma normal de cargar una vulnerabilidad de carga de archivos?

  • En general, se cargan scripts maliciosos como una oración, escorpión de hielo y malasio que se ajustan al entorno de idioma del sitio web.

3. Carga de archivos alrededor de WAF

  • Omitir lista negra (omisión de casos).
  • Omitir %00el truncamiento de la lista blanca (puede cooperar con las vulnerabilidades de middleware).
  • Omita la verificación de front-end (burp captura paquetes y modifica Content-Type a un campo permitido).
  • Omita el contenido del archivo.

4. Formas habituales de subir archivos

  • Si el servidor es IIS, por lo general se carga aspo aspxescribe el sufijo ma.
  • Si aspfalla la carga del archivo de secuencia de comandos, puede intentar cambiar el nombre del sufijo del archivo o asacargarlo , ya que el servidor IIS ha habilitado la función de extensión del sufijo del archivo.cdxcer
  • Si el servidor es Apache, se suele subir phpel postfix tipo horse .
  • Si el servidor usa el middleware Tomcat, generalmente carga jspel tipo de sufijo Ma.
  • Si el servidor utiliza el middleware de WebLogic, normalmente se suben jspcaballos de tipo postfix .
  • Si el servidor usa Nginx, generalmente carga un caballo con un tipo de sufijo php

5. Protección contra vulnerabilidades de carga de archivos

  • Utilice la lista blanca o la lista negra de tipo de archivo para juzgar y limitar los tipos de archivos cargados.
  • Cambie el nombre del archivo cargado para evitar usar directamente el nombre del archivo cargado por el usuario.
  • Limite el tamaño de los archivos cargados para evitar que los usuarios maliciosos carguen archivos demasiado grandes.
  • Se realiza una verificación y filtrado de contenido exhaustivos en los archivos cargados, y se prohíbe cargar archivos que contengan código malicioso.
  • Actualice regularmente el servidor y el middleware con parches para corregir las vulnerabilidades conocidas de carga de archivos.
  • Refuerce el control de acceso y limite los permisos de los usuarios para cargar archivos.

6. Carga de archivos alrededor de WAF

  • Omitir caso de nombre de archivo, use nombres de archivo como AsP, pHpetc. para omitir la detección de la lista negra.
  • La lista de listas se omite, utilizando nombres de archivo que no están en la lista negra, como asao ceretc.
  • Omisión de nombre de archivo especial, cambie el nombre de archivo test.asp.a o, test.asp_etc., use las características del sistema operativo para omitir la verificación.
  • .htaccessOmitir varias detecciones mediante la carga de archivos.
  • Use un método especial de escritura de archivos, como usar 1.php:jpgpara escribir código malicioso.
  • Utilice el truncamiento para omitir la carga, como cambiar .jpgel espacio binario 20 a 00.
  • También hay algunos troyanos de imágenes y similares, que deben analizarse en combinación con las vulnerabilidades de inclusión de archivos.

el archivo contiene un error

1. El principio del expediente que contiene la vulnerabilidad

  • La inclusión de archivos significa que en el proceso de escritura del programa, para reducir las operaciones repetidas de escritura de código, el código repetido se introduce desde el exterior.
  • Si un atacante controla el archivo incluido, se puede obtener el control al incluir un archivo de secuencia de comandos cuidadosamente diseñado.
  • Los comandos de inclusión incluyen principalmente include, include_once, require, require_once.

2. La diferencia entre la inclusión de archivos remotos y la inclusión de archivos locales

  • La inclusión de archivos locales solo puede incluir archivos locales.
  • Los archivos remotos incluidos pueden cargar archivos de otros servidores, siempre que la opción de configuración de PHP allow_url_includeesté activada.

3、include, include_once, require, require_oncela diferencia entre estas funciones

  • include(): cuando no se puede encontrar el archivo incluido, solo se genera una advertencia y el script continúa ejecutándose.
  • require(): se produce un error fatal cuando no se puede encontrar el archivo incluido, lo que detiene la ejecución del script.
  • include_once(): include()Similar a , la única diferencia es que si ya se ha incluido el código del archivo, no se volverá a incluir.
  • require_once(): require()Similar a, si ya se ha incluido el código del archivo, no se volverá a incluir.

4. El archivo contiene correcciones de errores

  • Busque archivos de contenido confidencial, restrinja los tipos de archivos y más.
  • Estricta validación y filtrado de la entrada del usuario.
  • Usando un mecanismo de lista blanca, solo se permite incluir archivos o carpetas específicos.
  • Preste atención a la seguridad de la ruta de las importaciones de archivos y evite usar rutas controlables por el usuario.

Vulnerabilidad XSS (ataque de secuencias de comandos entre sitios)

1. Principio y protección de vulnerabilidad XSS

  • Los ataques XSS se pueden desencadenar cuando una aplicación no valida ni recodifica el contenido enviado por el usuario, sino que lo presenta directamente a un visitante del sitio web.
  • Los atacantes utilizan las vulnerabilidades correspondientes para incrustar secuencias de comandos JS en las páginas. Cuando los usuarios visitan páginas que contienen códigos de secuencias de comandos maliciosos o abren enlaces URL recibidos, el navegador del usuario cargará y ejecutará automáticamente códigos maliciosos para lograr el objetivo del ataque.

2. Medios de protección :

  • Filtrar caracteres peligrosos: filtre el contenido ingresado por el usuario, elimine o escape los caracteres especiales de HTML.
  • Límite de longitud de entrada: limite la longitud del contenido de entrada del usuario para evitar la inyección de secuencias de comandos maliciosas.
  • Codificación de entidades HTML: la codificación de entidades HTML se realiza en el contenido de salida de la página, y los caracteres especiales se convierten en entidades HTML, lo que hace que sea imposible de ejecutar.
  • Use una lista blanca: solo permita etiquetas y atributos HTML específicos y prohíba el uso de otras etiquetas y atributos.
  • Para XSS reflejado y almacenado, los caracteres confidenciales se pueden escapar cuando los datos se devuelven al navegador del cliente.
  • Para XSS de tipo DOM, se puede utilizar la codificación de datos sensibles al contexto.

3. Tipos y peligros de XSS

  • XSS reflectante: inyecte scripts maliciosos en la página de destino a través de puntos de entrada como parámetros de URL, un ataque único y el daño es relativamente bajo.
  • XSS almacenado: almacene scripts maliciosos en la base de datos del sitio web de destino, ataques residentes y daños graves. Los scripts maliciosos se activan para ejecutarse cuando otros usuarios visitan páginas que contienen scripts maliciosos.
  • XSS tipo DOM: el ataque no pasa por el lado del servidor. En el código JavaScript del lado del cliente, el script malicioso se activa al manipular el DOM. El daño depende del contenido del script malicioso y de la función del sitio web de destino. .

4. ¿Por qué el XSS almacenado es el más dañino?

  • Stored XSS es un ataque persistente en el que los scripts maliciosos se almacenan directamente en la base de datos del sitio web de destino.
  • Cuando otros usuarios solicitan páginas que contienen scripts maliciosos, los scripts maliciosos se leerán de la base de datos y se ejecutarán, lo que causará daño a otros usuarios.

5. Medidas de protección XSS

  • Validación y filtrado de entrada: valide y filtre los datos ingresados ​​por el usuario, elimine o escape los caracteres especiales de HTML.
  • Codificación de salida: antes de enviar a la página, la codificación de la entidad HTML se realiza en los datos del usuario y los caracteres especiales se convierten en entidades HTML, lo que hace que sea imposible de ejecutar.
  • Usar CSP (Política de seguridad de contenido): configure las políticas de CSP para limitar los recursos que las páginas pueden cargar y evitar la ejecución de scripts maliciosos.
  • Use los indicadores HttpOnly y Secure: configure los indicadores HttpOnly y Secure de las cookies para evitar que los scripts maliciosos roben las cookies de los usuarios.
  • Educación y capacitación: Aumente la conciencia de usuarios y desarrolladores sobre las vulnerabilidades de XSS y aumente la conciencia de seguridad.

Vulnerabilidad CSRF (falsificación de solicitud entre sitios)

1. Principio y reparación CSRF

  • Principio: utilice la información de autenticación de identidad de la víctima (como cookies, sesión, etc.) que no haya caducado para engañarla para que haga clic en un enlace malicioso o visite una página que contiene un código de ataque. Luego, la víctima envía una solicitud al servidor con la identidad de la víctima sin saberlo y completa la operación ilegal.
  • Método de reparación:
    • Verifica el Remitente del encabezado HTTP: solo responde a solicitudes con este dominio en el encabezado Remitente.
    • Agregar verificación de token a la dirección de solicitud: agregue un token generado aleatoriamente al parámetro o formulario de solicitud, y el servidor verifica si la solicitud tiene un token válido.
    • Utilice el almacenamiento local y el almacenamiento de sesión para guardar sesiones: almacene la información de la sesión en el lado del cliente en lugar de depender de las cookies.

2. Tipos de CSRF

  • Solicitud GET CSRF: solo necesita construir la URL y luego inducir a la víctima a visitar la URL.
  • Tipo de solicitud POST CSRF: construye un formulario enviado automáticamente e induce a la víctima a visitar o hacer clic en el formulario.

3. Los peligros de CSRF

  • Usar la identidad de la víctima para enviar correos electrónicos, enviar mensajes, robar la cuenta de la víctima, etc.

4. Diferencias con XSS

  • Tanto CSRF como XSS son vulnerabilidades de seguridad de las aplicaciones web, pero sus métodos y objetivos de ataque reales son diferentes:
    • CSRF utiliza la información de autenticación de identidad del usuario para falsificar la solicitud de la víctima, con el objetivo de atacar la interfaz y las funciones en segundo plano.
    • XSS es atacar el navegador del usuario inyectando scripts maliciosos, con el objetivo de robar información del usuario o implementar otros comportamientos maliciosos.

5. La diferencia con la SSRF

  • CSRF (Falsificación de solicitud entre sitios) significa que un atacante roba su identidad y envía solicitudes maliciosas en su nombre, como enviar correos electrónicos, secuestrar cuentas, comprar bienes, etc.
  • SSRF (Server Side Request Forgery) significa que los grandes sitios web o aplicaciones web proporcionan la función de obtener datos de otros servidores, y los atacantes usan aplicaciones web vulnerables como servidores proxy para llevar a cabo ataques remotos.

Vulnerabilidad SSRF (falsificación de solicitud del servidor)

1. Principio:

  • El servidor proporciona la función de obtener datos de otros servidores, pero no filtra ni limita la dirección de destino.
  • Los atacantes pueden falsificar solicitudes manipulando la dirección de destino de la solicitud.

2. Método de reparación:

  • Utilice la lista blanca de direcciones URL para restringir el acceso a las direcciones IP de la intranet.
  • Filtrar la información devuelta.
  • Mensajes de error unificados.
  • Limite las solicitudes solo a puertos web, permitiendo el acceso solo a solicitudes HTTP y HTTPS.

3. Cómo usar:

  • Escaneo de puertos para obtener información de banner de servicio.
  • Ataque intranet o aplicaciones locales.
  • Realice la identificación de huellas dactilares en las aplicaciones web de la intranet y acceda a los archivos predeterminados.
  • Ataque la aplicación web en la red interna y externa, y use el parámetro GET para realizar el ataque.
  • Utilice el protocolo de archivo para leer archivos locales.
  • Utilice el acceso no autorizado a Redis para implementar getshell a través de la inyección HTTP CRLF.
  • Ataques DOS, solicitud de archivos grandes, mantenimiento de conexiones, etc.

4. Postura de derivación:

  • Convierta IP para omitir la lista negra.
  • Use @ para incrustar credenciales en las URL para evitar la lista blanca.
  • Utilice redireccionamientos 302 para eludir las restricciones.
  • Explotar el ataque de reenlace de DNS.

Vulnerabilidad XXE (inyección de entidad externa)

1. Principio:

  • Los procesadores XML mal configurados hacen referencia a entidades externas.
  • Un atacante puede explotar el código vulnerable para atacar un procesador XML cargando un documento XML con contenido malicioso.

2. Cómo usar:

  • Lectura arbitraria de archivos.
  • Ejecución de comandos del sistema.
  • Detección de puertos de intranet.
  • Atacar sitios de intranet.
  • Ataque de suplantación de identidad.

3. Reparación de defensa:

  • Utilice los métodos proporcionados por el lenguaje de desarrollo para deshabilitar entidades externas.
  • Filtre los datos XML enviados para evitar palabras clave confidenciales como SISTEMA

escapatoria lógica

1. Principio:

Las lagunas lógicas se refieren a los atacantes que explotan fallas de diseño funcional o comercial para obtener información confidencial o destruir la integridad comercial. Por lo general, implica una interpretación errónea o una omisión de la lógica del sistema, lo que permite que un atacante realice acciones que no se esperaban.

2. Ultravires:

La escalada de privilegios es una vulnerabilidad lógica común y su esencia es el control de acceso no válido, es decir, no se implementa un control de acceso adecuado para los usuarios autenticados. El principio de acceso no autorizado es que los datos solicitados por el cliente no son juzgados por la autoridad y la verificación insuficiente conduce a la aparición de acceso no autorizado. Generalmente se divide en las siguientes dos categorías:

  1. Exceso de alcance horizontal: los usuarios no autenticados pueden acceder y operar otras cuentas con la misma autoridad. Los usuarios con la misma autorización pueden anular el acceso de los demás.
  2. Exceso de alcance vertical: los usuarios no autenticados pueden acceder y operar cuentas con mayor autoridad. Los usuarios con privilegios bajos pueden acceder a los recursos de los usuarios con privilegios altos.

3. Lagunas lógicas comunes:

Las vulnerabilidades lógicas comunes incluyen, entre otras, las siguientes:

  1. Lagunas en la lógica de pago: se refiere a fallas de diseño o errores de juicio en el proceso de pago que permiten a los atacantes obtener moneda o artículos de manera inapropiada.
  2. Vulnerabilidad de la lógica de SMS (vulnerabilidad de bombardeo de SMS): debido a la falla en el diseño de la lógica comercial de SMS, no hay límite para la cantidad de veces que se envían SMS, lo que hace que los atacantes puedan enviar mensajes SMS ilimitados, lo que provoca acoso o aumenta los cargos por SMS del operador. .
  3. Vulnerabilidad de ejecución de comandos: un atacante puede usar funciones de ejecución de comandos del sistema (como system, exec, shell-exec, etc. en php) para ejecutar código malicioso o comandos del sistema, obteniendo así permisos del sistema o accediendo a datos confidenciales.
  4. Vulnerabilidad de ejecución de código: se refiere a la vulnerabilidad de que un atacante puede ejecutar comandos de script de back-end (como código php), ejecutando así código malicioso y obteniendo permisos del sistema o datos confidenciales.

4. Métodos ordinarios de refuerzo de seguridad:

Para las vulnerabilidades lógicas, los métodos comunes de fortalecimiento de la seguridad incluyen:

  1. Cierre los puertos y servicios menos utilizados para reducir la superficie de ataque.
  2. Active el firewall, restrinja el tráfico de red y no permita la inserción de dispositivos USB externos.
  3. La base de datos no permite inicios de sesión anónimos y utiliza contraseñas seguras para el control de acceso.
  4. Los parámetros controlables se verifican y filtran estrictamente para evitar el acceso no autorizado y la entrada maliciosa.

vulnerabilidad de ejecución de comandos

1. Principio:

Las vulnerabilidades de ejecución de comandos se refieren a las funciones que ejecutan los comandos del sistema (como system, exec, shell-exec, passthru, popen, proc_open, assert, putenv, etc. en php) que se utilizan en las aplicaciones del programa. Los atacantes pueden ejecutar código arbitrario o comando del sistema . Las condiciones para que ocurra la vulnerabilidad son entradas de funciones que los usuarios pueden controlar y funciones peligrosas que pueden ejecutar códigos o comandos del sistema.

2. Definición básica

La vulnerabilidad de ejecución de comandos se refiere a la vulnerabilidad de que un atacante puede ejecutar comandos del sistema a voluntad. Una vez que el ataque tiene éxito, el atacante puede heredar la autoridad del programa de servicio web, ejecutar código arbitrario, leer y escribir archivos, incluso controlar todo el sitio web o el servidor, e incluso penetrar más en la intranet.

3. Uso y daño

Utilizando la vulnerabilidad de ejecución de comandos, un atacante puede ejecutar comandos del sistema, lo que genera los siguientes peligros:

  1. Ejecutar código arbitrario: un atacante puede ejecutar código arbitrario y usar los privilegios del sistema para realizar operaciones maliciosas, como eliminar archivos y manipular datos.
  2. Leer y escribir archivos: un atacante puede leer y modificar archivos en el servidor, incluidos datos confidenciales y archivos de configuración.
  3. Shell inverso: un atacante puede obtener un shell de sistema interactivo mediante la ejecución de código malicioso para controlar aún más el servidor.
  4. Tome el control del sitio web o del servidor: un atacante puede tomar el control total de todo el sitio web o el servidor para llevar a cabo otras actividades maliciosas, como la fuga de datos, atacar otros sistemas, etc.
  5. Penetración de intranet: al explotar las vulnerabilidades de ejecución de comandos, los atacantes pueden expandir la superficie de ataque e infiltrarse y atacar aún más la red interna.

4. Medidas defensivas

Para protegerse contra el riesgo de vulnerabilidades de ejecución de comandos, se pueden tomar las siguientes medidas defensivas:

  1. Trate de evitar ejecutar comandos externos: Al desarrollar aplicaciones, evite usar directamente los datos ingresados ​​por el usuario para ejecutar comandos del sistema, y ​​trate de usar otras formas seguras para lograr la misma función.
  2. Use funciones personalizadas o bibliotecas de funciones para reemplazar funciones peligrosas: puede escribir funciones de ejecución de comandos personalizadas para filtrar y verificar los datos ingresados ​​por los usuarios para garantizar que solo se ejecuten los comandos esperados.
  3. Use funciones de escape para procesar los parámetros de los comandos: antes de ejecutar los comandos del sistema, use las funciones de escape adecuadas (como escapeshellarg) para procesar los parámetros de los comandos y asegurarse de que los datos de entrada no se confundan con los comandos.
  4. Actualizaciones y mantenimiento regulares: varias bibliotecas y marcos utilizados en la aplicación se actualizan y parchean de manera oportuna para garantizar que se solucionen las vulnerabilidades conocidas, lo que reduce el riesgo de vulnerabilidades de ejecución de comandos.

Vulnerabilidades de deserialización

1. Principio

La serialización y la deserialización son el proceso de convertir un objeto en un formato específico para su almacenamiento o transmisión persistente. En Java, la serialización convierte un objeto en un flujo de bytes, mientras que la deserialización vuelve a convertir el flujo de bytes en un objeto.

La causa de la vulnerabilidad de deserialización es que cuando el usuario puede controlar los datos de deserialización de entrada, el atacante puede construir una entrada maliciosa, lo que hace que el proceso de deserialización genere objetos inesperados y ejecute código malicioso al mismo tiempo.

2. Funciones comunes

En PHP, las funciones comunes en torno a la deserialización son  serialize() y  unserialize(). Se utilizan para convertir objetos en cadenas para su almacenamiento o transmisión, y para volver a convertir cadenas en objetos.

3. Métodos mágicos de uso común

Aquí hay algunos métodos mágicos de uso común relacionados con la deserialización:

  1. __construct(): Un método que se llama automáticamente cuando se crea un objeto.
  2. __destruct(): Un método que se llama automáticamente cuando se destruye un objeto.
  3. __toString(): un método que se llama automáticamente cuando un objeto se convierte en una cadena.
  4. __sleep(): método para ejecutar antes de serializar el objeto.
  5. __wakeup(): el método que se llama inmediatamente después de que se deserializa el objeto.

Estos métodos mágicos juegan un papel importante en el proceso de deserialización y los atacantes pueden usarlos para realizar operaciones maliciosas.

Método de solicitud HTTP

El protocolo HTTP define un conjunto de métodos de solicitud para especificar operaciones realizadas por el cliente en el servidor.

Los siguientes son métodos de solicitud HTTP comúnmente utilizados:

  1. GET : se utiliza para solicitar obtener un recurso específico. Las solicitudes GET solo deben usarse para obtener datos y no deben usarse para realizar modificaciones en el servidor.

  2. POST : se utiliza para enviar datos al servidor y solicitar que el servidor los acepte como parte de la solicitud. Normalmente se utiliza para crear nuevos recursos, enviar datos de formulario o realizar operaciones en el servidor.

  3. PUT : Sirve para subir el recurso especificado al servidor, si el recurso existe se reemplaza, si no existe se crea.

  4. ELIMINAR : se utiliza para solicitar al servidor que elimine el recurso especificado.

  5. PATCH : Se utiliza para actualizar parcialmente los recursos, modificando solo una parte de los recursos especificados.

  6. HEAD : similar a una solicitud GET, pero solo devuelve la información del encabezado del recurso solicitado, no el contenido real.

  7. OPCIONES : se utiliza para solicitar al servidor que devuelva las opciones de comunicación admitidas por el recurso.

  8. TRACE : se utiliza para rastrear la ruta desde el cliente hasta el servidor.

  9. CONECTAR : se utiliza para establecer una conexión bidireccional con el recurso de destino, a menudo utilizado para la transmisión cifrada a través de un proxy.

Estos métodos de solicitud definen las diferentes operaciones que el cliente puede realizar al iniciar una solicitud al servidor y elegir el método adecuado para interactuar con el servidor de acuerdo con las necesidades específicas.

Tenga en cuenta que los diferentes métodos de solicitud corresponden a diferentes escenarios de uso y semántica. El uso correcto y la comprensión de estos métodos es una de las claves para un desarrollo web seguro y eficiente.

1. Método de escaneo y método de escaneo rápido

Los métodos HTTP generalmente utilizados para escanear son GET y HEAD. Entre ellos, el método HEAD es más rápido que el método GET.

2. El método de detección de la apertura del servidor.

Utilice el método OPCIONES para detectar qué métodos están habilitados por el servidor.

3. Código de estado HTTP

Los siguientes son códigos de estado HTTP comunes y sus significados:

  • 1xx (Respuesta de Información): Indica que la solicitud ha sido recibida y continúa procesando.
  • 2xx (Respuesta Exitosa): Indica que la solicitud fue recibida, entendida y aceptada exitosamente.
  • 3xx (redireccionamiento): indica que se requiere una acción adicional por parte del cliente para completar la solicitud.
  • 4xx (solicitud de error): Significa que la solicitud enviada por el cliente es incorrecta y el servidor no puede procesarla.
  • 5xx (Error del servidor): indica que el servidor encontró un error al procesar la solicitud.

Los códigos de estado HTTP específicos incluyen 100, 200, 301, 302, 400, 401, 403, 404, 500, 503, etc.

4. Campos HTTP

Estos son algunos campos HTTP comunes:

  • Host: la dirección del nombre de dominio del servidor web solicitado (la IP de la otra parte).
  • Agente de usuario: el tipo de navegador del cliente de la solicitud HTTP actual, incluido el tipo de navegador, el sistema operativo y la versión, el tipo de CPU, el motor de representación del navegador, el complemento del navegador y otra información.
  • Aceptar: Indique al servidor los tipos de medios que puede aceptar.
  • Accept-Charset: Indica al servidor el conjunto de caracteres que puede aceptar.
  • Aceptar codificación: indica al servidor los métodos de codificación que puede aceptar.
  • Accept-Language: Indica al servidor qué idiomas puede aceptar.
  • Codificación de contenido: Codificación arbitraria realizada en el cuerpo.
  • Contenido-Longitud: La longitud o tamaño del cuerpo.
  • Tipo de contenido: el tipo de objeto del cuerpo.
  • Autorización: Contiene los datos de autenticación proporcionados por el cliente al servidor.
  • Cookie: Los datos que el cliente envía el token al servidor.
  • Referente: Dile al servidor desde qué página está vinculada la página web.
  • DNT: indica la preferencia del usuario para el seguimiento en el sitio de destino.
  • X-Forwarded-For: Se utiliza para indicar la IP real del final de la solicitud HTTP.
  • Conexión: indica si se requiere una conexión persistente.
  • Keep-Alive: mantiene la conexión entre el cliente y el servidor persistentemente válida.
  • X-Requested-With: La forma de indicar la solicitud es XMLHttpRequest.
  • Fecha: La hora de la respuesta.
  • Servidor: Middleware del servidor e información del código fuente.

Estos campos juegan diferentes roles en el proceso de comunicación HTTP, brindando información y funcionalidad adicionales.

Tenga en cuenta que esto es solo una parte del protocolo HTTP, y el protocolo HTTP tiene más especificaciones y funciones.

vulnerabilidad de software intermedio

1. El middleware con vulnerabilidades de cruce de directorios incluye:

  • IIS
  • apache
  • Nginx

2. Hay middleware desplegado por archivos de puerta trasera de guerra:

  • Gato
  • Weblogic
  • jboss

[vulnerabilidad IIS]

  1. Poner vulnerabilidad (esencialmente carga de archivos arbitraria):

    • Principio: IIS habilitó WebDAV y configuró permisos de escritura, lo que resultó en una vulnerabilidad para la carga de archivos arbitrarios.
    • Defensa: desactive WebDAV; desactive los permisos de escritura.
  2. Análisis de vulnerabilidades:

    • Principio: la versión 6.0 por defecto analiza nombres de archivo como *.asp;.jpg como asp, y el siguiente contenido no se analiza, lo que equivale al truncamiento, que puede omitir la verificación del tipo de archivo.
    • Defensa: está prohibido cargar y crear archivos con formato incorrecto; configure el directorio de almacenamiento de imágenes para prohibir la ejecución de scripts.
  3. Adivina el nombre corto del archivo:

    • Principio: al usar el mecanismo de nombre de archivo corto de IIS, el nombre del archivo se puede descifrar violentamente.
    • Defensa: Actualizar .NET Framework, modificar claves de registro.

[vulnerabilidad de Apache]

  1. Vulnerabilidad de análisis (vulnerabilidad de análisis de nombre de extensión desconocido):

    • Principio: Apache establece de forma predeterminada que un archivo puede tener varios sufijos de corte de puntos. Cuando no se puede reconocer el sufijo más a la derecha, continuará reconociéndolo a la izquierda, lo que generará vulnerabilidades de análisis.
    • Defensa: configure razonablemente las reglas de análisis del tipo de archivo.
  2. Recorrido de directorio:

    • Principio: el programa no filtra por completo .../ y otros caracteres de salto de directorio ingresados ​​por el usuario, lo que hace que los usuarios maliciosos atraviesen archivos arbitrarios.
    • Defensa: Modificar los parámetros en el archivo httpd.conf.

[vulnerabilidad de Tomcat]

  1. Contraseña débil + despliegue de archivo de puerta trasera de guerra:

    • Principio: inicie sesión directamente en segundo plano sin autorización o use una contraseña débil para iniciar sesión en segundo plano y cargue un paquete de guerra que contenga código malicioso para atacar.
    • Defensa: configure contraseñas seguras; restrinja la IP de inicio de sesión en segundo plano; actualice la versión de Tomcat a tiempo.
  2. poner cualquier archivo cargar:

    • Principio: Tomcat permite cargar cualquier tipo de archivo mediante el método put, y la detección del tipo de archivo se puede omitir a través de nombres especiales.
    • Nota: Las versiones de Linux + Tomcat 5.0~9.0 pueden cargar la detección del tipo de archivo 1.jsp/bypass.

[vulnerabilidad de Nginx]

  1. Vulnerabilidades de análisis de archivos:

    • Principio: debido a una configuración incorrecta, Nginx entregó los archivos que terminan en '.php' a fastcgi, que se puede omitir mediante una denominación especial.
    • Defensa: modificar el parámetro cgi.fix_pathinfo en php.ini, configurar security.limit_extensions.
  2. Recorrido de directorio:

    • Principio: la mala configuración puede provocar el cruce de directorios y la divulgación del código fuente.
    • Corrección: Cambie el autoíndice de activado a desactivado en nginx.conf.
  3. Vulnerabilidad de inyección CRLF:

    • Principio: use caracteres CRLF para inyectar líneas nuevas maliciosas e inyecte cookies de sesión o códigos HTML en los encabezados de los mensajes HTTP.
    • Solución: modifique los archivos de configuración para evitar inyectar nuevas líneas maliciosas.

Jefe J:

1. Vulnerabilidad de deserialización (componente HttpInvoker (CVE-2017-12149)):

  • Principio: Esta vulnerabilidad existe en el filtro ReadOnlyAccessFilter del componente HttpInvoker de JBoss. Un atacante puede aprovechar esta vulnerabilidad para deserializar el flujo de datos del cliente y ejecutar código arbitrario.
  • Proceso de verificación de vulnerabilidad: visite /invoker/readonly, si devuelve 500 significa que hay una vulnerabilidad de deserialización. El atacante puede usar dos terminales, uno para monitorear y el otro para enviar cargas maliciosas, y revertir con éxito el shell.

2. Contraseña débil + implementación de archivos de puerta trasera de guerra:

  • Principio: el atacante usa una contraseña débil (como admin/admin) para iniciar sesión en la interfaz de administración en segundo plano y luego carga un archivo de guerra que contiene una puerta trasera para la implementación para realizar la ejecución remota de código malicioso.
  • Sugerencia de defensa: modifique las contraseñas débiles y elimine la página de la consola de administración.

WebLogic:

1. Contraseña débil + implementación de archivos de puerta trasera de guerra:

  • Principio: el atacante usa una contraseña débil (como weblogic/Oracle@123) para iniciar sesión en la consola de administración de WebLogic y luego la implementa cargando un archivo war.

2. Vulnerabilidad de deserialización:

  • Principio: el componente de seguridad WLS de WebLogic utiliza XMLDecoder para la deserialización cuando procesa datos XML pasados ​​por los usuarios, lo que genera vulnerabilidades de deserialización y los atacantes pueden ejecutar comandos arbitrarios.

3. Vulnerabilidad SSRF:

  • Principio: Los hosts externos pueden acceder al servidor web de WebLogic y permite el acceso a los hosts internos. Un atacante puede utilizar WebLogic Server para conectarse a cualquier puerto TCP de cualquier host de forma no autorizada, atacando así los componentes vulnerables de la intranet.

Apache Shiro:

  • Shiro es un marco de seguridad de Java, las siguientes son vulnerabilidades relacionadas con Shiro y cómo se pueden explotar:

1. Información de huellas dactilares:

  • Determinar si el objetivo utiliza el marco de trabajo de Shiro: hay una variable de recordarme en la información de la cookie en el paquete de solicitud y hay un campo recordarme=eliminarme en el conjunto de cookies del paquete devuelto.

2. Shiro-550 (vulnerabilidad de deserialización):

  • Principio: el marco de trabajo de Shiro generará una cookie de recuerdo cifrada y codificada después de un inicio de sesión exitoso. Si un atacante obtiene la clave de cifrado AES, puede construir un objeto malicioso y realizar la serialización, el cifrado y la codificación, y luego enviarlo al servidor como un campo RememberMe, y el servidor descifra y deserializa los datos enviados, lo que genera una vulnerabilidad de deserialización. .
  • Práctica y uso: el atacante puede usar el módulo de monitoreo en ysoserial para monitorear el puerto especificado en su propia computadora, luego usar un script de Python para obtener la clave AES y generar una carga maliciosa, y finalmente enviarlo al servidor de destino, y con éxito invertir la cáscara.

3. Shiro-721 (ataque de oráculo de relleno):

  • Principio: El algoritmo de cifrado utilizado en la cookie RememberMe del framework Shiro tiene problemas y es vulnerable a los ataques de Padding Oracle. Un atacante puede usar una cookie de recordarme especialmente diseñada como prefijo de ataque y luego escribir declaraciones maliciosas en el campo recordarme para realizar un ataque de deserialización.
  • Práctica y uso: el atacante primero inicia sesión en el sitio web de destino y obtiene la cookie de recuerdo, luego usa la herramienta ysoserial para cifrar una carga útil serializada de Java, construye una cookie de recuerdo maliciosa y la envía al servidor de destino, lo que finalmente conduce a un código remoto. ejecución.

Sugerencia de reparación :

  • Para las vulnerabilidades mencionadas anteriormente, se pueden considerar las siguientes sugerencias de remediación:
    • Para vulnerabilidades de contraseñas débiles: modifique la contraseña predeterminada y use una política de contraseñas seguras.
    • Para vulnerabilidades de deserialización: actualice a la versión más reciente de JBoss o WebLogic para asegurarse de que se solucionen las vulnerabilidades conocidas. Al mismo tiempo, limite las operaciones de deserialización del cliente y verifique y filtre estrictamente la entrada.
    • Para las vulnerabilidades de SSRF: restrinja el acceso de WebLogic a los hosts internos y utilice políticas de control de acceso detalladas para evitar que los atacantes utilicen las vulnerabilidades de SSRF para acceder a recursos confidenciales en la intranet.
    • Para las vulnerabilidades de Shiro: actualice a la última versión de Shiro para asegurarse de que se solucionen las vulnerabilidades conocidas. Compruebe si la función de recordarme en la aplicación se implementa correctamente para evitar el ataque de Padding Oracle en la función de restablecimiento de contraseña.

pensarPHP

Información de huellas dactilares:

  • Ingresar http://192.168.xx.xx/ThinkPHP/logo.png en la URL mostrará la imagen, que también existe en el título de la página.
  • "Diez años de afilar una espada" es una característica importante de ThinkPHP.

Principio de vulnerabilidad:

  • El programa no filtra el controlador, lo que permite que un atacante llame a métodos de clase arbitrarios introduciendo símbolos \.
  • Una URL creada con fines malintencionados puede ejecutar código arbitrario.

Practica y usa:

  1. Plantar un caballo de Troya de una frase (escrito en la URL)

    • Carga útil: http://192.168.xx.xx/public/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo ^>shell.php
  2. Mostrar información de phpinfo (escrita en la URL)

    • Carga útil: http://192.168.xx.xx/public/index.php?s=index/\think\app/invokefunction&function=phpinfo&varv[0]=100
  3. Método de utilización POST uno (escrito en el cuerpo de la solicitud)

    • Carga útil:_method=_construct&filter=system&method=get&server[REQUEST_METHOD]=whoami
  4. Método de utilización POST 2 (escrito en el cuerpo de la solicitud)

    • Carga útil:a=sistema&b=whoami&_método=filtro

Sugerencia de reparación:

  1. Actualice la versión del marco a tiempo: preste atención regularmente a la última versión lanzada oficialmente por ThinkPHP y actualícela a tiempo. Los nuevos lanzamientos suelen corregir errores y problemas de seguridad.

  2. Validación y filtrado de entrada: valide y filtre la URL ingresada por el usuario para asegurarse de que los datos de entrada se ajusten al formato y contenido esperados, y evite que las URL creadas con fines maliciosos provoquen vulnerabilidades de ejecución de código.

  3. Filtrado de controladores: filtre y restrinja los controladores para garantizar que solo se puedan llamar los métodos de clase esperados, evitando que los atacantes llamen a métodos de clase arbitrarios mediante la introducción de símbolos \.

  4. Capacitación de concientización sobre seguridad: Capacitación de concientización sobre seguridad para que los desarrolladores aumenten la conciencia sobre la seguridad web y enseñen prácticas de codificación seguras para evitar vulnerabilidades de seguridad comunes.

  5. Control de permisos que involucran operaciones confidenciales: de acuerdo con los requisitos comerciales, realice un control de permisos en las interfaces y funciones que involucran operaciones confidenciales para garantizar que solo los usuarios autorizados puedan realizar operaciones relevantes.

★ Puntales2 ★

Información de huellas dactilares:

  1. Por lo general, para los sitios web desarrollados con el marco st2, la URL contendrá nombres de archivo con sufijos .action o .do.
  2. Puede juzgar si se utiliza el marco st2 haciendo eco del mensaje de error.
  3. De forma predeterminada, el marco st2 existe en el archivo http://192.168.xx.xx/struts/webconsole.html.
  4. El campo Tipo de contenido puede contener indicaciones %{#x=['xxx'].

Principio de vulnerabilidad:

  • Vulnerabilidad st2-045: al procesar los datos cargados, se analiza la expresión OGNL en el campo Tipo de contenido y, si hay una declaración maliciosa, se ejecutará.
  • S2-062 Vulnerabilidad de ejecución de comando remoto: solucione la vulnerabilidad incompleta CVE-2020-17530. El principio es similar. La expresión OGNL se ejecuta a través de %{x} en el atributo de etiqueta y el %{payload} controlable por el usuario.

Practica y usa:

Consulte la descripción de la sección del principio de vulnerabilidad para obtener más detalles.

Sugerencia de reparación:

  • Actualice el marco Struts2 a la última versión.

fastjson

Información de huellas dactilares:

  • Capture el paquete para ver si el valor del parámetro pasado en el paquete de solicitud está en formato json, por ejemplo, {"张三":100,"李四":200}. Luego modifique los datos json a voluntad para ver si fastjson.JSONExceptionlas palabras aparecen en el paquete de respuesta.
  • Una solicitud normal es una solicitud de obtención sin un cuerpo de solicitud. Puede comprobar si existe esta cadena en el paquete devuelto creando una solicitud POST incorrecta fastjson.

Principio de vulnerabilidad:

  • Siempre que pasemos datos de tipo json @type, cuando el programa llame a JSON.parseObjecteste método para procesar el objeto json, el programa deserializará y generará un objeto. Por lo tanto, después de comprender el mecanismo de Fastjson procesando json, el atacante solo necesita establecer @typeel valor TemplatesImplpara construir una clase maliciosa, y esta clase tiene un campo que genera una instancia de java _bytecodesde acuerdo con el programa . _bytecodesEl problema es que cuando se genera la instancia de Java, se llama automáticamente al constructor. Luego, el atacante solo necesita asignar el código malicioso al _bytecodescampo y el código malicioso se ejecutará.
  • get Fastjson llamará a todos los métodos o  al serializar javaBean  is y llamará a todos los métodos al deserializar  set Si este  set método contiene algunas cadenas de llamadas peligrosas, podemos usar este proceso de deserialización para ejecutar nuestra propia orden.

Sugerencia de reparación:

  • @type Filtrar por  campos.

apache log4j

Esfera de influencia:

  • Apache Log4j 2.x <Apache Shiro = 2.14.1

Aplicaciones y componentes afectados:

  • Spring-Boot-Strater-log4j2, Apache Solr, Apache Flink, Apache Druid

Principio de vulnerabilidad:

  • Principio 1: una vez que MessagePatternConverter un  format() método de clase encuentra un registro  ${ , reemplazará el contenido de la expresión con el contenido analizado de la expresión, no con la expresión en sí.
  • Principio 2: StrSubstitutor extraiga los parámetros de la clase y  lookup reemplace el contenido con el objeto. Cuando se encuentra el registro  , el contenido de la expresión se dividirá en dos partes, la primera parte se usa como prefijo y la última parte se usa como declaración para ser ejecutado, y  el método es llamado ${  a través del implemento de la instancia correspondiente lookup
  • Principio 3: el principio de la inyección de Jndi es inyectar declaraciones maliciosas en Jndi  ${jndi:ldap://…} y realizar la carga remota de archivos de clases maliciosos y la ejecución de códigos en ellos, para lograr el propósito de explotar vulnerabilidades.

Sugerencia de reparación:

  • Agregar parámetros de inicio de JVM -D log4j2.formatMsgNoLookups=true
  • log4j2.component.properties Agregue un archivo de configuración en la ruta de clase de la aplicación  , y el contenido del archivo es el comando anterior
  • Actualice JDK a 11.0.1, 8u191, 7u201, 6u211 y superior
  • La implementación utiliza productos de firewall de terceros para la protección de la seguridad.

[Importante] Vulnerabilidad de ejecución remota de código de Spring Framework (CVE-2022-22965 )

Esfera de influencia:

  1. JDK >= 9且5.3.X < Spring Framework < 5.3.18或5.2.X < Spring Framework < 5.2.20
  2. Use un marco Spring afectado o un marco derivado.
  3. Dependencias Spring-webmvc o Spring-webflux.

Descripción de la vulnerabilidad:

Spring Framework es un marco de aplicaciones de código abierto diseñado para reducir la complejidad del desarrollo de aplicaciones. Es ligero y débilmente acoplado. Tiene una arquitectura en capas que permite la selección de componentes por parte del usuario al mismo tiempo que proporciona un marco cohesivo para el desarrollo de aplicaciones J2EE. Sin embargo, en el entorno de JDK9 y superior, algunas funciones de la nueva versión permiten a los atacantes eludir las funciones de seguridad y modificar archivos confidenciales mediante la construcción de paquetes de datos para lograr la ejecución remota de código.

Explotación:

  1. Para construir el entorno localmente usando el campo de tiro de Vulfocus, ejecute el siguiente comando: docker-compose up -d.

  2. Capture paquetes en la interfaz vulnerable de Spring Framework y reemplace el contenido de la solicitud GET. El método de reemplazo específico es el siguiente:
    reemplace el contenido del paquete con lo siguiente:

    • A la izquierda está antes del reemplazo,
    • A la derecha está después del reemplazo.
  3. Finalmente, visite http://192.168.xx.xx:8080//tomcatwar.jsp?pwd=j&cmd=whoami, y podrá ver el resultado de la ejecución del comando en la interfaz.

Sugerencia de reparación:

  1. Utilice la protección UWAF.
  2. Busque la anotación @InitBinder en el código para ver si se llama al método dataBinder.setDisallowedFields en el cuerpo del método. Si es así, agregue {"class.module.*"} a la lista negra existente.
  3. Actualizar a la última versión en el tiempo.

★Weblogic★

Principio de vulnerabilidad:

La vulnerabilidad se debe principalmente a la clase utilizada para construir gadgets (clase de construcción de deserialización) en coherence.jar, y utiliza el protocolo T3 habilitado de forma predeterminada en weblogic para la transmisión y el análisis, lo que hace que el servidor weblogic deserialice el código malicioso y ejecute declaraciones de ataques. .

T3 es un protocolo para transferir información entre WebLogic Server y otros tipos de programas Java. El servidor puede rastrear y monitorear continuamente si el cliente está vivo (mecanismo de latido). Por lo general, el intervalo de latido es de 60 segundos. Si no se recibe ningún latido durante más de 240 segundos, se determinará que la conexión con el cliente se ha perdido.

Sugerencia de reparación:

Actualice la versión del marco Weblogic.

[muy importante] Vulnerabilidad F5 CVE-2020-5902 (la última aún no se ha encontrado)

Causas:

Cuando Apache procesa /tmui/login.jsp/…;/tmui/locallb/workspace/fileRead.jsp, lo considerará como el archivo /tmui/login.jsp procesado. Sin embargo, .*.jsp hará una coincidencia máxima, lo que dará como resultado que /tmui/login.jsp/…;/tmui/locallb/workspace/fileRead.jsp completo se pase a Tomcat para su procesamiento. El procesamiento de verificación de autorización de acceso de Apache se puede encontrar en /etc/httpd/modules/mod_auth_pam.so. Cuando Tomcat procesa /tmui/login.jsp/…;/tmui/locallb/workspace/fileRead.jsp, eliminará los caracteres entre el punto y coma y la barra inclinada.

Explotación:

Al explotar esta vulnerabilidad, los comandos se pueden ejecutar en el entorno F5 con privilegios de root y los archivos se pueden leer y escribir llamando al comando curl. El comando bash debe crearse con un alias; de lo contrario, la ejecución del comando puede fallar. Además, puede escribir el script en ejecución en un archivo en F5 y ejecutar el script; en teoría, puede ejecutar cualquier comando de shell. También puede usar un caparazón inverso para obtener el caparazón F5.

Sugerencia de reparación:

Actualice la versión del marco F5.

Preguntas sobre herramientas web

1. En cuanto a las herramientas web, las siguientes son las características de tráfico de Chopper, Ice Scorpion, Ant Sword y Godzilla:

  

1. Cuchillo de cocina chino:

  • La transmisión de texto sin formato de la versión anterior se cambió más tarde para usar el cifrado Base64.
  • Las funciones se encuentran principalmente en el cuerpo de la solicitud, donde el parámetro predeterminado codificado por Base64 es "z0". Después del descifrado, se pueden encontrar las funciones utilizadas para entregar la carga útil, como eval y afirmar en PHP, y ejecutar en ASP.
  • En versiones posteriores, algunos caracteres en el cuerpo de la solicitud se reemplazan con la codificación Unicode, y el común es %u00.

2. Espada de hormiga:

  • Utilice el cifrado Base64 y el cifrado AES.
  • La característica común de la clase PHP es @ini_set("display_errors", "0"), mientras que la característica común de la clase ASP es ejecutar, pero la cadena se interrumpirá y empalmará, y la forma confusa suele ser _0x... =.

3. Escorpión de hielo:

  • Utilice el cifrado AES.
  • Antes de que se establezca la conexión, se realizará el proceso de intercambio de claves AES y el cuerpo de la solicitud es un texto cifrado con cifrado AES.
  • La característica de Ice Scorpion 1 es Content-Type: application/octet-stream.
  • La característica de Ice Scorpion 2 es Content-Length: 16.
  • La característica de Ice Scorpion 3 es Content-Type: application/octet-stream.

4. Godzilla:

  • Utilice el cifrado AES.
  • Las características de una conexión PHP son el primer paquete y el segundo paquete que contiene "pass**=" en la solicitud, mientras que las características de una conexión JSP son las mismas que las de la solicitud PHP, ambos contienen "pass=". Además, el Content-Length devuelto por el servidor al iniciar una conexión suele ser 0.

5. Tiburón de cable :

  • Software de análisis de paquetes de red
  • Se utiliza para interceptar y analizar los paquetes de tráfico en la tarjeta de red especificada
  • Cuando la sintaxis de la regla de filtro es correcta, el cuadro de edición de filtro se mostrará en verde; si es incorrecta, se mostrará en rojo
  • Protocolo de filtro: puede ingresar directamente el nombre del protocolo, como tcp, udp, arp, icmp, http, ftp, dns, etc.
  • Filtrar ip:
    • ip.src eq 192.168.1.107: mostrar IP de origen
    • ip.dst eq 192.168.1.107: muestra la IP de destino
    • ip.addr eq 192.168.1.107: Mostrar IP de origen o destino
  • Puerto de filtro:
    • tcp.port == 80: Muestra todo el tráfico con el puerto 80
    • tcp.dstport == 80: Muestra el tráfico TCP con el puerto de destino 80
    • tcp.srcport == 80: Muestra el tráfico TCP cuyo puerto de origen es 80
    • tcp.port >= 1 y tcp.port <= 80: muestra el tráfico con un rango de puertos entre 1 y 80
    • udp.port eq 15000: filtra el tráfico con el puerto UDP 15000
  • Filtrar dirección MAC:
    • eth.dst == A0:00:00:04:C5:84: filtrar la dirección MAC de destino
    • eth.src == A0:00:00:04:C5:84: dirección MAC de origen del filtro
    • eth.addr == A0:00:00:04:C5:84: muestra la dirección MAC de origen o destino
  • Filtrar HTTP:
    • http.request.method == "GET": filtra el tráfico cuyo método de solicitud HTTP es GET
    • http.request.uri == "/img/logo-edu.gif": filtra el tráfico cuya URI de solicitud es /img/logo-edu.gif
    • http contiene "GET": filtre el tráfico HTTP que contiene "GET"
    • http.request.method == "GET" && http contiene "User-Agent:": filtra el tráfico HTTP cuyo método de solicitud es GET y contiene "User-Agent:"
    • http contiene "HTTP/1.1 200 OK" && http contiene "Content-Type:": filtre el tráfico HTTP cuyo código de estado sea HTTP/1.1 200 OK y contenga "Content-Type:"
  • Filtrado de longitud de paquetes:
    • udp.length == 26: filtrar el tráfico con paquetes UDP de longitud 26
    • tcp.len >= 7: filtrar el tráfico con una longitud de paquete TCP mayor o igual a 7 (excluyendo el propio TCP)
    • ip.len == 94: filtrar el tráfico con una longitud de paquete IP de 94 (excluyendo el encabezado de Ethernet)
    • frame.len == 119: filtra el tráfico con una longitud de paquete completa de 119 (a partir del encabezado de Ethernet)

6. Nmapa :

  • Software de escaneo de red, utilizado para escanear la conexión de red de la computadora y los servicios en ejecución, etc.
  • Comandos comunes:
    • nmap -p 1-65535 192.168.1.1: escanea todos los puertos del host de destino
    • nmap -sT 192.168.1.1: use TCP Connect para escanear (método de escaneo predeterminado)
    • nmap -Pn 192.168.1.1: Escaneo sin ping, omita el firewall para realizar el escaneo
    • nmap -sV 192.168.1.1: devuelve el puerto y su correspondiente servicio y número de versión
    • nmap -sS 192.168.1.1: escaneo semiabierto, determine el estado del puerto devolviendo el segundo protocolo de enlace del servidor
    • nmap -sN 192.168.1.1: use el escaneo nulo de TCP, solo detección de host sin escaneo de puertos
    • nmap -A 192.168.1.1: escaneo integral completo, incluidas amplias capacidades de escaneo
    • nmap -O 192.168.1.1: detección de sistema operativo
    • nmap -T4 192.168.1.1: establezca la plantilla de tiempo en T4 (cuanto más alto, más rápido)
    • nmap -v 192.168.1.1: muestra información detallada sobre el proceso de escaneo
    • nmap --script <script name>: use el script especificado para escanear
    • otras opciones:
      • nmap -p 1-65535 192.168.1.1: especifique escanear todos los puertos (de manera predeterminada, solo se escanean 1000 puertos comunes, equivalente a nmap -p-)
      • nmap --batch 192.168.1.1: seleccione la opción predeterminada para escanear
      • nmap --cookie "valor de la cookie" 192.168.1.1: use cookies para escanear
      • nmap --level X 192.168.1.1: establece el nivel de escaneo (hasta X=5)
      • nmap --risk X 192.168.1.1: establezca el nivel de riesgo (0~3, cuanto mayor sea el riesgo, mayor será el tiempo de exploración)
      • nmap --os-shell 192.168.1.1: Ejecutar escritura de archivos y operación de caballo colgado
      • nmap --os-dbms 192.168.1.1: tipo de base de datos explosiva
      • nmap -vv 192.168.1.1: muestra información más detallada del proceso de escaneo (múltiples -v significa más detallado)

7. Suite de eructos :

  • Famosa plataforma de integración de aplicaciones de ataque web
  • Contiene múltiples herramientas, como craqueo de fuerza bruta, codificación y decodificación, intercepción de tráfico, etc.
  • Módulos principales:
    • Módulo proxy: un servidor proxy que intercepta HTTP/S, que puede interceptar, ver y modificar flujos de datos
    • Módulo Intruder: herramienta altamente configurable para ataques automatizados y aplicaciones web de fuerza bruta
    • Módulo repetidor: envíe solicitudes HTTP individuales y analice las respuestas de las aplicaciones
    • Módulo decodificador: para ejecución manual o decodificación/codificación inteligente de datos de aplicación
    • Módulo de escáner (solo versión pro): herramienta avanzada para encontrar agujeros de seguridad en aplicaciones web
    • Módulo Spider: rastreador web inteligente para una enumeración completa del contenido y la funcionalidad de la aplicación

8. Mapa Sql :

  • Herramienta de prueba de penetración de código abierto para detectar vulnerabilidades de inyección SQL y hacerse cargo de los servidores de bases de datos
  • La función principal:
    • Detectar vulnerabilidades de inyección SQL, obtener información de bases de datos, acceder a sistemas de archivos, ejecutar comandos, etc.
  • Comandos comunes:
    • sqlmap -u "http://www.xx.com?id=x": establezca la URL de destino para escanear
    • sqlmap -r "mlh.txt": utilizado para inyección POST, carga de paquetes de datos guardados en formato txt
    • sqlmap -p "id": inyecta parámetros especificados
    • sqlmap --dbs: descifrar todas las bases de datos (bases de datos explosivas)
    • sqlmap --tables -D mlh: descifrar todas las tablas en la biblioteca mlh (nombres de tabla voladura)
    • sqlmap --columns -T mlh: descifrar todos los nombres de campo debajo de la tabla mlh
    • sqlmap --dump -C nombre, contraseña: Obtener el contenido en el campo (explotando el campo)
    • sqlmap --current-db: muestra el nombre de la base de datos actual (nombre de la base de datos de voladura)
    • sqlmap --current-user: muestra el nombre de usuario de la base de datos actual
    • sqlmap --batch: escaneo con opciones predeterminadas
    • sqlmap --cookie "valor de cookie": use cookies para inyección
    • sqlmap --level X: establezca el nivel de análisis (hasta X=5)
    • sqlmap --risk X: establezca el nivel de riesgo (0~3, cuanto mayor sea el riesgo, menor será la velocidad)
    • sqlmap --os-shell: Ejecutar archivos escritos en el caballo colgado (hanging horse)
    • sqlmap --os-dbms: tipo de base de datos explosiva
    • sqlmap --tamper *** .py,*** .py: use el script, el último parámetro es el archivo py en la biblioteca de manipulación

9. Vuela

 

10.  Shodan

  1. Motor de búsqueda Shodan: Shodan es un motor de búsqueda que se centra en dispositivos IoT y dispositivos de red, que pueden buscar y obtener información sobre dispositivos y servicios que coincidan con condiciones específicas.

  2. El resultado de buscar contenido de página web que contenga "Beijing": http.html:"Beijing"

  3. Resultados de la búsqueda de páginas cuyo título contenga "Cisco": html.title:"Cisco"

  4. Busque resultados donde el tipo de servidor en la solicitud HTTP sea "Microsoft-IIS/10": http.server:"Microsoft-IIS/10"

  5. Busque resultados en los que la solicitud HTTP devuelva un estado de código de respuesta de "200": http.status: "200"

  6. Resultados de búsqueda donde el nombre de host o el nombre de dominio contiene "google": nombre de host: "google"

  7. El resultado de buscar puerto o servicio como "21": puerto: "21"

  8. Resultados de búsqueda para el país "CN": país: "CN"

  9. Resultados de la búsqueda de la ciudad "Hefei": ciudad: "Hefei"

  10. Resultados de búsqueda para el nombre de la organización o empresa "google": org:"google"

  11. El resultado de buscar en el sistema operativo/software/plataforma "Apache httpd": producto: "Apache httpd"

  12. Resultados de búsqueda para la versión de software "1.6.2": versión: "1.6.2"

  13. Busque datos registrados antes o después de "11-09-19": antes: "11-09-19" o después: "11-09-19"

  14. Resultados de búsqueda para una dirección IP específica o subred "210.45.240.0/24": net: "210.45.240.0/24"

  15. Resultados de la búsqueda del número de vulnerabilidad CVE específico "CVE-2014-0723": vuln:CVE-2014-0723

  16. Encuentre resultados para una cámara web SQ-WEBCAM específica: Servidor: SQ-WEBCAM

【Google Hacking (Google Hacker Gramática)】

  1. intitle:Meng Linghao: limite el ámbito de búsqueda al título de la página
  2. inurl:jsp?id= – restringe la búsqueda a enlaces URL
  3. site:mlh.com: restringe la búsqueda a un sitio específico (se puede usar para buscar subdominios)
  4. tipo de archivo: doc: el ámbito de búsqueda se limita al formato de documento especificado
  5. intext:Meng Linghao: el alcance de la búsqueda se limita a las palabras clave en el texto
  6. link:mlh.com: devuelve todas las URL que enlazan con este sitio
  7. info: – Encuentre información básica sobre el sitio especificado
  8. caché: – busca algo en el caché

【Problema del equipo de seguridad】

  1. ¿Qué es IPS?
    • IPS (Sistema de prevención de intrusiones) analiza y monitorea el tráfico de la red e intercepta ataques si los encuentra. Es una gran adición a un firewall, ya que actúa como una segunda línea de defensa.
  2. ¿Qué es IDS?
    • IDS (Sistema de detección de intrusos) monitorea y registra varios intentos de ataque en la red, pero no interceptará el comportamiento del ataque, sino que solo puede detectar y rastrear después del evento.
  3. ¿Qué es un tarro de miel?
    • Un honeypot es un host de señuelo desplegado para atraer a los atacantes para que lo ataquen y para capturar y analizar los comportamientos de ataque para comprender las herramientas y los métodos utilizados por los atacantes y mejorar las capacidades de protección de seguridad de los sistemas reales.
  4. ¿Qué es un cortafuegos?
    • Un firewall es un dispositivo de seguridad de la red que se utiliza para monitorear y controlar el tráfico de la red y proteger la red de ataques y accesos no autorizados mediante la aplicación de un conjunto de políticas de seguridad.
  5. ¿Qué son los WAF?
    • WAF (Web Application Firewall) es un cortafuegos especialmente diseñado para aplicaciones web que, al detectar y filtrar el contenido de las solicitudes HTTP y HTTPS, garantiza su legalidad y seguridad, y bloquea las solicitudes ilegales.
  6. La diferencia entre WAF e IPS
    • La protección de WAF contra los sistemas web está más dirigida y puede prevenir la inyección de SQL, los ataques de secuencias de comandos entre sitios, las vulnerabilidades de carga de archivos, etc. El IPS tiene un rango más amplio de protección.
  7. La diferencia entre WAF suave y duro
    • Soft WAF se implementa en base a software, y Hard WAF se implementa en base a dispositivos de hardware.
  8. ¿Cuáles son los dispositivos de hardware de los fabricantes encontrados?
    • Tianyan de Qi Anxin, equipo de escaneo faltante de NSFOCUS, honeypot de Weibu, firewall y VPN de Sangcon, etc.
  9. ¿Qué dispositivos de seguridad de red conoce?
    • IDS, IPS, cortafuegos, honeypot.
  10. ¿Cuál es la diferencia entre los honeypots de interacción baja, los honeypots de interacción media y los honeypots de interacción alta?
    • Honeypot de baja interacción: simule el comportamiento del servicio, los datos no son lo suficientemente reales.
    • Honeypot de interacción: simule el comportamiento del sistema operativo real, proporcione más información de interacción y obtenga más información sobre el atacante.
    • Honeypot de alta interacción: con un sistema operativo real, un mayor grado de simulación y más datos reales.
  11. ¿Cómo se implementan IPS e IDS en la red?
    • IPS generalmente está conectado en serie detrás del firewall, que puede interceptar y bloquear el tráfico.
    • Los IDS se pueden colgar en la red para monitorear y registrar el tráfico de la red.
  12. ¿Conoces el Tianqing de Qi Anxin?
  • Tianqing es una plataforma de operaciones de seguridad lanzada por Qi Anxin, que es similar a 360 Security Guard y tiene funciones como módulos de análisis de tráfico, monitoreo y recuperación de registros.

13. ¿Alguna vez has usado Sky Eye de Qi Anxin? ¿Para qué puedes usar tus ojos?

  • Sí, entiendo el Sky Eye de Qi Anxin. SkyEye se utiliza principalmente para el análisis y la supervisión del tráfico, y también tiene un módulo de recuperación de registros, que se puede rastrear y buscar.

14. ¿Cómo se implementan IPS e IDS en la red?

  • El IPS (Sistema de prevención de intrusiones) generalmente se implementa en la línea principal o en los nodos clave de la red para monitorear y bloquear el tráfico de la red en tiempo real.
  • El IDS (Sistema de detección de intrusos) se puede colgar en la red troncal o en los nodos perimetrales de la red para monitorear y registrar el tráfico de la red y proporcionar alarmas en tiempo real y análisis de registros.

15. ¿Qué es la protección DDoS?

  • La protección DDoS (Distributed Denial of Service Attack) es una medida de seguridad de red diseñada para proteger los servicios de red de ataques DDoS a gran escala. Utiliza diversos métodos, como filtrado de tráfico, listas blancas y negras, limpieza de tráfico, etc., para mitigar y prevenir el impacto de los ataques a la red.

16. ¿Qué es una VPN (Red Privada Virtual, red privada virtual)?

  • Una VPN es una tecnología para establecer una conexión segura a través de una red pública, como Internet. Puede crear un túnel cifrado entre el usuario y la red de destino, lo que permite al usuario acceder de forma segura a los recursos de la red de destino mientras protege la confidencialidad y la integridad de la comunicación.

17. ¿Qué es el análisis de vulnerabilidades de seguridad?

  • Un análisis de vulnerabilidades de seguridad es una herramienta o servicio automatizado que detecta posibles vulnerabilidades y debilidades en un sistema informático, dispositivo de red o aplicación. Escanea el sistema de destino, identifica las vulnerabilidades de seguridad y brinda recomendaciones de reparación para fortalecer la seguridad del sistema.

pregunta empírica

1. El flujo de trabajo de la entrada del proyecto:

  1. Comprender la situación del proyecto, incluida la composición del personal, etc.
  2. Comprender el equipo en el proyecto, como el diagrama de topología y el equipo de armado de seguridad, etc.
  3. Confirme el contenido del trabajo y verifique si el equipo se puede usar normalmente.
  4. Identifique los contactos de emergencia y los procedimientos de notificación de emergencia.

2. ¿Cómo encuentra los sitios web de vulnerabilidad entregados a plataformas de vulnerabilidad como Vulnerability Box y CNVD?

(1) Por lo general, use la sintaxis de piratería de Google, como buscar sitios web que puedan tener inyección SQL: inurl:php?id=1.
(2) Use Intergraph o fofa para buscar, por ejemplo, busque sitios web backend con body="background", o busque sitios web con contraseñas predeterminadas donde body="la contraseña predeterminada es admin", etc.

3. Problemas a los que se debe prestar atención durante las pruebas de penetración:

  • No debe afectar la continuidad de la operación del sistema comercial del sitio web de la otra parte, y no destruirlo.
  • Generalmente, la escalada de privilegios no se realiza para no provocar que el servidor se bloquee.
  • No se realiza ninguna operación de montaje de caballos, solo para probar si la vulnerabilidad de carga de archivos se puede analizar y ejecutar.
  • Pruebe manualmente antes de explotar la cuenta del sistema para evitar que la cuenta se bloquee debido a una contraseña incorrecta.

4. Contenido principal y alcance de las pruebas de penetración:

Las pruebas de penetración se realizan principalmente sobre los sistemas internos de la empresa y los proyectos de pruebas de penetración que realiza, en la medida en que descubre y prueba la existencia de vulnerabilidades.

5. Vulnerabilidades interesantes que ha descubierto:

Siéntase libre de usarlo siempre que sea lógico, como desenterrar vulnerabilidades de inyección de SQL, encontrar el fondo a través de herramientas, cargar vulnerabilidades, etc.

6. El proceso de gestión de incidentes de seguridad de la empresa:

De acuerdo con la gravedad del evento, realice operaciones como el aislamiento de la desconexión de la red y la resolución de problemas a bordo.

7. Proceso de prueba de penetración del proyecto:

  1. Identificar los requisitos del proyecto y las consideraciones para las pruebas de penetración.
  2. Pruebas de penetración en el sitio web.
  3. Genere un informe de prueba de penetración basado en las vulnerabilidades descubiertas.

8. ¿Su trabajo de prueba de penetración debe realizarse en el sitio?

Generalmente, es una prueba de penetración remota, que no se requiere en el sitio del cliente, y principalmente prueba el sistema de red externo.

9. ¿Tiene un compañero durante su trabajo y cuál es su contenido de trabajo?

Hay socios, es decir, compañeros de la empresa, y el contenido del trabajo se refiere a la descripción en tu currículum.

10. Si te encuentras con alguien jugando durante el trabajo, ¿qué harás?

Si se descubre que los colegas se involucran en comportamientos no relacionados con el trabajo, como jugar juegos durante las horas de trabajo, primero deben recordárselos y supervisarlos, e informar al gerente del proyecto si no son válidos. Para otros fabricantes y clientes que juegan y afectan el trabajo normal, pueden comunicarse directamente con el gerente del proyecto para tomar las medidas correspondientes. (Esta es solo una declaración oficial. En realidad, no te afecta si otros te pescan. Solo entrometiéndose en los asuntos de otras personas puedes sobrevivir mejor en el lugar de trabajo)

Ideas de penetración

1. Pasos para la prueba de penetración del cuadro de inicio de sesión:

  • Intentos de fuerza bruta en el cuadro de inicio de sesión para adivinar el nombre de usuario y la contraseña correctos.
  • Ingrese un número de cuenta, observe si hay un indicador de eco en la página y explote de acuerdo con la información del eco.
  • Tome las estrategias correspondientes de acuerdo con las diferentes situaciones de eco:
    • Si la página dice que la contraseña es incorrecta, use Burp Suite para capturar paquetes, configure la contraseña como una variable e importe el libro de contraseñas para la destrucción de contraseñas.
    • Si la página muestra que el nombre de usuario es incorrecto, use Burp Suite para capturar paquetes, configure el nombre de usuario como una variable e importe libros comunes de nombres de usuario y contraseñas para voladuras.
    • Si la página muestra que el nombre de usuario o la contraseña son incorrectos y no puede determinar si el nombre de usuario existe o no, use Burp Suite para capturar paquetes, configure el nombre de usuario y la contraseña como variables, use voladura de doble variable e importe el nombre de usuario y libro de contraseñas para voladuras.
  • Pruebe con otra detección de vulnerabilidades, como inyección SQL, ejecución de comandos, vulnerabilidad lógica, etc.
  • Escanee con una herramienta de escaneo de vulnerabilidades como AWVS y verifique manualmente los resultados del escaneo.

2. Para los pasos de prueba de penetración de un sitio web:

  • Primero, recopile información para comprender el lenguaje y el middleware que utiliza el sitio web.
  • Escanee puertos abiertos en sitios web para encontrar fugas de puertos confidenciales.
  • Use una herramienta de escaneo de directorios (como Edgeworth, dirsearch) para escanear el sitio web en busca de archivos confidenciales o backends.
  • Recopile el nombre del subdominio o la dirección IP del segmento C del sitio web.
  • En función de la información recopilada, realice análisis y minería de vulnerabilidades, como probar contraseñas débiles, inyección de SQL, etc.
  • Escanee con una herramienta de escaneo de vulnerabilidades como AWVS y verifique los resultados del escaneo.
  • Verifique los elementos funcionales y la lógica del sitio web, buscando posibles lagunas lógicas.
  • Genere el informe de la prueba de penetración, incluido el punto de explotación de la vulnerabilidad, las sugerencias de reparación y las herramientas utilizadas, etc.

3. Ideas de penetración de dominio:

  • Localice la IP del controlador de dominio y la cuenta de administrador de dominio.
  • Utilice los hosts de miembros del dominio como trampolín para ampliar el alcance de la penetración.
  • Use el privilegio del administrador del dominio para iniciar sesión en cualquier host miembro del dominio para encontrar la IP del host en la que el administrador del dominio ha iniciado sesión.
  • Obtenga la contraseña del administrador de dominio de la memoria del host miembro del dominio y obtenga la autoridad de control del controlador de dominio.

4. La diferencia entre las pruebas de penetración y la minería SRC:

  • Los informes varían en complejidad y los informes de pruebas de penetración para proyectos suelen ser más complejos.
  • El informe sobre la excavación de SRC incluye principalmente el proceso y el método de excavación de vulnerabilidades.

5. Caja de vulnerabilidades y parches:

  • Tanto Loopbox como Butian han autorizado proyectos SRC de bienestar público para eliminar lagunas.
  • Ambos cobran por los exploits descubiertos en toda la red.

6. Razones por las que no se presentó la revisión de vulnerabilidades:

  • No se puede contactar con el fabricante.
  • Existen vulnerabilidades, pero son menos dañinas, como el XSS reflejado.
  • Algunas plataformas no incluyen tipos específicos de vulnerabilidades, como directorio transversal, phpinfo, etc.

7. Sitio web de recopilación de vulnerabilidades conocidas:

  • Butian: incluidas las vulnerabilidades recopiladas por Butian, las vulnerabilidades descubiertas por proyectos de prueba públicos y las vulnerabilidades descubiertas por toda la red.
  • Caja de vulnerabilidades: incluidas las vulnerabilidades recopiladas por la Caja de vulnerabilidades, las vulnerabilidades descubiertas por proyectos de prueba públicos y las vulnerabilidades descubiertas por toda la red.
  • CNVD: recopilar y administrar información diversa sobre vulnerabilidades.

8. Herramientas de escaneo de vulnerabilidades de uso común:

  • AWVS: se utiliza para escanear sitios web en busca de vulnerabilidades.
  • Goby: se utiliza para el descubrimiento de hosts, el escaneo de puertos y el escaneo de vulnerabilidades.
  • Nessus: herramienta integral de análisis y evaluación de vulnerabilidades.
  • AppScan: Escaneo de vulnerabilidades y evaluación de seguridad para aplicaciones web.
  • X-Ray: una herramienta de escaneo de seguridad de red basada en aprendizaje automático.
  • . . . . . (diga las herramientas con las que está familiarizado)

9. El proceso general de investigación y juicio intermedio:

  • Realice análisis de tráfico, analice paquetes de datos de red y encuentre comportamientos de tráfico anormales.
  • Vuelva a probar y verificar las vulnerabilidades descubiertas para garantizar la explotabilidad y la nocividad de las vulnerabilidades.
  • Realice el refuerzo de referencia, la configuración de seguridad y la gestión de parches para el sistema.
  • Realice pruebas de penetración de los activos designados según sea necesario para evaluar la seguridad del sistema.
  • Cree informes de recomendación de disposición o informes de análisis de tráfico diario que resuman la postura de seguridad y brinden recomendaciones y soluciones.
  • Participe en el trabajo de respuesta a emergencias, realice un análisis de trazabilidad y restaure el proceso de ataque y las actividades del atacante tanto como sea posible.

10. Informe de hardware:

En los ejercicios ofensivos y defensivos de HW, generalmente se envían informes diarios y semanales. El contenido del informe es principalmente un resumen de la situación de seguridad en el sitio, incluido el número de alarmas y eventos de ataque exitosos.

11. Informe de seguridad de la empresa:

Generalmente incluyen informes de pruebas de penetración e informes mensuales.

  • Informe de prueba de penetración: los resultados de una prueba de penetración en el sistema o sitio web de una empresa, incluidos los problemas y vulnerabilidades encontrados, y las recomendaciones para su corrección.
  • Informe mensual: resume las amenazas y vulnerabilidades de seguridad descubiertas en el mes en curso y proporciona análisis y sugerencias sobre la situación general de seguridad.

12. El trabajo principal de monitoreo y monitoreo del tráfico generalmente incluye:

  • Detección diaria de alarmas de tráfico
  • Análisis preliminar de tráfico y monitoreo
  • Actualice el equipo según sea necesario
  • Escribir informes de tráfico diarios para el día.

13. Los proyectos HW suelen incluir los siguientes grupos:

  • Grupo de monitoreo: responsable de monitorear el tráfico del dispositivo
  • Equipo de Investigación y Juicio: Analizar y verificar las vulnerabilidades reportadas por el equipo de monitoreo
  • Grupo de eliminación: prohibición de direcciones IP dirigidas a ataques maliciosos
  • Equipo de respuesta de emergencia: realice una respuesta de emergencia a los servidores atacados con éxito
  • Grupo de trazabilidad y contramedidas: rastrear y contraatacar al atacante
  • Grupo de expertos: mando y coordinación general del trabajo del proyecto

El proceso habitual es: el grupo de monitoreo informa el tráfico de ataque malicioso monitoreado al grupo de investigación y juicio, y el grupo de investigación y juicio analiza y confirma si es tráfico de ataque y luego lo transfiere al grupo de eliminación para su bloqueo. Si hay un ataque exitoso, el equipo de investigación y juicio debe cooperar con el equipo de trazabilidad y contramedidas y el equipo de respuesta de emergencia.El personal del equipo de trazabilidad y contramedidas de la fuente y el equipo de investigación y juicio rastrearán la fuente y la emergencia. El equipo de respuesta llevará a cabo una respuesta de emergencia a las máquinas afectadas.

14. ¿Has participado en hw? ¿Qué equipo usaste? 

Sí, participó en el programa HW. El equipo principal utilizado es Sky Eye de Qi Anxin.

15. Puntos a tener en cuenta al reparar vulnerabilidades:

  • Realice reparaciones sin afectar las operaciones de continuidad del negocio
  • Evite los períodos pico de uso comercial para la corrección de errores

16. ¿En qué tipo de trabajo eres bueno en hw y qué proyectos de hw has experimentado?

Bueno en monitoreo de tráfico y análisis de tráfico, de acuerdo con lo que se dice en el currículum.

17. Los métodos comunes de rastreabilidad incluyen:

  • Encuentra la IP del atacante a través del dispositivo de seguridad
  • Verifique el número de teléfono móvil y la dirección de correo electrónico a través de sitios web relevantes (como ipwhois, Weibu, Webmaster's Home, etc.)
  • Utilice información como software social o plataformas de compras para pintar un retrato del atacante.

problema de intranet

1. ¿Qué es un controlador de dominio?

        Controlador de dominio (Domain Controller) se refiere al servidor responsable de la autenticación de las computadoras y los usuarios conectados a la red en el modo "dominio". Puede controlar las máquinas en el dominio y tiene alta autoridad.

2. Busque el controlador de dominio de las siguientes formas:

  • Consultar información de configuración de red: use el comando "ipconfig /all" para ver la información del servidor DNS, y los controladores de dominio suelen ser servidores de nombres de dominio DNS.
  • Use el comando "net time /domain" para encontrar el controlador de dominio y determinar el dominio principal.
  • También puede usar otras herramientas de escaneo de red para encontrarlos e identificarlos.

3. Los métodos para la penetración lateral de la intranet incluyen:

  • Recopilación de información: use comandos como "net view" para obtener la lista de máquinas en la misma LAN, "netsh wlan show profiles" para ver los archivos de configuración de la red local, "net group/domain" para consultar la lista de todos los grupos de usuarios en el dominio, etc
  • Recopilación de información básica de hosts de intranet: use comandos como "systeminfo", "net start" y "tasklist" para obtener información como la versión del sistema, el estado de inicio del servicio y la lista de procesos.
  • Recopilación de información de red: use comandos como "ipconfig /all", "net view /domain", "net time /domain", etc. para obtener la configuración de red, información de dominio y sincronización de tiempo.
  • Recopilación de información de usuarios y grupos: use comandos como "whoami /all", "net user /domain", "net group /domain", etc. para obtener información de usuario de dominio e información de grupo.
  • Recopile información de credenciales: recopile varios textos cifrados, textos sin formato, contraseñas, etc. para prepararse para las pruebas de penetración lateral posteriores.

4. Las razones de la falla del reenvío de puerto de intranet pueden incluir:

  • Política de firewall: el puerto de destino no puede salir de la red.
  • Las herramientas de reenvío de puertos son muy distintivas y pueden ser detectadas por firewalls o sistemas de detección de intrusos.
  • El puerto de destino está inservible o inaccesible.
  • La IP con reenvío de puerto no está accesible o está bloqueada en la red.

5. Algunas herramientas comunes de reenvío de puertos

Incluyendo Frp, nc (Netcat), lcx, etc.

6. La razón por la que falla el reenvío de puerto de intranet

  1. Política de firewall: el puerto de destino no puede salir de la red y el firewall ha configurado reglas para restringir el acceso a este puerto.

  2. Las herramientas de reenvío de puertos tienen características obvias: algunas herramientas de reenvío de puertos tienen características que los cortafuegos o los sistemas de detección de intrusos detectan fácilmente, lo que provoca que no se realice el reenvío de puertos con normalidad.

  3. El puerto no puede proporcionar el servicio: el servicio donde se encuentra el puerto de destino no se inicia o no puede proporcionar el servicio con normalidad, lo que provoca la falla del reenvío de puerto exitoso.

  4. La IP reenviada por puerto es inalcanzable: la IP de destino reenviada es inalcanzable o inaccesible desde las máquinas controladas por el atacante (broilers).

7. ¿Entiendes CS?

CobaltStrike (CS) es una herramienta gráfica integrada que admite sistemas Windows y Linux e integra funciones como escalada de privilegios, reenvío de puertos, ataque de Office, agrupación de archivos y phishing. También es compatible con el trabajo colaborativo de varias personas. La forma de iniciar CS incluye cargar "teamserver.bat" y "cobaltstrike.jar" a través de la línea de comandos para iniciar.

8. Golden tickets y silver tickets son conceptos utilizados en el protocolo Kerberos para ataques:

  • Golden Ticket (boleto dorado) es un método de ataque que obtiene el hash NTLM de krbtgt, falsifica TGT y clave de sesión de inicio de sesión y luego obtiene otros permisos de recursos en el dominio.
  • Silver Ticket (Silver Ticket) genera un TGS que puede acceder a servicios específicos falsificando TGS (Ticket Granting Service), omitiendo la verificación del controlador de dominio. No requiere la participación del KDC (controlador de dominio), por lo que se puede omitir el controlador de dominio.

8. ¿Sabes sobre evitar matar?

        Antivirus se refiere a los medios técnicos para eludir el software de seguridad y los mecanismos de protección. Los métodos antivirus estáticos incluyen el reemplazo de firmas, el reemplazo de recursos, la modificación de puntos de entrada y el empaquetado. Los métodos de evitación dinámica incluyen la sustitución de la API, la reescritura de la API, la modificación de la secuencia de llamadas, etc. Las herramientas antivirus comunes incluyen Metasploit (MSF) y CobaltStrike (CS).

problemas de respuesta de emergencia

1. El servidor Linux se carga en el webshell, cómo hacer frente a la emergencia:

  • Use la herramienta de escaneo Hippo o D-shield para escanear el directorio raíz del sitio web para ver si se puede escanear el webshell.
  • Verifique el registro web del sitio web. Los registros de acceso y envío de datos del webshell generalmente dejan rastros en el registro. La característica es que una pequeña cantidad de IP inician el acceso a la página, y la cantidad de visitas es relativamente pequeña. La página puede estar aislado.
  • Verifique el tráfico de alarmas de los dispositivos relacionados, verifique el nombre y la ruta del shell web y luego use el comando de búsqueda en el servidor para encontrarlo y eliminarlo.

2. Respuesta de emergencia durante el Hardware:

  • Primero bloquee la IP de origen del ataque y bloquee la dirección IP de origen del ataque de acuerdo con la información de notificación o el informe del evento de ataque.
  • Según el informe del evento de ataque, se atienden los incidentes de seguridad, incluyendo una serie de medidas para el ajuste de la política de dispositivos de seguridad, sistema fuera de línea, inspección de servidores, inspección de aplicaciones, refuerzo y rectificación, y sistema en línea.
  • Informe los incidentes de seguridad e informe los incidentes de ataque y la eliminación de amenazas a la persona de contacto superior de acuerdo con el informe de comportamiento de ataque y el informe de eliminación.

3. Además de matar el proceso, el método para encontrar rápidamente el webshell:

  • Verifique el tráfico de alarmas de los dispositivos relacionados, verifique el nombre y la ruta del webshell y use el comando de búsqueda en el servidor para encontrarlo.
  • Use la herramienta de escaneo Hippo o D-shield para escanear el directorio raíz del sitio web para ver si se puede escanear el webshell.

4. Proceso de respuesta a emergencias:

  • Descubrimiento y notificación de incidentes
  • Evaluación de amenazas y ajuste de políticas de seguridad
  • recopilación y análisis de inteligencia
  • Manejo y limpieza de incidentes de seguridad
  • Seguimiento de incidentes y recopilación de lecciones aprendidas

5. Herramientas comúnmente utilizadas en respuesta a emergencias:

  • espada de yesca
  • escudo D
  • Hipopótamo
  • Caja de arena en la nube de Weibu

6. Herramientas para visualizar procesos y registro:

  • Tinder Sword puede ver el proceso y el registro con un solo clic.

7. Pasos de respuesta de emergencia de Windows:

  1. Solución de problemas del proceso: use el comando "netstat -ano" para ver el estado actual de la conexión de red y use el comando "lista de tareas" para ver el proceso en ejecución a través de la ubicación PID.
  2. Evaluación del estado del grupo de usuarios: use el comando "usuario neto" para ver las cuentas ocultas en el servidor y busque en el registro "HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names".
  3. Juicio relacionado con el servicio: ejecute el comando "msconfig" para abrir la configuración del sistema y ver la lista de servicios.
  4. Verifique los elementos de inicio del sistema: use el comando "msconfig" para verificar los elementos de inicio del sistema.
  5. Detección de creación/eliminación de tareas programadas: ejecute el comando "cmd" y use "schtasks.exe" para ver las tareas programadas.
  6. Comprobación del registro: utilice un antivirus para comprobar el registro.
  7. Detección de archivos: verifique los directorios a los que accedió recientemente y use un software antivirus como "D-Shield" y "Xia Hippo" para encontrar webshells y puertas traseras C2.
  8. Solución de problemas de registros: verifique los registros de inicio de sesión de Windows (4624 y 4625 en eventvwr) y los registros de middleware, y analícelos en función de la IP de origen, la URL de destino, la hora y el código de respuesta.
  9. Comprobación de registro de middleware diferentes middleware tienen diferentes directorios de registro, mire la IP de origen, la URL de destino, la hora y el código de respuesta.Herramientas disponibles: los registros de mapa de estrellas 360 generalmente terminan con acess.logo

8. Respuesta de emergencia de Linux:

  1. Inspección de archivos: use el comando ls -alt /tmppara ver los archivos temporales en el directorio /tmp.
  2. Solución de problemas de elementos de inicio: use comandos ls -alt /etc/init.d/para ver el contenido de los elementos de inicio.
  3. Ver registros de ejecución de comandos: puede usar historycomandos directamente o cat ~/.bash_historyver registros de ejecución de comandos.
  4. Verifique la información del usuario: Verifique el archivo /etc/passwd para obtener información del usuario.
  5. Comprobación de tareas programadas: use el comando crontab -lpara ver las tareas programadas actuales y determinar si hay información sobre el inicio del programa troyano de puerta trasera.
  6. Solución de problemas de procesos: use comandos netstat -antlppara ver procesos, use pscomandos para analizar procesos o use topcomandos para ver el uso de recursos del sistema.
  7. Verifique el registro de inicio de sesión del sistema: verifique el registro SSH /var/log/lastlog para ver los registros de inicio de sesión más recientes y use comandos lastlogpara ver la información de inicio de sesión más reciente de todos los usuarios en el sistema.
  8. Consulta de registro de middleware: por ejemplo, los registros de Apache se encuentran en /var/log/httpd/ y los registros de Ngix se encuentran en /var/log/nginx/.
  9. Detección de puertas traseras: puede usar herramientas como GScan o usar comandos findpara encontrar puertas traseras como Hippo webshell.

9. Proceso de eliminación de ransomware:

  1. Primero comprenda la situación actual, incluida la hora de inicio y la arquitectura del sistema, y ​​confirme el host infectado.
  2. Tome medidas temporales, aísle el host infectado de la red, prohíba el uso de dispositivos de almacenamiento móviles y realice el aislamiento de ACL en hosts no infectados, cierre protocolos remotos como SSH (para Linux) y RDP (para Windows) y prohíba el uso de dispositivos móviles de almacenamiento.
  3. Obtenga muestras, verifique archivos, procesos, información del sistema y registros del sistema para sistemas Windows, y verifique archivos, procesos y registros para sistemas Linux.
  4. Para continuar con el procesamiento, aísle el host infectado de la red, espere el progreso del descifrado y finalmente reinstale el sistema. Realice reparaciones de parches en hosts no infectados, use software de seguridad para la protección y actualice la base de datos de virus/reglas a tiempo.
  5. Por último, existen medidas defensivas, como la aplicación periódica de parches, la implementación de antivirus, el fortalecimiento de las políticas de contraseñas y la implementación de equipos de detección de tráfico.

10. Respuesta a emergencias mineras:

  1. Juicio:
    • Verifique el uso de la CPU para determinar si es anormalmente alto.
    • Consulte el análisis de tráfico de SkyEye para ver si ha visitado sitios web peligrosos y ha descargado comandos de minería.
    • Para verificar si hay una conexión externa o una solicitud a una IP remota, puede usar el comando netstat -anopara ver todas las conexiones de puerto.
  2. Análisis de eventos:
    • Inicie sesión en el servidor del sitio web y verifique si el proceso es anormal.
    • Vea elementos de servicio de procesos anormales, seleccione elementos de servicio sospechosos y detenga el servicio.
    • Verifique las tareas programadas en busca de elementos sospechosos.
  3. Solución temporal:
    • Detenga y deshabilite los elementos de servicio sospechosos.
    • Elimínelo de acuerdo con la ruta donde realmente se encuentra el caballo de Troya.
    • Reinicia la computadora.
    • Utilice un antivirus para realizar un análisis completo del disco.

11. Respuesta de emergencia de gusanos (con la ayuda de una gran cantidad de herramientas)

Introducción a los gusanos:

        Un gusano es un programa autónomo (o conjunto de programas) que generalmente se propaga a través de una red. Cada vez que invade una nueva computadora, se replica en esa computadora y ejecuta sus propios programas automáticamente. Algunos gusanos típicos incluyen Panda Burning Incense, Shockwave/Sasser, Conficker, etc.

Escena que sucede:

        En el firewall de salida, el administrador descubrió que el servidor de la intranet inicia continuamente conexiones activas a direcciones IP en el extranjero y el entorno de la intranet no puede conectarse a la red externa.

Respuesta de emergencia:

1. Análisis y juicio:

  • Verifique la IP de la intranet del servidor en el firewall de salida.
  • Desconecte el host infectado de la intranet.
  • Inicie sesión en el servidor y use la herramienta D-shield_web para realizar las siguientes operaciones:
    • Escanear y matar virus.
    • Compruebe la conexión del puerto.
    • Se puede encontrar que el área local se está conectando activamente a la IP de la red externa en grandes cantidades. (Como se muestra abajo)

2. Puertos anormales causados ​​por gusanos:

  • Al observar las anomalías del puerto, puede rastrear la ID del proceso y encontrar el proceso principal que causa el servicio anormal.Este proceso puede estar enviando solicitudes a una gran cantidad de puertos IP remotos, lo que puede ser un signo de infección por gusanos.

3. Use la herramienta para matar virus Kaspersky:

  • Use la herramienta antivirus Kaspersky para escanear y eliminar todos los archivos en el servidor.
  • Durante el proceso de eliminación, se pueden encontrar algunos archivos anormales, que pueden ser archivos de virus o gusanos.

4. Use el sitio web de escaneo de virus en línea de varios motores:

  • Utilice algunos sitios web de detección de virus en línea con múltiples motores para escanear los archivos anormales encontrados y confirmar con qué tipo de gusanos está infectado el servidor.

5. Descargue la herramienta para matar gusanos para verificar:

  • Según el tipo de gusano confirmado, descargue la herramienta para matar gusanos correspondiente.
  • Use herramientas especiales para matar para verificar y eliminar virus en el servidor.

Proceso (versión abreviada):

  1. Detección anormal: use el firewall de salida y observe la conexión del puerto local, y encuentre una gran cantidad de situaciones anormales que inician activamente conexiones a la red externa.
  2. Eliminación de virus: use Kaspersky para escanear todo el disco y encontrar archivos anormales.
  3. Confirme el virus: use la herramienta de escaneo de virus en línea multimotor para escanear los archivos anormales y confirmar que el servidor está infectado con el gusano conficker.
  4. Tratamiento de virus: descargue la herramienta para matar gusanos conficker, verifique y elimine el virus en el servidor y elimine con éxito el virus.

Precaución:

  1. Instale un software antivirus confiable y realice escaneos regulares del disco completo para garantizar la detección y eliminación oportuna de virus.

  2. Evite el uso de software de fuentes desconocidas y no acceda aleatoriamente a discos U que no hayan sido eliminados por virus para evitar infecciones de virus.

  3. Repare regularmente las vulnerabilidades del sistema Windows e instale los parches de seguridad oficiales a tiempo para reducir la capacidad de explotación de los virus.

  4. Realice copias de seguridad de los archivos importantes con regularidad para garantizar la seguridad de los datos. Los archivos de respaldo deben almacenarse en un sistema o medio separado en caso de que los archivos de respaldo también estén infectados.

Problema del ojo del cielo 

Skyeye es una plataforma de inteligencia de amenazas y monitoreo de seguridad. A continuación, se muestran algunas sintaxis de recuperación de registros de Skyeye comúnmente utilizadas:

  1. dip: la dirección IP atacada
  2. dport: el puerto que está siendo atacado
  3. sorbo: dirección IP de origen
  4. deporte: puerto de origen
  5. uri: dirección URL de la solicitud
  6. datos: el contenido del cuerpo del paquete de solicitud
  7. estado: el código de estado del paquete de respuesta
  8. anfitrión: nombre de dominio
  9. client_os: operador del sistema, puede usar AND (AND o && o +), OR (OR o ||), NOT (NOT o! o -) para operaciones lógicas

Para los ataques a la intranet, se puede realizar el siguiente procesamiento:

  1. Estudie y juzgue la acción del ataque; si se trata de una falsa alarma, puede retroalimentar el producto SkyEye y realizar ajustes (la alarma de activación comercial especial puede causar una falsa alarma).
  2. Compruebe si los activos que lanzaron el ataque se han perdido. Si se descubre que los activos se han perdido, se requiere una respuesta de emergencia y reparación.

Para ataques a redes externas, se puede realizar el siguiente procesamiento:

  1. Estudie y juzgue la acción del ataque; si se trata de una falsa alarma, puede retroalimentar el producto SkyEye y realizar ajustes (la alarma de activación comercial especial puede causar una falsa alarma).
  2. Excluya algunas direcciones IP especiales (como puerta de enlace, CDN e IP de salida, etc.) y luego implemente una estrategia de bloqueo en el dispositivo fronterizo para hacer frente al ataque.

Interfaz y servicios de SkyEye:

  • SkyEye consta de sensores de tráfico (sondas), identificadores de amenazas de archivos (sandboxes), plataformas de análisis y SkyXing (si está disponible).
  • La interfaz de menú de SkyEye incluye funciones como la supervisión del estado de los sensores de tráfico, alarmas de amenazas, configuración de reglas, configuración de políticas y configuración del sistema.
  • La plataforma de análisis proporciona funciones tales como reconocimiento de amenazas, lista de alarmas y centro de análisis, recuperación de registros.

Tipo de alarma: incluye intento (intento de atacar el objetivo), éxito (un ataque exitoso provoca daños en el objetivo), falla (el sistema objetivo ha sido controlado por el atacante) y falla (el intento de ataque no tiene éxito).

1. Determinar si la alarma es un falso positivo

Observar la IP de origen del ataque

  • IP de intranet:
    • Si hay solicitudes maliciosas obvias en el paquete de solicitud de tráfico de alarma, como "ipconfig", "whoami", etc., puede indicar que el servidor de la intranet se ha caído. Informe inmediatamente al equipo de investigación para un análisis detallado.
    • Se confirmó que los falsos positivos fueron causados ​​por problemas de lógica de negocios en el sistema de intranet al que se accedió, como sentencias SQL incluidas directamente en solicitudes de lógica de negocios normales. En tales casos, es necesario informar la falsa alarma al personal de investigación y juicio, y los expertos y el cliente de la Parte A confirmarán si existe un problema de lógica comercial en el sistema y confirmarán si la IP de origen de la alarma funciona. registros cerca del período de tiempo de la alarma.
  • IP de red externa:
    • Compare el contenido de datos del paquete de solicitud y el paquete de respuesta. Por ejemplo, si el paquete de solicitud contiene declaraciones maliciosas, como ejecutar declaraciones SQL (seleccionar versión, etc.), se puede determinar que el ataque es un ataque malicioso.

2. Manejar alarmas de minería de intranet

  1. Manejo de Alarmas Mineras Intranet

    • La mayoría de las alarmas de minería de intranet son alarmas de inteligencia, y la tasa de falsas alarmas es alta, lo que puede ser causado por empleados internos que usan software o sistemas pirateados. Manipule con cuidado para asegurarse de que no se pierda ninguna alarma.
    • Informe dichas alarmas al personal de investigación y juicio para una mayor verificación.
  2. Determinar si se va a minar

    • Uso de la CPU: compruebe si el uso de la CPU del servidor o la PC está cerca o supera el 100% y sigue siendo alto, lo que provoca retrasos en la operación.
    • Acceso a direcciones no confiables: observe si el servidor o la PC accede a hosts, direcciones IP y nombres de dominio no confiables. Por lo general, la minería necesita descargar programas de inicialización de direcciones no confiables.
    • Archivos, procesos o servicios anormales o maliciosos: Verifique si el servidor o la PC ha agregado recientemente archivos, procesos o servicios anormales o maliciosos, especialmente archivos almacenados en el directorio TMP.
    • Cambios de tareas programadas: Observe si se modifican las tareas programadas del servidor o PC.
  3. Confirmado para ser minado

    • Cuando la tasa de uso de recursos (CPU) del servidor o PC sigue siendo alta, acercándose o superando el 100 %, lo que provoca un retraso en la operación, se puede determinar que se está minando.
    • Otras características comunes de minería incluyen: acceso a direcciones no confiables, nuevos archivos/procesos/servicios anormales o maliciosos, cambios de tareas programadas, etc.

Confirmar el método de ser minado

  1. El uso de recursos:

    • Cuando la tasa de uso de la CPU del servidor o PC está cerca o supera el 100 % y sigue siendo alta, lo que provoca un retraso en el funcionamiento del servidor o PC, se puede considerar que se ha minado.
  2. Servidor o PC accediendo a direcciones no confiables:

    • Observe si el servidor o la PC ha accedido a hosts, direcciones IP y nombres de dominio que no son de confianza. La mayoría de las actividades mineras requieren la descarga de programas de inicialización desde direcciones que no son de confianza. Las fuentes no confiables pueden incluir estructuras de inteligencia de terceros o depósitos de datos históricos dentro de la empresa.
  3. Archivos, procesos o servicios inusuales o maliciosos:

    • Verifique si se han agregado archivos, procesos o servicios anormales o maliciosos al servidor o PC, especialmente los archivos almacenados en el directorio TMP (directorio de archivos temporales).
  4. Cambios de tareas cronometradas:

    • Observe si se modifican las tareas programadas del servidor o la PC. Las tareas programadas anormales pueden estar relacionadas con actividades mineras.

3. Determinar si el ataque de inyección SQL es exitoso:

  • Juicio basado en la comparación del paquete de solicitud y el paquete de respuesta.
  • Compruebe si el paquete de solicitud contiene instrucciones SQL, como "versión SELECT".
  • Verifique si hay un eco exitoso, como la versión de la base de datos en el paquete de respuesta.
  • Si se cumplen las condiciones anteriores, se determina que el ataque de inyección SQL es exitoso.

4. Determine si el ataque de carga de archivos es exitoso:

  • Juicio basado en la comparación del paquete de solicitud y el paquete de respuesta.
  • Descarte los casos en los que el código de estado sea 404.
  • Compruebe si el código de estado del paquete de respuesta es 200 o 302.
  • Compruebe si el nombre del archivo en el paquete de solicitud es un nombre de archivo de script malicioso.
  • Compruebe si el contenido del cuerpo del paquete de solicitud incluye contenido de script malicioso.
  • Observe el contenido del paquete de respuesta.
  • Si se cumplen las condiciones anteriores, se determina que el ataque de carga de archivos es exitoso.

5. Determine si el ataque de ejecución de comandos tiene éxito:

  • Juicio basado en la comparación del paquete de solicitud y el paquete de respuesta.
  • Compruebe si el paquete de solicitud contiene comandos del sistema, como "ipconfig".
  • Compruebe si el eco del paquete de respuesta contiene contenido relevante, como una dirección IP.
  • Si se cumplen las condiciones anteriores, se determina que el ataque de ejecución de comandos es exitoso.

6. Determine si el ataque XSS tiene éxito:

  • Juicio basado en la comparación del paquete de solicitud y el paquete de respuesta.
  • Compruebe si el script insertado por el paquete de solicitud está dentro del paquete de respuesta.
  • Copie el cuerpo del paquete de respuesta, colóquelo en un documento HTML y ábralo con un navegador.
  • Compruebe si hay efectos de ataque, como ventanas emergentes.
  • Si se cumplen las condiciones anteriores, se determina que el ataque XSS es exitoso.

7. Determine si el ataque SSRF tiene éxito:

  • Si se puede realizar la verificación de vulnerabilidad, se realiza la verificación de recurrencia.
  • Si no se puede realizar la verificación de vulnerabilidad, verifique los registros para comprobar si hay interacción de tráfico con el objetivo.
  • Si hay interacción de tráfico, se debe determinar que el ataque es exitoso.

8. Analice una gran cantidad de alarmas en equipos SkyEye:

  • Filtrar y ver por prioridad.
  • Ordene y visualice de alto a bajo riesgo, desde la ejecución de comandos hasta el cruce de directorios.

9. Sobre la tasa de falsos positivos de Tianyan:

  • En comparación con los equipos de otros fabricantes, la tasa de falsas alarmas de SkyEye no es alta.
  • La mayoría de las reglas son más precisas, pero es difícil detectar ataques de día cero.

10. Al encontrar una advertencia de enlace malicioso, ¿cómo juzgar si el ataque es exitoso?

  • El juicio se realiza en función del paquete de solicitud y el paquete de respuesta que visita el enlace malicioso.
  • Compruebe si la URL del paquete de solicitud contiene las características de un enlace malicioso.
  • Verifique el paquete de respuesta en busca de respuestas de ataque relacionadas con enlaces maliciosos, como la ejecución de scripts maliciosos.
  • Si se cumplen las condiciones anteriores, se puede determinar que el ataque de enlace malicioso es exitoso.

11. ¿Cómo juzgar si se está produciendo un ataque DDoS?

  • Supervise las condiciones del tráfico de la red, especialmente el tráfico a los servicios de destino.
  • Verifique los patrones de tráfico en busca de picos de tráfico inusualmente altos.
  • Analice las fuentes y los objetivos del tráfico para determinar si alguna solicitud anormal se concentra en objetivos específicos.
  • Se puede determinar que un ataque DDoS está en progreso si hay un tráfico inusualmente alto y se enfoca en un objetivo específico.

12. Determine si el ataque de descarga de archivos maliciosos tiene éxito:

  • Verifique los paquetes de solicitud y respuesta para el archivo descargado.
  • Compruebe si el código de estado del paquete de respuesta es 200, lo que indica que el proceso de descarga se ha realizado correctamente.
  • Analizar el contenido de los archivos descargados para comprobar si se trata de archivos maliciosos, como virus, troyanos, etc.
  • Si la descarga es exitosa y el archivo es un archivo malicioso, se puede determinar que el ataque de descarga de archivos maliciosos fue exitoso.

13. Cómo juzgar si el ataque de phishing tiene éxito:

  • Verifique la URL y el contenido de la página del sitio de phishing.
  • Compare las diferencias entre los sitios web de phishing y los sitios web legítimos, incluidos los nombres de dominio, los diseños de página, los logotipos de marca, etc.
  • Verifique si el comportamiento del usuario es inducido por sitios web de phishing, como ingresar nombres de usuario, contraseñas e información confidencial.
  • Si el usuario es inducido por el sitio web de phishing y revela información confidencial, se puede determinar que el ataque de phishing es exitoso.

14. Las sintaxis comúnmente utilizadas para la recuperación de registros de SkyEye incluyen:

  • dip: IP atacada
  • dport: el puerto que está siendo atacado
  • sorbo: IP de origen
  • deporte: puerto de origen
  • uri: dirección URL de la solicitud
  • datos: el contenido del cuerpo del paquete de solicitud
  • estado: el código de estado del paquete de respuesta
  • anfitrión: nombre de dominio

Ejemplos de sintaxis común:

  • dip: "192.168.1.100": Recupera los logs de la IP atacada 192.168.1.100
  • uri: "/login": recuperar registros que contienen la dirección URL de solicitud /login
  • estado: 200: recuperar registros con un código de estado de respuesta de 200

15. Si hay una alarma de uso del troyano webshell en SkyEye o en el sensor de tráfico, los pasos para solucionarlo son:

  1. Verifique si la alarma es realmente exitosa, verifique las características del tráfico de la herramienta webshell y verifique si hay rastros de uso.
  2. Determine si se trata de un ataque manual o un comportamiento por lotes de las herramientas de escaneo, analice y compare las características del tráfico de ataque y verifique si hay una gran cantidad de solicitudes.
  3. Ingrese a la plataforma de análisis para verificar aún más si hay otros comportamientos de ataque en la IP atacante y evaluar el resultado del ataque.
  4. Cómo rastrear el origen del atacante, cómo escribir el caballo de Troya en el sistema.

16. Si hay una alarma de ejecución de comando en el ojo del cielo o en el sensor, los pasos para tratarla son:

  1. Verifique si la alarma es exitosa y analice directamente si hay signos de ejecución del comando.
  2. Determine si se trata de un ataque manual o un comportamiento por lotes de las herramientas de escaneo, analice y compare las características del tráfico de ataque y verifique si hay una gran cantidad de solicitudes.
  3. Ingrese a la plataforma de análisis para verificar aún más si hay otros comportamientos de ataque en la IP atacante y evaluar el resultado del ataque.
  4. Comunique el tiempo de descubrimiento y el comportamiento de ataque a los clientes de protección de red.

17. Si se detecta que la IP de la intranet está lanzando un ataque, los pasos a seguir:

  • Cuando la IP de la intranet lanza un ataque, significa que el host de la intranet puede ser invadido y se deben tomar las siguientes medidas:
  1. Informe de inmediato la dirección IP relevante al equipo de investigación para un mayor análisis e investigación.
  2. Verifique los hosts de la intranet afectados para asegurarse de que se reparen y restauren de manera oportuna.

18. Resumen de la experiencia de análisis de tráfico

  1. No ignore los ataques a la intranet: durante el análisis del tráfico, no ignore los ataques a la intranet. Los ataques a la intranet pueden provenir de malware, botnets o amenazas internas. El descubrimiento oportuno y la respuesta a los ataques a la intranet son cruciales.

  2. Los intentos de alarma deben verificarse: cuando se envía una señal de alarma, los posibles intentos de comportamiento deben verificarse cuidadosamente. No solo se centre en el objetivo atacado, sino que también observe la fuente del atacante, el método de ataque y el posible propósito para comprender mejor el comportamiento del ataque.

  3. También se deben considerar los comportamientos de voladura: en el análisis de tráfico, se debe prestar atención a cualquier comportamiento destructivo, como la voladura de contraseñas, los intentos de inicio de sesión SSH o los inicios de sesión de contraseña débiles. Estos comportamientos pueden ser un presagio de intrusión y requieren medidas inmediatas para prevenirlos y responder a ellos.

  4. Seguimiento exitoso de infracciones: cuando se descubre que el sistema o la red ha sido violado, se debe realizar un seguimiento e investigación cuidadosos. Analice el comportamiento del atacante para comprender el método y el propósito del ataque, corrija las vulnerabilidades y refuerce las medidas de seguridad para evitar más ataques.

Vulnerabilidades descubiertas recientemente

  1. Vulnerabilidad de omisión de autenticación de F5: F5 es un proveedor de equipos de red y soluciones de entrega de aplicaciones. Esta vulnerabilidad puede provocar que se omita el mecanismo de autenticación. Los atacantes pueden usar esta vulnerabilidad para obtener acceso no autorizado.

  2. Struts2 S2-062 Vulnerabilidad de ejecución remota de comandos: Struts2 es un popular marco de desarrollo de aplicaciones web de Java, esta vulnerabilidad podría permitir que un atacante tome el control de un servidor afectado mediante el envío de solicitudes maliciosas para ejecutar comandos arbitrarios.

  3. Vulnerabilidad de ejecución remota de comandos de Spring Framework: Spring Framework es un marco de desarrollo de aplicaciones Java. Esta vulnerabilidad puede permitir que un atacante ejecute comandos arbitrarios mediante el envío de una solicitud especialmente diseñada, lo que provoca que el servidor sea atacado.

  4. Vulnerabilidad de Apache Log4j (último año): Apache Log4j es un marco de registro de Java de uso común. Esta vulnerabilidad (específicamente CVE-2021-44228) puede permitir a los atacantes ejecutar código arbitrario de forma remota mediante la construcción de mensajes de registro maliciosos. Tiene un amplio impacto y necesita ser reparado a tiempo.

Conocimientos relacionados con la red.

1. CDN (Red de distribución de contenido):

        El nombre completo de CDN es red de distribución de contenido. Su principio fundamental es permitir a los usuarios obtener los datos necesarios de forma cercana mediante la implementación de nodos de servidor ubicados en todo el mundo, mejorando así la velocidad y la estabilidad de la transmisión de datos. Por ejemplo, si el servidor está ubicado en Beijing, los usuarios de Shenzhen deben viajar largas distancias para obtener datos, pero al configurar un servidor CDN en Shenzhen, los usuarios pueden acceder primero al servidor CDN para obtener datos, mejorando así la velocidad de acceso.

2. Detectar si el sitio web tiene CDN habilitado:

        Puede utilizar el servicio de ping multirregional para comprobar si la dirección IP correspondiente es única. Si no es único, es muy probable que el sitio esté usando un CDN.

3. CDN consulta la IP real:

        Cuando ingresamos un nombre de dominio en el navegador, primero debemos convertir el nombre de dominio en una dirección IP, que es la función del servicio DNS. El servidor DNS consultará recursivamente el nombre de dominio para encontrar la dirección IP correspondiente. Al consultar la dirección IP real de la CDN, puede conocer la ubicación del servidor subyacente.

4. Vulnerabilidad azul eterna:

        La vulnerabilidad EternalBlue utiliza la vulnerabilidad del protocolo SMB del sistema Windows para obtener la máxima autoridad. La vulnerabilidad podría permitir que un atacante ejecute código arbitrario y tome el control de una computadora comprometida. Un atacante podría aprovechar la vulnerabilidad al escanear las máquinas con Windows en busca del puerto 445 abierto para compartir archivos.

5. Apretón de manos TCP de tres vías y onda de cuatro vías:

        TCP es un protocolo orientado a la conexión que se utiliza para transmitir datos en la red. El protocolo de enlace de tres vías es el proceso de establecimiento de una conexión TCP, y el protocolo de enlace de cuatro vías es el proceso de cierre de la conexión TCP. El protocolo de enlace de tres vías incluye que el cliente envíe una solicitud SYN, que el servidor envíe una respuesta SYN y ACK, y que el cliente envíe una confirmación. Cuatro oleadas de manos incluyen al cliente enviando una señal de liberación, el servidor enviando una señal de reconocimiento y liberación, y el cliente enviando un mensaje de confirmación y finalmente cerrando la conexión.

Supongo que te gusta

Origin blog.csdn.net/weixin_43263566/article/details/131774305
Recomendado
Clasificación