Cyber Security: ollama-assisted Nmap auto-exploit suggestion
Jump to navigation
Jump to search
Keren! Kita lanjut ke versi auto-exploit suggestion
Tujuan
- Jalankan Nmap
- Kirim hasilnya ke LLM (Ollama)
- LLM memberi saran eksploitasi otomatis berdasarkan versi layanan, port, CVE
- (Opsional) Tambahkan saran eksploit dari Exploit-DB atau Metasploit module
Langkah Integrasi Auto-Exploit Suggestion
1. 'Struktur Prompt ke LLM:
Kita akan ubah prompt agar model berpikir seperti seorang penetration tester senior:
prompt = f""" Act like a senior penetration tester. Berikut hasil scan Nmap: {scan_result} 1. Identifikasi port terbuka dan service-nya 2. Temukan CVE atau kerentanan dari versi layanan tersebut 3. Berikan saran eksploitasi untuk masing-masing service (bisa berupa nama eksploit Metasploit atau teknik manual) 4. Berikan urutan prioritas eksploitasi (mana dulu yang sebaiknya diuji) Format jawaban: * Port: * Service: * CVE (jika ada): * Saran Eksploitasi: * Prioritas: """
2. Versi Script Update
import subprocess import ollama def run_nmap_scan(target): print(f"Scanning target: {target}") result = subprocess.run(["nmap", "-sV", target], capture_output=True, text=True) return result.stdout def ask_ollama_for_exploit_suggestions(scan_result, model='llama3'): prompt = f""" Act like a senior penetration tester. Berikut hasil scan Nmap: {scan_result} 1. Identifikasi port terbuka dan service-nya 2. Temukan CVE atau kerentanan dari versi layanan tersebut 3. Berikan saran eksploitasi untuk masing-masing service (bisa berupa nama eksploit Metasploit atau teknik manual) 4. Berikan urutan prioritas eksploitasi (mana dulu yang sebaiknya diuji) Format jawaban: * Port: * Service: * CVE (jika ada): * Saran Eksploitasi: * Prioritas: """ response = ollama.chat(model=model, messages=[ {"role": "user", "content": prompt} ]) return response['message']['content'] if __name__ == "__main__": target_ip = input("Masukkan IP target: ") scan_result = run_nmap_scan(target_ip) print("\n Hasil Nmap \n") print(scan_result) print("\n Auto Exploit Suggestion \n") exploit_suggestions = ask_ollama_for_exploit_suggestions(scan_result) print(exploit_suggestions)
3. Contoh Output (LLM Expected Output)
- Port: 21
- Service: FTP (vsftpd 2.3.4)
- CVE: CVE-2011-2523
- Saran Eksploitasi: Gunakan Metasploit module `exploit/unix/ftp/vsftpd_234_backdoor`
- Prioritas: Tinggi
- Port: 80
- Service: Apache httpd 2.2.8
- CVE: CVE-2007-6421
- Saran Eksploitasi: Directory traversal, coba exploit manual atau `exploit/multi/http/apache_mod_cgi_bash_env_exec`
- Prioritas: Sedang
Next Step (Opsional Tingkat Lanjut)
Kita bisa:
- Otomatis mencocokkan versi dengan CVE via API ExploitDB
- Tambahkan fungsi `searchsploit` ke script:
sudo apt install exploitdb
def search_exploit(service_version): result = subprocess.run(["searchsploit", service_version], capture_output=True, text=True) return result.stdout
Mau Tambahin Apa Lagi?
- Integrasi Metasploit langsung dari Python?
- Ekspor hasil ke laporan PDF?
- Buat antarmuka CLI interaktif?
- Tambah voice input ("Scan 192.168.0.101")?