20199308 Affectation de la semaine 8 "Pratique de l'attaque en réseau et de la défense" Semaine 8

(: 」∠) _

1. Pratiquer le contenu

1. Le cadre de base du système d'exploitation Linux

1.1 Avantages de Linux

  • Code source ouvert
  • Prise en charge matérielle multiplateforme
  • Support logiciel riche
  • Multi-utilisateur multi-service
  • Sécurité fiable
  • Bonne stabilité
  • Fonction réseau parfaite

1.2 Structure du système Linux

  • Noyau du système d'exploitation Linux: structure du noyau de macro
  • Mécanisme de gestion des processus et des threads: mode multi-processus multi-utilisateur préemptif
  • Mécanisme de gestion de la mémoire: permet à plusieurs processus de partager en toute sécurité la zone de mémoire physique.
  • Mécanisme de gestion du système de fichiers: le mécanisme VFS de gestion des fichiers virtuels prend en charge des dizaines de différents types de systèmes de fichiers logiques.
  • Mécanisme de contrôle des périphériques: le logiciel que le pilote de périphérique traite ou gère le contrôleur matériel est essentiellement une bibliothèque partagée de routines de contrôle matériel de bas niveau privilégiées qui résident en mémoire.
  • Mécanisme réseau: le module réseau du noyau permet d'accéder à diverses normes réseau et de prendre en charge divers matériels réseau. L'interface réseau peut être divisée en une pile de protocoles réseau et un pilote réseau.
  • Mécanisme d'appel système: l'interface d'appel système permet aux applications d'accéder aux périphériques matériels et aux autres ressources système via cette couche d'interface. L'appel système est réalisé par interruption douce.

2. Mécanisme de sécurité du système d'exploitation Linux

2.1 Mécanisme d'authentification d'identité Linux

Implémentez la gestion de l'identité des utilisateurs en créant des utilisateurs et des groupes d'utilisateurs avec plusieurs types de rôles pour garantir que plusieurs utilisateurs utilisent le système d'exploitation Linux en toute sécurité.

  • Utilisateur: prenez l'utilisateur comme corps principal du processus pour effectuer une tâche d'opération spécifique, l'utilisateur a différents types de rôle. Y compris:
    • Utilisateur root
    • Utilisateur ordinaire
    • Utilisateur système
  • Groupe d'utilisateurs: ensemble de comptes d'utilisateurs ayant les mêmes caractéristiques, utilisé pour simplifier la gestion des droits d'utilisateur de l'ensemble du système.
    • Les informations sur le groupe d'utilisateurs sont enregistrées dans le fichier / etc / group du système, y compris le nom du groupe d'utilisateurs, le gid et la liste des noms d'utilisateurs contenus dans le groupe d'utilisateurs. Le mot de passe chiffré du groupe d'utilisateurs est stocké dans le fichier / etc / gshadow.
    • id -aCommande peut interroger et afficher l'utilisateur actuel appartient, et en groupaddajoutant une commande de groupe d'utilisateurs est utilisé usermod -G group_name user_namepour ajouter un utilisateur à un groupe spécifique.
  • Mécanisme d'authentification utilisateur de connexion locale: le mécanisme d'authentification utilisateur le plus basique.
  • Mécanisme d'authentification des utilisateurs de connexion à distance: le service SSH est utilisé pour la connexion des utilisateurs à distance et l'accès au réseau. SSH propose deux mécanismes d'authentification des utilisateurs:
    • 1. Basé sur le mot de passe
    • 2. Basé sur des clés asymétriques
  • Middleware d'authentification d'identité unifiée-PAM: fournit un mécanisme d'authentification d'identité unifiée pour différents logiciels d'application et services réseau.
    • Gestion de l'authentification: acceptez le nom d'utilisateur et le mot de passe, puis authentifiez le mot de passe de l'utilisateur, et êtes responsable de la définition de certaines informations secrètes de l'utilisateur.
    • Gestion des comptes: vérifiez si le compte est autorisé à se connecter au système, si le compte a expiré et si la connexion au compte a une limite de temps.
    • Gestion des mots de passe: permet de modifier le mot de passe de l'utilisateur.
    • Gestion de session: fournit la gestion de session et l'audit.

2.2 Mécanisme d'autorisation et de contrôle d'accès Linux

Linux utilise le système de fichiers virtuel VFS pour prendre en charge différents types de formats de système de fichiers et intègre simultanément la gestion d'autres types de systèmes via les types de fichiers de périphérique.

  • Propriétaire du fichier
  • Accès aux fichiers
    • R: lire
    • W: écrire
    • X: exécuter
  • Autorisations d'exécution spéciales pour les fichiers: il existe une classe de "privilèges" sur le bit d'exécution d'autorisation d'accès aux fichiers système.
    • SUID: autorise l'élévation des fichiers exécutables de l'identité de l'opérateur au propriétaire du fichier lors de l'exécution
    • SGID: une fois exécuté, il s'exécute avec les autorisations du groupe du propriétaire et le programme peut accéder arbitrairement aux ressources système pouvant être utilisées par l'ensemble du groupe d'utilisateurs.

2.3 Mécanisme d'audit de sécurité Linux

Principalement atteint grâce à trois sous-systèmes de journalisation principaux, notamment:

  • Journal des pratiques de connexion: exécuté par plusieurs programmes
  • Journal des statistiques de processus: exécuté par le noyau du système
  • Journalisation des erreurs: exécutée par le service de journalisation général syslogd (8)

En plus de ces journaux d’événements, le noyau Linux intègre également un démon d’audit pour aider les administrateurs à détecter les violations de certaines mesures de sécurité par les utilisateurs du système. Au niveau le plus élémentaire, le démon d’audit peut également coopérer avec SELinux pour gérer la stratégie SELinux de Weifang Audit des enregistrements de l'incident.

3. Technologie d'attaque et de défense à distance du système Linux

3.1 La principale méthode d'intrusion réseau à distance dans le système Linux:

  • Effectuer des attaques par devinettes sur les mots de passe des utilisateurs impliqués dans le processus d'authentification d'identité de divers services réseau dans le système Linux, dans l'espoir de casser les comptes d'utilisateur et les mots de passe réels et efficaces d'un certain service, afin d'usurper l'identité de l'utilisateur et d'entrer dans le système.
    -Digging et exploitant une faille de sécurité dans un service réseau de surveillance de système Linux, injectant le code du module de charge d'attaque dans le processus de service cible pour exécution, fournissant ainsi à l'attaquant un accès au shell local.
    -Par le biais de chevaux de Troie de page Web, l'envoi d'e-mails frauduleux, la fourniture de programmes de chevaux de Troie et d'autres méthodes d'ingénierie technique et sociale pour attaquer les programmes et les utilisateurs clients, les logiciels clients ou les utilisateurs installent et exécutent des programmes malveillants, ouvrant ainsi activement Linux aux attaquants La porte du système.
    -Lorsque le système Linux est utilisé comme routeur pour connecter plusieurs réseaux, ou lorsqu'un mode promiscuous est activé comme écouteur pour le reniflement de réseau, il peut être soumis à une attaque de paquets spécialement conçue par l'attaquant, et l'attaquant peut y accéder.

3.2 Attaque à distance par devinettes de mot de passe Linux

Le système Linux prend principalement en charge le contrôle à distance du réseau des protocoles telnet, rlogin, rsh et SSH. Ces protocoles utilisent le nom d'utilisateur et le mot de passe intégrés au système Linux pour authentifier l'utilisateur distant. Si un attaquant peut deviner à distance un ensemble de noms d'utilisateur et de mots de passe via ces protocoles réseau, il peut utiliser ces informations pour se connecter à distance au système Linux afin d'accéder localement.

  • Prend en charge les attaquants pour effectuer des outils de devinement de mot de passe à distance automatisés, notamment:
    • Brutus
    • THC Hydra
    • Caïn et Abel

3.3 Attaque de pénétration à distance du service réseau Linux

Pénétrer l'utilisation de la surveillance des vulnérabilités de sécurité des services réseau.

3.4 Attaquer les programmes clients et les utilisateurs Linux

  • Attaquer les programmes clients sur la plate-forme Linux
  • Attaquer les utilisateurs de systèmes Linux: scénarios d'usurpation d'identité qui impliquent la conception de certaines techniques d'ingénierie sociale dans le courrier électronique et la messagerie instantanée pour inciter les utilisateurs à cliquer pour exécuter des pièces jointes ou des programmes exécutables ou des documents malveillants transmis via un logiciel de messagerie instantanée pour accéder à un certain Ces adresses malveillantes, ainsi que la fuite par inadvertance de certaines informations sensibles sur la configuration du serveur, permettent à l'attaquant d'obtenir l'opportunité de l'exécution d'un programme malveillant sur le serveur et de guider le logiciel client pour accéder au code d'attaque, afin de mettre le système sous le regard de l'administrateur Droits d'accès,

4. Attaque de sécurité locale et technologie de défense du système Linux

4.1 Élévation des privilèges Linux locaux

  • Crackez le mot de passe de l'utilisateur root, puis exécutez la commande su ou sudo pour mettre à niveau
  • Découvrez et exploitez les failles de sécurité dans les programmes su ou sudo
  • Attaquez la vulnérabilité d'élévation de privilèges sudo en mode utilisateur et attaquez la vulnérabilité d'élévation de privilèges de code du noyau Linux
  • Rechercher et utiliser des fichiers sensibles et des emplacements de répertoires accessibles en écriture à partir du système

4.2 Disparaissent sur le système Linux

Effacez le journal de comportement du système Linux:

  • Modifier le journal d'activité actuel pour empêcher l'administrateur système de remarquer l'activité de connexion actuelle de l'attaquant
  • Nettoyez l'historique des commandes que vous avez entrées dans le programme shell
  • Supprimer l'historique des commandes que vous avez exécutées

4.3 Porte arrière de la télécommande du système Linux

Les types de programmes de porte dérobée de contrôle à distance implantés sur des systèmes Linux sont:

  • Programme système cheval de Troie
  • Outil de porte dérobée en ligne de commande
  • Outils graphiques de porte dérobée

Deuxièmement, le processus pratique

Pratique pratique: utilisation de Metasploit pour les attaques de pénétration à distance Linux

Utiliser un logiciel de test de pénétration Metasploit, le service Samba usermap_script failles de sécurité d'attaque sur drone Linux, obtenir hôte Linux drones cibles d'accès. Les étapes pratiques sont les suivantes:
1. Démarrez le logiciel de test de pénétration Metasploit et utilisez l'un des msfconsole, msfgui, msfweb selon vos préférences personnelles.
2. Utilisez exploit: exploit // module d'attaque de pénétration multi / samba / usermap_script;
3, sélectionnez l'attaque PAYLOAD en tant que shell distant,
4, définissez les paramètres d'attaque de pénétration;
5, exécutez l'attaque de pénétration;
6, vérifiez si elle est correctement obtenue Shell distant et affichez les autorisations obtenues.


Le processus est le suivant:

  • Préparer la machine virtuelle
Machine virtuelle Adresse IP
fois 192.168.200.2
metasploit 192.168.200.125
  • Ouvrez msfconsole et interrogez la vulnérabilité de la carte utilisateur:
  • Sélectionnez le module et affichez les charges utiles:
  • Pour contrôler le shell, sélectionnez 18 et définissez l'IP de l'attaquant cible:
  • Attaque:
  • Après l'attaque réussie, les commandes d'entrée directe whoamipeuvent être vus les privilèges root. (Il n'y a pas de caractères devant la ligne de commande, ce qui semble gênant)

Affectation de pratique: pratique de confrontation offensive et défensive

L'attaquant utilise le logiciel de pénétration Metasploit pour mener une cyberattaque contre une machine cible Linux Metasploitable, tandis que le défenseur utilise des outils tcpdump ou wirehark ou snort pour capturer le flux d'attaque sur Metasploitable et analyse la vulnérabilité de sécurité que l'attaquant a utilisée pour attaquer, à télécharger à partir du site Web officiel. Le correctif de vulnérabilité de sécurité est utilisé pour la réparation du système et les deux parties coopèrent pour fournir un rapport sur le processus offensif et défensif.

  • Attaquant: utilisez Metasploit, sélectionnez les vulnérabilités trouvées dans la machine cible Metasploitable pour mener des attaques de pénétration, gagner le contrôle à distance et essayer d'obtenir des autorisations root supplémentaires.
  • Defender: utilisez tcpdump / wireShark / Snort pour surveiller et obtenir le fichier de paquet d'attaque réseau, et combinez Wirehark / Snort pour analyser le processus d'attaque, obtenez l'adresse IP de l'attaquant, l'adresse IP et le port cible, le temps de lancement de l'attaque, la vulnérabilité d'exploitation de l'attaque, utilisez Shellcode, Après l'exécution réussie de l'entrée de commande et d'autres informations localement.

Le processus est le suivant:

  • L'attaque est comme dans l'expérience précédente. La surveillance de Wireshark est activée avant l'attaque et des paquets peuvent être interceptés pendant l'attaque:
  • Vous pouvez voir la réponse reçue, le shellcode est un texte chiffré:

3. Résumé expérimental

1. Informations liées à la vulnérabilité du script de mappage de carte du service Samba
https://blog.csdn.net/aleenlee/article/details/78868675
2. Test pratique de vulnérabilité de la machine cible Metasploit
https://blog.csdn.net/Birldlee/article / détails / 78914506

Je suppose que tu aimes

Origine www.cnblogs.com/hsj910/p/12735324.html
conseillé
Classement