diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md index cfb702b..55a7f7f 100644 --- a/.github/CODE_OF_CONDUCT.md +++ b/.github/CODE_OF_CONDUCT.md @@ -1,46 +1,5 @@ -# Contributor Covenant Code of Conduct +# Contributor Code of Conduct -## Our Pledge +_be excellent to each other_ -In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at trimstray@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] - -[homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/4/ +thank you for coming to my Ted talk diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 785e504..0000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,2 +0,0 @@ -open_collective: trimstray -github: trimstray diff --git a/.github/ISSUE_TEMPLATE/broken-link-or-update.yml b/.github/ISSUE_TEMPLATE/broken-link-or-update.yml new file mode 100644 index 0000000..aa53f0f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/broken-link-or-update.yml @@ -0,0 +1,42 @@ +name: Broken Link or Outdated Resource +description: Report a dead link, moved resource, or something that needs updating +title: "[Fix] Broken/Outdated: Brief description" +labels: ["maintenance", "bug"] +body: + - type: input + id: url + attributes: + label: Problematic URL + validations: + required: true + + - type: input + id: location + attributes: + label: Where is this link located? + placeholder: e.g., README.md line 456, or ./hacking-pentesting/wordlists.md + + - type: dropdown + id: issue_type + attributes: + label: Type of Issue + options: + - 404 / Not Found + - 403 / Forbidden + - Redirected / Moved + - Outdated / Deprecated + - Better Alternative Exists + - Other + validations: + required: true + + - type: textarea + id: suggestion + attributes: + label: Suggested Fix / Replacement + placeholder: "Replace with https://new-working-url.com (status 200); or remove if obsolete." + + - type: textarea + id: context + attributes: + label: Additional Context diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..dd84ea7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,38 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Smartphone (please complete the following information):** + - Device: [e.g. iPhone6] + - OS: [e.g. iOS8.1] + - Browser [e.g. stock browser, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..2ec26ac --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false # Disable "Open a blank issue" to encourage template use +contact_links: + - name: General Questions or Discussions + url: https://github.com/jacob-kraniak/the-book-of-secret-knowledge/discussions + about: For questions, ideas, or open discussion โ€” please use Discussions instead of issues. + - name: Contact Maintainer (Jacob) + url: https://x.com/JacobSk92 + about: For private or urgent outreach. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..bbcbbe7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/general-enhancement.yml b/.github/ISSUE_TEMPLATE/general-enhancement.yml new file mode 100644 index 0000000..7cc011b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/general-enhancement.yml @@ -0,0 +1,20 @@ +name: General Enhancement or Idea +description: Propose any other improvement (navigation, formatting, new feature like search, etc.) +title: "[Enhancement] Short title" +labels: ["enhancement"] +body: + - type: textarea + id: description + attributes: + label: Description of the Enhancement + value: | + **Is your feature request related to a problem? Please describe.** + A clear and concise description of what the problem is. + + **Describe the solution you'd like** + A clear and concise description of what you want to happen. + + **Additional context** + Add any other context or screenshots about the feature request here. + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/question-or-discussion.md b/.github/ISSUE_TEMPLATE/question-or-discussion.md new file mode 100644 index 0000000..50104d8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question-or-discussion.md @@ -0,0 +1,18 @@ +--- +name: Question or Open Discussion +description: Have a question or want to discuss something? โ†’ Use Discussions instead! +title: "[Discussion] " +labels: ["question"] +body: + - type: markdown + attributes: + value: | + Thanks for wanting to start a conversation! + + For questions, brainstorming, or non-actionable discussion, please use **GitHub Discussions** instead: + + ๐Ÿ‘‰ https://github.com/jacob-kraniak/the-book-of-secret-knowledge/discussions/new + + This helps keep Issues focused on actionable work (bugs, features, migrations). + + You can close this issue now โ€” or comment if you really prefer it here. diff --git a/.github/ISSUE_TEMPLATE/resource-suggestions.yml b/.github/ISSUE_TEMPLATE/resource-suggestions.yml new file mode 100644 index 0000000..47c8d2e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/resource-suggestions.yml @@ -0,0 +1,76 @@ +name: Resource Suggestion +description: Suggest adding or updating a tool, link, blog, cheat sheet, one-liner, etc. +title: "[Resource] Short descriptive title" +labels: ["resource", "enhancement"] +body: + - type: markdown + attributes: + value: | + Thanks for suggesting a resource! Please fill out as much as possible. + + - type: input + id: name + attributes: + label: Resource Name + description: Name of the tool, blog, list, one-liner collection, etc. + placeholder: e.g., "nmap", "PayloadsAllTheThings", "Shell One-liner: Find large files" + validations: + required: true + + - type: input + id: url + attributes: + label: URL / Location + description: Direct link (or file path if already in repo) + placeholder: https://example.com/tool or ./shell-utils/one-liners/find-large-files.md + validations: + required: true + + - type: dropdown + id: category + attributes: + label: Which section/category does this belong to? + options: + - CLI Tools + - GUI Tools + - Web Tools + - Systems & Services + - Networks + - Containers & Orchestration + - Manuals / Howtos / Tutorials + - Inspiring Lists + - Blogs / Podcasts / Videos + - Hacking / Penetration Testing + - Daily Knowledge / News + - Cheat Sheets + - Shell One-liners / Tricks / Functions + - Other (please specify below) + default: 0 + validations: + required: true + + - type: textarea + id: description + attributes: + label: Description & Why Include It + description: Brief summary + why it's valuable / unique / up-to-date. + placeholder: "nmap is the de facto network scanner; still actively maintained in 2026." + validations: + required: true + + - type: input + id: tags + attributes: + label: Suggested Tags / Keywords + description: Comma-separated (helps future search/tagging) + placeholder: nmap, scanning, network, cli + + - type: checkboxes + id: terms + attributes: + label: Checklist + options: + - label: I have searched existing resources / issues to avoid duplicates + required: true + - label: The resource is legal, ethical, and publicly available + required: true diff --git a/.github/ISSUE_TEMPLATE/section-migration.yml b/.github/ISSUE_TEMPLATE/section-migration.yml new file mode 100644 index 0000000..27f855a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/section-migration.yml @@ -0,0 +1,47 @@ +name: Section Migration / Restructure +description: Propose or work on moving a README section to subfolder/files +title: "[Migration] Move/Refactor: Section Name" +labels: ["migration", "structural", "help wanted"] +body: + - type: markdown + attributes: + value: | + Use this for tracking the big structural refactor (moving content from README.md into dedicated folders/files). + + - type: input + id: section + attributes: + label: Section / Subsection to Migrate + placeholder: e.g., CLI Tools โ†’ Network subsection, or Hacking/Penetration Testing โ†’ Labs & CTFs + validations: + required: true + + - type: input + id: target + attributes: + label: Proposed Target Location + placeholder: e.g., /cli-tools/network.md or /hacking-pentesting/labs-ctfs.md + validations: + required: true + + - type: textarea + id: notes + attributes: + label: Migration Notes / Decisions + description: Any consolidation, deduplication, renaming, or special handling needed? + placeholder: "Consolidate multiple CTF/lab mentions into one file; remove 404 links; add YAML frontmatter for tags." + + - type: textarea + id: blockers + attributes: + label: Potential Blockers or Dependencies + placeholder: "Depends on folder skeleton being created first; needs review of overlapping sections." + + - type: checkboxes + id: status + attributes: + label: Current Status (self-check) + options: + - label: This is a proposal (not yet started) + - label: In progress (link PR below if exists) + - label: Ready for review diff --git a/.github/workflows/ai-pr-review b/.github/workflows/ai-pr-review new file mode 100644 index 0000000..a10eab4 --- /dev/null +++ b/.github/workflows/ai-pr-review @@ -0,0 +1,110 @@ +name: Grok AI PR Review + +on: + pull_request: + types: [opened, synchronize, reopened] + +permissions: + pull-requests: write + contents: read + +jobs: + review: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Needed for git diff + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install openai requests + + - name: Run Grok Review + env: + XAI_API_KEY: ${{ secrets.XAI_API_KEY }} + GROK_MODEL: ${{ vars.GROK_MODEL || 'grok-code-fast-1' }} # fallback to fast coding model + run: | + python - << 'EOF' + import os + import requests + from openai import OpenAI + + # Use OpenAI SDK with custom base URL for xAI compatibility + client = OpenAI( + api_key=os.environ["XAI_API_KEY"], + base_url="https://api.x.ai/v1" + ) + + # Get PR diff via GitHub API (or git diff origin/${{ github.base_ref }}...HEAD) + repo = "${{ github.repository }}" + pr_number = ${{ github.event.pull_request.number }} + token = os.environ.get("GITHUB_TOKEN") # built-in + + headers = { + "Accept": "application/vnd.github.v3.diff", + "Authorization": f"token {token}" + } + diff_url = f"https://api.github.com/repos/{repo}/pulls/{pr_number}" + diff_response = requests.get(diff_url, headers=headers) + diff_text = diff_response.text + + if not diff_text.strip(): + print("No diff found or empty PR.") + exit(0) + + # Truncate if too long (Grok context is large, but save tokens) + max_chars = 30000 + if len(diff_text) > max_chars: + diff_text = diff_text[:max_chars] + "\n\n[Diff truncated; full context may be larger]" + + # Strong, repo-specific prompt (tune this!) + prompt = f""" + You are a senior security & knowledge-base curator reviewing changes to 'The Book of Secret Knowledge' โ€” a curated list of cybersecurity, pentesting, CLI/GUI tools, shell tricks, and secret-finding resources. + + Review this PR diff carefully: + {diff_text} + + Provide concise, actionable feedback in Markdown: + - **Summary**: One-sentence overview of changes + - **Strengths**: What is good (e.g., new valuable resources, clean formatting) + - **Issues/Suggestions**: + - Formatting/consistency (links, headings, lists) + - Potential inaccuracies or outdated info + - Security risks (e.g., dangerous commands without warnings) + - Improvements (clarity, better structure, missing cross-references) + - **Overall**: Approve, Request changes, or Comment (with emoji rating) + + Be strict but constructive. Flag anything promotional/spammy. + """ + + response = client.chat.completions.create( + model=os.environ["GROK_MODEL"], + messages=[ + {"role": "system", "content": "You are an expert code/knowledge reviewer."}, + {"role": "user", "content": prompt} + ], + temperature=0.4, # lower for focused reviews + max_tokens=1200 + ) + + review_body = response.choices[0].message.content.strip() + + # Post as comment + comment_url = f"https://api.github.com/repos/{repo}/issues/{pr_number}/comments" + comment_headers = { + "Accept": "application/vnd.github+json", + "Authorization": f"Bearer {token}", + "X-GitHub-Api-Version": "2022-11-28" + } + payload = {"body": f"### Grok AI Review\n\n{review_body}"} + requests.post(comment_url, json=payload, headers=comment_headers) + print("Review posted.") + EOF diff --git a/.github/workflows/label.yml b/.github/workflows/label.yml new file mode 100644 index 0000000..4613569 --- /dev/null +++ b/.github/workflows/label.yml @@ -0,0 +1,22 @@ +# This workflow will triage pull requests and apply a label based on the +# paths that are modified in the pull request. +# +# To use this workflow, you will need to set up a .github/labeler.yml +# file with configuration. For more information, see: +# https://github.com/actions/labeler + +name: Labeler +on: [pull_request_target] + +jobs: + label: + + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write + + steps: + - uses: actions/labeler@v4 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/link-check.yml b/.github/workflows/link-check.yml new file mode 100644 index 0000000..09d7d08 --- /dev/null +++ b/.github/workflows/link-check.yml @@ -0,0 +1,29 @@ +name: Check Markdown Links + +on: + push: + branches: [ "JK_Revisions" ] + pull_request: + branches: [ "JK_Revisions" ] + schedule: + - cron: "0 12 * * 1" # Weekly on Mondays at 12:00 UTC + workflow_dispatch: # Manual trigger + +jobs: + link-check: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Run Markdown Link Checker + uses: gaurav-nelson/github-action-markdown-link-check@v1 + with: + use-verbose-mode: "yes" + check-modified-files-only: "false" + folder-path: "." + file-extension: ".md" + config-file: ".markdown-link-check.json" # Create this for ignores + max-depth: 2 # Adjust as needed diff --git a/.github/workflows/markdown-link.yml b/.github/workflows/markdown-link.yml new file mode 100644 index 0000000..e47f1ea --- /dev/null +++ b/.github/workflows/markdown-link.yml @@ -0,0 +1,22 @@ +name: Lint Markdown + +on: + push: + branches: [ "*" ] + pull_request: + branches: [ master ] + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # needed for some linters + + - name: Lint Markdown files + uses: nosborn/github-action-markdown-cli@v3 + with: + files: . + config_file: ".markdownlint.json" + ignore_path: ".markdownlintignore" diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml new file mode 100644 index 0000000..75c2d84 --- /dev/null +++ b/.github/workflows/pre-commit.yml @@ -0,0 +1,33 @@ +name: Pre-commit Checks + +on: + push: + branches: [ "JK_Revisions" ] + pull_request: + branches: [ "JK_Revisions" ] + schedule: + - cron: "0 8 * * 1" # Weekly on Mondays at 08:00 UTC + workflow_dispatch: # Allows manual trigger from Actions tab + +jobs: + pre-commit: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install pre-commit + run: | + python -m pip install --upgrade pip + pip install pre-commit + + - name: Run pre-commit hooks + run: pre-commit run --all-files --show-diff-on-failure diff --git a/.github/workflows/update-toc.yml b/.github/workflows/update-toc.yml new file mode 100644 index 0000000..99e9929 --- /dev/null +++ b/.github/workflows/update-toc.yml @@ -0,0 +1,33 @@ +name: Update TOC + +on: + push: + branches: [ JK_Revisions ] + paths: + - '**.md' # Trigger on any markdown change + +jobs: + update-toc: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # Important for commit history + + - name: Install doctoc + run: npm install -g doctoc + + - name: Run doctoc on README and INDEX files + run: | + doctoc README.md + doctoc tools/_INDEX.md # or tools/INDEX.md after rename + doctoc documentation/INDEX.md + # Add more files as needed, e.g.: + # doctoc tools/security/INDEX.md + + - name: Commit changes if any + uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_message: "chore: auto-update TOC [skip ci]" + branch: JK_Revisions + skip_dirty_check: false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..00dd520 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ + +/.obsidian \ No newline at end of file diff --git a/.markdown-link-check.json b/.markdown-link-check.json new file mode 100644 index 0000000..9fb64f5 --- /dev/null +++ b/.markdown-link-check.json @@ -0,0 +1,16 @@ +{ + "ignorePatterns": [ + { "pattern": "^https?://stackoverflow.com" }, + { "pattern": "^https?://github.com/.*compare" }, + { "pattern": "^#" }, + { "pattern": "\\.md$" }, + { "pattern": "^https?://(www\\.)?github.com" } + ], + "replacementPatterns": [], + "timeout": "10s", + "retryOn429": true, + "retryCount": 3, + "httpHeaders": [ + { "name": "User-Agent", "value": "markdown-link-check" } + ] +} \ No newline at end of file diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100644 index 0000000..c04a951 --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,10 @@ +{ + "default": true, + "MD004": { "style": "dash" }, // enforce - bullets + "MD007": { "indent": 2 }, // consistent indent + "MD013": false, // no line length limit (large lists) + "MD022": true, // blank lines around headings + "MD029": { "style": "one" }, // ordered lists start with 1. + "MD033": { "allowed_elements": ["a", "code", "pre", "em", "strong"] }, // restrict HTML + "MD041": false // no first-line heading req +} diff --git a/.markdownlintignore b/.markdownlintignore new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/.markdownlintignore @@ -0,0 +1 @@ + diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..ffda743 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,30 @@ +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-yaml + - id: check-added-large-files + args: ['--maxkb=500'] + + - repo: https://github.com/igorshubovych/markdownlint-cli + rev: v0.44.0 + hooks: + - id: markdownlint + args: ["--config", ".markdownlint.json"] + + - repo: https://github.com/tcort/markdown-link-check + rev: v3.13.7 + hooks: + - id: markdown-link-check + args: ["--config", ".markdown-link-check.json"] + + - repo: local + hooks: + - id: validate-tool-tables + name: Validate Tool Table Schema + entry: python scripts/validate-tool-tables.py + language: python + files: ^tools/.*\.md$ + types: [markdown] \ No newline at end of file diff --git a/Contibuting.md b/Contibuting.md new file mode 100644 index 0000000..543eb24 --- /dev/null +++ b/Contibuting.md @@ -0,0 +1,10 @@ +I've recently started actively developing a fork of trimstray/the-book-of-secret-knowledge on my branch JK_Revisions. + +This original repo has been inactive since late 2024 with over 100 open PRs, and your PR shows updates reflecting an interest in ongoing maintenance. I'd love to centralize efforts to avoid fragmentation. My branch already has linting setup, GitHub Actions for PR labeling, .gitignore/CONTRIBUTING.md improvements, and markdown placeholders ready for content. + +If you have changes/PRs from earlier (or ongoing work), would you consider submitting them as PRs or Issues to my fork? We can coordinate there, keep momentum going, and if trimstray returns, push a clean consolidation back upstream. + +Happy to discuss direction, merge strategy, or even make you a collaborator if it aligns. + +Looking forward to your thoughts! +Jacob \ No newline at end of file diff --git a/LICENSE.md b/LICENSE.md index bd287cf..79d1c58 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2017 trimstray +Copyright (c) 2026 by Jacob K Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 2c1b9e4..bfc1412 100644 --- a/README.md +++ b/README.md @@ -1,277 +1,95 @@ -

- - Master - -

+## Active Development Branch: JK_Revisions -

"Knowledge is powerful, be careful how you use it!"

+**This branch is under heavy revision โ€” do not merge to main yet.** -

A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools, and more.

+- All recent work (since fork on 2026-03-03) is by @jacob-kraniak +- Upstream history (pre-2026 commits) remains from original trimstray repo for credit & context -
+**See only my changes:** +- [Commits by me on this branch](https://github.com/jacob-kraniak/the-book-of-secret-knowledge/commits/JK_Revisions?author=jacob-kraniak) +- [Full branch compare (if main diverges later)](https://github.com/jacob-kraniak/the-book-of-secret-knowledge/compare/main...JK_Revisions) -

- - Pull Requests - - - MIT License - -

+When ready: Plan to squash-merge or rebase + clean history into main. -
+## Fork Attribution & My Contributions -**** +**Forked on 2026-03-03** from [trimstray/the-book-of-secret-knowledge](https://github.com/trimstray/the-book-of-secret-knowledge) (MIT licensed, last major upstream activity ~2024). +## Repository Contents -## :notebook_with_decorative_cover:  What is it? +
+Click to expand full directory structure -This repository is a collection of various materials and tools that I use every day in my work. It contains a lot of useful information gathered in one piece. It is an invaluable source of knowledge for me that I often look back on. +- **documentation/** โ€” Guides, how-tos, one-liners, cheat sheets, learning material + - [INDEX.md](./documentation/INDEX.md) โ€” Documentation overview + - **learning-resources/** + - [daily-knowledge-news.md](./documentation/learning-resources/daily-knowledge-news.md) + - **manuals-howtos-guides/** + - [shell-one-liners.md](./documentation/manuals-howtos-guides/shell-one-liners.md) + - [shell-tricks-functions.md](./documentation/manuals-howtos-guides/shell-tricks-functions.md) + - [other-cheat-sheets.md](./documentation/other-cheat-sheets.md) + - readme - to refactor.md *(legacy โ€” planned for migration)* -## :restroom:  For whom? +- **tools/** โ€” Curated collections of tools across security, networking, sysadmin & devops + - [_INDEX.md](./tools/_INDEX.md) โ€” Tools overview (recommended rename โ†’ INDEX.md) + - [my-contributions.md](./tools/my-contributions.md) โ€” Personally added / heavily used tools + - [system-services.md](./tools/system-services.md) + - **network-engineering/** + - **diagnostics-troubleshooting/** โ€” Bandwidth & performance, tracing, online utilities, protocols + - **dns-dhc-ipam/** + - [dns-tools.md](./tools/network-engineering/dns-dhc-ipam/dns-tools.md) + - **routing-bgp-ospf/** + - [BGP & Routing Tools.md](./tools/network-engineering/routing-bgp-ospf/BGP%20%26%20Routing%20Tools.md) + - **security/** + - [Untitled.md](./tools/security/Untitled.md) *(to be reviewed / renamed)* + - **pentest-recon-enum/** + - [Packet Capture & Analysis.md](./tools/security/pentest-recon-enum/Packet%20Capture%20%26%20Analysis.md) + - [Port Scanners & Network Discovery.md](./tools/security/pentest-recon-enum/Port%20Scanners%20%26%20Network%20Discovery.md) + - [Recon & Threat Reputation.md](./tools/security/pentest-recon-enum/Recon%20%26%20Threat%20Reputation.md) + - [ssl-tls-web-security.md](ssl-tls-web-security.md) + - **vuln-analysis-exploitation/** + - [Packet Crafting & Manipulation.md](./tools/security/vuln-analysis-exploitation/Packet%20Crafting%20%26%20Manipulation.md) + - [Vulnerability & Exploit Databases.md](./tools/security/vuln-analysis-exploitation/Vulnerability%20%26%20Exploit%20Databases.md) + - **sysadmin-devops/** + - [Remote Access + SSH Clients.md](./tools/sysadmin-devops/Remote%20Access%20%2B%20SSH%20Clients.md) + - **https-web-services/** + - **benchmark-load/** + - **browsers/** + - **clients-inspectors/** + - **security-hardening/** + - **system-monitoring-tracing/** + - [Log Analyzers.md](./tools/sysadmin-devops/system-monitoring-tracing/Log%20Analyzers.md) + - **terminal-shell-productivity/** + - [Files & Directories.md](./tools/sysadmin-devops/terminal-shell-productivity/Files%20%26%20Directories.md) + - [Shells.md](./tools/sysadmin-devops/terminal-shell-productivity/Shells.md) + - [Terminal Emulators.md](./tools/sysadmin-devops/terminal-shell-productivity/Terminal%20Emulators.md) + - [Text Editors.md](./tools/sysadmin-devops/terminal-shell-productivity/Text%20Editors.md) -For everyone, really. Here everyone can find their favourite tastes. But to be perfectly honest, it is aimed towards System and Network administrators, DevOps, Pentesters, and Security Researchers. +- **Meta & Configuration** + - [.github/](./.github/) + - [.obsidian/](./.obsidian/) โ€” optional personal vault settings + - [.gitignore](./.gitignore) + - [.markdownlint.json](./.markdownlint.json) + - [.markdownlintignore](./.markdownlintignore) + - [Contributing.md](./Contributing.md) + - [LICENSE.md](./LICENSE.md) + - [README.md](./README.md) โ† you are here + - [TOOL-TABLE-SCHEMA.md](./TOOL-TABLE-SCHEMA.md) โ€” format standard for all tool tables -## :information_source:  Contributing +
-If you find something which doesn't make sense, or something doesn't seem right, please make a pull request and please add valid and well-reasoned explanations about your changes or comments. +### Quick Access -A few simple rules for this project: +| Area | Focus | Main Entry Point | +|-----------------------------|----------------------------------------------------|-----------------------------------------------------------------------------| +| Tools โ€“ Overview | All categories & personal contributions | [_INDEX.md](./tools/_INDEX.md) | +| Security Tools | Recon, scanning, TLS/web security, exploits | [tools/security/](./tools/security/) | +| Network Engineering | Diagnostics, DNS/IPAM, BGP/OSPF/routing | [tools/network-engineering/](./tools/network-engineering/) | +| SysAdmin / DevOps | SSH, web services, monitoring, shell productivity | [tools/sysadmin-devops/](./tools/sysadmin-devops/) | +| Documentation & Guides | One-liners, cheat sheets, daily learning | [documentation/INDEX.md](./documentation/INDEX.md) | +| My Contributions | Personally vetted / added tools & notes | [tools/my-contributions.md](./tools/my-contributions.md) | +| Tool Table Format | Schema used in every tool list | [TOOL-TABLE-SCHEMA.md](./TOOL-TABLE-SCHEMA.md) | -- inviting and clear -- not tiring -- useful - -These below rules may be better: - -- easy to contribute to (Markdown + HTML ...) -- easy to find (simple TOC, maybe it's worth extending them?) - -Url marked **\*** is temporary unavailable. Please don't delete it without confirming that it has permanently expired. - -Before adding a pull request, please see the **[contributing guidelines](.github/CONTRIBUTING.md)**. You should also remember about this: - -```diff -+ This repository is not meant to contain everything but only good quality stuff. -``` - -All **suggestions/PR** are welcome! - -### Code Contributors - -This project exists thanks to all the people who contribute. - - - -### Financial Contributors - -

- - - - - - -

- -## :newspaper:  RSS Feed & Updates - -GitHub exposes an [RSS/Atom](https://github.com/trimstray/the-book-of-secret-knowledge/commits.atom) feed of the commits, which may also be useful if you want to be kept informed about all changes. - -## :ballot_box_with_check:  ToDo - -- [ ] Add new stuff... -- [ ] Add useful shell functions -- [ ] Add one-liners for collection tools (eg. CLI Tools) -- [ ] Sort order in lists - -New items are also added on a regular basis. - -## :anger:  Table of Contents - -Only main chapters: - -- **[CLI Tools](#cli-tools-toc)** -- **[GUI Tools](#gui-tools-toc)** -- **[Web Tools](#web-tools-toc)** -- **[Systems/Services](#systemsservices-toc)** -- **[Networks](#networks-toc)** -- **[Containers/Orchestration](#containersorchestration-toc)** -- **[Manuals/Howtos/Tutorials](#manualshowtostutorials-toc)** -- **[Inspiring Lists](#inspiring-lists-toc)** -- **[Blogs/Podcasts/Videos](#blogspodcastsvideos-toc)** -- **[Hacking/Penetration Testing](#hackingpenetration-testing-toc)** -- **[Your daily knowledge and news](#your-daily-knowledge-and-news-toc)** -- **[Other Cheat Sheets](#other-cheat-sheets-toc)** -- **[Shell One-liners](#shell-one-liners-toc)** -- **[Shell Tricks](#shell-tricks-toc)** -- **[Shell Functions](#shell-functions-toc)** - -## :trident:  The Book of Secret Knowledge (Chapters) - -#### CLI Tools  [[TOC]](#anger-table-of-contents) - -##### :black_small_square: Shells - -

-   GNU Bash - is an sh-compatible shell that incorporates useful features from the Korn shell and C shell.
-   Zsh - is a shell designed for interactive use, although it is also a powerful scripting language.
-   tclsh - is a very powerful cross-platform shell, suitable for a huge range of uses.
-   bash-it - is a framework for using, developing and maintaining shell scripts and custom commands.
-   Oh My ZSH! - is the best framework for managing your Zsh configuration.
-   Oh My Fish - the Fishshell framework.
-   Starship - the cross-shell prompt written in Rust.
-   powerlevel10k - is a fast reimplementation of Powerlevel9k ZSH theme.
-

- -##### :black_small_square: Shell plugins - -

-   z - tracks the folder you use the most and allow you to jump, without having to type the whole path.
-   fzf - is a general-purpose command-line fuzzy finder.
-   zsh-autosuggestions - Fish-like autosuggestions for Zsh.
-   zsh-syntax-highlighting - Fish shell like syntax highlighting for Zsh.
-   Awesome ZSH Plugins - A list of frameworks, plugins, themes and tutorials for ZSH.
-

- -##### :black_small_square: Managers - -

-   Midnight Commander - is a visual file manager, licensed under GNU General Public License.
-   ranger - is a VIM-inspired filemanager for the console.
-   nnn - is a tiny, lightning fast, feature-packed file manager.
-   screen - is a full-screen window manager that multiplexes a physical terminal.
-   tmux - is a terminal multiplexer, lets you switch easily between several programs in one terminal.
-   tmux-cssh - is a tool to set comfortable and easy to use functionality tmux-sessions.
-

- -##### :black_small_square: Text editors - -

-   vi - is one of the most common text editors on Unix.
-   vim - is a highly configurable text editor.
-   emacs - is an extensible, customizable, free/libre text editor, and more.
-   micro - is a modern and intuitive terminal-based text editor.
-   neovim - is a free open source, powerful, extensible and usable code editor.
-   spacemacs - a community-driven Emacs distribution.
-   spacevim - a community-driven vim distribution.
-

- -##### :black_small_square: Files and directories - -

-   fd - is a simple, fast and user-friendly alternative to find.
-   ncdu - is an easy to use, fast disk usage analyzer.
-

- -##### :black_small_square: Network - -

-   PuTTY - is an SSH and telnet client, developed originally by Simon Tatham.
-   Mosh - is a SSH wrapper designed to keep a SSH session alive over a volatile connection.
-   Eternal Terminal - enables mouse-scrolling and tmux commands inside the SSH session.
-   nmap - is a free and open source (license) utility for network discovery and security auditing.
-   zmap - is a fast single packet network scanner designed for Internet-wide network surveys.
-   Rust Scan - to find all open ports faster than Nmap.
-   masscan - is the fastest Internet port scanner, spews SYN packets asynchronously.
-   pbscan - is a faster and more efficient stateless SYN scanner and banner grabber.
-   hping - is a command-line oriented TCP/IP packet assembler/analyzer.
-   mtr - is a tool that combines the functionality of the 'traceroute' and 'ping' programs in a single tool.
-   mylg - utility which combines the functions of the different network probes in one diagnostic tool.
-   netcat - utility which reads and writes data across network connections, using the TCP/IP protocol.
-   socat - utility which transfers data between two objects.
-   tcpdump - is a powerful command-line packet analyzer.
-   tshark - is a tool that allows us to dump and analyze network traffic (wireshark cli).
-   Termshark - is a simple terminal user-interface for tshark.
-   ngrep - is like GNU grep applied to the network layer.
-   netsniff-ng - is a Swiss army knife for your daily Linux network plumbing if you will.
-   sockdump - dump unix domain socket traffic.
-   stenographer - is a packet capture solution which aims to quickly spool all packets to disk.
-   tcpterm - visualize packets in TUI.
-   bmon - is a monitoring and debugging tool to capture networking related statistics and prepare them visually.
-   iptraf-ng - is a console-based network monitoring program for Linux that displays information about IP traffic.
-   vnstat - is a network traffic monitor for Linux and BSD.
-   iPerf3 - is a tool for active measurements of the maximum achievable bandwidth on IP networks.
-   ethr - is a Network Performance Measurement Tool for TCP, UDP & HTTP.
-   Etherate - is a Linux CLI based Ethernet and MPLS traffic testing tool.
-   echoip - is a IP address lookup service.
-   Nemesis - packet manipulation CLI tool; craft and inject packets of several protocols.
-   packetfu - a mid-level packet manipulation library for Ruby.
-   Scapy - packet manipulation library; forge, send, decode, capture packets of a wide number of protocols.
-   impacket - is a collection of Python classes for working with network protocols.
-   ssh-audit - is a tool for SSH server auditing.
-   aria2 - is a lightweight multi-protocol & multi-source command-line download utility.
-   iptables-tracer - observe the path of packets through the iptables chains.
-   inception - a highly configurable tool to check for whatever you like against any number of hosts.
-   mRemoteNG - a fork of mRemote, multi-tabbed PuTTy on steroids!
-

- -##### :black_small_square: Network (DNS) - -

-   dnsdiag - is a DNS diagnostics and performance measurement tools.
-   fierce - is a DNS reconnaissance tool for locating non-contiguous IP space.
-   subfinder - is a subdomain discovery tool that discovers valid subdomains for websites.
-   sublist3r - is a fast subdomains enumeration tool for penetration testers.
-   amass - is tool that obtains subdomain names by scraping data sources, crawling web archives, and more.
-   namebench - provides personalized DNS server recommendations based on your browsing history.
-   massdns - is a high-performance DNS stub resolver for bulk lookups and reconnaissance.
-   knock - is a tool to enumerate subdomains on a target domain through a wordlist.
-   dnsperf - DNS performance testing tools.
-   dnscrypt-proxy 2 - a flexible DNS proxy, with support for encrypted DNS protocols.
-   dnsdbq - API client providing access to passive DNS database systems.
-   grimd - fast dns proxy, built to black-hole internet advertisements and malware servers.
-    dnstwist - detect typosquatters, phishing attacks, fraud, and brand impersonation.
-

- -##### :black_small_square: Network (HTTP) - -

-   curl - is a command line tool and library for transferring data with URLs.
-   kurly - is an alternative to the widely popular curl program, written in Golang.
-   HTTPie - is an user-friendly HTTP client.
-   wuzz - is an interactive cli tool for HTTP inspection.
-   h2spec - is a conformance testing tool for HTTP/2 implementation.
-   h2t - is a simple tool to help sysadmins to hardening their websites.
-   htrace.sh - is a simple Swiss Army knife for http/https troubleshooting and profiling.
-   httpstat - is a tool that visualizes curl statistics in a way of beauty and clarity.
-   httplab - is an interactive web server.
-   Lynx - is a text browser for the World Wide Web.
-   Browsh - is a fully interactive, real-time, and modern text-based browser.
-   HeadlessBrowsers - a list of (almost) all headless web browsers in existence.
-   ab - is a single-threaded command line tool for measuring the performance of HTTP web servers.
-   siege - is an http load testing and benchmarking utility.
-   wrk - is a modern HTTP benchmarking tool capable of generating significant load.
-   wrk2 - is a constant throughput, correct latency recording variant of wrk.
-   vegeta - is a constant throughput, correct latency recording variant of wrk.
-   bombardier - is a fast cross-platform HTTP benchmarking tool written in Go.
-   gobench - http/https load testing and benchmarking tool.
-   hey - HTTP load generator, ApacheBench (ab) replacement, formerly known as rakyll/boom.
-   boom - is a script you can use to quickly smoke-test your web app deployment.
-   SlowHTTPTest - is a tool that simulates some Application Layer Denial of Service attacks by prolonging HTTP.
-   gobuster - is a free and open source directory/file & DNS busting tool written in Go.
-   ssllabs-scan - command-line reference-implementation client for SSL Labs APIs.
-   http-observatory - Mozilla HTTP Observatory cli version.
-   Hurl - is a command line tool to run and test HTTP requests with plain text.
-

- -##### :black_small_square: SSL - -

-   openssl - is a robust, commercial-grade, and full-featured toolkit for the TLS and SSL protocols.
-   gnutls-cli - client program to set up a TLS connection to some other computer.
-   sslyze - - fast and powerful SSL/TLS server scanning library.
-   sslscan - tests SSL/TLS enabled services to discover supported cipher suites.
-   testssl.sh - testing TLS/SSL encryption anywhere on any port.
-   cipherscan - a very simple way to find out which SSL ciphersuites are supported by a target.
-   spiped - is a utility for creating symmetrically encrypted and authenticated pipes between socket addresses.
-   Certbot - is EFF's tool to obtain certs from Let's Encrypt and (optionally) auto-enable HTTPS on your server.
-   mkcert - simple zero-config tool to make locally trusted development certificates with any names you'd like.
-   certstrap - tools to bootstrap CAs, certificate requests, and signed certificates.
-   Sublert - is a security and reconnaissance tool to automatically monitor new subdomains.
-   mkchain - open source tool to help you build a valid SSL certificate chain.
-   ssl-cert-check - SSL Certification Expiration Checker.
-

+All tool-list markdown files follow the structure and linking rules defined in [TOOL-TABLE-SCHEMA.md](./TOOL-TABLE-SCHEMA.md). ##### :black_small_square: Security @@ -295,41 +113,6 @@ Only main chapters:    PEASS - privilege escalation tools for Windows and Linux/Unix and MacOS.

-##### :black_small_square: System Diagnostics/Debuggers - -

-   strace - diagnostic, debugging and instructional userspace utility for Linux.
-   DTrace - is a performance analysis and troubleshooting tool.
-   ltrace - is a library call tracer, used to trace calls made by programs to library functions.
-   ptrace-burrito - is a friendly wrapper around ptrace.
-   perf-tools - performance analysis tools based on Linux perf_events (aka perf) and ftrace.
-   bpftrace - high-level tracing language for Linux eBPF.
-   sysdig - system exploration and troubleshooting tool with first class support for containers.
-   Valgrind - is an instrumentation framework for building dynamic analysis tools.
-   gperftools - high-performance multi-threaded malloc() implementation, plus some performance analysis tools.
-   glances - cross-platform system monitoring tool written in Python.
-   htop - interactive text-mode process viewer for Unix systems. It aims to be a better 'top'.
-   bashtop - Linux resource monitor written in pure Bash.
-   nmon - a single executable for performance monitoring and data analysis.
-   atop - ASCII performance monitor. Includes statistics for CPU, memory, disk, swap, network, and processes.
-   lsof - displays in its output information about files that are opened by processes.
-   FlameGraph - stack trace visualizer.
-   lsofgraph - convert Unix lsof output to a graph showing FIFO and UNIX interprocess communication.
-   rr - is a lightweight tool for recording, replaying and debugging execution of applications.
-   Performance Co-Pilot - a system performance analysis toolkit.
-   hexyl - a command-line hex viewer.
-   Austin - Python frame stack sampler for CPython.
-

- -##### :black_small_square: Log Analyzers - -

-   angle-grinder - slice and dice log files on the command line.
-   lnav - log file navigator with search and automatic refresh.
-   GoAccess - real-time web log analyzer and interactive viewer that runs in a terminal.
-   ngxtop - real-time metrics for nginx server.
-

- ##### :black_small_square: Databases

@@ -381,14 +164,7 @@ Only main chapters: #### GUI Tools  [[TOC]](#anger-table-of-contents) -##### :black_small_square: Terminal emulators -

-   Guake - is a dropdown terminal made for the GNOME desktop environment.
-   Terminator - is based on GNOME Terminal, useful features for sysadmins and other users.
-   Kitty - is a GPU based terminal emulator that supports smooth scrolling and images.
-   Alacritty - is a fast, cross-platform, OpenGL terminal emulator.
-

##### :black_small_square: Network @@ -454,35 +230,7 @@ Only main chapters:    sslClientInfo - client test (incl TLSv1.3 information).

-##### :black_small_square: SSL/Security -

-   SSLLabs Server Test - performs a deep analysis of the configuration of any SSL web server.
-   SSLLabs Server Test (DEV) - performs a deep analysis of the configuration of any SSL web server.
-   ImmuniWebยฎ SSLScan - test SSL/TLS (PCI DSS, HIPAA and NIST).
-   SSL Check - scan your website for non-secure content.
-   SSL Scanner - analyze website security.
-   CryptCheck - test your TLS server configuration (e.g. ciphers).
-   urlscan.io - service to scan and analyse websites.
-   Report URI - monitoring security policies like CSP and HPKP.
-   CSP Evaluator - allows developers and security experts to check if a Content Security Policy.
-   Useless CSP - public list about CSP in some big players (might make them care a bit more).
-   Why No HTTPS? - top 100 websites by Alexa rank not automatically redirecting insecure requests.
-   TLS Cipher Suite Search- cipher suite search engine.
-   cipherli.st - strong ciphers for Apache, Nginx, Lighttpd, and more.*
-   dhtool - public Diffie-Hellman parameter service/tool.
-   badssl.com - memorable site for testing clients against bad SSL configs.
-   tlsfun.de - registered for various tests regarding the TLS/SSL protocol.
-   CAA Record Helper - generate a CAA policy.
-   Common CA Database - repository of information about CAs, and their root and intermediate certificates.
-   CERTSTREAM - real-time certificate transparency log update stream.
-   crt.sh - discovers certificates by continually monitoring all of the publicly known CT.
-   Hardenize - deploy the security standards.
-   Cipher suite compatibility - test TLS cipher suite compatibility.
-   urlvoid - this service helps you detect potentially malicious websites.
-   security.txt - a proposed standard (generator) which allows websites to define security policies.
-   ssl-config-generator - help you follow the Mozilla Server Side TLS configuration guidelines.
-   TLScan - pure python, SSL/TLS protocol and cipher scanner/enumerator.

##### :black_small_square: HTTP Headers & Web Linters @@ -495,27 +243,7 @@ Only main chapters: ##### :black_small_square: DNS -

-   ViewDNS - one source for free DNS related tools and information.
-   DNSLookup - is an advanced DNS lookup tool.
-   DNSlytics - online DNS investigation tool.
-   DNS Spy - monitor, validate and verify your DNS configurations.
-   Zonemaster - helps you to control how your DNS works.
-   Leaf DNS - comprehensive DNS tester.
-   Find subdomains online - find subdomains for security assessment penetration test.
-   DNSdumpster - dns recon & research, find & lookup dns records.
-   DNS Table online - search for DNS records by domain, IP, CIDR, ISP.
-   intoDNS - DNS and mail server health checker.
-   DNS Bajaj - check the delegation of your domain.
-   BuddyDNS Delegation LAB - check, trace and visualize delegation of your domain.
-   dnssec-debugger - DS or DNSKEY records validator.
-   PTRarchive.com - this site is responsible for the safekeeping of historical reverse DNS records.
-   xip.io - wildcard DNS for everyone.
-   nip.io - dead simple wildcard DNS for any IP Address.
-   dnslookup (ceipam) - one of the best DNS propagation checker (and not only).
-   What's My DNS - DNS propagation checking tool.
-   DNSGrep - quickly searching large DNS datasets.
-

+ ##### :black_small_square: Mail @@ -540,22 +268,6 @@ Only main chapters:    The Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis.

-##### :black_small_square: Net-tools - -

-   Netcraft - detailed report about the site, helping you to make informed choices about their integrity.*
-   RIPE NCC Atlas - a global, open, distributed Internet measurement platform.
-   Robtex - uses various sources to gather public information about IP numbers, domain names, host names, etc.
-   Security Trails - APIs for Security Companies, Researchers and Teams.
-   Online Curl - curl test, analyze HTTP Response Headers.
-   Online Tools for Developers - HTTP API tools, testers, encoders, converters, formatters, and other tools.
-   Ping.eu - online Ping, Traceroute, DNS lookup, WHOIS and others.
-   Network-Tools - network tools for webmasters, IT technicians & geeks.
-   BGPview - search for any ASN, IP, Prefix or Resource name.
-   Is BGP safe yet? - check BGP (RPKI) security of ISPs and other major Internet players.
-   Riseup - provides online communication tools for people and groups working on liberatory social change.
-   VirusTotal - analyze suspicious files and URLs to detect types of malware.
-

##### :black_small_square: Privacy @@ -654,16 +366,7 @@ performance of any of your sites from across the globe.
##### :black_small_square: CVE/Exploits databases -

-   CVE Mitre - list of publicly known cybersecurity vulnerabilities.
-   CVE Details - CVE security vulnerability advanced database.
-   Exploit DB - CVE compliant archive of public exploits and corresponding vulnerable software.
-   0day.today - exploits market provides you the possibility to buy/sell zero-day exploits.
-   sploitus - the exploit and tools database.
-   cxsecurity - free vulnerability database.
-   Vulncode-DB - is a database for vulnerabilities and their corresponding source code if available.
-   cveapi - free API for CVE data.
-

+ ##### :black_small_square: Mobile apps scanners @@ -784,54 +487,6 @@ performance of any of your sites from across the globe.
   LBNL's Network Research Group - home page of the Network Research Group (NRG).

-#### Containers/Orchestration  [[TOC]](#anger-table-of-contents) - -##### :black_small_square: CLI Tools - -

-   gvisor - container runtime sandbox.
-   ctop - top-like interface for container metrics.
-

- -##### :black_small_square: Web Tools - -

-   Moby - a collaborative project for the container ecosystem to assemble container-based system.
-   Traefik - open source reverse proxy/load balancer provides easier integration with Docker and Let's encrypt.
-   kong - The Cloud-Native API Gateway.
-   rancher - complete container management platform.
-   portainer - making Docker management easy.
-   nginx-proxy - automated nginx proxy for Docker containers using docker-gen.
-   bunkerized-nginx - nginx docker image "secure by default".
-

- -##### :black_small_square: Security - -

-   docker-bench-security - checks for dozens of common best-practices around deploying Docker.
-   trivy - vulnerability scanner for containers, suitable for CI.
-   Harbor - cloud native registry project that stores, signs, and scans content.
-   Houdini - hundreds of offensive and useful docker images for network intrusion.
-

- -##### :black_small_square: Manuals/Tutorials/Best Practices - -

-   docker-cheat-sheet - a quick reference cheat sheet on Docker.
-   awesome-docker - a curated list of Docker resources and projects.
-   docker_practice - learn and understand Docker technologies, with real DevOps practice!
-   labs - - is a collection of tutorials for learning how to use Docker with various tools.
-   dockerfiles - various Dockerfiles I use on the desktop and on servers.
-   kubernetes-the-hard-way - bootstrap Kubernetes the hard way on Google Cloud Platform. No scripts.
-   kubernetes-the-easy-way - bootstrap Kubernetes the easy way on Google Cloud Platform. No scripts.
-   cheatsheet-kubernetes-A4 - Kubernetes CheatSheets in A4.
-   k8s-security - kubernetes security notes and best practices.
-   kubernetes-production-best-practices - checklists with best-practices for production-ready Kubernetes.
-   kubernetes-production-best-practices - kubernetes security - best practice guide.
-   kubernetes-failure-stories - is a compilation of public failure/horror stories related to Kubernetes.
-

- #### Manuals/Howtos/Tutorials  [[TOC]](#anger-table-of-contents) ##### :black_small_square: Shell/Command line @@ -1228,68 +883,6 @@ CyberTalks - talks, interviews, and article about cybersecurity.
   Diffie-Hellman Key Exchange (short version) - how Diffie-Hellman Key Exchange worked.

-#### Hacking/Penetration Testing  [[TOC]](#anger-table-of-contents) - -##### :black_small_square: Pentesters arsenal tools - -

-   Sandcat Browser - a penetration-oriented browser with plenty of advanced functionality already built in.
-   Metasploit - tool and framework for pentesting system, web and many more.
-   Burp Suite - tool for testing web app security, intercepting proxy to replay, inject, scan and fuzz.
-   OWASP Zed Attack Proxy - intercepting proxy to replay, inject, scan and fuzz HTTP requests.
-   w3af - is a Web Application Attack and Audit Framework.
-   mitmproxy - an interactive TLS-capable intercepting HTTP proxy for penetration testers.
-   Nikto2 - web server scanner which performs comprehensive tests against web servers for multiple items.
-   sqlmap - tool that automates the process of detecting and exploiting SQL injection flaws.
-   Recon-ng - is a full-featured Web Reconnaissance framework written in Python.
-   AutoRecon - is a network reconnaissance tool which performs automated enumeration of services.
-   Faraday - an Integrated Multiuser Pentest Environment.
-   Photon - incredibly fast crawler designed for OSINT.
-   XSStrike - most advanced XSS detection suite.
-   Sn1per - automated pentest framework for offensive security experts.
-   vuls - is an agent-less vulnerability scanner for Linux, FreeBSD, and other.
-   tsunami - is a general purpose network security scanner with an extensible plugin system.
-   aquatone - a tool for domain flyovers.
-   BillCipher - information gathering tool for a website or IP address.
-   WhatWaf - detect and bypass web application firewalls and protection systems.
-   Corsy - CORS misconfiguration scanner.
-   Raccoon - is a high performance offensive security tool for reconnaissance and vulnerability scanning.
-   dirhunt - find web directories without bruteforce.
-   John The Ripper - is a fast password cracker, currently available for many flavors of Unix, Windows, and other.
-   hashcat - world's fastest and most advanced password recovery utility.
-   p0f - is a tool to identify the players behind any incidental TCP/IP communications.
-   ssh_scan - a prototype SSH configuration and policy scanner.
-   LeakLooker - find open databases - powered by Binaryedge.io
-   exploitdb - searchable archive from The Exploit Database.
-   getsploit - is a command line utility for searching and downloading exploits.
-   ctf-tools - some setup scripts for security research tools.
-   pwntools - CTF framework and exploit development library.
-   security-tools - collection of small security tools created mostly in Python. CTFs, pentests and so on.
-   pentestpackage - is a package of Pentest scripts.
-   python-pentest-tools - python tools for penetration testers.
-   fuzzdb - dictionary of attack patterns and primitives for black-box application fault injection.
-   AFL - is a free software fuzzer maintained by Google.
-   AFL++ - is AFL with community patches.
-   syzkaller - is an unsupervised, coverage-guided kernel fuzzer.
-   pwndbg - exploit development and reverse engineering with GDB made easy.
-   GDB PEDA - Python Exploit Development Assistance for GDB.
-   IDA - multi-processor disassembler and debugger useful for reverse engineering malware.
-   radare2 - framework for reverse-engineering and analyzing binaries.
-   routersploit - exploitation framework for embedded devices.
-   Ghidra - is a software reverse engineering (SRE) framework.
-   Cutter - is an SRE platform integrating Ghidra's decompiler.
-   Vulnreport - open-source pentesting management and automation platform by Salesforce Product Security.
-   Mentalist - is a graphical tool for custom wordlist generation.
-   archerysec - vulnerability assessment and management helps to perform scans and manage vulnerabilities.
-   Osmedeus - fully automated offensive security tool for reconnaissance and vulnerability scanning.
-   beef - the browser exploitation framework project.
-   AutoSploit - automated mass exploiter.
-   SUDO_KILLER - is a tool to identify and exploit sudo rules' misconfigurations and vulnerabilities.
-   yara - the pattern matching swiss knife.
-   mimikatz - a little tool to play with Windows security.
-   sherlock - hunt down social media accounts by username across social networks.
-   OWASP Threat Dragon - is a tool used to create threat model diagrams and to record possible threats.
-

##### :black_small_square: Pentests bookmarks collection @@ -1545,2898 +1138,3 @@ AWS deployment tool.
   simple-computer - the scott CPU from "But How Do It Know?" by J. Clark Scott.
   littleosbook - the little book about OS development.

- -###### DNS Servers list (privacy) - -| IP | URL | -| :--- | :--- | -| **`84.200.69.80`** | [dns.watch](https://dns.watch/) | -| **`94.247.43.254`** | [opennic.org](https://www.opennic.org/) | -| **`64.6.64.6`** | [verisign.com](https://www.verisign.com/en_US/security-services/public-dns/index.xhtml) | -| **`89.233.43.71`** | [censurfridns.dk](https://blog.uncensoreddns.org/) | -| **`1.1.1.1`** | [cloudflare.com](https://1.1.1.1/) | -| **`94.130.110.185`** | [dnsprivacy.at](https://dnsprivacy.at/) | - -###### TOP Browser extensions - -| Extension name | Description | -| :--- | :--- | -| **`IPvFoo`** | Display the server IP address and HTTPS information across all page elements. | -| **`FoxyProxy`** | Simplifies configuring browsers to access proxy-servers. | -| **`HTTPS Everywhere`** | Automatically use HTTPS security on many sites. | -| **`uMatrix`** | Point & click to forbid/allow any class of requests made by your browser. | -| **`uBlock Origin`** | An efficient blocker: easy on memory and CPU footprint. | -| **`Session Buddy`** | Manage browser tabs and bookmarks with ease. | -| **`SuperSorter`** | Sort bookmarks recursively, delete duplicates, merge folders, and more. | -| **`Clear Cache`** | Clear your cache and browsing data. | -| **`d3coder`** | Encoding/Decoding plugin for various types of encoding. | -| **`Web Developer`** | Adds a toolbar button with various web developer tools. | -| **`ThreatPinch Lookup`** | Add threat intelligence hover tool tips. | - -###### TOP Burp extensions - -| Extension name | Description | -| :--- | :--- | -| **`Active Scan++`** | Extends Burp's active and passive scanning capabilities. | -| **`Autorize`** | Automatically detects authorization enforcement. | -| **`AuthMatrix`** | A simple matrix grid to define the desired levels of access privilege. | -| **`Logger++`** | Logs requests and responses for all Burp tools in a sortable table. | -| **`Bypass WAF`** | Adds headers useful for bypassing some WAF devices. | -| **`JSON Beautifier`** | Beautifies JSON content in the HTTP message viewer. | -| **`JSON Web Tokens`** | Enables Burp to decode and manipulate JSON web tokens. | -| **`CSP Auditor`** | Displays CSP headers for responses, and passively reports CSP weaknesses. | -| **`CSP-Bypass`** | Passively scans for CSP headers that contain known bypasses. | -| **`Hackvertor`** | Converts data using a tag-based configuration to apply various encoding. | -| **`HTML5 Auditor`** | Scans for usage of risky HTML5 features. | -| **`Software Vulnerability Scanner`** | Vulnerability scanner based on vulners.com audit API. | -| **`Turbo Intruder`** | Is a powerful bruteforcing tool. | -| **`Upload Scanner`** | Upload a number of different file types, laced with different forms of payload. | - -###### Hack Mozilla Firefox address bar - -In Firefox's address bar, you can limit results by typing special characters before or after your term: - -- `^` - for matches in your browsing history -- `*` - for matches in your bookmarks. -- `%` - for matches in your currently open tabs. -- `#` - for matches in page titles. -- `@` - for matches in web addresses. - -###### Chrome hidden commands - -- `chrome://chrome-urls` - list of all commands -- `chrome://flags` - enable experiments and development features -- `chrome://interstitials` - errors and warnings -- `chrome://net-internals` - network internals (events, dns, cache) -- `chrome://network-errors` - network errors -- `chrome://net-export` - start logging future network activity to a file -- `chrome://safe-browsing` - safe browsing options -- `chrome://user-actions` - record all user actions -- `chrome://restart` - restart chrome -- `chrome://dino` - ERR_INTERNET_DISCONNECTED... -- `cache:` - view the cached version of the web page - -###### Bypass WAFs by Shortening IP Address (by [0xInfection](https://twitter.com/0xInfection)) - -IP addresses can be shortened by dropping the zeroes: - -``` -http://1.0.0.1 โ†’ http://1.1 -http://127.0.0.1 โ†’ http://127.1 -http://192.168.0.1 โ†’ http://192.168.1 - -http://0xC0A80001 or http://3232235521 โ†’ 192.168.0.1 -http://192.168.257 โ†’ 192.168.1.1 -http://192.168.516 โ†’ 192.168.2.4 -``` - - > This bypasses WAF filters for SSRF, open-redirect, etc where any IP as input gets blacklisted. - -For more information please see [How to Obscure Any URL](http://www.pc-help.org/obscure.htm) and [Magic IP Address Shortcuts](https://stuff-things.net/2014/09/25/magic-ip-address-shortcuts/). - -###### Hashing, encryption and encoding (by [Michal ล paฤek](https://twitter.com/spazef0rze)) - -_Hashing_ - -plaintext :arrow_right: hash
-hash :no_entry: plaintext - -_Symmetric encryption_ - -plaintext :arrow_right: :key: :arrow_right: ciphertext
-plaintext :arrow_left: :key: :arrow_left: ciphertext
-(:key: shared key) - -_Asymmetric encryption_ - -plaintext :arrow_right: :key: :arrow_right: ciphertext
-plaintext :arrow_left: :part_alternation_mark: :arrow_left: ciphertext
-(:key: public key, :part_alternation_mark: private key)
- -_Encoding_ - -text :arrow_right: encoded
-text :arrow_left: encoded - -#### Shell One-liners  [[TOC]](#anger-table-of-contents) - -##### Table of Contents - - * [terminal](#tool-terminal) - * [busybox](#tool-busybox) - * [mount](#tool-mount) - * [fuser](#tool-fuser) - * [lsof](#tool-lsof) - * [ps](#tool-ps) - * [top](#tool-top) - * [vmstat](#tool-vmstat) - * [iostat](#tool-iostat) - * [strace](#tool-strace) - * [kill](#tool-kill) - * [find](#tool-find) - * [diff](#tool-diff) - * [vimdiff](#tool-vimdiff) - * [tail](#tool-tail) - * [cpulimit](#tool-cpulimit) - * [pwdx](#tool-pwdx) - * [tr](#tool-tr) - * [chmod](#tool-chmod) - * [who](#tool-who) - * [last](#tool-last) - * [screen](#tool-screen) - * [script](#tool-script) - * [du](#tool-du) - * [inotifywait](#tool-inotifywait) - * [openssl](#tool-openssl) - * [secure-delete](#tool-secure-delete) - * [dd](#tool-dd) - * [gpg](#tool-gpg) - * [system-other](#tool-system-other) - * [curl](#tool-curl) - * [httpie](#tool-httpie) - * [ssh](#tool-ssh) - * [linux-dev](#tool-linux-dev) - * [tcpdump](#tool-tcpdump) - * [tcpick](#tool-tcpick) - * [ngrep](#tool-ngrep) - * [hping3](#tool-hping3) - * [nmap](#tool-nmap) - * [netcat](#tool-netcat) - * [socat](#tool-socat) - * [p0f](#tool-p0f) - * [gnutls-cli](#tool-gnutls-cli) - * [netstat](#tool-netstat) - * [rsync](#tool-rsync) - * [host](#tool-host) - * [dig](#tool-dig) - * [certbot](#tool-certbot) - * [network-other](#tool-network-other) - * [git](#tool-git) - * [awk](#tool-awk) - * [sed](#tool-sed) - * [grep](#tool-grep) - * [perl](#tool-perl) - -##### Tool: [terminal](https://en.wikipedia.org/wiki/Linux_console) - -###### Reload shell without exit - -```bash -exec $SHELL -l -``` - -###### Close shell keeping all subprocess running - -```bash -disown -a && exit -``` - -###### Exit without saving shell history - -```bash -kill -9 $$ -unset HISTFILE && exit -``` - -###### Perform a branching conditional - -```bash -true && echo success -false || echo failed -``` - -###### Pipe stdout and stderr to separate commands - -```bash -some_command > >(/bin/cmd_for_stdout) 2> >(/bin/cmd_for_stderr) -``` - -###### Redirect stdout and stderr each to separate files and print both to the screen - -```bash -(some_command 2>&1 1>&3 | tee errorlog ) 3>&1 1>&2 | tee stdoutlog -``` - -###### List of commands you use most often - -```bash -history | \ -awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | \ -grep -v "./" | \ -column -c3 -s " " -t | \ -sort -nr | nl | head -n 20 -``` - -###### Sterilize bash history - -```bash -function sterile() { - - history | awk '$2 != "history" { $1=""; print $0 }' | egrep -vi "\ -curl\b+.*(-E|--cert)\b+.*\b*|\ -curl\b+.*--pass\b+.*\b*|\ -curl\b+.*(-U|--proxy-user).*:.*\b*|\ -curl\b+.*(-u|--user).*:.*\b* -.*(-H|--header).*(token|auth.*)\b+.*|\ -wget\b+.*--.*password\b+.*\b*|\ -http.?://.+:.+@.*\ -" > $HOME/histbuff; history -r $HOME/histbuff; - -} - -export PROMPT_COMMAND="sterile" -``` - - > Look also: [A naive utility to censor credentials in command history](https://github.com/lbonanomi/go/blob/master/revisionist.go). - -###### Quickly backup a file - -```bash -cp filename{,.orig} -``` - -###### Empty a file (truncate to 0 size) - -```bash ->filename -``` - -###### Delete all files in a folder that don't match a certain file extension - -```bash -rm !(*.foo|*.bar|*.baz) -``` - -###### Pass multi-line string to a file - -```bash -# cat >filename ... - overwrite the file -# cat >>filename ... - append to a file -cat > filename << __EOF__ -data data data -__EOF__ -``` - -###### Edit a file on a remote host using vim - -```bash -vim scp://user@host//etc/fstab -``` - -###### Create a directory and change into it at the same time - -```bash -mkd() { mkdir -p "$@" && cd "$@"; } -``` - -###### Convert uppercase files to lowercase files - -```bash -rename 'y/A-Z/a-z/' * -``` - -###### Print a row of characters across the terminal - -```bash -printf "%`tput cols`s" | tr ' ' '#' -``` - -###### Show shell history without line numbers - -```bash -history | cut -c 8- -fc -l -n 1 | sed 's/^\s*//' -``` - -###### Run command(s) after exit session - -```bash -cat > /etc/profile << __EOF__ -_after_logout() { - - username=$(whoami) - - for _pid in $(ps afx | grep sshd | grep "$username" | awk '{print $1}') ; do - - kill -9 $_pid - - done - -} -trap _after_logout EXIT -__EOF__ -``` - -###### Generate a sequence of numbers - -```bash -for ((i=1; i<=10; i+=2)) ; do echo $i ; done -# alternative: seq 1 2 10 - -for ((i=5; i<=10; ++i)) ; do printf '%02d\n' $i ; done -# alternative: seq -w 5 10 - -for i in {1..10} ; do echo $i ; done -``` - -###### Simple Bash filewatching - -```bash -unset MAIL; export MAILCHECK=1; export MAILPATH='$FILE_TO_WATCH?$MESSAGE' -``` - ---- - -##### Tool: [busybox](https://www.busybox.net/) - -###### Static HTTP web server - -```bash -busybox httpd -p $PORT -h $HOME [-c httpd.conf] -``` - -___ - -##### Tool: [mount](https://en.wikipedia.org/wiki/Mount_(Unix)) - -###### Mount a temporary ram partition - -```bash -mount -t tmpfs tmpfs /mnt -o size=64M -``` - - * `-t` - filesystem type - * `-o` - mount options - -###### Remount a filesystem as read/write - -```bash -mount -o remount,rw / -``` - -___ - -##### Tool: [fuser](https://en.wikipedia.org/wiki/Fuser_(Unix)) - -###### Show which processes use the files/directories - -```bash -fuser /var/log/daemon.log -fuser -v /home/supervisor -``` - -###### Kills a process that is locking a file - -```bash -fuser -ki filename -``` - - * `-i` - interactive option - -###### Kills a process that is locking a file with specific signal - -```bash -fuser -k -HUP filename -``` - - * `--list-signals` - list available signal names - -###### Show what PID is listening on specific port - -```bash -fuser -v 53/udp -``` - -###### Show all processes using the named filesystems or block device - -```bash -fuser -mv /var/www -``` - -___ - -##### Tool: [lsof](https://en.wikipedia.org/wiki/Lsof) - -###### Show process that use internet connection at the moment - -```bash -lsof -P -i -n -``` - -###### Show process that use specific port number - -```bash -lsof -i tcp:443 -``` - -###### Lists all listening ports together with the PID of the associated process - -```bash -lsof -Pan -i tcp -i udp -``` - -###### List all open ports and their owning executables - -```bash -lsof -i -P | grep -i "listen" -``` - -###### Show all open ports - -```bash -lsof -Pnl -i -``` - -###### Show open ports (LISTEN) - -```bash -lsof -Pni4 | grep LISTEN | column -t -``` - -###### List all files opened by a particular command - -```bash -lsof -c "process" -``` - -###### View user activity per directory - -```bash -lsof -u username -a +D /etc -``` - -###### Show 10 largest open files - -```bash -lsof / | \ -awk '{ if($7 > 1048576) print $7/1048576 "MB" " " $9 " " $1 }' | \ -sort -n -u | tail | column -t -``` - -###### Show current working directory of a process - -```bash -lsof -p | grep cwd -``` - -___ - -##### Tool: [ps](https://en.wikipedia.org/wiki/Ps_(Unix)) - -###### Show a 4-way scrollable process tree with full details - -```bash -ps awwfux | less -S -``` - -###### Processes per user counter - -```bash -ps hax -o user | sort | uniq -c | sort -r -``` - -###### Show all processes by name with main header - -```bash -ps -lfC nginx -``` - -___ - -##### Tool: [find](https://en.wikipedia.org/wiki/Find_(Unix)) - -###### Find files that have been modified on your system in the past 60 minutes - -```bash -find / -mmin 60 -type f -``` - -###### Find all files larger than 20M - -```bash -find / -type f -size +20M -``` - -###### Find duplicate files (based on MD5 hash) - -```bash -find -type f -exec md5sum '{}' ';' | sort | uniq --all-repeated=separate -w 33 -``` - -###### Change permission only for files - -```bash -cd /var/www/site && find . -type f -exec chmod 766 {} \; -cd /var/www/site && find . -type f -exec chmod 664 {} + -``` - -###### Change permission only for directories - -```bash -cd /var/www/site && find . -type d -exec chmod g+x {} \; -cd /var/www/site && find . -type d -exec chmod g+rwx {} + -``` - -###### Find files and directories for specific user/group - -```bash -# User: -find . -user -print -find /etc -type f -user -name "*.conf" - -# Group: -find /opt -group -find /etc -type f -group -iname "*.conf" -``` - -###### Find files and directories for all without specific user/group - -```bash -# User: -find . \! -user -print - -# Group: -find . \! -group -``` - -###### Looking for files/directories that only have certain permission - -```bash -# User -find . -user -perm -u+rw # -rw-r--r-- -find /home -user $(whoami) -perm 777 # -rwxrwxrwx - -# Group: -find /home -type d -group -perm 755 # -rwxr-xr-x -``` - -###### Delete older files than 60 days - -```bash -find . -type f -mtime +60 -delete -``` - -###### Recursively remove all empty sub-directories from a directory - -```bash -find . -depth -type d -empty -exec rmdir {} \; -``` - -###### How to find all hard links to a file - -```bash -find -xdev -samefile filename -``` - -###### Recursively find the latest modified files - -```bash -find . -type f -exec stat --format '%Y :%y %n' "{}" \; | sort -nr | cut -d: -f2- | head -``` - -###### Recursively find/replace of a string with sed - -```bash -find . -not -path '*/\.git*' -type f -print0 | xargs -0 sed -i 's/foo/bar/g' -``` - -###### Recursively find/replace of a string in directories and file names - -```bash -find . -depth -name '*test*' -execdir bash -c 'mv -v "$1" "${1//foo/bar}"' _ {} \; -``` - -###### Recursively find suid executables - -```bash -find / \( -perm -4000 -o -perm -2000 \) -type f -exec ls -la {} \; -``` - -___ - -##### Tool: [top](https://en.wikipedia.org/wiki/Top_(software)) - -###### Use top to monitor only all processes with the specific string - -```bash -top -p $(pgrep -d , ) -``` - - * `` - process containing string (eg. nginx, worker) - -___ - -##### Tool: [vmstat](https://en.wikipedia.org/wiki/Vmstat) - -###### Show current system utilization (fields in kilobytes) - -```bash -vmstat 2 20 -t -w -``` - - * `2` - number of times with a defined time interval (delay) - * `20` - each execution of the command (count) - * `-t` - show timestamp - * `-w` - wide output - * `-S M` - output of the fields in megabytes instead of kilobytes - -###### Show current system utilization will get refreshed every 5 seconds - -```bash -vmstat 5 -w -``` - -###### Display report a summary of disk operations - -```bash -vmstat -D -``` - -###### Display report of event counters and memory stats - -```bash -vmstat -s -``` - -###### Display report about kernel objects stored in slab layer cache - -```bash -vmstat -m -``` - -##### Tool: [iostat](https://en.wikipedia.org/wiki/Iostat) - -###### Show information about the CPU usage, and I/O statistics about all the partitions - -```bash -iostat 2 10 -t -m -``` - - * `2` - number of times with a defined time interval (delay) - * `10` - each execution of the command (count) - * `-t` - show timestamp - * `-m` - fields in megabytes (`-k` - in kilobytes, default) - -###### Show information only about the CPU utilization - -```bash -iostat 2 10 -t -m -c -``` - -###### Show information only about the disk utilization - -```bash -iostat 2 10 -t -m -d -``` - -###### Show information only about the LVM utilization - -```bash -iostat -N -``` - -___ - -##### Tool: [strace](https://en.wikipedia.org/wiki/Strace) - -###### Track with child processes - -```bash -# 1) -strace -f -p $(pidof glusterfsd) - -# 2) -strace -f $(pidof php-fpm | sed 's/\([0-9]*\)/\-p \1/g') -``` - -###### Track process with 30 seconds limit - -```bash -timeout 30 strace $(< /var/run/zabbix/zabbix_agentd.pid) -``` - -###### Track processes and redirect output to a file - -```bash -ps auxw | grep '[a]pache' | awk '{print " -p " $2}' | \ -xargs strace -o /tmp/strace-apache-proc.out -``` - -###### Track with print time spent in each syscall and limit length of print strings - -```bash -ps auxw | grep '[i]init_policy' | awk '{print " -p " $2}' | \ -xargs strace -f -e trace=network -T -s 10000 -``` - -###### Track the open request of a network port - -```bash -strace -f -e trace=bind nc -l 80 -``` - -###### Track the open request of a network port (show TCP/UDP) - -```bash -strace -f -e trace=network nc -lu 80 -``` - -___ - -##### Tool: [kill](https://en.wikipedia.org/wiki/Kill_(command)) - -###### Kill a process running on port - -```bash -kill -9 $(lsof -i : | awk '{l=$2} END {print l}') -``` - -___ - -##### Tool: [diff](https://en.wikipedia.org/wiki/Diff) - -###### Compare two directory trees - -```bash -diff <(cd directory1 && find | sort) <(cd directory2 && find | sort) -``` - -###### Compare output of two commands - -```bash -diff <(cat /etc/passwd) <(cut -f2 /etc/passwd) -``` - -___ - -##### Tool: [vimdiff](http://vimdoc.sourceforge.net/htmldoc/diff.html) - -###### Highlight the exact differences, based on characters and words - -```bash -vimdiff file1 file2 -``` - -###### Compare two JSON files - -```bash -vimdiff <(jq -S . A.json) <(jq -S . B.json) -``` - -###### Compare Hex dump - -```bash -d(){ vimdiff <(f $1) <(f $2);};f(){ hexdump -C $1 | cut -d' ' -f3- | tr -s ' ';}; d ~/bin1 ~/bin2 -``` - -###### diffchar - -Save [diffchar](https://raw.githubusercontent.com/vim-scripts/diffchar.vim/master/plugin/diffchar.vim) @ `~/.vim/plugins` - -Click `F7` to switch between diff modes - -Usefull `vimdiff` commands: - -* `qa` to exit all windows -* `:vertical resize 70` to resize window -* set window width `Ctrl+W [N columns]+(Shift+)<\>` - -___ - -##### Tool: [tail](https://en.wikipedia.org/wiki/Tail_(Unix)) - -###### Annotate tail -f with timestamps - -```bash -tail -f file | while read ; do echo "$(date +%T.%N) $REPLY" ; done -``` - -###### Analyse an Apache access log for the most common IP addresses - -```bash -tail -10000 access_log | awk '{print $1}' | sort | uniq -c | sort -n | tail -``` - -###### Analyse web server log and show only 5xx http codes - -```bash -tail -n 100 -f /path/to/logfile | grep "HTTP/[1-2].[0-1]\" [5]" -``` - -___ - -##### Tool: [tar](https://en.wikipedia.org/wiki/Tar_(computing)) - -###### System backup with exclude specific directories - -```bash -cd / -tar -czvpf /mnt/system$(date +%d%m%Y%s).tgz --directory=/ \ ---exclude=proc/* --exclude=sys/* --exclude=dev/* --exclude=mnt/* . -``` - -###### System backup with exclude specific directories (pigz) - -```bash -cd / -tar cvpf /backup/snapshot-$(date +%d%m%Y%s).tgz --directory=/ \ ---exclude=proc/* --exclude=sys/* --exclude=dev/* \ ---exclude=mnt/* --exclude=tmp/* --use-compress-program=pigz . -``` - -___ - -##### Tool: [dump](https://en.wikipedia.org/wiki/Dump_(program)) - -###### System backup to file - -```bash -dump -y -u -f /backup/system$(date +%d%m%Y%s).lzo / -``` - -###### Restore system from lzo file - -```bash -cd / -restore -rf /backup/system$(date +%d%m%Y%s).lzo -``` - -___ - -##### Tool: [cpulimit](http://cpulimit.sourceforge.net/) - -###### Limit the cpu usage of a process - -```bash -cpulimit -p pid -l 50 -``` - -___ - -##### Tool: [pwdx](https://www.cyberciti.biz/faq/unix-linux-pwdx-command-examples-usage-syntax/) - -###### Show current working directory of a process - -```bash -pwdx -``` - -___ - -##### Tool: [taskset](https://www.cyberciti.biz/faq/taskset-cpu-affinity-command/) - -###### Start a command on only one CPU core - -```bash -taskset -c 0 -``` - -___ - -##### Tool: [tr](https://en.wikipedia.org/wiki/Tr_(Unix)) - -###### Show directories in the PATH, one per line - -```bash -tr : '\n' <<<$PATH -``` - -___ - -##### Tool: [chmod](https://en.wikipedia.org/wiki/Chmod) - -###### Remove executable bit from all files in the current directory - -```bash -chmod -R -x+X * -``` - -###### Restore permission for /bin/chmod - -```bash -# 1: -cp /bin/ls chmod.01 -cp /bin/chmod chmod.01 -./chmod.01 700 file - -# 2: -/bin/busybox chmod 0700 /bin/chmod - -# 3: -setfacl --set u::rwx,g::---,o::--- /bin/chmod -``` - -___ - -##### Tool: [who](https://en.wikipedia.org/wiki/Who_(Unix)) - -###### Find last reboot time - -```bash -who -b -``` - -###### Detect a user sudo-su'd into the current shell - -```bash -[[ $(who -m | awk '{ print $1 }') == $(whoami) ]] || echo "You are su-ed to $(whoami)" -``` - -___ - -##### Tool: [last](https://www.howtoforge.com/linux-last-command/) - -###### Was the last reboot a panic? - -```bash -(last -x -f $(ls -1t /var/log/wtmp* | head -2 | tail -1); last -x -f /var/log/wtmp) | \ -grep -A1 reboot | head -2 | grep -q shutdown && echo "Expected reboot" || echo "Panic reboot" -``` - -___ - -##### Tool: [screen](https://en.wikipedia.org/wiki/GNU_Screen) - -###### Start screen in detached mode - -```bash -screen -d -m -``` - -###### Attach to an existing screen session - -```bash -screen -r -d -``` - -___ - -##### Tool: [script](https://en.wikipedia.org/wiki/Script_(Unix)) - -###### Record and replay terminal session - -```bash -### Record session -# 1) -script -t 2>~/session.time -a ~/session.log - -# 2) -script --timing=session.time session.log - -### Replay session -scriptreplay --timing=session.time session.log -``` - -___ - -##### Tool: [du](https://en.wikipedia.org/wiki/GNU_Screen) - -###### Show 20 biggest directories with 'K M G' - -```bash -du | \ -sort -r -n | \ -awk '{split("K M G",v); s=1; while($1>1024){$1/=1024; s++} print int($1)" "v[s]"\t"$2}' | \ -head -n 20 -``` - -___ - -##### Tool: [inotifywait](https://en.wikipedia.org/wiki/GNU_Screen) - -###### Init tool everytime a file in a directory is modified - -```bash -while true ; do inotifywait -r -e MODIFY dir/ && ls dir/ ; done; -``` - -___ - -##### Tool: [openssl](https://www.openssl.org/) - -###### Testing connection to the remote host - -```bash -echo | openssl s_client -connect google.com:443 -showcerts -``` - -###### Testing connection to the remote host (debug mode) - -```bash -echo | openssl s_client -connect google.com:443 -showcerts -tlsextdebug -status -``` - -###### Testing connection to the remote host (with SNI support) - -```bash -echo | openssl s_client -showcerts -servername google.com -connect google.com:443 -``` - -###### Testing connection to the remote host with specific ssl version - -```bash -openssl s_client -tls1_2 -connect google.com:443 -``` - -###### Testing connection to the remote host with specific ssl cipher - -```bash -openssl s_client -cipher 'AES128-SHA' -connect google.com:443 -``` - -###### Verify 0-RTT - -```bash -_host="example.com" - -cat > req.in << __EOF__ -HEAD / HTTP/1.1 -Host: $_host -Connection: close -__EOF__ - -openssl s_client -connect ${_host}:443 -tls1_3 -sess_out session.pem -ign_eof < req.in -openssl s_client -connect ${_host}:443 -tls1_3 -sess_in session.pem -early_data req.in -``` - -###### Generate private key without passphrase - -```bash -# _len: 2048, 4096 -( _fd="private.key" ; _len="2048" ; \ -openssl genrsa -out ${_fd} ${_len} ) -``` - -###### Generate private key with passphrase - -```bash -# _ciph: aes128, aes256 -# _len: 2048, 4096 -( _ciph="aes128" ; _fd="private.key" ; _len="2048" ; \ -openssl genrsa -${_ciph} -out ${_fd} ${_len} ) -``` - -###### Remove passphrase from private key - -```bash -( _fd="private.key" ; _fd_unp="private_unp.key" ; \ -openssl rsa -in ${_fd} -out ${_fd_unp} ) -``` - -###### Encrypt existing private key with a passphrase - -```bash -# _ciph: aes128, aes256 -( _ciph="aes128" ; _fd="private.key" ; _fd_pass="private_pass.key" ; \ -openssl rsa -${_ciph} -in ${_fd} -out ${_fd_pass} -``` - -###### Check private key - -```bash -( _fd="private.key" ; \ -openssl rsa -check -in ${_fd} ) -``` - -###### Get public key from private key - -```bash -( _fd="private.key" ; _fd_pub="public.key" ; \ -openssl rsa -pubout -in ${_fd} -out ${_fd_pub} ) -``` - -###### Generate private key and CSR - -```bash -( _fd="private.key" ; _fd_csr="request.csr" ; _len="2048" ; \ -openssl req -out ${_fd_csr} -new -newkey rsa:${_len} -nodes -keyout ${_fd} ) -``` - -###### Generate CSR - -```bash -( _fd="private.key" ; _fd_csr="request.csr" ; \ -openssl req -out ${_fd_csr} -new -key ${_fd} ) -``` - -###### Generate CSR (metadata from existing certificate) - - > Where `private.key` is the existing private key. As you can see you do not generate this CSR from your certificate (public key). Also you do not generate the "same" CSR, just a new one to request a new certificate. - -```bash -( _fd="private.key" ; _fd_csr="request.csr" ; _fd_crt="cert.crt" ; \ -openssl x509 -x509toreq -in ${_fd_crt} -out ${_fd_csr} -signkey ${_fd} ) -``` - -###### Generate CSR with -config param - -```bash -( _fd="private.key" ; _fd_csr="request.csr" ; \ -openssl req -new -sha256 -key ${_fd} -out ${_fd_csr} \ --config <( -cat << __EOF__ -[req] -default_bits = 2048 -default_md = sha256 -prompt = no -distinguished_name = dn -req_extensions = req_ext - -[ dn ] -C = "" -ST = "" -L = "" -O = "" -OU = "
" -CN = "" - -[ req_ext ] -subjectAltName = @alt_names - -[ alt_names ] -DNS.1 = -DNS.2 = -DNS.3 = -__EOF__ -)) -``` - -Other values in `[ dn ]`: - -``` -countryName = "DE" # C= -stateOrProvinceName = "Hessen" # ST= -localityName = "Keller" # L= -postalCode = "424242" # L/postalcode= -postalAddress = "Keller" # L/postaladdress= -streetAddress = "Crater 1621" # L/street= -organizationName = "apfelboymschule" # O= -organizationalUnitName = "IT Department" # OU= -commonName = "example.com" # CN= -emailAddress = "webmaster@example.com" # CN/emailAddress= -``` - -Example of `oids` (you'll probably also have to make OpenSSL know about the new fields required for EV by adding the following under `[new_oids]`): - -``` -[req] -... -oid_section = new_oids - -[ new_oids ] -postalCode = 2.5.4.17 -streetAddress = 2.5.4.9 -``` - -Full example: - -```bash -( _fd="private.key" ; _fd_csr="request.csr" ; \ -openssl req -new -sha256 -key ${_fd} -out ${_fd_csr} \ --config <( -cat << __EOF__ -[req] -default_bits = 2048 -default_md = sha256 -prompt = no -distinguished_name = dn -req_extensions = req_ext -oid_section = new_oids - -[ new_oids ] -serialNumber = 2.5.4.5 -streetAddress = 2.5.4.9 -postalCode = 2.5.4.17 -businessCategory = 2.5.4.15 - -[ dn ] -serialNumber=00001111 -businessCategory=Private Organization -jurisdictionC=DE -C=DE -ST=Hessen -L=Keller -postalCode=424242 -streetAddress=Crater 1621 -O=AV Company -OU=IT -CN=example.com - -[ req_ext ] -subjectAltName = @alt_names - -[ alt_names ] -DNS.1 = example.com -__EOF__ -)) -``` - -For more information please look at these great explanations: - -- [RFC 5280](https://tools.ietf.org/html/rfc5280) -- [How to create multidomain certificates using config files](https://apfelboymchen.net/gnu/notes/openssl%20multidomain%20with%20config%20files.html) -- [Generate a multi domains certificate using config files](https://gist.github.com/romainnorberg/464758a6620228b977212a3cf20c3e08) -- [Your OpenSSL CSR command is out of date](https://expeditedsecurity.com/blog/openssl-csr-command/) -- [OpenSSL example configuration file](https://www.tbs-certificats.com/openssl-dem-server-cert.cnf) -- [Object Identifiers (OIDs)](https://www.alvestrand.no/objectid/) -- [openssl objects.txt](https://github.com/openssl/openssl/blob/master/crypto/objects/objects.txt) - -###### List available EC curves - -```bash -openssl ecparam -list_curves -``` - -###### Print ECDSA private and public keys - -```bash -( _fd="private.key" ; \ -openssl ec -in ${_fd} -noout -text ) - -# For x25519 only extracting public key -( _fd="private.key" ; _fd_pub="public.key" ; \ -openssl pkey -in ${_fd} -pubout -out ${_fd_pub} ) -``` - -###### Generate ECDSA private key - -```bash -# _curve: prime256v1, secp521r1, secp384r1 -( _fd="private.key" ; _curve="prime256v1" ; \ -openssl ecparam -out ${_fd} -name ${_curve} -genkey ) - -# _curve: X25519 -( _fd="private.key" ; _curve="x25519" ; \ -openssl genpkey -algorithm ${_curve} -out ${_fd} ) -``` - -###### Generate private key and CSR (ECC) - -```bash -# _curve: prime256v1, secp521r1, secp384r1 -( _fd="domain.com.key" ; _fd_csr="domain.com.csr" ; _curve="prime256v1" ; \ -openssl ecparam -out ${_fd} -name ${_curve} -genkey ; \ -openssl req -new -key ${_fd} -out ${_fd_csr} -sha256 ) -``` - -###### Generate self-signed certificate - -```bash -# _len: 2048, 4096 -( _fd="domain.key" ; _fd_out="domain.crt" ; _len="2048" ; _days="365" ; \ -openssl req -newkey rsa:${_len} -nodes \ --keyout ${_fd} -x509 -days ${_days} -out ${_fd_out} ) -``` - -###### Generate self-signed certificate from existing private key - -```bash -# _len: 2048, 4096 -( _fd="domain.key" ; _fd_out="domain.crt" ; _days="365" ; \ -openssl req -key ${_fd} -nodes \ --x509 -days ${_days} -out ${_fd_out} ) -``` - -###### Generate self-signed certificate from existing private key and csr - -```bash -# _len: 2048, 4096 -( _fd="domain.key" ; _fd_csr="domain.csr" ; _fd_out="domain.crt" ; _days="365" ; \ -openssl x509 -signkey ${_fd} -nodes \ --in ${_fd_csr} -req -days ${_days} -out ${_fd_out} ) -``` - -###### Generate DH public parameters - -```bash -( _dh_size="2048" ; \ -openssl dhparam -out /etc/nginx/ssl/dhparam_${_dh_size}.pem "$_dh_size" ) -``` - -###### Display DH public parameters - -```bash -openssl pkeyparam -in dhparam.pem -text -``` - -###### Extract private key from pfx - -```bash -( _fd_pfx="cert.pfx" ; _fd_key="key.pem" ; \ -openssl pkcs12 -in ${_fd_pfx} -nocerts -nodes -out ${_fd_key} ) -``` - -###### Extract private key and certs from pfx - -```bash -( _fd_pfx="cert.pfx" ; _fd_pem="key_certs.pem" ; \ -openssl pkcs12 -in ${_fd_pfx} -nodes -out ${_fd_pem} ) -``` - -###### Extract certs from p7b - -```bash -# PKCS#7 file doesn't include private keys. -( _fd_p7b="cert.p7b" ; _fd_pem="cert.pem" ; \ -openssl pkcs7 -inform DER -outform PEM -in ${_fd_p7b} -print_certs > ${_fd_pem}) -# or: -openssl pkcs7 -print_certs -in -in ${_fd_p7b} -out ${_fd_pem}) -``` - -###### Convert DER to PEM - -```bash -( _fd_der="cert.crt" ; _fd_pem="cert.pem" ; \ -openssl x509 -in ${_fd_der} -inform der -outform pem -out ${_fd_pem} ) -``` - -###### Convert PEM to DER - -```bash -( _fd_der="cert.crt" ; _fd_pem="cert.pem" ; \ -openssl x509 -in ${_fd_pem} -outform der -out ${_fd_der} ) -``` - -###### Verification of the private key - -```bash -( _fd="private.key" ; \ -openssl rsa -noout -text -in ${_fd} ) -``` - -###### Verification of the public key - -```bash -# 1) -( _fd="public.key" ; \ -openssl pkey -noout -text -pubin -in ${_fd} ) - -# 2) -( _fd="private.key" ; \ -openssl rsa -inform PEM -noout -in ${_fd} &> /dev/null ; \ -if [ $? = 0 ] ; then echo -en "OK\n" ; fi ) -``` - -###### Verification of the certificate - -```bash -( _fd="certificate.crt" ; # format: pem, cer, crt \ -openssl x509 -noout -text -in ${_fd} ) -``` - -###### Verification of the CSR - -```bash -( _fd_csr="request.csr" ; \ -openssl req -text -noout -in ${_fd_csr} ) -``` - -###### Check the private key and the certificate are match - -```bash -(openssl rsa -noout -modulus -in private.key | openssl md5 ; \ -openssl x509 -noout -modulus -in certificate.crt | openssl md5) | uniq -``` - -###### Check the private key and the CSR are match - -```bash -(openssl rsa -noout -modulus -in private.key | openssl md5 ; \ -openssl req -noout -modulus -in request.csr | openssl md5) | uniq -``` - -___ - -##### Tool: [secure-delete](https://wiki.archlinux.org/index.php/Securely_wipe_disk) - -###### Secure delete with shred - -```bash -shred -vfuz -n 10 file -shred --verbose --random-source=/dev/urandom -n 1 /dev/sda -``` - -###### Secure delete with scrub - -```bash -scrub -p dod /dev/sda -scrub -p dod -r file -``` - -###### Secure delete with badblocks - -```bash -badblocks -s -w -t random -v /dev/sda -badblocks -c 10240 -s -w -t random -v /dev/sda -``` - -###### Secure delete with secure-delete - -```bash -srm -vz /tmp/file -sfill -vz /local -sdmem -v -swapoff /dev/sda5 && sswap -vz /dev/sda5 -``` - -___ - -##### Tool: [dd](https://en.wikipedia.org/wiki/Dd_(Unix)) - -###### Show dd status every so often - -```bash -dd status=progress -watch --interval 5 killall -USR1 dd -``` - -###### Redirect output to a file with dd - -```bash -echo "string" | dd of=filename -``` - -___ - -##### Tool: [gpg](https://www.gnupg.org/) - -###### Export public key - -```bash -gpg --export --armor "" > username.pkey -``` - - * `--export` - export all keys from all keyrings or specific key - * `-a|--armor` - create ASCII armored output - -###### Encrypt file - -```bash -gpg -e -r "" dump.sql -``` - - * `-e|--encrypt` - encrypt data - * `-r|--recipient` - encrypt for specific - -###### Decrypt file - -```bash -gpg -o dump.sql -d dump.sql.gpg -``` - - * `-o|--output` - use as output file - * `-d|--decrypt` - decrypt data (default) - -###### Search recipient - -```bash -gpg --keyserver hkp://keyserver.ubuntu.com --search-keys "" -``` - - * `--keyserver` - set specific key server - * `--search-keys` - search for keys on a key server - -###### List all of the packets in an encrypted file - -```bash -gpg --batch --list-packets archive.gpg -gpg2 --batch --list-packets archive.gpg -``` - -___ - -##### Tool: [system-other](https://github.com/trimstray/the-book-of-secret-knowledge#tool-system-other) - -###### Reboot system from init - -```bash -exec /sbin/init 6 -``` - -###### Init system from single user mode - -```bash -exec /sbin/init -``` - -###### Show current working directory of a process - -```bash -readlink -f /proc//cwd -``` - -###### Show actual pathname of the executed command - -```bash -readlink -f /proc//exe -``` - -##### Tool: [curl](https://curl.haxx.se) - -```bash -curl -Iks https://www.google.com -``` - - * `-I` - show response headers only - * `-k` - insecure connection when using ssl - * `-s` - silent mode (not display body) - -```bash -curl -Iks --location -X GET -A "x-agent" https://www.google.com -``` - - * `--location` - follow redirects - * `-X` - set method - * `-A` - set user-agent - -```bash -curl -Iks --location -X GET -A "x-agent" --proxy http://127.0.0.1:16379 https://www.google.com -``` - - * `--proxy [socks5://|http://]` - set proxy server - -```bash -curl -o file.pdf -C - https://example.com/Aiju2goo0Ja2.pdf -``` - - * `-o` - write output to file - * `-C` - resume the transfer - -###### Find your external IP address (external services) - -```bash -curl ipinfo.io -curl ipinfo.io/ip -curl icanhazip.com -curl ifconfig.me/ip ; echo -``` - -###### Repeat URL request - -```bash -# URL sequence substitution with a dummy query string: -curl -ks https://example.com/?[1-20] - -# With shell 'for' loop: -for i in {1..20} ; do curl -ks https://example.com/ ; done -``` - -###### Check DNS and HTTP trace with headers for specific domains - -```bash -### Set domains and external dns servers. -_domain_list=(google.com) ; _dns_list=("8.8.8.8" "1.1.1.1") - -for _domain in "${_domain_list[@]}" ; do - - printf '=%.0s' {1..48} - - echo - - printf "[\\e[1;32m+\\e[m] resolve: %s\\n" "$_domain" - - for _dns in "${_dns_list[@]}" ; do - - # Resolve domain. - host "${_domain}" "${_dns}" - - echo - - done - - for _proto in http https ; do - - printf "[\\e[1;32m+\\e[m] trace + headers: %s://%s\\n" "$_proto" "$_domain" - - # Get trace and http headers. - curl -Iks -A "x-agent" --location "${_proto}://${_domain}" - - echo - - done - -done - -unset _domain_list _dns_list -``` - -___ - -##### Tool: [httpie](https://httpie.org/) - -```bash -http -p Hh https://www.google.com -``` - - * `-p` - print request and response headers - * `H` - request headers - * `B` - request body - * `h` - response headers - * `b` - response body - -```bash -http -p Hh https://www.google.com --follow --verify no -``` - - * `-F, --follow` - follow redirects - * `--verify no` - skip SSL verification - -```bash -http -p Hh https://www.google.com --follow --verify no \ ---proxy http:http://127.0.0.1:16379 -``` - - * `--proxy [http:]` - set proxy server - -##### Tool: [ssh](https://www.openssh.com/) - -###### Escape Sequence - -``` -# Supported escape sequences: -~. - terminate connection (and any multiplexed sessions) -~B - send a BREAK to the remote system -~C - open a command line -~R - Request rekey (SSH protocol 2 only) -~^Z - suspend ssh -~# - list forwarded connections -~& - background ssh (when waiting for connections to terminate) -~? - this message -~~ - send the escape character by typing it twice -``` - -###### Compare a remote file with a local file - -```bash -ssh user@host cat /path/to/remotefile | diff /path/to/localfile - -``` - -###### SSH connection through host in the middle - -```bash -ssh -t reachable_host ssh unreachable_host -``` - -###### Run command over SSH on remote host - -```bash -cat > cmd.txt << __EOF__ -cat /etc/hosts -__EOF__ - -ssh host -l user $(&1 | tee -a "${_sesdir}/$(date +%Y%m%d).log" - -} - -# Alias: -alias ssh='_ssh_sesslog' -``` - -###### Using Keychain for SSH logins - -```bash -### Delete all of ssh-agent's keys. -function _scl() { - - /usr/bin/keychain --clear - -} - -### Add key to keychain. -function _scg() { - - /usr/bin/keychain /path/to/private-key - source "$HOME/.keychain/$HOSTNAME-sh" - -} -``` - -###### SSH login without processing any login scripts - -```bash -ssh -tt user@host bash -``` - -###### SSH local port forwarding - -Example 1: - -```bash -# Forwarding our local 2250 port to nmap.org:443 from localhost through localhost -host1> ssh -L 2250:nmap.org:443 localhost - -# Connect to the service: -host1> curl -Iks --location -X GET https://localhost:2250 -``` - -Example 2: - -```bash -# Forwarding our local 9051 port to db.d.x:5432 from localhost through node.d.y -host1> ssh -nNT -L 9051:db.d.x:5432 node.d.y - -# Connect to the service: -host1> psql -U db_user -d db_dev -p 9051 -h localhost -``` - - * `-n` - redirects stdin from `/dev/null` - * `-N` - do not execute a remote command - * `-T` - disable pseudo-terminal allocation - -###### SSH remote port forwarding - -```bash -# Forwarding our local 9051 port to db.d.x:5432 from host2 through node.d.y -host1> ssh -nNT -R 9051:db.d.x:5432 node.d.y - -# Connect to the service: -host2> psql -U postgres -d postgres -p 8000 -h localhost -``` - -___ - -##### Tool: [linux-dev](https://www.tldp.org/LDP/abs/html/devref1.html) - -###### Testing remote connection to port - -```bash -timeout 1 bash -c "//" >/dev/null 2>&1 ; echo $? -``` - - * `` - set remote host - * `` - set destination port - -###### Read and write to TCP or UDP sockets with common bash tools - -```bash -exec 5<>/dev/tcp//; cat <&5 & cat >&5; exec 5>&- -``` - -___ - -##### Tool: [tcpdump](http://www.tcpdump.org/) - -###### Filter incoming (on interface) traffic (specific ) - -```bash -tcpdump -ne -i eth0 -Q in host 192.168.252.1 and port 443 -``` - - * `-n` - don't convert addresses (`-nn` will not resolve hostnames or ports) - * `-e` - print the link-level headers - * `-i [iface|any]` - set interface - * `-Q|-D [in|out|inout]` - choose send/receive direction (`-D` - for old tcpdump versions) - * `host [ip|hostname]` - set host, also `[host not]` - * `[and|or]` - set logic - * `port [1-65535]` - set port number, also `[port not]` - -###### Filter incoming (on interface) traffic (specific ) and write to a file - -```bash -tcpdump -ne -i eth0 -Q in host 192.168.252.1 and port 443 -c 5 -w tcpdump.pcap -``` - - * `-c [num]` - capture only num number of packets - * `-w [filename]` - write packets to file, `-r [filename]` - reading from file - -###### Capture all ICMP packets - -```bash -tcpdump -nei eth0 icmp -``` - -###### Check protocol used (TCP or UDP) for service - -```bash -tcpdump -nei eth0 tcp port 22 -vv -X | egrep "TCP|UDP" -``` - -###### Display ASCII text (to parse the output using grep or other) - -```bash -tcpdump -i eth0 -A -s0 port 443 -``` - -###### Grab everything between two keywords - -```bash -tcpdump -i eth0 port 80 -X | sed -n -e '/username/,/=ldap/ p' -``` - -###### Grab user and pass ever plain http - -```bash -tcpdump -i eth0 port http -l -A | egrep -i \ -'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|username:|password:|login:|pass |user ' \ ---color=auto --line-buffered -B20 -``` - -###### Extract HTTP User Agent from HTTP request header - -```bash -tcpdump -ei eth0 -nn -A -s1500 -l | grep "User-Agent:" -``` - -###### Capture only HTTP GET and POST packets - -```bash -tcpdump -ei eth0 -s 0 -A -vv \ -'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420' or 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354' -``` - -or simply: - -```bash -tcpdump -ei eth0 -s 0 -v -n -l | egrep -i "POST /|GET /|Host:" -``` - -###### Rotate capture files - -```bash -tcpdump -ei eth0 -w /tmp/capture-%H.pcap -G 3600 -C 200 -``` - - * `-G ` - pcap will be created every `` seconds - * `-C ` - close the current pcap and open a new one if is larger than `` - -###### Top hosts by packets - -```bash -tcpdump -ei enp0s25 -nnn -t -c 200 | cut -f 1,2,3,4 -d '.' | sort | uniq -c | sort -nr | head -n 20 -``` - -###### Excludes any RFC 1918 private address - -```bash -tcpdump -nei eth0 'not (src net (10 or 172.16/12 or 192.168/16) and dst net (10 or 172.16/12 or 192.168/16))' -``` - -___ - -##### Tool: [tcpick](http://tcpick.sourceforge.net/) - -###### Analyse packets in real-time - -```bash -while true ; do tcpick -a -C -r dump.pcap ; sleep 2 ; clear ; done -``` - -___ - -##### Tool: [ngrep](http://ngrep.sourceforge.net/usage.html) - -```bash -ngrep -d eth0 "www.domain.com" port 443 -``` - - * `-d [iface|any]` - set interface - * `[domain]` - set hostname - * `port [1-65535]` - set port number - -```bash -ngrep -d eth0 "www.domain.com" src host 10.240.20.2 and port 443 -``` - - * `(host [ip|hostname])` - filter by ip or hostname - * `(port [1-65535])` - filter by port number - -```bash -ngrep -d eth0 -qt -O ngrep.pcap "www.domain.com" port 443 -``` - - * `-q` - quiet mode (only payloads) - * `-t` - added timestamps - * `-O [filename]` - save output to file, `-I [filename]` - reading from file - -```bash -ngrep -d eth0 -qt 'HTTP' 'tcp' -``` - - * `HTTP` - show http headers - * `tcp|udp` - set protocol - * `[src|dst] host [ip|hostname]` - set direction for specific node - -```bash -ngrep -l -q -d eth0 -i "User-Agent: curl*" -``` - - * `-l` - stdout line buffered - * `-i` - case-insensitive search - -___ - -##### Tool: [hping3](http://www.hping.org/) - -```bash -hping3 -V -p 80 -s 5050 www.google.com -``` - - * `-V|--verbose` - verbose mode - * `-p|--destport` - set destination port - * `-s|--baseport` - set source port - * `` - set scan type - * `-F|--fin` - set FIN flag, port open if no reply - * `-S|--syn` - set SYN flag - * `-P|--push` - set PUSH flag - * `-A|--ack` - set ACK flag (use when ping is blocked, RST response back if the port is open) - * `-U|--urg` - set URG flag - * `-Y|--ymas` - set Y unused flag (0x80 - nullscan), port open if no reply - * `-M 0 -UPF` - set TCP sequence number and scan type (URG+PUSH+FIN), port open if no reply - -```bash -hping3 -V -c 1 -1 -C 8 www.google.com -``` - - * `-c [num]` - packet count - * `-1` - set ICMP mode - * `-C|--icmptype [icmp-num]` - set icmp type (default icmp-echo = 8) - -```bash -hping3 -V -c 1000000 -d 120 -S -w 64 -p 80 --flood --rand-source -``` - - * `--flood` - sent packets as fast as possible (don't show replies) - * `--rand-source` - random source address mode - * `-d --data` - data size - * `-w|--win` - winsize (default 64) - -___ - -##### Tool: [nmap](https://nmap.org/) - -###### Ping scans the network - -```bash -nmap -sP 192.168.0.0/24 -``` - -###### Show only open ports - -```bash -nmap -F --open 192.168.0.0/24 -``` - -###### Full TCP port scan using with service version detection - -```bash -nmap -p 1-65535 -sV -sS -T4 192.168.0.0/24 -``` - -###### Nmap scan and pass output to Nikto - -```bash -nmap -p80,443 192.168.0.0/24 -oG - | nikto.pl -h - -``` - -###### Recon specific ip:service with Nmap NSE scripts stack - -```bash -# Set variables: -_hosts="192.168.250.10" -_ports="80,443" - -# Set Nmap NSE scripts stack: -_nmap_nse_scripts="+dns-brute,\ - +http-auth-finder,\ - +http-chrono,\ - +http-cookie-flags,\ - +http-cors,\ - +http-cross-domain-policy,\ - +http-csrf,\ - +http-dombased-xss,\ - +http-enum,\ - +http-errors,\ - +http-git,\ - +http-grep,\ - +http-internal-ip-disclosure,\ - +http-jsonp-detection,\ - +http-malware-host,\ - +http-methods,\ - +http-passwd,\ - +http-phpself-xss,\ - +http-php-version,\ - +http-robots.txt,\ - +http-sitemap-generator,\ - +http-shellshock,\ - +http-stored-xss,\ - +http-title,\ - +http-unsafe-output-escaping,\ - +http-useragent-tester,\ - +http-vhosts,\ - +http-waf-detect,\ - +http-waf-fingerprint,\ - +http-xssed,\ - +traceroute-geolocation.nse,\ - +ssl-enum-ciphers,\ - +whois-domain,\ - +whois-ip" - -# Set Nmap NSE script params: -_nmap_nse_scripts_args="dns-brute.domain=${_hosts},http-cross-domain-policy.domain-lookup=true," -_nmap_nse_scripts_args+="http-waf-detect.aggro,http-waf-detect.detectBodyChanges," -_nmap_nse_scripts_args+="http-waf-fingerprint.intensive=1" - -# Perform scan: -nmap --script="$_nmap_nse_scripts" --script-args="$_nmap_nse_scripts_args" -p "$_ports" "$_hosts" -``` - -___ - -##### Tool: [netcat](http://netcat.sourceforge.net/) - -```bash -nc -kl 5000 -``` - - * `-l` - listen for an incoming connection - * `-k` - listening after client has disconnected - * `>filename.out` - save receive data to file (optional) - -```bash -nc 192.168.0.1 5051 < filename.in -``` - - * `< filename.in` - send data to remote host - -```bash -nc -vz 10.240.30.3 5000 -``` - - * `-v` - verbose output - * `-z` - scan for listening daemons - -```bash -nc -vzu 10.240.30.3 1-65535 -``` - - * `-u` - scan only udp ports - -###### Transfer data file (archive) - -```bash -server> nc -l 5000 | tar xzvfp - -client> tar czvfp - /path/to/dir | nc 10.240.30.3 5000 -``` - -###### Launch remote shell - -```bash -# 1) -server> nc -l 5000 -e /bin/bash -client> nc 10.240.30.3 5000 - -# 2) -server> rm -f /tmp/f; mkfifo /tmp/f -server> cat /tmp/f | /bin/bash -i 2>&1 | nc -l 127.0.0.1 5000 > /tmp/f -client> nc 10.240.30.3 5000 -``` - -###### Simple file server - -```bash -while true ; do nc -l 5000 | tar -xvf - ; done -``` - -###### Simple minimal HTTP Server - -```bash -while true ; do nc -l -p 1500 -c 'echo -e "HTTP/1.1 200 OK\n\n $(date)"' ; done -``` - -###### Simple HTTP Server - - > Restarts web server after each request - remove `while` condition for only single connection. - -```bash -cat > index.html << __EOF__ - - - - - - - - - - -

- - Hello! It's a site. - -

- - - -__EOF__ -``` - -```bash -server> while : ; do \ -(echo -ne "HTTP/1.1 200 OK\r\nContent-Length: $(wc -c /" <"$_sent" & -sed "s/^/<= /" <"$_recv" & - -nc -l -p "$_listen_port" <"$_back" | \ -tee "$_sent" | \ -nc "$_bk_host" "$_bk_port" | \ -tee "$_recv" >"$_back" -``` - -```bash -server> chmod +x nc-proxy && ./nc-proxy 8080 192.168.252.10:8000 - lport: 8080 -bk_host: 192.168.252.10 -bk_port: 8000 - -client> http -p h 10.240.30.3:8080 -HTTP/1.1 200 OK -Accept-Ranges: bytes -Cache-Control: max-age=31536000 -Content-Length: 2748 -Content-Type: text/html; charset=utf-8 -Date: Sun, 01 Jul 2018 20:12:08 GMT -Last-Modified: Sun, 01 Apr 2018 21:53:37 GMT -``` - -###### Create a single-use TCP or UDP proxy - -```bash -### TCP -> TCP -nc -l -p 2000 -c "nc [ip|hostname] 3000" - -### TCP -> UDP -nc -l -p 2000 -c "nc -u [ip|hostname] 3000" - -### UDP -> UDP -nc -l -u -p 2000 -c "nc -u [ip|hostname] 3000" - -### UDP -> TCP -nc -l -u -p 2000 -c "nc [ip|hostname] 3000" -``` - -___ - -##### Tool: [gnutls-cli](https://gnutls.org/manual/html_node/gnutls_002dcli-Invocation.html) - -###### Testing connection to remote host (with SNI support) - -```bash -gnutls-cli -p 443 google.com -``` - -###### Testing connection to remote host (without SNI support) - -```bash -gnutls-cli --disable-sni -p 443 google.com -``` - -___ - -##### Tool: [socat](http://www.dest-unreach.org/socat/doc/socat.html) - -###### Testing remote connection to port - -```bash -socat - TCP4:10.240.30.3:22 -``` - - * `-` - standard input (STDIO) - * `TCP4:` - set tcp4 connection with specific params - * `[hostname|ip]` - set hostname/ip - * `[1-65535]` - set port number - -###### Redirecting TCP-traffic to a UNIX domain socket under Linux - -```bash -socat TCP-LISTEN:1234,bind=127.0.0.1,reuseaddr,fork,su=nobody,range=127.0.0.0/8 UNIX-CLIENT:/tmp/foo -``` - - * `TCP-LISTEN:` - set tcp listen with specific params - * `[1-65535]` - set port number - * `bind=[hostname|ip]` - set bind hostname/ip - * `reuseaddr` - allows other sockets to bind to an address - * `fork` - keeps the parent process attempting to produce more connections - * `su=nobody` - set user - * `range=[ip-range]` - ip range - * `UNIX-CLIENT:` - communicates with the specified peer socket - * `filename` - define socket - -___ - -##### Tool: [p0f](http://lcamtuf.coredump.cx/p0f3/) - -###### Set iface in promiscuous mode and dump traffic to the log file - -```bash -p0f -i enp0s25 -p -d -o /dump/enp0s25.log -``` - - * `-i` - listen on the specified interface - * `-p` - set interface in promiscuous mode - * `-d` - fork into background - * `-o` - output file - -___ - -##### Tool: [netstat](https://en.wikipedia.org/wiki/Netstat) - -###### Graph # of connections for each hosts - -```bash -netstat -an | awk '/ESTABLISHED/ { split($5,ip,":"); if (ip[1] !~ /^$/) print ip[1] }' | \ -sort | uniq -c | awk '{ printf("%s\t%s\t",$2,$1) ; for (i = 0; i < $1; i++) {printf("*")}; print "" }' -``` - -###### Monitor open connections for specific port including listen, count and sort it per IP - -```bash -watch "netstat -plan | grep :443 | awk {'print \$5'} | cut -d: -f 1 | sort | uniq -c | sort -nk 1" -``` - -###### Grab banners from local IPv4 listening ports - -```bash -netstat -nlt | grep 'tcp ' | grep -Eo "[1-9][0-9]*" | xargs -I {} sh -c "echo "" | nc -v -n -w1 127.0.0.1 {}" -``` - -___ - -##### Tool: [rsync](https://en.wikipedia.org/wiki/Rsync) - -###### Rsync remote data as root using sudo - -```bash -rsync --rsync-path 'sudo rsync' username@hostname:/path/to/dir/ /local/ -``` - -___ - -##### Tool: [host](https://en.wikipedia.org/wiki/Host_(Unix)) - -###### Resolves the domain name (using external dns server) - -```bash -host google.com 9.9.9.9 -``` - -###### Checks the domain administrator (SOA record) - -```bash -host -t soa google.com 9.9.9.9 -``` - -___ - -##### Tool: [dig](https://en.wikipedia.org/wiki/Dig_(command)) - -###### Resolves the domain name (short output) - -```bash -dig google.com +short -``` - -###### Lookup NS record for specific domain - -```bash -dig @9.9.9.9 google.com NS -``` - -###### Query only answer section - -```bash -dig google.com +nocomments +noquestion +noauthority +noadditional +nostats -``` - -###### Query ALL DNS Records - -```bash -dig google.com ANY +noall +answer -``` - -###### DNS Reverse Look-up - -```bash -dig -x 172.217.16.14 +short -``` - -___ - -##### Tool: [certbot](https://certbot.eff.org/) - -###### Generate multidomain certificate - -```bash -certbot certonly -d example.com -d www.example.com -``` - -###### Generate wildcard certificate - -```bash -certbot certonly --manual --preferred-challenges=dns -d example.com -d *.example.com -``` - -###### Generate certificate with 4096 bit private key - -```bash -certbot certonly -d example.com -d www.example.com --rsa-key-size 4096 -``` - -___ - -##### Tool: [network-other](https://github.com/trimstray/the-book-of-secret-knowledge#tool-network-other) - -###### Get all subnets for specific AS (Autonomous system) - -```bash -AS="AS32934" -whois -h whois.radb.net -- "-i origin ${AS}" | \ -grep "^route:" | \ -cut -d ":" -f2 | \ -sed -e 's/^[ \t]//' | \ -sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 | \ -cut -d ":" -f2 | \ -sed -e 's/^[ \t]/allow /' | \ -sed 's/$/;/' | \ -sed 's/allow */subnet -> /g' -``` - -###### Resolves domain name from dns.google.com with curl and jq - -```bash -_dname="google.com" ; curl -s "https://dns.google.com/resolve?name=${_dname}&type=A" | jq . -``` - -##### Tool: [git](https://git-scm.com/) - -###### Log alias for a decent view of your repo - -```bash -# 1) -git log --oneline --decorate --graph --all - -# 2) -git log --graph \ ---pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' \ ---abbrev-commit -``` - -___ - -##### Tool: [python](https://www.python.org/) - -###### Static HTTP web server - -```bash -# Python 3.x -python3 -m http.server 8000 --bind 127.0.0.1 - -# Python 2.x -python -m SimpleHTTPServer 8000 -``` - -###### Static HTTP web server with SSL support - -```bash -# Python 3.x -from http.server import HTTPServer, BaseHTTPRequestHandler -import ssl - -httpd = HTTPServer(('localhost', 4443), BaseHTTPRequestHandler) - -httpd.socket = ssl.wrap_socket (httpd.socket, - keyfile="path/to/key.pem", - certfile='path/to/cert.pem', server_side=True) - -httpd.serve_forever() - -# Python 2.x -import BaseHTTPServer, SimpleHTTPServer -import ssl - -httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), - SimpleHTTPServer.SimpleHTTPRequestHandler) - -httpd.socket = ssl.wrap_socket (httpd.socket, - keyfile="path/tp/key.pem", - certfile='path/to/cert.pem', server_side=True) - -httpd.serve_forever() -``` - -###### Encode base64 - -```bash -python -m base64 -e <<< "sample string" -``` - -###### Decode base64 - -```bash -python -m base64 -d <<< "dGhpcyBpcyBlbmNvZGVkCg==" -``` - -##### Tool: [awk](http://www.grymoire.com/Unix/Awk.html) - -###### Search for matching lines - -```bash -# egrep foo -awk '/foo/' filename -``` - -###### Search non matching lines - -```bash -# egrep -v foo -awk '!/foo/' filename -``` - -###### Print matching lines with numbers - -```bash -# egrep -n foo -awk '/foo/{print FNR,$0}' filename -``` - -###### Print the last column - -```bash -awk '{print $NF}' filename -``` - -###### Find all the lines longer than 80 characters - -```bash -awk 'length($0)>80{print FNR,$0}' filename -``` - -###### Print only lines of less than 80 characters - -```bash -awk 'length < 80' filename -``` - -###### Print double new lines a file - -```bash -awk '1; { print "" }' filename -``` - -###### Print line numbers - -```bash -awk '{ print FNR "\t" $0 }' filename -awk '{ printf("%5d : %s\n", NR, $0) }' filename # in a fancy manner -``` - -###### Print line numbers for only non-blank lines - -```bash -awk 'NF { $0=++a " :" $0 }; { print }' filename -``` - -###### Print the line and the next two (i=5) lines after the line matching regexp - -```bash -awk '/foo/{i=5+1;}{if(i){i--; print;}}' filename -``` - -###### Print the lines starting at the line matching 'server {' until the line matching '}' - -```bash -awk '/server {/,/}/' filename -``` - -###### Print multiple columns with separators - -```bash -awk -F' ' '{print "ip:\t" $2 "\n port:\t" $3' filename -``` - -###### Remove empty lines - -```bash -awk 'NF > 0' filename - -# alternative: -awk NF filename -``` - -###### Delete trailing white space (spaces, tabs) - -```bash -awk '{sub(/[ \t]*$/, "");print}' filename -``` - -###### Delete leading white space - -```bash -awk '{sub(/^[ \t]+/, ""); print}' filename -``` - -###### Remove duplicate consecutive lines - -```bash -# uniq -awk 'a !~ $0{print}; {a=$0}' filename -``` - -###### Remove duplicate entries in a file without sorting - -```bash -awk '!x[$0]++' filename -``` - -###### Exclude multiple columns - -```bash -awk '{$1=$3=""}1' filename -``` - -###### Substitute foo for bar on lines matching regexp - -```bash -awk '/regexp/{gsub(/foo/, "bar")};{print}' filename -``` - -###### Add some characters at the beginning of matching lines - -```bash -awk '/regexp/{sub(/^/, "++++"); print;next;}{print}' filename -``` - -###### Get the last hour of Apache logs - -```bash -awk '/'$(date -d "1 hours ago" "+%d\\/%b\\/%Y:%H:%M")'/,/'$(date "+%d\\/%b\\/%Y:%H:%M")'/ { print $0 }' \ -/var/log/httpd/access_log -``` - -___ - -##### Tool: [sed](http://www.grymoire.com/Unix/Sed.html) - -###### Print a specific line from a file - -```bash -sed -n 10p /path/to/file -``` - -###### Remove a specific line from a file - -```bash -sed -i 10d /path/to/file -# alternative (BSD): sed -i'' 10d /path/to/file -``` - -###### Remove a range of lines from a file - -```bash -sed -i -re ',d' -``` - -###### Replace newline(s) with a space - -```bash -sed ':a;N;$!ba;s/\n/ /g' /path/to/file - -# cross-platform compatible syntax: -sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/ /g' /path/to/file -``` - -- `:a` create a label `a` -- `N` append the next line to the pattern space -- `$!` if not the last line, ba branch (go to) label `a` -- `s` substitute, `/\n/` regex for new line, `/ /` by a space, `/g` global match (as many times as it can) - -Alternatives: - -```bash -# perl version (sed-like speed): -perl -p -e 's/\n/ /' /path/to/file - -# bash version (slow): -while read line ; do printf "%s" "$line " ; done < file -``` - -###### Delete string +N next lines - -```bash -sed '/start/,+4d' /path/to/file -``` - -___ - -##### Tool: [grep](http://www.grymoire.com/Unix/Grep.html) - -###### Search for a "pattern" inside all files in the current directory - -```bash -grep -rn "pattern" -grep -RnisI "pattern" * -fgrep "pattern" * -R -``` - -###### Show only for multiple patterns - -```bash -grep 'INFO*'\''WARN' filename -grep 'INFO\|WARN' filename -grep -e INFO -e WARN filename -grep -E '(INFO|WARN)' filename -egrep "INFO|WARN" filename -``` - -###### Except multiple patterns - -```bash -grep -vE '(error|critical|warning)' filename -``` - -###### Show data from file without comments - -```bash -grep -v ^[[:space:]]*# filename -``` - -###### Show data from file without comments and new lines - -```bash -egrep -v '#|^$' filename -``` - -###### Show strings with a dash/hyphen - -```bash -grep -e -- filename -grep -- -- filename -grep "\-\-" filename -``` - -###### Remove blank lines from a file and save output to new file - -```bash -grep . filename > newfilename -``` - -##### Tool: [perl](https://www.perl.org/) - -###### Search and replace (in place) - -```bash -perl -i -pe's/SEARCH/REPLACE/' filename -``` - -###### Edit of `*.conf` files changing all foo to bar (and backup original) - -```bash -perl -p -i.orig -e 's/\bfoo\b/bar/g' *.conf -``` - -###### Prints the first 20 lines from `*.conf` files - -```bash -perl -pe 'exit if $. > 20' *.conf -``` - -###### Search lines 10 to 20 - -```bash -perl -ne 'print if 10 .. 20' filename -``` - -###### Delete first 10 lines (and backup original) - -```bash -perl -i.orig -ne 'print unless 1 .. 10' filename -``` - -###### Delete all but lines between foo and bar (and backup original) - -```bash -perl -i.orig -ne 'print unless /^foo$/ .. /^bar$/' filename -``` - -###### Reduce multiple blank lines to a single line - -```bash -perl -p -i -00pe0 filename -``` - -###### Convert tabs to spaces (1t = 2sp) - -```bash -perl -p -i -e 's/\t/ /g' filename -``` - -###### Read input from a file and report number of lines and characters - -```bash -perl -lne '$i++; $in += length($_); END { print "$i lines, $in characters"; }' filename -``` - -#### Shell Tricks  [[TOC]](#anger-table-of-contents) - -When you get a shell, it is generally not very clean, but after following these steps, you will have a fairly clean and comfortable shell to work with. - -1) `script /dev/null -c bash` -2) Ctrl-Z (to send it to background) -3) `stty raw -echo; fg` (returns the shell to foreground) -4) `reset` (to reset terminal) -5) `xterm` (when asked for terminal type) -6) `export TERM=xterm; export SHELL=bash` - -#### Shell functions  [[TOC]](#anger-table-of-contents) - -##### Table of Contents - -- [Domain resolve](#domain-resolve) -- [Get ASN](#get-asn) - -###### Domain resolve - -```bash -# Dependencies: -# - curl -# - jq - -function DomainResolve() { - - local _host="$1" - - local _curl_base="curl --request GET" - local _timeout="15" - - _host_ip=$($_curl_base -ks -m "$_timeout" "https://dns.google.com/resolve?name=${_host}&type=A" | \ - jq '.Answer[0].data' | tr -d "\"" 2>/dev/null) - - if [[ -z "$_host_ip" ]] || [[ "$_host_ip" == "null" ]] ; then - - echo -en "Unsuccessful domain name resolution.\\n" - - else - - echo -en "$_host > $_host_ip\\n" - - fi - -} -``` - -Example: - -```bash -shell> DomainResolve nmap.org -nmap.org > 45.33.49.119 - -shell> DomainResolve nmap.org -Unsuccessful domain name resolution. -``` - -###### Get ASN - -```bash -# Dependencies: -# - curl - -function GetASN() { - - local _ip="$1" - - local _curl_base="curl --request GET" - local _timeout="15" - - _asn=$($_curl_base -ks -m "$_timeout" "http://ip-api.com/line/${_ip}?fields=as") - - _state=$(echo $?) - - if [[ -z "$_ip" ]] || [[ "$_ip" == "null" ]] || [[ "$_state" -ne 0 ]]; then - - echo -en "Unsuccessful ASN gathering.\\n" - - else - - echo -en "$_ip > $_asn\\n" - - fi - -} -``` - -Example: - -```bash -shell> GetASN 1.1.1.1 -1.1.1.1 > AS13335 Cloudflare, Inc. - -shell> GetASN 0.0.0.0 -Unsuccessful ASN gathering. -``` diff --git a/SOP-Navigation-and-Layout.md b/SOP-Navigation-and-Layout.md new file mode 100644 index 0000000..54f7f11 --- /dev/null +++ b/SOP-Navigation-and-Layout.md @@ -0,0 +1,134 @@ +### Revised SOP-Navigation-and-Layout.md (full suggested content) + +# SOP: Repository Layout, Navigation & Index Files + +**Purpose** +This SOP defines the standard structure, naming conventions, linking rules, and maintenance practices for the *Book of Secret Knowledge* fork (JK_Revisions branch). The goal is to keep the repo highly navigable on GitHub, consistent across folders, and easy to extend as new categories/tools are added. + +**Last Updated**: March 2026 +**Applies to**: All folders, especially `tools/`, `documentation/`, and root-level files + +## 1. Core Principles (Updated) + +- **Navigation-first design** โ€” Every folder containing subfolders or >2โ€“3 .md files **must** have an `INDEX.md`. +- **Recursive TOC in every INDEX.md** โ€” Show the full subtree (nested folders + files) using indented, hyperlinked markdown lists. Use `
` + `` for collapsible deep sections to avoid overwhelming long pages. +- **Tabular lists preferred over full markdown tables** โ€” For folder overviews / quick indexes use definition lists, bolded bullets, or simple indented pairs instead of | Name | Description | Link | tables. +- **Hyperlinks everywhere** โ€” All files, folders, external sites, GitHub repos, and the schema must be clickable (relative links whenever possible). +- **Consistency over perfection** โ€” Use the same patterns (naming, list styles, link formats) across the repo. +- **GitHub rendering** โ€” Prefer native markdown (`
`, relative links, lists) over code blocks for interactive elements. +- **Tool tables only** โ€” All tool/resource lists follow [TOOL-TABLE-SCHEMA.md](../TOOL-TABLE-SCHEMA.md) exactly (those remain proper tables). + +## 2. Naming Conventions + +- Navigation / overview file: **INDEX.md** (uppercase `I`) โ€” preferred over README.md in content folders + Alternatives (legacy only): `_INDEX.md`, `00_index.md` +- Tool/resource list files: lowercase-with-dashes.md + e.g. `dns-tools.md`, `shell-one-liners.md` +- Personal section: `my-contributions.md` (keep at `tools/` root) +- Schema reference: `TOOL-TABLE-SCHEMA.md` (root level, never move) + +**Rule**: No spaces in file/folder names (use `-` or `_`). Escape special characters in links when needed. + +## 3. Folder-Level INDEX.md Structure (Recommended Template โ€“ Updated) + +Every `INDEX.md` should follow this minimal layout: + +# [Category Name] Index + +Short 1โ€“2 sentence purpose of this folder. + +All tool tables in this section follow โ†’ [TOOL-TABLE-SCHEMA.md](../TOOL-TABLE-SCHEMA.md) + +## Contents (Recursive Overview) + +- **[Subfolder A](./subfolder-a/INDEX.md)** โ€” brief one-line description of what it contains + - [file-one.md](./subfolder-a/file-one.md) โ€” short note + - [file-two.md](./subfolder-a/file-two.md) โ€” short note + - **[Nested Subfolder](./subfolder-a/nested/INDEX.md)** โ€” purpose + - [deep-file.md](./subfolder-a/nested/deep-file.md) + +- **[Subfolder B](./subfolder-b/INDEX.md)** โ€” brief description + - ... + +- **Standalone Files** + - [example-file.md](./example-file.md) โ€” purpose / note + - [another.md](./another.md) + +## Quick Navigation +- โ†‘ [Back to Parent Index](tools/INDEX.md) (or `../_INDEX.md` for legacy) +- โ†‘ [Back to Tools Root](../_INDEX.md) (adjust level as needed) +- โ†‘ [Repository Root](../../README.md) + + +**For deeper folders**, wrap large subtrees in: + +``` +
+Expand: Network Engineering subtree + +- [diagnostics-troubleshooting/](./diagnostics-troubleshooting/INDEX.md) + - ... +
+``` + +This creates a recursive, explorable map without forcing the reader to click into every folder. + +## 4. Top-Level README.md Requirements (Updated) + +Near the top, include: + +- Brief mission/fork statement +- Collapsible recursive-ish directory structure (use indented list with key folders hyperlinked; full recursion optional here to avoid bloat) +- **Quick Access** section using a simple tabular list (not full table) + +Example: + +```markdown +
+Repository Structure (click to expand) + +- **[tools/](./tools/INDEX.md)** โ€” main tool & resource collections + - [my-contributions.md](./tools/my-contributions.md) + - **[network-engineering/](./tools/network-engineering/INDEX.md)** + - **[security/](./tools/security/INDEX.md)** + - ... +- **[documentation/](./documentation/INDEX.md)** โ€” guides, cheat sheets, learning +- [TOOL-TABLE-SCHEMA.md](./TOOL-TABLE-SCHEMA.md) โ€” mandatory table format +- [SOP-Navigation-and-Layout.md](./SOP-Navigation-and-Layout.md) + +
+ +### Quick Access +- **Tools Overview** โ†’ [tools/_INDEX.md](./tools/_INDEX.md) (or INDEX.md once renamed) +- **Documentation & Guides** โ†’ [documentation/INDEX.md](./documentation/INDEX.md) +- **Schema Rules** โ†’ [TOOL-TABLE-SCHEMA.md](./TOOL-TABLE-SCHEMA.md) +- **This SOP** โ†’ [SOP-Navigation-and-Layout.md](./SOP-Navigation-and-Layout.md) +``` + +## 5. Linking Rules (Mandatory โ€“ no change) + +- Internal file: `[shell-one-liners.md](./manuals-howtos-guides/shell-one-liners.md)` +- Internal folder: `[diagnostics-troubleshooting/](./network-engineering/diagnostics-troubleshooting/)` +- Schema: `[TOOL-TABLE-SCHEMA.md](../TOOL-TABLE-SCHEMA.md)` +- Upward: `โ†‘ [Tools Overview](../_INDEX.md)` or `โ†‘ [Root](../../README.md)` + +## 6. Maintenance Checklist (When Adding/Editing โ€“ Updated) + +- Create/update `INDEX.md` in every qualifying folder +- Build recursive contents list with relative hyperlinks +- Use tabular lists (bold bullets / definition style) instead of tables for index overviews +- Ensure tool-list .md files match [TOOL-TABLE-SCHEMA.md](../TOOL-TABLE-SCHEMA.md) exactly +- Update parent `INDEX.md` and root `README.md` when structure changes +- Use `
` liberally for deep recursion +- Commit message example: "feat: recursive INDEX.md for security/; tabular list conversion" + +## 7. Future Improvements (Nice-to-Have) + +- Rename `tools/_INDEX.md` โ†’ `tools/INDEX.md` for consistency +- Add item counts next to folders in recursive lists (e.g. `(12 tools)` ) +- Consider a single `all-tools.md` Aโ€“Z list if repo becomes very large +- Explore GitHub Actions to auto-generate/update recursive INDEX files + +Questions or deviations? Open an issue or PR referencing this SOP. + +Happy building! diff --git a/TOOL-TABLE-SCHEMA.md b/TOOL-TABLE-SCHEMA.md new file mode 100644 index 0000000..3a00b12 --- /dev/null +++ b/TOOL-TABLE-SCHEMA.md @@ -0,0 +1,31 @@ +# TOOL TABLE SCHEMA + +Use this exact column order and formatting for all tool lists in the repository. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | + +### Rules + +- **Name**: plain text, consistent capitalization (match official project name / branding) +- **Vendor/Webpage**: official site URL or โ€” (use โ€” when primarily GitHub-based with no strong separate homepage) +- **GitHub Repo**: shortened markdown link in format `[owner/repo](https://github.com/owner/repo)` โ€” only include if the project lives on GitHub +- **Brief Description**: exactly 1 sentence, <120 characters, ends with period. +- **Tags**: comma-separated lowercase tags in [brackets], 4โ€“8 max; include functional + interface + scope + primary language(s) when relevant +- **Latest Commit**: `YYYY-MM-DD` preferred; or `~Month YYYY` (with optional note e.g. `(major release)` or `(security fix)`) +- **Creation Date** (new): repository creation date in `YYYY-MM-DD` format if GitHub-hosted; for very old / non-GitHub projects use earliest known public release year (e.g. `1991`) or approximate decade if exact date unavailable (e.g. `~mid-1990s`). Leave blank or use `โ€”` if unknown/irrelevant. +- **Stars** (new): current GitHub star count in format `Xk` or `X.Yk` (e.g. `35.4k`, `812`) with optional "as of YYYY-MM" note if not very recent (e.g. `5.2k as of 2026-03`). Use `โ€”` for non-GitHub projects. + +### Guidance + +- **Creation Date** is especially valuable for legacy / classic Unix tools, early security utilities, and projects from the 1990sโ€“early 2000s to give historical perspective. +- **Stars** provides at-a-glance community adoption signal โ€” useful for readers new to the field who want to prioritize widely trusted tools. +- When adding or updating entries, fetch Creation Date and Stars directly from the GitHub repo page or API if possible. +- For extremely old projects without GitHub presence (e.g. original tcpdump releases, early versions of OpenSSH), prefer the initial public release year in Creation Date and leave Stars as `โ€”`. + +### Example row (classic tool) + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|------|----------------|-------------|-------------------|------|---------------|---------------|-------| +| Vim | โ€” | [vim/vim](https://github.com/vim/vim) | Highly configurable text editor for efficiently creating and changing any kind of text. | editor, text, cli, sysadmin, c | 2026-03-01 (v9.1 patch) | 1991-11-02 | 35.4k | + +This format keeps tables readable, adds meaningful context without clutter, and aligns with the goal of making the book more educational for beginners while respecting the heritage of many tools listed. diff --git a/documentation/INDEX.md b/documentation/INDEX.md new file mode 100644 index 0000000..4628027 --- /dev/null +++ b/documentation/INDEX.md @@ -0,0 +1,25 @@ +# Documentation Index + +Guides, cheat sheets, how-tos, manuals, learning resources, and reference material for operators, pentesters, and developers. + +All tool/resource tables in this section follow โ†’ [TOOL-TABLE-SCHEMA.md](../TOOL-TABLE-SCHEMA.md) + +## Contents + +**learning-resources** โ€” daily/ongoing knowledge sources, news aggregators, blogs worth following +- [daily-knowledge-news.md](./learning-resources/daily-knowledge-news.md) โ€” curated feed of daily security/dev/ops articles & updates + +**manuals-howtos-guides** โ€” practical shell, CLI, and workflow manuals +- [shell-one-liners.md](./manuals-howtos-guides/shell-one-liners.md) โ€” concise, copy-paste shell commands for common tasks +- [shell-tricks-functions.md](./manuals-howtos-guides/shell-tricks-functions.md) โ€” advanced functions, patterns, and productivity tricks + +**Other files** +- [other-cheat-sheets.md](./other-cheat-sheets.md) โ€” miscellaneous / uncategorized cheat sheets +- [readme - to refactor.md](./readme%20-%20to%20refactor.md) โ€” legacy notes (refactor pending) + +## Quick Navigation + +- โ†‘ [Back to Repository Root](../README.md) +- โ†’ [Tools Overview](../tools/INDEX.md) +- โ†’ [Schema Rules](../TOOL-TABLE-SCHEMA.md) +- โ†’ [Navigation SOP](../SOP-Navigation-and-Layout.md) \ No newline at end of file diff --git a/documentation/containers-orchestration/resources.md b/documentation/containers-orchestration/resources.md new file mode 100644 index 0000000..84c5f92 --- /dev/null +++ b/documentation/containers-orchestration/resources.md @@ -0,0 +1,20 @@ +# Resources & Learning โ€“ Containers & Orchestration + +| Name | Vendor/Webpage | GitHub Repo / Link | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|------------------------------------|----------------|------------------------------------------------------------------------------------|---------------------------------------------------------------------------|-------------------------------------------|---------------|---------------|--------| +| docker-cheat-sheet | โ€” | [wsargent/docker-cheat-sheet](https://github.com/wsargent/docker-cheat-sheet) | Quick reference cheat sheet covering most common Docker commands. | docker, cheat-sheet, learning | 2023-04-10 | 2015-02-20 | 5.8k | +| awesome-docker | โ€” | [veggiemonk/awesome-docker](https://github.com/veggiemonk/awesome-docker) | Curated list of Docker projects, tools, tutorials, and resources. | docker, awesome, curated, resources | 2026-01-15 | 2015-05-12 | 24.6k | +| docker_practice | โ€” | [yeasy/docker_practice](https://github.com/yeasy/docker_practice) | Learn Docker technologies with real DevOps practice examples. | docker, tutorial, practice, devops | 2025-10-01 | 2015-12-08 | 24.2k | +| labs | Docker | [docker/labs](https://github.com/docker/labs) | Collection of tutorials for using Docker with various tools and platforms.| docker, tutorial, labs | 2024-06-05 | 2015-04-22 | 11.3k | +| dockerfiles | โ€” | [jessfraz/dockerfiles](https://github.com/jessfraz/dockerfiles) | Various personal Dockerfiles used on desktops and servers. | docker, dockerfile, examples | 2022-11-18 | 2015-01-15 | 13.1k | +| kubernetes-the-hard-way | โ€” | [kelseyhightower/kubernetes-the-hard-way](https://github.com/kelseyhightower/kubernetes-the-hard-way) | Bootstrap Kubernetes the hard way (no scripts) on Google Cloud. | kubernetes, tutorial, bootstrap, hard | 2023-09-20 | 2016-09-01 | 36.4k | +| kubernetes-the-easy-way | โ€” | [jamesward/kubernetes-the-easy-way](https://github.com/jamesward/kubernetes-the-easy-way) | Bootstrap Kubernetes the easy way on Google Cloud. | kubernetes, tutorial, bootstrap, easy | 2022-05-12 | 2017-02-14 | ~1.2k | +| cheatsheet-kubernetes-A4 | โ€” | [dennyzhang/cheatsheet-kubernetes-A4](https://github.com/dennyzhang/cheatsheet-kubernetes-A4) | Kubernetes cheatsheets formatted for A4 printing. | kubernetes, cheat-sheet, reference | 2023-01-08 | 2017-06-30 | 6.7k | +| k8s-security | โ€” | [kabachook/k8s-security](https://github.com/kabachook/k8s-security) | Kubernetes security notes, checklists, and best practices. | kubernetes, security, best-practices | 2025-07-10 | 2018-11-05 | 4.9k | +| kubernetes-production-best-practices (learnk8s) | https://learnk8s.io/production-best-practices/ | โ€” | Checklists and best practices for production-ready Kubernetes clusters. | kubernetes, production, best-practices | โ€” | 2019 | โ€” | +| kubernetes-security-best-practice | โ€” | [freach/kubernetes-security-best-practice](https://github.com/freach/kubernetes-security-best-practice) | Guide to Kubernetes security best practices. | kubernetes, security, guide | 2024-04-22 | 2018-03-15 | 3.8k | +| kubernetes-failure-stories | โ€” | [hjacobs/kubernetes-failure-stories](https://github.com/hjacobs/kubernetes-failure-stories) | Compilation of public Kubernetes failure and horror stories. | kubernetes, failure, lessons, postmortem | 2023-10-30 | 2019-01-20 | 7.4k | + +โ†‘ [Back to Containers & Orchestration Documentation](./INDEX.md) +โ†‘ [Back to Documentation](../INDEX.md) +โ†‘ [Back to Root](/README.md) \ No newline at end of file diff --git a/documentation/learning-resources/daily-knowledge-news.md b/documentation/learning-resources/daily-knowledge-news.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/documentation/learning-resources/daily-knowledge-news.md @@ -0,0 +1 @@ + diff --git a/documentation/manuals-howtos-guides/shell-one-liners.md b/documentation/manuals-howtos-guides/shell-one-liners.md new file mode 100644 index 0000000..e69de29 diff --git a/documentation/manuals-howtos-guides/shell-tricks-functions.md b/documentation/manuals-howtos-guides/shell-tricks-functions.md new file mode 100644 index 0000000..e69de29 diff --git a/documentation/other-cheat-sheets.md b/documentation/other-cheat-sheets.md new file mode 100644 index 0000000..e69de29 diff --git a/documentation/readme - to refactor.md b/documentation/readme - to refactor.md new file mode 100644 index 0000000..d7985b9 --- /dev/null +++ b/documentation/readme - to refactor.md @@ -0,0 +1,2849 @@ + +###### DNS Servers list (privacy) + +| IP | URL | +| :--- | :--- | +| **`84.200.69.80`** | [dns.watch](https://dns.watch/) | +| **`94.247.43.254`** | [opennic.org](https://www.opennic.org/) | +| **`64.6.64.6`** | [verisign.com](https://www.verisign.com/en_US/security-services/public-dns/index.xhtml) | +| **`89.233.43.71`** | [censurfridns.dk](https://blog.uncensoreddns.org/) | +| **`1.1.1.1`** | [cloudflare.com](https://1.1.1.1/) | +###### TOP Browser extensions + +| Extension name | Description | +| :--- | :--- | +| **`IPvFoo`** | Display the server IP address and HTTPS information across all page elements. | +| **`FoxyProxy`** | Simplifies configuring browsers to access proxy-servers. | +| **`HTTPS Everywhere`** | Automatically use HTTPS security on many sites. | +| **`uMatrix`** | Point & click to forbid/allow any class of requests made by your browser. | +| **`uBlock Origin`** | An efficient blocker: easy on memory and CPU footprint. | +| **`Session Buddy`** | Manage browser tabs and bookmarks with ease. | +| **`SuperSorter`** | Sort bookmarks recursively, delete duplicates, merge folders, and more. | +| **`Clear Cache`** | Clear your cache and browsing data. | +| **`d3coder`** | Encoding/Decoding plugin for various types of encoding. | +| **`Web Developer`** | Adds a toolbar button with various web developer tools. | +| **`ThreatPinch Lookup`** | Add threat intelligence hover tool tips. | + +###### TOP Burp extensions + +| Extension name | Description | +| :--- | :--- | +| **`Active Scan++`** | Extends Burp's active and passive scanning capabilities. | +| **`Autorize`** | Automatically detects authorization enforcement. | +| **`AuthMatrix`** | A simple matrix grid to define the desired levels of access privilege. | +| **`Logger++`** | Logs requests and responses for all Burp tools in a sortable table. | +| **`Bypass WAF`** | Adds headers useful for bypassing some WAF devices. | +| **`JSON Beautifier`** | Beautifies JSON content in the HTTP message viewer. | +| **`JSON Web Tokens`** | Enables Burp to decode and manipulate JSON web tokens. | +| **`CSP Auditor`** | Displays CSP headers for responses, and passively reports CSP weaknesses. | +| **`CSP-Bypass`** | Passively scans for CSP headers that contain known bypasses. | +| **`Hackvertor`** | Converts data using a tag-based configuration to apply various encoding. | +| **`HTML5 Auditor`** | Scans for usage of risky HTML5 features. | +| **`Software Vulnerability Scanner`** | Vulnerability scanner based on vulners.com audit API. | +| **`Turbo Intruder`** | Is a powerful bruteforcing tool. | +| **`Upload Scanner`** | Upload a number of different file types, laced with different forms of payload. | + +###### Hack Mozilla Firefox address bar + +In Firefox's address bar, you can limit results by typing special characters before or after your term: + +- `^` - for matches in your browsing history +- `*` - for matches in your bookmarks. +- `%` - for matches in your currently open tabs. +- `#` - for matches in page titles. +- `@` - for matches in web addresses. + +###### Chrome hidden commands + +- `chrome://chrome-urls` - list of all commands +- `chrome://flags` - enable experiments and development features +- `chrome://interstitials` - errors and warnings +- `chrome://net-internals` - network internals (events, dns, cache) +- `chrome://network-errors` - network errors +- `chrome://net-export` - start logging future network activity to a file +- `chrome://safe-browsing` - safe browsing options +- `chrome://user-actions` - record all user actions +- `chrome://restart` - restart chrome +- `chrome://dino` - ERR_INTERNET_DISCONNECTED... +- `cache:` - view the cached version of the web page + +###### Bypass WAFs by Shortening IP Address (by [0xInfection](https://x.com/0xInfection)) + +IP addresses can be shortened by dropping the zeroes: + +``` +http://1.0.0.1 โ†’ http://1.1 +http://127.0.0.1 โ†’ http://127.1 +http://192.168.0.1 โ†’ http://192.168.1 + +http://0xC0A80001 or http://3232235521 โ†’ 192.168.0.1 +http://192.168.257 โ†’ 192.168.1.1 +http://192.168.516 โ†’ 192.168.2.4 +``` + + > This bypasses WAF filters for SSRF, open-redirect, etc where any IP as input gets blacklisted. + +###### Hashing, encryption and encoding (by [Michal ล paฤek](https://twitter.com/spazef0rze)) + +_Hashing_ + +plaintext :arrow_right: hash
+hash :no_entry: plaintext + +_Symmetric encryption_ + +plaintext :arrow_right: :key: :arrow_right: ciphertext
+plaintext :arrow_left: :key: :arrow_left: ciphertext
+(:key: shared key) + +_Asymmetric encryption_ + +plaintext :arrow_right: :key: :arrow_right: ciphertext
+plaintext :arrow_left: :part_alternation_mark: :arrow_left: ciphertext
+(:key: public key, :part_alternation_mark: private key)
+ +_Encoding_ + +text :arrow_right: encoded
+text :arrow_left: encoded + +#### Shell One-liners  [[TOC]](#anger-table-of-contents) + +##### Table of Contents + + * [terminal](#tool-terminal) + * [busybox](#tool-busybox) + * [mount](#tool-mount) + * [fuser](#tool-fuser) + * [lsof](#tool-lsof) + * [ps](#tool-ps) + * [top](#tool-top) + * [vmstat](#tool-vmstat) + * [iostat](#tool-iostat) + * [strace](#tool-strace) + * [kill](#tool-kill) + * [find](#tool-find) + * [diff](#tool-diff) + * [vimdiff](#tool-vimdiff) + * [tail](#tool-tail) + * [cpulimit](#tool-cpulimit) + * [pwdx](#tool-pwdx) + * [tr](#tool-tr) + * [chmod](#tool-chmod) + * [who](#tool-who) + * [last](#tool-last) + * [screen](#tool-screen) + * [script](#tool-script) + * [du](#tool-du) + * [inotifywait](#tool-inotifywait) + * [openssl](#tool-openssl) + * [secure-delete](#tool-secure-delete) + * [dd](#tool-dd) + * [gpg](#tool-gpg) + * [system-other](#tool-system-other) + * [curl](#tool-curl) + * [httpie](#tool-httpie) + * [ssh](#tool-ssh) + * [linux-dev](#tool-linux-dev) + * [tcpdump](#tool-tcpdump) + * [tcpick](#tool-tcpick) + * [ngrep](#tool-ngrep) + * [hping3](#tool-hping3) + * [nmap](#tool-nmap) + * [netcat](#tool-netcat) + * [socat](#tool-socat) + * [p0f](#tool-p0f) + * [gnutls-cli](#tool-gnutls-cli) + * [netstat](#tool-netstat) + * [rsync](#tool-rsync) + * [host](#tool-host) + * [dig](#tool-dig) + * [certbot](#tool-certbot) + * [network-other](#tool-network-other) + * [git](#tool-git) + * [awk](#tool-awk) + * [sed](#tool-sed) + * [grep](#tool-grep) + * [perl](#tool-perl) + +##### Tool: [terminal](https://en.wikipedia.org/wiki/Linux_console) + +###### Reload shell without exit + +```bash +exec $SHELL -l +``` + +###### Close shell keeping all subprocess running + +```bash +disown -a && exit +``` + +###### Exit without saving shell history + +```bash +kill -9 $$ +unset HISTFILE && exit +``` + +###### Perform a branching conditional + +```bash +true && echo success +false || echo failed +``` + +###### Pipe stdout and stderr to separate commands + +```bash +some_command > >(/bin/cmd_for_stdout) 2> >(/bin/cmd_for_stderr) +``` + +###### Redirect stdout and stderr each to separate files and print both to the screen + +```bash +(some_command 2>&1 1>&3 | tee errorlog ) 3>&1 1>&2 | tee stdoutlog +``` + +###### List of commands you use most often + +```bash +history | \ +awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | \ +grep -v "./" | \ +column -c3 -s " " -t | \ +sort -nr | nl | head -n 20 +``` + +###### Sterilize bash history + +```bash +function sterile() { + + history | awk '$2 != "history" { $1=""; print $0 }' | egrep -vi "\ +curl\b+.*(-E|--cert)\b+.*\b*|\ +curl\b+.*--pass\b+.*\b*|\ +curl\b+.*(-U|--proxy-user).*:.*\b*|\ +curl\b+.*(-u|--user).*:.*\b* +.*(-H|--header).*(token|auth.*)\b+.*|\ +wget\b+.*--.*password\b+.*\b*|\ +http.?://.+:.+@.*\ +" > $HOME/histbuff; history -r $HOME/histbuff; + +} + +export PROMPT_COMMAND="sterile" +``` + + > Look also: [A naive utility to censor credentials in command history](https://github.com/lbonanomi/go/blob/master/revisionist.go). + +###### Quickly backup a file + +```bash +cp filename{,.orig} +``` + +###### Empty a file (truncate to 0 size) + +```bash +>filename +``` + +###### Delete all files in a folder that don't match a certain file extension + +```bash +rm !(*.foo|*.bar|*.baz) +``` + +###### Pass multi-line string to a file + +```bash +# cat >filename ... - overwrite the file +# cat >>filename ... - append to a file +cat > filename << __EOF__ +data data data +__EOF__ +``` + +###### Edit a file on a remote host using vim + +```bash +vim scp://user@host//etc/fstab +``` + +###### Create a directory and change into it at the same time + +```bash +mkd() { mkdir -p "$@" && cd "$@"; } +``` + +###### Convert uppercase files to lowercase files + +```bash +rename 'y/A-Z/a-z/' * +``` + +###### Print a row of characters across the terminal + +```bash +printf "%`tput cols`s" | tr ' ' '#' +``` + +###### Show shell history without line numbers + +```bash +history | cut -c 8- +fc -l -n 1 | sed 's/^\s*//' +``` + +###### Run command(s) after exit session + +```bash +cat > /etc/profile << __EOF__ +_after_logout() { + + username=$(whoami) + + for _pid in $(ps afx | grep sshd | grep "$username" | awk '{print $1}') ; do + + kill -9 $_pid + + done + +} +trap _after_logout EXIT +__EOF__ +``` + +###### Generate a sequence of numbers + +```bash +for ((i=1; i<=10; i+=2)) ; do echo $i ; done +# alternative: seq 1 2 10 + +for ((i=5; i<=10; ++i)) ; do printf '%02d\n' $i ; done +# alternative: seq -w 5 10 + +for i in {1..10} ; do echo $i ; done +``` + +###### Simple Bash filewatching + +```bash +unset MAIL; export MAILCHECK=1; export MAILPATH='$FILE_TO_WATCH?$MESSAGE' +``` + +--- + +##### Tool: [busybox](https://www.busybox.net/) + +###### Static HTTP web server + +```bash +busybox httpd -p $PORT -h $HOME [-c httpd.conf] +``` + +___ + +##### Tool: [mount](https://en.wikipedia.org/wiki/Mount_(Unix)) + +###### Mount a temporary ram partition + +```bash +mount -t tmpfs tmpfs /mnt -o size=64M +``` + + * `-t` - filesystem type + * `-o` - mount options + +###### Remount a filesystem as read/write + +```bash +mount -o remount,rw / +``` + +___ + +##### Tool: [fuser](https://en.wikipedia.org/wiki/Fuser_(Unix)) + +###### Show which processes use the files/directories + +```bash +fuser /var/log/daemon.log +fuser -v /home/supervisor +``` + +###### Kills a process that is locking a file + +```bash +fuser -ki filename +``` + + * `-i` - interactive option + +###### Kills a process that is locking a file with specific signal + +```bash +fuser -k -HUP filename +``` + + * `--list-signals` - list available signal names + +###### Show what PID is listening on specific port + +```bash +fuser -v 53/udp +``` + +###### Show all processes using the named filesystems or block device + +```bash +fuser -mv /var/www +``` + +___ + +##### Tool: [lsof](https://en.wikipedia.org/wiki/Lsof) + +###### Show process that use internet connection at the moment + +```bash +lsof -P -i -n +``` + +###### Show process that use specific port number + +```bash +lsof -i tcp:443 +``` + +###### Lists all listening ports together with the PID of the associated process + +```bash +lsof -Pan -i tcp -i udp +``` + +###### List all open ports and their owning executables + +```bash +lsof -i -P | grep -i "listen" +``` + +###### Show all open ports + +```bash +lsof -Pnl -i +``` + +###### Show open ports (LISTEN) + +```bash +lsof -Pni4 | grep LISTEN | column -t +``` + +###### List all files opened by a particular command + +```bash +lsof -c "process" +``` + +###### View user activity per directory + +```bash +lsof -u username -a +D /etc +``` + +###### Show 10 largest open files + +```bash +lsof / | \ +awk '{ if($7 > 1048576) print $7/1048576 "MB" " " $9 " " $1 }' | \ +sort -n -u | tail | column -t +``` + +###### Show current working directory of a process + +```bash +lsof -p | grep cwd +``` + +___ + +##### Tool: [ps](https://en.wikipedia.org/wiki/Ps_(Unix)) + +###### Show a 4-way scrollable process tree with full details + +```bash +ps awwfux | less -S +``` + +###### Processes per user counter + +```bash +ps hax -o user | sort | uniq -c | sort -r +``` + +###### Show all processes by name with main header + +```bash +ps -lfC nginx +``` + +___ + +##### Tool: [find](https://en.wikipedia.org/wiki/Find_(Unix)) + +###### Find files that have been modified on your system in the past 60 minutes + +```bash +find / -mmin 60 -type f +``` + +###### Find all files larger than 20M + +```bash +find / -type f -size +20M +``` + +###### Find duplicate files (based on MD5 hash) + +```bash +find -type f -exec md5sum '{}' ';' | sort | uniq --all-repeated=separate -w 33 +``` + +###### Change permission only for files + +```bash +cd /var/www/site && find . -type f -exec chmod 766 {} \; +cd /var/www/site && find . -type f -exec chmod 664 {} + +``` + +###### Change permission only for directories + +```bash +cd /var/www/site && find . -type d -exec chmod g+x {} \; +cd /var/www/site && find . -type d -exec chmod g+rwx {} + +``` + +###### Find files and directories for specific user/group + +```bash +# User: +find . -user -print +find /etc -type f -user -name "*.conf" + +# Group: +find /opt -group +find /etc -type f -group -iname "*.conf" +``` + +###### Find files and directories for all without specific user/group + +```bash +# User: +find . \! -user -print + +# Group: +find . \! -group +``` + +###### Looking for files/directories that only have certain permission + +```bash +# User +find . -user -perm -u+rw # -rw-r--r-- +find /home -user $(whoami) -perm 777 # -rwxrwxrwx + +# Group: +find /home -type d -group -perm 755 # -rwxr-xr-x +``` + +###### Delete older files than 60 days + +```bash +find . -type f -mtime +60 -delete +``` + +###### Recursively remove all empty sub-directories from a directory + +```bash +find . -depth -type d -empty -exec rmdir {} \; +``` + +###### How to find all hard links to a file + +```bash +find -xdev -samefile filename +``` + +###### Recursively find the latest modified files + +```bash +find . -type f -exec stat --format '%Y :%y %n' "{}" \; | sort -nr | cut -d: -f2- | head +``` + +###### Recursively find/replace of a string with sed + +```bash +find . -not -path '*/\.git*' -type f -print0 | xargs -0 sed -i 's/foo/bar/g' +``` + +###### Recursively find/replace of a string in directories and file names + +```bash +find . -depth -name '*test*' -execdir bash -c 'mv -v "$1" "${1//foo/bar}"' _ {} \; +``` + +###### Recursively find suid executables + +```bash +find / \( -perm -4000 -o -perm -2000 \) -type f -exec ls -la {} \; +``` + +___ + +##### Tool: [top](https://en.wikipedia.org/wiki/Top_(software)) + +###### Use top to monitor only all processes with the specific string + +```bash +top -p $(pgrep -d , ) +``` + + * `` - process containing string (eg. nginx, worker) + +___ + +##### Tool: [vmstat](https://en.wikipedia.org/wiki/Vmstat) + +###### Show current system utilization (fields in kilobytes) + +```bash +vmstat 2 20 -t -w +``` + + * `2` - number of times with a defined time interval (delay) + * `20` - each execution of the command (count) + * `-t` - show timestamp + * `-w` - wide output + * `-S M` - output of the fields in megabytes instead of kilobytes + +###### Show current system utilization will get refreshed every 5 seconds + +```bash +vmstat 5 -w +``` + +###### Display report a summary of disk operations + +```bash +vmstat -D +``` + +###### Display report of event counters and memory stats + +```bash +vmstat -s +``` + +###### Display report about kernel objects stored in slab layer cache + +```bash +vmstat -m +``` + +##### Tool: [iostat](https://en.wikipedia.org/wiki/Iostat) + +###### Show information about the CPU usage, and I/O statistics about all the partitions + +```bash +iostat 2 10 -t -m +``` + + * `2` - number of times with a defined time interval (delay) + * `10` - each execution of the command (count) + * `-t` - show timestamp + * `-m` - fields in megabytes (`-k` - in kilobytes, default) + +###### Show information only about the CPU utilization + +```bash +iostat 2 10 -t -m -c +``` + +###### Show information only about the disk utilization + +```bash +iostat 2 10 -t -m -d +``` + +###### Show information only about the LVM utilization + +```bash +iostat -N +``` + +___ + +##### Tool: [strace](https://en.wikipedia.org/wiki/Strace) + +###### Track with child processes + +```bash +# 1) +strace -f -p $(pidof glusterfsd) + +# 2) +strace -f $(pidof php-fpm | sed 's/\([0-9]*\)/\-p \1/g') +``` + +###### Track process with 30 seconds limit + +```bash +timeout 30 strace $(< /var/run/zabbix/zabbix_agentd.pid) +``` + +###### Track processes and redirect output to a file + +```bash +ps auxw | grep '[a]pache' | awk '{print " -p " $2}' | \ +xargs strace -o /tmp/strace-apache-proc.out +``` + +###### Track with print time spent in each syscall and limit length of print strings + +```bash +ps auxw | grep '[i]init_policy' | awk '{print " -p " $2}' | \ +xargs strace -f -e trace=network -T -s 10000 +``` + +###### Track the open request of a network port + +```bash +strace -f -e trace=bind nc -l 80 +``` + +###### Track the open request of a network port (show TCP/UDP) + +```bash +strace -f -e trace=network nc -lu 80 +``` + +___ + +##### Tool: [kill](https://en.wikipedia.org/wiki/Kill_(command)) + +###### Kill a process running on port + +```bash +kill -9 $(lsof -i : | awk '{l=$2} END {print l}') +``` + +___ + +##### Tool: [diff](https://en.wikipedia.org/wiki/Diff) + +###### Compare two directory trees + +```bash +diff <(cd directory1 && find | sort) <(cd directory2 && find | sort) +``` + +###### Compare output of two commands + +```bash +diff <(cat /etc/passwd) <(cut -f2 /etc/passwd) +``` + +___ + +##### Tool: [vimdiff](https://git-scm.com/docs/vimdiff) + +###### Highlight the exact differences, based on characters and words + +```bash +vimdiff file1 file2 +``` + +###### Compare two JSON files + +```bash +vimdiff <(jq -S . A.json) <(jq -S . B.json) +``` + +###### Compare Hex dump + +```bash +d(){ vimdiff <(f $1) <(f $2);};f(){ hexdump -C $1 | cut -d' ' -f3- | tr -s ' ';}; d ~/bin1 ~/bin2 +``` + +###### diffchar + +Save [diffchar](https://raw.githubusercontent.com/vim-scripts/diffchar.vim/master/plugin/diffchar.vim) @ `~/.vim/plugins` + +Click `F7` to switch between diff modes + +Usefull `vimdiff` commands: + +* `qa` to exit all windows +* `:vertical resize 70` to resize window +* set window width `Ctrl+W [N columns]+(Shift+)<\>` + +___ + +##### Tool: [tail](https://en.wikipedia.org/wiki/Tail_(Unix)) + +###### Annotate tail -f with timestamps + +```bash +tail -f file | while read ; do echo "$(date +%T.%N) $REPLY" ; done +``` + +###### Analyse an Apache access log for the most common IP addresses + +```bash +tail -10000 access_log | awk '{print $1}' | sort | uniq -c | sort -n | tail +``` + +###### Analyse web server log and show only 5xx http codes + +```bash +tail -n 100 -f /path/to/logfile | grep "HTTP/[1-2].[0-1]\" [5]" +``` + +___ + +##### Tool: [tar](https://en.wikipedia.org/wiki/Tar_(computing)) + +###### System backup with exclude specific directories + +```bash +cd / +tar -czvpf /mnt/system$(date +%d%m%Y%s).tgz --directory=/ \ +--exclude=proc/* --exclude=sys/* --exclude=dev/* --exclude=mnt/* . +``` + +###### System backup with exclude specific directories (pigz) + +```bash +cd / +tar cvpf /backup/snapshot-$(date +%d%m%Y%s).tgz --directory=/ \ +--exclude=proc/* --exclude=sys/* --exclude=dev/* \ +--exclude=mnt/* --exclude=tmp/* --use-compress-program=pigz . +``` + +___ + +##### Tool: [dump](https://en.wikipedia.org/wiki/Dump_(program)) + +###### System backup to file + +```bash +dump -y -u -f /backup/system$(date +%d%m%Y%s).lzo / +``` + +###### Restore system from lzo file + +```bash +cd / +restore -rf /backup/system$(date +%d%m%Y%s).lzo +``` + +___ + +##### Tool: [tr](https://en.wikipedia.org/wiki/Tr_(Unix)) + +###### Show directories in the PATH, one per line + +```bash +tr : '\n' <<<$PATH +``` + +___ + +##### Tool: [chmod](https://en.wikipedia.org/wiki/Chmod) + +###### Remove executable bit from all files in the current directory + +```bash +chmod -R -x+X * +``` + +###### Restore permission for /bin/chmod + +```bash +# 1: +cp /bin/ls chmod.01 +cp /bin/chmod chmod.01 +./chmod.01 700 file + +# 2: +/bin/busybox chmod 0700 /bin/chmod + +# 3: +setfacl --set u::rwx,g::---,o::--- /bin/chmod +``` + +___ + +##### Tool: [who](https://en.wikipedia.org/wiki/Who_(Unix)) + +###### Find last reboot time + +```bash +who -b +``` + +###### Detect a user sudo-su'd into the current shell + +```bash +[[ $(who -m | awk '{ print $1 }') == $(whoami) ]] || echo "You are su-ed to $(whoami)" +``` + +___ + +##### Tool: [last](https://www.howtoforge.com/linux-last-command/) + +###### Was the last reboot a panic? + +```bash +(last -x -f $(ls -1t /var/log/wtmp* | head -2 | tail -1); last -x -f /var/log/wtmp) | \ +grep -A1 reboot | head -2 | grep -q shutdown && echo "Expected reboot" || echo "Panic reboot" +``` + +___ + +##### Tool: [screen](https://en.wikipedia.org/wiki/GNU_Screen) + +###### Start screen in detached mode + +```bash +screen -d -m +``` + +###### Attach to an existing screen session + +```bash +screen -r -d +``` + +___ + +##### Tool: [script](https://en.wikipedia.org/wiki/Script_(Unix)) + +###### Record and replay terminal session + +```bash +### Record session +# 1) +script -t 2>~/session.time -a ~/session.log + +# 2) +script --timing=session.time session.log + +### Replay session +scriptreplay --timing=session.time session.log +``` + +___ + +##### Tool: [du](https://en.wikipedia.org/wiki/GNU_Screen) + +###### Show 20 biggest directories with 'K M G' + +```bash +du | \ +sort -r -n | \ +awk '{split("K M G",v); s=1; while($1>1024){$1/=1024; s++} print int($1)" "v[s]"\t"$2}' | \ +head -n 20 +``` + +___ + +##### Tool: [inotifywait](https://en.wikipedia.org/wiki/GNU_Screen) + +###### Init tool everytime a file in a directory is modified + +```bash +while true ; do inotifywait -r -e MODIFY dir/ && ls dir/ ; done; +``` + +___ + +##### Tool: [openssl](https://www.openssl.org/) + +###### Testing connection to the remote host + +```bash +echo | openssl s_client -connect google.com:443 -showcerts +``` + +###### Testing connection to the remote host (debug mode) + +```bash +echo | openssl s_client -connect google.com:443 -showcerts -tlsextdebug -status +``` + +###### Testing connection to the remote host (with SNI support) + +```bash +echo | openssl s_client -showcerts -servername google.com -connect google.com:443 +``` + +###### Testing connection to the remote host with specific ssl version + +```bash +openssl s_client -tls1_2 -connect google.com:443 +``` + +###### Testing connection to the remote host with specific ssl cipher + +```bash +openssl s_client -cipher 'AES128-SHA' -connect google.com:443 +``` + +###### Verify 0-RTT + +```bash +_host="example.com" + +cat > req.in << __EOF__ +HEAD / HTTP/1.1 +Host: $_host +Connection: close +__EOF__ + +openssl s_client -connect ${_host}:443 -tls1_3 -sess_out session.pem -ign_eof < req.in +openssl s_client -connect ${_host}:443 -tls1_3 -sess_in session.pem -early_data req.in +``` + +###### Generate private key without passphrase + +```bash +# _len: 2048, 4096 +( _fd="private.key" ; _len="2048" ; \ +openssl genrsa -out ${_fd} ${_len} ) +``` + +###### Generate private key with passphrase + +```bash +# _ciph: aes128, aes256 +# _len: 2048, 4096 +( _ciph="aes128" ; _fd="private.key" ; _len="2048" ; \ +openssl genrsa -${_ciph} -out ${_fd} ${_len} ) +``` + +###### Remove passphrase from private key + +```bash +( _fd="private.key" ; _fd_unp="private_unp.key" ; \ +openssl rsa -in ${_fd} -out ${_fd_unp} ) +``` + +###### Encrypt existing private key with a passphrase + +```bash +# _ciph: aes128, aes256 +( _ciph="aes128" ; _fd="private.key" ; _fd_pass="private_pass.key" ; \ +openssl rsa -${_ciph} -in ${_fd} -out ${_fd_pass} +``` + +###### Check private key + +```bash +( _fd="private.key" ; \ +openssl rsa -check -in ${_fd} ) +``` + +###### Get public key from private key + +```bash +( _fd="private.key" ; _fd_pub="public.key" ; \ +openssl rsa -pubout -in ${_fd} -out ${_fd_pub} ) +``` + +###### Generate private key and CSR + +```bash +( _fd="private.key" ; _fd_csr="request.csr" ; _len="2048" ; \ +openssl req -out ${_fd_csr} -new -newkey rsa:${_len} -nodes -keyout ${_fd} ) +``` + +###### Generate CSR + +```bash +( _fd="private.key" ; _fd_csr="request.csr" ; \ +openssl req -out ${_fd_csr} -new -key ${_fd} ) +``` + +###### Generate CSR (metadata from existing certificate) + + > Where `private.key` is the existing private key. As you can see you do not generate this CSR from your certificate (public key). Also you do not generate the "same" CSR, just a new one to request a new certificate. + +```bash +( _fd="private.key" ; _fd_csr="request.csr" ; _fd_crt="cert.crt" ; \ +openssl x509 -x509toreq -in ${_fd_crt} -out ${_fd_csr} -signkey ${_fd} ) +``` + +###### Generate CSR with -config param + +```bash +( _fd="private.key" ; _fd_csr="request.csr" ; \ +openssl req -new -sha256 -key ${_fd} -out ${_fd_csr} \ +-config <( +cat << __EOF__ +[req] +default_bits = 2048 +default_md = sha256 +prompt = no +distinguished_name = dn +req_extensions = req_ext + +[ dn ] +C = "" +ST = "" +L = "" +O = "" +OU = "
" +CN = "" + +[ req_ext ] +subjectAltName = @alt_names + +[ alt_names ] +DNS.1 = +DNS.2 = +DNS.3 = +__EOF__ +)) +``` + +Other values in `[ dn ]`: + +``` +countryName = "DE" # C= +stateOrProvinceName = "Hessen" # ST= +localityName = "Keller" # L= +postalCode = "424242" # L/postalcode= +postalAddress = "Keller" # L/postaladdress= +streetAddress = "Crater 1621" # L/street= +organizationName = "apfelboymschule" # O= +organizationalUnitName = "IT Department" # OU= +commonName = "example.com" # CN= +emailAddress = "webmaster@example.com" # CN/emailAddress= +``` + +Example of `oids` (you'll probably also have to make OpenSSL know about the new fields required for EV by adding the following under `[new_oids]`): + +``` +[req] +... +oid_section = new_oids + +[ new_oids ] +postalCode = 2.5.4.17 +streetAddress = 2.5.4.9 +``` + +Full example: + +```bash +( _fd="private.key" ; _fd_csr="request.csr" ; \ +openssl req -new -sha256 -key ${_fd} -out ${_fd_csr} \ +-config <( +cat << __EOF__ +[req] +default_bits = 2048 +default_md = sha256 +prompt = no +distinguished_name = dn +req_extensions = req_ext +oid_section = new_oids + +[ new_oids ] +serialNumber = 2.5.4.5 +streetAddress = 2.5.4.9 +postalCode = 2.5.4.17 +businessCategory = 2.5.4.15 + +[ dn ] +serialNumber=00001111 +businessCategory=Private Organization +jurisdictionC=DE +C=DE +ST=Hessen +L=Keller +postalCode=424242 +streetAddress=Crater 1621 +O=AV Company +OU=IT +CN=example.com + +[ req_ext ] +subjectAltName = @alt_names + +[ alt_names ] +DNS.1 = example.com +__EOF__ +)) +``` + +For more information please look at these great explanations: + +- [RFC 5280](https://tools.ietf.org/html/rfc5280) +- [Generate a multi domains certificate using config files](https://gist.github.com/romainnorberg/464758a6620228b977212a3cf20c3e08) +- [Your OpenSSL CSR command is out of date](https://expeditedsecurity.com/blog/openssl-csr-command/) +- [OpenSSL example configuration file](https://www.tbs-certificats.com/openssl-dem-server-cert.cnf) +- [Object Identifiers (OIDs)](https://www.alvestrand.no/objectid/) +- [openssl objects.txt](https://github.com/openssl/openssl/blob/master/crypto/objects/objects.txt) + +###### List available EC curves + +```bash +openssl ecparam -list_curves +``` + +###### Print ECDSA private and public keys + +```bash +( _fd="private.key" ; \ +openssl ec -in ${_fd} -noout -text ) + +# For x25519 only extracting public key +( _fd="private.key" ; _fd_pub="public.key" ; \ +openssl pkey -in ${_fd} -pubout -out ${_fd_pub} ) +``` + +###### Generate ECDSA private key + +```bash +# _curve: prime256v1, secp521r1, secp384r1 +( _fd="private.key" ; _curve="prime256v1" ; \ +openssl ecparam -out ${_fd} -name ${_curve} -genkey ) + +# _curve: X25519 +( _fd="private.key" ; _curve="x25519" ; \ +openssl genpkey -algorithm ${_curve} -out ${_fd} ) +``` + +###### Generate private key and CSR (ECC) + +```bash +# _curve: prime256v1, secp521r1, secp384r1 +( _fd="domain.com.key" ; _fd_csr="domain.com.csr" ; _curve="prime256v1" ; \ +openssl ecparam -out ${_fd} -name ${_curve} -genkey ; \ +openssl req -new -key ${_fd} -out ${_fd_csr} -sha256 ) +``` + +###### Generate self-signed certificate + +```bash +# _len: 2048, 4096 +( _fd="domain.key" ; _fd_out="domain.crt" ; _len="2048" ; _days="365" ; \ +openssl req -newkey rsa:${_len} -nodes \ +-keyout ${_fd} -x509 -days ${_days} -out ${_fd_out} ) +``` + +###### Generate self-signed certificate from existing private key + +```bash +# _len: 2048, 4096 +( _fd="domain.key" ; _fd_out="domain.crt" ; _days="365" ; \ +openssl req -key ${_fd} -nodes \ +-x509 -days ${_days} -out ${_fd_out} ) +``` + +###### Generate self-signed certificate from existing private key and csr + +```bash +# _len: 2048, 4096 +( _fd="domain.key" ; _fd_csr="domain.csr" ; _fd_out="domain.crt" ; _days="365" ; \ +openssl x509 -signkey ${_fd} -nodes \ +-in ${_fd_csr} -req -days ${_days} -out ${_fd_out} ) +``` + +###### Generate DH public parameters + +```bash +( _dh_size="2048" ; \ +openssl dhparam -out /etc/nginx/ssl/dhparam_${_dh_size}.pem "$_dh_size" ) +``` + +###### Display DH public parameters + +```bash +openssl pkeyparam -in dhparam.pem -text +``` + +###### Extract private key from pfx + +```bash +( _fd_pfx="cert.pfx" ; _fd_key="key.pem" ; \ +openssl pkcs12 -in ${_fd_pfx} -nocerts -nodes -out ${_fd_key} ) +``` + +###### Extract private key and certs from pfx + +```bash +( _fd_pfx="cert.pfx" ; _fd_pem="key_certs.pem" ; \ +openssl pkcs12 -in ${_fd_pfx} -nodes -out ${_fd_pem} ) +``` + +###### Extract certs from p7b + +```bash +# PKCS#7 file doesn't include private keys. +( _fd_p7b="cert.p7b" ; _fd_pem="cert.pem" ; \ +openssl pkcs7 -inform DER -outform PEM -in ${_fd_p7b} -print_certs > ${_fd_pem}) +# or: +openssl pkcs7 -print_certs -in -in ${_fd_p7b} -out ${_fd_pem}) +``` + +###### Convert DER to PEM + +```bash +( _fd_der="cert.crt" ; _fd_pem="cert.pem" ; \ +openssl x509 -in ${_fd_der} -inform der -outform pem -out ${_fd_pem} ) +``` + +###### Convert PEM to DER + +```bash +( _fd_der="cert.crt" ; _fd_pem="cert.pem" ; \ +openssl x509 -in ${_fd_pem} -outform der -out ${_fd_der} ) +``` + +###### Verification of the private key + +```bash +( _fd="private.key" ; \ +openssl rsa -noout -text -in ${_fd} ) +``` + +###### Verification of the public key + +```bash +# 1) +( _fd="public.key" ; \ +openssl pkey -noout -text -pubin -in ${_fd} ) + +# 2) +( _fd="private.key" ; \ +openssl rsa -inform PEM -noout -in ${_fd} &> /dev/null ; \ +if [ $? = 0 ] ; then echo -en "OK\n" ; fi ) +``` + +###### Verification of the certificate + +```bash +( _fd="certificate.crt" ; # format: pem, cer, crt \ +openssl x509 -noout -text -in ${_fd} ) +``` + +###### Verification of the CSR + +```bash +( _fd_csr="request.csr" ; \ +openssl req -text -noout -in ${_fd_csr} ) +``` + +###### Check the private key and the certificate are match + +```bash +(openssl rsa -noout -modulus -in private.key | openssl md5 ; \ +openssl x509 -noout -modulus -in certificate.crt | openssl md5) | uniq +``` + +###### Check the private key and the CSR are match + +```bash +(openssl rsa -noout -modulus -in private.key | openssl md5 ; \ +openssl req -noout -modulus -in request.csr | openssl md5) | uniq +``` + +___ + +##### Tool: [secure-delete](https://wiki.archlinux.org/index.php/Securely_wipe_disk) + +###### Secure delete with shred + +```bash +shred -vfuz -n 10 file +shred --verbose --random-source=/dev/urandom -n 1 /dev/sda +``` + +###### Secure delete with scrub + +```bash +scrub -p dod /dev/sda +scrub -p dod -r file +``` + +###### Secure delete with badblocks + +```bash +badblocks -s -w -t random -v /dev/sda +badblocks -c 10240 -s -w -t random -v /dev/sda +``` + +###### Secure delete with secure-delete + +```bash +srm -vz /tmp/file +sfill -vz /local +sdmem -v +swapoff /dev/sda5 && sswap -vz /dev/sda5 +``` + +___ + +##### Tool: [dd](https://en.wikipedia.org/wiki/Dd_(Unix)) + +###### Show dd status every so often + +```bash +dd status=progress +watch --interval 5 killall -USR1 dd +``` + +###### Redirect output to a file with dd + +```bash +echo "string" | dd of=filename +``` + +___ + +##### Tool: [gpg](https://www.gnupg.org/) + +###### Export public key + +```bash +gpg --export --armor "" > username.pkey +``` + + * `--export` - export all keys from all keyrings or specific key + * `-a|--armor` - create ASCII armored output + +###### Encrypt file + +```bash +gpg -e -r "" dump.sql +``` + + * `-e|--encrypt` - encrypt data + * `-r|--recipient` - encrypt for specific + +###### Decrypt file + +```bash +gpg -o dump.sql -d dump.sql.gpg +``` + + * `-o|--output` - use as output file + * `-d|--decrypt` - decrypt data (default) + +###### Search recipient + +```bash +gpg --keyserver hkp://keyserver.ubuntu.com --search-keys "" +``` + + * `--keyserver` - set specific key server + * `--search-keys` - search for keys on a key server + +###### List all of the packets in an encrypted file + +```bash +gpg --batch --list-packets archive.gpg +gpg2 --batch --list-packets archive.gpg +``` + +___ + +##### Tool: [system-other](https://github.com/trimstray/the-book-of-secret-knowledge#tool-system-other) + +###### Reboot system from init + +```bash +exec /sbin/init 6 +``` + +###### Init system from single user mode + +```bash +exec /sbin/init +``` + +###### Show current working directory of a process + +```bash +readlink -f /proc//cwd +``` + +###### Show actual pathname of the executed command + +```bash +readlink -f /proc//exe +``` + +##### Tool: [curl](https://curl.haxx.se) + +```bash +curl -Iks https://www.google.com +``` + + * `-I` - show response headers only + * `-k` - insecure connection when using ssl + * `-s` - silent mode (not display body) + +```bash +curl -Iks --location -X GET -A "x-agent" https://www.google.com +``` + + * `--location` - follow redirects + * `-X` - set method + * `-A` - set user-agent + +```bash +curl -Iks --location -X GET -A "x-agent" --proxy http://127.0.0.1:16379 https://www.google.com +``` + + * `--proxy [socks5://|http://]` - set proxy server + +```bash +curl -o file.pdf -C - https://example.com/Aiju2goo0Ja2.pdf +``` + + * `-o` - write output to file + * `-C` - resume the transfer + +###### Find your external IP address (external services) + +```bash +curl ipinfo.io +curl ipinfo.io/ip +curl icanhazip.com +curl ifconfig.me/ip ; echo +``` + +###### Repeat URL request + +```bash +# URL sequence substitution with a dummy query string: +curl -ks https://example.com/?[1-20] + +# With shell 'for' loop: +for i in {1..20} ; do curl -ks https://example.com/ ; done +``` + +###### Check DNS and HTTP trace with headers for specific domains + +```bash +### Set domains and external dns servers. +_domain_list=(google.com) ; _dns_list=("8.8.8.8" "1.1.1.1") + +for _domain in "${_domain_list[@]}" ; do + + printf '=%.0s' {1..48} + + echo + + printf "[\\e[1;32m+\\e[m] resolve: %s\\n" "$_domain" + + for _dns in "${_dns_list[@]}" ; do + + # Resolve domain. + host "${_domain}" "${_dns}" + + echo + + done + + for _proto in http https ; do + + printf "[\\e[1;32m+\\e[m] trace + headers: %s://%s\\n" "$_proto" "$_domain" + + # Get trace and http headers. + curl -Iks -A "x-agent" --location "${_proto}://${_domain}" + + echo + + done + +done + +unset _domain_list _dns_list +``` + +___ + +##### Tool: [httpie](https://httpie.org/) + +```bash +http -p Hh https://www.google.com +``` + + * `-p` - print request and response headers + * `H` - request headers + * `B` - request body + * `h` - response headers + * `b` - response body + +```bash +http -p Hh https://www.google.com --follow --verify no +``` + + * `-F, --follow` - follow redirects + * `--verify no` - skip SSL verification + +```bash +http -p Hh https://www.google.com --follow --verify no \ +--proxy http:http://127.0.0.1:16379 +``` + + * `--proxy [http:]` - set proxy server + +##### Tool: [ssh](https://www.openssh.com/) + +###### Escape Sequence + +``` +# Supported escape sequences: +~. - terminate connection (and any multiplexed sessions) +~B - send a BREAK to the remote system +~C - open a command line +~R - Request rekey (SSH protocol 2 only) +~^Z - suspend ssh +~# - list forwarded connections +~& - background ssh (when waiting for connections to terminate) +~? - this message +~~ - send the escape character by typing it twice +``` + +###### Compare a remote file with a local file + +```bash +ssh user@host cat /path/to/remotefile | diff /path/to/localfile - +``` + +###### SSH connection through host in the middle + +```bash +ssh -t reachable_host ssh unreachable_host +``` + +###### Run command over SSH on remote host + +```bash +cat > cmd.txt << __EOF__ +cat /etc/hosts +__EOF__ + +ssh host -l user $(&1 | tee -a "${_sesdir}/$(date +%Y%m%d).log" + +} + +# Alias: +alias ssh='_ssh_sesslog' +``` + +###### Using Keychain for SSH logins + +```bash +### Delete all of ssh-agent's keys. +function _scl() { + + /usr/bin/keychain --clear + +} + +### Add key to keychain. +function _scg() { + + /usr/bin/keychain /path/to/private-key + source "$HOME/.keychain/$HOSTNAME-sh" + +} +``` + +###### SSH login without processing any login scripts + +```bash +ssh -tt user@host bash +``` + +###### SSH local port forwarding + +Example 1: + +```bash +# Forwarding our local 2250 port to nmap.org:443 from localhost through localhost +host1> ssh -L 2250:nmap.org:443 localhost + +# Connect to the service: +host1> curl -Iks --location -X GET https://localhost:2250 +``` + +Example 2: + +```bash +# Forwarding our local 9051 port to db.d.x:5432 from localhost through node.d.y +host1> ssh -nNT -L 9051:db.d.x:5432 node.d.y + +# Connect to the service: +host1> psql -U db_user -d db_dev -p 9051 -h localhost +``` + + * `-n` - redirects stdin from `/dev/null` + * `-N` - do not execute a remote command + * `-T` - disable pseudo-terminal allocation + +###### SSH remote port forwarding + +```bash +# Forwarding our local 9051 port to db.d.x:5432 from host2 through node.d.y +host1> ssh -nNT -R 9051:db.d.x:5432 node.d.y + +# Connect to the service: +host2> psql -U postgres -d postgres -p 8000 -h localhost +``` + +___ + +##### Tool: [linux-dev](https://www.tldp.org/LDP/abs/html/devref1.html) + +###### Testing remote connection to port + +```bash +timeout 1 bash -c "//" >/dev/null 2>&1 ; echo $? +``` + + * `` - set remote host + * `` - set destination port + +###### Read and write to TCP or UDP sockets with common bash tools + +```bash +exec 5<>/dev/tcp//; cat <&5 & cat >&5; exec 5>&- +``` + +___ + +##### Tool: [tcpdump](http://www.tcpdump.org/) + +###### Filter incoming (on interface) traffic (specific ) + +```bash +tcpdump -ne -i eth0 -Q in host 192.168.252.1 and port 443 +``` + + * `-n` - don't convert addresses (`-nn` will not resolve hostnames or ports) + * `-e` - print the link-level headers + * `-i [iface|any]` - set interface + * `-Q|-D [in|out|inout]` - choose send/receive direction (`-D` - for old tcpdump versions) + * `host [ip|hostname]` - set host, also `[host not]` + * `[and|or]` - set logic + * `port [1-65535]` - set port number, also `[port not]` + +###### Filter incoming (on interface) traffic (specific ) and write to a file + +```bash +tcpdump -ne -i eth0 -Q in host 192.168.252.1 and port 443 -c 5 -w tcpdump.pcap +``` + + * `-c [num]` - capture only num number of packets + * `-w [filename]` - write packets to file, `-r [filename]` - reading from file + +###### Capture all ICMP packets + +```bash +tcpdump -nei eth0 icmp +``` + +###### Check protocol used (TCP or UDP) for service + +```bash +tcpdump -nei eth0 tcp port 22 -vv -X | egrep "TCP|UDP" +``` + +###### Display ASCII text (to parse the output using grep or other) + +```bash +tcpdump -i eth0 -A -s0 port 443 +``` + +###### Grab everything between two keywords + +```bash +tcpdump -i eth0 port 80 -X | sed -n -e '/username/,/=ldap/ p' +``` + +###### Grab user and pass ever plain http + +```bash +tcpdump -i eth0 port http -l -A | egrep -i \ +'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|username:|password:|login:|pass |user ' \ +--color=auto --line-buffered -B20 +``` + +###### Extract HTTP User Agent from HTTP request header + +```bash +tcpdump -ei eth0 -nn -A -s1500 -l | grep "User-Agent:" +``` + +###### Capture only HTTP GET and POST packets + +```bash +tcpdump -ei eth0 -s 0 -A -vv \ +'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420' or 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354' +``` + +or simply: + +```bash +tcpdump -ei eth0 -s 0 -v -n -l | egrep -i "POST /|GET /|Host:" +``` + +###### Rotate capture files + +```bash +tcpdump -ei eth0 -w /tmp/capture-%H.pcap -G 3600 -C 200 +``` + + * `-G ` - pcap will be created every `` seconds + * `-C ` - close the current pcap and open a new one if is larger than `` + +###### Top hosts by packets + +```bash +tcpdump -ei enp0s25 -nnn -t -c 200 | cut -f 1,2,3,4 -d '.' | sort | uniq -c | sort -nr | head -n 20 +``` + +###### Excludes any RFC 1918 private address + +```bash +tcpdump -nei eth0 'not (src net (10 or 172.16/12 or 192.168/16) and dst net (10 or 172.16/12 or 192.168/16))' +``` +___ + +##### Tool: [ngrep](https://github.com/jpr5/ngrep) + +```bash +ngrep -d eth0 "www.domain.com" port 443 +``` + + * `-d [iface|any]` - set interface + * `[domain]` - set hostname + * `port [1-65535]` - set port number + +```bash +ngrep -d eth0 "www.domain.com" src host 10.240.20.2 and port 443 +``` + + * `(host [ip|hostname])` - filter by ip or hostname + * `(port [1-65535])` - filter by port number + +```bash +ngrep -d eth0 -qt -O ngrep.pcap "www.domain.com" port 443 +``` + + * `-q` - quiet mode (only payloads) + * `-t` - added timestamps + * `-O [filename]` - save output to file, `-I [filename]` - reading from file + +```bash +ngrep -d eth0 -qt 'HTTP' 'tcp' +``` + + * `HTTP` - show http headers + * `tcp|udp` - set protocol + * `[src|dst] host [ip|hostname]` - set direction for specific node + +```bash +ngrep -l -q -d eth0 -i "User-Agent: curl*" +``` + + * `-l` - stdout line buffered + * `-i` - case-insensitive search + +___ + +##### Tool: [hping3](https://github.com/antirez/hping) + +```bash +hping3 -V -p 80 -s 5050 www.google.com +``` + + * `-V|--verbose` - verbose mode + * `-p|--destport` - set destination port + * `-s|--baseport` - set source port + * `` - set scan type + * `-F|--fin` - set FIN flag, port open if no reply + * `-S|--syn` - set SYN flag + * `-P|--push` - set PUSH flag + * `-A|--ack` - set ACK flag (use when ping is blocked, RST response back if the port is open) + * `-U|--urg` - set URG flag + * `-Y|--ymas` - set Y unused flag (0x80 - nullscan), port open if no reply + * `-M 0 -UPF` - set TCP sequence number and scan type (URG+PUSH+FIN), port open if no reply + +```bash +hping3 -V -c 1 -1 -C 8 www.google.com +``` + + * `-c [num]` - packet count + * `-1` - set ICMP mode + * `-C|--icmptype [icmp-num]` - set icmp type (default icmp-echo = 8) + +```bash +hping3 -V -c 1000000 -d 120 -S -w 64 -p 80 --flood --rand-source +``` + + * `--flood` - sent packets as fast as possible (don't show replies) + * `--rand-source` - random source address mode + * `-d --data` - data size + * `-w|--win` - winsize (default 64) + +___ + +##### Tool: [nmap](https://nmap.org/) + +###### Ping scans the network + +```bash +nmap -sP 192.168.0.0/24 +``` + +###### Show only open ports + +```bash +nmap -F --open 192.168.0.0/24 +``` + +###### Full TCP port scan using with service version detection + +```bash +nmap -p 1-65535 -sV -sS -T4 192.168.0.0/24 +``` + +###### Nmap scan and pass output to Nikto + +```bash +nmap -p80,443 192.168.0.0/24 -oG - | nikto.pl -h - +``` + +###### Recon specific ip:service with Nmap NSE scripts stack + +```bash +# Set variables: +_hosts="192.168.250.10" +_ports="80,443" + +# Set Nmap NSE scripts stack: +_nmap_nse_scripts="+dns-brute,\ + +http-auth-finder,\ + +http-chrono,\ + +http-cookie-flags,\ + +http-cors,\ + +http-cross-domain-policy,\ + +http-csrf,\ + +http-dombased-xss,\ + +http-enum,\ + +http-errors,\ + +http-git,\ + +http-grep,\ + +http-internal-ip-disclosure,\ + +http-jsonp-detection,\ + +http-malware-host,\ + +http-methods,\ + +http-passwd,\ + +http-phpself-xss,\ + +http-php-version,\ + +http-robots.txt,\ + +http-sitemap-generator,\ + +http-shellshock,\ + +http-stored-xss,\ + +http-title,\ + +http-unsafe-output-escaping,\ + +http-useragent-tester,\ + +http-vhosts,\ + +http-waf-detect,\ + +http-waf-fingerprint,\ + +http-xssed,\ + +traceroute-geolocation.nse,\ + +ssl-enum-ciphers,\ + +whois-domain,\ + +whois-ip" + +# Set Nmap NSE script params: +_nmap_nse_scripts_args="dns-brute.domain=${_hosts},http-cross-domain-policy.domain-lookup=true," +_nmap_nse_scripts_args+="http-waf-detect.aggro,http-waf-detect.detectBodyChanges," +_nmap_nse_scripts_args+="http-waf-fingerprint.intensive=1" + +# Perform scan: +nmap --script="$_nmap_nse_scripts" --script-args="$_nmap_nse_scripts_args" -p "$_ports" "$_hosts" +``` + +___ + +##### Tool: [netcat](https://en.wikipedia.org/wiki/Netcat) + +```bash +nc -kl 5000 +``` + + * `-l` - listen for an incoming connection + * `-k` - listening after client has disconnected + * `>filename.out` - save receive data to file (optional) + +```bash +nc 192.168.0.1 5051 < filename.in +``` + + * `< filename.in` - send data to remote host + +```bash +nc -vz 10.240.30.3 5000 +``` + + * `-v` - verbose output + * `-z` - scan for listening daemons + +```bash +nc -vzu 10.240.30.3 1-65535 +``` + + * `-u` - scan only udp ports + +###### Transfer data file (archive) + +```bash +server> nc -l 5000 | tar xzvfp - +client> tar czvfp - /path/to/dir | nc 10.240.30.3 5000 +``` + +###### Launch remote shell + +```bash +# 1) +server> nc -l 5000 -e /bin/bash +client> nc 10.240.30.3 5000 + +# 2) +server> rm -f /tmp/f; mkfifo /tmp/f +server> cat /tmp/f | /bin/bash -i 2>&1 | nc -l 127.0.0.1 5000 > /tmp/f +client> nc 10.240.30.3 5000 +``` + +###### Simple file server + +```bash +while true ; do nc -l 5000 | tar -xvf - ; done +``` + +###### Simple minimal HTTP Server + +```bash +while true ; do nc -l -p 1500 -c 'echo -e "HTTP/1.1 200 OK\n\n $(date)"' ; done +``` + +###### Simple HTTP Server + + > Restarts web server after each request - remove `while` condition for only single connection. + +```bash +cat > index.html << __EOF__ + + + + + + + + + + +

+ + Hello! It's a site. + +

+ + + +__EOF__ +``` + +```bash +server> while : ; do \ +(echo -ne "HTTP/1.1 200 OK\r\nContent-Length: $(wc -c /" <"$_sent" & +sed "s/^/<= /" <"$_recv" & + +nc -l -p "$_listen_port" <"$_back" | \ +tee "$_sent" | \ +nc "$_bk_host" "$_bk_port" | \ +tee "$_recv" >"$_back" +``` + +```bash +server> chmod +x nc-proxy && ./nc-proxy 8080 192.168.252.10:8000 + lport: 8080 +bk_host: 192.168.252.10 +bk_port: 8000 + +client> http -p h 10.240.30.3:8080 +HTTP/1.1 200 OK +Accept-Ranges: bytes +Cache-Control: max-age=31536000 +Content-Length: 2748 +Content-Type: text/html; charset=utf-8 +Date: Sun, 01 Jul 2018 20:12:08 GMT +Last-Modified: Sun, 01 Apr 2018 21:53:37 GMT +``` + +###### Create a single-use TCP or UDP proxy + +```bash +### TCP -> TCP +nc -l -p 2000 -c "nc [ip|hostname] 3000" + +### TCP -> UDP +nc -l -p 2000 -c "nc -u [ip|hostname] 3000" + +### UDP -> UDP +nc -l -u -p 2000 -c "nc -u [ip|hostname] 3000" + +### UDP -> TCP +nc -l -u -p 2000 -c "nc [ip|hostname] 3000" +``` + +___ + +##### Tool: [gnutls-cli](https://gnutls.org/manual/html_node/gnutls_002dcli-Invocation.html) + +###### Testing connection to remote host (with SNI support) + +```bash +gnutls-cli -p 443 google.com +``` + +###### Testing connection to remote host (without SNI support) + +```bash +gnutls-cli --disable-sni -p 443 google.com +``` + +___ + +##### Tool: [socat](http://www.dest-unreach.org/socat/doc/socat.html) + +###### Testing remote connection to port + +```bash +socat - TCP4:10.240.30.3:22 +``` + + * `-` - standard input (STDIO) + * `TCP4:` - set tcp4 connection with specific params + * `[hostname|ip]` - set hostname/ip + * `[1-65535]` - set port number + +###### Redirecting TCP-traffic to a UNIX domain socket under Linux + +```bash +socat TCP-LISTEN:1234,bind=127.0.0.1,reuseaddr,fork,su=nobody,range=127.0.0.0/8 UNIX-CLIENT:/tmp/foo +``` + + * `TCP-LISTEN:` - set tcp listen with specific params + * `[1-65535]` - set port number + * `bind=[hostname|ip]` - set bind hostname/ip + * `reuseaddr` - allows other sockets to bind to an address + * `fork` - keeps the parent process attempting to produce more connections + * `su=nobody` - set user + * `range=[ip-range]` - ip range + * `UNIX-CLIENT:` - communicates with the specified peer socket + * `filename` - define socket + +___ + +##### Tool: [p0f](http://lcamtuf.coredump.cx/p0f3/) + +###### Set iface in promiscuous mode and dump traffic to the log file + +```bash +p0f -i enp0s25 -p -d -o /dump/enp0s25.log +``` + + * `-i` - listen on the specified interface + * `-p` - set interface in promiscuous mode + * `-d` - fork into background + * `-o` - output file + +___ + +##### Tool: [netstat](https://en.wikipedia.org/wiki/Netstat) + +###### Graph # of connections for each hosts + +```bash +netstat -an | awk '/ESTABLISHED/ { split($5,ip,":"); if (ip[1] !~ /^$/) print ip[1] }' | \ +sort | uniq -c | awk '{ printf("%s\t%s\t",$2,$1) ; for (i = 0; i < $1; i++) {printf("*")}; print "" }' +``` + +###### Monitor open connections for specific port including listen, count and sort it per IP + +```bash +watch "netstat -plan | grep :443 | awk {'print \$5'} | cut -d: -f 1 | sort | uniq -c | sort -nk 1" +``` + +###### Grab banners from local IPv4 listening ports + +```bash +netstat -nlt | grep 'tcp ' | grep -Eo "[1-9][0-9]*" | xargs -I {} sh -c "echo "" | nc -v -n -w1 127.0.0.1 {}" +``` + +___ + +##### Tool: [rsync](https://en.wikipedia.org/wiki/Rsync) + +###### Rsync remote data as root using sudo + +```bash +rsync --rsync-path 'sudo rsync' username@hostname:/path/to/dir/ /local/ +``` + +___ + +##### Tool: [host](https://en.wikipedia.org/wiki/Host_(Unix)) + +###### Resolves the domain name (using external dns server) + +```bash +host google.com 9.9.9.9 +``` + +###### Checks the domain administrator (SOA record) + +```bash +host -t soa google.com 9.9.9.9 +``` + +___ + +##### Tool: [dig](https://en.wikipedia.org/wiki/Dig_(command)) + +###### Resolves the domain name (short output) + +```bash +dig google.com +short +``` + +###### Lookup NS record for specific domain + +```bash +dig @9.9.9.9 google.com NS +``` + +###### Query only answer section + +```bash +dig google.com +nocomments +noquestion +noauthority +noadditional +nostats +``` + +###### Query ALL DNS Records + +```bash +dig google.com ANY +noall +answer +``` + +###### DNS Reverse Look-up + +```bash +dig -x 172.217.16.14 +short +``` + +___ + +##### Tool: [certbot](https://certbot.eff.org/) + +###### Generate multidomain certificate + +```bash +certbot certonly -d example.com -d www.example.com +``` + +###### Generate wildcard certificate + +```bash +certbot certonly --manual --preferred-challenges=dns -d example.com -d *.example.com +``` + +###### Generate certificate with 4096 bit private key + +```bash +certbot certonly -d example.com -d www.example.com --rsa-key-size 4096 +``` + +___ + +##### Tool: [network-other](https://github.com/trimstray/the-book-of-secret-knowledge#tool-network-other) + +###### Get all subnets for specific AS (Autonomous system) + +```bash +AS="AS32934" +whois -h whois.radb.net -- "-i origin ${AS}" | \ +grep "^route:" | \ +cut -d ":" -f2 | \ +sed -e 's/^[ \t]//' | \ +sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 | \ +cut -d ":" -f2 | \ +sed -e 's/^[ \t]/allow /' | \ +sed 's/$/;/' | \ +sed 's/allow */subnet -> /g' +``` + +###### Resolves domain name from dns.google.com with curl and jq + +```bash +_dname="google.com" ; curl -s "https://dns.google.com/resolve?name=${_dname}&type=A" | jq . +``` + +##### Tool: [git](https://git-scm.com/) + +###### Log alias for a decent view of your repo + +```bash +# 1) +git log --oneline --decorate --graph --all + +# 2) +git log --graph \ +--pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' \ +--abbrev-commit +``` + +___ + +##### Tool: [python](https://www.python.org/) + +###### Static HTTP web server + +```bash +# Python 3.x +python3 -m http.server 8000 --bind 127.0.0.1 + +# Python 2.x +python -m SimpleHTTPServer 8000 +``` + +###### Static HTTP web server with SSL support + +```bash +# Python 3.x +from http.server import HTTPServer, BaseHTTPRequestHandler +import ssl + +httpd = HTTPServer(('localhost', 4443), BaseHTTPRequestHandler) + +httpd.socket = ssl.wrap_socket (httpd.socket, + keyfile="path/to/key.pem", + certfile='path/to/cert.pem', server_side=True) + +httpd.serve_forever() + +# Python 2.x +import BaseHTTPServer, SimpleHTTPServer +import ssl + +httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), + SimpleHTTPServer.SimpleHTTPRequestHandler) + +httpd.socket = ssl.wrap_socket (httpd.socket, + keyfile="path/tp/key.pem", + certfile='path/to/cert.pem', server_side=True) + +httpd.serve_forever() +``` + +###### Encode base64 + +```bash +python -m base64 -e <<< "sample string" +``` + +###### Decode base64 + +```bash +python -m base64 -d <<< "dGhpcyBpcyBlbmNvZGVkCg==" +``` + +##### Tool: [awk](http://www.grymoire.com/Unix/Awk.html) + +###### Search for matching lines + +```bash +# egrep foo +awk '/foo/' filename +``` + +###### Search non matching lines + +```bash +# egrep -v foo +awk '!/foo/' filename +``` + +###### Print matching lines with numbers + +```bash +# egrep -n foo +awk '/foo/{print FNR,$0}' filename +``` + +###### Print the last column + +```bash +awk '{print $NF}' filename +``` + +###### Find all the lines longer than 80 characters + +```bash +awk 'length($0)>80{print FNR,$0}' filename +``` + +###### Print only lines of less than 80 characters + +```bash +awk 'length < 80' filename +``` + +###### Print double new lines a file + +```bash +awk '1; { print "" }' filename +``` + +###### Print line numbers + +```bash +awk '{ print FNR "\t" $0 }' filename +awk '{ printf("%5d : %s\n", NR, $0) }' filename # in a fancy manner +``` + +###### Print line numbers for only non-blank lines + +```bash +awk 'NF { $0=++a " :" $0 }; { print }' filename +``` + +###### Print the line and the next two (i=5) lines after the line matching regexp + +```bash +awk '/foo/{i=5+1;}{if(i){i--; print;}}' filename +``` + +###### Print the lines starting at the line matching 'server {' until the line matching '}' + +```bash +awk '/server {/,/}/' filename +``` + +###### Print multiple columns with separators + +```bash +awk -F' ' '{print "ip:\t" $2 "\n port:\t" $3' filename +``` + +###### Remove empty lines + +```bash +awk 'NF > 0' filename + +# alternative: +awk NF filename +``` + +###### Delete trailing white space (spaces, tabs) + +```bash +awk '{sub(/[ \t]*$/, "");print}' filename +``` + +###### Delete leading white space + +```bash +awk '{sub(/^[ \t]+/, ""); print}' filename +``` + +###### Remove duplicate consecutive lines + +```bash +# uniq +awk 'a !~ $0{print}; {a=$0}' filename +``` + +###### Remove duplicate entries in a file without sorting + +```bash +awk '!x[$0]++' filename +``` + +###### Exclude multiple columns + +```bash +awk '{$1=$3=""}1' filename +``` + +###### Substitute foo for bar on lines matching regexp + +```bash +awk '/regexp/{gsub(/foo/, "bar")};{print}' filename +``` + +###### Add some characters at the beginning of matching lines + +```bash +awk '/regexp/{sub(/^/, "++++"); print;next;}{print}' filename +``` + +###### Get the last hour of Apache logs + +```bash +awk '/'$(date -d "1 hours ago" "+%d\\/%b\\/%Y:%H:%M")'/,/'$(date "+%d\\/%b\\/%Y:%H:%M")'/ { print $0 }' \ +/var/log/httpd/access_log +``` + +___ + +##### Tool: [sed](http://www.grymoire.com/Unix/Sed.html) + +###### Print a specific line from a file + +```bash +sed -n 10p /path/to/file +``` + +###### Remove a specific line from a file + +```bash +sed -i 10d /path/to/file +# alternative (BSD): sed -i'' 10d /path/to/file +``` + +###### Remove a range of lines from a file + +```bash +sed -i -re ',d' +``` + +###### Replace newline(s) with a space + +```bash +sed ':a;N;$!ba;s/\n/ /g' /path/to/file + +# cross-platform compatible syntax: +sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/ /g' /path/to/file +``` + +- `:a` create a label `a` +- `N` append the next line to the pattern space +- `$!` if not the last line, ba branch (go to) label `a` +- `s` substitute, `/\n/` regex for new line, `/ /` by a space, `/g` global match (as many times as it can) + +Alternatives: + +```bash +# perl version (sed-like speed): +perl -p -e 's/\n/ /' /path/to/file + +# bash version (slow): +while read line ; do printf "%s" "$line " ; done < file +``` + +###### Delete string +N next lines + +```bash +sed '/start/,+4d' /path/to/file +``` + +___ + +##### Tool: [grep](http://www.grymoire.com/Unix/Grep.html) + +###### Search for a "pattern" inside all files in the current directory + +```bash +grep -rn "pattern" +grep -RnisI "pattern" * +fgrep "pattern" * -R +``` + +###### Show only for multiple patterns + +```bash +grep 'INFO*'\''WARN' filename +grep 'INFO\|WARN' filename +grep -e INFO -e WARN filename +grep -E '(INFO|WARN)' filename +egrep "INFO|WARN" filename +``` + +###### Except multiple patterns + +```bash +grep -vE '(error|critical|warning)' filename +``` + +###### Show data from file without comments + +```bash +grep -v ^[[:space:]]*# filename +``` + +###### Show data from file without comments and new lines + +```bash +egrep -v '#|^$' filename +``` + +###### Show strings with a dash/hyphen + +```bash +grep -e -- filename +grep -- -- filename +grep "\-\-" filename +``` + +###### Remove blank lines from a file and save output to new file + +```bash +grep . filename > newfilename +``` + +##### Tool: [perl](https://www.perl.org/) + +###### Search and replace (in place) + +```bash +perl -i -pe's/SEARCH/REPLACE/' filename +``` + +###### Edit of `*.conf` files changing all foo to bar (and backup original) + +```bash +perl -p -i.orig -e 's/\bfoo\b/bar/g' *.conf +``` + +###### Prints the first 20 lines from `*.conf` files + +```bash +perl -pe 'exit if $. > 20' *.conf +``` + +###### Search lines 10 to 20 + +```bash +perl -ne 'print if 10 .. 20' filename +``` + +###### Delete first 10 lines (and backup original) + +```bash +perl -i.orig -ne 'print unless 1 .. 10' filename +``` + +###### Delete all but lines between foo and bar (and backup original) + +```bash +perl -i.orig -ne 'print unless /^foo$/ .. /^bar$/' filename +``` + +###### Reduce multiple blank lines to a single line + +```bash +perl -p -i -00pe0 filename +``` + +###### Convert tabs to spaces (1t = 2sp) + +```bash +perl -p -i -e 's/\t/ /g' filename +``` + +###### Read input from a file and report number of lines and characters + +```bash +perl -lne '$i++; $in += length($_); END { print "$i lines, $in characters"; }' filename +``` + +#### Shell Tricks  [[TOC]](#anger-table-of-contents) + +When you get a shell, it is generally not very clean, but after following these steps, you will have a fairly clean and comfortable shell to work with. + +1) `script /dev/null -c bash` +2) Ctrl-Z (to send it to background) +3) `stty raw -echo; fg` (returns the shell to foreground) +4) `reset` (to reset terminal) +5) `xterm` (when asked for terminal type) +6) `export TERM=xterm; export SHELL=bash` + +#### Shell functions  [[TOC]](#anger-table-of-contents) + +##### Table of Contents + +- [Domain resolve](#domain-resolve) +- [Get ASN](#get-asn) + +###### Domain resolve + +```bash +# Dependencies: +# - curl +# - jq + +function DomainResolve() { + + local _host="$1" + + local _curl_base="curl --request GET" + local _timeout="15" + + _host_ip=$($_curl_base -ks -m "$_timeout" "https://dns.google.com/resolve?name=${_host}&type=A" | \ + jq '.Answer[0].data' | tr -d "\"" 2>/dev/null) + + if [[ -z "$_host_ip" ]] || [[ "$_host_ip" == "null" ]] ; then + + echo -en "Unsuccessful domain name resolution.\\n" + + else + + echo -en "$_host > $_host_ip\\n" + + fi + +} +``` + +Example: + +```bash +shell> DomainResolve nmap.org +nmap.org > 45.33.49.119 + +shell> DomainResolve nmap.org +Unsuccessful domain name resolution. +``` + +###### Get ASN + +```bash +# Dependencies: +# - curl + +function GetASN() { + + local _ip="$1" + + local _curl_base="curl --request GET" + local _timeout="15" + + _asn=$($_curl_base -ks -m "$_timeout" "http://ip-api.com/line/${_ip}?fields=as") + + _state=$(echo $?) + + if [[ -z "$_ip" ]] || [[ "$_ip" == "null" ]] || [[ "$_state" -ne 0 ]]; then + + echo -en "Unsuccessful ASN gathering.\\n" + + else + + echo -en "$_ip > $_asn\\n" + + fi + +} +``` + +Example: + +```bash +shell> GetASN 1.1.1.1 +1.1.1.1 > AS13335 Cloudflare, Inc. + +shell> GetASN 0.0.0.0 +Unsuccessful ASN gathering. +``` diff --git a/scripts/validate-tool-tables.py b/scripts/validate-tool-tables.py new file mode 100644 index 0000000..10b351d --- /dev/null +++ b/scripts/validate-tool-tables.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 +""" +Tool Table Schema Validator +Enforces TOOL-TABLE-SCHEMA.md rules. +""" +import re +import sys +from pathlib import Path + +def main(): + errors = [] + for md_file in Path('.').rglob('tools/**/*.md'): + content = md_file.read_text(encoding='utf-8', errors='ignore') + # Simple header check + if '| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars |' in content: + # Count columns in rows + rows = re.findall(r'\|\s*[^|]+\s*\|', content) + for row in rows: + if row.count('|') != 9: # 8 columns + separators + errors.append(f"Invalid row in {md_file}") + if errors: + print('\n'.join(errors)) + sys.exit(1) + print('โœ… Tool tables validated.') + sys.exit(0) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/static/img/the-book-of-secret-knowledge-preview.png b/static/img/the-book-of-secret-knowledge-preview.png deleted file mode 100644 index 8d83513..0000000 Binary files a/static/img/the-book-of-secret-knowledge-preview.png and /dev/null differ diff --git a/tools/INDEX.md b/tools/INDEX.md new file mode 100644 index 0000000..ba4e13c --- /dev/null +++ b/tools/INDEX.md @@ -0,0 +1,66 @@ +# Tools Index + +Main collection of categorized tools, utilities, scanners, analyzers, clients, hardening guides, and more โ€” grouped by discipline. + +All tool tables in this section **must** follow โ†’ [TOOL-TABLE-SCHEMA.md](../TOOL-TABLE-SCHEMA.md) exactly. + +## Contents (Recursive Overview) + +- [my-contributions.md](./my-contributions.md) โ€” personally vetted / added tools & notes (always growing) + +**network-engineering** โ€” networking, diagnostics, DNS, routing, BGP/OSPFIGP +
+Expand Network Engineering subtree + +- **diagnostics-troubleshooting** โ€” packet capture, tracing, debug tools +- **dns-dhc-ipam** โ€” DNS, DHCP, IPAM related tools + - [dns-tools.md](./network-engineering/dns-dhc-ipam/dns-tools.md) +- **routing-bgp-ospf** โ€” routing protocols, BGP looking glasses, route analysis + - [BGP & Routing Tools.md](./network-engineering/routing-bgp-ospf/BGP%20%26%20Routing%20Tools.md) + +
+ +**security** โ€” offensive, defensive, recon, vuln research, exploitation +
+Expand Security subtree + +- **pentest-recon-enum** โ€” reconnaissance, enumeration, scanning phase tools + - [Packet Capture & Analysis.md](./security/pentest-recon-enum/Packet%20Capture%20%26%20Analysis.md) + - [Port Scanners & Network Discovery.md](./security/pentest-recon-enum/Port%20Scanners%20%26%20Network%20Discovery.md) + - [Recon & Threat Reputation.md](./security/pentest-recon-enum/Recon%20%26%20Threat%20Reputation.md) + - [ssl-tls-web-security.md](./security/pentest-recon-enum/ssl-tls-web-security.md) + +- **vuln-analysis-exploitation** โ€” vulnerability databases, exploit dev, packet crafting + - [Packet Crafting & Manipulation.md](./security/vuln-analysis-exploitation/Packet%20Crafting%20%26%20Manipulation.md) + - [Vulnerability & Exploit Databases.md](./security/vuln-analysis-exploitation/Vulnerability%20%26%20Exploit%20Databases.md) + +- [Untitled.md](./security/Untitled.md) โ€” placeholder / to be refactored + +
+ +**sysadmin-devops** โ€” operational tools, monitoring, hardening, terminals, browsers, remote access +
+Expand Sysadmin / DevOps subtree + +- **Remote Access + SSH Clients.md** โ€” SSH clients, remote desktop, tunnels +- **https-web-services** โ€” web servers, proxies, load balancers, CDNs +- **benchmark-load** โ€” performance / stress testing tools +- **browsers** โ€” security-focused / privacy browsers & extensions +- **clients-inspectors** โ€” API, database, message queue clients & inspectors +- **security-hardening** โ€” OS, container, cloud hardening guides & tools +- **system-monitoring-tracing** โ€” observability, tracing, log analysis + - [Log Analyzers.md](./sysadmin-devops/system-monitoring-tracing/Log%20Analyzers.md) +- **terminal-shell-productivity** โ€” shells, terminals, editors, file managers + - **Files & Directories.md** + - **Shells.md** + - **Terminal Emulators.md** + - **Text Editors.md** + +
+ +## Quick Navigation + +- โ†‘ [Back to Repository Root](../README.md) +- โ†‘ [Documentation & Guides](../documentation/INDEX.md) +- โ†’ [Schema Rules](../TOOL-TABLE-SCHEMA.md) +- โ†’ [This SOP](../SOP-Navigation-and-Layout.md) \ No newline at end of file diff --git a/tools/containers-orchestration/INDEX.md b/tools/containers-orchestration/INDEX.md new file mode 100644 index 0000000..2e26026 --- /dev/null +++ b/tools/containers-orchestration/INDEX.md @@ -0,0 +1,25 @@ +# Containers & Orchestration + +Collection of CLI tools, web-based management platforms, reverse proxies/load balancers, security utilities, and related resources for container runtimes (Docker, containerd, etc.) and orchestration systems (primarily Kubernetes). + +Focuses on actionable tools following the [TOOL-TABLE-SCHEMA](/TOOL-TABLE-SCHEMA.md). Learning materials, cheat sheets, tutorials, best practices, and failure stories are housed in [/documentation/containers-orchestration/](/documentation/containers-orchestration/INDEX.md). + +โ†‘ [Back to Tools Index](/tools/INDEX.md) +โ†‘ [Back to Root](/README.md) + +## Subcategories + +- [CLI Tools](./cli-tools.md) โ€” command-line utilities for container inspection, metrics, runtime sandboxes, and monitoring +- [Web / Management Tools](./web-tools.md) โ€” dashboards, API gateways, reverse proxies, load balancers, and full container/Kubernetes management platforms +- [Security](./security.md) โ€” vulnerability scanners, hardening benchmarks, secure registries, signing tools, and offensive/pentest container images +- [Learning & Best Practices](/documentation/containers-orchestration/INDEX.md) โ€” cheat sheets, awesome lists, tutorials, labs, production guides, security checklists, and failure stories + +
+Quick Navigation + +- [CLI Tools](./cli-tools.md) +- [Web / Management Tools](./web-tools.md) +- [Security](./security.md) +- [Documentation & Learning](/documentation/containers-orchestration/INDEX.md) + +
\ No newline at end of file diff --git a/tools/containers-orchestration/cli-tools.md b/tools/containers-orchestration/cli-tools.md new file mode 100644 index 0000000..600d28d --- /dev/null +++ b/tools/containers-orchestration/cli-tools.md @@ -0,0 +1,9 @@ +# CLI Tools โ€“ Containers & Orchestration + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|----------|---------------------|--------------------------------------------------|------------------------------------------------------------|------------------------------------|---------------|---------------|--------| +| gVisor | https://gvisor.dev/ | [google/gvisor](https://github.com/google/gvisor) | Container runtime sandbox focused on security and isolation. | container, runtime, sandbox, security | 2026-02-20 | 2017-12-11 | 15.8k | +| ctop | โ€” | [bcicen/ctop](https://github.com/bcicen/ctop) | Top-like interface for monitoring running container metrics. | container, monitoring, cli, metrics | 2024-09-15 | 2017-03-01 | 15.1k | + +โ†‘ [Back to Containers & Orchestration Index](./INDEX.md) +โ†‘ [Back to Tools](/tools/INDEX.md) | โ†‘ [Back to Root](/README.md) \ No newline at end of file diff --git a/tools/containers-orchestration/security.md b/tools/containers-orchestration/security.md new file mode 100644 index 0000000..89bb3b4 --- /dev/null +++ b/tools/containers-orchestration/security.md @@ -0,0 +1,11 @@ +# Security โ€“ Containers & Orchestration + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-----------------------|-------------------------|--------------------------------------------------------------|--------------------------------------------------------------------|-----------------------------------------|---------------|---------------|--------| +| docker-bench-security | โ€” | [docker/docker-bench-security](https://github.com/docker/docker-bench-security) | Script checking Docker host for dozens of common security best practices. | docker, security, benchmark, hardening | 2025-11-20 | 2015-07-14 | 9.2k | +| Trivy | https://aquasecurity.github.io/trivy/ | [aquasecurity/trivy](https://github.com/aquasecurity/trivy) | Fast and comprehensive vulnerability scanner for containers / filesystems. | vulnerability, scanner, container, ci | 2026-03-07 | 2019-04-16 | 24.8k | +| Harbor | https://goharbor.io/ | [goharbor/harbor](https://github.com/goharbor/harbor) | Cloud native registry storing, signing, and scanning container images. | registry, security, signing, scan | 2026-03-03 | 2016-06-20 | 24.1k | +| Houdini | https://houdini.secsi.io/ | โ€” | Collection of hundreds of offensive / useful Docker images for pentesting. | docker, offensive, pentest, security | 2025-08-15 | 2021-03-05 | ~1.1k | + +โ†‘ [Back to Containers & Orchestration Index](./INDEX.md) +โ†‘ [Back to Tools](/tools/INDEX.md) | โ†‘ [Back to Root](/README.md) \ No newline at end of file diff --git a/tools/containers-orchestration/web-tools.md b/tools/containers-orchestration/web-tools.md new file mode 100644 index 0000000..92a3b09 --- /dev/null +++ b/tools/containers-orchestration/web-tools.md @@ -0,0 +1,14 @@ +# Web / Management Tools + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------|---------------------------------|-----------------------------------------------------------|--------------------------------------------------------------------|-----------------------------------------------|---------------|---------------|---------| +| Moby | https://mobyproject.org/ | [moby/moby](https://github.com/moby/moby) | Collaborative project assembling container-based systems (Docker foundation). | container, runtime, ecosystem | 2026-03-05 | 2013-04-01 | 68.5k | +| Traefik | https://traefik.io/ | [traefik/traefik](https://github.com/traefik/traefik) | Modern HTTP reverse proxy / load balancer with dynamic config. | reverse-proxy, load-balancer, docker, letsencrypt | 2026-03-08 | 2016-07-12 | 49.2k | +| Kong | https://konghq.com/ | [Kong/kong](https://github.com/Kong/kong) | Cloud-native API gateway and microservices management layer. | api-gateway, proxy, orchestration | 2026-03-01 | 2015-03-10 | 39.1k | +| Rancher | https://rancher.com/ | [rancher/rancher](https://github.com/rancher/rancher) | Complete container management platform for Kubernetes clusters. | kubernetes, management, orchestration | 2026-03-04 | 2015-11-04 | 23.7k | +| Portainer | https://www.portainer.io/ | [portainer/portainer](https://github.com/portainer/portainer) | Simple web UI for managing Docker and Kubernetes environments. | docker, kubernetes, gui, management | 2026-03-06 | 2016-05-23 | 32.4k | +| nginx-proxy | โ€” | [jwilder/nginx-proxy](https://github.com/jwilder/nginx-proxy) | Automated nginx reverse proxy for Docker using docker-gen. | reverse-proxy, docker, nginx | 2025-01-10 | 2014-07-15 | 17.3k | +| bunkerized-nginx | https://bunkerized.io/ | [bunkerity/bunkerized-nginx](https://github.com/bunkerity/bunkerized-nginx) | Nginx Docker image secure-by-default with many hardening features. | nginx, security, docker | 2026-02-25 | 2020-06-18 | 3.4k | + +โ†‘ [Back to Containers & Orchestration Index](./INDEX.md) +โ†‘ [Back to Tools](/tools/INDEX.md) | โ†‘ [Back to Root](/README.md) \ No newline at end of file diff --git a/tools/my-contributions.md b/tools/my-contributions.md new file mode 100644 index 0000000..dc90767 --- /dev/null +++ b/tools/my-contributions.md @@ -0,0 +1,40 @@ +# My Contributions (jacob-kraniak) โ€“ JK_Revisions Branch +Started: 2026-03-03 (fork date) + +## Summary +- Total personal commits: ~40+ (as of 2026-03-07; rapid increase from restructuring) +- Focus: Major repo restructure to planned hierarchy, Obsidian vault management, tool documentation expansion (CLI/GUI/web/log analyzers), file moves/renames/cleanup, initial network/security tool additions + +## Chronological Log (newest first) +- 2026-03-07: Added more network tools (likely to new network-engineering/ sections) +- 2026-03-07: Updated more tools (refinements to recently added entries) +- 2026-03-07: Moved Log Analyzers documentation (reorganized placement/format) +- 2026-03-07: Created planned folder structure (docs/security/, network-engineering/, sysadmin-devops/, cross-domain/) +- 2026-03-07: Revised Log Analyzers documentation format (standardization effort) +- 2026-03-06: Renamed/moved daily-knowledge-news.md โ†’ docs/learning-resources/daily-knowledge-news.md +- 2026-03-06: Deleted obsolete docs/web-tools.md (after transitional creation) +- 2026-03-06: Created gui-tools.md (new GUI tool documentation) +- 2026-03-06: Renamed/moved cli-tools.md โ†’ docs/tools/cli-tools.md +- 2026-03-06: Created /tools directory (transitional for migration) +- 2026-03-06: Created 00_index.md (placeholder/index file) +- 2026-03-06: Refactored CLI Tools section in README.md +- 2026-03-06: Enhanced CLI Tools documentation with shell plug-ins +- 2026-03-06: Created initial CLI Tools documentation +- 2026-03-03: Added markdown placeholders for future sections +- 2026-03-03: Created .markdownlintignore +- 2026-03-03: Added GitHub Actions workflow for PR labeling +- 2026-03-03: Added .markdownlint.json config +- 2026-03-03: Updated issue templates +- 2026-03-03: Added Markdown linting GitHub Action +- 2026-03-03: Replaced broken links (403, 404, 520 errors noted) +- 2026-03-03: Fixed .gitignore to exclude .obsidian/ +- ... (earlier backups and setup) + +## Future Additions / In Progress +- Populate new hierarchy sections (e.g. network-engineering/dns-dhcp-ipam/, snmp-nms-monitoring/, security/hardening-compliance/) with curated tools in standard table format +- Certification roadmaps & notes (from cyberseccertificates.com / pauljerimy.com) +- Personal progress tracking (e.g. cert study logs, tool evaluation notes) +- Further tool/link curation, deprecation of outdated entries, cross-linking between security/ and network-engineering/ +- Migrate remaining flat docs/ files into subfolders (e.g. remove transitional /tools/ dir once complete) + +All changes here are my own additions/refactors โ€” original content credit remains with trimstray and upstream contributors. diff --git a/tools/network-engineering/diagnostics-troubleshooting/Bandwidth & Performance Testing.md b/tools/network-engineering/diagnostics-troubleshooting/Bandwidth & Performance Testing.md new file mode 100644 index 0000000..cd23c2f --- /dev/null +++ b/tools/network-engineering/diagnostics-troubleshooting/Bandwidth & Performance Testing.md @@ -0,0 +1,8 @@ +|Name|Vendor/Webpage|GitHub Repo|Brief Description|Tags|Latest Commit| +|---|---|---|---|---|---| +|iPerf3|[https://iperf.fr/](https://iperf.fr/)|โ€” (official mirrors)|Active measurement tool for TCP/UDP/SCTP bandwidth, jitter, and loss.|[bandwidth, test, cli, c]|Active| +|ethr|โ€”|[Microsoft/Ethr](https://github.com/Microsoft/Ethr)|Cross-platform network performance tool for TCP, UDP, HTTP throughput/latency.|[performance, bandwidth, go]|Stable| +|Etherate|โ€”|[jwbensley/Etherate](https://github.com/jwbensley/Etherate)|CLI Ethernet/MPLS layer-2 traffic generator and tester.|[ethernet, test, cli, c++]|Stable| +|bmon|โ€”|[tgraf/bmon](https://github.com/tgraf/bmon)|Bandwidth monitor with visual interface for interface stats and rates.|[monitoring, bandwidth, cli, c]|Stable| +|iptraf-ng|[http://iptraf.seul.org/](http://iptraf.seul.org/)|โ€”|Console-based IP traffic monitor showing connections, protocols, and stats.|[monitoring, traffic, tui, c]|Stable| +|vnstat|โ€”|[vergoh/vnstat](https://github.com/vergoh/vnstat)|Console network traffic monitor logging and reporting usage per interface.|[monitoring, traffic, cli, c]|Active| \ No newline at end of file diff --git a/tools/network-engineering/diagnostics-troubleshooting/Global Internet Measurement Platform.md b/tools/network-engineering/diagnostics-troubleshooting/Global Internet Measurement Platform.md new file mode 100644 index 0000000..3884a9d --- /dev/null +++ b/tools/network-engineering/diagnostics-troubleshooting/Global Internet Measurement Platform.md @@ -0,0 +1,3 @@ +|Name|Vendor/Webpage|GitHub Repo|Brief Description|Tags|Latest Commit| +|---|---|---|---|---|---| +|RIPE NCC Atlas|[https://atlas.ripe.net/](https://atlas.ripe.net/)|[RIPE-NCC/ripe-atlas-tools](https://github.com/RIPE-NCC/ripe-atlas-tools)|Global open platform for distributed Internet measurements (ping, traceroute, DNS) via community probes.|[network-measurement, diagnostics, global, probing]|Sep 2025 (v3.2.0 or later cousteau ~Dec 2025)| \ No newline at end of file diff --git a/tools/network-engineering/diagnostics-troubleshooting/Online Network Diagnostics & Utilities.md b/tools/network-engineering/diagnostics-troubleshooting/Online Network Diagnostics & Utilities.md new file mode 100644 index 0000000..a1ade14 --- /dev/null +++ b/tools/network-engineering/diagnostics-troubleshooting/Online Network Diagnostics & Utilities.md @@ -0,0 +1,6 @@ +|Name|Vendor/Webpage|GitHub Repo|Brief Description|Tags|Latest Commit| +|---|---|---|---|---|---| +|Online Curl|[https://tools.keycdn.com/curl](https://tools.keycdn.com/curl)|โ€”|Browser-based tool to run curl requests and inspect HTTP response headers/status.|[http, diagnostics, online-tool, curl]|Active (web service)| +|ExtendsClass Online Tools|[https://extendsclass.com/](https://extendsclass.com/)|โ€”|Free online dev tools including HTTP testers, API playgrounds, encoders, formatters.|[dev-tools, http, encoders, online, api-tester]|Active (ongoing)| +|Ping.eu|[https://ping.eu/](https://ping.eu/)|โ€”|Online ping, traceroute, DNS lookup, WHOIS, port scan, and basic network checks.|[diagnostics, ping, traceroute, whois, online]|Active (web service)| +|Network-Tools.com|[https://network-tools.com/](https://network-tools.com/)|โ€”|Suite of web-based tools: ping, traceroute, WHOIS, DNS, subnet calc, bandwidth test.|[diagnostics, network-utils, online, whois]|Active (web service)| \ No newline at end of file diff --git a/tools/network-engineering/diagnostics-troubleshooting/Tracing & Diagnostics.md b/tools/network-engineering/diagnostics-troubleshooting/Tracing & Diagnostics.md new file mode 100644 index 0000000..4bed57b --- /dev/null +++ b/tools/network-engineering/diagnostics-troubleshooting/Tracing & Diagnostics.md @@ -0,0 +1,4 @@ +|Name|Vendor/Webpage|GitHub Repo|Brief Description|Tags|Latest Commit| +|---|---|---|---|---|---| +|mtr|โ€”|[traviscross/mtr](https://github.com/traviscross/mtr)|Combined traceroute + ping tool showing real-time path latency and packet loss.|[traceroute, ping, diagnostics, cli]|Active| +|mylg|โ€”|[mehrdadrad/mylg](https://github.com/mehrdadrad/mylg)|All-in-one diagnostic tool combining ping, traceroute, whois, DNS, BGP lookup.|[diagnostics, multi-tool, cli, go]|~Older| \ No newline at end of file diff --git a/tools/network-engineering/diagnostics-troubleshooting/protocols-general/Data Transfer.md b/tools/network-engineering/diagnostics-troubleshooting/protocols-general/Data Transfer.md new file mode 100644 index 0000000..9880ae9 --- /dev/null +++ b/tools/network-engineering/diagnostics-troubleshooting/protocols-general/Data Transfer.md @@ -0,0 +1,5 @@ +|Name|Vendor/Webpage|GitHub Repo|Brief Description|Tags|Latest Commit| +|---|---|---|---|---|---| +|netcat|[http://netcat.sourceforge.net/](http://netcat.sourceforge.net/)|โ€”|Versatile TCP/UDP connector for reading/writing network data (Swiss army knife).|[netcat, transfer, cli, c]|Classic| +|socat|[http://www.dest-unreach.org/socat/](http://www.dest-unreach.org/socat/)|โ€”|Bidirectional data transfer relay between two independent data channels.|[relay, transfer, multi-protocol, cli]|Active| +|aria2|[https://aria2.github.io/](https://aria2.github.io/)|[aria2/aria2](https://github.com/aria2/aria2)|Lightweight multi-protocol download utility supporting HTTP, FTP, BitTorrent.|[download, multi-source, cli, c++]|Active| \ No newline at end of file diff --git a/tools/network-engineering/dns-dhc-ipam/dns-tools.md b/tools/network-engineering/dns-dhc-ipam/dns-tools.md new file mode 100644 index 0000000..8e4da46 --- /dev/null +++ b/tools/network-engineering/dns-dhc-ipam/dns-tools.md @@ -0,0 +1,15 @@ +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | +| ---------------- | -------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------ | --------------------------------------------- | ---------------- | +| dnsdiag | โ€” | [farrokhi/dnsdiag](https://github.com/farrokhi/dnsdiag) | Suite for DNS measurement, tracing, and resolver evaluation. | [dns, diagnostics, performance, python] | ~Feb 2026 | +| fierce | โ€” | [mschwager/fierce](https://github.com/mschwager/fierce) | DNS recon tool to locate non-contiguous IP space and hostnames. | [dns, recon, enumeration, python] | 2024-08-28 | +| subfinder | โ€” | [projectdiscovery/subfinder](https://github.com/projectdiscovery/subfinder) | Fast passive subdomain enumeration using online sources. | [subdomain, enum, passive, go, recon] | 2026-03-05 | +| Sublist3r | โ€” | [aboul3la/Sublist3r](https://github.com/aboul3la/Sublist3r) | Fast subdomain enumeration via OSINT sources for pentesting. | [subdomain, enum, osint, python] | 2020-07-29 | +| amass | โ€” | [owasp-amass/amass](https://github.com/owasp-amass/amass) | In-depth attack surface mapping and subdomain/asset discovery. | [recon, osint, subdomain, go, amass] | 2025-09-04 | +| namebench | โ€” | [google/namebench](https://github.com/google/namebench) | Benchmarks DNS servers using browsing history for recommendations. | [dns, benchmark, privacy, go] | ~2024 (archived) | +| massdns | โ€” | [blechschmidt/massdns](https://github.com/blechschmidt/massdns) | High-performance stub resolver for bulk DNS lookups/recon. | [dns, resolver, bulk, performance, c] | 2025-07-21 | +| knock | โ€” | [guelfoweb/knock](https://github.com/guelfoweb/knock) | Async subdomain enumeration via recon and brute-force. | [subdomain, enum, brute, python, tls] | 2026-02-19 | +| dnsperf | โ€” | [DNS-OARC/dnsperf](https://github.com/DNS-OARC/dnsperf) | Benchmarks DNS server latency and throughput under load. | [dns, performance, benchmark, c] | 2026-02-04 | +| dnscrypt-proxy 2 | โ€” | [jedisct1/dnscrypt-proxy](https://github.com/jedisct1/dnscrypt-proxy) | Flexible DNS proxy with encrypted protocols (DoH, DNSCrypt, ODoH). | [dns, proxy, encryption, privacy, go] | 2026-03-02 | +| dnsdbq | โ€” | [dnsdb/dnsdbq](https://github.com/dnsdb/dnsdbq) | C client for querying passive DNS databases (DNSDB, CIRCL). | [dns, passive, api, query, c] | 2024-05-20 | +| grimd | โ€” | [looterz/grimd](https://github.com/looterz/grimd) | Fast DNS proxy to block ads and malware domains. | [dns, proxy, adblock, malware, go] | ~Oct 2022 | +| dnstwist | โ€” | [elceef/dnstwist](https://github.com/elceef/dnstwist) | Generates domain permutations to detect typosquatting/phishing. | [dns, typosquat, phishing, detection, python] | 2025-04-15 | diff --git a/tools/network-engineering/routing-bgp-ospf/BGP & Routing Tools.md b/tools/network-engineering/routing-bgp-ospf/BGP & Routing Tools.md new file mode 100644 index 0000000..3c39b90 --- /dev/null +++ b/tools/network-engineering/routing-bgp-ospf/BGP & Routing Tools.md @@ -0,0 +1,4 @@ +|Name|Vendor/Webpage|GitHub Repo|Brief Description|Tags|Latest Commit| +|---|---|---|---|---|---| +|BGPview|[https://bgpview.io/](https://bgpview.io/)|[CAIDA/bgpview](https://github.com/CAIDA/bgpview) (core lib)|Searchable BGP data for ASNs, prefixes, IPs, AS paths, peers, and routing stats.|[bgp, routing, asn, prefix-search, analytics]|~Mar 2026 (lib updates; service active)| +|Is BGP safe yet?|[https://isbgpsafeyet.com/](https://isbgpsafeyet.com/)|[cloudflare/isbgpsafeyet.com](https://github.com/cloudflare/isbgpsafeyet.com)|Tracks RPKI filtering status and BGP security adoption among major ISPs/operators.|[bgp, rpki, security, routing, monitoring]|Nov 18, 2025 (index.html update)| \ No newline at end of file diff --git a/tools/security/INDEX.md b/tools/security/INDEX.md new file mode 100644 index 0000000..a3d6184 --- /dev/null +++ b/tools/security/INDEX.md @@ -0,0 +1,40 @@ +# Security Index + +Offensive security, defensive tools, reconnaissance, enumeration, vulnerability research, exploitation frameworks, web/SSL/TLS hardening, system service auditing, and related cheat sheets / resources. + +All tool/resource tables in this section **must** follow โ†’ [TOOL-TABLE-SCHEMA.md](../../TOOL-TABLE-SCHEMA.md) + +## Contents (Recursive Overview) + +**pentest-recon-enum** โ€” reconnaissance, footprinting, enumeration, scanning, and information-gathering phase tools +
+Expand Pentest Recon & Enumeration subtree + +- [Packet Capture & Analysis.md](./pentest-recon-enum/Packet%20Capture%20%26%20Analysis.md) โ€” Wireshark-like tools, tcpdump variants, dissectors +- [Port Scanners & Network Discovery.md](./pentest-recon-enum/Port%20Scanners%20%26%20Network%20Discovery.md) โ€” Nmap forks, masscan, ZMap, unicornscan, etc. +- [Recon & Threat Reputation.md](./pentest-recon-enum/Recon%20%26%20Threat%20Reputation.md) โ€” OSINT, subdomain enum, ASN lookup, reputation APIs +- [ssl-tls-web-security.md](ssl-tls-web-security.md) โ€” SSL/TLS testing, certificate analysis, protocol downgrade, misconfig scanners (moved or duplicated here?) + +
+ +**vuln-analysis-exploitation** โ€” vulnerability scanning/analysis, exploit development, payload crafting, and exploitation tooling +
+Expand Vulnerability Analysis & Exploitation subtree + +- [Packet Crafting & Manipulation.md](./vuln-analysis-exploitation/Packet%20Crafting%20%26%20Manipulation.md) โ€” Scapy, hping3, packETH, fragroute, etc. +- [Vulnerability & Exploit Databases.md](./vuln-analysis-exploitation/Vulnerability%20%26%20Exploit%20Databases.md) โ€” Exploit-DB mirrors, CVE search tools, VulnHub links, etc. + +
+ +**Standalone / Uncategorized Files** +- [my-contributions.md](./my-contributions.md) โ€” personally vetted / newly added security tools & notes (growing list) +- [system-services.md](./system-services.md) โ€” security-focused auditing / hardening for common system daemons & services +- [Untitled.md](./Untitled.md) โ€” legacy / placeholder file (refactor or rename pending) + +## Quick Navigation + +- โ†‘ [Back to Tools Root](../_INDEX.md) *(or update to INDEX.md after rename)* +- โ†‘ [Back to Repository Root](../../README.md) +- โ†’ [Schema Rules](../../TOOL-TABLE-SCHEMA.md) +- โ†’ [Navigation SOP](../../SOP-Navigation-and-Layout.md) +- โ†’ [Documentation Index](../../documentation/INDEX.md) \ No newline at end of file diff --git a/tools/security/auditing.md b/tools/security/auditing.md new file mode 100644 index 0000000..93db222 --- /dev/null +++ b/tools/security/auditing.md @@ -0,0 +1,10 @@ +# Auditing & Host Security Tools + +Security auditing, integrity monitoring, and privilege escalation detection. + +All entries follow โ†’ [TOOL-TABLE-SCHEMA.md](../../TOOL-TABLE-SCHEMA.md) + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|------|----------------|-------------|-------------------|------|---------------|---------------|-------| +| OSSEC | https://www.ossec.net | https://github.com/ossec/ossec-hids | Host-based intrusion detection and file integrity monitoring. | hids, audit, fim | Active | 2008 | High | +| Lynis | https://cisofy.com/lynis | https://github.com/CISOfy/lynis | Security auditing and hardening scanner for Linux/Unix. | audit, hardening, compliance | Active | 2007 | 15k+ | \ No newline at end of file diff --git a/tools/security/pentest-recon-enum/INDEX.md b/tools/security/pentest-recon-enum/INDEX.md new file mode 100644 index 0000000..619617b --- /dev/null +++ b/tools/security/pentest-recon-enum/INDEX.md @@ -0,0 +1,21 @@ +# Pentest Recon & Enumeration Index + +Core tools and resources for the reconnaissance and enumeration phases of penetration testing: passive/active information gathering, network/host discovery, port scanning, service fingerprinting, packet capture/analysis, OSINT, subdomain enumeration, threat intelligence/reputation checks, and curated pentest arsenals. + +All tool/resource tables in this section **must** follow โ†’ [TOOL-TABLE-SCHEMA.md](../../../TOOL-TABLE-SCHEMA.md) + +## Contents + +- **[Packet Capture & Analysis.md](./Packet%20Capture%20%26%20Analysis.md)** โ€” Tools for capturing, dissecting, and analyzing network traffic (Wireshark alternatives, command-line dissectors, tcpdump variants, etc.) +- **[Port Scanners & Network Discovery.md](./Port%20Scanners%20%26%20Network%20Discovery.md)** โ€” High-performance scanners, mass scanners, host discovery utilities (Nmap forks, ZMap, masscan, unicornscan, etc.) +- **[Recon & Threat Reputation.md](./Recon%20%26%20Threat%20Reputation.md)** โ€” OSINT frameworks, subdomain bruteforcers, ASN/BGP lookup, domain/URL reputation APIs, threat intel feeds +- **[pentest-arsenal.md](./pentest-arsenal.md)** โ€” Curated personal/general collection of recon & enumeration tools (growing list of vetted additions) + +## Quick Navigation + +- โ†‘ [Back to Security Index](../INDEX.md) +- โ†‘ [Back to Tools Root](../../_INDEX.md) *(update to INDEX.md after eventual rename)* +- โ†‘ [Back to Repository Root](../../../README.md) +- โ†’ [Schema Rules](../../../TOOL-TABLE-SCHEMA.md) +- โ†’ [Navigation SOP](../../../SOP-Navigation-and-Layout.md) +- โ†’ [Vuln Analysis & Exploitation Index](../vuln-analysis-exploitation/INDEX.md) *(add once created)* \ No newline at end of file diff --git a/tools/security/pentest-recon-enum/Packet Capture & Analysis.md b/tools/security/pentest-recon-enum/Packet Capture & Analysis.md new file mode 100644 index 0000000..06189c8 --- /dev/null +++ b/tools/security/pentest-recon-enum/Packet Capture & Analysis.md @@ -0,0 +1,14 @@ +# Packet Capture & Analysis Tools + +CLI and TUI tools for capturing, dumping, filtering, analyzing, and visualizing network traffic โ€” essential for diagnostics, forensics, pentesting, and reconnaissance. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +| ------------ | -------------------------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------- | --------------------------- | ------------- | ----- | +| tcpdump | https://www.tcpdump.org/ | [the-tcpdump-group/tcpdump](https://github.com/the-tcpdump-group/tcpdump) | Powerful CLI packet capture and analyzer with advanced filtering expression support. | capture, analyzer, cli, c, pcap | ~Mar 2026 (very active) | 1988 | ~3k+ | +| tshark | https://www.wireshark.org/ | โ€” (part of Wireshark repo) | CLI version of Wireshark for capturing, dumping, and dissecting network traffic. | capture, analyzer, cli, wireshark | ~Feb 2026 (Wireshark 4.6.4) | 1998 | โ€” | +| Termshark | https://termshark.io/ | [gcla/termshark](https://github.com/gcla/termshark) | Terminal UI frontend for tshark with Wireshark-like interface and packet browsing. | capture, tui, wireshark, go | ~Jul 2022 (v2.4.0) | 2018 | ~7k+ | +| ngrep | โ€” | [jpr5/ngrep](https://github.com/jpr5/ngrep) | Grep-like tool for searching and displaying network packets by string or regex pattern. | grep, capture, cli, c | ~Feb 2026 (v1.49.0) | 1999 | ~3k+ | +| netsniff-ng | http://netsniff-ng.org/ | [netsniff-ng/netsniff-ng](https://github.com/netsniff-ng/netsniff-ng) | High-performance toolkit for network sniffing, analysis, monitoring, and plumbing. | capture, toolkit, cli, c, performance | ~Jan 2025 (v0.6.9) | 2011 | ~3k+ | +| stenographer | โ€” | [google/stenographer](https://github.com/google/stenographer) | High-speed packet capture spooler to disk for large-scale forensics and IDS buffering. | capture, spool, go, forensics | ~Nov 2020 (archived) | 2014 | ~2k+ | +| tcpterm | โ€” | [sachaos/tcpterm](https://github.com/sachaos/tcpterm) | TUI visualizer for monitoring and displaying TCP packet streams in real time. | visualizer, tui, rust, tcp | ~Stable (low activity) | 2018 | ~1k+ | +| sockdump | โ€” | [mechpen/sockdump](https://github.com/mechpen/sockdump) | Dumps Unix domain socket traffic for local debugging and protocol inspection. | socket, dump, cli, go, unix | ~Stable (low activity) | 2019 | โ€” | \ No newline at end of file diff --git a/tools/security/pentest-recon-enum/Port Scanners & Network Discovery.md b/tools/security/pentest-recon-enum/Port Scanners & Network Discovery.md new file mode 100644 index 0000000..051a88b --- /dev/null +++ b/tools/security/pentest-recon-enum/Port Scanners & Network Discovery.md @@ -0,0 +1,11 @@ +# Port Scanners & Network Discovery Tools + +Essential CLI tools for port scanning, host discovery, OS fingerprinting, and large-scale network reconnaissance during pentesting and enumeration. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +| -------- | ----------------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | ----------------------------------------- | ----------------------- | ------------- | ----- | +| nmap | https://nmap.org/ | [nmap/nmap](https://github.com/nmap/nmap) | Versatile network discovery and security auditing tool with port scanning, OS detection, scripting. | scanner, port, recon, nse, cli, os-detect | ~Mar 2026 (frequent) | 1997 | 10k+ | +| zmap | https://zmap.io/ | [zmap/zmap](https://github.com/zmap/zmap) | Fast single-packet scanner optimized for large-scale Internet-wide surveys and port scanning. | scanner, fast, internet-wide, cli, c | ~May 2025 (v4.3.4) | 2013 | 6.1k | +| RustScan | โ€” | [bee-san/RustScan](https://github.com/bee-san/RustScan) | Ultra-fast port scanner that wraps nmap for full scans after quick open port discovery. | scanner, fast, rust, wrapper, cli | ~Feb 2025 (v2.4.1) | 2019 | ~3k+ | +| masscan | โ€” | [robertdavidgraham/masscan](https://github.com/robertdavidgraham/masscan) | Asynchronous SYN scanner capable of scanning the entire Internet in minutes at high speed. | scanner, fast, async, cli, c | ~Jun 2025 (maintenance) | 2013 | ~20k+ | +| pbscan | โ€” | [gvb84/pbscan](https://github.com/gvb84/pbscan) | Stateless SYN scanner with efficient banner grabbing and multi-threading support. | scanner, syn, banner, cli, c | ~Older (stable) | ~2015 | โ€” | diff --git a/tools/security/pentest-recon-enum/Recon & Threat Reputation.md b/tools/security/pentest-recon-enum/Recon & Threat Reputation.md new file mode 100644 index 0000000..49c9010 --- /dev/null +++ b/tools/security/pentest-recon-enum/Recon & Threat Reputation.md @@ -0,0 +1,16 @@ +# Threat Hunting & Intel / Reputation Tools + +Online services and scanners for URL/domain/file reputation checking, malware analysis, IOC lookup, threat intelligence enrichment, and reconnaissance during cyber threat hunting or incident response. Many of these are used daily for quick triage of suspicious indicators. + +| Name | Vendor/Webpage | Brief Description | Tags | Creation Date | +| ------------------ | -------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------- | ------------- | +| AbuseIPDB | https://www.abuseipdb.com/ | Database and API for reporting/checking abusive IP addresses and reputation. | ip-reputation, abuse, threat-intel, blacklist | 2013 | +| AlienVault OTX | https://otx.alienvault.com/ | Open Threat Exchange for sharing and searching IOCs and pulses. | threat-intel, ioc, community, otx | 2015 | +| Any.Run | https://any.run/ | Interactive online malware sandbox for real-time threat analysis and hunting. | malware, sandbox, interactive, threat-hunting | 2016 | +| GreyNoise | https://www.greynoise.io/ | Distinguishes internet background noise from targeted threats and scans. | threat-intel, noise-filter, ip-reputation, hunting | 2018 | +| Hybrid Analysis | https://www.hybrid-analysis.com/ | Free automated malware analysis sandbox with Falcon Sandbox backend. | malware, sandbox, analysis, threat-hunting | 2015 | +| Joe Sandbox | https://www.joesandbox.com/ | Advanced behavioral malware analysis with detailed reports and IOC extraction. | malware, sandbox, behavioral, analysis | 2011 | +| Talos Intelligence | https://talosintelligence.com/ | Cisco threat intelligence portal with reputation, IOC search, and blog feeds. | threat-intel, reputation, cisco, ioc | 2013 | +| urlscan.io | https://urlscan.io/ | Automated website scanning with screenshots, DOM analysis, and threat detection. | recon, url-scanner, sandbox, threat-hunting | 2016 | +| urlvoid | https://www.urlvoid.com/ | Checks website reputation against blacklists for malware, phishing, and spam. | reputation, url-scanner, blacklist, threat-intel | 2010 | +| VirusTotal | https://www.virustotal.com/ | Analyzes files, URLs, domains, and IPs with 70+ antivirus engines and scanners. | threat-intel, malware, url-scanner, ioc, reputation | 2004 | diff --git a/tools/security/pentest-recon-enum/pentest-arsenal.md b/tools/security/pentest-recon-enum/pentest-arsenal.md new file mode 100644 index 0000000..a29306c --- /dev/null +++ b/tools/security/pentest-recon-enum/pentest-arsenal.md @@ -0,0 +1,202 @@ +# Pentesters Arsenal Tools + +Comprehensive, categorized collection of penetration testing tools. +Grouped by primary function following common pentest phases. +All entries adhere to the [TOOL-TABLE-SCHEMA.md](../../TOOL-TABLE-SCHEMA.md). + +Use browser search (Ctrl+F) or expand sections below. + +[โ†‘ Back to Tools Overview](../../_INDEX.md) | [โ†‘ Back to Pentest Recon & Enum INDEX](./INDEX.md) + +
+Reconnaissance & OSINT + +### Reconnaissance & OSINT + +Tools for information gathering, domain/IP enumeration, crawling, username hunting, etc. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------|-----------------------------------------------------|-------------------------------------------------------|-----------------------------------------------------------------------------------|-----------------------------------------------|------------------|---------------|---------| +| Photon | โ€” | [s0md3v/Photon](https://github.com/s0md3v/Photon) | Incredibly fast crawler designed for OSINT data extraction. | [osint, crawler, recon, python] | ~2022 | 2018 | 10k+ | +| Recon-ng | โ€” | [lanmaster53/recon-ng](https://github.com/lanmaster53/recon-ng) | Full-featured web reconnaissance framework written in Python. | [recon, osint, framework, python] | ~2023 | 2012 | 10k+ | +| AutoRecon | โ€” | [Tib3rius/AutoRecon](https://github.com/Tib3rius/AutoRecon) | Automated network reconnaissance tool for enumerating services and hosts. | [recon, automation, enumeration, python] | ~2024 | 2020 | 8k+ | +| aquatone | โ€” | [michenriksen/aquatone](https://github.com/michenriksen/aquatone) | Tool for visual inspection of website screenshots during domain flyovers. | [recon, screenshot, domain, go] | ~2020 | 2017 | 5k+ | +| BillCipher | โ€” | [m4ll0k/BillCipher](https://github.com/m4ll0k/BillCipher) | Information gathering tool for websites or IP addresses. | [recon, osint, enumeration, python] | ~2021 | 2018 | 1k+ | +| sherlock | โ€” | [sherlock-project/sherlock](https://github.com/sherlock-project/sherlock) | Hunts down social media accounts by username across networks. | [osint, username, recon, python] | 2026 | 2018 | 50k+ | +| Osmedeus | [osmedeus.com](https://osmedeus.com) | [j3ssie/osmedeus](https://github.com/j3ssie/osmedeus) | Fully automated offensive security tool for recon and vulnerability scanning. | [automation, recon, scanner, python] | 2026 | 2019 | 5k+ | +| LeakLooker | โ€” | โ€” | Finds open databases powered by Binaryedge.io data. | [osint, database, leak, recon] | โ€” | ~2020 | โ€” | + +[โ†‘ Back to Top](#pentesters-arsenal-tools) + +
+ +
+Web Proxies & Interception + +### Web Proxies & Interception + +Intercepting proxies and traffic manipulation tools (core for web app testing). + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------|-----------------------------------------------------|-------------------------------------------------------|-----------------------------------------------------------------------------------|-----------------------------------------------|------------------|---------------|---------| +| Sandcat Browser | [syhunt.com/sandcat](https://www.syhunt.com/sandcat) | [syhunt/sandcat](https://github.com/syhunt/sandcat) | Penetration-oriented browser with Lua scripting, headers, and dev tools built-in. | [browser, pentest, lua, web, headers] | ~2023 | ~2015 | โ€” | +| Burp Suite | [portswigger.net/burp](https://portswigger.net/burp) | โ€” | Industry-standard web app security testing suite with proxy, scanner, and repeater. | [web, proxy, scanner, intercept, burp] | Active 2026 | 2006 | โ€” | +| OWASP Zed Attack Proxy | [zaproxy.org](https://www.zaproxy.org) | [zaproxy/zaproxy](https://github.com/zaproxy/zaproxy) | Open-source intercepting proxy and automated web app vulnerability scanner. | [web, proxy, scanner, zap, owasp] | 2026 | 2010 | 12k+ | +| mitmproxy | [mitmproxy.org](https://mitmproxy.org) | [mitmproxy/mitmproxy](https://github.com/mitmproxy/mitmproxy) | Interactive TLS-capable HTTP/HTTPS intercepting proxy for traffic manipulation. | [proxy, intercept, tls, python, http] | 2026 | 2010 | 37k+ | +| WhatWaf | โ€” | [Ekultek/WhatWaf](https://github.com/Ekultek/WhatWaf) | Detects and bypasses web application firewalls and protection systems. | [waf, bypass, detection, python] | ~2023 | 2018 | 3k+ | +| Corsy | โ€” | [s0md3v/Corsy](https://github.com/s0md3v/Corsy) | Scanner for finding CORS misconfigurations and vulnerabilities. | [web, cors, scanner, python] | ~2022 | 2019 | 2k+ | + +[โ†‘ Back to Top](#pentesters-arsenal-tools) + +
+ +
+Web Vulnerability Scanners & Auditors + +### Web Vulnerability Scanners & Auditors + +Web-specific scanners, directory enumeration, XSS/SQL injection focused tools. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------|-----------------------------------------------------|-------------------------------------------------------|-----------------------------------------------------------------------------------|-----------------------------------------------|------------------|---------------|---------| +| Nikto2 | [cirt.net/Nikto2](https://cirt.net/Nikto2) | [sullo/nikto](https://github.com/sullo/nikto) | Web server scanner performing comprehensive tests for misconfigs and issues. | [web, scanner, perl, server] | ~2024 | 2001 | 7k+ | +| w3af | [w3af.org](http://w3af.org) | [andresriancho/w3af](https://github.com/andresriancho/w3af) | Web application attack and audit framework for finding and exploiting vulns. | [web, framework, scanner, python] | ~2020 | 2007 | 4k+ | +| sqlmap | [sqlmap.org](http://sqlmap.org) | [sqlmapproject/sqlmap](https://github.com/sqlmapproject/sqlmap) | Automates detection and exploitation of SQL injection flaws. | [sql, injection, exploit, automation, python]| 2026 | 2006 | 31k+ | +| XSStrike | โ€” | [s0md3v/XSStrike](https://github.com/s0md3v/XSStrike) | Most advanced XSS detection suite with payload generation and evasion. | [web, xss, scanner, python] | ~2023 | 2018 | 13k+ | +| dirhunt | โ€” | [mkdocs/dirhunt](https://github.com/mkdocs/dirhunt) | Finds web directories and files without bruteforcing. | [web, directory, enumeration, python] | ~2023 | 2018 | 2k+ | +| Raccoon | โ€” | [evyatarmeged/Raccoon](https://github.com/evyatarmeged/Raccoon) | High performance offensive security tool for recon and vulnerability scanning. | [recon, scanner, vuln, python] | ~2021 | 2019 | 4k+ | + +[โ†‘ Back to Top](#pentesters-arsenal-tools) + +
+ +
+General/Network Vulnerability Scanners + +### General/Network Vulnerability Scanners + +Broader system/network vuln scanning, often agentless or plugin-extensible. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------|-----------------------------------------------------|-------------------------------------------------------|-----------------------------------------------------------------------------------|-----------------------------------------------|------------------|---------------|---------| +| vuls | [vuls.io](https://vuls.io) | [future-architect/vuls](https://github.com/future-architect/vuls) | Agent-less vulnerability scanner for Linux/FreeBSD and other systems. | [scanner, vuln, linux, go] | 2026 | 2016 | 10k+ | +| tsunami | [google.github.io/tsunami-security-scanner](https://google.github.io/tsunami-security-scanner/) | [google/tsunami-security-scanner](https://github.com/google/tsunami-security-scanner) | General-purpose network security scanner with extensible plugin system. | [scanner, network, plugin, java] | ~2024 | 2019 | 8k+ | + +[โ†‘ Back to Top](#pentesters-arsenal-tools) + +
+ +
+Exploitation Frameworks & Automation + +### Exploitation Frameworks & Automation + +Full frameworks and automated exploit chains for offensive operations. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------|-----------------------------------------------------|-------------------------------------------------------|-----------------------------------------------------------------------------------|-----------------------------------------------|------------------|---------------|---------| +| Metasploit | [metasploit.com](https://www.metasploit.com) | [rapid7/metasploit-framework](https://github.com/rapid7/metasploit-framework) | Exploitation framework for pentesting systems, networks, web, and more. | [exploit, framework, ruby, metasploit] | 2026 | 2003 | 33k+ | +| Sn1per | [sn1persecurity.com](https://sn1persecurity.com) | [1N3/Sn1per](https://github.com/1N3/Sn1per) | Automated pentest framework for offensive security experts. | [automation, framework, recon, exploit] | ~2025 | 2015 | 7k+ | +| AutoSploit | โ€” | [AutoSploit/AutoSploit](https://github.com/AutoSploit/AutoSploit) | Automated mass exploiter using public exploits. | [exploit, automation, mass] | ~2018 | 2018 | 2k+ | +| routersploit | โ€” | [threat9/routersploit](https://github.com/threat9/routersploit) | Exploitation framework dedicated to embedded devices and routers. | [exploit, router, embedded, python] | 2026 | 2015 | 12k+ | +| beef | [beefproject.com](http://beefproject.com) | [beefproject/beef](https://github.com/beefproject/beef) | Browser exploitation framework focused on client-side attacks. | [browser, exploit, framework, ruby] | 2026 | 2010 | 8k+ | + +[โ†‘ Back to Top](#pentesters-arsenal-tools) + +
+ +
+Password & Hash Cracking + +### Password & Hash Cracking + +High-performance crackers for hashes and passwords. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------|-----------------------------------------------------|-------------------------------------------------------|-----------------------------------------------------------------------------------|-----------------------------------------------|------------------|---------------|---------| +| John The Ripper | [openwall.com/john](https://www.openwall.com/john/) | [openwall/john](https://github.com/openwall/john) | Fast password cracker supporting many hash types and platforms. | [cracker, password, hash, c] | 2026 | 1996 | 9k+ | +| hashcat | [hashcat.net](https://hashcat.net/hashcat/) | [hashcat/hashcat](https://github.com/hashcat/hashcat) | World's fastest and most advanced password recovery utility (GPU-accelerated). | [cracker, gpu, password, hash, c] | 2026 | 2009 | 20k+ | + +[โ†‘ Back to Top](#pentesters-arsenal-tools) + +
+ +
+Fuzzing & Fault Injection + +### Fuzzing & Fault Injection + +Coverage-guided fuzzers and attack pattern dictionaries. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------|-----------------------------------------------------|-------------------------------------------------------|-----------------------------------------------------------------------------------|-----------------------------------------------|------------------|---------------|---------| +| fuzzdb | โ€” | [fuzzdb-project/fuzzdb](https://github.com/fuzzdb-project/fuzzdb) | Dictionary of attack patterns and primitives for black-box fault injection. | [fuzz, dictionary, patterns, attack] | ~2023 | 2010 | 3k+ | +| AFL | [lcamtuf.coredump.cx/afl](https://lcamtuf.coredump.cx/afl/) | [google/AFL](https://github.com/google/AFL) | Free software fuzzer focused on security-oriented coverage-guided fuzzing. | [fuzzer, coverage, security, c] | ~2018 | 2013 | 5k+ | +| AFL++ | [aflplus.plus](https://aflplus.plus) | [AFLplusplus/AFLplusplus](https://github.com/AFLplusplus/AFLplusplus) | AFL with community patches and improvements for better fuzzing. | [fuzzer, coverage, security, c++] | 2026 | 2019 | 5k+ | +| syzkaller | โ€” | [google/syzkaller](https://github.com/google/syzkaller) | Unsupervised coverage-guided kernel fuzzer for OS kernels. | [fuzzer, kernel, coverage, go] | 2026 | 2015 | 5k+ | + +[โ†‘ Back to Top](#pentesters-arsenal-tools) + +
+ +
+Reverse Engineering & Debugging + +### Reverse Engineering & Debugging + +Disassemblers, decompilers, and GDB enhancements for binary analysis. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------|-----------------------------------------------------|-------------------------------------------------------|-----------------------------------------------------------------------------------|-----------------------------------------------|------------------|---------------|---------| +| pwndbg | โ€” | [pwndbg/pwndbg](https://github.com/pwndbg/pwndbg) | Exploit development and reverse engineering enhancements for GDB. | [gdb, exploit, reverse, python] | 2026 | 2015 | 7k+ | +| GDB PEDA | โ€” | [longld/peda](https://github.com/longld/peda) | Python Exploit Development Assistance for GDB. | [gdb, exploit, reverse, python] | ~2022 | 2012 | 6k+ | +| IDA | [hex-rays.com/ida-pro](https://hex-rays.com/ida-pro/) | โ€” | Multi-processor disassembler and debugger for reverse engineering malware. | [reverse, disassembler, debugger] | Active 2026 | 1991 | โ€” | +| radare2 | [rada.re](https://rada.re) | [radareorg/radare2](https://github.com/radareorg/radare2) | Framework for reverse-engineering and analyzing binaries. | [reverse, framework, disassembler, c] | 2026 | 2009 | 20k+ | +| Ghidra | [nsa.gov/ghidra](https://ghidra-sre.org/) | [NationalSecurityAgency/ghidra](https://github.com/NationalSecurityAgency/ghidra) | Software reverse engineering framework with decompiler from NSA. | [reverse, decompiler, java, framework] | 2026 | 2019 | 50k+ | +| Cutter | [cutter.re](https://cutter.re) | [rizinorg/cutter](https://github.com/rizinorg/cutter) | SRE platform integrating Ghidra's decompiler with modern UI. | [reverse, gui, decompiler, cpp] | 2026 | 2017 | 15k+ | + +[โ†‘ Back to Top](#pentesters-arsenal-tools) + +
+ +
+Post-Exploitation & Credential Tools + +### Post-Exploitation & Credential Tools + +Credential dumping, privilege escalation, and post-compromise utilities. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------|-----------------------------------------------------|-------------------------------------------------------|-----------------------------------------------------------------------------------|-----------------------------------------------|------------------|---------------|---------| +| mimikatz | โ€” | [gentilkiwi/mimikatz](https://github.com/gentilkiwi/mimikatz) | Tool to play with Windows security features like credential extraction. | [windows, credential, post-exploit, c] | ~2024 | 2011 | 20k+ | +| SUDO_KILLER | โ€” | [TH3xACE/SUDO_KILLER](https://github.com/TH3xACE/SUDO_KILLER) | Tool to identify and exploit sudo rules misconfigurations and vulns. | [linux, sudo, privilege, escalation] | ~2023 | 2019 | 1k+ | + +[โ†‘ Back to Top](#pentesters-arsenal-tools) + +
+ +
+Miscellaneous / Specialized + +### Miscellaneous / Specialized + +Reporting, threat modeling, CTF helpers, collections, and other utilities. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------|-----------------------------------------------------|-------------------------------------------------------|-----------------------------------------------------------------------------------|-----------------------------------------------|------------------|---------------|---------| +| Faraday | [faradaysec.com](https://faradaysec.com) | [infobyte/faraday](https://github.com/infobyte/faraday) | Integrated multiuser pentest environment for collaboration and reporting. | [collaboration, reporting, pentest, python] | 2026 | 2012 | 4k+ | +| Vulnreport | โ€” | [salesforce/vulnreport](https://github.com/salesforce/vulnreport) | Open-source pentesting management and automation platform. | [management, reporting, pentest, ruby] | ~2022 | 2015 | 1k+ | +| Mentalist | โ€” | [sc0tfree/mentalist](https://github.com/sc0tfree/mentalist) | Graphical tool for custom wordlist generation. | [wordlist, generator, gui, python] | ~2020 | 2017 | 2k+ | +| archerysec | [archerysec.info](https://archerysec.info) | [archerysec/archerysec](https://github.com/archerysec/archerysec) | Vulnerability assessment and management platform for scans and tracking. | [vuln, management, scanner, python] | ~2025 | 2018 | 2k+ | +| yara | [virustotal.github.io/yara](https://virustotal.github.io/yara/) | [VirusTotal/yara](https://github.com/VirusTotal/yara) | Pattern matching swiss knife for malware research and rules. | [malware, rules, pattern, c] | 2026 | 2013 | 12k+ | +| exploitdb | [exploit-db.com](https://www.exploit-db.com) | [offensive-security/exploitdb](https://github.com/offensive-security/exploitdb) | Searchable archive of exploits and vulnerable software from Exploit Database. | [exploit, database, archive] | 2026 | 2004 | 9k+ | +| getsploit | โ€” | [vulnerables/getsploit](https://github.com/vulnerables/getsploit) | Command-line utility for searching and downloading exploits. | [exploit, search, cli, python] | ~2021 | 2017 | 1k+ | +| ctf-tools | โ€” | [zardus/ctf-tools](https://github.com/zardus/ctf-tools) | Collection of setup scripts for security research and CTF tools. | [ctf, setup, tools, python] | ~2022 | 2015 | 2k+ | +| pwntools | โ€” | [Gallopsled/pwntools](https://github.com/Gallopsled/pwntools) | CTF framework and exploit development library. | [ctf, exploit, python, library] | 2026 | 2013 | 12k+ | +| p0f | [lcamtuf.coredump.cx/p0f3](https://lcamtuf.coredump.cx/p0f3/) | [lcamtuf/p0f](https://github.com/lcamtuf/p0f) | Passive TCP/IP stack fingerprinting tool to identify OS and apps. | [fingerprint, passive, network, c] | ~2014 | ~2000 | 1k+ | +| ssh_scan | โ€” | [mozilla/ssh_scan](https://github.com/mozilla/ssh_scan) | Prototype SSH configuration and policy scanner. | [ssh, scanner, security, ruby] | ~2020 | 2015 | 2k+ | +| OWASP Threat Dragon | [owasp.org/www-project-threat-dragon](https://owasp.org/www-project-threat-dragon/) | [OWASP/Threat-Dragon](https://github.com/OWASP/Threat-Dragon) | Tool to create threat model diagrams and record possible threats. | [threat, modeling, diagram, security] | 2026 | 2015 | 2k+ | + +[โ†‘ Back to Top](#pentesters-arsenal-tools) + +
\ No newline at end of file diff --git a/tools/security/pentest-recon-enum/web-dns-recon-tools.md b/tools/security/pentest-recon-enum/web-dns-recon-tools.md new file mode 100644 index 0000000..3d1777a --- /dev/null +++ b/tools/security/pentest-recon-enum/web-dns-recon-tools.md @@ -0,0 +1,85 @@ +# Online DNS & Subdomain Recon Tools + +Collection of **web-based / online** DNS tools useful during the reconnaissance phase of penetration testing and security assessments. + +These tools focus on: +- DNS record lookups and analysis +- Subdomain enumeration +- DNS propagation checking +- Delegation and DNSSEC validation +- Historical reverse DNS records +- Wildcard / testing DNS services + +They complement CLI-based recon tools (see [pentest-arsenal.md](./pentest-arsenal.md)) and are ideal for quick, passive OSINT without local installation. + +[โ†‘ Back to Pentest Recon & Enum INDEX](./INDEX.md) +[โ†‘ Back to Tools Overview](../../_INDEX.md) + +
+Core DNS Lookup & Investigation Tools + +### Core DNS Lookup & Investigation Tools + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-----------------------|---------------------------------------------------------|-------------|----------------------------------------------------------------------------------|-----------------------------------------------|---------------|---------------|-------| +| ViewDNS | [viewdns.info](https://viewdns.info/) | โ€” | Multi-tool suite offering DNS, WHOIS, reverse IP, propagation, traceroute and more. | [dns, recon, lookup, propagation, osint] | โ€” | ~2008 | โ€” | +| DNSLookup | [dnslookup.org](https://dnslookup.org/) | โ€” | Advanced DNS lookup tool with detailed record parsing and visualization. | [dns, lookup, records, analysis] | โ€” | ~2015 | โ€” | +| DNSlytics | [dnslytics.com](https://dnslytics.com/) | โ€” | Online DNS and IP investigation platform with historical data and maps. | [dns, investigation, intel, osint] | โ€” | ~2016 | โ€” | +| DNS Spy | [dnsspy.io](https://dnsspy.io/) | โ€” | Monitors DNS configurations, detects changes, and validates settings. | [dns, monitor, validation, config] | โ€” | ~2017 | โ€” | +| Zonemaster | [zonemaster.iis.se](https://zonemaster.iis.se/en/) | โ€” | Advanced DNS zone testing tool to verify configuration and best practices. | [dns, tester, zone, validation] | โ€” | ~2013 | โ€” | +| Leaf DNS | [leafdns.com](http://leafdns.com/) | โ€” | Comprehensive DNS health and delegation tester. | [dns, tester, health, delegation] | โ€” | ~2010 | โ€” | +| intoDNS | [intodns.com](https://intodns.com/) | โ€” | Checks DNS and mail server health, misconfigurations, and common issues. | [dns, health, checker, mail] | โ€” | ~2009 | โ€” | + +
+ +
+Subdomain Enumeration & DNS Recon + +### Subdomain Enumeration & DNS Recon + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-----------------------|---------------------------------------------------------|-------------|----------------------------------------------------------------------------------|-----------------------------------------------|---------------|---------------|-------| +| Find Subdomains Online | [findsubdomains.com](https://findsubdomains.com/) | โ€” | Web interface to discover subdomains for security assessments and pentests. | [subdomain, enum, recon, osint] | โ€” | ~2018 | โ€” | +| DNSdumpster | [dnsdumpster.com](https://dnsdumpster.com/) | โ€” | Free DNS recon & research tool; maps hosts, subdomains, and records. | [dns, recon, subdomain, dump] | โ€” | ~2014 | โ€” | +| DNS Table | [dnstable.com](https://dnstable.com/) | โ€” | Searches public DNS records by domain, IP, CIDR block, or ISP. | [dns, search, records, database] | โ€” | ~2015 | โ€” | + +
+ +
+DNS Propagation & Delegation Checkers + +### DNS Propagation & Delegation Checkers + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|--------------------------|--------------------------------------------------------------------|-------------|----------------------------------------------------------------------------------|-----------------------------------------------|---------------|---------------|-------| +| What's My DNS | [whatsmydns.net](https://www.whatsmydns.net/) | โ€” | Popular global DNS propagation checker from hundreds of locations worldwide. | [propagation, checker, dns, global] | โ€” | ~2012 | โ€” | +| dnslookup (ceipam) | [ceipam.eu/en/dnslookup.php](https://ceipam.eu/en/dnslookup.php) | โ€” | Excellent DNS propagation checker with detailed global views and extras. | [propagation, checker, dns, global] | โ€” | ~2015 | โ€” | +| BuddyDNS Delegation LAB | [buddyns.com/delegation-lab](https://www.buddyns.com/delegation-lab/) | โ€” | Visualizes, traces, and validates domain name delegation paths. | [dns, delegation, trace, visualize] | โ€” | ~2012 | โ€” | +| DNS Bajaj | [zonecut.net/dns](http://www.zonecut.net/dns/) | โ€” | Simple delegation checker showing authoritative name servers. | [dns, delegation, checker] | โ€” | ~2005 | โ€” | +| DNSSEC Debugger | [dnssec-debugger.verisignlabs.com](https://dnssec-debugger.verisignlabs.com/) | โ€” | Validates DNSSEC chain, DS, and DNSKEY records. | [dnssec, validation, debugger] | โ€” | ~2010 | โ€” | + +
+ +
+Historical & Wildcard DNS Services + +### Historical & Wildcard DNS Services + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|---------------|----------------------------------------------|-------------|----------------------------------------------------------------------------------|-----------------------------------------------|---------------|---------------|-------| +| PTRarchive | [ptrarchive.com](http://ptrarchive.com/) | โ€” | Archives and searches historical reverse DNS (PTR) records. | [ptr, historical, reverse, archive] | โ€” | ~2010 | โ€” | +| xip.io | [xip.io](http://xip.io/) | โ€” | Free wildcard DNS service resolving to any IP (great for local/dev testing). | [wildcard, dns, testing, local] | โ€” | 2011 | โ€” | +| nip.io | [nip.io](https://nip.io/) | โ€” | Dead-simple wildcard DNS for any IP address (modern xip.io alternative). | [wildcard, dns, testing, local] | โ€” | ~2014 | โ€” | + +
+ +
+Advanced / Specialized DNS Tools + +### Advanced / Specialized DNS Tools + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-----------|--------------------------------------------------------------------------------|-------------|----------------------------------------------------------------------------------|-----------------------------------------------|---------------|---------------|-------| +| DNSGrep | [blog.erbbysam.com/.../dnsgrep](https://blog.erbbysam.com/index.php/2019/02/09/dnsgrep/) | โ€” | Command-line style search across large public DNS datasets (web interface). | [dns, search, grep, datasets] | โ€” | 2019 | โ€” | + +
diff --git a/tools/security/system-hardening.md b/tools/security/system-hardening.md new file mode 100644 index 0000000..bf98a61 --- /dev/null +++ b/tools/security/system-hardening.md @@ -0,0 +1,11 @@ +# System Hardening & MAC + +**Mandatory Access Control**, automated hardening frameworks, and related security tools. + +All entries follow โ†’ [TOOL-TABLE-SCHEMA.md](../../TOOL-TABLE-SCHEMA.md) + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|------|----------------|-------------|-------------------|------|---------------|---------------|-------| +| SELinux | https://selinuxproject.org | https://github.com/SELinuxProject/selinux | Flexible Mandatory Access Control (MAC) system in Linux kernel. | mac, hardening, kernel, linux | Active | 2000s | High | +| AppArmor | https://apparmor.net | - | Proactive protection via per-program profiles. | mac, hardening, linux | Active | 2006 | High | +| grapheneX | https://github.com/grapheneX/grapheneX | https://github.com/grapheneX/grapheneX | Automated system hardening framework. | hardening, automation, devsec | - | - | 1.1k | \ No newline at end of file diff --git a/tools/security/vuln-analysis-exploitation/INDEX.md b/tools/security/vuln-analysis-exploitation/INDEX.md new file mode 100644 index 0000000..f18a9b5 --- /dev/null +++ b/tools/security/vuln-analysis-exploitation/INDEX.md @@ -0,0 +1,20 @@ +# Vulnerability Analysis & Exploitation Index + +Tools, databases, frameworks, and resources for vulnerability scanning, analysis, exploit development, payload generation, packet crafting/manipulation, exploit databases/search, proof-of-concept code, and post-exploitation tooling. + +All tool/resource tables in this section **must** follow โ†’ [TOOL-TABLE-SCHEMA.md](../../../TOOL-TABLE-SCHEMA.md) + +## Contents + +- **[ssl-tls-web-security.md](./ssl-tls-web-security.md)** โ€” Scanners, analyzers, testers, and hardening references for SSL/TLS protocols, certificate validation, web crypto misconfigurations, and related web security issues (may overlap with recon phase โ€” consider moving if duplicated) +- **[Packet Crafting & Manipulation.md](.tools/security/vuln-analysis-exploitation/Packet-crafting-manipulation)** โ€” tools like Scapy, hping3, packETH, etc. for custom packet building, fragmentation, spoofing, and injection +- **[Vulnerability & Exploit Databases](tools/security/vuln-analysis-exploitation/vuln-exploit-db)** โ€” curated links to Exploit-DB, CVE search tools, Vulners, Packet Storm, etc. + +## Quick Navigation + +- โ†‘ [Back to Security Index](../INDEX.md) +- โ†‘ [Back to Tools Root](../../_INDEX.md) *(update to INDEX.md after eventual rename of top-level tools/_INDEX.md)* +- โ†‘ [Back to Repository Root](../../../README.md) +- โ†’ [Schema Rules](../../../TOOL-TABLE-SCHEMA.md) +- โ†’ [Navigation SOP](../../../SOP-Navigation-and-Layout.md) +- โ†’ [Pentest Recon & Enumeration Index](../pentest-recon-enum/INDEX.md) \ No newline at end of file diff --git a/tools/security/vuln-analysis-exploitation/Packet-crafting-manipulation.md b/tools/security/vuln-analysis-exploitation/Packet-crafting-manipulation.md new file mode 100644 index 0000000..f8a3ba9 --- /dev/null +++ b/tools/security/vuln-analysis-exploitation/Packet-crafting-manipulation.md @@ -0,0 +1,7 @@ +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | +| -------- | ---------------------------------------------- | --------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | --------------------------------- | ---------------- | +| hping | [http://www.hping.org/](http://www.hping.org/) | โ€” (source mirrors) | Command-line packet assembler/analyzer for TCP/IP crafting, firewall testing, DoS sim. | [packet-craft, analyzer, cli, c] | Stable (classic) | +| Nemesis | โ€” | [troglobit/nemesis](https://github.com/troglobit/nemesis) | CLI tool to craft and inject custom packets for various protocols. | [packet-craft, injection, cli, c] | Active | +| Scapy | [https://scapy.net/](https://scapy.net/) | โ€” (official repo separate) | Interactive packet manipulation library for forging, sending, decoding packets. | [packet, library, forge, python] | Active | +| packetfu | โ€” | [packetfu/packetfu](https://github.com/packetfu/packetfu) | Mid-level packet manipulation library for Ruby (capture, forge, filter). | [packet, library, ruby] | Older | +| impacket | โ€” | [SecureAuthCorp/impacket](https://github.com/SecureAuthCorp/impacket) | Python classes for low-level network protocol interaction (SMB, Kerberos, etc.). | [protocol, library, smb, python] | Active | \ No newline at end of file diff --git a/tools/security/vuln-analysis-exploitation/ssl-tls-web-security.md b/tools/security/vuln-analysis-exploitation/ssl-tls-web-security.md new file mode 100644 index 0000000..e981e08 --- /dev/null +++ b/tools/security/vuln-analysis-exploitation/ssl-tls-web-security.md @@ -0,0 +1,143 @@ +# SSL/TLS & Web Security Tools + +Online scanners, analyzers, configuration generators, Certificate Transparency (CT) resources, testing/demo sites, and utilities for assessing and hardening web TLS/SSL configurations. +Also includes offline/CLI scanners, clients, and certificate management tools. + +These help identify weak ciphers, protocol issues, certificate problems, CSP/HSTS misconfigurations, and more โ€” essential for web pentesting, secure server setup, and compliance. + +[โ†‘ Back to Security Tools INDEX](../_INDEX.md) +[โ†‘ Back to Tools Overview](../../_INDEX.md) + +
+SSL/TLS Scanners & Analyzers (Online) + +### SSL/TLS Scanners & Analyzers (Online) + +Deep analysis of server TLS configurations, vulnerabilities, compliance, and client support. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------------------|-----------------------------------------------------|------------------------------------------|-----------------------------------------------------------------------------------|-------------------------------------------|---------------|---------------|-------| +| SSLLabs Server Test | [ssllabs.com/ssltest](https://www.ssllabs.com/ssltest/) | โ€” | Deep analysis of public SSL/TLS server configuration and vulnerabilities. | [ssl, tls, scanner, online, qualys, grading] | โ€” | 2011 | โ€” | +| ImmuniWeb SSL Security Test | [immuniweb.com/ssl](https://www.immuniweb.com/ssl) | โ€” | Tests SSL/TLS for PCI DSS, HIPAA, NIST compliance and post-quantum readiness. | [ssl, tls, compliance, pci, hipaa, scanner] | โ€” | 2015 | โ€” | +| SSL Check | [jitbit.com/sslcheck](https://www.jitbit.com/sslcheck/) | โ€” | Scans websites for mixed/insecure content and common SSL configuration issues. | [ssl, mixed-content, scanner, online] | โ€” | 2012 | โ€” | +| SSL Scanner | [sslshopper.com/ssl-checker.html](https://www.sslshopper.com/ssl-checker.html) | โ€” | Validates SSL certificate chain, expiry dates, and basic misconfigurations. | [ssl, certificate, checker, online] | โ€” | 2008 | โ€” | +| CryptCheck | [cryptcheck.fr](https://cryptcheck.fr/) | โ€” | Evaluates TLS configuration, ciphers, protocols, and client handshake support. | [tls, cipher, scanner, handshake, online] | โ€” | 2015 | โ€” | +| Hardenize | [hardenize.com](https://www.hardenize.com/) | โ€” | Comprehensive security testing including TLS, email, headers, DNS, and CT logs. | [hardening, scanner, tls, multi-protocol] | โ€” | 2018 | โ€” | +| TLScan | [github.com/prbinu/tlscan](https://github.com/prbinu/tlscan) | [prbinu/tlscan](https://github.com/prbinu/tlscan) | Pure Python tool to scan and enumerate SSL/TLS protocols and cipher suites. | [tls, scanner, python, enumerator] | 2022-08-15 | 2019 | ~50 | + +[โ†‘ Back to Top](#ssltls--web-security-tools) + +
+ +
+CLI & Offline SSL/TLS Scanners, Clients & Certificate Tools + +### CLI & Offline SSL/TLS Scanners, Clients & Certificate Tools + +Local/command-line tools for scanning TLS configurations, testing cipher support, certificate management, local dev certs, chain building, and expiration monitoring. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------|-----------------------------------------------------|-------------------------------------------------------|-----------------------------------------------------------------------------------|-----------------------------------------------|------------------|---------------|---------| +| openssl | [openssl.org](https://www.openssl.org/) | [openssl/openssl](https://github.com/openssl/openssl) | Robust, full-featured toolkit implementing the SSL/TLS protocols and utilities. | [tls, ssl, crypto, toolkit, c] | 2026 | 1998 | 25k+ | +| gnutls-cli | [gnutls.org](https://gnutls.org/) | [gnutls/gnutls](https://github.com/gnutls/gnutls) | Command-line client to establish and test TLS connections to remote servers. | [tls, client, gnutls, testing] | 2026 | 2000 | 1.5k+ | +| sslyze | โ€” | [nabla-c0d3/sslyze](https://github.com/nabla-c0d3/sslyze) | Fast and comprehensive SSL/TLS server scanning library and CLI tool. | [tls, scanner, python, library] | 2026 | 2012 | 3.5k+ | +| sslscan | โ€” | [rbsec/sslscan](https://github.com/rbsec/sslscan) | Tests SSL/TLS services to report supported cipher suites and protocol versions. | [tls, scanner, cipher, c] | ~2025 | 2005 | 2k+ | +| testssl.sh | โ€” | [drwetter/testssl.sh](https://github.com/drwetter/testssl.sh) | Bash script to test TLS/SSL encryption on any port with detailed vulnerability checks. | [tls, scanner, bash, offline] | 2026 | 2014 | 8k+ | +| cipherscan | โ€” | [mozilla/cipherscan](https://github.com/mozilla/cipherscan) | Simple tool to discover supported SSL/TLS cipher suites on a target. | [tls, cipher, scanner, python] | ~2020 | 2015 | 1k+ | +| spiped | [tarsnap.com/spiped.html](https://www.tarsnap.com/spiped.html) | โ€” | Utility for creating symmetrically encrypted and authenticated network pipes. | [encryption, tunnel, pipe, c] | ~2023 | 2011 | โ€” | +| Certbot | [certbot.eff.org](https://certbot.eff.org/) | [certbot/certbot](https://github.com/certbot/certbot) | EFF tool to automatically obtain and renew Let's Encrypt certificates. | [certificate, letsencrypt, automation, python] | 2026 | 2015 | 30k+ | +| mkcert | โ€” | [FiloSottile/mkcert](https://github.com/FiloSottile/mkcert) | Zero-config tool to generate locally-trusted development certificates. | [certificate, dev, local, go] | 2026 | 2018 | 50k+ | +| certstrap | โ€” | [square/certstrap](https://github.com/square/certstrap) | Tools to bootstrap your own certificate authority and sign certificates. | [ca, certificate, bootstrap, go] | ~2021 | 2015 | 2k+ | +| Sublert | โ€” | [yassineaboukir/sublert](https://github.com/yassineaboukir/sublert) | Monitors certificate transparency logs for new subdomains of watched domains. | [subdomain, monitoring, ct, python] | ~2023 | 2020 | 1k+ | +| mkchain | โ€” | [trimstray/mkchain](https://github.com/trimstray/mkchain) | Tool to build and verify a valid SSL/TLS certificate chain from PEM files. | [certificate, chain, builder, bash] | ~2022 | 2018 | 500+ | +| ssl-cert-check | โ€” | [Matty9191/ssl-cert-check](https://github.com/Matty9191/ssl-cert-check) | Simple Nagios-compatible script to check SSL certificate expiration dates. | [certificate, expiration, monitoring, perl] | ~2020 | 2010 | 300+ | + +[โ†‘ Back to Top](#ssltls--web-security-tools) + +
+ +
+Configuration Generators & Helpers + +### Configuration Generators & Helpers + +Tools to generate secure cipher suites, DH params, CAA records, and server configs. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------------------|-----------------------------------------------------|------------------------------------------|-----------------------------------------------------------------------------------|-------------------------------------------|---------------|---------------|-------| +| cipherli.st | [syslink.pl/cipherlist](https://syslink.pl/cipherlist) | โ€” | Provides strong cipher suite configurations for Apache, Nginx, and Lighttpd. | [cipher, config, tls, server] | โ€” | 2014 | โ€” | +| Mozilla SSL Config Generator | [ssl-config.mozilla.org](https://ssl-config.mozilla.org/) | โ€” | Generates secure TLS configurations following Mozilla guidelines for servers. | [tls, config, generator, mozilla, server] | โ€” | 2016 | โ€” | +| dhtool | [2ton.com.au/dhtool](https://2ton.com.au/dhtool/) | โ€” | Generates strong Diffie-Hellman parameters to improve forward secrecy. | [dhparam, pfs, tls, generator] | โ€” | 2015 | โ€” | +| CAA Record Helper | [sslmate.com/caa](https://sslmate.com/caa/) | โ€” | Generates proper Certificate Authority Authorization (CAA) DNS records. | [caa, dns, generator, certificate] | โ€” | 2017 | โ€” | + +[โ†‘ Back to Top](#ssltls--web-security-tools) + +
+ +
+Certificate Transparency & Certificate Resources + +### Certificate Transparency & Certificate Resources + +Search, monitor, and stream CT logs; CA databases. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------------------|-----------------------------------------------------|------------------------------------------|-----------------------------------------------------------------------------------|-------------------------------------------|---------------|---------------|-------| +| crt.sh | [crt.sh](https://crt.sh/) | โ€” | Search engine for certificates logged in public Certificate Transparency logs. | [ct, transparency, search, certificate] | โ€” | 2015 | โ€” | +| CERTSTREAM | [certstream.calidog.io](https://certstream.calidog.io/) | [Calidog/certstream](https://github.com/CaliDog/certstream) | Real-time streaming service for Certificate Transparency log updates. | [ct, transparency, stream, real-time] | 2025-11-20 | 2018 | ~400 | +| Common CA Database (CCADB) | [ccadb.my.salesforce-sites.com](https://ccadb.my.salesforce-sites.com/) | โ€” | Repository of Certificate Authority information, roots, and intermediates. | [ca, certificate, database, root] | โ€” | 2017 | โ€” | + +[โ†‘ Back to Top](#ssltls--web-security-tools) + +
+ +
+Testing & Demo Sites + +### Testing & Demo Sites + +Intentionally flawed setups, edge-case demos, and client compatibility testers. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------------------|-----------------------------------------------------|------------------------------------------|-----------------------------------------------------------------------------------|-------------------------------------------|---------------|---------------|-------| +| badssl.com | [badssl.com](https://badssl.com/) | โ€” | Site with intentionally broken SSL/TLS setups for testing client behavior. | [tls, testing, badssl, client] | โ€” | 2015 | โ€” | +| tlsfun.de | [tlsfun.de](https://tlsfun.de/) | โ€” | Collection of live demos and tests for various TLS/SSL protocol edge cases. | [tls, demo, testing, protocol] | โ€” | 2016 | โ€” | +| Cipher suite compatibility | [ssllabs.com/ssltest/viewMyClient.html](https://www.ssllabs.com/ssltest/viewMyClient.html) | โ€” | Tests TLS cipher and protocol compatibility from your current browser/client. | [tls, compatibility, client, browser] | โ€” | 2011 | โ€” | + +[โ†‘ Back to Top](#ssltls--web-security-tools) + +
+ +
+Web Security Headers & Policies + +### Web Security Headers & Policies + +CSP analyzers, HSTS/CSP monitoring, adoption trackers, and security.txt. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------------------|-----------------------------------------------------|------------------------------------------|-----------------------------------------------------------------------------------|-------------------------------------------|---------------|---------------|-------| +| Report URI | [report-uri.com](https://report-uri.com/) | โ€” | Monitors CSP, HPKP, HSTS, and certificate transparency policy violations. | [csp, hsts, monitoring, reporting] | โ€” | 2015 | โ€” | +| CSP Evaluator | [csp-evaluator.withgoogle.com](https://csp-evaluator.withgoogle.com/) | โ€” | Analyzes and scores the effectiveness of Content Security Policies. | [csp, security, policy, analyzer] | โ€” | 2018 | โ€” | +| Useless CSP | [github.com/0xInfection/Useless-CSP](https://github.com/0xInfection/Useless-CSP) | [0xInfection/Useless-CSP](https://github.com/0xInfection/Useless-CSP) | Collection exposing weak or useless CSP implementations on major websites. | [csp, security, list, github] | 2023-04-12 | 2020 | ~200 | +| Why No HTTPS? | [whynohttps.com](https://www.whynohttps.com/) | โ€” | Tracks top websites lacking automatic HTTP to HTTPS redirection. | [https, adoption, tracking, list] | โ€” | 2018 | โ€” | +| security.txt | [securitytxt.org](https://securitytxt.org/) | โ€” | Standard and generator for security contact/policy disclosure on websites. | [securitytxt, policy, contact, standard] | โ€” | 2017 | โ€” | + +[โ†‘ Back to Top](#ssltls--web-security-tools) + +
+ +
+Miscellaneous Resources + +### Miscellaneous Resources + +Cipher databases, TLS cipher search, and other utilities. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------------------|-----------------------------------------------------|------------------------------------------|-----------------------------------------------------------------------------------|-------------------------------------------|---------------|---------------|-------| +| TLS Cipher Suite Search | [ciphersuite.info](https://ciphersuite.info/) | โ€” | Searchable database of TLS cipher suites with security and support details. | [cipher, tls, search, database] | โ€” | 2019 | โ€” | + +[โ†‘ Back to Top](#ssltls--web-security-tools) + +
\ No newline at end of file diff --git a/tools/security/vuln-analysis-exploitation/vuln-exploit-db.md b/tools/security/vuln-analysis-exploitation/vuln-exploit-db.md new file mode 100644 index 0000000..652c5cf --- /dev/null +++ b/tools/security/vuln-analysis-exploitation/vuln-exploit-db.md @@ -0,0 +1,12 @@ +#### Vulnerability & Exploit Databases + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | +|---------------|-----------------------------------------|--------------------------------------|-----------------------------------------------------------------------------------|-------------------------------------------|------------------------| +| CVE Mitre | [https://cve.mitre.org/](https://cve.mitre.org/) | [CVEProject](https://github.com/CVEProject) (various repos) | Official program that identifies, defines, and catalogs publicly disclosed cybersecurity vulnerabilities. | [cve, vuln-db, official, reference] | Active (ongoing CVE assignments) | +| CVE Details | [https://www.cvedetails.com/](https://www.cvedetails.com/) | โ€” | Enhanced CVE database with advisories, exploits, tools, source code changes, and vulnerability statistics. | [cve, vuln-db, statistics, exploits] | Daily updates (e.g., 2026-03-07) | +| Exploit DB | [https://www.exploit-db.com/](https://www.exploit-db.com/) | [offensive-security/exploitdb](https://github.com/offensive-security/exploitdb) | CVE-compliant archive of public exploits, vulnerable software details, and proof-of-concepts. | [exploits, vuln-db, archive, pentest] | Recent (e.g., 2026-03-03) | +| 0day.today | [https://0day.today/](https://0day.today/) | โ€” | Exploit marketplace for buying/selling zero-day exploits and vulnerabilities. | [exploits, market, zeroday, paid] | Active marketplace (ongoing listings) | +| Sploitus | [https://sploitus.com/](https://sploitus.com/) | โ€” | Search engine aggregating exploits and hacking tools from multiple sources. | [exploits, search, aggregator, tools] | Active (real-time indexing) | +| CXSecurity | [https://cxsecurity.com/exploit/](https://cxsecurity.com/exploit/) | โ€” | Free vulnerability and exploit database with CVE links and author credits. | [vuln-db, exploits, free, archive] | Recent (March 2026 entries) | +| Vulncode-DB | [https://www.vulncode-db.com/](https://www.vulncode-db.com/) | [google/vulncode-db](https://github.com/google/vulncode-db) | Database of vulnerabilities with corresponding source code snippets when available. | [vuln-db, source-code, code-vuln, reference] | Archived (2023-03-08) | +| cveapi | [https://cveapi.com/](https://cveapi.com/) | โ€” (no active public repo found) | Free API providing detailed CVE data from NIST NVD feeds (no auth required). | [cve, api, vuln-data, free] | Deprecated (2023-12-15; no new data) | \ No newline at end of file diff --git a/tools/sysadmin-devops/Remote Access + SSH Clients.md b/tools/sysadmin-devops/Remote Access + SSH Clients.md new file mode 100644 index 0000000..f378351 --- /dev/null +++ b/tools/sysadmin-devops/Remote Access + SSH Clients.md @@ -0,0 +1,6 @@ +|Name|Vendor/Webpage|GitHub Repo|Brief Description|Tags|Latest Commit| +|---|---|---|---|---|---| +|PuTTY|[https://www.putty.org/](https://www.putty.org/)|โ€” (official mirrors; e.g. [github/putty](https://github.com/github/putty) archived)|SSH and telnet client with GUI, key auth, tunneling, and session management.|[ssh, client, telnet, gui, windows]|~2023 (archived; forks active)| +|Mosh|[https://mosh.org/](https://mosh.org/)|[mobile-shell/mosh](https://github.com/mobile-shell/mosh)|SSH wrapper for persistent, roaming sessions over intermittent connections with predictive local echo.|[ssh, remote, persistent, roaming, cli]|~2022 (stable; occasional fixes)| +|Eternal Terminal|[https://eternalterminal.dev/](https://eternalterminal.dev/)|[MisterTea/EternalTerminal](https://github.com/MisterTea/EternalTerminal)|Reconnectable SSH-like shell with mouse/tmux support and low-latency over unstable links.|[ssh, remote, reconnect, tmux, cli]|~Feb 2026 (recent fixes)| +|mRemoteNG|[https://mremoteng.org/](https://mremoteng.org/)|โ€” (source on SourceForge/GitHub mirrors)|Multi-tabbed, tabbed remote connection manager (fork of mRemote) supporting SSH, RDP, VNC.|[remote, manager, multi-protocol, gui, windows]|Active (ongoing releases)| diff --git a/tools/sysadmin-devops/clients-inspectors/database-clients.md b/tools/sysadmin-devops/clients-inspectors/database-clients.md new file mode 100644 index 0000000..8d97a89 --- /dev/null +++ b/tools/sysadmin-devops/clients-inspectors/database-clients.md @@ -0,0 +1,10 @@ +# Database Clients & Query Tools + +Universal and specialized CLI clients for databases. + +All entries follow โ†’ [TOOL-TABLE-SCHEMA.md](../../TOOL-TABLE-SCHEMA.md) + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|------|----------------|-------------|-------------------|------|---------------|---------------|-------| +| usql | https://github.com/xo/usql | https://github.com/xo/usql | Universal command-line interface for SQL databases. | sql, cli, universal | Active | - | High | +| pgcli | https://github.com/dbcli/pgcli | https://github.com/dbcli/pgcli | Postgres CLI with autocompletion. | postgres, cli | Active | - | High | \ No newline at end of file diff --git a/tools/sysadmin-devops/https-web-services/benchmark-load.md b/tools/sysadmin-devops/https-web-services/benchmark-load.md new file mode 100644 index 0000000..befd12a --- /dev/null +++ b/tools/sysadmin-devops/https-web-services/benchmark-load.md @@ -0,0 +1,17 @@ +# โšก HTTP Benchmarking & Load Testing Tools + +Tools for performance testing, load generation, latency measurement, simulated high traffic, and stress / slow HTTP attack testing on web servers. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|---------------|-----------------------------------------|------------------------------------------------------|-----------------------------------------------------------------------------------|-------------------------------------------|------------------|-----------------|------------------------| +| ab | https://httpd.apache.org/ | โ€” | Single-threaded CLI tool for basic HTTP server benchmarking. | benchmark, http, apache, cli, c | legacy | 1995 | โ€” | +| siege | https://www.joedog.org/siege-home/ | โ€” | HTTP load tester and benchmarking utility with concurrency support. | load, testing, benchmark, http, c | ~2025 | 1999 | โ€” | +| wrk | โ€” | [wg/wrk](https://github.com/wg/wrk) | Modern high-performance HTTP benchmarking tool using evented I/O. | benchmark, http, load, cli, c, lua | ~2025 | 2012-09-10 | 37.8k as of 2026-03 | +| wrk2 | โ€” | [giltene/wrk2](https://github.com/giltene/wrk2) | wrk variant with constant throughput and precise latency recording. | benchmark, http, latency, cli, c | ~2024 | 2015-03-20 | 4.1k as of 2026-03 | +| vegeta | โ€” | [tsenart/vegeta](https://github.com/tsenart/vegeta) | Modern HTTP load tester with constant rate, latency histograms, and JSON output. | benchmark, http, load, cli, go | ~2026 | 2013-10-29 | 23.2k as of 2026-03 | +| bombardier | โ€” | [codesenberg/bombardier](https://github.com/codesenberg/bombardier) | Fast cross-platform HTTP/1.x & HTTP/2 benchmarking tool written in Go. | benchmark, http, load, cli, go | ~2025 | 2016-02-14 | 5.6k as of 2026-03 | +| gobench | โ€” | [cmpxchg16/gobench](https://github.com/cmpxchg16/gobench) | Simple HTTP/HTTPS load testing and benchmarking tool in Go. | benchmark, http, load, cli, go | low activity | 2015-08-12 | ~1.1k as of 2026-03 | +| hey | โ€” | [rakyll/hey](https://github.com/rakyll/hey) | Modern ApacheBench (ab) replacement; HTTP load generator with good concurrency. | benchmark, http, load, cli, go | ~2024 | 2015-11-20 | 17.4k as of 2026-03 | +| boom | โ€” | [tarekziade/boom](https://github.com/tarekziade/boom) | Quick HTTP smoke-test tool for web app deployments and simple load checks. | testing, http, smoke, cli, python | low activity | 2012-04-15 | 1.3k as of 2026-03 | +| SlowHTTPTest | โ€” | [shekyan/slowhttptest](https://github.com/shekyan/slowhttptest) | Application-layer DoS simulation via slow HTTP headers/requests/POSTs. | dos, http, slowloris, testing, security, c | ~2024 | 2011-06-05 | 2.9k as of 2026-03 | +| h2spec | โ€” | [summerwind/h2spec](https://github.com/summerwind/h2spec) | Conformance testing suite for HTTP/2 server implementations. | http2, testing, conformance, cli, go | 2020-08-04 | 2015-04-28 | 1.4k as of 2026-03 | diff --git a/tools/sysadmin-devops/https-web-services/browsers.md b/tools/sysadmin-devops/https-web-services/browsers.md new file mode 100644 index 0000000..5b9b5c7 --- /dev/null +++ b/tools/sysadmin-devops/https-web-services/browsers.md @@ -0,0 +1,13 @@ +# ๐ŸŒ Text-Based & Headless Browsers + +Terminal-friendly browsers (text/TUI) and curated resources for headless browsersโ€”useful for scraping, automation, testing, lightweight access, or low-resource environments. + +# ๐ŸŒ Text-Based & Headless Browsers + +Terminal-friendly browsers (text/TUI) and curated resources for headless browsersโ€”useful for scraping, automation, testing, lightweight access, or low-resource environments. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Creation Date | Latest Commit | Stars | +| ---------------- | ------------------------- | ------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ----------------------------------- | ------------- | ------------- | ----- | +| Lynx | https://lynx.browser.org/ | โ€” | Classic, lightweight text-based browser for the web; keyboard-driven, no JS by default. | browser, text, terminal, classic, c | 1992-07-22 | 2024-05-31 | โ€” | +| Browsh | โ€” | [browsh-org/browsh](https://github.com/browsh-org/browsh) | Modern text-based browser with real-time rendering, JS support, and interactive TUI. | browser, text, tui, modern, go | 2016-04-23 | 2025-07-11 | 18.6k | +| HeadlessBrowsers | โ€” | [dhamaniasad/HeadlessBrowsers](https://github.com/dhamaniasad/HeadlessBrowsers) | Curated awesome-style list of headless browsers and automation tools. | headless, browser, list, resource | 2015-11-11 | 2025-10-12 | 6.5k | diff --git a/tools/sysadmin-devops/https-web-services/clients-inspectors.md b/tools/sysadmin-devops/https-web-services/clients-inspectors.md new file mode 100644 index 0000000..391ef54 --- /dev/null +++ b/tools/sysadmin-devops/https-web-services/clients-inspectors.md @@ -0,0 +1,13 @@ +# ๐Ÿ” HTTP Clients & Inspectors + +Modern CLI clients and tools for crafting, inspecting, profiling, and troubleshooting HTTP/HTTPS requests. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-----------|-----------------------------|------------------------------------------------------|-----------------------------------------------------------------------------------|-------------------------------------------|------------------|-----------------|------------------------| +| curl | https://curl.se/ | โ€” | Command line tool and library for transferring data with URLs supporting many protocols. | http, client, cli, curl, c | 2026-01 (8.18.0) | 1996 | โ€” | +| kurly | โ€” | [davidjpeacock/kurly](https://github.com/davidjpeacock/kurly) | Alternative to curl written in Golang (low activity / possibly archived). | http, client, cli, go, alternative | ~2018 | ~2017 | โ€” (low visibility) | +| HTTPie | https://httpie.io/ | [httpie/cli](https://github.com/httpie/cli) | User-friendly HTTP client with JSON support, syntax highlighting, sessions, plugins. | http, client, cli, modern, python | 2024-12-17 | 2019-08-30 | 37.6k as of 2026-03 | +| wuzz | โ€” | [asciimoo/wuzz](https://github.com/asciimoo/wuzz) | Interactive CLI TUI tool for crafting and inspecting HTTP requests live. | http, inspector, tui, cli, go | ~2021 | ~2016 | 10.7k as of 2026-03 | +| httpstat | โ€” | [reorx/httpstat](https://github.com/reorx/httpstat) | Visualizes curl timing statistics with beautiful timelines and breakdowns. | http, stats, visualization, cli, python | ~2020 | ~2016 | 6.3k as of 2026-03 | +| htrace.sh| โ€” | [trimstray/htrace.sh](https://github.com/trimstray/htrace.sh) | Swiss Army knife bash script for HTTP/HTTPS troubleshooting and profiling. | http, profiler, troubleshooting, bash, cli| ~2025 | ~2018 | 3.9k as of 2026-03 | +| Hurl | https://hurl.dev/ | [Orange-OpenSource/hurl](https://github.com/Orange-OpenSource/hurl) | Run and test HTTP requests defined in plain-text format; supports chaining and assertions. | http, testing, cli, hurl, rust | ~2026 | ~2020 | โ€” (check repo) | diff --git a/tools/sysadmin-devops/https-web-services/security-hardening.md b/tools/sysadmin-devops/https-web-services/security-hardening.md new file mode 100644 index 0000000..f85fea3 --- /dev/null +++ b/tools/sysadmin-devops/https-web-services/security-hardening.md @@ -0,0 +1,10 @@ +# ๐Ÿ” Web Security, Hardening & Scanning Tools + +Utilities for hardening server configs, scanning security headers/SSL/TLS setups, and basic web reconnaissance (directory/DNS busting). + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------|----------------|------------------------------------------------------|-----------------------------------------------------------------------------------|-------------------------------------------|------------------|-----------------|------------------------| +| h2t | โ€” | [gildasio/h2t](https://github.com/gildasio/h2t) | Simple tool to scan websites and suggest security headers (with HTTP/2 focus). | http, hardening, security, headers, cli, python | low activity | ~2019 | 410 as of 2026-03 | +| ssllabs-scan | โ€” | [ssllabs/ssllabs-scan](https://github.com/ssllabs/ssllabs-scan) | CLI client for Qualys SSL Labs API to assess and grade SSL/TLS configurations. | ssl, tls, scan, security, api, cli, go | 2024-03-27 | 2014 | 1.8k as of 2026-03 | +| http-observatory | โ€” | [mozilla/http-observatory](https://github.com/mozilla/http-observatory) | CLI tool to scan websites for security headers and best practices (Mozilla Observatory). | security, headers, observatory, scan, cli, python | 2024-10-22 | 2016 | 1.9k as of 2026-03 | +| gobuster | โ€” | [OJ/gobuster](https://github.com/OJ/gobuster) | Fast directory/file, DNS, and virtual host brute-forcing/busting tool. | busting, directory, dns, recon, cli, go | 2026-01-13 | ~2017 | 13.5k as of 2026-03 | diff --git a/tools/sysadmin-devops/system-monitoring-tracing/INDEX.md b/tools/sysadmin-devops/system-monitoring-tracing/INDEX.md new file mode 100644 index 0000000..d33b0cd --- /dev/null +++ b/tools/sysadmin-devops/system-monitoring-tracing/INDEX.md @@ -0,0 +1,19 @@ +# System Monitoring & Tracing Index + +Tools, utilities, and resources for system observability: log collection/analysis/visualization, metrics monitoring, distributed tracing, performance profiling, debugging utilities, real-time diagnostics, and alerting integrations โ€” focused on production and troubleshooting workflows. + +All tool/resource tables in this section **must** follow โ†’ [TOOL-TABLE-SCHEMA.md](../../../../TOOL-TABLE-SCHEMA.md) + +## Contents + +- **[Log Analyzers.md](./Log%20Analyzers.md)** โ€” Log parsers, aggregators, visualizers, grep alternatives, structured log processors (e.g., jq patterns, goaccess, lnav, glogg, etc.) +- **[system-diagnostics-debuggers.md](./system-diagnostics-debuggers.md)** โ€” Low-level system debuggers, strace/ltrace variants, perf tools, eBPF-based tracers, core dump analyzers, process inspectors + +## Quick Navigation + +- โ†‘ [Back to Sysadmin / DevOps Index](../INDEX.md) +- โ†‘ [Back to Tools Root](../../../_INDEX.md) +- โ†‘ [Back to Repository Root../../../../README.md) +- โ†’ [Schema Rules](../../../../TOOL-TABLE-SCHEMA.md) +- โ†’ [Navigation SOP](../../../../SOP-Navigation-and-Layout.md) +- โ†’ [Security Index](../../../security/INDEX.md) \ No newline at end of file diff --git a/tools/sysadmin-devops/system-monitoring-tracing/Log Analyzers.md b/tools/sysadmin-devops/system-monitoring-tracing/Log Analyzers.md new file mode 100644 index 0000000..ff136d1 --- /dev/null +++ b/tools/sysadmin-devops/system-monitoring-tracing/Log Analyzers.md @@ -0,0 +1,10 @@ +# ๐Ÿ“Š Log Analyzers + +CLI tools for parsing, viewing, aggregating, real-time monitoring, and analyzing log files/streams (general, web server, nginx-specific). + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-----------------|-----------------------------|------------------------------------------------------|-----------------------------------------------------------------------------------|-------------------------------------------|------------------|-----------------|------------------------| +| angle-grinder | โ€” | [rcoh/angle-grinder](https://github.com/rcoh/angle-grinder) | CLI tool to parse, aggregate, compute stats (sum/avg/percentiles), and slice/dice logs in real time (JSON/logfmt/generic). | log-analysis, cli, aggregation, real-time, rust | 2025-03-29 | ~2018 | 3.7k as of 2026-03 | +| lnav | https://lnav.org/ | [tstack/lnav](https://github.com/tstack/lnav) | Advanced terminal log navigator with auto-format detection, merging, tailing, search, filtering, SQLite queries, and TUI. | log-analysis, cli, tui, viewer, search, sqlite, c++ | 2026-03-07 | 2009-09-13 | 9.7k as of 2026-03 | +| GoAccess | https://goaccess.io/ | [allinurl/goaccess](https://github.com/allinurl/goaccess) | Real-time interactive terminal/web analyzer for HTTP access logs (visitors, requests, bandwidth, referrers; HTML/JSON/CSV output). | log-analysis, cli, real-time, web-logs, http, analytics, viewer, c | 2026-03-03 | 2009 | 20.3k as of 2026-03 | +| ngxtop | โ€” | [lebinh/ngxtop](https://github.com/lebinh/ngxtop) | Real-time top-like metrics viewer for nginx (and compatible) access logs (requests, status, upstreams, bandwidth). | log-analysis, cli, real-time, nginx, web-logs, monitoring, python | 2026-03-01 | 2014-03-24 | 6.5k as of 2026-03 | diff --git a/tools/sysadmin-devops/system-monitoring-tracing/system-diagnostics-debuggers.md b/tools/sysadmin-devops/system-monitoring-tracing/system-diagnostics-debuggers.md new file mode 100644 index 0000000..4d790e2 --- /dev/null +++ b/tools/sysadmin-devops/system-monitoring-tracing/system-diagnostics-debuggers.md @@ -0,0 +1,27 @@ +# System Diagnostics / Debuggers / Performance Analysis + +Classic and modern tools for tracing, debugging, profiling, and system-level diagnostics on Linux/Unix-like systems. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +| -------------------- | -------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------- | ---------------- | ------------- | ----- | +| strace | https://strace.io/ | [strace/strace](https://github.com/strace/strace) | Diagnostic, debugging, and instructional userspace syscall tracer for Linux. | [tracer, debugger, syscall, linux, cli, c] | 2026-02-19 | 1992-03-14 | 2.6k | +| DTrace | http://dtrace.org/ | โ€” | Dynamic tracing framework for performance analysis and troubleshooting. | [tracer, performance, kernel, solaris, bsd, dtrace] | ~2025-12 | 2001 | โ€” | +| ltrace | โ€” | โ€” | Library call tracer for programs' calls to shared libraries. | [tracer, library, debugger, linux, cli, c] | โ€” | ~1997 | โ€” | +| ptrace-burrito | โ€” | [brainsmoke/ptrace-burrito](https://github.com/brainsmoke/ptrace-burrito) | Friendly high-level wrapper around ptrace(2) for process tracing. | [ptrace, wrapper, debugger, cli, rust] | ~2023 | 2019 | ~100 | +| perf-tools | http://www.brendangregg.com/perf-tools.html | [brendangregg/perf-tools](https://github.com/brendangregg/perf-tools) | Performance analysis scripts using Linux perf_events and ftrace. | [perf, ftrace, tracing, performance, bash, linux] | ~2024-05 | 2014 | 2.8k | +| bpftrace | https://bpftrace.org/ | [iovisor/bpftrace](https://github.com/iovisor/bpftrace) | High-level tracing language for Linux eBPF. | [ebpf, tracing, bpf, performance, cli, cpp] | 2026-03 (active) | 2018 | 8.5k | +| sysdig | https://sysdig.com/ | [draios/sysdig](https://github.com/draios/sysdig) | System exploration and troubleshooting with deep container support. | [tracing, monitoring, container, ebpf, cli, cpp] | 2026-02 | 2014 | 8.1k | +| Valgrind | https://valgrind.org/ | โ€” | Instrumentation framework for memory debugging, profiling, and leak detection. | [debugger, profiler, memory, valgrind, c] | ~2025-11 | 2002 | โ€” | +| gperftools | https://google.github.io/gperftools/ | [gperftools/gperftools](https://github.com/gperftools/gperftools) | High-performance malloc plus CPU/heap profilers (pprof). | [profiler, malloc, performance, cpp, google] | 2026-01 | 2005 | 4.2k | +| glances | https://nicolargo.github.io/glances/ | [nicolargo/glances](https://github.com/nicolargo/glances) | Cross-platform curses-based system monitoring dashboard. | [monitoring, dashboard, python, cli, cross-platform] | 2026-03 | 2012 | 25k | +| htop | โ€” | [htop-dev/htop](https://github.com/htop-dev/htop) | Interactive process viewer, improved version of top. | [monitor, process, viewer, cli, c] | 2026-02 | 2004 | 6.5k | +| bashtop | โ€” | [aristocratos/bashtop](https://github.com/aristocratos/bashtop) | Linux resource monitor written in pure Bash. | [monitor, bash, resource, cli, linux] | ~2023 | 2019 | 10k | +| nmon | http://nmon.sourceforge.net/ | โ€” | Performance monitoring and data analysis tool (single binary). | [monitor, performance, aix, linux, cli, c] | ~2024 | 1990s | โ€” | +| atop | https://www.atoptool.nl/ | โ€” | ASCII full-system performance monitor with process-level logging. | [monitor, performance, logging, cli, c] | 2025-10 | 2003 | โ€” | +| lsof | โ€” | โ€” | Lists open files and the processes using them. | [files, process, open, cli, c] | โ€” | 1990s | โ€” | +| FlameGraph | http://www.brendangregg.com/flamegraphs.html | [brendangregg/FlameGraph](https://github.com/brendangregg/FlameGraph) | Stack trace visualizer for profiled data (flame graphs). | [visualizer, profiler, flamegraph, perl, visualization] | 2026-01 | 2011 | 17k | +| lsofgraph | โ€” | [zevv/lsofgraph](https://github.com/zevv/lsofgraph) | Converts lsof output to graphs of FIFO/UNIX socket connections. | [graph, visualization, lsof, perl] | ~2020 | 2015 | ~200 | +| rr | https://rr-project.org/ | [mozilla/rr](https://github.com/mozilla/rr) | Lightweight record-and-replay debugger for deterministic execution replay. | [debugger, replay, record, cpp, linux] | 2026-02 | 2011 | 9.8k | +| Performance Co-Pilot | https://pcp.io/ | โ€” | System performance analysis toolkit with metrics collection and visualization. | [monitoring, metrics, performance, pcp, c] | ~2025-09 | 1990s | โ€” | +| hexyl | โ€” | [sharkdp/hexyl](https://github.com/sharkdp/hexyl) | Colorful command-line hex viewer with highlighting. | [hex, viewer, cli, rust] | 2025-12 | 2017 | 9.5k | +| Austin | โ€” | [p403n1x87/austin](https://github.com/p403n1x87/austin) | Python frame stack sampler and profiler for CPython. | [profiler, python, sampler, cli, rust] | 2026-01 | 2020 | 1.2k | \ No newline at end of file diff --git a/tools/sysadmin-devops/terminal-shell-productivity/Files & Directories.md b/tools/sysadmin-devops/terminal-shell-productivity/Files & Directories.md new file mode 100644 index 0000000..e84bd84 --- /dev/null +++ b/tools/sysadmin-devops/terminal-shell-productivity/Files & Directories.md @@ -0,0 +1,7 @@ +## Filesystem & Disk +- Disk usage/analyzers, mount/umount helpers, secure delete/wipe, inotify tools + +|Name|Vendor/Webpage|GitHub Repo|Brief Description|Tags|Latest Commit| +|---|---|---|---|---|---| +|fd|โ€”|[sharkdp/fd](https://github.com/sharkdp/fd)|Simple, fast and user-friendly alternative to find.|[find, search, filesystem, rust, cli]|2026-02-15| +|ncdu|[https://dev.yorhel.nl/ncdu](https://dev.yorhel.nl/ncdu)|โ€”|Easy to use, fast disk usage analyzer with curses UI.|[disk, usage, analyzer, tui, cli]|~2025| diff --git a/tools/sysadmin-devops/terminal-shell-productivity/Shells.md b/tools/sysadmin-devops/terminal-shell-productivity/Shells.md new file mode 100644 index 0000000..fb8628c --- /dev/null +++ b/tools/sysadmin-devops/terminal-shell-productivity/Shells.md @@ -0,0 +1,33 @@ +# ๐Ÿš Shells & Prompting + +Interactive shells, modern enhancers, customizable prompts, plugins, fuzzy finders, and directory jump tools for improved CLI productivity and workflow. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------|-----------------------------|------------------------------------------------------|-----------------------------------------------------------------------------------|-------------------------------------------|------------------|-----------------|------------------------| +| GNU Bash | https://www.gnu.org/software/bash/ | โ€” | sh-compatible shell with ksh/csh-inspired features; the default on most Unix-like systems. | shell, bash, cli, scripting, gnu | 2025-12 | 1989 | โ€” | +| Zsh | https://www.zsh.org/ | โ€” | Advanced interactive shell and powerful scripting language with extensive completion. | shell, zsh, interactive, cli, scripting | 2025-11 | 1990 | โ€” | +| Starship | https://starship.rs | [starship/starship](https://github.com/starship/starship) | Fast, minimal, highly customizable cross-shell prompt written in Rust. | prompt, rust, cross-shell, productivity, customizable | 2026-03-05 | 2019 | 54.6k as of 2026-03 | +| powerlevel10k | โ€” | [romkatv/powerlevel10k](https://github.com/romkatv/powerlevel10k) | Very fast Zsh theme with extensive customization and instant prompt wizard. | zsh, theme, prompt, performance, fast | 2026-01-28 | 2019-03 | ~40k as of 2026-03 | +| Oh My Zsh | https://ohmyz.sh/ | [ohmyzsh/ohmyzsh](https://github.com/ohmyzsh/ohmyzsh) | Popular community framework for Zsh configuration with 300+ plugins and 140+ themes. | zsh, framework, plugins, productivity, themes | 2026-03-06 | 2009 | 185k as of 2026-03 | + +## Shell Plugins + +Frecency jumpers, fuzzy finders, autosuggestions, syntax highlighting, and other lightweight Zsh extensions. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|----------------------------|----------------|------------------------------------------------------|-----------------------------------------------------------------------------------|-------------------------------------------|------------------|-----------------|------------------------| +| z | โ€” | [rupa/z](https://github.com/rupa/z) | Frecency-based directory jumper using cd history for fast navigation. | navigation, jump, shell, zsh, bash | 2023-12-09 | ~2010 | ~16k as of 2026-03 | +| fzf | โ€” | [junegunn/fzf](https://github.com/junegunn/fzf) | General-purpose command-line fuzzy finder for files, commands, git, etc. | fuzzy, finder, cli, productivity, go | 2026-03-07 | 2015 | 78.4k as of 2026-03 | +| zsh-autosuggestions | โ€” | [zsh-users/zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions) | Fish-style autosuggestions for Zsh based on history. | zsh, plugin, autosuggest, completion | 2025-06 | 2014 | ~30k as of 2026-03 | +| zsh-syntax-highlighting | โ€” | [zsh-users/zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting) | Fish-like syntax highlighting for Zsh commands in the terminal. | zsh, plugin, highlighting, syntax | 2025-04 | 2012 | ~20k as of 2026-03 | + +## Terminal & Multiplexing Utils + +Fast modern replacements for classic CLI tools (grep/find/cat/diff) often used in shells/terminals; includes search, navigation, viewing, and diffing enhancers. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-----------|----------------|------------------------------------------------------|-----------------------------------------------------------------------------------|-------------------------------------------|------------------|-----------------|------------------------| +| ripgrep | โ€” | [BurntSushi/ripgrep](https://github.com/BurntSushi/ripgrep) | Recursively searches directories very fast while respecting .gitignore (rg command). | search, grep-alternative, rust, cli | 2026-02 | 2016-02-27 | 60.6k as of 2026-03 | +| fd | โ€” | [sharkdp/fd](https://github.com/sharkdp/fd) | Simple, fast, user-friendly alternative to find with colorized output and ignores. | find, filesystem, rust, cli | 2026-01 | ~2017 | ~35k as of 2026-03 | +| bat | โ€” | [sharkdp/bat](https://github.com/sharkdp/bat) | cat clone with syntax highlighting, Git integration, and line numbers. | syntax-highlighter, viewer, rust, cli | 2026-03 | ~2017 | ~50k as of 2026-03 | +| delta | โ€” | [dandavison/delta](https://github.com/dandavison/delta) | Beautiful syntax-highlighting pager for git diff and other tools. | diff, git, pager, rust, cli | 2026-02 | ~2019 | ~25k as of 2026-03 | diff --git a/tools/sysadmin-devops/terminal-shell-productivity/Terminal Emulators.md b/tools/sysadmin-devops/terminal-shell-productivity/Terminal Emulators.md new file mode 100644 index 0000000..b81a7ab --- /dev/null +++ b/tools/sysadmin-devops/terminal-shell-productivity/Terminal Emulators.md @@ -0,0 +1,16 @@ +# ๐Ÿ–ฅ๏ธ Terminal Emulators, File Managers & Multiplexers + +Modern and classic terminal emulators (GPU-accelerated/fast), dropdown/tiling terminals, TUI file managers (dual-pane/minimal/vim-like), and session multiplexers (tmux/screen) plus cluster tools. + +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | Creation Date | Stars | +|-------------------|---------------------------------------|------------------------------------------------------|-----------------------------------------------------------------------------------|-------------------------------------------|------------------|-----------------|------------------------| +| Alacritty | https://alacritty.org/ | [alacritty/alacritty](https://github.com/alacritty/alacritty) | Cross-platform, GPU-accelerated terminal emulator focused on simplicity and speed. | terminal, gpu, fast, cross-platform, rust | 2026-03-05 | 2017 | 62.8k as of 2026-03 | +| Guake | https://github.com/Guake/guake | [Guake/guake](https://github.com/Guake/guake) | Dropdown/quake-style terminal that drops from top on hotkey (GNOME integration). | terminal, dropdown, gnome, productivity, python | 2025-11-15 | ~2008 | ~2.5k as of 2026-03 | +| Kitty | https://sw.kovidgoyal.net/kitty/ | [kovidgoyal/kitty](https://github.com/kovidgoyal/kitty) | GPU-accelerated terminal with smooth scrolling, image protocol, ligatures, kittens (plugins). | terminal, gpu, fast, images, cross-platform, python | 2026-03-05 | 2016 | ~25k as of 2026-03 | +| Midnight Commander | https://midnight-commander.org/ | [MidnightCommander/mc](https://github.com/MidnightCommander/mc) | Visual dual-pane file manager with built-in viewer, editor, and subshell support. | file-manager, tui, ncurses, classic, c | 2026-03-06 | 1994 (2009 repo)| 754 as of 2026-03 | +| nnn | โ€” | [jarun/nnn](https://github.com/jarun/nnn) | Tiny, lightning-fast, feature-packed terminal file manager with plugins support. | file-manager, tui, minimal, c, fast | 2026-02-23 | 2016 | 21.4k as of 2026-03 | +| ranger | โ€” | [ranger/ranger](https://github.com/ranger/ranger) | Vim-inspired console file manager with multi-pane view, previews, and extensibility. | file-manager, tui, vim-like, python | 2026-02-25 | 2009 | 17k as of 2026-03 | +| screen | https://www.gnu.org/software/screen/ | โ€” | Full-screen window manager that multiplexes physical terminals (legacy but stable). | multiplexer, session, terminal, gnu, c | ~2024 | 1987 | โ€” | +| Terminator | https://gnometerminator.blogspot.com/| [gnome-terminator/terminator](https://github.com/gnome-terminator/terminator) | Multi-pane terminal splitter with broadcast input, layouts, and sysadmin features. | terminal, multi-pane, splitter, gnome, python | 2025-10-20 | ~2006 | ~2.1k as of 2026-03 | +| tmux | โ€” | [tmux/tmux](https://github.com/tmux/tmux) | Terminal multiplexer for easy session management, window/pane switching, persistence. | multiplexer, session, tmux, c, active | 2026-03-06 | 2007 | 42.7k as of 2026-03 | +| tmux-cssh | โ€” | [peikk0/tmux-cssh](https://github.com/peikk0/tmux-cssh) | Tool for comfortable cluster SSH sessions using tmux panes (mirror of GitLab). | tmux, cssh, cluster, ssh, python | ~2023 | ~2015 | ~500 as of 2026-03 | diff --git a/tools/sysadmin-devops/terminal-shell-productivity/Text Editors.md b/tools/sysadmin-devops/terminal-shell-productivity/Text Editors.md new file mode 100644 index 0000000..93eeed5 --- /dev/null +++ b/tools/sysadmin-devops/terminal-shell-productivity/Text Editors.md @@ -0,0 +1,9 @@ +| Name | Vendor/Webpage | GitHub Repo | Brief Description | Tags | Latest Commit | +| --------- | -------------------------------------------------------------------------- | --------------------------------------------------- | -------------------------------------------------------------- | ----------------------------------------- | ------------- | +| vi | [http://ex-vi.sourceforge.net/](http://ex-vi.sourceforge.net/) | โ€” | One of the most common text editors on Unix. | [editor, terminal, classic, unix] | โ€” | +| vim | [https://www.vim.org/](https://www.vim.org/) | โ€” | Highly configurable text editor built on vi. | [editor, terminal, extensible, vimscript] | ~2025 | +| emacs | [https://www.gnu.org/software/emacs/](https://www.gnu.org/software/emacs/) | โ€” | Extensible, customizable free/libre text editor and more. | [editor, terminal, gui, lisp, extensible] | ~2025 | +| micro | โ€” | [zyedidia/micro](https://github.com/zyedidia/micro) | Modern and intuitive terminal-based text editor. | [editor, terminal, modern, go] | 2025-12-20 | +| neovim | [https://neovim.io/](https://neovim.io/) | โ€” | Free open source, powerful, extensible code editor (vim fork). | [editor, terminal, lua, modern] | ~2026 | +| spacemacs | [https://www.spacemacs.org/](https://www.spacemacs.org/) | โ€” | Community-driven Emacs distribution with vim-like keybindings. | [editor, emacs, distribution, community] | ~2025 | +| spacevim | [https://spacevim.org/](https://spacevim.org/) | โ€” | Community-driven vim distribution with plugin layers. | [editor, vim, distribution, community] | ~2025 | diff --git a/tools/system-services.md b/tools/system-services.md new file mode 100644 index 0000000..e69de29