
Strumento di risposta alle emergenze Linux/raccolta informazioni/rilevamento vulnerabilità, supporta oltre 70 controlli in 13 categorie come configurazione di base/traffico di rete/pianificazione attività/variabili d'ambiente/informazioni utente/Services/bash/file dannosi/Rootkit del kernel/SSH/Webshell/file di mining/processi di mining/catena di approvvigionamento/rischi del server, ecc.
Strumento per la risposta alle emergenze Linux / raccolta informazioni / rilevamento vulnerabilità. Supporta oltre 70 controlli in 13 categorie: configurazione di base, traffico di rete, pianificazione attività, variabili d'ambiente, informazioni utente, servizi, bash, file malevoli, rootkit del kernel, SSH, webshell, file di mining, processi di mining, supply chain, rischi del server, ecc.
Registro modifiche: 20 aprile 2024
tee -a per ogni rigaRegistro modifiche: 5 agosto 2022
Registro modifiche: 7 marzo 2022
Data aggiornamento: 17 ottobre 2021
Primo metodo: installazione tramite git clone
git clone https://github.com/al0ne/LinuxCheck.git
chmod u+x LinuxCheck.sh
./LinuxCheck.sh
Secondo metodo: esecuzione diretta online [con l'esecuzione online non è possibile utilizzare la funzionalità di caricamento dei report]
bash -c "$(curl -sSL https://raw.githubusercontent.com/al0ne/LinuxCheck/master/LinuxCheck.sh)"
Il file viene salvato nel formato ipaddr_hostname_username_timestamp.log
Se si distribuisce su più macchine, dopo l'esecuzione lo script invierà automaticamente il report a un URL. Modificare webhook_url nello script con il proprio indirizzo.
# Indirizzo per l'invio del report
webhook_url='http://localhost:5000/upload'
upload_report() {
# Carica all'endpoint specificato
if [[ -n $webhook_url ]]; then
curl -X POST -F "file=@$filename" "$webhook_url"
fi
}
Avviare un servizio Flask sul proprio server per ricevere i report Markdown inviati dai server.
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)
La scrittura di questo strumento si è basata principalmente sui seguenti strumenti/articoli, integrati con l'esperienza personale.
Linenum
https://github.com/lis912/Evaluation_tools
https://ixyzero.com/blog/archives/4.html
https://github.com/T0xst/linux
https://github.com/grayddq/GScan