Cyber Security: ollama-assisted Nmap

From OnnoWiki
Revision as of 10:30, 22 April 2025 by Onnowpurbo (talk | contribs) (Created page with "Integrasi '''Nmap dengan Ollama''' memungkinkan kamu membangun '''asisten pentest otomatis''' yang bisa menjalankan scanning dan menjelaskan hasilnya menggunakan kemampuan LLM...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Integrasi Nmap dengan Ollama memungkinkan kamu membangun asisten pentest otomatis yang bisa menjalankan scanning dan menjelaskan hasilnya menggunakan kemampuan LLM seperti LLaMA3, Mistral, atau model open-source lainnya.


Rekomendasi Model Ollama

Gunakan model LLaMA3 atau OpenChat karena:

  • LLaMA3 (Meta) sangat baik dalam reasoning dan memahami instruksi teknis.
  • OpenChat lebih ringan, cepat, dan cocok untuk command-line assistant.
  • Untuk penggunaan lokal, gunakan model kecil (7B) untuk efisiensi.

Tujuan Integrasi Nmap + Ollama

  • Jalankan Nmap dari Python.
  • Kirim hasil scanning ke Ollama (LLM) untuk dijelaskan.
  • Dapatkan insight atau rekomendasi eksploitasi/pemeriksaan lanjut dari LLM.


Langkah Integrasi (Python Script)

1. Install Library

pip install ollama

Pastikan juga Nmap sudah terinstall:

sudo apt install nmap

2. Script Python-nya

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_about_scan(scan_result, model='llama3'):
    prompt = f"""
Berikut adalah hasil scan Nmap:

{scan_result}

Jelaskan secara singkat kerentanan potensial, port yang terbuka, dan rekomendasi langkah selanjutnya untuk penetrasi lanjutan.
"""
    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 Analisis dari Ollama \n")
    explanation = ask_ollama_about_scan(scan_result)
    print(explanation)

3. Contoh Output

Masukkan IP target: 192.168.0.101

Lalu Ollama akan membalas:

> Port 22 terbuka, menjalankan SSH. Versi OpenSSH 7.2p2 rentan terhadap CVE-2016-0777. Disarankan update versi...
> Port 80 terbuka, HTTP server Apache. Coba lakukan dirb/bruteforce untuk menemukan path tersembunyi...

Tips Tambahan

  • Bisa ditambahkan `nmap -sV -p-` untuk full port scan.
  • Bisa dikembangkan lebih lanjut agar Ollama menyarankan exploit (integrasi ke Metasploit?).
  • Bisa digabung dengan `rich` untuk output warna dan format CLI lebih menarik.


Pranala Menarik