20199328 2019-2020-2 "Ataque de red y práctica de defensa" Asignación de la semana 8

20199328 2019-2020-2 "Ataque de red y práctica de defensa" Asignación de la semana 8

1. Practica el contenido

Estructura del sistema Linux

Proceso de Linux y mecanismo de gestión de hilos

El kernel de Linux adopta el modo de multiprocesamiento (multiprocesamiento) multiusuario preventivo , varios procesos están activos simultáneamente y el módulo de gestión de procesos del kernel es responsable de programar los recursos de hardware para su uso

Mecanismo de gestión de memoria de Linux

El módulo de administración de memoria de Linux (MM) permite que múltiples procesos compartan áreas de memoria física de manera segura.

Mecanismo de gestión del sistema de archivos de Linux

El kernel de Linux utiliza un mecanismo virtual de administración de archivos VFS, que le permite admitir docenas de diferentes tipos de sistemas de archivos lógicos.

Mecanismo de control de dispositivos Linux

Resumen del procesamiento del dispositivo, todos los dispositivos de hardware se tratan como archivos normales

Mecanismo de red Linux

El módulo de red en el kernel de Linux proporciona acceso a varios estándares de red y soporte para varios hardware de red.

Mecanismo de llamada del sistema Linux

La llamada al sistema Linux se realiza por interrupción suave

Mecanismo de seguridad del sistema operativo Linux

El mecanismo central de seguridad del sistema operativo Linux consta principalmente de tres partes: autenticación de identidad, autorización y control de acceso, auditoría de seguridad

Mecanismo de autenticación de identidad de Linux

  • Usuarios de Linux (la información del usuario se almacena en el archivo / etc / passwd del sistema, y ​​las contraseñas cifradas se almacenan en el archivo miles / etc / shadow): ① El usuario raíz, con la máxima autoridad, puede usar cualquier archivo y comando en el sistema operativo ② Usuario ordinario , Creado por el usuario, solo puede operar el contenido en su propio directorio, autoridad de ejecución limitada ③ usuarios del sistema, estos usuarios no tienen la capacidad de iniciar sesión en el sistema, pero son usuarios indispensables de la operación del sistema
  • Grupo de usuarios de Linux (la información del grupo de usuarios se almacena en el archivo / etc / group del sistema, las contraseñas cifradas del grupo de usuarios se almacenan en el archivo / etc / gshadow): una colección de cuentas de usuario con las mismas características
  • Mecanismo de autenticación de usuario de inicio de sesión local de Linux: el proceso de inicio inicia getty para generar varias consolas virtuales (como ttyI, tty2, etc.). El inicio de sesión se muestra en la consola. Cuando el usuario escribe en el usuario, getty ejecuta el proceso de inicio de sesión e ingresa el proceso de autenticación de inicio de sesión. Después de que la autenticación sea exitosa, el proceso de inicio de sesión bifurcará el proceso secundario del usuario correspondiente Shell. Comience a trabajar bajo el Shell correspondiente
  • Mecanismo de autenticación de usuario de inicio de sesión remoto de Linux: el sistema inux generalmente utiliza el servicio SSH para el inicio de sesión de usuario remoto y el acceso a la red. SSH proporciona dos métodos de mecanismo de autenticación de identidad de usuario: el primer método es la autenticación de identidad basada en miles de contraseñas; el segundo método Autenticación de identidad para mil claves asimétricas.
  • PAM de middleware de autenticación de identidad unificada de Linux: PAM separa el servicio proporcionado por el sistema del método de autenticación del servicio a través de una biblioteca de enlaces dinámicos y un conjunto de API unificadas, de modo que el administrador del sistema puede ofrecer de manera flexible diferentes servicios según las necesidades Configure diferentes métodos de autenticación sin cambiar el programa de servicio, y al mismo tiempo es fácil agregar nuevos métodos de autenticación al sistema

Autorización de Linux y mecanismo de control de acceso

  • Propietario del archivo: el uid del propietario del archivo y el gid del grupo del propietario del archivo indican qué usuario posee el archivo
  • Permisos de acceso a archivos: los permisos de acceso a archivos se establecen mediante los bits de bandera l0 adjuntos
  • Permisos especiales de ejecución para archivos: los permisos SUID y SGID son comunes. Los permisos SUID permiten que los ejecutables se generen desde el nombre del nombre de ejecución a los permisos del propietario del archivo en tiempo de ejecución. El programa con el bit SGID establecido es el propietario Permisos de grupo para ejecutar

Mecanismo de auditoría de seguridad de Linux

Para lograr a través de tres subsistemas de registro principales: registro de tiempo de conexión, registro de estadísticas de proceso, registro de registro de errores

Sistema Linux de ataque remoto y tecnología de defensa

Ataque de adivinación de contraseña remota de Linux

El atacante adivina un conjunto de nombres de usuario y contraseñas de forma remota a través del protocolo de red, y utiliza esta información para iniciar sesión de forma remota en el sistema Linux para obtener derechos de acceso local.

Implementación de la pila de protocolos de red en el kernel de Linux

CVE-2010-4161, este agujero existe en todos los
sistemas RHEL con una versión de mil núcleos anterior a v2.6.37 . El atacante puede enviar un
paquete UDP especialmente construido directamente a un puerto UDP abierto al sistema de destino. El sistema se bloquea, provocando un ataque de denegación de servicio en el sistema de destino.

FTP, Samba y otros servicios para compartir archivos

Estos servicios son a menudo más comunes en sistemas Linux clave que almacenan activos de datos centrales de organizaciones empresariales, como servidores de sitios web y servidores de archivos internos empresariales, y por lo tanto se han convertido en canales de ataque que los hackers / negocian estos sistemas clave deben probar.

El servicio FTP (Protocolo de transferencia de archivos) es un servicio de red muy antiguo en Internet. Utiliza diez intercambios de archivos y transferencias compartidas. El servicio FTP generalmente escucha los puertos TCP 20 y 21, de los cuales el puerto 21 se transmite con miles de comandos de control, mientras que el puerto 20 se utiliza para Transmisión de datos.

El software de servicio Samba crea un puente interoperable entre UNIX y Windows, permite que los recursos de los dos se comuniquen y permite acceder y acceder fácilmente a dos tipos de sistemas operativos en la red interna de una organización

Servicio de envío y recepción de correo electrónico

El servicio Sendmail siempre ha sido el servicio de envío y recepción de correo electrónico más popular en sistemas similares a UNIX, incluido Linux, y también es uno de los servicios de red conocidos controvertidos e inseguros.

Precauciones de seguridad contra ataques de penetración remota en servicios de red

  • Deshabilitar todos los servicios de red innecesarios
  • Intente elegir protocolos de red y software de servicio más seguros e implemente utilizando las mejores prácticas de seguridad
  • Actualice la versión del servicio de red a tiempo
  • Agregue un mecanismo de control de acceso a la red para el servicio de red Linux usando xinetd y firewall
  • Establecer un proceso de planificación de detección de intrusiones y respuesta a emergencias

Linux local escalada de privilegios

La forma más fácil de aumentar los privilegios es poder descifrar la contraseña del usuario raíz y luego ejecutar el comando SU o sudo para actualizar

La segunda forma de escalar privilegios es descubrir y explotar vulnerabilidades de seguridad en programas SU o sudo

En la actualidad, la forma más popular es atacar directamente cualquier código en el programa privilegiado Root para ejecutar Zidong y dejar que abran una conexión de línea de comando Shell con permisos de root para el atacante. Este tipo de enfoque se divide en vulnerabilidad de elevación de privilegios SUID en modo de usuario atacante y Atacar la escalada de privilegios del código del kernel de Linux

La última tecnología de escalada de privilegios local aprovecha algunas configuraciones incorrectas en el sistema, buscando en el sistema archivos sensibles globalmente grabables y ubicaciones de directorio y usándolos

Desaparecer en el sistema Linux

Vea el contenido del archivo de configuración /etc/syslog.conf para comprender los tipos de eventos de auditoría que el sistema implementa actualmente y dónde se almacenan los registros

En el directorio / var / log, los atacantes a menudo necesitan modificar archivos de registro tales como mensajes, HT, cure, wtmp y xferlog

El atacante también necesita limpiar el historial de comandos ingresados ​​en el programa Shell. Muchos programas shell en el sistema Linux registran los comandos históricos que se han ejecutado para proporcionar la función de recuperar y ejecutar comandos repetidamente.

Programa de puerta trasera de control remoto del sistema Linux

La puerta trasera del sistema Linux más común es proporcionar acceso remoto al shell de la línea de comandos, generalmente usando una herramienta anal como Netcat para ejecutarse en el sistema, abrir un puerto TCP y regresar después de recibir la solicitud: un shell del sistema Linux interactúa con el cliente

2. Proceso de práctica

Práctica práctica: uso de Metasploit para ataques de penetración remota de Linux

Utilice el software de prueba de penetración Metasploit para atacar el servicio de Samba usermap_script en la máquina de destino de Linux y obtenga los derechos de acceso de host de la máquina de destino de Linux de destino. Los pasos prácticos son los siguientes:
①Inicie el software Metasploit, puede usar uno de msfconsolemsfguimsfweb de acuerdo con sus preferencias personales; ②Utilice
exploit: exploit / multi / samba / usermap_script para penetrar en el módulo de ataque;
③Seleccione el ataque PAYLOAD de ataque como She1l remoto, (tanto la conexión directa como la inversa pueden ser );
④ Establezca los siguientes parámetros de ataque de penetración (RHOST, LHOST, TARGET, etc.);
⑤ Realice el ataque de penetración:
⑥ Compruebe si el shell remoto se obtuvo correctamente y verifique los permisos obtenidos.

Abra metasploit en kali, ingrese msfconsole y presione enter para ingresar a la interfaz de su consola, y luego busque la vulnerabilidad Samba primero. Este es un módulo de ataque de penetración para esta vulnerabilidad.
Queremos apuntar al ataque de penetración de la vulnerabilidad de seguridad usermap_script:

usermap_script :

  • Una vulnerabilidad en el protocolo Samba CVE-2007-2447, ejecución del comando de script de asignación de nombre de usuario
  • Afecta a Samba versión 3.0.20 a 3.0.25rc3
  • Se genera cuando se utilizan opciones de configuración de script de asignación de nombre de usuario no predeterminadas
  • Al especificar un nombre de usuario que contiene metacaracteres de shell, el atacante puede ejecutar comandos arbitrarios

命令 use multi / samba / usermap_script

Ingrese show payloads para ver las cargas de ataque compatibles con el módulo de ataque de penetración. Ejecute set payload cmd / unix / bind_netcat para seleccionar bind_netcat, es decir, use la herramienta netcat para ejecutar Shell después de que el ataque de penetración sea exitoso y conéctese a un puerto de escucha a través de netcat. Luego seleccione mostrar opciones para ver qué parámetros deben configurarse.

Después de configurar la dirección de destino, comienza el ataque

Después del ataque, verifique si fue exitoso y verifique los permisos

Trabajo practico

Práctica de confrontación de ataque y defensa: el atacante usa el software de penetración Metasploit para implementar un ataque de red contra una máquina objetivo Metasploitable de Linux, mientras que el defensor usa herramientas tcpdump o Wireshark o Snort en Metasploitatble para capturar el flujo de ataque y analizar qué vulnerabilidad de seguridad usó el atacante. Descargue el parche de turbulencia de seguridad en el sitio web oficial para la reparación del sistema, y ​​las dos partes cooperan para dar un informe del proceso de ataque y defensa.

  • Atacante: utilice Metasploit, seleccione las vulnerabilidades encontradas en la máquina objetivo de Metasploitable para realizar ataques de penetración, obtener control remoto e intentar obtener más permisos de root.
  • Defensor: use tcpdump / wireshark / snort para monitorear y obtener el paquete de datos de ataque a la red, y combine wireshark / snort para analizar el proceso de ataque, obtenga la dirección IP del atacante, la dirección IP y el puerto de destino, el tiempo de inicio del ataque, la vulnerabilidad de explotación del ataque, use Shellcode, Y después del éxito, ejecute la entrada de comando y otra información localmente.

Entorno experimental: igual que la práctica uno
Atacante: igual que la práctica uno
Defensor:

  • Después de capturar el paquete con wireshark, verifique el primer paquete, que es un paquete de solicitud ARP. Luego mire hacia abajo, la máquina de ataque kali (192.168.200.2) inicia una solicitud de conexión TCP a la máquina de destino (192.168.200.125), que debería ser el momento de lanzar formalmente el ataque;
    donde el número de puerto de origen es 41737 y el número de puerto de destino es 139

  • Shellcode utilizado

  • Comando ejecutado localmente después de un ataque exitoso



3. Problemas encontrados en el aprendizaje y las soluciones.

  • Pregunta 1: nessus no puede iniciar sesión durante la actualización
  • Solución del problema 1: solo espera. .

4. Resumen de la práctica

Comprenda cada pregunta y espere a que el maestro haga preguntas. . .

Supongo que te gusta

Origin www.cnblogs.com/llj76720197/p/12728068.html
Recomendado
Clasificación