Projects & ToolsLayihələr və Alətlər

Custom offensive security tools, scripts, and automation utilities I am building for vulnerability assessments.

Penetration testing, avtomatlaşdırma və zəifliklərin kəşfiyyatı üçün hazırladığım xüsusi alətlər və skriptlər.

Static analysis for missing authorization checks in WordPress pluginsWordPress pluginlərində çatışmayan icazə yoxlamaları üçün statik analiz

Finds AJAX and REST API handlers that are reachable without a nonce, capability, or ownership check. Most PHP static analyzers are taint-based — they track user input to a dangerous sink — but missing authorization has no data flow to trace; the bug is the absence of a check. This tool instead models WordPress's own hook/permission system directly: it resolves every callback to its full body, scans for known auth checkpoints, and flags entry points where none exist, including a heuristic pass for IDOR-shaped access. Validated against real CVEs (Plugin Optimizer, Simply Schedule Appointments) with zero false positives, and against a ~9,000-file corpus including WooCommerce, Elementor and WPForms to keep clean codebases clean.

Nonce, icazə (capability) və ya sahiblik yoxlaması olmadan əlçatan olan AJAX və REST API handler-lərini tapır. Əksər PHP statik analizatorları taint-əsaslıdır — istifadəçi girişini təhlükəli "sink"ə qədər izləyir — amma çatışmayan icazə yoxlamasının izlənəcək data axını yoxdur; buq elə yoxlamanın olmamasıdır. Bu alət əvəzinə birbaşa WordPress-in öz hook/icazə sistemini modelləşdirir: hər callback-i tam body-sinə qədər həll edir, məlum auth checkpoint-lərini axtarır və heç birinin olmadığı giriş nöqtələrini işarələyir, IDOR-formalı girişlər üçün heuristik yoxlama da daxil olmaqla. Real CVE-lər üzərində (Plugin Optimizer, Simply Schedule Appointments) sıfır yalnış-pozitiv nəticə ilə, həmçinin WooCommerce, Elementor və WPForms daxil olmaqla ~9,000 fayllıq korpus üzərində doğrulanıb.

  • Six detection patterns — nopriv AJAX with no checkpoint, missing/weak REST permission_callback, privileged handlers gated only by a nonce, site-wide-nonce object access, and an IDOR ownership heuristic
  • Altı aşkarlama pattern-i — checkpoint-siz nopriv AJAX, çatışmayan/zəif REST permission_callback, yalnız nonce ilə "qorunan" imtiyazlı handler-lər, site-wide nonce ilə obyekt girişi və IDOR sahiblik heuristikası
  • Every finding carries a confidence level — Firm for a structural absence, Candidate for a heuristic match that needs human review
  • Hər tapıntı confidence səviyyəsi daşıyır — struktur baxımından aydın olanlar üçün Firm, insan yoxlaması tələb edən heuristik uyğunluqlar üçün Candidate
  • Text, JSON, or self-contained HTML reports — exits non-zero on any HIGH severity finding for CI gating
  • Text, JSON, ya da özündə tam olan HTML hesabatlar — CI gating üçün istənilən HIGH severity tapıntısında qeyri-sıfır exit code
$git clone https://github.com/FaridNarimanov/wp-plugin-auditor && cd wp-plugin-auditor && pip install -r requirements.txt

All-in-one recon aggregator for the early stages of a pentestPentest-in ilkin mərhələləri üçün hərtərəfli recon aqreqatoru

Give it a domain, IP, or CIDR range and it orchestrates subfinder, httpx, naabu, nmap, whatweb and feroxbuster into a single pipeline, each stage feeding the next, then renders the results as a colorized terminal summary plus JSON and self-contained HTML reports. Nine additional pure-Go modules run automatically afterward — DNS brute-force, JS endpoint extraction, origin-IP discovery behind CDNs, Wayback URL history, WAF fingerprinting, S3/GCS bucket probing, and passive-to-aggressive Active Directory detection (DNS SRV records, then LDAP anonymous bind, SMB null-session enumeration, and Kerberos user enumeration). Written in Go using only the standard library — external tools are invoked via os/exec, so building it pulls in no third-party modules, and every module is fault-tolerant: a missing tool or timeout is recorded in the report and the pipeline keeps going.

Domen, IP və ya CIDR aralığı ver, o da subfinder, httpx, naabu, nmap, whatweb və feroxbuster-i tək bir pipeline-da ardıcıl işlədir (hər mərhələ növbətini bəsləyir), sonra nəticələri rəngli terminal xülasəsi, JSON və özündə tam olan HTML hesabat kimi göstərir. Bundan sonra doqquz əlavə saf-Go modulu avtomatik işə düşür — DNS brute-force, JS endpoint çıxarılması, CDN arxasında origin-IP kəşfi, Wayback URL tarixçəsi, WAF fingerprinting, S3/GCS bucket yoxlaması və passiv-dən aqressivə Active Directory aşkarlaması (DNS SRV qeydləri, sonra LDAP anonim bind, SMB null-session sayılması və Kerberos istifadəçi sayılması). Yalnız standart kitabxana istifadə edərək Go-da yazılıb — xarici alətlər os/exec vasitəsilə çağırılır, ona görə build zamanı heç bir üçüncü tərəf modulu yüklənmir; hər modul xəta-davamlıdır — çatışmayan alət və ya timeout hesabatda qeyd olunur, pipeline isə davam edir.

  • Six-stage core pipeline (subdomain discovery → live-host/tech-detect → fast port scan → deep service detection → CMS fingerprint → content discovery), each stage's output feeding the next
  • Altı mərhələli əsas pipeline (subdomain kəşfi → canlı host/tech-detect → sürətli port skan → dərin servis aşkarlaması → CMS fingerprint → məzmun kəşfi), hər mərhələnin çıxışı növbətini bəsləyir
  • Zero configuration by default — key-optional sources (Shodan, Censys) activate automatically when their environment variables are set, otherwise skipped with a note in the report
  • Default olaraq sıfır konfiqurasiya — key-optional mənbələr (Shodan, Censys) yalnız environment dəyişənləri təyin olunduqda avtomatik aktivləşir, əks halda hesabatda qeydlə keçilir
  • CIDR scans require a typed authorization confirmation before anything runs; --aggressive gates full-port scans, active DNS brute-force, and AD/Kerberos enumeration behind an explicit flag
  • CIDR skanları başlamazdan əvvəl yazılı təsdiq tələb edir; --aggressive tam-port skanları, aktiv DNS brute-force və AD/Kerberos sayılmasını ayrıca flag arxasında saxlayır
$git clone https://github.com/FaridNarimanov/reconductor && cd reconductor && go build -o reconductor ./cmd/reconductor

Git history secrets scanner with live validationCanlı doğrulama ilə git tarixçəsi sirlər skaneri

Finds hardcoded secrets across a git repository's entire history — including ones deleted in a later commit — and checks which of them still work. Deleting a secret in a follow-up commit does not remove it from the repository; it stays in the object database, reachable by anyone who clones. Where most scanners stop at detection, secretpulse goes further: each candidate is validated against its provider's own read-only API and reported as ACTIVE, DEAD, or UNKNOWN.

Git repozitorisinin bütün tarixçəsində (sonrakı commit-lərdə silinmiş olsa belə) hardcoded sirləri tapır və onların hələ də işlək olub-olmadığını yoxlayır. Bir sirri sonrakı commit-də silmək onu repozitoridən çıxarmır — o, obyekt bazasında qalır və reponu klonlayan hər kəs üçün əlçatandır. Əksər skanerlər aşkarlamaqla kifayətlənir, secretpulse isə bir addım irəli gedir: tapılan hər namizəd öz provayderinin read-only API-si ilə doğrulanır və ACTIVE, DEAD, ya da UNKNOWN kimi hesabat verilir.

  • Detects GitHub PATs, AWS access/session keys, Stripe, Slack, SendGrid and Google API keys — pattern-based, no entropy noise
  • GitHub PAT, AWS access/session açarları, Stripe, Slack, SendGrid və Google API açarlarını aşkarlayır — pattern-əsaslı, entropy "gurultusu" olmadan
  • Live validation via each provider's read-only API — every request identifies itself honestly, nothing is modified or revoked
  • Hər provayderin read-only API-si ilə canlı doğrulama — hər sorğu özünü dürüst təqdim edir, heç nə dəyişdirilmir və ya ləğv edilmir
  • CI/CD gating with --fail-on-active — fails the build only on a confirmed live credential, never on UNKNOWN
  • --fail-on-active ilə CI/CD gating — build yalnız təsdiqlənmiş canlı credential tapılanda uğursuz olur, UNKNOWN-da heç vaxt
$go install github.com/FaridNarimanov/secretpulse/cmd/secretpulse@latest

REST API authorization scanner — BOLA/IDOR, JWT bypass, mass assignmentREST API səlahiyyət skaneri — BOLA/IDOR, JWT bypass, mass assignment

A CLI scanner that tests a REST API for authorization vulnerabilities straight from an OpenAPI/Swagger spec and a set of test identities: BOLA/IDOR (one user reaching another user's objects), broken JWT authentication (alg:none, unsigned tokens, kid header injection), and mass assignment (write endpoints accepting privilege-sensitive fields the client should never control). It parses the spec, discovers which endpoints require auth, and fires cross-user, forged-token, and over-posted requests at them — authorization is exactly the class of bug a spec alone cannot reason about, since it takes actually trying one user's token against another user's data to know.

OpenAPI/Swagger spesifikasiyası və test identity dəstindən istifadə edərək REST API-ni səlahiyyət zəiflikləri üzrə test edən CLI skaneri: BOLA/IDOR (bir istifadəçinin başqasının obyektinə çatması), pozulmuş JWT autentifikasiyası (alg:none, imzalanmamış token-lər, kid header injection) və mass assignment (client-in heç vaxt idarə etməməli olduğu imtiyaz-həssas sahələri qəbul edən yazma endpoint-ləri). Spesifikasiyanı oxuyur, hansı endpoint-lərin autentifikasiya tələb etdiyini müəyyən edir və onlara cross-user, saxta token və "over-posted" sorğular göndərir — səlahiyyət tam olaraq spesifikasiyanın tək başına həll edə bilmədiyi bug tipidir, çünki bunu bilmək üçün həqiqətən bir istifadəçinin token-ini başqasının datası üzərində sınamaq lazımdır.

  • BOLA/IDOR findings require both a 200 status and the victim's own identifier present in the attacker's response — a raw 200 alone is never enough
  • BOLA/IDOR tapıntıları həm 200 statusu, həm də qurbanın öz identifikatorunun hücumçunun cavabında olmasını tələb edir — tək başına 200 status heç vaxt kifayət deyil
  • JWT module tests alg:none, unsigned and weakly-signed tokens, expired-token acceptance, and kid injection — with tampered-signature and anonymous controls first, so a public endpoint can't masquerade as a bypass
  • JWT modulu alg:none, imzalanmamış/zəif imzalanmış token-ləri, müddəti bitmiş token qəbulunu və kid injection-u test edir — əvvəlcə saxta-imza və anonim kontrol sorğuları göndərilir ki, ictimai endpoint bypass kimi görünməsin
  • Findings scored Critical/High/Medium, mass-assignment persistence verified via re-fetch where possible — always asks for scope confirmation before sending any test traffic
  • Tapıntılar Critical/High/Medium olaraq bal alır, mass-assignment persistence mümkün olduqda yenidən sorğu ilə təsdiqlənir — hər hansı test trafiki göndərilmədən əvvəl həmişə əhatə dairəsinin təsdiqini soruşur
$git clone https://github.com/FaridNarimanov/bolahunter && cd bolahunter && go build -o bolahunter ./cmd/bolahunter