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

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

Système d'exploitation Linux

1. Pratiquer le contenu

Vue d'ensemble du cadre de base du système d'exploitation Linux

Structure du système Linux

  • Processus Linux et mécanisme de gestion des threads
    Linux adopte un mode de processus multi-utilisateur préemptif. Plusieurs processus sont simultanément actifs. Le module de gestion des processus du noyau
    est responsable de la planification des ressources matérielles à utiliser. Les processus sont l'unité de planification la plus élémentaire et maintiennent une
    structure de bloc de contrôle des processus La fonction de planification de processus de planification du noyau
    sélectionne les processus à exécuter en fonction de la priorité du processus et du processeur et d'autres ressources .

  • Mécanisme de gestion de
    la mémoire de Linux Le module de gestion de la mémoire de MM MM permet à plusieurs processus de partager en toute sécurité des zones de mémoire physique. Linux prend en charge la gestion de la mémoire virtuelle. Sur une machine 32 bits, chaque processus dispose d'un espace de mémoire virtuelle indépendant de 4 Go, où le code et les segments de données du noyau sont mappés sur plus de 3 Go d'espace, et l'espace de mémoire virtuelle demandé par le code en mode utilisateur est de 0 à 3 Go. Intervalle, chaque processus utilise deux ensembles de descripteurs de segment pour accéder respectivement à l'espace mémoire du mode noyau et du mode utilisateur.

  • Mécanisme de gestion de système de fichiers Linux Le mécanisme
    VFS de gestion de fichiers virtuels lui permet de prendre en charge des dizaines de types de systèmes de fichiers logiques différents. VFS fournit un ensemble commun de fonctions d'appel de système de fichiers pour les processus utilisateur, qui peuvent être utilisées pour des fichiers dans différents systèmes de fichiers. Fonctionnement unifié.

  • Mécanisme de contrôle des périphériques Linux
    Le logiciel qui traite ou gère le contrôleur matériel est appelé pilote de périphérique. Une caractéristique de base de Linux est l'abstraction du traitement des périphériques.Tous les périphériques matériels sont traités comme des fichiers normaux. Linux prend en charge trois types de périphériques matériels: les périphériques de caractères, les périphériques de blocs et les périphériques réseau.

  • Mécanisme de réseau Linux

Le module réseau donne accès à diverses normes réseau et prend 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. La pile de protocoles réseau implémente tous les protocoles de transmission réseau possibles; les pilotes de périphériques réseau sont responsables de la communication avec les périphériques matériels, et chaque type de périphérique matériel a un pilote de périphérique correspondant.

  • Mécanisme d'appel système de
    Linux Linux fournit une interface d'appel système, permettant aux applications d'accéder aux périphériques matériels et autres ressources système via l'interface, ce qui contribue à assurer la stabilité et la fiabilité du système Linux et fournit une interface abstraite unifiée pour l'espace utilisateur. Facilite le portage multiplateforme d'applications.

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

Mécanisme d'authentification d'identité Linux

  • Utilisateurs Linux (les informations utilisateur sont stockées dans le fichier / etc / passwd du système et les mots de passe cryptés sont stockés dans le fichier / etc / shadow):

    • L'utilisateur root, avec l'autorité la plus élevée, peut utiliser n'importe quel fichier et commande du système d'exploitation

    • L'utilisateur ordinaire, créé par l'utilisateur, ne peut exploiter le contenu que dans son propre répertoire, autorité d'exécution limitée

    • Utilisateur système, ce type d'utilisateur n'a pas la possibilité de se connecter au système, mais est un utilisateur indispensable pour le fonctionnement du système

  • Groupe d'utilisateurs Linux (les informations sur les groupes d'utilisateurs sont stockées dans le fichier / etc / group du système, les mots de passe chiffrés des groupes d'utilisateurs sont stockés dans le fichier / etc / gshadow): une collection de comptes d'utilisateurs ayant les mêmes caractéristiques.

  • Mécanisme d'authentification des utilisateurs de connexion locale Linux: le processus d'initialisation démarre getty pour générer plusieurs consoles virtuelles (telles que ttyI, tty2, etc.). La connexion s'affiche sur la console. Lorsque l'utilisateur tape l'utilisateur, getty exécute le processus de connexion et entre dans le processus d'authentification de connexion. Une fois l'authentification réussie, le processus de connexion va bifurquer le processus enfant du shell utilisateur correspondant. Commencez à travailler sous le shell correspondant.

  • Mécanisme d'authentification des utilisateurs de connexion à distance Linux: le système inux utilise généralement le service SSH pour la connexion des utilisateurs à distance et l'accès au réseau. Authentification d'identité pour mille clés asymétriques.

  • PAM middleware d'authentification d'identité unifiée Linux: PAM sépare le service fourni par le système de la méthode d'authentification du service via une bibliothèque de liens dynamiques et un ensemble d'API unifiées, permettant à l'administrateur système de fournir de manière flexible différents services en fonction des besoins Configurez différentes méthodes d'authentification sans modifier le programme de service et il est également facile d'ajouter de nouvelles méthodes d'authentification au système.

Autorisation Linux et mécanisme de contrôle d'accès

  • Propriétaire du fichier: Linux traite tout comme un fichier. Chaque fichier Linux a son propriétaire. Le propriétaire du fichier peut être changé par la commande chown.

  • Droits d'accès: La description détaillée du fichier linux peut être vue en 10 bits indicateurs. Le premier bit indicateur représente le type de fichier, puis 9 bits indicateur 3 dans un groupe. Par exemple, le premier groupe est rwx, ce qui signifie que le propriétaire dispose des autorisations de lecture (r) écriture (w) d'exécution (x). Le deuxième groupe et le troisième groupe sont les autorisations des autres utilisateurs du même groupe et les autorisations des autres utilisateurs. S'il n'y a pas d'autorisation, utilisez-pour indiquer. Si r--, cela signifie en lecture seule.

  • Autorité d'exécution: Outre la lecture et l'écriture, il existe une autorité d'exécution mentionnée ci-dessus, la commune est l'autorité SUID et SGID. SUID est l’exécutif du parti qui réexécute son autorité et élèvera son autorité à celle du propriétaire. Si un fichier a le bit SUID défini et que le propriétaire de ce fichier est root, un certain utilisateur dispose d'autorisations de fichier racine lors de l'exécution de ce fichier.

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

  • Principalement atteint grâce à trois sous-systèmes de journal

    • Le journal de temps de connexion est exécuté par plusieurs programmes, permettant à l'administrateur système de suivre qui s'est connecté au système quand et quand

    • Journal des statistiques de processus Lorsqu'un processus se termine, écrivez un enregistrement dans le fichier de statistiques de processus pour chaque processus

    • La journalisation des erreurs est effectuée par le service de journalisation général

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

Attaque par devinette de mot de passe à distance Linux

  • Utilisez des services tels que finger, rusers et sendmail sur le système Linux pour énumérer les noms de compte d'utilisateur sur le système cible pour deviner le mot de passe approprié

  • Les services réseau tels que HTTP / HTTPS et FTP sur les systèmes Linux ont leur propre système de compte d'utilisateur et mécanisme d'authentification d'identité. Ils peuvent accéder aux services réseau par devinette de mot de passe à distance, obtenant ainsi un accès local au système.

  • Les outils de devinette de mot de passe à distance couramment utilisés sont Brutus, THC Hydra, Cain et Abel, etc.

  • La meilleure défense contre les attaques de devinettes de mot de passe à distance est d'utiliser des mots de passe forts qui ne sont pas faciles à deviner

Pénétration à distance du service réseau Linux

  • Le canal d'attaque le plus important: la pénétration et l'exploitation des vulnérabilités de sécurité des services réseau

  • Comprend principalement

    • Attaque de pile de protocoles réseau dans le noyau Linux

    • Attaque de service réseau sur le site Web de LAMP WEB

    • FTP, Samba et autres attaques de service de partage de fichiers

    • Attaque de service d'envoi et de réception d'e-mails

    • Attaques sur d'autres services réseau: tels que OpenSSH, OpenSSL, NFS, etc.

  • Les mesures préventives comprennent:

    • Désactivez tous les services réseau inutiles

    • Essayez de choisir des protocoles réseau et des logiciels de service plus sûrs, et déployez en utilisant les meilleures pratiques de sécurité

    • Mettre à jour la version du service réseau à temps

    • Utilisez xinetd, un pare-feu pour ajouter un mécanisme de contrôle d'accès réseau pour les services réseau Linux

    • Établir un processus de détection des intrusions et de planification des interventions d'urgence

Attaquer les programmes clients et les utilisateurs Linux

  • Attaquer le programme client de la plateforme Linux

    • Attaques courantes de navigateur Web et attaques de client de messagerie

  • Attaquer les utilisateurs du système Linux

    • Google piratant les administrateurs de serveur pour obtenir tous les aspects des informations d'administrateur
  • Mesures préventives

    • Mettre à jour le logiciel à temps

    • Améliorer sa propre capacité anti-fraude

    • Lors du téléchargement du logiciel, passez par le canal de téléchargement officiel et vérifiez MD5

Attaquer les routeurs et écouteurs Linux

  • Attaquer les routeurs Linux et les pare-feu

    • Lorsque le mode routeur est en cours d'exécution, il peut être utilisé par un attaquant pour mener une attaque par déni de service

  • Écouteur d'attaque et détecteur d'intrusion

    • Le logiciel open source comprend principalement la bibliothèque de capture de paquets libpcap, le programme de ligne de commande tcpdump, Wireshark, Snort, etc.

  • Précautions de sécurité contre les attaques de routeur et d'auditeur

    • Les administrateurs réseau créent un sentiment de confrontation de sécurité et de jeu

    • Soyez conscient de la sécurité et de la disponibilité du réseau et des équipements de sécurité

    • Du point de vue d'un attaquant, essayez un test d'attaque de pénétration

Technologie d'attaque et de défense de sécurité locale du système Linux

Linux local elévation de privilèges

  • Le moyen le plus simple d'augmenter les privilèges est de pouvoir déchiffrer le mot de passe de l'utilisateur root, puis d'exécuter la commande SU ou sudo pour mettre à niveau

  • Le deuxième moyen d'escalade de privilèges consiste à découvrir et à exploiter les failles de sécurité dans les programmes SU ou sudo

  • À l'heure actuelle, le moyen le plus populaire consiste à attaquer directement n'importe quel code du programme privilégié Root pour exécuter Zidong et à les laisser ouvrir une connexion de ligne de commande Shell avec des privilèges root pour l'attaquant. Attaquer l'escalade de privilèges du code du noyau Linux

  • La dernière technologie d'escalade de privilèges locale tire parti de certaines erreurs de configuration du système, en recherchant dans le système des fichiers sensibles et des emplacements de répertoires accessibles en écriture globale et en les utilisant

Disparaître sur le système Linux

  • Affichez le contenu du fichier de configuration /etc/syslog.conf pour comprendre les types d'événements d'audit actuellement mis en œuvre par le système et où les journaux sont stockés

  • Dans le répertoire / var / log, les attaquants doivent souvent modifier les fichiers journaux tels que messages, authe, cure, wtmp et xferlog

  • L'attaquant doit également nettoyer l'historique des commandes entrées dans le programme Shell. De nombreux programmes shell dans le système Linux enregistrent les commandes historiques qui ont été exécutées pour fournir la fonction de récupération et d'exécution répétée de commandes.

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

  • Les principaux types sont:

    • Programme système cheval de Troie

    • Outil de porte dérobée en ligne de commande: Fournit un accès distant au shell de ligne de commande, utilise généralement Netcat et d'autres outils de porte dérobée pour s'exécuter sur le système, ouvre un port TCP pour écouter et revient sur un système Linux après réception de la demande

    • Le shell interagit avec le client.

    • Outil de porte dérobée graphique: Le plus couramment utilisé est le logiciel gratuit de télécommande graphique VNC.

2. Processus de pratique

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

Utilisez le logiciel de test de pénétration Metasploit pour attaquer la vulnérabilité de sécurité du service Samba usermap_script sur la machine cible Linux et obtenir des autorisations d'accès hôte à la machine cible Linux cible. Les étapes pratiques sont les suivantes:

(1) Démarrez le logiciel Metasploit, vous pouvez utiliser l'un des msfconsole. Msfgui. Msfweb selon vos préférences personnelles;

(2) Utilisez exploit: exploit / multi / samba / usermap_script pour pénétrer le module d'attaque;

(3) Sélectionnez PAYLOAD comme shell distant (les connexions directes et inverses peuvent être utilisées);

(4) Définir les paramètres d'attaque par pénétration (RHOST, LHOST, TARGET, etc.);

(5) Effectuer des attaques de pénétration:

(6) Vérifiez si le shell distant est correctement obtenu et vérifiez les autorisations obtenues.

Hôte Adresse IP
fois 192.168.200.2
Métasploitable2 192.168.200.125

Utilisez le logiciel de test de pénétration Metasploit pour attaquer la vulnérabilité de sécurité du service Samba usermap_script sur la machine cible Linux et obtenir des autorisations d'accès à l'hôte pour la machine cible Linux cible

  • Tapez kalimsfconsole

  • Attaque de pénétration, entrez pour use exploit/multi/samba/usermap_scriptsélectionner le module d'attaque de pénétration pour la vulnérabilité usermap_script, affichez la charge utile disponible, entrezshow payloads

  • set payload cmd/unix/bind_netcatUtilisez ensuite l'outil netcat pour exécuter Shell une fois l'attaque de pénétration réussie, et liez-le à un port d'écoute via netcat.

  • Affichez les paramètres à configurer, saisissez show optionset configurez le jeu d'adresses IP de l'hôte cible RHOST 192.168.200.125

  • Démarrez l'entrée d'attaque exploitet vérifiez que l'autorisation root de la machine cible a été obtenue

Travaux pratiques: expérience de confrontation offensive et défensive

  • Attaquant: utilisez Metasploit pour sélectionner les vulnérabilités trouvées dans la machine cible Metasploitable pour mener des attaques de pénétration, prendre le contrôle à distance et essayer d'obtenir des autorisations root supplémentaires.

  • Défenseur: utilisez Wireshark pour surveiller et obtenir le fichier de paquets d'attaque réseau et combinez Wharkshark pour analyser le processus d'attaque, obtenir l'adresse IP de l'attaquant, l'adresse IP et le port cibles, le temps de lancement de l'attaque, la vulnérabilité d'exploitation des attaques, utiliser le shellcode et exécuter localement après le succès Entrée de commande et autres informations.

  • Tout d'abord, utilisez nmap pour analyser le portnmap -p0-65535 -sV 192.168.200.4

  • Après l'avoir vérifié, jetons un œil au premier vsftpd-2.3.4, il existe une porte dérobée malveillante dans la version antérieure de vsftpd-2.3.4, puis nous utilisons pour nmap --script=vuln 192.168.200.125 vérifier s'il existe des vulnérabilités courantes. Bien sûr

  • Utilisez le use exploit/unix/ftp/vsftpd_234_backdoormodule d'attaque par pénétration, puis regardez ses paramètres, définissez les paramètres d'attaque, RHOST est l'adresse cible de la machine définie RHOST 192.168.200.125.

  • Attaque directe avec exploit de paramètres

Défenseur

  • Grâce à l'analyse du trafic des paquets et du contenu du paquet, on peut voir que l'IP de l'attaquant est 192.168.200.2, l'IP cible est 192.168.200.125 et le port est sur le port 21.

  • Le temps de déclenchement de l'attaque peut être vu sur la figure. À partir du chiffre 3, l'attaquant commence à essayer de se connecter au port 21 de la cible

  • Vulnérabilités exploitées par l'attaque: Au début, mon port cible pour l'attaque était 21, ce qui était une attaque contre la vulnérabilité Vsftpd 2.3.4.

  • Shellcode utilisé dans le processus de capture Wireshark, nous pouvons voir shellcode, d' abord id de déterminer leurs propres droits, alors nohup >/dev/null 2>&1, la sortie de la sortie standard et l' erreur est redirigé vers ensemble /dev/null, puis à echo echo cZyuPTDirlCot0aEécrire une chose, pour obtenir d' autres autorisations

  • Commandes exécutées localement après l'attaque: À partir du flux de capture de paquets, nous pouvons voir chaque commande de l'attaquant. Les commandes whoami et ls sont transmises en texte clair.

3. Problèmes rencontrés dans l'apprentissage et les solutions

  • Question: Je veux trouver une échappatoire commune. . Vous ne pouvez pas recommencer depuis le début!
  • Solution au problème: nmap est vraiment une encyclopédie!

4. Résumé de la pratique

Avec la dernière expérience pratique, cette fois je me sens à l'aise. . .

Les références

Je suppose que tu aimes

Origine www.cnblogs.com/dsqblog/p/12740340.html
conseillé
Classement