Console kerja untuk assessment teknis, simulasi eksekusi, live console, evidence, dan report dalam satu dashboard internal
PANAH dipakai sebagai panel otomasi assessment untuk tim pentest atau lab internal yang ingin menjalankan modul teknis dari host server tanpa memindahkan workflow operator ke terminal sepanjang waktu.
Repository ini dibuat sebagai console kerja untuk tim pentest internal yang ingin menjalankan asesmen teknis dari server lab secara terpusat.
Tujuan utamanya:
- menyediakan antarmuka yang lebih rapi untuk menjalankan asesmen teknis;
- membatasi target ke range yang memang diizinkan;
- menampilkan hasil ke dalam live console, timeline, evidence, dan report;
- memudahkan operator membuka dashboard dari browser mesin lain di jaringan internal;
- menjaga assessment tetap berada dalam guardrail backend, bukan shell bebas dari browser.
PANAH berperan pada sisi assessment teknis. Jika temuan sudah perlu orkestrasi operasional atau ticketing formal, alurnya dapat dilanjutkan ke SATRIA dan PERISAI.
Console ini cocok untuk:
- operator lab internal yang menjalankan tool dari server Kali Linux;
- tim red team yang ingin satu panel untuk workflow asesmen;
- assessor yang ingin membuka dashboard dari laptop, tetapi tool dieksekusi di server;
- engineer lab yang butuh deployment yang mudah dipindahkan antar host.
Dalam ekosistem kerja SITP saat ini:
PANAHberfokus pada assessment teknis dan otomasi simulasi.SATRIAberfokus pada registrasi aset, orkestrasi scan, gate decision, dan ticket publish.PERISAIatau IRIS berfokus pada case management, task, evidence, dan investigasi insiden.
Dengan pola ini, PANAH menjadi sumber awal assessment teknis sebelum hasilnya diolah lebih lanjut di layer operasional.
- Guardrail target berbasis approved ranges atau subnet yang diizinkan.
- Module catalog berbasis fase kill chain atau kategori assessment.
- Full simulation chain sesuai execution profile.
- Live Console, Timeline, dan Evidence dalam panel terpisah.
- Severity summary yang mengikuti evidence yang benar-benar ditampilkan.
- Report view untuk membuka ringkasan hasil job aktif.
- Panel recent jobs untuk review job terakhir.
- Approved ranges editor dengan proteksi password.
- Tampilan login dummy dan header branding yang diselaraskan dengan ekosistem SITP.
-
TargetOperator mengisi target utama seperti IP, host, atau domain sesuai jenis assessment. -
Target KindMenentukan kategori target, misalnyaipatau jenis lain sesuai modul yang aktif. -
Module ProfileMenentukan kedalaman eksekusi sepertifast,balanced, ataudeep. -
Run Full Simulation ChainMenjalankan alur asesmen berantai sesuai profile yang dipilih. -
Advanced SettingsMenyediakan approved ranges dan guardrail tambahan untuk eksekusi harian. -
Module CatalogMenampilkan modul assessment, deskripsi singkat, dan command preview. -
Recent JobsMenampilkan job terkini beserta tombol lihat hasil, hapus, atau review. -
ConsoleMenampilkan output teknis real time dari job yang sedang dipilih. -
EvidenceMenampilkan highlight hasil penting yang bisa dipakai untuk review cepat. -
ReportMenampilkan hasil ringkas dalam format yang lebih nyaman dibaca operator atau reviewer.
Alur kerja PANAH dirancang sederhana:
- source code di-clone ke server lab;
- aplikasi dibangun dan dijalankan dengan Docker Compose;
- backend FastAPI menjalankan workflow assessment yang sudah disetujui;
- operator membuka dashboard dari browser;
- job dieksekusi di host server;
- output dikonversi menjadi console, timeline, evidence, severity, dan report.
Dengan pola ini, server lab dipakai sebagai execution environment, sedangkan browser operator dipakai untuk UI dan review hasil.
redteam-console-kali/
|-- backend/
| |-- assets.py
| |-- catalog.py
| |-- lab_config.py
| |-- main.py
| |-- store.py
| |-- workflow.py
| |-- wahidin_check_headers.py
| `-- data/
|-- .dockerignore
|-- .gitignore
|-- Dockerfile
|-- docker-compose.yml
|-- index.html
|-- script.js
|-- styles.css
|-- logo.png
|-- lab-ranges.json
|-- requirements.txt
`-- README.md
Ringkasnya:
backend/main.pyadalah entry point backend FastAPI.backend/catalog.pymemuat definisi modul dan profile eksekusi.backend/store.pymenangani penyimpanan job.backend/lab_config.pymengelola konfigurasi approved ranges.index.html,script.js, danstyles.cssmenangani UI dashboard.Dockerfilemenyusun image beserta dependency yang dibutuhkan modul.docker-compose.ymlmenjadi jalur utama agar user lain cukup build dan start dari repo.
Minimum yang disarankan di host tujuan:
- Kali Linux server
- Docker Engine
- Docker Compose plugin
- Git
Install dasar jika belum tersedia:
sudo apt update
sudo apt install -y docker.io docker-compose-plugin git
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp dockerCatatan:
- setelah
usermod -aG docker $USER, login ulang biasanya membantu jika group belum terbaca; - port default lokal repo ini adalah
4080; - pada deployment terpusat, port dapat dipetakan berbeda sesuai kebutuhan lingkungan.
Di server tujuan:
git clone <URL-REPO-GITHUB-ANDA>
cd redteam-console-kali
docker compose up -d --build
docker compose psLalu akses dari browser:
http://IP_SERVER:4080
Contoh lokal:
http://localhost:4080
Build dan start:
docker compose up -d --buildLihat status:
docker compose psLihat log:
docker compose logs -fStop:
docker compose downStart ulang tanpa rebuild:
docker compose up -dUrutan pakai yang disarankan:
- pastikan container sudah aktif;
- buka dashboard dari browser ke IP server;
- isi target yang berada dalam approved ranges;
- pilih
Module Profile:fastuntuk validasi cepat;balanceduntuk baseline umum;deepuntuk observasi lebih lengkap;
- jalankan modul tunggal atau full chain;
- pantau hasil di:
ConsoleTimelineEvidenceReport
- bila hasil perlu diteruskan secara operasional, gunakan SATRIA sebagai layer berikutnya.
Data runtime disimpan di:
backend/data/untuk database dan hasil simpan lokal;lab-ranges.jsonuntuk approved ranges dan profil lab.
docker-compose.yml sudah me-mount file dan folder tersebut, jadi data tetap bertahan walau container di-recreate.
Target dibatasi agar operator hanya bekerja pada subnet yang diotorisasi.
File utama:
- lab-ranges.json
Contoh isi:
{
"allowed_subnets": [
"10.10.10.0/24",
"192.168.56.0/24"
]
}Catatan:
- tombol
Simpan Rangesdilindungi password; - backend tetap punya fallback konfigurasi jika file range bermasalah;
- ini penting agar repo aman dipakai bersama dalam lab.
Repo ini dirancang untuk memetakan output tool menjadi evidence yang lebih mudah dibaca operator. Area modul yang sudah disiapkan antara lain:
- service discovery;
- web fingerprinting;
- web security header audit;
- content discovery;
- TLS dan DNS baseline review;
- workflow evidence dan timeline.
Image Docker dapat meng-install tool penting seperti:
nmapffufgobusteramassniktosqlmapwhatwebhydrajohnhashcatimpacketsslyzednsxhttpxnuclei
Skenario yang pernah diverifikasi untuk memastikan repo ini bisa dipindahkan ke host lain:
- salin repo ke direktori bersih;
- jalankan
docker compose build --no-cache; - jalankan
docker compose up -d; - cek health container;
- cek endpoint
GET /api/jobs.
Hasil verifikasi:
- build sukses dari source;
- container berhasil
healthy; - endpoint aplikasi merespons
200; - folder
backend/data/otomatis terisi database saat aplikasi hidup.
Jika dashboard tidak terbuka:
- cek
docker compose ps; - cek
docker compose logs -f; - pastikan port
4080tidak dipakai service lain; - pastikan firewall server mengizinkan akses ke port yang dipakai;
- cek apakah Anda membuka
http://IP_SERVER:4080, bukanlocalhost, jika akses dilakukan dari mesin lain.
Jika build gagal:
- pastikan internet server aktif;
- pastikan Docker daemon hidup;
- coba ulang dengan
docker compose build --no-cache.
Jika modul tidak menghasilkan data yang lengkap:
- cek apakah target berada di subnet yang diizinkan;
- cek apakah target memang merespons;
- cek tab
Consoleuntuk melihat command dan error yang muncul.
- Gunakan repo ini hanya untuk lab yang telah diotorisasi.
- Jangan memperluas target di luar approved ranges tanpa persetujuan yang jelas.
- Jangan menganggap UI ini sebagai pengganti analisis manual; ini adalah akselerator workflow.
- Bila hasil assessment perlu ditindaklanjuti secara formal, pindahkan orkestrasi dan ticketing ke SATRIA serta PERISAI.
developed with love by cakgup
