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

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

Prólogo

El problema Respuesta
¿A qué curso pertenece esta tarea? "Ataque de red y práctica de defensa"
¿Cuáles son los requisitos para esta tarea? <Requisitos de trabajo>
Mi objetivo en este curso es Domine el conocimiento de la red ofensiva y defensiva, aprenda el octavo capítulo de la seguridad y defensa del sistema operativo Linux
¿Qué aspecto específico de esta tarea me ayudó a lograr mi objetivo? Aprenda los comandos de operación de Linux y la aplicación de máquinas virtuales; aprenda el conocimiento de ataque y defensa de la red para sentar las bases para futuras investigaciones
Tarea Como sigue
Otras referencias Ver el final del texto

1. Practica el contenido

1.1 Descripción general del marco básico del sistema operativo Linux

1.1.1 Desarrollo y estado del sistema operativo Linux

  • Ventajas del sistema operativo Linux
    (1) Código fuente abierto gratuito
    (2) Soporte de hardware multiplataforma
    (3) Soporte de software rico
    (4) Multitarea multiusuario
    (5) Seguridad confiable
    (6) Buena estabilidad
    (7) Función de red perfecta

1.1.2 estructura del sistema Linux

  • Proceso de Linux y mecanismo de gestión de subprocesos: adopte el modo preventivo multiusuario multiusuario

  • Mecanismo de gestión de memoria de Linux

    • Permitir que múltiples procesos compartan áreas de memoria física
    • El módulo de administración de memoria proporciona procesos tales como asignación de memoria, recuperación de memoria, paginación de solicitud e intercambio de páginas.

  • Mecanismo de administración del sistema de archivos de Linux: el kernel de Linux usa un mecanismo de administración virtual VFS, que puede admitir docenas de diferentes tipos de sistemas de archivos lógicos

  • Mecanismo de control de dispositivos Linux

    • El software que maneja o gestiona el controlador de hardware en el kernel de Linux se denomina controlador de dispositivo, que es esencialmente una biblioteca compartida de rutinas de control de hardware con privilegios de memoria de bajo nivel.
  • Mecanismo de red Linux

    • Kernel de Linux
    • La interfaz de red se puede dividir en pila de protocolos de red y controlador de red
    • La pila de protocolos de red es responsable de implementar todos los protocolos de transmisión de red posibles, y su estructura es la siguiente:

  • Mecanismo de llamada del sistema Linux
    • Linux proporciona una interfaz de llamada del sistema para permitir que las aplicaciones accedan a dispositivos de hardware y otros recursos del sistema a través de esta capa de interfaz
    • La llamada al sistema del sistema Linux se realiza por interrupción suave

1.2 Mecanismo de seguridad del sistema operativo Linux

1.2.1 Mecanismo de autenticación de identidad de Linux

Linux es un sistema operativo multitarea multitarea

  • Usuarios de Linux

    • Usuario root, la máxima autoridad en el sistema, cualquier archivo y comando en el sistema operativo
    • Los usuarios comunes solo pueden operar el contenido en su propio directorio
    • Los usuarios del sistema no tienen la capacidad de iniciar sesión en el sistema, pero son indispensables: se utilizan para iniciar servicios de red, como daemon y apache, y usuarios con acceso anónimo, como nobody y ftp
  • Grupo de usuarios de Linux

    • Se utiliza una colección de cuentas de usuario con las mismas características para simplificar la administración de derechos de usuario para todo el sistema.
    • La información del grupo de usuarios de Linux se guarda en el archivo / etc / gshadow, y puede usar id -a para consultar el grupo de usuarios al que pertenece el usuario actual.
    • grouppaddLos comandos pueden agregar grupos de usuarios, agregar usuarios usermod -G group_name_ user_namea grupos específicos
  • Mecanismo de autenticación de usuario de inicio de sesión local de Linux:

    • El mecanismo de autenticación de usuario se refiere al proceso de inicio de sesión de usuario en la consola
    • Proceso básico: inicie getty a través del proceso de inicio para generar varias consolas virtuales. Cada consola ejecuta el proceso de inicio de sesión para realizar el proceso de autenticación. Después de que se pasa la autenticación, el proceso de inicio de sesión bifurcará el proceso secundario del usuario correspondiente Shell y se completará el proceso de inicio de sesión.
    • El proceso de inicio de sesión utiliza la función crypt () para verificar la contraseña ingresada por el usuario. Esta función introduce un valor de sal y lo cifra junto con la contraseña del usuario para obtener la contraseña cifrada.
  • Mecanismo de autenticación de inicio de sesión remoto de Linux

    • Los sistemas Linux generalmente usan el servicio SSH para el inicio de sesión y el acceso de usuarios remotos
    • SSH proporciona dos métodos: el primero es un mecanismo de autenticación basado en contraseña; el segundo es un mecanismo de autenticación asimétrico basado en contraseña.
    • Además, una gran cantidad de servicios de red en el sistema Linux han implementado su propio mecanismo de autenticación de identidad, como el algoritmo hash MD5, el algoritmo hash LANMAN \ NTLM, etc.
  • Middleware de autenticación de identidad unificada de Linux - PAM

    • La parte central de PAM es una colección de bibliotecas (libpam) y módulos PAM, que son archivos de biblioteca de enlace dinámico (.so) ubicados en la carpeta / lib / security /, y varios PAM ubicados en el directorio /etc/pam.d/ Archivo de configuración del módulo. PAM proporciona cuatro interfaces de módulos disponibles para tareas de autenticación.

    • soportes PAM interfaz de cuatro gestión:
      (1) Gestión de Certificados: Acepta el nombre de usuario y contraseña, autenticación de contraseña de usuario, establecer la información de secreto de usuario
      (2) Gestión de la cuenta: comprobación de si se permite que la cuenta designada para iniciar sesión en el sistema para comprobar si la cuenta expira
      ( 3) Gestión de contraseña: se utiliza para modificar la contraseña del usuario
      (4) Gestión de sesión: proporciona gestión de sesión y auditoría. La sesión surte efecto después de que el usuario se autentica correctamente

1.2.2 Autorización de Linux y mecanismo de control de acceso

Linux admite los diferentes tipos de formatos de sistema de archivos a través del sistema de archivos virtual VFS mencionado anteriormente

  • Propietario del archivo: utilice el uid del propietario del archivo y el gid del propietario del archivo para indicar el propietario del archivo, que se configura automáticamente cuando el usuario crea el archivo.
  • Autoridad de acceso a archivos: la autoridad de acceso a archivos se establece mediante los 10 bits de bandera adjuntos. El primer dígito indica el tipo de archivo, y de 2 a 9 dígitos se agrupan en grupos de 3 dígitos. Los tres dígitos en el grupo indican respectivamente permiso de lectura, permiso de escritura y permiso de ejecución. Los tres grupos representan el propietario, todos los grupos y todos los usuarios.
  • Permisos especiales de ejecución: los permisos comunes son SUID o SGID. SUID permite que los archivos ejecutables se eleven de la identidad del operador al propietario del archivo en tiempo de ejecución. El bit SGID es similar al bit SUID, excepto que opera en forma de grupos de permisos.
  • Deficiencias y mejoras: los usuarios solo se pueden dividir en tres categorías: propietario, grupo de propietarios y otros usuarios para asignar permisos. Los permisos de acceso específicos son insuficientes y no se admite la configuración completa de la lista de control de acceso de ACL.

1.2.3 Mecanismo de auditoría de seguridad de Linux

  • Tres subsistemas de registro
    • Registro de tiempo de conexión: los administradores del sistema pueden rastrear quién inicia sesión en el sistema y cuándo
    • Registro de estadísticas de proceso: escriba un registro para cada proceso, el propósito es proporcionar estadísticas de uso de comandos para servicios básicos en el sistema
    • Registro de errores

1.3 Tecnología de ataque y defensa remota del sistema Linux

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

  • El sistema Linux admite principalmente el control remoto de red de los protocolos telnet, rogin, rsh y SSH, que autentican la identidad de los usuarios remotos.
  • Use el servicio antes mencionado para oler el nombre de la cuenta de usuario o use el nombre de usuario de la cuenta interna predeterminado para adivinar la contraseña.
  • Por lo general, para cuentas con contraseñas débiles.
  • Además de los servicios de red SSH, también puede adivinar los servicios de red utilizados para su sistema de cuenta y mecanismo de autenticación de identidad, como HTTP / HTTPS y FTP.
  • Las herramientas comunes para adivinar contraseñas son las siguientes: Brutus, THC Hydra, Cain y Abel y otras herramientas.
  • Defensa contra la tecnología remota de adivinación de contraseñas
    • Asegúrese de que cada usuario tenga su propia cuenta y contraseña válidas, en lugar de utilizar una cuenta con privilegios de root
    • Las cuentas privilegiadas deben evitar el inicio de sesión directo remoto, solo inicie sesión localmente
    • La contraseña debe tener al menos 8 caracteres, incluidas letras, números y signos de puntuación
    • Registre múltiples fallas de autenticación y desconecte después de múltiples inicios de sesión inválidos
    • No use la misma contraseña en todos los sistemas que inicie sesión usted mismo
    • No escriba su contraseña
    • Usar un mecanismo de autenticación de identidad basado en un certificado de clave pública.
    • Modificar el puerto predeterminado del servicio de red

1.3.2 Servicio de red ataque de penetración remota

  • Ataque de pila de protocolo de red en el kernel de Linux
  • Ataque de servicio de red en el sitio web LAMP WEB
  • FTP, Samba y otros servicios para compartir archivos
    • Los servicios FTP generalmente monitorean TCP20 y el puerto 21, de los cuales el puerto 21 se usa para la transmisión de comandos de control, y el puerto 20 se usa para la transmisión de datos
    • Samba es un servicio de red utilizado para conectar Linux y otros sistemas operativos similares a UNIX al protocolo de red SMB / CIFS del sistema Windows de Microsoft, escuchando en el puerto TCP445
  • Servicio de envío y recepción de correo electrónico
  • Ataques a otros servicios de red.
  • Precauciones de seguridad para ataques de penetración remota en servicios de red.
    • Deshabilitar servicios de red innecesarios
    • Intente elegir protocolos de red y software de servicio más seguros
    • Actualice la versión del servicio de red a tiempo
    • Utilice xinetd (programa de servicio de red daemon), firewall para agregar control de acceso a la red para servicios de red Linux
    • Establecer un proceso de planificación de detección de intrusiones y respuesta a emergencias

1.3.3 Atacar a los programas y usuarios del cliente Linux

  • Atacar programas cliente en la plataforma Linux
  • Atacando a los usuarios del sistema Linux
    • Obtenga información del administrador del sistema, combinada con ingeniería social.
    • Capture algunos sitios de distribución y distribución de software, Trojanice el software proporcionado en el sitio, la versión troyanizada introduce una puerta trasera en tiempo de ejecución, lo que permite a usuarios no autorizados obtener de forma remota los permisos de raíz del sistema
  • Precauciones de seguridad para ataques de clientes y usuarios.
    • Comprender el conocimiento de ingeniería social y mejorar la capacidad antifraude
    • Actualizar software a tiempo
    • Al descargar software, vaya al canal de descarga oficial y verifique MD5

1.3.4 Atacar enrutadores y oyentes

  • Atacar enrutadores y firewalls de Linux
  • Los escuchas de ataque y los detectores de intrusos que se ejecutan en Linux, como la biblioteca de captura de paquetes Libpcap, el programa de línea de comandos tcpdump, el software wireshark, el sistema de detección de intrusos snort, etc.
  • Medidas preventivas contra ataques de enrutadores y escuchas
    • Los administradores de red mejoran la conciencia de seguridad y prestan atención a los informes de amenazas de seguridad del proveedor
    • Actualización de firmware a tiempo
    • Agarre el método de penetración de infiltración del atacante y realice una prueba de penetración

1.4 Tecnología de defensa y ataque de seguridad local del sistema Linux

1.4.1 Elevación de privilegios locales de Linux

  • Métodos comunes de escalada de privilegios locales:
    (1) Descifre la contraseña del usuario raíz y luego ejecute el comando su o sudo para escalar privilegios
    • Obtenga el valor cifrado de la contraseña a través del valor hash de la contraseña registrada en el archivo de configuración / etc / shadow, y luego fuerza a fuerza bruta el texto plano adivinado a través del texto cifrado conocido para descifrar la contraseña.
      (2) Descubrir y usar vulnerabilidades de seguridad en programas su o sudo
    • Puede omitir el mecanismo de autenticación de identidad de alguna manera, o usar la configuración incorrecta de la ruta para permitir que un atacante cree un archivo y lo ejecute.
      (3) Ataque a la vulnerabilidad de elevación de privilegios SUID en modo de usuario y ataque a la vulnerabilidad de elevación de privilegios del código del kernel de Linux.
    • Uso de programas SUID en modo de usuario: incluyendo principalmente el uso de vulnerabilidades del programa para la escalada de privilegios, ataques de desbordamiento de búfer local, ataques de enlace simbólico, ataques de condición de carrera, ataques de biblioteca de funciones compartidas, etc.
      (4) Finalmente, los archivos sensibles de escritura global se pueden buscar desde el sistema Usar con la ubicación del directorio
  • Medidas preventivas para la escalada de privilegios locales.
    • Evaluar el riesgo al instalar software
    • Actualice y mantenga el servidor a tiempo
    • Sistema de configuración seguro, establecer contraseña segura
    • Aplique SELinux y otros módulos de mejora de seguridad.

1.4.2 Desaparecer en el sistema Linux

  • Después de atacar el sistema Linux, los atacantes generalmente no quieren dejar sus propios registros de intrusión al administrador del sistema, por lo que a menudo limpian el directorio de registro en el sistema y borran sus propias huellas de acciones.
  • Para archivos de texto, use herramientas de edición de texto como vi y emacs para limpiar los registros; para archivos wtmp que inician sesión, use herramientas especiales wzap para limpiar
  • 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.

1.4.3 Programa de puerta trasera de control remoto del sistema Linux

  • Los tipos principales son:
    • Programa de sistema troyanizado: el atacante reemplaza el programa original del sistema (como el software de control y inicio de sesión remoto) para que tenga algunas funciones de puerta trasera.
    • Herramienta de puerta trasera de línea de comandos: proporcione acceso remoto al shell de la línea de comandos, generalmente use Netcat y otras herramientas de puerta trasera para ejecutar en el sistema, abra un puerto TCP para escuchar y devuelva un shell del sistema Linux para interactuar con el cliente después de recibir la solicitud.
    • Herramienta gráfica de puerta trasera: la más utilizada es el software gratuito de control remoto gráfico VNC.

1.2 Practica

Use Metaploit para los ataques de penetración remota de Linux
1) Use Metaspolit como un software de prueba de penetración para atacar la vulnerabilidad de seguridad usermap_script del servicio Samba en una máquina de destino Linux y obtener permisos de acceso de host para la máquina de destino Linux. Los pasos prácticos son los siguientes:
2) Usar exploit: exploit / multi / samba / usermap_script para penetrar en el módulo de ataque
3) Seleccione el ataque PAYLOAD como shell remoto
4) Establezca los parámetros de ataque
5) Realice el ataque
6) Compruebe si la
máquina de ataque de shell remoto correcta kali (192.168 .200.6), máquina destino Metasploitable (192.168.200.125)
Primero, inicie el software de penetración a través del comando msfconsole, use el módulo de ataque de penetración a través del comando use exploit / multi / samba / usermap_script, y luego muestre las opciones

Supongo que te gusta

Origin www.cnblogs.com/xiongjia/p/12728794.html
Recomendado
Clasificación