1 poin oleh foundcake21 2026-04-13 | Belum ada komentar. | Bagikan ke WhatsApp

Halo. Saya seorang mahasiswa yang sedang menempuh studi di jurusan keamanan informasi.

Saya sering menggunakan kali-mcp untuk pekerjaan otomatisasi pentest / pengujian trafik / CTF, tetapi saat menjalankan beberapa agen secara bersamaan saya mengalami bottleneck, jadi saya mencoba mengimplementasikannya ulang sendiri dengan Go.

GitHub: https://github.com/found-cake/kali-mcp-go


Struktur dan keterbatasan kali-mcp yang ada

Versi aslinya diimplementasikan dengan Flask + Python, dan kelas CommandExecutor memiliki struktur yang membuat subprocess.Popen untuk setiap permintaan lalu tambahan menjalankan 2 daemon thread untuk membaca stdout/stderr masing-masing.

Untuk agen tunggal ini sudah memadai, tetapi ketika permintaan serentak menumpuk di lingkungan multi-agent, muncul masalah seperti berikut.

  • Single worker bawaan Flask — agen saling memblokir
  • Overhead pembuatan proses + thread untuk setiap permintaan
  • Agen salah mengira keterlambatan respons sebagai timeout lalu mencoba ulang pekerjaan yang sama

Perubahan utama

Server

  • Sebelumnya: Flask (single worker bawaan)
  • Diubah: Fiber v3 / fasthttp — konkurensi penuh

Pengumpulan output

  • Sebelumnya: readline loop dengan 2 daemon thread
  • Diubah: sinkronisasi dengan 2 goroutine + WaitGroup, sehingga waktu pengumpulan stdout/stderr selaras dengan jelas dan diproses tanpa kehilangan output

timeout/cancel

  • Sebelumnya: process.wait(timeout=...) + kill paksa
  • Diubah: berbasis context — pipe juga ditutup dengan akurat

File sementara Metasploit

  • Sebelumnya: hardcoded /tmp/mks_msf_resource.rc — berpotensi race condition saat permintaan serentak
  • Diubah: os.CreateTemp — diproses aman dengan nama file unik untuk setiap permintaan

Dukungan tshark

  • Sebelumnya: tidak ada
  • Diubah: menambahkan endpoint khusus

Arsitektur

Saya mempertahankan struktur 2-tier yang sama seperti sebelumnya, sambil mengganti bagian internalnya.

[AI Client]  →(MCP stdio)→  [mcp-client]  →(HTTP + Bearer token)→  [kali-server]  →(exec)→  [nmap, tshark, ...]  

Belum ada komentar.

Belum ada komentar.