LinuxVérifier
Outil d'intervention d'urgence Linux/collecte d'informations/détection de vulnérabilité, prend en charge la configuration de base/trafic réseau/plan de tâches/variables d'environnement/informations utilisateur/Services/bash/fichiers malveillants/rootkit du noyau/SSH/Webshell/fichiers miniers/processus minier/fourniture 70+ inspections dans 13 catégories, y compris les risques chaîne/serveur
renouveler
Journal de mise à jour : 20 avril 2024
- Ajuster la sortie au rapport Markdown
- Abandonnez ag et utilisez la commande grep native de Linux pour éviter une installation supplémentaire
- Optimisez le format du code, plus besoin de tee -a pour chaque ligne
- Mettre à jour la logique de détection Webshell
- Mettre à jour la logique de détection des clés_autorisées
- Server Risk Check ajoute les vérifications du serveur HTTP JDWP et Python
- Ajouter la détection de conteneur Docker
- Ajouter la détection de porte dérobée PAM
- Ajoutez une capacité de téléchargement de rapports locaux pour faire face aux urgences des machines par lots.
Journal de mise à jour : 5 août 2022
- Résoudre le problème du trop grand nombre de journaux de vérification des modules du noyau
Journal de mise à jour : 07 mars 2022
- Ajouter la détection de porte dérobée de connexion logicielle SSH
Date de mise à jour : 17 octobre 2021
- Ajout de la détection des chevaux de Troie miniers Ntpclient/WorkMiner/TeamTNT
- Ajouter une logique de détection du module Rootkit
- Ajouter la détection d'empoisonnement des pips Python
- Ajoutez $HOME/.profile pour afficher
- Ajouter une vérification des risques du serveur (Redis)
Fonction
- Vérification de la configuration de base
- Vérification des modifications de la configuration du système
- Informations système (adresse IP/utilisateur/heure de démarrage/version du système/nom d'hôte/SN du serveur)
- Utilisation du processeur
- Informations sur l'utilisateur de connexion
- Processeur TOP 15
- Mémoire TOP 15
- Vérifier l'espace disque restant
- Support de disque dur
- Vérifications logicielles couramment utilisées
- /etc/hots
- Inspection réseau/trafic
- siconfig
- trafic réseau
- Port d'écoute
- Port ouvert
- connexion réseau
- État de la connexion TCP
- table de routage
- Acheminement et transfert
- Serveur DNS
- ARP
- Vérification du mode promiscuité de la carte réseau
- pare-feu iptables
- Vérification du plan de tâches
- Plan de tâches de l'utilisateur actuel
- /etc/planification des tâches système
- Heure de création du fichier de planification des tâches
- dépannage de la porte dérobée crontab
- Vérification des variables d'environnement
- env
- chemin
- LD_PRELOAD
- LD_ELF_PRELOAD
- LD_AOUT_PRELOAD
- PROMPT_COMMAND
- LD_LIBRARY_PATH
- ld.so.preload
- Vérification des informations utilisateur
- Utilisateurs pouvant se connecter
- date de modification du fichier passwd
- sudoers
- Informations de connexion (avec dernier/dernier journal)
- IP de connexion historique
- Chèque de services
- Service d'exécution SystemD
- Heure de création du service SystemD
- vérification bash
- Histoire
- Audit des commandes historiques
- /etc/profil
- $HOME/.profil
- /etc/rc.local
- ~/.bash_profile
- ~/.bashrc
- coquille de rebond
- Vérification des documents
- ...fichiers cachés
- Détection de l'heure de modification du fichier système
- Vérification des fichiers temporaires (/tmp /var/tmp /dev/shm)
- alias
- vérification d'autorisation spéciale suid
- Fichier de processus introuvable
- mheure des modifications de fichiers au cours des sept derniers jours
- cheure des modifications apportées au fichier au cours des sept derniers jours
- Fichier volumineux > 200 Mo
- Audit de fichiers sensibles (nmap/sqlmap/ew/frp/nps et autres outils courants pour les pirates)
- Fichiers de pirates suspects (programmes tels que wget/curl téléchargés par des pirates informatiques ou programmes malveillants remplacés par des logiciels normaux tels que des fichiers nps vers mysql)
- Vérification du rootkit du noyau
- module suspect lsmod
- Vérification de la table des symboles du noyau
- vérification du chasseur de rootkits
- vérification du module rootkit .ko
- Vérification SSH
- Explosion SSH
- Détection SSHD
- Configuration de la porte dérobée SSH
- Vérification de la porte dérobée SSH inetd
- Clé SSH
- Vérification du shell Web
- vérification du shell Web php
- vérification du shell Web jsp
- Vérification des fichiers/processus de minage
- Vérification des fichiers miniers
- Vérification du processus minier
- Détection WorkMiner
- Détection du client Ntp
- Inspection d’empoisonnement de la chaîne d’approvisionnement
- Vérification d'empoisonnement Python PIP
- Vérification des risques du serveur
- Détection de mot de passe faible Redis
- Détection des services JDWP
- Détection du serveur http Python
- Vérification des autorisations Docker
Usage
La première façon : installer via git clone
git clone https://github.com/al0ne/LinuxCheck.git
chmod u+x LinuxCheck.sh
./LinuxCheck.sh
La deuxième méthode : appeler directement en ligne [vous ne pouvez pas utiliser la capacité de téléchargement de rapport si vous appelez en ligne]
bash -c "$(curl -sSL https://raw.githubusercontent.com/al0ne/LinuxCheck/master/LinuxCheck.sh)"
Le fichier sera enregistré au format ipaddr_hostname_username_timestamp.log
Les rapports sont automatiquement téléchargés
S'il est livré aux machines batch, le script sera automatiquement soumis à une certaine URL après l'exécution. Remplacez le webhook_url dans le script par votre propre adresse.
# 报告上报的地址
webhook_url= ' http://localhost:5000/upload '
upload_report () {
# 上传到指定接口
if [[ -n $webhook_url ]] ; then
curl -X POST -F " file=@ $filename " " $webhook_url "
fi
}
Utilisez Flask pour démarrer un service sur votre serveur afin de recevoir le rapport Markdown signalé par le serveur.
from flask import Flask , request
app = Flask ( __name__ )
@ app . route ( '/upload' , methods = [ 'POST' ])
def upload_file ():
if 'file' not in request . files :
return "No file part" , 400
file = request . files [ 'file' ]
if file . filename == '' :
return "No selected file" , 400
if file :
filename = file . filename
file . save ( filename )
return "File successfully uploaded" , 200
if __name__ == '__main__' :
app . run ( debug = True , host = "0.0.0.0" , port = 9999 )
se référer à
La rédaction de cet outil fait principalement référence aux outils/articles suivants et est complétée sur la base d’une expérience personnelle.
Linenum https://github.com/lis912/Evaluation_tools
https://ixyzero.com/blog/archives/4.html
https://github.com/T0xst/linux
https://github.com/grayddq/GScan