20199115 2019-2020-2 "Práctica de ataque y defensa de la red" Semana 8 Asignación

20199115 2019-2020-2 "Práctica de ataque y defensa de la red" Semana 8 Asignación

Sistema operativo Linux

1. Practica el contenido

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

Estructura del sistema Linux

  • Proceso de Linux y mecanismo de gestión de subprocesos
    Linux adopta un modo de proceso multiusuario preventivo. Múltiples procesos están simultáneamente activos. El módulo de gestión de procesos del núcleo
    es responsable de programar los recursos de hardware para su uso. Los procesos son la unidad de programación más básica y mantienen una
    estructura de bloques de control de procesos. 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 y la CPU y otros recursos .

  • Mecanismo de administració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. Linux admite la gestión de memoria virtual. En una máquina de 32 bits, cada proceso tiene un espacio de memoria virtual independiente de 4 GB, donde el código y los segmentos de datos del núcleo se asignan a más de 3 GB de espacio, y el espacio de memoria virtual solicitado por el código de modo de usuario es 0-3 GB Intervalo, cada proceso utiliza dos conjuntos de descriptores de segmento para acceder al espacio de memoria del modo kernel y el modo usuario respectivamente.

  • Mecanismo de administración del sistema de archivos de Linux El mecanismo de administración
    virtual de archivos VFS le permite admitir docenas de diferentes tipos de sistemas de archivos lógicos. VFS proporciona un conjunto común de funciones de llamada del sistema de archivos para los procesos del usuario, que se pueden usar para archivos en diferentes sistemas de archivos. Operación unificada.

  • Mecanismo de control de dispositivos de Linux
    El software que procesa o administra el controlador de hardware se denomina controlador de dispositivo. Una característica básica de Linux es la abstracción del procesamiento del dispositivo. Todos los dispositivos de hardware se tratan como archivos normales. Linux admite tres tipos de dispositivos de hardware: dispositivos de caracteres, dispositivos de bloque y dispositivos de red.

  • Mecanismo de red Linux

El módulo de red proporciona acceso a varios 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 implementa todos los protocolos de transmisión de red posibles; los controladores de dispositivos de red son responsables de comunicarse con los dispositivos de hardware, y cada tipo de dispositivo de hardware tiene un controlador de dispositivo correspondiente.

  • Mecanismo de llamada del sistema de
    Linux Linux proporciona una interfaz de llamada del sistema, que permite a las aplicaciones acceder a dispositivos de hardware y otros recursos del sistema a través de la interfaz, lo que ayuda a garantizar la estabilidad y la fiabilidad del sistema Linux y proporciona una interfaz abstracta unificada para el espacio del usuario. Facilita la portabilidad multiplataforma de aplicaciones.

Mecanismo de seguridad del sistema operativo Linux

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 / etc / shadow):

    • El usuario root, con la máxima autoridad, puede usar cualquier archivo y comando en el sistema operativo

    • El usuario ordinario, creado por el usuario, solo puede operar el contenido en su propio directorio, autoridad de ejecución limitada

    • Usuario del sistema, este tipo de usuario no tiene la capacidad de iniciar sesión en el sistema, pero es un usuario indispensable para el funcionamiento 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 mil contraseñas; Autenticación de identidad para mil claves asimétricas.

  • PAM 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, lo que permite al administrador del sistema proporcionar de manera flexible diferentes servicios según las necesidades Configure diferentes métodos de autenticación sin cambiar el programa de servicio, y también 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: Linux trata todo como un archivo. Cada archivo de Linux tiene su dueño. El propietario del archivo se puede cambiar con el comando chown.

  • Derechos de acceso: la descripción detallada del archivo de Linux se puede ver en 10 bits de bandera. El primer bit de bandera representa el tipo de archivo, y luego 9 bits de bandera 3 en un grupo. Por ejemplo, el primer grupo es rwx, lo que significa que el propietario tiene permisos de lectura (r) escritura (w) ejecución (x). El segundo grupo y el tercer grupo son los permisos de otros usuarios en el mismo grupo y los permisos de otros usuarios. Si no hay permiso, use-para indicar. Si r--, significa solo lectura.

  • Autoridad de ejecución: además de leer y escribir, hay una autoridad de ejecución mencionada anteriormente, la común es la autoridad SUID y SGID. SUID es el ejecutivo del partido que vuelve a ejecutar su autoridad y elevará su autoridad a la autoridad del propietario. Si un archivo tiene el bit SUID establecido y el propietario de este archivo es root, entonces un determinado usuario tiene permisos de archivo root cuando ejecuta este archivo.

Mecanismo de auditoría de seguridad de Linux

  • Principalmente logrado a través de tres subsistemas de registro

    • El registro de tiempo de conexión es ejecutado por múltiples programas, lo que permite al administrador del sistema seguir quién inició sesión en el sistema cuando y cuando

    • Registro de estadísticas de proceso Cuando finaliza un proceso, escriba un registro en el archivo de estadísticas de proceso para cada proceso

    • El servicio de registro general realiza el registro de errores

Sistema Linux de ataque remoto y tecnología de defensa

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

  • Use servicios como finger, rusers y sendmail en el sistema Linux para enumerar los nombres de cuenta de usuario en el sistema de destino para adivinar la contraseña relevante

  • Los servicios de red como HTTP / HTTPS y FTP en sistemas Linux tienen su propio sistema de cuenta de usuario y mecanismo de autenticación de identidad, y pueden obtener acceso a los servicios de red mediante adivinación remota de contraseñas, obteniendo así acceso local al sistema.

  • Las herramientas remotas para adivinar contraseñas que se usan comúnmente son Brutus, THC Hydra, Cain y Abel, etc.

  • La mejor defensa contra ataques de adivinación de contraseña remota es usar contraseñas seguras que no sean fáciles de adivinar

Penetración remota del servicio de red Linux

  • El canal de ataque más importante: la penetración y explotación de las vulnerabilidades de seguridad del servicio de red.

  • Incluye principalmente

    • 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 ataques de servicio para compartir archivos

    • Ataque de servicio de envío y recepción de correo electrónico

    • Ataques a otros servicios de red: como OpenSSH, OpenSSL, NFS, etc.

  • Las medidas preventivas incluyen:

    • 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

    • Use xinetd, firewall para agregar un mecanismo de control de acceso a la red para los servicios de red de Linux

    • Establecer un proceso de planificación de detección de intrusiones y respuesta a emergencias

Ataque a los programas y usuarios del cliente Linux

  • Atacar el programa cliente de la plataforma Linux

    • Ataques comunes del navegador web y ataques de clientes de correo electrónico

  • Atacando a los usuarios del sistema Linux

    • Google hackea a los administradores del servidor para obtener todos los aspectos de la información del administrador
  • Medidas preventivas

    • Actualizar software a tiempo

    • Mejorar la capacidad antifraude propia

    • Al descargar software, vaya al canal de descarga oficial y verifique MD5

Atacar enrutadores y oyentes de Linux

  • Ataque de enrutadores y firewalls de Linux

    • Cuando el modo de enrutador se está ejecutando, un atacante puede usarlo para realizar un ataque de denegación de servicio

  • Escucha de ataque y detector de intrusiones

    • El software de código abierto incluye principalmente la biblioteca de captura de paquetes libpcap, el programa de línea de comandos tcpdump, wireshark, snort, etc.

  • Precauciones de seguridad contra ataques de enrutadores y escuchas

    • Los administradores de red establecen una sensación de confrontación de seguridad y juegos

    • Conozca la seguridad y disponibilidad de la red y el equipo de seguridad.

    • Desde la perspectiva del atacante, intente una prueba de ataque de penetración

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

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 de Root para ejecutar Zidong y dejar que abran una conexión de línea de comandos de Shell con permisos de root para el atacante. 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.

Puerta trasera de control remoto del sistema Linux

  • Los tipos principales son:

    • Programa de sistema troyanizado

    • Herramienta de puerta trasera de línea de comandos: proporcione acceso a shell de línea de comandos remota, generalmente use Netcat y otras herramientas de puerta trasera para ejecutar en el sistema, abra un puerto TCP para escuchar y regrese a un sistema Linux después de recibir la solicitud

    • El shell interactúa con el cliente.

    • Herramienta gráfica de puerta trasera: la más utilizada es el software gratuito de control remoto gráfico VNC.

2. Proceso de práctica

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

Use el software de prueba de penetración Metasploit para atacar la vulnerabilidad de seguridad usermap_script del servicio Samba en la máquina de destino de Linux y obtenga permisos de acceso de host a la máquina de destino de Linux. Los pasos prácticos son los siguientes:

(1) Inicie el software Metasploit, puede usar uno de msfconsole. Msfgui. Msfweb según sus preferencias personales;

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

(3) Seleccione PAYLOAD como el shell remoto (se pueden usar conexiones directas e inversas);

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

(5) Realizar ataques de penetración:

(6) Verifique si el shell remoto se obtuvo correctamente y verifique los permisos obtenidos.

Anfitrión Dirección IP
tiempos 192.168.200.2
Metasploitable2 192.168.200.125

Utilice el software de prueba de penetración Metasploit para atacar la vulnerabilidad de seguridad usermap_script del servicio Samba en la máquina de destino Linux y obtenga permisos de acceso de host para la máquina de destino Linux objetivo

  • Escribe kalimsfconsole

  • Ataque de penetración, ingrese para use exploit/multi/samba/usermap_scriptseleccionar el módulo de ataque de penetración para la vulnerabilidad usermap_script, vea la carga útil disponible, ingreseshow payloads

  • Luego, set payload cmd/unix/bind_netcatuse 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.

  • Ver los parámetros a configurar, ingresar show optionsy configurar el conjunto de IP del host de destino RHOST 192.168.200.125

  • Inicie la entrada de ataque exploity compruebe que se ha obtenido el permiso raíz de la máquina de destino.

Trabajo práctico: experimento de confrontación ofensiva y defensiva.

  • Atacante: utilice Metasploit para seleccionar 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 wireshark para monitorear y obtener el archivo de paquete de ataque de red, y combine wireshark 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 de ataques, use shellcode y ejecute localmente después del éxito Comando de entrada y otra información.

  • Primero, use nmap para escanear el puertonmap -p0-65535 -sV 192.168.200.4

  • Después de verificarlo, echemos un vistazo al primer vsftpd-2.3.4, hay una puerta trasera maliciosa en la versión anterior de vsftpd-2.3.4, luego usamos para nmap --script=vuln 192.168.200.125 verificar si hay vulnerabilidades comunes. Efectivamente

  • Use el use exploit/unix/ftp/vsftpd_234_backdoormódulo de ataque de penetración, luego mire sus parámetros, establezca los parámetros de ataque, RHOST es la dirección de la máquina de destino establecida RHOST 192.168.200.125.

  • Ataque directo con exploit de parámetros

Defensor

  • A través del análisis del tráfico de paquetes y el contenido del paquete, se puede ver que la IP del atacante es 192.168.200.2, la IP de destino es 192.168.200.125 y el puerto está en el puerto 21.

  • El tiempo de inicio del ataque se puede ver en la figura: a partir del número 3, el atacante comienza a intentar conectarse al puerto 21 del objetivo.

  • Vulnerabilidades explotadas por el ataque: Al principio, mi puerto objetivo para el ataque era 21, que era un ataque contra la vulnerabilidad Vsftpd 2.3.4.

  • Shellcode utiliza en el proceso de captura de Wireshark, podemos ver código shell, la primera ID para determinar sus propios derechos y, a continuación nohup >/dev/null 2>&1, la salida y el error estándar de salida es redirigido a juntos /dev/null, y luego a echo echo cZyuPTDirlCot0aEescribir una cosa, para obtener permisos adicionales

  • Comandos ejecutados localmente después del ataque: desde el flujo de captura de paquetes, podemos ver todos los comandos del atacante. Los comandos whoami y ls se transmiten en texto claro.

3. Problemas encontrados en el aprendizaje y las soluciones.

  • Pregunta: Quiero encontrar una escapatoria común. . ¡No puedes comenzar desde el principio!
  • Solución al problema: ¡nmap es realmente una enciclopedia!

4. Resumen de la práctica

Con la última experiencia práctica, esta vez me siento cómodo. . .

Referencias

Supongo que te gusta

Origin www.cnblogs.com/dsqblog/p/12740340.html
Recomendado
Clasificación