Skip to main content

keris

keris adalah toolkit pentest web black-box dari CLI. Isi satu URL, keris mengerjakan recon, discovery, scan kerentanan, sampai laporan dalam satu perintah. Lahir dari pengetesan nyata ke situs produksi (Next.js/Vercel, PHP/LiteSpeed, React SPA), jadi pilihan default-nya dibuat sopan: tidak asal hantam target, anti kena ban.

    /\
   /  \
  / /\ \
 / /  \ \
 \ \__/ /
  \____/
     ||

"Keris" itu belati Jawa. Kecil, tajam, dan tugasnya satu: uji apakah sesuatu bisa ditembus. Kalau tidak, ya tidak. Datanya tetap ada di laporan.

PyPI CI Python License

Isi cepat

pip install keris-toolkit        # atau: pip install -r requirements.txt

# Scan penuh: recon + discovery + kerentanan + laporan Markdown
keris scan https://example.com -o report.md

# Sekalian JSON (buat CI) dan HTML
keris scan https://example.com -o report.md \
    --json-output report.json --html report.html

Coba dalam 30 detik dengan server demo yang memang sengaja bocor:

python tests/demo_vuln_server.py        # 127.0.0.1:8099, penuh lubang
python -m keris scan http://127.0.0.1:8099 -o demo.md --hidden-endpoints

Ada UI-nya juga

serve memunculkan halaman lokal di http://127.0.0.1:8181. Tempel link, tekan Scan. Scan berjalan di belakang, progress dan lognya streaming ke browser, laporan bisa diunduh dalam Markdown / HTML / PDF / JSON.

python -m keris serve

Dua tombol yang sering dipakai:

  • CARIKRITIKAL - langsung menyalakan semua modul plus serangan aktif yang berizin, lalu memfilter hasil ke yang CRITICAL/HIGH saja.
  • Uji DoS - tes ketahanan app-layer (slowloris / slow POST / flood terukur) dengan batas durasi dan request. Wajib centang izin tertulis.

Satu scan per waktu, ada tombol hentikan. UI tetap di 127.0.0.1; jangan pernah di-expose ke publik.

Perintah

34 subcommand. Yang sering dipakai:

Perintah Kerjaannya
scan Pipeline lengkap: recon + discovery + scan + laporan
recon / passive DNS, security headers, stack detection; passive = crt.sh + whois tanpa menyentuh target
discover / hidden / params Ekstraksi endpoint API, brute direktori/subdomain, cari endpoint admin/.env/backup, parameter tersembunyi
fuzz / openapi Fuzzing parameter ringan, import spec Swagger lalu fuzz endpointnya
jwt / ports / tls / dns / buckets / waf Token JWT, port scanner, TLS, email security (SPF/DMARC/DKIM), bucket S3/GCS publik, fingerprint WAF
crawl / graphql / smuggling / takeover Peta attack surface, testing GraphQL, request smuggling, subdomain takeover
cachepoison / hostheader / websocket Web cache poisoning, host header injection (termasuk password-reset poisoning), WebSocket auth & Origin
jsanalysis / sensitive Sink DOM XSS + secret di bundle JS, paparan data sensitif (kredensial/PII/kartu)
bruteforce / platforms Login lemah (form/basic), check khusus WordPress/Laravel/dll
project Self-audit kode sumber lokal; output JSON ramah AI agent
retest Diff scan lama vs baru untuk ngukur progres perbaikan
export / dashboard Temuan jadi curl/Burp XML, gabung laporan JSON jadi dashboard HTML
dos Uji ketahanan app-layer (khusus berizin, wajib --yes)
serve Web UI lokal
plugins / init Check kustom sendiri, contoh keris.json

Semua scan default menyertakan: SQLi, XSS, SSRF, IDOR, rate-limit, directory listing, auth bypass, CORS, open redirect, cookie flags, TLS, security.txt, plus modul cache poisoning / host header / WebSocket / JS analysis / sensitive / hidden endpoints / fuzz.

Serangan aktif

Modul berikut mengirim payload. Wajib --authorized (atau --yes untuk DoS) dan hanya untuk target yang Anda miliki atau punya izin tertulis.

# Auto-exploit SQLi/CMDI/SSTI/XSS (konfirmasi + exploit otomatis)
python -m keris scan https://example.com --authorized --exploit

# Extended brute + username enumeration
python -m keris bruteforce https://app.example.com --authorized --extended

# CVE/PoC probe sesuai platform yang terdeteksi
python -m keris scan https://example.com --authorized --exploit-cve

Autentikasi

Bearer token, cookie session, basic auth, sampai auto-login lewat form HTML (sesi ditangkap untuk seluruh scan):

python -m keris scan https://app.example.com --token eyJhbGciOi...
python -m keris scan https://app.example.com --cookie "session=abc123"
python -m keris scan https://app.example.com --login-username admin --login-password hunter2
python -m keris scan https://example.com --proxy http://127.0.0.1:8080

Laporan

Setiap temuan diberi skor CVSS v3.1 (vektor + base score) dan kategori OWASP Top 10 (2021). Laporan Markdown menyerupai laporan pentest manual: ringkasan eksekutif, tabel severitas, profil target, security headers, temuan lengkap dengan bukti, lalu rekomendasi.

python -m keris scan https://example.com -o report.md \
    --html report.html --pdf report.pdf --json-output out.json

Lainnya:

  • Retest: keris retest jan.json feb.json -o retest.md mengelompokkan temuan jadi fixed / new / persisting dan mencetak persentase progres. Exit code bukan nol kalau masih ada yang baru atau belum diperbaiki, jadi bisa jadi gerbang CI "apakah fix-nya sudah landed?".
  • Export: temuan jadi script curl atau session Burp XML.
  • Dashboard: gabung beberapa --json-output jadi satu HTML.
  • Webhook: Slack / Discord / Telegram.
  • Exit code: 0 bersih, 1 ada temuan >= threshold (--exit-on, default high), 2 error.

Kebiasaan yang sudah dibangun-in

  • Sopan secara default: preset fast / stealth / aggressive, delay, workers, dan backoff adaptif saat deteksi 429/403. Scan tidak asal ngebut biar IP Anda tidak kena blokir.
  • Rate-limit aware: retry tidak pernah untuk HTTP 5xx, supaya SQLi berbasis error tidak tertutupi.
  • Konfigurasi via keris.json: python -m keris init untuk contoh; flag CLI selalu menang atas file.

Instalasi

pip install keris-toolkit         # cukup. semua dependensi ikut.
keris --help

# Dari source (buat development):
git clone https://github.com/dexpie/keris.git
cd keris
pip install -e ".[dev]"           # + dependensi test

Dependensi: PyYAML, PySocks, reportlab, dnspython, cryptography, certifi, requests, websocket-client.

Docker juga bisa:

docker build -t keris .
docker run --rm -v "$PWD:/work" keris scan https://example.com -o /work/report.md

Kerja dengan Keris

python -m keris scan https://example.com --exit-on high     # CI gate
python -m keris scan --targets targets.txt --json-output all.json  # banyak target
python -m keris scan https://example.com --no-discover --no-bruteforce --no-plugins

# Development
python -m pytest tests -q
ruff check keris tests

Scan otomatis tiap PR

Tersedia workflow contoh di .github/workflows/scan-pr.yml. Cara pakainya: tulis https://url-target di body PR (atau komentar /scan <url>), workflow menginstall keris-toolkit, menjalankan scan, lalu mengomentari ringkasan temuan di PR. Artifact laporan lengkap ikut tersimpan.

Struktur

keris/
├── keris/
│   ├── __main__.py        # CLI (34 subcommand)
│   ├── payloads.py        # payload SQLi/XSS/SSRF/CMDI/SSTI + daftar wordlist
│   ├── cvss.py            # CVSS v3.1 scoring + OWASP mapping
│   ├── report*.py         # Markdown / HTML / PDF / dashboard
│   ├── ui.py              # web UI lokal (http.server, tanpa dependensi)
│   ├── core/              # http client (auth, proxy, backoff), config, logger, utils
│   ├── modules/           # 30+ scanner: recon sampai dos, exploit, plugins
│   └── data/              # wordlist direktori & subdomain
├── plugins/               # contoh plugin (Python + JSON)
├── tests/                 # pytest suite + server demo yang sengaja bocor
├── Dockerfile
└── docker-compose.yml

Roadmap

  • Pipeline scan penuh + laporan
  • Passive recon, form auto-login, fuzzing, preset kecepatan
  • JWT, port scan, OpenAPI, brute-force, platform checks
  • Project self-audit (untuk AI agent)
  • Wayback, DNS/email security, bucket cloud, TLS
  • WAF, hidden parameter, export curl/Burp, webhook, dashboard
  • DoS resilience test (authorized-only)
  • Hidden endpoint, crawler, GraphQL
  • Subdomain takeover & request smuggling
  • Auto-exploit + CVE probes (authorized only)
  • Cache poisoning, host header, WebSocket, JS analysis
  • Sensitive data scan, retest workflow
  • CVSS + OWASP di semua format laporan
  • Web UI dengan scan satu-klik dan uji DoS

Gunakan hanya pada sistem yang Anda miliki atau yang sudah memberi izin tertulis. Modul serangan aktif (exploit, CVE, brute-force extended, DoS) wajib konfirmasi eksplisit. Semua risiko ada di pemakai.


MIT - pakai, pelajari, perbaiki. Kontribusi dipersilakan, lihat CONTRIBUTING.md. Cari celah keamanan di Keris sendiri? Lapor lewat SECURITY.md.

Keris dibangun untuk pentester, bug bounty hunter, DevOps, dan AI coding agent yang mau hasil konsisten tanpa harus menghafal 30 tool berbeda. Kalau ada tanggapan atau permintaan fitur, jangan ragu.

Metadata

Release files for keris-toolkit 0.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for keris-toolkit 0.3.2
File Size Uploaded Provenance Actions
keris_toolkit-0.3.2.tar.gz 116.4 kB With provenance Details for keris_toolkit-0.3.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for keris-toolkit 0.3.2
File Interpreter ABI Platform Actions
keris_toolkit-0.3.2-py3-none-any.whl Python 3 none any Details for keris_toolkit-0.3.2-py3-none-any.whl

Total release size: 244.1 kB

Release files / keris_toolkit-0.3.2.tar.gz

Download URL keris_toolkit-0.3.2.tar.gz
Size 116.4 kB
Tags Source
SHA-256 checksum
How to use checksums
7e01a32efaa7512446a9d17af04b17035fa7a52fe30e1ec26aee0513f1804684
BLAKE2b-256 checksum
How to use checksums
8f62b100d310a4ecf66d9e59380650d097de09e7c064e51edcc510beb5d83d51
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 14, 2026.

Transparency log

Release files / keris_toolkit-0.3.2-py3-none-any.whl

Download URL keris_toolkit-0.3.2-py3-none-any.whl
Size 127.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ae6ad59877ac5dd708241fb510b72f1071b34e8b33ab5761e013718aa3de8b57
BLAKE2b-256 checksum
How to use checksums
3025fd672e17e2b24dbe88e380861520f356dd084a20bf28d7ddba8d8e7913dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 14, 2026.

Transparency log

Security for keris-toolkit 0.3.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for keris_toolkit-0.3.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 14, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page