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

Curso de asignación: https://edu.cnblogs.com/campus/besti/19attackdefense/

Requisitos de asignación: https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10635

Practica contenido

Ataque y defensa de seguridad del sistema operativo Linux
linux.png

Mecanismo y módulo del kernel de Linux

1. Mecanismo de gestión de procesos y subprocesos

  • Kernel de Linux: proceso multiusuario preventivo
  • Módulo de gestión de procesos donde programar la función de programación de procesos
  • Bloque de control de proceso PCB

2. Mecanismo de gestión de la memoria.

  • Se puede virtualizar, cada proceso tiene un espacio de memoria virtual exclusivo de 4 GB
  • Permita que múltiples procesos compartan áreas de memoria física de manera segura
  • El código de modo de usuario accede al modo kernel a través de llamadas e interrupciones del sistema
  • Módulo de gestión de memoria: proporciona servicios de llamadas al sistema, como asignación de memoria, reciclaje de memoria, paginación de solicitudes y paginación de intercambio para procesos

3. Mecanismo de gestión del sistema de archivos

  • Mecanismo de gestión de archivos virtuales VFS
  • Sistemas de archivos lógicos compatibles: ext2, ext3, ext4, vfat, ntfs
  • Acceda a dispositivos de hardware específicos a través de controladores de dispositivo
  • Proporcionar llamada general al sistema de archivos [función] (abrir / cerrar / leer / escribir) </ br />
    4. Mecanismo de control del dispositivo
  • Controlador de dispositivo: software que procesa o administra el [controlador de hardware]
  • La mayoría de los controladores de dispositivos pueden cargar [dinámicamente] los mecanismos del módulo del núcleo a través de LKM
  • Dispositivos de hardware compatibles con Linux: dispositivos de caracteres, dispositivos de bloque, dispositivos de red

Dispositivos de caracteres: sin búfer, E / S directa, como puertos serie del sistema dev / cua0 y / dev / cua1

dispositivos de bloque: E / S, caché de búfer, acceso aleatorio en múltiplos de un bloque (512 o 1024 bytes)

Equipo de red: acceso a través de la interfaz de red de socket BSD

5, mecanismo de red

  • Interfaz de red (pila de protocolos de red, controlador de red)

Pila de protocolos de red: implementa todos los protocolos de transmisión de red posibles

IPX: protocolo de conmutación de paquetes

1156ff264bd799d657f25cbf04b30ad8.png
Controlador de dispositivo de red: responsable de comunicarse con los dispositivos de hardware

6. Mecanismo de llamada del sistema

Implementación: interrupción suave interrupción

dura: dispositivo externo interrumpe la

interrupción suave de la CPU : duro La rutina de servicio de interrupción interrumpe el núcleo

Mecanismo de seguridad

Autenticación de identidad, autorización y mecanismo de control de acceso, auditoría de seguridad

1, el mecanismo de autenticación de identidad

no admite la configuración completa de la lista de control de acceso de ACL, parche: ACL de POSIX para Linux

Usuario: root, el único superusuario; usuario ordinario; usuario del sistema, no iniciar sesión, pero indispensable cuando el sistema se está ejecutando, como daemon, apache, nadie de acceso anónimo, ftp y otros usuarios.

Archivo de información del usuario: / etc / passwd

contraseña cifrada: / etc / shadow legible solo para root

Grupo de usuarios: archivo de información del grupo de usuarios: / etc / group

contraseña cifrada del grupo de usuarios: / etc / gshadow

consulta el grupo al que pertenece el usuario actual: id- a

Agregar un grupo de usuarios: groupadd Agregar un usuario

a un grupo de usuarios: usermod -G nombre_grupo nombre_usuario

Autenticación de usuario de inicio de sesión local: Autenticación de usuario de inicio de

bb398d20e1d3eb22a52ef8135d3b6f91.png
sesión remoto:

utilizar el servicio SSH

  • Basado en contraseña: cuenta de usuario y contraseña incorporadas
  • Basado en la clave asimétrica, el usuario crea un par de claves asimétricas y coloca la clave pública en el servidor. Puede resistir el secuestro de conversaciones y los ataques de hombre en el medio.

Autenticación de identidad de algunos servicios de red.

Apache MD5 hash password word

servicio de archivos samba SMB servicio de intercambio de archivos LANMAN o NTLM algoritmo hash

MySQL PASSWORD () función contraseña cifrada almacenada en la tabla del sistema del usuario

La autenticación de identidad unificada middleware-PAM (módulo de autenticación de identidad enchufable)

proporciona una biblioteca de enlaces dinámicos y una API unificada para separar los servicios y métodos de autenticación proporcionados por el

sistema del administrador del sistema: a través del archivo de configuración de PAM (/ etc / pam. conf o /etc/pam.d) Formule la estrategia de autenticación Kamikaze

Desarrollador del servicio de aplicaciones: use la API PAM en el programa de servicio para llamar al

módulo de servicio PAM para el método de autenticación Desarrollador: use la SPI PAM (API del módulo de servicio) para escribir el módulo de autenticación, en PAM La

biblioteca central PAM de diferentes mecanismos de autenticación se agrega al middleware : lea el archivo de configuración y asocie el programa de servicio correspondiente con el método de autenticación correspondiente. Interfaces de gestión compatibles con PAM: gestión de autenticación, gestión de cuentas, gestión de contraseñas, gestión de sesiones

pam.png

2. Mecanismo de autorización y control de acceso.

Todo es un archivo

Propietario del archivo uid gid Permisos de modificación: permisos de

acceso a archivos conocidos tipo de archivo de 10 marcas de bandera + permisos de

archivos permisos de ejecución especiales de archivos

SUID: permite al ejecutor actualizar de la identidad del ejecutor al propietario del archivo en tiempo de ejecución, y puede acceder arbitrariamente a todos los recursos del sistema que el propietario del archivo puede usar. Todos los archivos raíz con el conjunto de bits SUID: / etc / login

GUID: cuando se ejecuta el programa con el bit SGID, se ejecuta con los permisos del grupo del propietario

2. Mecanismo de auditoría de seguridad

Subsistema de registro: registro de tiempo de conexión (inicio de sesión registrado, / var / log / wtmp y / var / run / utmp), registro de estadísticas del proceso (inicio y fin del proceso pacct o acct), registro de registro de errores (/ var / log / mensajes).

Archivos de registro comunes de Linux

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 tiempos de inicio de sesión exitosos y el último inicio de sesión fallido
mensaje Registre información de syslog, algunos enlaces a archivos de syslog
sudolog / arroyo Comandos emitidos usando sudo y su
syslog Registre información de syslog (generalmente vinculada al archivo de mensajes)
utmp Registre a cada usuario actualmente conectado
wtmp Un registro permanente del tiempo que un usuario ingresa y sale de cada inicio de sesión

Demonio de auditoría: detecta y registra violaciones de ciertas medidas de seguridad por parte de los usuarios del sistema, monitorea las llamadas del sistema iniciadas por los programas de espacio de usuario al núcleo y audita registros de violaciones de tiempo de las políticas de SELinux

Tecnología ofensiva y defensiva de largo alcance

1. Ataque remoto para adivinar contraseñas

2. Contra vulnerabilidades del servicio de red

3. Instalar troyanos, correo no deseado

4. Construir paquetes de datos

1. Ataque remoto de adivinación de contraseña

Para SSH, etlnet, FTP,

principios básicos de HTTP : los usuarios establecen contraseñas débiles

herramienta de ataque de adivinación de contraseña

Brutus: HTTP, POP3, FTP, SMB, telnet, IMAP, etc.

THC Hydra: telnet, FTP, HTTP / HTTPS, SMB, SSH, etc. Ataque, contraseña fuerza bruta craqueo de fuerza bruta

Caín y Abel: Windows,

medidas de defensa de Linux :

establezca contraseñas seguras,

no use inicio de sesión raíz,

no permita que usuarios privilegiados inicien sesión de forma remota

, registren múltiples autenticaciones, desconecten y reconecten,

no lo usen en múltiples sistemas La misma contraseña

utiliza un mecanismo de autenticación de identidad basado en certificados de clave pública para

ejecutar servicios que son vulnerables a ataques de adivinación de contraseña remota en puertos no estándar.

Utilice el software de detección y defensa de ataques de adivinación de contraseña DenyHosts, BlockHosts,

firewall firewall para restringir la dirección IP de origen de acceso de los servicios de red.

2. Penetración remota de los servicios de red.

Uso de la supervisión de vulnerabilidades de seguridad del servicio de red

(1) El código de implementación de la pila de protocolos de red es defectuoso

(2) La arquitectura LAMP construye un sitio web

para atacar la vulnerabilidad de desbordamiento del búfer causada por el error de condición de límite al manejar el nombre del certificado MySQL: exploit / linux / mysql / mysql_yassl_getname

(3) FTP tcp21 transmisión de comando de control tcp20 transmisión de datos

proFTPD: el software de servicio FTP

vs-ftpd rara vez tiene vulnerabilidades

(4) Samba: permite que un sistema similar a Unix se conecte al protocolo de red smb / cifs de Windows, como: manejar enlaces Dado que el código del mensaje SMB1 no verifica correctamente el campo de entrada proporcionado por el cliente, el cliente malintencionado puede enviar un mensaje SMB especialmente hecho al servidor Samba para desencadenar la corrupción de la memoria del montón, lo que resulta en la ejecución de código arbitrario con la autoridad del servidor Samba (smbd). No se requiere autenticación para aprovechar esta vulnerabilidad, y la configuración predeterminada de samba se ve afectada por esta vulnerabilidad.

(5) Servicio de envío y recepción de correo electrónico: servicio sendmail

(6) Otros servicios de red

Medidas preventivas

  • Deshabilitar servicios de red innecesarios
  • Elija un protocolo de red más seguro y un software de servicio, el mejor servicio de red de configuración de seguridad (cierre la contraseña predeterminada)
  • Actualice la versión del servicio de red a tiempo
  • Use xinetd (mecanismo de control de acceso a la red), firewall para agregar un mecanismo de control de acceso a los servicios de red.
  • Establecer un proceso de planificación de detección de intrusiones y respuesta a emergencias

3. Ataque a los programas y usuarios del cliente

Ataque de navegador

web Ataque de piratería de sitios web: Implantación de enlaces

a códigos de script JavaScript en el sitio web Ataque de usuarios del sistema

Ingeniería social

Software de trojanización en sitios de distribución de software

Medidas preventivas

Actualice el software del cliente a tiempo para

aumentar la conciencia de seguridad

4. Ataque a los enrutadores y oyentes Linux: wireshark, snort, netfilter / iptables

Linux se ejecuta en modo de enrutador: ip_forward = 1 en el

núcleo: la ruta.c del subsistema de red implementa las funciones de direccionamiento y reenvío de paquetes del enrutador.

Hay lagunas en estas áreas para permitir a los atacantes aprovechar

Medidas preventivas

Mejore la conciencia de seguridad y preste atención a la seguridad de los equipos y software de seguridad.

Ataque de seguridad local y tecnología de defensa

Los servicios de red generales se inician y ejecutan con usuarios del sistema especialmente asignados en lugar de permisos de root.

Elevación de autoridad:

1. La forma más sencilla de escalar privilegios: descifrar la contraseña del usuario root. (Aprovechando algunas vulnerabilidades de lectura / escritura de archivos que existen en el servicio que se ejecuta con privilegios de root, primero obtenga el archivo / etc / shadow y luego descifre la contraseña)

Herramienta de descifrado de contraseñas del sistema Linux: John the Ripper (ataque de diccionario, descifrado de fuerza bruta)

2. Descubrir y explotar vulnerabilidades de seguridad en su o sudo programas.

Sudo -g / sudoedit omite la verificación.

Preguntar -g es una opción ilegal.
3. Atacar directamente cualquier vulnerabilidad de ejecución de código en programas con privilegios de root, permitiéndoles abrir ataques en lugar de atacantes. Conéctese a la línea de comando de shell con autoridad de root.

Ataque a la vulnerabilidad de elevación de privilegios de SUID en modo de usuario

UID real: la ID de usuario que ejecuta el proceso

UID efectivo: la ID de usuario de que el proceso realmente hereda los permisos

después de configurar el SUID, la ID real y la ID efectiva pueden ser diferentes, el UID efectivo se convierte en la propiedad del archivo ID de usuario, como el comando passwd

  • Ataques locales de desbordamiento de búfer contra programas SUID, como vulnerabilidades en el software Ettercap
  • Contra el ataque de enlace simbólico del programa SUID, el programa SUID referencia ciegamente otros archivos a lo largo del enlace simbólico sin verificación válida
  • En respuesta al ataque de condición de carrera del programa SUID, algunos programas de software no siguen las características atómicas de la operación y existe una laguna de condición de carrera Durante la operación, el otro lado puede completar la autenticación de identidad. Tales como Exim (con SUID)
  • Ataque a la biblioteca de funciones compartidas del programa SUID, biblioteca de funciones compartidas: mecanismo de carga dinámica de la biblioteca de funciones.
    Modifique las variables de entorno para proporcionar una biblioteca de funciones compartidas de reemplazo que contenga funciones maliciosas, use las vulnerabilidades en la biblioteca de funciones compartidas
    , como libpcprofile, y use la variable de entorno LD_AUDIT para iniciar el programa suid.
  • Elevación de privilegios mediante la explotación de vulnerabilidades de código de espacio del kernel
  • Use una configuración incorrecta en el sistema, busque y use archivos confidenciales de escritura global y ubicaciones de directorio del sistema, y ​​utilícelo, SUID

Precauciones:
no se puede abusar de SUID
Actualice el software a tiempo
Instale módulos de mejora de seguridad.

Desaparecer

Registro de autenticación y autorización: /var/log/auth.log
Alarma del sistema, información, autenticación y registro de tareas programadas: / var / log / messages
Para el archivo binario wtmp del registro de inicio de sesión del usuario, puede usar la herramienta wzap para borrar la entrada de registro especificada.
Borre el historial de comandos ingresados ​​en el shell, como el archivo .bash_history en el directorio del usuario. O deshabilite la función de historial de shell: deshabilite HISTFILE; deshabilite SAVEHIST

Medidas preventivas

  • Escribir información de registro en medios difíciles de modificar

Programa de control remoto de puerta trasera

Tipo:
programa de sistema troyanizado: reemplace rlogin,
herramienta de puerta trasera de línea de comando ssh : proporcione acceso de shell de línea de comando remota, use la herramienta de puerta trasera Netcat para ejecutar en el sistema
Herramienta gráfica de puerta trasera: VNC

Proceso de práctica

1. Utilice el software de prueba de penetración metasploit para atacar la vulnerabilidad de seguridad de usermap_script del servicio samba en la máquina de destino de Linux y obtener los derechos de acceso del host a la máquina de destino de Linux. Los pasos prácticos son los siguientes:

1. Inicie el software metasploit y use uno de msfonsole, msfgui, msfweb según sus preferencias personales;

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

3. Seleccione PAYLOAD como el shell remoto (hacia adelante) O puede conectarse en reversa);

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

5. Realice el ataque de penetración

6. Compruebe si el shell remoto se obtuvo correctamente y verifique los permisos obtenidos.
Vulnerabilidad de corrupción de memoria del enlace de mensaje SMB1

Esta práctica utilizó dos máquinas de ataque (winattack y kali, la penetración inicial falló, todas cambiaron una máquina de ataque y luego se descubrió que estaban relacionadas con el módulo de penetración seleccionado) y una máquina de destino (metasploitable-linux )

Primero escanee el plano de destino para ver si tiene un programa de servicio de samba y su versión:

image65992e4ce448e8a6.md.png

También puede ver los resultados de la exploración. La máquina de destino tiene la versión 3.0 del servicio samba.

Entonces puedes penetrarlo

Seleccione el módulo de penetración:

image704c5f3c4bbc18a9.md.png

Seleccione la carga:

image32fc25ed9d119246.md.png

Penetración exitosa, siga las instrucciones, escriba python para ingresar al shell y luego salga:

imagef5be672854862842.md.png

imagee71fdce5a5695c79.md.png

Ver el usuario actualmente conectado:

image.png

Se puede ver que es la autoridad raíz.

En segundo lugar, la práctica de confrontación de ataque y defensa
Use nessus para buscar vulnerabilidades en linux-netasploitable:

image4ed0f3230f1030fa.md.png
O infiltrarse en la samba.
El proceso de penetración es el mismo que la pregunta anterior.
Análisis del paquete wireshark:

image8e5cffb6f0226e1e.md.png
Dirección IP de origen: 192.168.200.4
Dirección IP de destino: 192.168.200.123 Puerto: 139
image.md.png

Encuentre el shellcode del primer paquete SMB como se muestra en la figura, nohup se ejecuta en segundo plano, mkfifo crea una tubería con nombre y / bash / sh se escribe en el archivo. Comandos utilizados durante el ataque:
image1740b6182b2e3dc9.md.png

image9da0c39564dbd55a.png

Problemas encontrados:

1. Al hacer la primera práctica, la penetración no tiene éxito, la solución: reemplazar el módulo de penetración y la carga.
2. Al hacer la segunda práctica, porque el primer método de penetración obtiene directamente permisos de root, y luego usa su msfadmin para convertirse en un usuario normal, y luego usa el método SUID para escalar derechos, pero falla.

Experiencia

El contenido de la escalada de privilegios locales es un poco abstracto y no muy comprensible.

Supongo que te gusta

Origin www.cnblogs.com/eosmomo/p/12734047.html
Recomendado
Clasificación