FRONTMATTER_345_# Ricerca Foglio di formaggio¶
HTML_TAG_28_ __HTML_TAG_29_ Tutti i comandi_HTML_TAG_30
Panoramica¶
SearchSploit è uno strumento di ricerca in linea di comando per ExploitDB che ti permette di prendere una copia dell'ExploitDB con te ovunque tu vada. SearchSploit ti dà il potere di eseguire ricerche dettagliate off-line attraverso la copia localmente controllata del repository. Questa capacità è particolarmente utile durante gli impegni di test di penetrazione in cui la connettività internet può essere limitata o quando è necessario cercare rapidamente attraverso migliaia di exploit senza contare su interfacce web.
Warning: SearchSploit offre accesso a exploit reali che possono causare danni ai sistemi. Usa solo questi exploit contro i sistemi che possiedi o hai esplicito permesso scritto per testare. L'uso non autorizzato delle imprese può violare le leggi e i regolamenti locali.
Installazione¶
Kali Linux Installazione¶
Traduzione:
## Ubuntu/Debian Installazione¶
Traduzione:
Installazione manuale¶
Traduzione:
Installazione Docker¶
Traduzione:
Uso di base¶
Ricerca semplice¶
Traduzione:
Opzioni di ricerca avanzate¶
Traduzione:
CVE e Vulnerability Searchs¶
Traduzione:
Date-based Searches¶
Traduzione:
Formattazione dell'uscita e visualizzazione¶
Formati di output¶
Traduzione:
Filtro e limitazione dei risultati¶
Traduzione:
Contare risultati totali¶
ricercasploit apache|wc -l
Conteggio per piattaforma¶
ricercasploit apache|grep -c linux ricercasploit apache|grep -c windows
Conta per tipo¶
ricercasploit apache|grep -c remoto ricercasploit apache|grep -c locale
Estrarre piattaforme uniche¶
ricercasploit -j apache|jq -r '.RESULTS_EXPLOIT[]. Piattaforma |sort|uniq - C
Estrarre gli autori unici¶
ricercasploit -j apache|jq -r '.RESULTS_EXPLOIT[]. Autore/i - C Traduzione:
Copia exploit nella directory corrente¶
ricercasploit -m 50383
Copiare più exploit¶
ricercasploit -m 50383,50384.50385
Copia exploit nella directory specifica¶
ricercasploit -m 50383 -o /tmp/exploits/
Copia con nome file originale conservato¶
ricercasploit -m exploits/linux/local/50383.c
Copia tutti gli exploit dai risultati di ricerca¶
ricercasploit -j apache|jq -r '.RESULTS_EXPLOIT[]. EDB-ID -5 - Sì.
Strumenti di copia batch¶
echo "50383,50384.50385" Traduzione:
Visualizza il contenuto di exploit¶
ricercasploit -x 50383
Apri exploit nell'editor predefinito¶
ricercasploit -e 50383
Visualizza exploit con evidenziazione della sintassi¶
ricercasploit -m 50383 && cat 50383.c|highlight --syntax=c
Visualizza i metadati¶
ricercasploit -j apache|jq '.RESULTS_EXPLOIT[]|select(.["EDB-ID"] == "50383") '
Informazioni sull'estratto exploit¶
ricercasploit -p 50383 Traduzione:
Creare struttura di directory organizzata¶
mkdir -p exploits/{windows,linux,web,mobile}
Copia exploit per piattaforma¶
ricercasploit --platform windows -j|jq -r '.RESULTS_EXPLOIT[].["EDB-ID"]'|head -10|xargs -I {} searchsploit -m {} -o exploits/windows/
Copia exploit per tipo¶
ricercasploit --type webapps -j|jq -r '.RESULTS_EXPLOIT[].
Creare l'inventario exploit¶
apache_exploits.csv Traduzione:
Update ExploitDB database¶
ricercasploit - Si'.
Aggiornamento forza (overwrite modifiche locali)¶
cd /opt/exploitdb && git reset --hard && git pull
Controllare gli aggiornamenti senza applicare¶
cd /opt/exploitdb && git fetch && git status
Aggiornare ramo specifico¶
cd /opt/exploitdb && git pull origin main
Verifica l'aggiornamento¶
ricercasploit --stats Traduzione:
Visualizza statistiche del database¶
ricercasploit --stats
Mostra il percorso del database¶
ricercasploit --percorso
Controlla l'integrità del database¶
ricercasploit - Controllo.
Ricostruire l'indice dei database¶
ricercasploit - Ricostruire
Mostra informazioni sulla versione¶
ricercasploit --versione
Mostra informazioni sull'aiuto¶
ricercasploit - Aiuto. Traduzione:
Pulire i file temporanei¶
trovare /opt/exploitdb -name "*.tmp" -delete
Controllare l'utilizzo del disco¶
du -sh /opt/exploitdb
Database di backup¶
tar -czf exploitdb_backup_$(data +% Y%m%d).tar.gz /opt/exploitdb
Ripristinare il database dal backup¶
tar -xzf exploitdb_backup_20231201.tar.gz -C /
Verifica database dopo manutenzione¶
ricercasploit - Controllo. Traduzione:
¶
Valutazione automatizzata della vulnerabilità utilizzando SearchSploit¶
Traduzione: OUTPUT_DIR="searchsploit_assessment_\((data +% Y%m%d_%H%M%S)" RELAZION_FILE="\)OUTPUT_DIR/vulnerability_assessment_report.html"
se [ -z "\(TARGET_LIST" ]||[! -f "\)TARGET_LIST"] echo "Usage: $0 __HTML_TAG_34_" echo "Target list file dovrebbe contenere un software/servizio per linea" eco "Esempio: 'Apache 2.4.7', 'Windows 10', 'PHP 7.4'" uscita 1
¶
mkdir -p "$OUTPUT_DIR"
Funzione per valutare il singolo obiettivo¶
valutazione_target() target locale="\(1" target_dir="\)OUTPUT_DIR/\((echo "\)target"|tr ' /' '_')"
echo "[+] Valutazione: $target"
mkdir -p "$target_dir"
Cerca per gli exploit¶
ricercasploit -j "\(target" > "\)target_dir/search_results.json"
se [ -s "$target_dir/search_results.json" ]; allora
Parse e analizzare i risultati¶
python3 << EOF import json import os from collections import defaultdict
Read search results¶
with open('$target_dir/search_results.json', 'r') as f: data = json.load(f)
exploits = data.get('RESULTS_EXPLOIT', []) shellcodes = data.get('RESULTS_SHELLCODE', [])
print(f" [+] Found {len(exploits)} exploits and {len(shellcodes)} shellcodes")
if not exploits and not shellcodes: print(f" [-] No exploits found for: $target") exit(0)
Analyze exploits¶
analysis = { 'target': '$target', 'total_exploits': len(exploits), 'total_shellcodes': len(shellcodes), 'platforms': defaultdict(int), 'types': defaultdict(int), 'years': defaultdict(int), 'severity_assessment': 'Unknown', 'high_priority_exploits': [] }
for exploit in exploits: platform = exploit.get('Platform', 'Unknown') exploit_type = exploit.get('Type', 'Unknown') date = exploit.get('Date', '') title = exploit.get('Title', '').lower()
analysis['platforms'][platform] += 1
analysis['types'][exploit_type] += 1
if date:
year = date.split('-')[0]
analysis['years'][year] += 1
# Identify high-priority exploits
if any(keyword in title for keyword in ['remote', 'rce', 'privilege', 'escalation', 'buffer overflow']):
analysis['high_priority_exploits'].append(exploit)
Assess severity¶
total_exploits = len(exploits) high_priority_count = len(analysis['high_priority_exploits']) remote_count = analysis['types'].get('remote', 0)
if high_priority_count > 5 o remote_count > 3: analisi['severity_assessment] = 'Critical ' elif high_priority_count > 2 o telecomandi > 1: analisi['severity_assessment] = 'High ' elif total_exploits > 5: analisi['severity_assessment] = 'Medium ' Altro: analisi['severity_assessment] = 'Low'
Salva analisi¶
con aperto('$target_dir/analysis.json', 'w') come f: json.dump(analysis, f, indent=2, default=str)
stampa(f) [+] Valutazione della gravità: {analisi['severity_assessment']}] stampa(f) [+] Sfrutta l'alta priorità: {high_priority_count} EOF
Scarica gli exploit ad alta priorità¶
se [ -f "$target_dir/analysis.json" ]; allora Python << EOF import json
with open('$target_dir/analysis.json', 'r') as f: analysis = json.load(f)
high_priority = analysis.get('high_priority_exploits', [])[:10] # Limit to 10
if high_priority: with open('$target_dir/priority_exploits.txt', 'w') as f: for exploit in high_priority: f.write(f"{exploit.get('EDB-ID', '')}\n") EOF
# Download priority exploits
if [ -f "$target_dir/priority_exploits.txt" ]; then
while read -r edb_id; do
if [ -n "$edb_id" ]; then
searchsploit -m "$edb_id" -o "$target_dir/" 2>/dev/null
¶
Fatto __HTML_TAG_37_
Traduzione: __HTML_TAG_40_SearchSploit Rapporto di valutazione della vulnerabilità_HTML_TAG_41___ Traduzione: Traduzione: __HTML_TAG_45_SearchSploit Rapporto di valutazione della vulnerabilità_HTML_TAG_46___ __HTML_TAG_47_Generated: \{datetime.now().strftime('%Y-%m-%d %H:%M:%S') Traduzione:| _High Risk Targets_HTML_TAG_86_ | \{severity_counts.get(' Altissimo. Traduzione: |
_HTML_TAG_136_Risk Livello:_HTML_TAG_137_ \{analysis.get('severity_assessment', 'Unknown')\}_HTML_TAG_138___
_HTML_TAG_140__Total Risultati:\{analysis.get('total_exploits', 0)
_HTML_TAG_144__High-Priority Exploits:__HTML_TAG_145_ __HTML_TAG_147_Platform Ripartizione:_HTML_TAG_148___
""
con apertura('$REPORT_FILE', 'w') come f: f.write (html_content)
stampa(f)[+] Rapporto completo generato: $REPORT_FILE") EOF
¶
Funzione per generare sommario CSV¶
genera_csv_summary() echo "[+] Generando sommario CSV"
csv_file="$OUTPUT_DIR/vulnerability_summary.csv"
eco "Target,Total_Exploits, Totale_Codici dello schermo,Severity,High_Priority_Exploits,Top_Platform,Top_Type" > "$csv_file"
per analisi_file in "\(OUTPUT_DIR"/*/analysis.json; do se [ -f "\)analysis_file" ]; allora Python __HTML_TAG_166_> "$csv_file"
echo "[+] CSV sommario generato: $csv_file"
¶
Esecuzione principale¶
echo "[+] Avviare la valutazione automatizzata delle vulnerabilità" echo "[+] Lista di destinazione: $TARGET_LIST" echo "[+] directory di output: $OUTPUT_DIR"
Controllare le dipendenze¶
Se! comando -v searchsploit &> /dev/null; poi echo "[-] SearchSploit non trovato. Si prega di installare ExploitDB prima." uscita 1
¶
Elaborare ogni obiettivo¶
Totale_targets=0 successo_assessments=0
mentre legga -r bersaglio; fare
Salta linee vuote e commenti¶
Traduzione: < continua
Total_targets=$(total_targets + 1))
se valuta_target "\(target"; allora successo_valutazioni=\)(successo_valutazioni + 1))
¶
Piccolo ritardo per evitare di schiacciare il sistema¶
sonno 1
< "$TARGET_LIST"
echo "[+] Assessment completed" echo " Total targets: $total_targets" echo " Successful assessments: $successful_assessments"
Generate reports¶
generate_report generate_csv_summary
echo "[+] Vulnerability assessment completed" echo "[+] Results saved in: $OUTPUT_DIR" echo "[+] Open $REPORT_FILE for detailed report" __CODE_BLOCK_17__bash
!/bin/bash¶
Automated exploit collection and organization¶
COLLECTION_NAME="\(1" SEARCH_TERMS="\)2" OUTPUT_DIR="exploit_collection_\(\{COLLECTION_NAME\}_\)(date +%Y%m%d_%H%M%S)"
if [ -z "\(COLLECTION_NAME" ]||[ -z "\)SEARCH_TERMS" ]; then
echo "Usage: $0
¶
mkdir -p "$OUTPUT_DIR"
Funzione per raccogliere exploit per il termine di ricerca¶
Raccolta delle informazioni() ricerca locale_term="\(1" term_dir="\)OUTPUT_DIR/\((echo "\)search_term"|tr ' /' '_')"
echo "[+] Raccogliere exploit per: $search_term"
mkdir -p "$term_dir"
Cerca e salva i risultati¶
ricercasploit -j "\(search_term" > "\)term_dir/search_results.json"
se [! -s "$term_dir/search_results.json" ]; allora eco " [-] Nessun exploit trovati per: $search_term" ritorno 1
¶
Parse and categorize exploits¶
Python __HTML_TAG_169_= 2022: # Regolare in base all'anno corrente categorie['recent'].append(exploit)
Salvare i dati categorizzati¶
per categoria, exploits_list in categorie.items(): se exploits_list: categoria_dir = f'$term_dir/{category} ' os.makedirs(category_dir, exist_ok=True)
con apertura (f'{category_dir}/exploits.json', 'w') come f: json.dump(exploits_list, f, indent=2)
Crea elenco download¶
con apertura (f'{category_dir}/download_list.txt', 'w') come f: per exploit in exploits_list[:20]: # Limita a 20 per categoria f.write(f){exploit.get('EDB-ID', '')\\n)
stampa(f) [+] {category}: {len(exploits_list)} exploits)
stampa(f) [+] Categorizzazione completata per $search_term") EOF
Scarica gli exploit per categoria¶
per categoria_dir in "\(term_dir"/*; do se [ -d "\)category_dir" ] && [-f "\(category_dir/download_list.txt" ]; allora categoria_name=\)(nome base "$category_dir") echo " [+] Scarica $category_name exploits"
mentre legga -r edb_id; do se [ -n "\(edb_id"]; allora ricercasploit -m "\)edb_id" -o "$category_dir/" 2>/dev/null
¶
Fatto < "$category_dir/download_list.txt" fi done
return 0
}
Function to create collection index¶
create_collection_index() { echo "[+] Creating collection index"
local index_file="$OUTPUT_DIR/collection_index.html"
python3 << EOF
import json import os import glob from datetime import datetime from collections import defaultdict
Collect all exploit data¶
all_exploits = [] term_stats = defaultdict(lambda: defaultdict(int))
for results_file in glob.glob('$OUTPUT_DIR/*/search_results.json'): term_name = os.path.basename(os.path.dirname(results_file))
try:
with open(results_file, 'r') as f:
data = json.load(f)
exploits = data.get('RESULTS_EXPLOIT', [])
all_exploits.extend(exploits)
# Calculate statistics
term_stats[term_name]['total'] = len(exploits)
for exploit in exploits:
platform = exploit.get('Platform', 'Unknown')
exploit_type = exploit.get('Type', 'Unknown')
term_stats[term_name]['platforms'][platform] += 1
term_stats[term_name]['types'][exploit_type] += 1
except:
continue
Generate HTML index¶
html_content = f"""
Exploit Collection: $COLLECTION_NAME
_ __HTML_TAG_180_Generated: \{datetime.now().strftime('%Y-%m-%d %H:%M:%S')\}_HTML_TAG_181__ __HTML_TAG_182_Search Termini: $SEARCH_TERMSTotal Risultati_HTML_TAG_190_____________________________