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

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

¿A qué curso pertenece esta tarea? "Ataque de red y práctica de defensa"
¿Cuáles son los requisitos para esta tarea? Red de trabajo ofensivo y defensivo en la octava semana
Mi objetivo en este curso es Aprenda y comprenda los principios y precauciones de varios tipos de técnicas de ataque contra sistemas Linux, y luego mantenga los sistemas Linux.
¿Qué aspecto específico de esta tarea me ayudó a lograr mi objetivo? Aprenda el marco del sistema Linux, los mecanismos de seguridad y protección; utilice el software metasploit para realizar ataques de penetración remota en sistemas Linux; el defensor utiliza el software Wirehark para obtener los paquetes de datos del atacante y analizar qué vulnerabilidades se utilizan para atacar.
Tarea Ver asignación
Otras referencias Ver el final del artículo.

1. Practica el contenido

(1) Marco básico del sistema operativo Linux

1. Estructura del sistema

  • Mecanismo de gestión de procesos y subprocesos: se utiliza el modo de proceso preventivo multiusuario, múltiples procesos están activos simultáneamente y la función de programación del proceso de programación del núcleo selecciona procesos para la ejecución en función de la prioridad del proceso.

  • Mecanismo de administración de memoria: el módulo de administración de memoria permite que los procesos compartan de manera segura el área de memoria física. Si el modo de usuario desea acceder al espacio del kernel, debe pasar una llamada al sistema o interrumpirlo.

  • Mecanismo de administración del sistema de archivos: se utiliza un mecanismo de administración de archivos virtual, que puede admitir docenas de diferentes tipos de sistemas de archivos lógicos. Las funciones comunes de llamada de archivos incluyen abrir, cerrar, leer, escribir, etc., que pueden realizar operaciones unificadas en diferentes archivos.

  • Controlador de dispositivo: el software que procesa o administra el controlador de hardware se denomina controlador de dispositivo. Linux admite tres tipos de dispositivos de hardware: dispositivos de caracteres, dispositivos de bloque y dispositivos de red.

  • Mecanismo de red: el módulo de red proporciona soporte para el acceso a varios estándares de red y diversos hardware de red, la interfaz de red se divide en una pila de protocolos de red y un controlador de red. La siguiente figura es un diagrama estructural de la pila de protocolos de red.

  • Mecanismo de llamada del sistema : la interfaz de llamada del sistema de Linux permite a las aplicaciones acceder a dispositivos de hardware y recursos del sistema a través de estas capas de interfaz.

(2) Mecanismo de seguridad del sistema operativo Linux

El mecanismo central de seguridad del sistema consta principalmente de tres partes: autenticación de identidad, acceso autorizado y auditoría de seguridad.

  • Mecanismo de autenticación de identidad:

    • Usuario: usuario root, usuario ordinario, usuario del sistema
    • Grupo de usuarios: una colección de cuentas de usuario con las mismas características.
    • Mecanismo de autenticación de usuario de inicio de sesión local: el proceso de inicio de sesión de inicio de sesión se verifica mediante la función Crypt ().
    • Mecanismo de autenticación de usuario de inicio de sesión remoto: ahora Linux generalmente usa el servicio SSH, hay autenticación basada en contraseña y autenticación basada en clave asimétrica.
    • Middleware para autenticación de identidad unificada: PAM se puede insertar en un módulo de autenticación de identidad para configurar diferentes métodos de autenticación para diferentes servicios. La estructura se muestra en la figura a continuación.
  • Autorización y mecanismo de control de acceso

    • Propietario del archivo: cada archivo Linux tiene su propietario. Al crear un archivo, el sistema de archivos le otorgará automáticamente permisos de lectura / escritura al propietario del archivo. El comando chown se puede modificar.
    • Permisos de acceso a archivos: R permisos de lectura y escritura; W permisos de escritura; X permisos de ejecución.
    • Permisos especiales de ejecución para archivos: los permisos SUID permiten que los archivos ejecutables eleven la identidad del operador a los permisos del propietario durante la ejecución.
    • Deficiencias y mejoras del mecanismo de control de acceso: los usuarios solo se pueden dividir en tres tipos de permisos: el propietario, el grupo del propietario y otros usuarios, y no se puede lograr un control de permisos más detallado. El software POSIX ACKLs para el parche de kernel de Linux puede ayudar a implementar la administración de permisos de ACL.
  • Mecanismo de auditoría de
    seguridad El mecanismo de auditoría de seguridad se implementa principalmente a través de tres subsistemas de registro.

    • Registro de tiempo de conexión: ejecutado por múltiples programas. Los administradores pueden rastrear quién inicia sesión en el sistema y cuándo.
    • Registro de estadísticas del proceso: cuando finaliza un proceso, escriba un registro en el archivo de estadísticas del proceso para cada proceso.
    • Registro de errores: el servicio general de registro / var / log, los archivos de registro comunes son los siguientes:
Archivo de registro [Contenido del archivo de registro
acct / pacct Grabar comandos de usuario
aculog Registrar actividades de MODEM
btmp Registros de falla de registro
lastlog Registre los últimos inicios de sesión exitosos y el último inicio de sesión fallido.
sudolog Comandos de registro emitidos usando sudo
actual Grabar comandos emitidos usando su
utmp Registre a cada usuario actualmente conectado

(3) Tecnología de ataque remoto y defensa

Existen cuatro técnicas de ataque más comunes: ataque de adivinación de contraseña remota; ataque de penetración remota del servicio de red; atacar clientes y usuarios de Linux; atacar enrutadores y monitores.

  • Ataque remoto de adivinación de contraseña:

    • El sistema Linux admite principalmente el control remoto de red de los protocolos telnet, rlogin, rsh y SSH. Si un atacante puede adivinar de forma remota un conjunto exitoso de nombres de usuario y contraseñas a través del protocolo de red, puede iniciar sesión de forma remota en el sistema Linux para obtener derechos de acceso local.
    • Medidas defensivas: use contraseñas seguras que no sean fáciles de adivinar; evite inicios de sesión remotos para cuentas privilegiadas y desconéctese después de múltiples inicios de sesión inválidos; es mejor no usar contraseñas, sino usar un mecanismo de autenticación de identidad basado en clave pública.
  • Servicio de red de ataque de penetración remota:

    • La realización de la pila de protocolos de red: es la plataforma básica de la que depende cada servicio de red. Una vez que estos códigos tengan vulnerabilidades de seguridad para la ejecución remota, cualquier servicio de red abierto será penetrado y atacado.
    • Servicios web en la solución de construcción de sitios web WEB: LAMP es actualmente la solución de construcción de sitios web más popular; Apache proporciona servicios web; MySQL se utiliza como almacenamiento de datos de fondo (monitoreo de servicios en TCP3306); aplicaciones de desarrollo de lenguaje PHP.
    • FTP, Samba y otros servicios para compartir archivos: Linux admite una variedad de diferentes protocolos de servicios para compartir archivos, como los servicios FTP y Samba. El FTP generalmente se monitorea en los puertos TCP20 y 21; somba es un servicio de red que conecta sistemas similares a UNIX al protocolo de red SMB / CIFS de los sistemas Windows y escucha en los puertos TCP445.
    • Servicios de envío y recepción de correo electrónico: Sendmail tiene una gran cantidad de vulnerabilidades inseguras.
    • Precauciones: deshabilite todos los servicios de red innecesarios; actualice las versiones del servicio de red de manera oportuna; use protocolos y aplicaciones de red seguros tanto como sea posible; use firewalls para agregar mecanismos de control de acceso a la red; establezca procesos de detección de intrusiones y planificación de respuesta a emergencias.
  • Ataque a los programas y usuarios del cliente Linux

    • Programa cliente: tanto el navegador Firefox como el cliente de correo electrónico Thunderbird tienen vulnerabilidades inseguras. Los enlaces de código que contienen ataques de penetración maliciosa se implantan en algunos sitios. Si el cliente accede a estos enlaces con vulnerabilidades, se implantarán programas ejecutables maliciosos.
    • Atacando a los usuarios del sistema Linux
    • Medidas preventivas: intente asegurarse de que el cliente de la red se actualice de manera oportuna; comprenda varias técnicas de ingeniería social para evitar el fraude.
  • Ataque de enrutadores y escuchas : incluida la biblioteca de captura de paquetes libcap, el programa de línea de comandos tcpdump, el software de análisis de protocolo y monitoreo de red de cables de conexión, el sistema de detección de intrusiones snort.

    • Precauciones: también es importante tener en cuenta la seguridad de la red y el equipo de seguridad en sí.

(4) Ataque de seguridad local y tecnología de defensa

  • Escalada de privilegios locales: el método del atacante es descifrar la contraseña del usuario raíz; descubrir y usar su o sudo para escalar privilegios; atacar la vulnerabilidad de elevación de privilegios SUID en modo de usuario.
    • Descifrado de la contraseña del usuario: al configurar la contraseña del usuario, el sistema elige algoritmos de cifrado o hash para cifrar al usuario de acuerdo con la configuración. Estos algoritmos pueden evitar que el atacante infiera directamente la contraseña de texto claro del texto cifrado.
    • Uso de las fallas de sudo para mejorar los privilegios: hay una escapatoria para evitar la autenticación de identidad; hay una brecha en la escalada de privilegios de configuración incorrecta de la ruta sudoedit.
    • Elevación de privilegios mediante la explotación de la vulnerabilidad del programa SUID: cuando los usuarios comunes modifican los permisos de los archivos, serán elevados a los permisos de root, y los atacantes pueden usar este tiempo para llevar a cabo ataques.
    • También hay ataques locales de desbordamiento de búfer contra SUID: ataques de enlace simbólico; ataques de condición de carrera; ataques de biblioteca de funciones compartidas. También existe el uso de vulnerabilidades de código de espacio de estado del núcleo para la escalada de privilegios: uso de la configuración incorrecta del sistema para implementar la escalada de privilegios local.
    • Precauciones: algunos programas con privilegios innecesarios de SUID deben eliminarse tanto como sea posible; utilice módulos de mejora de seguridad como SELinux; actualice y mantenga el sistema a tiempo.
  • Desaparición : el registro de auditoría se encuentra principalmente en / var / log, y los atacantes deben encontrar una manera de borrar sus registros de actividad.
  • Programas de puerta trasera de control remoto : incluidos programas troyanos troyanos, programas de puerta trasera de línea de comandos y programas gráficos de puerta trasera.

2. Proceso de práctica

Práctica 1: utilice el software Metasploit para atacar la vulnerabilidad de usermap_script del servicio Samba en la máquina de destino para obtener acceso al host de destino.

Máquina virtual [Dirección IP
tiempos 192.168.200.3
SEMILLA 192.168.200.4 (el ataque no tuvo éxito)
Metasploitable 192.168.200.125
  • Utiliza kali como avión de ataque y SEED como avión objetivo para practicar. Abra el software Metasploit en Kali, ingrese el search somba
    módulo de servicio de samba de ataque de búsqueda, busque exploit / multi / samba / usermap_script.
  • de entrada use multi/samba/usermap_script;
  • Luego ingrese para show payloadsver la carga útil de ataque. Seleccionamos la carga útil de ataque bind_netcat. Después de que se ejecute la carga útil de ataque, inicie netcat y vincule el shell a un puerto abierto.
  • Ingrese la set payload cmd/unix/bind_netcatcarga establecida y show optionsverifique la configuración. La máquina de destino inicial que se acaba de usar no tiene éxito, probablemente porque no contiene esta vulnerabilidad. Cambiemos una máquina de destino de Linux Metasploitable 192.168.200.125e ingrese la set RHOST 192.168.200.125dirección IP de la máquina de destino. Inicie un ataque y regrese una sesión, lo que indica que el ataque fue exitoso.
  • Eche un vistazo a los permisos y las direcciones IP, que son los contenidos de la máquina de destino.

Práctica dos: el atacante usa el software Metasploit para atacar la red de máquinas objetivo de Linux, y el defensor usa Wireshark para capturar el flujo de ataque y analizar el uso de la vulnerabilidad al ataque por parte del atacante.

攻击方尽可能获得获得远程控制权,尝试获得root权限;
防守方结合分析过程获得攻击者IP地址、目标IP和端口、发起攻击的时间、攻击利用漏洞、使用的Shellcode和成功之后在本地执行命令输入的信息。
  • La práctica de ataque se muestra en el experimento 1. El siguiente análisis del ataque en el experimento uno, abra el wirehark para capturar paquetes, vea las tres primeras conexiones de protocolo de enlace TCP, podemos ver que la máquina de ataque es 192.168.200.3, la máquina de destino es 192.168.200.125; 43555, el puerto de destino es 139.
  • El momento de iniciar el ataque es la primera solicitud de protocolo de servicio SMB después de los tres apretones de manos. SMB (el nombre completo es Bloque de mensajes del servidor) es un nombre de protocolo que se puede utilizar para la conexión web y la comunicación de información entre el cliente y el servidor.
  • Verifique la secuencia TCP detenida y descubra que el atacante ingresó el comando de ifconfigsuma después del ataque exitoso whoami.
  • Solo hay dos flujos TCP en este ataque, y se necesita un análisis más detallado sobre las vulnerabilidades y los códigos shell utilizados en el análisis.

3. Problemas encontrados en el aprendizaje y las soluciones.

  • Pregunta 1: la práctica uno no puede atacar con éxito la máquina virtual SEED
  • Solución para el problema 1: encuentre los datos y descubra que la máquina virtual Metasploitable es la que tiene muchas vulnerabilidades. SEED puede no contener esta vulnerabilidad y tuvo éxito después de cambiar una máquina de destino.
  • Pregunta 2: Al iniciar msfconsole, se produce un error.
  • Solución para el problema 2: Encontrar la causa en Internet revela que no hay un servicio de MSF con soporte de base de datos de inicio, que se puede abrir después de ingresar el siguiente código.

4. Resumen de la práctica

  • La mayor parte de esta práctica la hago yo mismo. La experiencia previa existente se refiere a los datos y está bien. Para el análisis de Wirehark, solo tengo dos flujos tcp. El segundo es una sesión. El primero debería ser capaz de analizar las vulnerabilidades utilizadas, pero No se encontraron resultados en Internet. Si solo se pueden analizar unos pocos paquetes más, puede ser que esta escapatoria sea demasiado fácil de romper.
  • El último trabajo de práctica, desde el tormento inicial hasta la práctica actual, en realidad es bastante gratificante.Al menos entiendo el proceso general de defensa contra ataques de red, que sienta las bases para futuras operaciones prácticas. ¡Pero los principios y el conocimiento básico de la red son demasiado débiles y deben fortalecerse!
  • Han surgido muchas frustraciones y dificultades, y estoy muy feliz de pensar en ello. ¡Espero que la práctica de los documentos de análisis posteriores también sea fluida!

Referencias

Supongo que te gusta

Origin www.cnblogs.com/dkyzsm/p/12724941.html
Recomendado
Clasificación