剑庭安
首页
黑客安全首页全部安全栏目 黑客技术黑客技术、渗透测试、漏洞利用工具与教程 安全软件安全工具、扫描器、检测与审计软件 病毒分析恶意软件分析、样本、逆向与沙箱 CTF思路CTF 题目、writeup、解题思路与工具 防护思路防御技术、加固、检测响应与蓝队 红蓝攻防红队攻击模拟、蓝队对抗、攻防演练 漏洞知识库漏洞、CVE、PoC、EXP 与安全研究
逆向|反编译
PHP源码PHP 网站源码、程序、系统 APP源码安卓/iOS APP 源码 ASP源码ASP 网站源码与程序 NET源码.NET 网站源码与系统 小程序源码微信/支付宝小程序源码 Dedecms风格模板Dedecms 织梦风格模板 Empirecms风格模板EmpireCMS 帝国风格模板 Discuz商业模板/插件Discuz 商业模板与插件 WordPress主题/插件WordPress 主题与插件 其它源码、模板其它各类源码与模板 游戏源码游戏源码与引擎项目 加密货币源码加密货币、区块链、钱包、USDT/比特币相关源码与工具 手游源码手机游戏源码、服务端、客户端与引擎项目 传奇源码热血传奇、传奇世界、复古传奇等客户端/服务端/引擎源码 页游源码网页游戏、H5 游戏、浏览器游戏源码 端游源码电脑单机游戏、PC 网游客户端/服务端源码
最新万能免驱动支持所有型号打印机下载程序 日历天气老黄历 · 每天同步真实日期与天气
站长工具站长工具 自助开通会员浏览该分类 其他资源qtziy SEO工具SEO工具 站群源码站群源码 泛程序泛程序 蜘蛛模板蜘蛛模板 蜘蛛池蜘蛛池 外链工具外链工具
搜索 自助开通会员🔓 破甲 API
登录 注册
首页 分类列表 CTF思路 recon-deck - Offline pentest…
recon-deck - Offline pentest workflow tracker — turns nmap outp CTF思路 点击放大
作者:admin 发布:2026-10-06

recon-deck - Offline pentest workflow tracker — turns nmap outp

项目说明<di="center">🎉🛰️  recon-deck v2.5.0 is live!  🎉The opt-in AI co-pilot release — paste nmap, get an AI-assisted a…
资源可下载 免费下载 0 条讨论
会员资源
开通会员后即可下载全部资源。
登录后开通会员
会员方案
308浏览量
0讨论
2下载链接
可下载资源状态
内容可验证
更新 2026-10-06
人工审核发布
评论区答疑

recon-deck - Offline pentest workflow tracker — turns nmap outp

recon-deck - Offline pentest workflow tracker — turns nmap outp

项目说明

<di="center">

🎉🛰️ &nbsp;recon-deck v2.5.0 is live!&nbsp; 🎉

The opt-in AI co-pilot release — paste nmap, get an AI-assisted attack plan. 100% offline by default.

</div>

> 🚀 What it brings: &nbsp; 🤖 AI co-pilot — Explain scan output & Suggest next commands (local-first, suggest-ne) &nbsp;·&nbsp; 🧭 cross-host attack plan &nbsp;·&nbsp; 🎓 Exam Mode (one toggle off for exams) &nbsp;·&nbsp; 🌐 web-augmented :online C lookups &nbsp;·&nbsp; 💸 usage & cost analytics &nbsp;·&nbsp; 🧩 stack/ KB. &nbsp; → &nbsp;Full release notes

---

<di="center">

🛰️ recon-deck

From nmap output to an actionable, port-aware recon checklist in under 30 seconds.
Offline. Self-hosted. Every engagement export-ready as Markdown.

![License: MIT](LICENSE)
![](CHANGELOG.md)
![Schema](src/lib/db/migrations/)
![GHCR]()
![Next.js]()
![Offline-first](SECURITY.md)

</div>

---

Paste nmap text / XML / greppable output — or drag in an AutoRecon results/ zip — and every open port becomes a card with pre-filled commands (IP interpolated), HackTricks links, tickable checks, e screenshots, and a notes field.

Built for OSCP / HTB students and solo pentesters who currently juggle 8 browser tabs and a scratch Obsidian file per box.

<di="center">

![Watch the 50-second demo]()

<sub><i>▶ <a href=" the 50-second demo</a> — paste nmap → drill into a port → tick checks → switch ports.</i></sub>

<br><br>

<img src="docs/media/heatmap.gif" alt="recon-deck port heatmap — paste nmap and every open port becomes a risk-colored card with prefilled commands and tickable checks" width="1100">
<br>
<sub><i>Paste nmap → every open port becomes a KB-driven card: prefilled commands, risk colors, tickable checks. <a href="docs/screenshots/">More screenshots →</a></i></sub>
</div>

<br>

---

✨ See it in action

<table>
<tr>
<td width="50%" ="top">
<b>🤖 AI “Explain” <sub>(opt-in)</sub></b><br>
<sub>Local-first co-pilot streams what a service is and what to check next — it only e, never runs.</sub><br><br>
<img src="docs/media/ai-explain.gif" alt="AI explain a port" width="100%">
</td>
<td width="50%" ="top">
<b>🧭 Cross-host attack plan</b><br>
<sub>One ordered plan across every host — which box to hit first, and why.</sub><br><br>
<img src="docs/media/cross-host.gif" alt="cross-host attack plan" width="100%">
</td>
</tr>
<tr>
<td width="50%" ="top">
<b>💸 Bring your own model</b><br>
<sub>Ollama (local) · OpenAI · OpenRouter — even FREE models, with a live cost estimate.</sub><br><br>
<img src="docs/media/model-picker.gif" alt="searchable model picker with pricing" width="100%">
</td>
<td width="50%" ="top">
<b>📊 Usage &amp; cost analytics</b><br>
<sub>Every AI call logged with tokens + cost, per target — all local SQLite, nothing phones home.</sub><br><br>
<img src="docs/media/usage.gif" alt="AI usage and cost analytics page" width="100%">
</td>
</tr>
</table>

---

🆕 New in v2.5.0

> An optional, off-by-default AI co-pilot — local-first , or any OpenAI-compatible cloud (OpenAI / OpenRouter) when you opt in.

  • 🤖 AI co-pilot — Explain scan output & Suggest next commands (KB-grounded). Suggest-ne.

  • 🧭 Cross-host attack plan — one ordered, prioritized plan across all hosts in an engagement.

  • 🎓 Exam Mode — one toggle fully disables AI for OSCP-style exams that forbid it.

  • 🌐 Web-augmented Explain — optional OpenRouter :online lookups for current C, with an egress warning.

  • 💸 Usage & cost analytics — per-target token + cost ledger at /settings/usage, all local SQLite.

  • 🧩 Stack/ KB — e.g. Samba 3.0.x surfaces usermap / SambaCry paths automatically.
  • ---

    Why recon-deck

    | Without it | With it |
    |---|---|
    | 8 browser tabs per box (HackTricks, payloadsallthethings, gtfobins, …) | One page per port, prefilled commands ready to copy |
    | Hand-typing nmap -p- -sV boilerplate per service | KB-dri with {IP} / {HOST} / {PORT} / {WORDLIST_*} placeholders |
    | Lost track of which checks you ran on box #7 | Tickable checklist + per-port notes saved in SQLite |
    | Markdown report = manual copy-paste from notes | One-click export: Markdown / HTML / JSON / SysReptor / PwnDoc / PDF |
    | AutoRecon dump → folder spelunking | Drop the zip, every per-port file routed to the right card |

    ---

    Feature highlights

    <details>
    <summary><b>📥 Ingest</b> — nmap text / XML / greppable + AutoRecon zip + manual ports</summary>

  • Multi-format nmap parser — -oN, -oX, -oG. Multi-host scans become a host-selector chip in the header

  • AutoRecon zip import — drag the results/ folder zipped; per-port service files, _manual_commands.txt, gowitness screenshots, patterns / errors logs all routed automatically

  • Re-import + diff — re-paste a fresh nmap output and the heatmap badges new ports NEW and pre ports CLOSED. Header scans: N chip tracks how many imports you've done

  • Manual ports — heatmap + Add port for services nmap missed (DNS zone transfer, alt banners, etc.)
  • </details>

    <details>
    <summary><b>🎯 Triage</b> — KB-driven port cards, known-vulns, searchsploit, findings catalog</summary>

  • KB-dri — port + service + product/ match shipped YAML KB → tickable checks, prefilled commands, HackTricks links

  • Acti toolkit — nxc (netexec), impacket (GetNPUsers, GetUserSPNs, secretsdump), kerbrute, bloodhound-python, PetitPotam, pyWhisker — all wired to the right DC ports (88/135/389/445/464/636/3268/3389/5985)

  • Known-vulns auto-match — 2.3.4 and friends → vuln + CVE + ref link surfaces on the port card

  • searchsploit lookup — one-click searchsploit -t "<product>" per port, cached

  • Findings catalog — se / title / description / CVE / e refs. One-click + finding button on KB rows pre-populates the modal
  • </details>

    <details>
    <summary><b>🖼️ E</b> — per-port screenshots, AutoRecon gowitness import, nati</summary>

  • Drag-drop / clipboard-paste screenshots into a per-port e pane

  • Nati can — Box / Arrow / Pencil / Text tools, 5-color palette, undo stack. Sa a new e row via parent_e so the original always survives

  • AutoRecon gowitness / aquatone PNGs auto-import into the matching port's e list
  • </details>

    <details>
    <summary><b>📤 Export</b> — Markdown, JSON, HTML, CS, PwnDoc, print-to-PDF</summary>

  • Six export formats plus a print-optimised PDF route

  • Markdown ships with Obsidian-compatible frontmatter

  • SysReptor JSON + PwnDoc YAML for reporting-tool feeds

  • Findings CSV for spreadsheet triage

  • Multi-host aware — SysReptor scope and PwnDoc scope list every host; markdown / HTML render one section per host
  • </details>

    <details>
    <summary><b>⌨️ Workflow</b> — command palette, FTS5 search, keyboard shortcuts, sidebar actions</summary>

  • Command palette (⌘K) — every UI action lives in the palette: add finding, re-import, settings, delete, exports, print

  • Cross-engagement search (⌃⇧F) — FTS5 + BM25, hit rows show host context

  • Sidebar engagement actions — ho with rename / duplicate (deep-copy) / delete (shadcn AlertDialog)

  • Custom commands + wordlist o at /settings/commands and /settings/wordlists — your snippets surface alongside KB commands
  • </details>

    <details>
    <summary><b>📚 Knowledge base</b> — YAML KB, in-app editor, hot-reload</summary>

  • YAML KB — drop entries in /kb (or wherever you point kb_user_dir); shipped KB li knowledge/

  • In-app editor at /settings/kb — paste, against the Zod KbEntrySchema, sa a strict filename allowlist

  • Hot reload — fs.watch on shipped + user dirs flips a dirty flag, next request rebuilds. Edit a YAML in your editor, refresh, see your change

  • In-app editor at /settings/kb — paste, , sa write under a strict [A-Za-z0-9_-] filename allowlist)
  • </details>

    <details>
    <summary><b>🛡️ Safety</b> — migration backup, host-header allowlist, rate limiter, offline-by-default</summary>

  • Pre-migration snapshots via INTO — boot writes data/recon-deck.db.backup-pre-NNNN before any new migration runs. Failure logs surface a copy-pasteable cp rollback line

  • Post-migration PRAGMA integrity_check + foreign_key_check — either failing aborts boot

  • Host-header allowlist middleware — defends DNS-rebinding when the app is reachable on 0.0.0.0

  • Per-IP rate limiter on /api/* — defense-in-depth for the LAN-exposure case

  • Offline by default — zero outbound HTTP unless the operator opts in to the GitHub release check
  • </details>

    <details>
    <summary><b>🚀 First-run</b> (v2.1.0) — onboarding, sample engagement, update toast</summary>

  • /welcome 4-step onboarding — scope · tour · local paths · updates. Seeds the app_state singleton with your local_export_dir, kb_user_dir, wordlist_base, and the release-check toggle

  • Replay onboarding from /settings → First-run — paths preserved

  • Sample engagement — "Try sample" on the paste panel inserts a canned 10-port HTB-easy box marked is_sample = true. Header surfaces a SAMPLE chip + single-click Discard

  • Notify-only update check (opt-in) — pings api.github.com/repos/kocaemre/recon-deck/releases/latest once per session, toasts a "Release notes" link if a newer tag exists. Installs stay manual

  • Desktop-only guard — < 1280px shows a clean "needs a wider screen" explainer
  • </details>

    ---

    Quick Start

    Three ways to run, pick one. All bind to 127.0.0.1:13337 (port picked to dodge the de crowd on 3000/8080), so nothing leaks to your LAN by default; see Exposing to LAN if you need otherwise.

    1. One-liner (auto-pulls + starts + opens browser):

    2. Docker Compose (recommended for persistent setups):

    3. Manual docker run:

    Open < paste nmap output, see cards. The -p 127.0.0.1:13337:13337 host-side prefix keeps the app loopback-only — see Exposing to LAN for LAN reachability.

    Beta channel (early builds)

    Stable is the default. To try the newest pre-release build (new features land here first; may be unstable):

    Image tags: :latest and :X.Y.Z are stable; :beta always points at the newest pre-release, and each beta is also pinned at :X.Y.Z-beta.N. Switch back to stable any time with --stable (or pull :latest). To have the in-app update toast track betas, set RECON_UPDATE_CHANNEL=beta (otherwise it only e stable releases).

    ---

    What it is / What it is NOT

    For OSCP/HTB students and solo pentesters. Offline by default. Does not run scans — it complements AutoRecon and HackTricks. Think of it as the OSCP-flavored Obsidian for recon: same category as Obsidian, focused on post-scan workflow. An optional, off-by-default AI co-pilot (local-first ; OpenAI/OpenRouter only if you opt in) can explain scan output and suggest commands — with it disabled (the default) nothing leaves your machine, and Exam Mode turns it off with one switch for exams that forbid AI.

    It is NOT a reporting platform, a team tool, a scanner, or a mobile app — and it never runs commands for you (the AI co-pilot only *suggests*; you run things yourself). The intent is deliberate and narrow — see ROADMAP.md for the out-of-scope list.

    ---

    Exposing to LAN

    By default, the Quick Start binds to 127.0.0.1 on the host — only your local machine can reach the app. To make recon-deck reachable from another machine on your LAN:

    Replace 192.168.1.10:13337 with the host:port your LAN clients will use. RECON_DECK_TRUSTED_HOSTS is comma-separated — expand it for every additional host you want to reach the app from.

    This activates the host-header allowlist (mitigates DNS rebinding). Requests whose Host: header is not in the allowlist are rejected with HTTP 421 Misdirected Request. See SECURITY.md for the full threat model.

    ---

    Customizing the Knowledge Base

    Drop YAML files into /kb/ports/*.yaml () — they o shipped entries with the same port/service at startup. Schema, denylist, and placeholder syntax in CONTRIBUTING.md.

    Bind-mounting a host dir? Container runs as UID 1000 — chown 1000:1000 /path/to/my-kb first, or use a named (-:/kb) which inherits ownership automatically.

    ---

    AutoRecon Import

    1. autorecon <target> → produces results/<ip>/
    2. cd results && zip -r my-target.zip <ip>/
    3. Drag the zip onto the import panel

    Ser unzip routes e: per-port files (tcp80/…, tcp_22_ssh_*) into the right card, _manual_commands.txt into Manual commands, gowitness/aquatone PNGs into port e, log files (_patterns, _errors, _commands) into an engagement warning panel. Multi-IP zips become multi-host engagements (primary inherits full AR data, secondaries get ports + scripts).

    ---

    Multi-host engagements

    One engagement, N hosts (DC + workstations, related boxes, etc.). Hosts chip-switch in the header; heatmap + commands + palette all rescope. Multi-host is detected from XML <host> blocks, text/greppable Nmap scan report for ... boundaries, and AutoRecon multi-IP zips.

    ---

    Re-import + scan diff

    Hit Re-import in the engagement header and paste a fresh nmap output. The reconciler:

  • Adds new ports (NEW chip on the heatmap)

  • Refreshes last_seen_scan_id for re-obser

  • Marks ports the new scan didn't see as closed (CLOSED chip, dim tile)

  • Surfaces a scans: N chip in the header so you know multi-import diff context applies

  • Toast: 1 new · 1 closed · 2 unchanged after import
  • ---

    Settings

    /settings (footer link in the sidebar) covers:

  • Engagement list — inline delete with cascade confirmation

  • Wordlists (/settings/wordlists) — o {WORDLIST_*} placeholders

  • Custom commands (/settings/commands) — personal snippets alongside KB commands, scopable by service/port

  • KB editor (/settings/kb) — paste, , save to your user dir; cache in immediately
  • Engagement renames are inline on the header (target identity) or via the sidebar kebab (display label). The kebab also exposes Duplicate (deep-copy transaction) and Delete (cascade with confirmation).

    ---

    Exports

    Six formats + a print route. All multi-host aware.

    | Format | Use |
    |---|---|
    | Markdown | Obsidian-compatible frontmatter, paste into your vault |
    | JSON | Structured dump for scripting |
    | HTML | Standalone single-file report, opens offline |
    | Findings CSV | Se / host / port / CVE rows for spreadsheets |
    | SysReptor JSON | projects/v1 shape with scope[] |
    | PwnDoc YAML | Findings + scope, multi-host aware |
    | Print-to-PDF | /report route, Ctrl+P → Save as PDF |

    ---

    Backup & Restore

    State lives in two — back both up together:

  • recondeck-data → SQLite DB (history, e, findings, notes)

  • recondeck-kb → your YAML o under /kb
  • Snapshot to tarball:

    Restore: stop + rm container, recreate , tar -xzf from inside an alpine container, restart. Migrations re-apply on boot. Pin a specific image tag (ghcr.io/kocaemre/recon-deck:v2.1) for production restores so a :latest jump doesn't surprise you.

    Boot also takes a INTO 'data/recon-deck.db.backup-pre-NNNN' snapshot before running pending migrations; on failure the log prints a copy-pasteable rollback line. Schema is forward-only — see CONTRIBUTING.md › "Migration safety and recovery" for the full procedure.

    ---

    Upgrading

    Notify-only — no auto-update, no telemetry. Optional release check is opt-in at /settings → First-run.

    Docker (easy): the install one-liner is idempotent — re-run it to upgrade. It pulls the new image, removes the prior container (named survive), and starts fresh:

    Docker (manual):

    Beta: updating a beta install works the same way — re-run the --beta
    one-liner (idempotent: pulls the newest :beta, replaces the container,
    survive), or pull the image and re-run manually:

    On a busy port, the RECON_DECK_PORT env goes on the sh side of the pipe:
    … | RECON_DECK_PORT=13338 sh -s -- --beta.

    Local dev: git pull && npm install && npm run dev. Migrations apply at boot.

    How the channels work

    There are two channels and they ne each other. Which one you're on is
    decided per install.sh run (the --beta flag), not baked into the image —
    re-running with a different flag switches you:

    | Channel | Pull command | Docker tags it tracks |
    | ------- | ------------ | --------------------- |
    | Stable (default) | … \| sh | :latest, :X.Y.Z, :X.Y, :X |
    | Beta (pre-release) | … \| sh -s -- --beta | :beta, and each build pinned at :X.Y.Z-beta.N |

    A stable release ne :beta; a beta build ne :latest or the
    short :X.Y / :X tags. Promotion to stable is just a clean (non-pre-release)
    tag — the same build that was on :beta becomes :latest.

    Switching channels

    Stable → beta — safe. Re-run with --beta; your data are reused:

    Beta → stable — re-run without the flag (or --stable):

    > ⚠️ Downgrade caveat. Database migrations are forward-only. If the beta
    > you were running ad the schema past the stable image's schema (the
    > Schema badge at the top of this README is the current number), the older
    > stable image won't understand the on-disk DB and can fail to boot. Going
    > *back* a channel is only safe when both images share the same schema .
    > Back up the data first (see Backup & Restore)
    > before downgrading across a schema bump. Moving *forward* (stable → beta, or
    > up to a newer stable) is always fine.

    To have the in-app update toast track betas instead of only stable releases,
    set RECON_UPDATE_CHANNEL=beta (notify-only — it ne anything).

    Tech Stack

    | Layer | Technology |
    | ------------- | ------------------------------------------ |
    | Framework | Next.js 15.5 (App Router) |
    | UI | React 19, Tailwind 4, shadcn/ui |
    | Persistence | SQLite + better-sqlite3 |
    | Parsers | fast-xml-parser (XML), custom regex (text) |
    | KB format | YAML , by Zod |
    | Container | node:22-alpine, multi-stage build |
    | License | MIT |

    Full pins live in package.json. The image is a single multi-stage node:22-alpine build — typical pulled size is under ~200 MB.

    ---

    De

    For local hacking outside the container:

    Useful scripts:

    ---

    Configuration Reference

    | Env var | Default | Purpose |
    | --------------------------- | ----------------------- | ------------------------------------------------------------------------------ |
    | HOSTNAME | 127.0.0.1 | Bind address inside the container. O to 0.0.0.0 for port-map reach. |
    | PORT | 13337 | Port the app listens on (also drives the host-header allowlist default). |
    | RECON_DB_PATH | /data/recon-deck.db | SQLite file location. Keep on a mounted for persistence. |
    | RECON_KB_USER_DIR | /kb | User KB directory. Onboarding writes this to app_state.kb_user_dir which takes precedence; env var is the fallback. |
    | RECON_LOCAL_EXPORT_DIR | _(empty)_ | Engagement header's ://file/… link. app_state.local_export_dir wins; this and NEXT_PUBLIC_RECON_LOCAL_EXPORT_DIR are fallbacks. |
    | RECON_DECK_TRUSTED_HOSTS | _(empty)_ | Comma-separated extra hosts allowed by the host-header middleware. |
    | NEXT_TELEMETRY_DISABLED | 1 | Disables Next.js telemetry. Preserves the offline guarantee. |

    ---

    Contributing

    See CONTRIBUTING.md for KB rules, PR discipline, and what's in/out of scope.

    Security

    See SECURITY.md for the threat model, offline guarantee, and default-deny postures.

    Credits

    See CREDITS.md for upstream attribution — HackTricks, AutoRecon, PayloadsAllTheThings, SecLists.

    Roadmap

    See ROADMAP.md for upcoming candidates, the v2.x future direction, and hard out-of-scope items.

    License

    MIT.

    项目信息

    开发语言:TypeScript

    Star 数:59

    技术要点

    该项目属于CTF思路方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕Offline pentest workflow tracker — turns nmap output into a port-aware, KB-matched recon checklist in under 30 seconds. Self-hosted, single Docker image, no telemetry.展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。

    从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。

    使用与学习建议

    1. 下载源码压缩包,解压到本地环境。

    2. 根据项目类型准备对应的运行环境与依赖。

    3. 按照 README 中的步骤完成配置与部署。

    4. 在隔离的测试环境中运行验证,避免影响生产系统。

    免责声明

    本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。

    资源标题recon-deck - Offline pentest workflow tracker — turns nmap outp
    所属分类CTF思路
    发布作者admin
    发布时间2026-10-06 00:04:42
    下载权限 免费下载
    附件数量2 个下载链接
    浏览次数308
    讨论数量0
    主题状态正常讨论中

    本资源免费,登录后即可在本页「下载链接」区域获取全部附件。

    请在评论区留言说明具体链接,或联系作者补档。楼主更新后本页会同步最新的下载地址。

    请先阅读正文中的授权说明;未注明的默认仅限站内学习交流,禁止直接搬运到其他站点二次售卖。
    还没有讨论,快来抢沙发~
    登录 后才能参与讨论
    下载链接
    会员才能下载
    登录后开通会员
    同分类推荐
    暂无同类资源
    免费登录即可下载
    查看会员
    放大预览

    © 2026 剑庭安 - 网站开发定制 SEO 优化蜘蛛池代做 在线看手相算命. 保留所有权利。

    Powered by 酷像SEOv3.0

    网站地图 Sitemap.xml
    首页 全部分类 黑客安全 逆向|反编译 精品源码 站长工具自助开通会员其他资源SEO工具站群源码泛程序蜘蛛模板蜘蛛池外链工具创意乐园 搜索 会员服务 登录 注册