the-book-of-secret-knowledge - 这个存储库是我每天在工作中使用的各种材料和工具的集合。

Created at: 2018-06-23 18:43:14
Language:
License: MIT

主人

"知识是强大的,小心你如何使用它!"

一系列鼓舞人心的列表、手册、备忘单、博客、黑客、单行、cli/web 工具等。


拉取请求  MIT 许可证

trimstray贡献者创建


📔 这是什么?

这个存储库是我每天在工作中使用的各种材料和工具的集合。它包含许多收集在一起的有用信息。对我来说,这是一个宝贵的知识来源,我经常回顾。

🚻 为了谁?

对每个人来说,真的。在这里,每个人都可以找到自己喜欢的口味。但老实说,它针对的是系统和网络管理员、DevOps、渗透测试人员和安全研究人员。

i️ 贡献

如果你发现某些内容没有意义,或者某些内容看起来不对劲,请提出拉取请求,并请添加有关你的更改或评论的有效且合理的解释。

此项目的一些简单规则:

  • 引人入胜,清晰明了
  • 不累
  • 有用

以下这些规则可能更好:

  • 易于贡献 (Markdown + HTML ...
  • 很容易找到(简单的 TOC,也许值得扩展它们?

标记为 * 的 URL 暂时不可用。请不要在确认它已永久过期的情况下删除它。

在添加拉取请求之前,请参阅贡献指南。你还应该记住这一点:

+ This repository is not meant to contain everything but only good quality stuff.

欢迎所有建议/公关

代码贡献者

这个项目的存在要感谢所有做出贡献的人。

财务贡献者

📰 RSS订阅和更新

GitHub 公开了提交的 RSS/Atom 源,如果你想随时了解所有更改,这也可能很有用。

☑️ 待办事项

  • [ ] 添加新内容...
  • [ ] 添加有用的 shell 函数
  • [ ] 为收集工具添加单行代码(例如。CLI 工具)
  • [ ] 列表中的排序顺序

还会定期添加新项目。

💢 目录

仅主要章节:

🔱 秘密知识之书(章节)

CLI 工具 [TOC]

▪️ 壳

   GNU Bash - 是一个兼容 sh 的 shell,它结合了 Korn shell 和 C shell 的有用功能。
Zsh - 是一个专为交互使用而设计的 shell,尽管它也是一种强大的脚本语言。
TCLSH - 是一个非常强大的跨平台 shell,适用于广泛的用途。
bash-it - 是一个用于使用、开发和维护 shell 脚本和自定义命令的框架。
Oh My ZSH!: - 是管理 Zsh 配置的最佳框架。
Oh My Fish - 鱼壳框架。
Starship - 用 Rust 编写的跨壳提示。
powerlevel10k - 是 Powerlevel9k ZSH 主题的快速重新实现。

▪️ Shell 插件

   z - 跟踪你最常使用的文件夹并允许你跳转,而无需键入整个路径。
fzf - 是一个通用的命令行模糊查找器。
zsh-autosuggestions - Zsh 的类似鱼的自动建议。
zsh-syntax-highlighting - Zsh 的类似鱼壳的语法高亮显示. Awesome ZSH Plugins - ZSH 的框架、插件、主题和教程列表.

▪️ 经理

   Midnight Commander - 是一个可视化文件管理器,根据 GNU 通用公共许可证获得许可。
ranger - 是一个受 VIM 启发的控制台文件管理器。
NNN - 是一个小巧、闪电般快速、功能丰富的文件管理器。
screen - 是一个全屏窗口管理器,用于多路复用物理终端。
TMUX - 是一个终端多路复用器,可让你在一个终端中的多个程序之间轻松切换。
tmux-cssh - 是一个设置舒适且易于使用的功能的工具 tmux-sessions.

▪️ 文本编辑器

   vi - 是 Unix 上最常见的文本编辑器之一。
vim - 是一个高度可配置的文本编辑器.
Emacs - 是一个可扩展的、可定制的、免费/自由的文本编辑器等。
Micro - 是一个现代且直观的基于终端的文本编辑器。
neovim - 是一个免费的开源、强大、可扩展且可用的代码编辑器。
spacemacs - 社区驱动的 Emacs 发行版。
spacevim - 社区驱动的 vim 发行版.

▪️ 文件和目录

   FD - 是一种简单、快速且用户友好的查找替代方案。
NCDU - 是一个易于使用、快速的磁盘使用分析器。

▪️ 网络

   PuTTY - 是一个 SSH 和 telnet 客户端,最初由 Simon Tatham 开发。
Mosh - 是一个 SSH 包装器,旨在通过易失性连接保持 SSH 会话处于活动状态。
永恒终端 - 在 SSH 会话中启用鼠标滚动和 tmux 命令。
nmap - 是一个免费的开源(许可证)实用程序,用于网络发现和安全审计。
zmap - 是一款快速的单数据包网络扫描器,专为互联网范围的网络调查而设计。
Rust Scan - 找到所有打开的端口的速度比 Nmap 更快。
masscan - 是最快的 Internet 端口扫描器,异步喷出 SYN 数据包。
pbscan - 是一种更快、更高效的无状态 SYN 扫描器和横幅抓取器。
hping - 是一个面向命令行的 TCP/IP 数据包汇编器/分析器。
MTR - 是一种将“TraceRoute”和“ping”程序的功能结合在一个工具中的工具。
mylg - 将不同网络探针的功能组合在一个诊断工具中的实用程序.
netcat - 使用 TCP/IP 协议跨网络连接读取和写入数据的实用程序。
socat - 在两个对象之间传输数据的实用程序。
tcpdump - 是一个功能强大的命令行数据包分析器。
tshark - 是一种允许我们转储和分析网络流量的工具 (wireshark cli).
Termshark - 是 tshark 的简单终端用户界面。
ngrep - 就像应用于网络层的 GNU grep。
netsniff-ng - 如果你愿意的话,它是一把瑞士军刀,用于你的日常 Linux 网络管道。
sockdump - 转储 UNIX 域套接字流量.
速记员 - 是一种数据包捕获解决方案,旨在将所有数据包快速后台打印到磁盘。
tcpterm - 在 TUI 中可视化数据包。
BMON - 是一个监视和调试工具,用于捕获与网络相关的统计信息并直观地准备它们。
iptraf-ng - 是一个基于控制台的 Linux 网络监控程序,可显示有关 IP 流量的信息。
vnstat - 是 Linux 和 BSD 的网络流量监控器。
iPerf3 - 是一种用于主动测量 IP 网络上最大可实现带宽的工具。
ETHR - 是用于TCP,UDP和HTTP的网络性能测量工具。
Etherate - 是一个基于Linux CLI的以太网和MPLS流量测试工具。
echoip - 是一个 IP 地址查找服务。
Nemesis - 数据包操作 CLI 工具;制作和注入多个协议的数据包。
packetfu - Ruby 的中级数据包操作库.
Scapy - 数据包操作库;锻造,S结束、解码、捕获大量协议的数据包。
impacket - 是用于处理网络协议的 Python 类的集合。
ssh-audit - 是用于 SSH 服务器审计的工具。
Aria2 - 是一个轻量级的多协议和多源命令行下载实用程序。
iptables-tracer - 观察数据包通过 iptables 链的路径。
Inception - 一个高度可配置的工具,用于检查任意数量的主机。
mRemoteNG - mRemote的分支,类固醇上的多标签PuTTy!

▪️ 网络 (DNS)

   dnsdiag - 是一个DNS诊断和性能测量工具。
fierce - 是用于定位非连续 IP 空间的 DNS 侦测工具。
Subfinder - 是一种子域发现工具,用于发现网站的有效子域。
sublist3r - 是渗透测试人员的快速子域枚举工具。
Amass - 是一种通过抓取数据源、抓取 Web 档案等来获取子域名的工具。
namebench - 根据你的浏览历史记录提供个性化的 DNS 服务器推荐。
massdns - 是一个高性能的DNS存根解析器,用于批量查找和侦察。
knock - 是一种通过单词列表枚举目标域上的子域的工具。
dnsperf -DNS性能测试工具.
dnscrypt-proxy 2 - 灵活的DNS代理,支持加密的DNS协议。
dnsdbq - 提供对被动 DNS 数据库系统的访问的 API 客户端。
grimd -快速DNS代理,专为黑洞互联网广告和恶意软件服务器而构建.
DNSTWIST - 检测域名抢注者、网络钓鱼攻击、欺诈和品牌冒充。

▪️ 网络 (HTTP)

   curl - 是一个命令行工具和库,用于使用 URL 传输数据。
kurly - 是用 Golang 编写的广受欢迎的 curl 程序的替代品。
HTTPie - 是一个用户友好的 HTTP 客户端。
wuzz - 是一个用于 HTTP 检查的交互式 cli 工具。
h2spec - 是用于 HTTP/2 实现的一致性测试工具。
H2T - 是一个简单的工具,可帮助系统管理员强化他们的网站。
htrace.sh - 是一把简单的瑞士军刀,用于 http/https 故障排除和分析。
httpstat - 是一种以美观和清晰的方式可视化卷曲统计的工具。
httplab - 是一个交互式 Web 服务器。
Lynx - 是万维网的文本浏览器。
Browsh - 是一个完全交互式、实时和现代的基于文本的浏览器。
HeadlessBrowsers - (几乎)所有存在的无头 Web 浏览器的列表。
ab - 是一个单线程命令行工具,用于测量 HTTP Web 服务器的性能。
Siege - 是一个 HTTP 负载测试和基准测试实用程序。
wrk - 是一个现代的 HTTP 基准测试工具,能够产生大量负载。
WRK2 - 是 WRK 的恒定吞吐量、正确的延迟记录变体。
Vegeta - 是 WRK 的恒定吞吐量、正确的延迟记录变体。
bombardier - 是一个用 Go 编写的快速跨平台 HTTP 基准测试工具.
Gobench -HTTP / HTTPS负载测试和基准测试工具.
hey - HTTP 负载生成器,ApacheBench (ab) 替换,以前称为 rakyll/boom。
Boom - 是一个脚本,可用于快速冒烟测试 Web 应用部署。
SlowHTTPTest - 是一种通过延长 HTTP 来模拟某些应用层拒绝服务攻击的工具。
gobuster - 是一个免费的开源目录/文件和 DNS 破坏工具,用 Go 编写。
ssllabs-scan -SSL Labs API的命令行参考实现客户端.
http-observatory -Mozilla HTTP Observatory cli 版本.
Hurl - 是一个命令行工具,用于运行和测试纯文本的 HTTP 请求。

▪️ SSL协议

   openssl - 是一个强大的、商业级的、功能齐全的工具包,用于 TLS 和 SSL 协议。
gnutls-cli - 用于设置与其他计算机的 TLS 连接的客户端程序。
sslyze - 快速而强大的 SSL/TLS 服务器扫描库.
sslscan - 测试启用了 SSL/TLS 的服务,以发现支持的密码套件。
testssl.sh - 在任何端口上的任何位置测试 TLS/SSL 加密。
cipherscan - 一种非常简单的方法,用于找出目标支持哪些 SSL 密码套件。
spiped - 是一个实用程序,用于在套接字地址之间创建对称加密和经过身份验证的管道。
Certbot - 是 EFF 的工具,用于从 Let's Encrypt 获取证书并(可选)在服务器上自动启用 HTTPS。
mkcert -简单的零配置工具,用于使用你想要的任何名称制作本地可信的开发证书.
certstrap - 用于引导 CA、证书请求和签名证书的工具。
Sublert - 是一种安全和侦察工具,用于自动监控新的子域。
mkchain - 帮助你构建有效SSL证书链的开源工具。
ssl-cert-check -SSL证书过期检查器.

▪️ 安全

   SELinux - 提供灵活的强制访问控制 (MAC) 系统,内置于 Linux 内核中。
AppArmor - 主动保护操作系统和应用程序免受外部或内部威胁。
grapheneX - 自动化系统强化框架。
DevSec 强化框架 - 安全性 + DevOps:自动服务器强化。

▪️ 审计工具

   OSSEC - 通过文件完整性监控主动监控系统活动的各个方面。
auditd - 提供一种跟踪系统上与安全相关的信息的方法。
Tiger - 是一种安全工具,既可以用作安全审计,也可以用作入侵检测系统。
Lynis - 久经考验的安全工具,适用于运行 Linux、macOS 或基于 Unix 的操作系统的系统。
LinEnum - 脚本化的本地 Linux 枚举和权限升级检查。
Rkhunter - 适用于 Linux 系统的扫描工具,可扫描系统上的后门、rootkit 和本地漏洞。
PE-sieve - 是一种轻量级工具,有助于检测系统上运行的恶意软件。
PEASS - 适用于 Windows、Linux/Unix 和 MacOS 的权限提升工具。

▪️ 系统诊断/调试器

   strace - 适用于 Linux 的诊断、调试和说明用户空间实用程序.
DTrace - 是一种性能分析和故障排除工具。
LTRACE - 是一个库调用跟踪器,用于跟踪程序对库函数的调用。
ptrace-burrito - 是 ptrace 的友好包装器。
perf-tools - 基于 Linux perf_events(又名 perf)和 ftrace 的性能分析工具.
bpftrace - Linux eBPF 的高级跟踪语言.
sysdig -系统探索和故障排除工具,为容器提供一流的支持.
Valgrind - 是一个用于构建动态分析工具的仪器框架。
gperftools -高性能多线程malloc()实现,以及一些性能分析工具.
glances - 用 Python 编写的跨平台系统监控工具.
htop - Unix 系统的交互式文本模式进程查看器.它的目标是成为一个更好的“顶级”。
bashtop - 用纯 Bash 编写的 Linux 资源监视器.
nmon - 用于性能监控和数据分析的单个可执行文件。
atop - ASCII 性能监视器。包括 CPU、内存、磁盘、交换、网络和进程的统计信息。
LSOF - 在其输出中显示有关进程打开的文件的信息。
FlameGraph - 堆栈跟踪可视化工具。
lsofgraph - 将 Unix lsof 输出转换为显示 FIFO 和 UNIX 进程间通信的图形。
RR - 是一个轻量级的工具,用于记录、回放和调试应用程序的执行。
Performance Co-Pilot - 系统性能分析工具包。
hexyl - 命令行十六进制查看器。
Austin - 用于 CPython 的 Python 帧堆栈采样器.

▪️ 日志分析器

   angle-grinder - 命令行上的切片和切块日志文件.
lnav -具有搜索和自动刷新的日志文件导航器.
GoAccess - 在终端中运行的实时 Web 日志分析器和交互式查看器。
ngxtop -nginx服务器的实时指标.

▪️ 数据库

   usql -SQL数据库的通用命令行界面.
pgcli - 具有自动完成和语法突出显示功能的 postgres CLI.
mycli -具有自动完成和语法突出显示功能的MySQL终端客户端.
litecli -具有自动完成和语法突出显示功能的SQLite CLI.
mssql-cli - 具有自动完成和语法突出显示功能的 SQL Server CLI。
OSQuery - 是一个 SQL 驱动的操作系统检测、监视和分析框架。
pgsync - 将数据从一个 Postgres 数据库同步到另一个数据库。
Iredis - 具有自动完成和语法突出显示功能的 Redis 终端客户端。
SchemaCrawler - 生成数据库的 E-R 图。

▪️ 职责范围

   Nipe - 使 Tor Network 成为默认网关的脚本。
multitor - 一种工具,可让你创建具有负载平衡功能的多个 TOR 实例。

▪️ Messengers/IRC 客户端

   Irssi - 是一个免费的基于开源终端的 IRC 客户端。
WeeChat - 是一个非常可扩展和轻量级的 IRC 客户端。

▪️ 生产力

   TaskWarrior - 任务管理系统,待办事项列表

▪️ 其他

   sysadmin-util - 用于 Linux/Unix 系统管理员的工具。
Incron - 是一种基于 inode 的文件系统通知技术。
lsyncd - 将本地目录与远程目标同步(实时同步守护程序)。
GRV - 是一个基于终端的界面,用于查看 Git 存储库。
Tig - Git 的文本模式接口.
TLDR - 简化的、社区驱动的手册页。
archiver - 轻松创建和提取 .zip、.tar、.tar.gz、.tar.bz2、.tar.xz、.tar.lz4、.tar.sz 和 .rar。
commander.js - JavaScript 中的最小 CLI 创建者。
gron - 使 JSON 可 greppable!
bed - 用 Go 编写的二进制编辑器.

GUI 工具 [TOC]

▪️ 终端仿真器

   Guake - 是为 GNOME 桌面环境制作的下拉终端。
终结者 - 基于 GNOME 终端,对系统管理员和其他用户有用的功能。
Kitty - 是一个基于 GPU 的终端模拟器,支持平滑滚动和图像。
Alacritty - 是一个快速、跨平台的 OpenGL 终端模拟器。

▪️ 网络

   Wireshark - 是世界上最重要且广泛使用的网络协议分析仪。
Ettercap - 是一个全面的网络监控工具。
EtherApe - 是一个图形化的网络监控解决方案。
数据包发送程序 - 是用于数据包生成和内置 UDP/TCP/SSL 客户端和服务器的网络实用程序。
Ostinato - 是一个数据包工匠和流量生成器。
JMeter™ - 用于负载测试功能行为和测量性能的开源软件。
locust -用Python编写的可扩展用户负载测试工具.

▪️ 浏览器

   TOR 浏览器 - 保护你的隐私并保护自己免受网络监控和流量分析。

▪️ 密码管理器

   KeePassXC - 安全地存储你的密码,并自动将它们输入到你的日常网站和应用程序中。
Bitwarden -具有内置同步功能的开源密码管理器.
Vaultwarden - 用 Rust 编写的非官方 Bitwarden 兼容服务器。

▪️ Messengers/IRC 客户端

   HexChat - 是一个基于 XChat 的 IRC 客户端。
Pidgin - 是一个易于使用且免费的聊天客户端,被数百万人使用。

▪️ 信使(端到端加密)

   Signal - 是一个加密的通信应用程序。 Wire - 安全消息传递、文件共享、语音通话和视频会议。

TorChat - 位于 Tor 隐藏服务之上的去中心化匿名即时通讯工具。
Matrix - 一个用于安全、分散、实时通信的开放网络。

▪️ 文本编辑器

   Sublime Text - 是一个轻量级的跨平台代码编辑器,以其速度、易用性而闻名。
Visual Studio Code - 由 Microsoft 开发的开源和免费源代码编辑器。
Atom - 21 世纪的可破解文本编辑器。

Web 工具 [TOC]

▪️ 浏览器

   浏览器的 SSL/TLS 功能 - 测试浏览器的 SSL 实现。
我可以使用 - 提供最新的浏览器支持表,以支持前端 Web 技术。
Panopticlick 3.0 - 你的浏览器是否安全,不会被跟踪?
隐私分析器 - 查看浏览器公开的数据。
Web 浏览器安全 - 这一切都与 Web 浏览器指纹有关。
我的 SSL 怎么样? - 帮助 Web 服务器开发人员了解现实世界的 TLS 客户端的功能。
sslClientInfo - 客户端测试(包括 TLSv1.3 信息)。

▪️ SSL/安全

   SSLLabs 服务器测试 - 对任何 SSL Web 服务器的配置进行深入分析。
SSLLabs 服务器测试 (DEV) - 对任何 SSL Web 服务器的配置进行深入分析。
ImmuniWeb® SSLScan - 测试 SSL/TLS(PCI DSS、HIPAA 和 NIST)。
SSL检查 - 扫描你的网站以查找不安全的内容。
SSL扫描器 - 分析网站安全性。
CryptCheck - 测试你的 TLS 服务器配置(例如密码)。
urlscan.io - 扫描和分析网站的服务。
报告 URI - 监视 CSP 和 HPKP 等安全策略。
CSP 评估程序 - 允许开发人员和安全专家检查内容安全策略。
无用的 CSP - 一些大玩家中关于 CSP 的公开列表(可能会让他们更关心)。
为什么没有 HTTPS? - Alexa 排名前 100 的网站不会自动重定向不安全的请求。
TLS Cipher Suite Search- 密码套件搜索引擎。
cipherli.st - 适用于 Apache、Nginx、Lighttpd 等的强密码。*
dhtool - 公共 Diffie-Hellman 参数服务/工具.
badssl.com - 令人难忘的网站,用于针对错误的SSL配置测试客户端。
tlsfun.de - 注册了有关TLS/SSL协议的各种测试。
CAA 记录帮助程序 - 生成 CAA 策略。
通用 CA 数据库 - 有关 CA 及其根证书和中间证书的信息存储库。
CERTSTREAM - 实时证书透明度日志更新流。
crt.sh - 通过持续监视所有公开已知的 CT 来发现证书。 强化 - 部署安全标准。

密码套件兼容性 - 测试 TLS 密码套件兼容性。
urlvoid - 此服务可帮助你检测潜在的恶意网站。
security.txt - 一个建议的标准(生成器),允许网站定义安全策略。
ssl-config-generator - 帮助你遵循 Mozilla 服务器端 TLS 配置指南。
TLScan - 纯 python、SSL/TLS 协议和密码扫描器/枚举器。

▪️ HTTP 标头和 Web Linters

   安全标头 - 分析 HTTP 响应标头(对结果进行评级系统)。
Observatory by Mozilla - 一套用于分析你网站的工具。
WebHint - 是一个 linting 工具,可帮助你提高网站的可访问性、速度、安全性等。

▪️ 域名统计

   ViewDNS - 免费 DNS 相关工具和信息的一个来源。
DNSLookup - 是一种高级 DNS 查找工具。
DNSlytics - 在线DNS调查工具。
DNS 间谍 - 监控、验证和验证你的 DNS 配置。
Zonemaster - 帮助你控制 DNS 的工作方式。
Leaf DNS - 全面的DNS测试器。
在线查找子域 - 查找用于安全评估渗透测试的子域。
DNSdumpster - dns 侦察和研究,查找和查找 DNS 记录。
在线DNS表 - 按域,IP,CIDR,ISP搜索DNS记录。
intoDNS -DNS和邮件服务器健康检查器.
DNS Bajaj - 检查域的委派。
BuddyDNS委派实验室 - 检查,跟踪和可视化你的域委派。
dnssec-debugger - DS 或 DNSKEY 记录验证器。
PTRarchive.com - 本网站负责保管历史反向 DNS 记录。
xip.io - 适合所有人的通配符 DNS。
nip.io - 任何 IP 地址的死简单通配符 DNS。
DNSLOOKUP (CEIPAM) - 最好的 DNS 传播检查器之一(不仅如此)。
What's My DNS - DNS 传播检查工具。
DNSGrep - 快速搜索大型 DNS 数据集。

▪️ 邮件

   smtp-tls-checker - 检查电子邮件域是否支持 SMTP TLS。
MX Toolbox - 将所有 MX 记录、DNS、黑名单和 SMTP 诊断功能整合到一个集成工具中。
Secure Email - 为电子邮件技术人员提供完整的电子邮件测试工具。
blacklistalert - 检查你的域名是否在实时垃圾邮件黑名单上。
MultiRBL - 发送邮件服务器的完整 IP 检查。
DKIM SPF & Spam Assassin Validator - 使用Spam Assassin检查邮件身份验证并对邮件进行评分。

▪️ 编码器/解码器和正则表达式测试

   URL 编码/解码 - 上面的工具,用于对文本字符串进行编码或解码。
Uncoder - 用于搜索日志数据的在线翻译器。
Regex101 - 在线正则表达式测试器和调试器:PHP、PCRE、Python、Golang 和 JavaScript。
RegExr - 学习、构建和测试正则表达式 (RegEx / RegExp) 的在线工具。
RegEx Testing - 在线正则表达式测试工具。
RegEx Pal - 在线正则表达式测试工具 + 其他工具。
网络瑞士军刀 - 用于加密、编码、压缩和数据分析的 Web 应用程序。

▪️ 网络工具

   Netcraft - 有关该网站的详细报告,帮助你就其完整性做出明智的选择。*
RIPE NCC Atlas - 一个全球性的、开放的、分布式的互联网测量平台。
Robtex - 使用各种来源收集有关 IP 号码、域名、主机名等的公共信息。 安全跟踪 - 面向安全公司、研究人员和团队的 API。

Online Curl - curl 测试,分析 HTTP 响应标头.
面向开发人员的在线工具 - HTTP API 工具、测试器、编码器、转换器、格式化程序和其他工具。
Ping.eu - 在线 Ping、Traceroute、DNS 查找、WHOIS 等。
Network-Tools - 面向网站管理员、IT 技术人员和极客的网络工具。
BGPview - 搜索任何 ASN、IP、前缀或资源名称。
BGP安全吗? - 检查 ISP 和其他主要互联网参与者的 BGP (RPKI) 安全性。
Riseup - 为致力于解放性社会变革的个人和团体提供在线交流工具。
VirusTotal - 分析可疑文件和 URL 以检测恶意软件类型。

▪️ 隐私

   privacyguides.org - 提供知识和工具,以保护你的隐私免受全球大规模监控。
DNS 隐私测试服务器 - DNS 隐私递归服务器列表(具有“无日志记录”策略)。

▪️ 代码解析器/操场

   ShellCheck - 查找 shell 脚本中的错误。
explainshell - 获取 shell 命令的交互式帮助文本.
jsbin - 用于 HTML、CSS 和 JavaScript 等的实时粘贴.
CodeSandbox -用于Web应用程序开发的在线代码编辑器.
PHP 沙盒 - 使用此代码测试器测试你的 PHP 代码。
Repl.it - 一个即时 IDE,可在一个地方学习、构建、协作和托管。
vclFiddle - 是用于试验 Varnish Cache VCL 的在线工具。
Haskell Dockerfile Linter - 一个更智能的 Dockerfile linter,可帮助你构建最佳实践 Docker 映像。

▪️ 性能

   GTmetrix - 分析你网站的速度并使其更快。
Sucuri loadtimetester - 在这里测试 全球任何网站的性能。
Pingdom 工具 - 分析你的网站在世界各地的速度。
PingMe.io - 跨多个地理区域运行网站延迟测试。
PageSpeed Insights - 分析你网站的速度并使其更快。
web.dev - 帮助像你这样的开发人员学习并将 Web 的现代功能应用于你自己的网站和应用程序。 Lighthouse - Web 的自动化审核、性能指标和最佳实践。

▪️ 大规模扫描仪(搜索引擎)

   Censys - 帮助信息安全从业者发现、监控和分析设备的平台。
Shodan - 世界上第一个用于互联网连接设备的搜索引擎。
Shodan 2000 - 此工具查找来自 Shodan 的随机生成的数据。
GreyNoise - 质量扫描仪,例如 Shodan 和 Censys。
ZoomEye - 网络空间搜索引擎,让用户找到特定的网络组件。
Netograph - 用于监控和理解网络深层结构的工具。
FOFA - 是一个网络空间搜索引擎。
Onyphe - 是收集开源和网络威胁情报数据的搜索引擎。
IntelligenceX - 是一个搜索引擎和数据档案。
BinaryEdge - 它扫描整个互联网空间并创建实时威胁情报流和报告。
Spyse - 互联网资产注册表:网络、威胁、Web 对象等
Wigle - 是一个基于提交的无线网络目录。所有网络。被大家发现。
PublicWWW - 在网页 HTML、JS 和 CSS 代码中查找任何字母数字片段、签名或关键字。
IntelTechniques - 此存储库包含数百个在线搜索实用程序。
Hunter - 让你在几秒钟内找到电子邮件地址,并与对你的业务至关重要的人建立联系。
GhostProject? - 按完整的电子邮件地址或用户名搜索。
数据泄露 - 我的电子邮件是否受到数据泄露的影响?
We Leak Info - 世界上最快和最大的数据泄露搜索引擎。
脉冲潜水 - 扫描恶意 URL、IP 和域,包括端口扫描和 Web 请求。
Grayhatwarfar 的 Buckets - 公共搜索 Open Amazon S3 Buckets 及其内容的数据库。
Vigilante.pw - 被破坏的数据库目录。
builtwith - 找出用什么网站构建的。
NerdyData - 在数百万个站点中搜索网络源代码的技术。
Zorexeye - 搜索网站、图像、应用程序、软件等。
Mamont 的开放 FTP 索引 - 如果目标具有具有可访问内容的开放 FTP 站点,则将在此处列出。
OSINT 框架 - 专注于从免费工具或资源中收集信息。
Maltiverse - 是一项面向网络安全分析师的服务。
泄露的来源 - 是以查找形式在线找到的数据的协作。
我们泄露信息 - 帮助普通人保护他们的在线生活,避免被黑客入侵。
PIPL - 是查找电子邮件地址、社交用户名或电话号码背后的人的地方。
虐待.ch - 由一个随机的瑞士人运营,为非营利组织打击恶意软件。
malc0de - 恶意软件搜索引擎.
网络犯罪跟踪器 - 监控和跟踪用于实施网络犯罪的各种恶意软件系列。
shhgit - 实时查找 GitHub 机密。
searchcode - 帮助你找到函数、API 和库的真实示例。
Insecam - 世界上最大的在线监控安全摄像头目录。
index-of - 包含很棒的东西,例如:安全、黑客、逆向工程、密码学、编程等。 Rapid7 Labs Open Data - 是 Project Sonar 的大量数据集资源。

通用响应标头 - 最大的 HTTP 响应标头数据库。
InQuest Labs - InQuest Labs 是一个面向安全研究人员的开放、交互式和 API 驱动的数据门户。

▪️ 发电机

   ThisPersonDoesnotExist - 一键生成假面孔 - 无限可能。
AI 生成的照片 - 100.000 张 AI 生成的面孔。
FakenameGenerator - 你随机生成的身份。
Intigriti 重定向器 - 打开重定向/SSRF 有效负载生成器。

▪️ 密码

   我被pwn了吗?- 检查你的帐户是否因数据泄露而被盗用。
dehashed - 是一个被黑客入侵的数据库搜索引擎。
泄露的来源 - 是以查找形式在线找到的数据的协作。

▪️ CVE/漏洞利用数据库

   CVE Mitre - 公开已知的网络安全漏洞列表。
CVE 详细信息 - CVE 安全漏洞高级数据库。
漏洞利用数据库 - 符合 CVE 标准的公共漏洞和相应易受攻击软件的存档。
0day.today - 漏洞市场为你提供了购买/出售零日漏洞的可能性。
Sploitus - 漏洞利用和工具数据库。
CXSanquit - 免费漏洞数据库.
Vulncode-DB - 是一个漏洞及其相应源代码(如果可用)的数据库。
cveapi - CVE 数据的免费 API。

▪️ 移动应用扫描仪

   ImmuniWeb® 移动应用程序扫描仪 - 测试移动应用程序(iOS 和 Android)的安全性和隐私性。
Quixxi - 适用于 Android 和 iOS 的免费移动应用漏洞扫描器。
Ostorlab - 分析移动应用程序以识别漏洞和潜在弱点。

▪️ 私有搜索引擎

   Startpage - 世界上最私密的搜索引擎。
searX - 一个尊重隐私、可破解的元搜索引擎。
darksearch - 第一个真正的暗网搜索引擎。
Qwant - 尊重你隐私的搜索引擎。
DuckDuckGo - 不跟踪你的搜索引擎。
Swisscows - 隐私安全网络搜索 Disconnect - 匿名搜索
你的搜索引擎。
MetaGer - 使用匿名代理和隐藏 Tor 分支的搜索引擎。

▪️ 安全的 Webmail 提供商

   CounterMail - 在线电子邮件服务,旨在提供最大的安全性和隐私性。
Mail2Tor - 是一项 Tor 隐藏服务,允许任何人匿名发送和接收电子邮件。
Tutanota - 是世界上最安全的电子邮件服务,而且非常易于使用。
Protonmail - 是世界上最大的安全电子邮件服务,由欧洲核子研究中心和 MIT 的科学家开发。
Startmail - 私有和加密电子邮件变得简单。

▪️ 加密

   Keybase - 它是开源的,由公钥加密提供支持。

▪️ PGP 密钥服务器

   SKS OpenPGP 密钥服务器 - 用于 OpenPGP 使用的 SKS 密钥服务器的服务。

系统/服务 [TOC]

▪️ 操作系统

   Slackware - 最“类Unix”的Linux发行版。
OpenBSD - 基于 4.4BSD 的多平台类 UNIX 操作系统。
HardenedBSD - HardenedBSD 旨在实现创新的漏洞利用缓解和安全解决方案。
Kali Linux -用于渗透测试,道德黑客和网络安全评估的Linux发行版.
Parrot Security OS - 网络安全 GNU/Linux 环境。
Backbox Linux - 面向渗透测试和安全评估的基于 Ubuntu 的 Linux 发行版。
BlackArch - 是一个基于 Arch Linux 的渗透测试发行版,适用于渗透测试人员。
Pentoo - 是一个基于Gentoo的以安全为重点的livecd。
Security Onion - 用于入侵检测、企业安全监控和日志管理的 Linux 发行版。
Tails - 是一个实时系统,旨在保护你的隐私和匿名性。
vedetta -OpenBSD路由器样板.
Qubes OS - 是一个面向安全的操作系统,它使用基于 Xen 的虚拟化。

▪️ HTTP(s) 服务

   Varnish Cache -HTTP加速器,专为内容繁重的动态网站而设计.
Nginx - 开源 Web 和反向代理服务器,类似于 Apache,但重量非常轻。
OpenResty - 是一个基于 NGINX 和 LuaJIT 的动态 Web 平台。
Tengine - 具有一些高级功能的 Nginx 发行版。
Caddy Server - 是一个开源的、支持 HTTP/2 的 Web 服务器,默认使用 HTTPS。
HAProxy - 可靠、高性能的 TCP/HTTP 负载平衡器。

▪️ DNS 服务

   Unbound - 验证、递归和缓存 DNS 解析器(使用 TLS)。
Knot Resolver - 缓存完整的解析器实现,包括解析器库和守护程序。
PowerDNS - 是一个开源的权威DNS服务器,用C++编写,并根据GPL获得许可。

▪️ 其他服务

   3proxy - 微型免费代理服务器.

▪️ 安全/强化

   Emerald Onion - 是一家 501(c)(3) 非营利组织和中转互联网服务提供商 (ISP)。
pi-hole - Pi-hole® 是一个 DNS sinkhole,可保护你的设备免受不需要的内容的侵害。
Maltrail - 恶意流量检测系统。
security_monkey - 监控 AWS、GCP、OpenStack 和 GitHub 组织的资产及其随时间的变化。
firecracker - 用于无服务器计算的安全且快速的微型虚拟机。
streisand - 设置一台新服务器,运行你选择的 WireGuard、OpenSSH、OpenVPN 等。

网络 [TOC]

▪️ 工具

   CapAnalysis - 用于分析大量捕获的网络流量的 Web 可视化工具(PCAP 分析器)。
netbox - IP 地址管理 (IPAM) 和数据中心基础设施管理 (DCIM) 工具.

▪️ 实验室

   NRE Labs - 在实践中学习自动化。现在,就在这里,在你的浏览器中。

▪️ 其他

   LBNL 的网络研究小组 - 网络研究小组 (NRG) 的主页。

容器/编排 [TOC]

▪️ CLI 工具

   gvisor -容器运行时沙箱.
CTOP -类似容器指标的顶部界面.

▪️ Web 工具

   Moby - 一个用于容器生态系统的协作项目,用于组装基于容器的系统。
Traefik -开源反向代理/负载均衡器提供了与Docker和Let's encrypt的更轻松的集成.
kong -云原生API网关.
Rancher - 完整的容器管理平台。
portainer - 使 Docker 管理变得简单。
nginx-proxy - 使用 docker-gen 的 Docker 容器的自动化 nginx 代理.
bunkerized-nginx - nginx docker 镜像“默认安全”.

▪️ 安全

   docker-bench-security - 检查有关部署 Docker 的数十种常见最佳实践。
trivy - 容器漏洞扫描程序,适用于 CI。
Harbor - 存储、签名和扫描内容的云原生注册表项目。
Houdini - 数百个令人反感且有用的 docker 映像,用于网络入侵。

▪️ 手册/教程/最佳实践

   docker-cheat-sheet - 关于 Docker 的快速参考备忘单.
awesome-docker - Docker 资源和项目的精选列表.
docker_practice - 通过真正的DevOps实践,学习和理解Docker技术!
labs - 是一组教程,用于学习如何将 Docker 与各种工具一起使用。
dockerfiles - 我在桌面和服务器上使用的各种 Dockerfile。
kubernetes-the-hard-way - 在 Google Cloud Platform 上以艰难的方式引导 Kubernetes.没有脚本。
kubernetes-the-easy-way - 在 Google Cloud Platform 上以简单的方式引导 Kubernetes.没有脚本。
cheatsheet-kubernetes-A4 - A4 中的 Kubernetes 备忘单.
k8s-security -kubernetes 安全说明和最佳实践.
kubernetes-production-best-practices - 包含生产就绪型 Kubernetes 最佳实践的清单。
kubernetes-production-best-practices - kubernetes security - 最佳实践指南.
kubernetes-failure-stories - 是与 Kubernetes 相关的公共失败/恐怖故事的汇编。

手册/操作方法/教程 [TOC]

▪️ Shell/命令行

   pure-bash-bible - 是外部进程的纯 bash 替代品的集合。
pure-sh-bible - 是外部过程的纯 POSIX sh 替代品的集合。
bash-guide - 是学习 bash 的指南。
bash-handbook - 对于那些想学习 Bash 的人。
Bash Hackers Wiki - 保存任何关于 GNU Bash 的文档。
Shell & Utilities - 描述符合POSIX标准的系统提供给应用程序的命令。
the-art-of-command-line - 在一个页面中掌握命令行。
Shell Style Guide - 针对 Google 发起的开源项目的 shell 风格指南。

▪️ 文本编辑器

   Vim 备忘单 - 很棒的多语言 vim 指南。

▪️ 蟒

   Awesome Python - 精选的 Python 框架、库、软件和资源列表。
python-cheatsheet - 全面的 Python 备忘单.
pythoncheatsheet.org - 初学者和高级开发人员的基本参考。

▪️ Sed & Awk & 其他

   - 高级 sed 和 awk 用法(Pentesters 解析 3)。

▪️ *nix & 网络

   nixCraft - 适用于新手和经验丰富的系统管理员的 linux 和 unix 教程.
TecMint - 系统管理员和极客的理想 Linux 博客。
Omnisecu - 免费的网络、系统管理和安全教程。
linux-cheat - Linux 教程和备忘单.最少的例子。主要是用户土地 CLI 实用程序。
LinuxUpSkillChallenge - 学习系统管理员所需的技能。
Unix Toolbox - Unix/Linux/BSD 命令和任务,对 IT 工作或高级用户很有用。
Linux 内核教学 - 是讲座和实验 Linux 内核主题的集合。
htop explained - 解释你在 Linux 上的 htop/top 中可以看到的所有内容。
Linux Guide and Hints - Fedora 和 CentOS 中的系统管理教程。
strace-little-book - 一本介绍 STrace 的小书。
linux-tracing-workshop -Linux跟踪工具研讨会的示例和动手实验室.
http2-explained - 解释和记录 HTTP/2 的详细文档。
http3-explained - 描述 HTTP/3 和 QUIC 协议的文档。
HTTP/2 in Action - 对新 HTTP/2 标准的极好介绍。
让我们编写一个 TCP/IP 堆栈 - 在更深层次上学习网络和系统编程的好东西。
Nginx 管理员手册 - 如何提高 NGINX 性能、安全性和其他重要内容。
nginxconfig.io - 类固醇上的 NGINX 配置生成器.
openssh 指南 - 旨在帮助运营团队配置 OpenSSH 服务器和客户端。
SSH 握手解释 - 是对 SSH 握手的相对简短的描述。
ISC 的知识库 - 你将找到有关 BIND 9、ISC DHCP 和 Kea DHCP 的一些一般信息。
PacketLife.net - 在学习思科 CCNP 认证时记录笔记的地方。

▪️ Microsoft

   AD-Attack-Defense - 使用现代后利用活动攻击和防御 Active Directory。

▪️ 大型系统

   系统设计入门 - 学习如何设计大型系统。
令人敬畏的可伸缩性 - 构建高可伸缩性、高可用性、高稳定性等的最佳实践。
Web 架构 101 - 基本架构概念。

▪️ 系统加固

   CIS Benchmarks - 100 多种技术的安全配置设置,以免费 PDF 格式提供。
安全强化 CentOS 7 - 这将引导你完成安全强化 CentOS 所需的步骤。
CentOS 7 服务器加固指南 - 加固 CentOS 的好指南;熟悉 OpenSCAP。
awesome-security-hardening - 是安全加固指南、工具和其他资源的集合。
The Practical Linux Hardening Guide - 提供强化 GNU/Linux 系统的高级概述。
Linux 加固指南 - 如何尽可能地加固 Linux 以确保安全和隐私。

▪️ 安全与隐私

   黑客文章 - LRaj Chandel的安全与黑客博客。
AWS 安全工具 - 让你的 AWS 云环境更加安全
Rawsec 的网络安全清单 - 有关网络安全的工具和资源清单。
图示的 TLS 连接 - 解释和再现 TLS 连接的每个字节。
SSL Research - SSL Labs 的 SSL 和 TLS 部署最佳实践。
SELinux 游戏 - 边做边学 SELinux。解决难题,展示skillz。
证书和 PKI - 你应该了解的有关证书和 PKI 但又不敢问的所有信息。
子域枚举的艺术 - 子域枚举技术的参考。
退出谷歌 - 退出谷歌的综合指南。

▪️ Web 应用

   OWASP - 全球非营利性慈善组织,致力于提高软件的安全性。
OWASP ASVS 3.0.1 - OWASP 应用程序安全验证标准项目。
OWASP ASVS 3.0.1 Web App - 简单的 Web 应用程序,可帮助开发人员了解 ASVS 要求。
OWASP ASVS 4.0 - 是应用程序安全要求或测试的列表。
OWASP 测试指南 v4 - 包括“最佳实践”渗透测试框架。
OWASP 开发指南 - 这是 OWASP 开发指南的开发版本。
OWASP WSTG - 是测试 Web 应用程序安全性的综合开源指南。 OWASP API 安全项目 - 专门关注 API 安全中的十大漏洞。

Mozilla Web Security - 帮助运营团队创建安全的 Web 应用程序。
security-bulletins - 与 Netflix 开源相关的安全公告。
API-Security-Checklist - 设计、测试和发布 API 时的安全对策。
启用 CORS - 启用跨域资源共享。
应用程序安全 Wiki - 是一项在一个地方提供所有应用程序安全相关资源的计划。
奇怪的代理 - 与反向代理相关的攻击;这是对各种代理进行分析的结果。
Webshells - 关于恶意有效负载的精彩系列。
实用的 Web 缓存中毒 - 向你展示如何使用深奥的 Web 功能来破坏网站。
隐藏的目录和文件 - 作为有关 Web 应用程序的敏感信息的来源。
爆炸性博客 - 关于网络安全和渗透测试的好博客。
安全 Cookie - 本文将仔细研究 Cookie 安全性。
APISecurityBestPractices - 帮助你将机密(API 密钥、数据库凭证、证书)排除在源代码之外。

▪️ 多合一

   LZone 备忘单 - 所有备忘单。
Dan's Cheat Sheets's - 海量备忘单文档。
Rico 的备忘单 - 这是一个适度的备忘单集合。
DevDocs API - 将多个 API 文档组合在一个快速、有条理且可搜索的界面中。
cheat.sh - 你唯一需要的备忘单。
gnulinux.guru - 关于 bash、vim 和网络的备忘单集合.
Web Skills - 作为 Web 开发人员要学习的有用技能的可视化概述。

▪️ 电子书

   free-programming-books - 多种语言的免费学习资源列表.

▪️ 其他

   CTF 系列:易受攻击的机器 - 可以按照以下步骤查找漏洞和漏洞。
50M_CTF_Writeup - 来自 Hackerone 的 5000 万美元 CTF - 写。
ctf-tasks - 多年来开发的低级 CTF 挑战的存档。
如何开始 RE/恶意软件分析? - 为初学者收集一些提示和有用的链接。
C10K 问题 - 是时候让 Web 服务器同时处理一万个客户端了,你不觉得吗?
1500 字节如何成为互联网的 MTU - 关于最大传输单元的精彩故事。
Poor Man 的 Profiler - 就像 DTRACE 的 Profiler 一样,并没有真正提供查看哪些程序被阻塞的方法。
Stack Overflow 上的 HTTPS - 这是关于 SSL 实现的漫长旅程的故事。
Julia's Drawings - 一些关于编程和unix世界的图纸,关于系统和调试工具的杂志。
哈希冲突 - 这个伟大的存储库专注于哈希冲突的利用。
sha256-animation - 终端中 SHA-256 哈希函数的动画.
SHA256algorithm - SHA256算法在线直观地一步一步讲解。
BGP 遇见 Cat - 经过 3072 小时的 BGP 操作,Job Snijders 成功绘制了一只 Nyancat。
bgp-battleships - 在 BGP 上玩战列舰。
当你在浏览器中输入 google.com 并按回车键时会发生什么
how-web-works - 基于“当...”时会发生什么存储 库。
现实世界中的HTTPS - 很棒的教程解释了HTTPS在现实世界中是如何工作的。
Gitlab 和 NFS 错误 - 我们如何花了两周时间在 Linux 内核中寻找 NFS 错误。
Gitlab 崩溃了 - 对 2017 年 1 月 31 日的数据库中断进行事后分析,我们吸取了教训。
如何成为黑客 - 如果你想成为黑客,请继续阅读。
CPU 中的操作成本 - 应有助于估算 CPU 时钟中某些操作的成本。
让我们构建一个简单的数据库 - 用 C 从头开始编写一个 sqlite 克隆。 simple-computer - 了解计算机如何在后台工作的绝佳资源。

“我被 pwned 了吗?”的故事 - 在 Azure 表存储上处理 1.54 亿条记录。
TOP500 超级计算机 - 展示了 500 种最强大的商用计算机系统。
如何构建一个 8 GPU 密码破解程序 - 像桌面组件一样数小时的挫败感。
CERN 数据中心 - CERN 计算环境的 3D 可视化(以及更多)。
我的数据库有多糟糕 - 用这个方便的网站评估你的数据库有多糟糕。
Linux 疑难解答 101、2016年版-一切都是DNS问题...
五个为什么——你知道问题是什么,但你无法解决它?
Maersk, me & notPetya - 勒索软件是如何成功劫持数百个域控制器的?
howhttps.works - HTTPS的工作原理 ...在漫画中!
howdns.works - 对 DNS 工作原理的有趣而丰富多彩的解释。
POSTGRESQLCO中。NF - 你的 postgresql.conf 文档和建议。

鼓舞人心的清单 [TOC]

▪️ 系统运营/DevOps

   Awesome Sysadmin - 令人敬畏的开源系统管理资源.
Awesome Shell - 很棒的命令行框架、工具包、指南和小玩意.
命令行文本处理 - 查找要搜索和替换的文本,排序到美化等等。
Awesome Pcaptools - 由其他研究人员开发的用于处理网络跟踪的工具集合。
awesome-ebpf - 与 eBPF 相关的精选项目列表.
Linux 网络性能 - 其中某些网络 sysctl 变量适合 Linux/内核网络流。
Awesome Postgres - 很棒的 PostgreSQL 软件、库、工具和资源列表。
quick-SQL-cheatsheet - 所有 SQL 查询的快速提醒以及有关如何使用它们的示例。
Awesome-Selfhosted - 可以在本地托管的自由软件网络服务和 Web 应用程序列表。
应用程序列表 - 按类别排序的大量应用程序列表,作为那些寻找软件包的人的参考。
CS-Interview-Knowledge-Map - 构建最佳面试 map。
DevOps-Guide -DevOps指南,从基础到高级,包括面试问题和笔记.
FreeBSD Journal - 这是一份关于 FreeBSD 和其他重要事物的期刊杂志列表。
devops-interview-questions - 包含有关各种DevOps和SRE相关主题的面试问题。

▪️ 开发 人员

   Web 开发人员路线图 - 路线图、文章和资源,可帮助你选择路径、学习和改进。
Front-End-Checklist - 适用于现代网站和细致开发人员的完美前端清单。
Front-End-Performance-Checklist - 运行速度比其他前端性能检查表更快的前端性能检查表。
Python 的魔术方法 - 什么是魔术方法?它们是面向对象的 Python 中的一切。
wtfpython - 令人惊讶的 Python 片段和鲜为人知的功能的集合.
js-dev-reads - 供挑剔的 Web 开发人员阅读的书籍和文章列表.
提交消息指南 - 了解提交消息重要性的指南。

▪️ 安全/渗透测试

   Awesome Web Security - 网络安全材料和资源的精选列表。
awesome-cyber-skills -精选的黑客环境列表,你可以在其中训练你的网络技能.
awesome-devsecops - 令人敬畏的 Devsecops 工具的权威列表.
awesome-osint - 是一个精选的令人敬畏的 OSINT 列表.
HolyTips - 有关 Bug Bounty Hunting 和 Web App Security 的提示和教程。
awesome-threat-intelligence - 精选的 Awesome 威胁情报资源列表.
Red-Teaming-Toolkit - 有助于红队运营的开源和商业工具的集合。
awesome-burp-extensions - 令人敬畏的打嗝扩展的精选列表.
免费安全电子书 - 免费安全和黑客电子书列表。
Hacking-Security-Ebooks - 前 100 名黑客和安全电子书。
隐私尊重 - 隐私尊重服务和软件的精选列表。
逆向工程 - 令人敬畏的逆向工程资源列表.
linux-re-101 - 用于 Linux 逆向工程的资源集合。
reverseengineering-reading-list - 逆向工程文章、书籍和论文的列表。
Awesome-WAF - 很棒的 Web 应用防火墙 (WAF) 内容的精选列表.
awesome-shodan-queries - 有趣、有趣且令人沮丧的搜索查询,可插入 shodan.io.
RobotsDisallowed - 最常见和最有趣的机器人的精选列表 .txt 不允许的目录。
HackingNeuralNetworks - 是一门关于利用和保护神经网络的小课程。
wildcard-certificates - 为什么你可能不应该使用通配符证书。
不要使用VPN服务 - 这是每个第三方“VPN提供商”所做的。
awesome-yara - 精选的 YARA 规则、工具和人员列表.
macOS-Security-and-Privacy-Guide - 在 macOS 上保护和改善隐私的指南。
macos_security - macOS 安全合规性项目。
awesome-sec-talks - 是令人敬畏的安全会谈的集合列表。
黑客电影 - 每个黑客和赛博朋克必须观看的电影列表。
Cryptography_1 - 参加 Dan Boneh 教授斯坦福大学加密课程时使用的材料。
Crypton - 学习和练习进攻和防御密码学的库。

▪️ 其他

   备忘单 - 超过 3,000 份免费备忘单、复习辅助工具和快速参考。
awesome-static-analysis -适用于所有编程语言的静态分析工具.
计算机科学 - 通往计算机科学免费自学教育的途径。
事后分析 - 是事后分析(配置错误、硬件故障等)的集合。
build-your-own-x - 构建你自己的(在此处插入技术)。
Project-Based-Tutorials-in-C - 是 C 语言中基于项目的教程的精选列表。 The-Documentation-Compendium - 各种 README 模板和编写高质量文档的技巧。

awesome-python-applications - 运行良好的免费软件,也恰好是开源 Python.
awesome-public-datasets - 以主题为中心的 HQ 开放数据集列表.
machine-learning-algorithms - 所有机器学习算法和概念的精选列表。

博客/播客/视频 [TOC]

▪️ 系统运营/DevOps

   Varnish for PHP 开发人员 - Mattias Geniar 对 Varnish 的非常有趣的介绍。
Netflix 微服务指南 - 谈论 Netflix 混乱而充满活力的微服务世界。

▪️ 开发 人员

   C 与机器语言进行比较 - 将简单的 C 应用程序与该程序的编译机器代码进行比较。

▪️ 极客

   Brendan Gregg 的博客 - 是计算性能和云计算方面的行业专家。
Gynvael “GynDream” Coldwind - 是 Google 的 IT 安全工程师。
Michał “lcamtuf” Zalewski - 白帽黑客,计算机安全专家。
Mattias Geniar - 开发人员、系统管理员、博主、播客和公众演说家。
Nick Craver - Stack Exchange 的软件开发人员和系统管理员。
Scott Helme - 安全研究员、演讲者和 securityheaders.com 和 report-uri.com 的创始人。
布莱恩·克雷布斯(Brian Krebs) - 《华盛顿邮报》,现在是一名独立调查记者。
布鲁斯·施奈尔(Bruce Schneier)是国际知名的安全技术专家,被称为“安全大师”。
Chrissy Morgan - 实践学习的倡导者,Chrissy 还参加了漏洞赏金计划。
安迪·吉尔(Andy Gill) - 本质上是一名黑客,是一名高级渗透测试人员。
丹尼尔·米斯勒(Daniel Miessler)-网络安全专家和作家。
萨米·卡姆卡尔(Samy Kamkar)是美国隐私和安全研究员,计算机黑客。
Javvad Malik - 是 AlienVault 的安全倡导者、博主活动演讲者和行业评论员。
格雷厄姆·克鲁利(Graham Cluley) - 公众演说家和独立计算机安全分析师。
Kacper Szurek - ESET的检测工程师。
Troy Hunt - 网络安全专家,以安全主题的公共教育和外展而闻名。
raymii.org - 专门构建高可用性云环境的系统管理员。
Robert Penz - IT 安全专家。

▪️ 极客博客

   Linux Audit - Michael Boelen 撰写的关于审计、强化和合规性的 Linux 安全博客。
Linux 安全专家 - 培训、操作方法、清单、安全工具等。
Grymoire - 巫师的有用咒语集合,无论你是电脑巫师、魔术师还是其他什么。
Secjuice - 是信息安全领域唯一的非营利性、独立和志愿者主导的出版物。
破译 - 提供信息和启发的安全新闻。

▪️ 极客供应商博客

   Tenable 播客 - 与 Cyber Exposure 相关的对话和访谈等。
Sophos - 威胁新闻室,为你提供有关计算机安全问题的新闻、意见、建议和研究。
Tripwire State of Security - 博客,提供有关当前安全问题的最新新闻、趋势和见解。
Malwarebytes Labs 博客 - 安全博客旨在提供有关网络安全的内幕消息。
TrustedSec - 有关网络安全的最新消息和趋势。
PortSwigger Web 安全博客 - 关于 Web 应用安全漏洞以及我们 Web 安全团队的重要提示。
AT&T 网络安全博客 - 有关新兴威胁的新闻和简化威胁检测的实用建议。
Thycotic - 首席信息安全官和 IT 管理员在这里了解行业趋势、IT 安全等。

▪️ Geeky 网络安全播客

   风险业务 - 是每周一次的信息安全播客,以新闻和深度访谈为特色。
网络,主板 - 故事,并专注于有关网络安全的想法。
Tenable 播客 - 与 Cyber Exposure 相关的对话和访谈等。
网络犯罪调查 - 杰夫·怀特 (Geoff White) 关于网络犯罪的播客。
多帽俱乐部 - 以来自各种信息安全人员(Whitehat、Greyhat 和 Blackhat)的故事为特色。
暗网日记 - 来自互联网黑暗面的真实故事。
OSINTCurious Webcasts - 是帮助人们在 OSINT 中取得成功的调查好奇心。
安全周刊 - 最新的信息安全和黑客新闻。

▪️ Geeky 网络安全视频博客

   Rev3RSE 安全 - 进攻性、二进制利用、Web 应用程序安全、强化、红队、蓝队。
LiveOverflow - 比付费在线课程中通常提供的主题更高级 - 但免费。
J4vv4D - 有关我们互联网安全的重要信息。
CyberTalks - 关于网络安全的讲座、采访和文章。

▪️ 最佳个人 Twitter 帐户

   @blackroomsec - 一个白帽黑客/渗透测试者。1990年星际扫雷冠军。
@MarcoCiappelli - 联合创始人 @ITSPmagazine,处于 IT 安全与社会的交汇点。
@binitamshah - Linux 布道者.恶意软件。内核开发安全爱好者。
@joe_carson - 信息安全专家和技术极客。
@mikko - F-Secure 的 CRO、逆向工程师、TED 演讲者、超级反派。
@esrtweet - 通常被称为 ESR,是美国软件开发人员和开源软件倡导者。
@gynvael - 安全研究员/程序员,@DragonSectorCTF创始人/玩家,技术主播。
@x0rz - 安全研究员和网络观察员。
@hasherezade - 程序员,恶意软件分析师。PEbear、PEsieve、libPeConv的作者。
@TinkerSec - 修补匠、密码朋克、黑客。
@alisaesage - 独立黑客和研究人员。
@SwiftOnSecurity - 系统安全,工业安全,系统管理员,decentsecurity.com 的作者。
@dakami - 是仅有的七个有权恢复DNS根密钥的人之一。
@samykamkar - 是著名的“灰帽”黑客,安全研究员,MySpace“Samy”蠕虫的创建者。
@securityweekly - Security Weekly播客网络的创始人兼首席技术官。
@jack_daniel - @SecurityBSides联合创始人。
@thegrugq - 安全研究员。
@matthew_d_green - 约翰霍普金斯大学的密码学家和教授。

▪️ 最佳商业 Twitter 帐户

   @haveibeenpwned - 检查你的帐户是否在数据泄露中遭到入侵。
@bugcrowd - 比任何其他众包安全平台都更受财富 500 强企业的信任。
@Malwarebytes - 最值得信赖的安全公司。无可比拟的威胁可见性。
@sansforensics - 世界领先的数字取证和事件响应提供商。
@attcyber - AT&T Cybersecurity 的边缘到边缘技术提供威胁情报等。
@TheManyHatsClub - 一个以信息安全为重点的播客和来自各行各业的个人团体。
@hedgehogsec - 刺猬网络。直布罗陀和曼彻斯特的顶级精品信息安全公司。
@NCSC - 国家网络安全中心。帮助使英国成为最安全的在线生活和工作场所。
@Synacktiv - IT 安全专家。

▪️ 一段历史

   如何在 ARL 做事 - 如何配置调制解调器、扫描映像、录制 CD-ROM 等。*

▪️ 其他

   Diffie-Hellman 密钥交换(简短版本) - Diffie-Hellman 密钥交换的工作原理。

黑客/渗透测试 [TOC]

▪️ 渗透测试仪武器库工具

   Sandcat 浏览器 - 一个面向渗透的浏览器,已经内置了许多高级功能。
Metasploit - 用于渗透测试系统、网络等的工具和框架。
Burp Suite - 用于测试 Web 应用程序安全性的工具,拦截代理以重放、注入、扫描和模糊。
OWASP Zed 攻击代理 - 拦截代理以重放、注入、扫描和模糊 HTTP 请求。
w3af - 是一个 Web 应用程序攻击和审计框架。
mitmproxy - 一种用于渗透测试人员的具有 TLS 功能的交互式拦截 HTTP 代理.
Nikto2 - Web 服务器扫描程序,可针对多个项目的 Web 服务器执行全面测试。
sqlmap - 自动检测和利用 SQL 注入缺陷过程的工具。
Recon-ng - 是一个用 Python 编写的功能齐全的 Web 侦察框架。
AutoRecon - 是一种网络侦察工具,可执行服务的自动枚举。
Faraday - 一个集成的多用户渗透测试环境。
Photon - 专为 OSINT 设计的令人难以置信的快速爬虫。
XSStrike - 最先进的 XSS 检测套件。
Sn1per -针对攻击性安全专家的自动渗透测试框架.
vuls - 是适用于 Linux、FreeBSD 和其他软件的无代理漏洞扫描程序。
Tsunami - 是一个通用的网络安全扫描程序,具有可扩展的插件系统。
Aquatone - 用于域立交的工具。
BillCipher - 网站或 IP 地址的信息收集工具。
WhatWaf - 检测并绕过 Web 应用程序防火墙和保护系统。
Corsy - CORS 错误配置扫描程序。
浣熊 - 是一种用于侦察和漏洞扫描的高性能进攻性安全工具。
dirhunt - 在没有暴力破解的情况下查找 Web 目录.
John The Ripper - 是一个快速的密码破解程序,目前可用于许多版本的 Unix、Windows 和其他版本。
Hashcat - 世界上最快、最先进的密码恢复实用程序。
p0f - 是一种工具,用于识别任何附带的 TCP/IP 通信背后的参与者。
ssh_scan - 原型 SSH 配置和策略扫描程序。
LeakLooker - 查找开放数据库 - 由 Binaryedge.io
提供支持 exploitdb - 来自 The Exploit Database 的可搜索存档.
getsploit - 是一个用于搜索和下载漏洞的命令行实用程序。
ctf-tools - 一些用于安全研究工具的设置脚本。
pwntools -CTF框架和漏洞利用开发库.
security-tools - 收集主要在 Python 中创建的小型安全工具。CTF、渗透测试等。
pentestpackage - 是 Pentest 脚本的包。
python-pentest-tools - 用于渗透测试人员的 Python 工具.
fuzzdb - 黑盒应用程序故障注入的攻击模式和原语字典.
AFL - 是由 Google 维护的免费软件模糊器。
AFL++ - 是带有社区补丁的 AFL。
Syzkaller - 是一个无监督的、覆盖引导的内核模糊器。
pwndbg - 使用 GDB 轻松进行漏洞开发和逆向工程.
GDB PEDA - 适用于 GDB 的 Python 漏洞利用开发帮助。
IDA - 多处理器反汇编器和调试器,可用于逆向工程恶意软件。
radare2 -用于逆向工程和分析二进制文件的框架.
RouterSploit -嵌入式设备的开发框架.
Ghidra - 是一个软件逆向工程 (SRE) 框架。
Cutter - 是一个集成了 Ghidra 反编译器的 SRE 平台。
Vulnreport -Salesforce产品安全部的开源渗透测试管理和自动化平台.
Mentalist - 是用于自定义单词列表生成的图形工具。
ArcherySec - 漏洞评估和管理有助于执行扫描和管理漏洞。
Osmedeus - 用于侦察和漏洞扫描的全自动进攻性安全工具。
Beef - 浏览器开发框架项目。
AutoSploit - 自动大规模开发者。
SUDO_KILLER - 是一种用于识别和利用 sudo 规则的错误配置和漏洞的工具。
雅苒 - 图案匹配的瑞士刀。
mimikatz - 一个玩 Windows 安全的小工具。
Sherlock - 在社交网络上按用户名追捕社交媒体帐户。
OWASP Threat Dragon - 是一种用于创建威胁模型图和记录可能威胁的工具。

▪️ 渗透测试书签集合

   PTES - 渗透测试执行标准。
渗透测试思维导图 - 具有易受攻击的应用程序和系统的惊人思维导图。
WebApps 安全测试 MindMap - 用于 WebApps 安全测试的令人难以置信的思维导图.
Brute XSS - 掌握跨站点脚本的艺术。
XSS 备忘单 - 包含许多可帮助你绕过 WAF 和过滤器的向量。
Offensive Security Bookmarks - 安全书签集合,作者需要通过 OSCP 的所有内容。
Awesome Pentest 备忘单 - 对渗透测试有用的备忘单集合。
Awesome Hacking by HackWithGithub - 黑客、渗透测试人员和安全研究人员的精彩列表。
Awesome Hacking by carpedm20 - 精选的 awesome 黑客教程、工具和资源列表。
Awesome Hacking Resources - 收集黑客/渗透测试资源,让你变得更好。
Awesome Pentest - 收集了令人敬畏的渗透测试资源、工具和其他 shiny 的东西。
Awesome-Hacking-Tools - 是精选的 awesome 黑客工具列表。
Hacking Cheat Sheet - 作者黑客和渗透测试笔记。
blackhat-arsenal-tools - 官方 Black Hat Arsenal 安全工具存储库.
渗透测试和 WebApp 备忘单 - 与信息安全相关的备忘单的完整列表。
网络安全资源 - 包括数以千计的与网络安全相关的参考资料和资源。
渗透测试书签 - 有很多渗透测试博客。
Cheatsheet-God - 渗透测试参考库 - OSCP/PTP & PTX 备忘单。
ThreatHunter-Playbook - 帮助开发狩猎活动的技术和假设。
Beginner-Network-Pentesting - 初学者网络渗透测试课程的注意事项。
OSCPRepo - 是作者为准备 OSCP 而收集的资源列表。
PayloadsAllTheThings - Web 应用程序安全和渗透测试/CTF 的有用有效负载和绕过列表。
payloads - git 所有 Payloads!Web 攻击有效负载的集合。
command-injection-payload-list - 命令注入有效负载列表。
Awesome Shodan Search Queries - 插入 Shodan 的绝佳搜索查询。
AwesomeXSS - 是 Awesome XSS 资源的集合。
php-webshells - 常见的 PHP webshell.
渗透测试工具备忘单 - 典型渗透测试的快速参考高级概述。
OWASP备忘单系列 - 是关于特定应用程序安全主题的高价值信息的集合。
OWASP 依赖项检查 - 是一个开放的 source 解决方案 OWASP Top 10 2013 条目。
OWASP 主动控制 - OWASP 2018 年 10 大主动控制。
PENTESTING-BIBLE - 黑客和渗透测试&红队和网络安全资源。
pentest-wiki - 是一个免费的在线安全知识库,供渗透测试人员/研究人员使用。
DEF CON 媒体服务器 - 来自 DEFCON 的好东西。
Awesome Malware Analysis - 精选的恶意软件分析工具和资源列表。
SQL 注入备忘单 - 有关 SQL 注入的许多不同变体的详细技术资料。
Entersoft 知识库 - 关于漏洞的精彩而详细的参考。
HTML5 Security Cheatsheet - 与 HTML5 相关的 XSS 攻击媒介的集合。
XSS 字符串编码器 - 用于生成 XSS 代码,以根据 XSS 检查输入验证筛选器。
go awayBins - 可被攻击者利用以绕过本地安全限制的 Unix 二进制文件列表。
Guifre Ruiz 笔记 - 安全、系统、网络和渗透测试备忘单的集合。
SSRF 提示 - SSRF 提示的集合。
shell-storm repo CTF - CTF 的伟大存档。
ctf - CTF(夺旗)文章、代码片段、注释、脚本.
My-CTF-Web-Challenges - CTF Web 挑战的集合。
MSTG - 移动安全测试指南 (MSTG) 是一本用于移动应用安全测试的综合手册。
Internal-Pentest-Playbook - 关于内部网络渗透测试的最常见事项的说明。 KeyHacks - 显示了可以检查漏洞赏金计划泄露的 API 密钥的快速方法。

securitum/research - Securitum 执行的各种安全研究概念证明。
public-pentesting-reports - 是由多个咨询安全组发布的公共渗透测试报告列表。
awesome-bug-bounty - 是可用 Bug 赏金的综合精选列表。
bug-bounty-reference - 是漏洞赏金文章的列表。
Awesome-Bugbounty-Writeups - 是一个精选的 bugbounty 文章列表。
漏洞赏金记录 - 漏洞赏金记录列表(2012-2020)。
hackso.me - 一次伟大的安全之旅。

▪️ 后门/漏洞利用

   PHP-backdoors - PHP 后门的集合。仅用于教育或测试目的。

▪️ 单词表和弱密码

   Weakpass - 对于任何类型的蛮力,找到单词列表或一次释放它们的力量!
Hashes.org - 是一项免费的在线哈希解析服务,融合了许多无与伦比的技术。
SecLists - 在安全评估期间使用的多种类型的列表的集合,收集在一个位置。
Probable-Wordlists - 按最初为密码生成和测试而创建的概率排序。
SkullSecurity Passwords - 密码词典和泄露的密码存储库。
波兰语高级词典 - 团队在论坛上创建的官方词典 bezpieka.org.* 1
Statistically-likely-usernames - 用于创建统计上可能的用户名列表的单词列表。

▪️ 赏金平台

   YesWeHack - 具有信息安全作业的漏洞赏金平台。
Openbugbounty - 允许任何安全研究人员报告任何网站上的漏洞。
HackerOne - 全球黑客社区,以发现最相关的安全问题。
Bugcrowd -企业的众包网络安全.
Crowdshield - 众包安全和漏洞赏金管理。
Synack - 众包安全和漏洞赏金计划、人群安全情报平台等。
Hacktrophy - 漏洞赏金平台。

▪️ Web 培训应用程序(本地安装)

   OWASP-VWAD - 所有已知易受攻击的 Web 应用程序的全面且维护良好的注册表.
DVWA - 非常容易受到攻击的 PHP/MySQL Web 应用程序。
Metasploitable2 - 安全研究人员中易受攻击的 Web 应用程序。
metasploitable3 - 是一个从头开始构建的虚拟机,存在大量安全漏洞。
DSVW - 是故意易受攻击的 Web 应用程序,用不到 100 行代码编写。
OWASP Mutillidae II - 免费、开源、故意易受攻击的 Web 应用程序。
OWASP Juice Shop Project - 现存最无错误的易受攻击的应用程序。
OWASP Node js Goat 项目 - OWASP 十大安全风险适用于使用 Node.js 开发的 Web 应用程序。
juicy-ctf - 使用 OWASP Juice Shop 运行夺旗和安全培训。
SecurityShepherd - Web 和移动应用程序安全培训平台。
Security Ninjas - 开源应用程序安全培训计划。
hackazon - 一个现代易受攻击的 Web 应用程序。
dvna - 该死的易受攻击的 NodeJS 应用程序.
django-DefectDojo - 是一个开源的应用程序漏洞关联和安全编排工具。
Google Gruyere - Web 应用程序漏洞利用和防御。
Bodhi - 是一个专注于学习利用客户端 Web 漏洞的游乐场。
Websploit - 单个 VM 实验室,目的是在一个环境中组合多个易受攻击的应用程序.
vulhub - 基于 docker-compose 的预构建易受攻击的环境.
CloudGoat 2 - 新的和改进的“设计易受攻击” AWS 部署工具。
secDevLabs - 是一个以实用方式学习安全 Web 开发的实验室。
CORS-vulnerable-Lab - 易受攻击的代码及其漏洞利用代码示例。
RootTheBox - 黑客游戏(CTF记分牌和游戏管理器).
KONTRA - 应用安全培训(OWASP Top Web & API)。

▪️ 实验室(道德黑客平台/培训/CTF)

   进攻性安全 - 十多年来真正的基于性能的渗透测试培训。
Hack The Box - 在线平台,可让你测试你的渗透测试技能。
Hacking-Lab - 在线道德黑客、计算机网络和安全挑战平台。
pwnable.kr - 非商业战争游戏网站,提供各种 PWN 挑战。
Pwnable.tw - 是一个战争游戏网站,供黑客测试和扩展他们的二进制利用技能。
picoCTF - 是一款针对初中和高中学生的免费计算机安全游戏。
CTFlearn - 是一个在线平台,旨在帮助道德黑客学习和实践他们的网络安全知识。
ctftime - CTF 存档和一个地方,你可以在其中获得其他一些与 CTF 相关的信息。
西里西亚安全实验室 - 高质量的安全测试服务。
实用渗透测试实验室 - 渗透测试实验室,将你的黑客技能提升到一个新的水平。
Root Me - 快速、简单且经济实惠的方式来训练你的黑客技能。
rozwal.to - 一个训练你的渗透测试技能的绝佳平台。
TryHackMe - 学习网络安全变得简单。
HackXor - 是一款逼真的 Web 应用程序黑客游戏,旨在帮助各种能力的玩家发展他们的技能。
先破解自己 - 它充满了令人讨厌的应用程序秒漏洞。
OverTheWire - 可以帮助你以充满乐趣的游戏形式学习和练习安全概念。
Wizard Labs - 是一个在线渗透测试实验室。 PentesterLab - 提供可用于测试和了解漏洞的易受攻击的系统。

RingZer0 - 旨在测试和提高你的黑客技能的大量挑战。
try2hack - 为你的娱乐提供几个以安全为导向的挑战。
Ubeeri - 预配置的实验室环境。
Pentestit - 模拟真实公司的 IT 基础设施,用于合法渗透测试和提高渗透测试技能。
微损坏 - 在 Web 界面中完成的逆转挑战。
Crackmes - 下载 crackmes 以帮助提高你的逆向工程技能。
DomGoat - DOM XSS 安全学习和实践平台.
刻板印象的挑战 - 立即升级你的网络黑客技术!
Vulnhub - 允许任何人获得数字安全方面的实用“实践”经验。
W3Challs - 是一个渗透测试培训平台,它提供了各种计算机挑战。
RingZer0 CTF - 为你提供大量旨在测试和提高你的黑客技能的挑战。
Hack.me - 一个可以构建、托管和共享漏洞的平台能够用于教育目的的 Web 应用程序。
HackThis! - 了解如何执行黑客攻击、转储和污损并保护你的网站。
Enigma Group WebApp 培训 - 这些挑战涵盖了 OWASP Top 10 Project 中列出的漏洞利用。
逆向工程挑战 - 挑战、练习、问题和任务 - 按级别、类型等。
0x00sec - 黑客之家 - 恶意软件、逆向工程和计算机科学。
我们挑战 - 存在许多不同的挑战类型。
黑客网关 - 是想要测试自己技能的黑客的首选之地。
Hacker101 - 是一个免费的网络安全类。
contained.af - 一个用于学习容器、功能和系统调用的愚蠢游戏。
flAWS 挑战! - 你将了解使用 AWS 时的常见错误和陷阱的一系列级别。
CyberSec WTF - 提供源自赏金文章的网络黑客挑战。
CTF 挑战赛 - CTF Web 应用程序挑战赛。
gCTF - Google CTF 2017 中使用的大多数挑战。
Hack This Site - 是一个免费、安全和合法的黑客训练场。
Attack & Defense - 是一个基于浏览器的云实验室。
Cryptohack - 一个学习现代密码学的有趣平台。
Cryptopals - cryptopals 加密挑战。

▪️ CTF平台

   fbctf - 举办夺旗比赛的平台。
ctfscoreboard - 夺旗比赛的记分牌.

▪️ 其他资源

   Bugcrowd University - 研究人员社区的开源教育内容。
OSCPRepo - 我在准备 OSCP 时收集的资源和脚本列表。
OWASP Top 10: Real-World Examples - 使用真实世界的示例测试你的 Web 应用(由两部分组成的系列)。
phrack.org - 来自几位受人尊敬的黑客和其他思想家的精彩文章集。
Practical-Ethical-Hacking-Resources -TCM的Udemy课程资源汇编.

你的每日知识和新闻 [TOC]

▪️ RSS阅读器

   Feedly - 组织、阅读和分享对你来说重要的事情。
Inoreader - 类似于 feedly,支持过滤从 rss 获取的内容。

▪️ IRC 频道

   #hackerspaces - 黑客空间 IRC 频道。

▪️ 安全

   黑客新闻 - 致力于提高安全专家和黑客意识的领先新闻来源。
最新黑客新闻 - 为道德黑客提供最新的黑客新闻、漏洞利用和漏洞。
安全时事通讯 - 安全新闻作为每周摘要(电子邮件通知)。
Google 在线安全博客 - Google 关于互联网安全的最新新闻和见解。
Qualys 博客 - 专家网络安全指南和新闻。
DARKReading - 连接信息安全社区。
暗网 - 最新的黑客工具,黑客新闻,网络安全最佳实践,道德黑客和渗透测试。
publiclyExposed - 公开披露观察者,让你了解最近披露的错误。
Reddit - Hacking - 一个专门用于黑客和黑客的子版块。
Packet Storm - 信息安全服务、新闻、文件、工具、漏洞利用、公告和白皮书。
Sekurak - 关于安全性、渗透测试、漏洞和许多其他 (PL/EN)。
nf.sec - Linux 操作系统安全 (PL) 的基本方面和机制。

▪️ 其他/多合一

   Changelog - 是一个黑客社区;面向开发人员和黑客的新闻和播客。

其他备忘单 [TOC]

构建你自己的DNS服务器

   Unbound DNS Tutorial - 验证、递归和缓存 DNS 服务器。
Fedora 上的 Knot Resolver - 如何使用 Fedora 上的 Knot Resolver 获得更快、更安全的 DNS 解析。
DNS-over-HTTPS - 设置自己的 DNS-over-HTTPS (DoH) 服务器的教程。
dns-over-https - 基于 HTTPS 的 DNS 的卡通介绍。
DNS-over-TLS - 按照 DoH 服务器,设置 DNS-over-TLS (DoT) 服务器。
DNS服务器 - 我如何(以及为什么)运行自己的DNS服务器。

建立你自己的证书颁发机构

   OpenSSL 证书颁发机构 - 使用 OpenSSL 工具构建你自己的证书颁发机构 (CA)。
step-ca 证书颁发机构 - 使用开源 step-ca 构建你自己的证书颁发机构 (CA)。

构建自己的系统/虚拟机

   os-tutorial - 如何从头开始创建操作系统。
编写自己的虚拟机 - 如何编写自己的虚拟机 (VM)。
x86 裸机示例 - 数十种用于学习 x86 系统编程的最小操作系统。
simple-computer - 来自 J. Clark Scott 的“But Do It Know?”中的斯科特 CPU。
littleosbook - 关于操作系统开发的小书。

DNS 服务器列表(隐私)
知识产权 网址
84.200.69.80
dns.watch的
94.247.43.254
opennic.org
64.6.64.6
verisign.com
89.233.43.71
censurfridns.dk
1.1.1.1
cloudflare.com
94.130.110.185
dnsprivacy.at
TOP 浏览器扩展
扩展名 描述
IPvFoo
在所有页面元素中显示服务器 IP 地址和 HTTPS 信息。
FoxyProxy
简化配置浏览器以访问代理服务器。
HTTPS Everywhere
在许多站点上自动使用 HTTPS 安全性。
uMatrix
指向并单击以禁止/允许浏览器发出的任何类别的请求。
uBlock Origin
高效的拦截器:易于占用内存和 CPU。
Session Buddy
轻松管理浏览器选项卡和书签。
SuperSorter
以递归方式对书签进行排序、删除重复项、合并文件夹等。
Clear Cache
清除缓存和浏览数据。
d3coder
用于各种编码类型的编码/解码插件。
Web Developer
添加包含各种 Web 开发人员工具的工具栏按钮。
ThreatPinch Lookup
添加威胁情报悬停工具提示。
TOP 打嗝扩展
扩展名 描述
Active Scan++
扩展了 Burp 的主动和被动扫描功能。
Autorize
自动检测授权强制执行。
AuthMatrix
一个简单的矩阵网格,用于定义所需的访问权限级别。
Logger++
将所有 Burp 工具的请求和响应记录在可排序的表格中。
Bypass WAF
添加可用于绕过某些 WAF 设备的标头。
JSON Beautifier
美化 HTTP 消息查看器中的 JSON 内容。
JSON Web Tokens
使 Burp 能够解码和操作 JSON Web 令牌。
CSP Auditor
显示响应的 CSP 标头,并被动报告 CSP 弱点。
CSP-Bypass
被动扫描包含已知旁路的 CSP 标头。
Hackvertor
使用基于标记的配置转换数据以应用各种编码。
HTML5 Auditor
扫描有风险的 HTML5 功能的使用情况。
Software Vulnerability Scanner
基于 vulners.com 审计API的漏洞扫描器。
Turbo Intruder
是一个强大的暴力破解工具。
Upload Scanner
上传多种不同的文件类型,并带有不同形式的有效负载。
Hack Mozilla Firefox地址栏

在 Firefox 的地址栏中,你可以通过在术语之前或之后键入特殊字符来限制结果:

  • ^
    - 对于浏览历史记录中的匹配项
  • *
    - 用于书签中的匹配项。
  • %
    - 用于当前打开的标签页中的匹配项。
  • #
    - 用于页面标题中的匹配项。
  • @
    - 用于网址中的匹配项。
Chrome 隐藏命令
  • chrome://chrome-urls
    - 所有命令的列表
  • chrome://flags
    - 启用实验和开发功能
  • chrome://interstitials
    - 错误和警告
  • chrome://net-internals
    - 网络内部(事件、DNS、缓存)
  • chrome://network-errors
    - 网络错误
  • chrome://net-export
    - 开始将未来的网络活动记录到文件中
  • chrome://safe-browsing
    - 安全浏览选项
  • chrome://user-actions
    - 记录所有用户操作
  • chrome://restart
    - 重新启动 Chrome
  • chrome://dino
    - ERR_INTERNET_DISCONNECTED......
  • cache:<website-address>
    - 查看网页的缓存版本
通过缩短 IP 地址绕过 WAF(通过 0xInfection)

可以通过删除零来缩短 IP 地址:

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

这绕过了 SSRF、开放重定向等的 WAF 过滤器,其中任何作为输入的 IP 都会被列入黑名单。

有关详细信息,请参阅如何隐藏任何 URL魔术 IP 地址快捷方式

哈希、加密和编码(作者:Michal Špaček)

散列法

明文哈
希哈希明⛔文 ➡️

对称加密

明文密文 明文➡️
⬅️ 🔑 ⬅️ 🔑 ➡️密文
(:key: 共享密钥)

非对称加密

明文➡️ 🔑 ➡️密文 明文
⬅️ 〽️ ⬅️密文
(:key: 公钥, :p art_alternation_mark: 私钥)

编码

文本编码
文本⬅️ ➡️编码

壳牌单衬 [TOC]

目录
工具:终端
在不退出的情况下重新加载 shell
exec $SHELL -l
关闭 shell 保持所有子进程运行
disown -a && exit
退出而不保存 shell 历史记录
kill -9 $$
unset HISTFILE && exit
执行分支条件
true && echo success
false || echo failed
通过管道将 stdout 和 stderr 分隔为命令
some_command > >(/bin/cmd_for_stdout) 2> >(/bin/cmd_for_stderr)
将 stdout 和 stderr 分别重定向到单独的文件,然后将两者打印到屏幕上
(some_command 2>&1 1>&3 | tee errorlog ) 3>&1 1>&2 | tee stdoutlog
最常使用的命令列表
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
对 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"

另请参阅:用于审查命令历史记录中凭据的幼稚实用程序

快速备份文件
cp filename{,.orig}
清空文件(截断为 0 大小)
>filename
删除文件夹中与特定文件扩展名不匹配的所有文件
rm !(*.foo|*.bar|*.baz)
将多行字符串传递到文件
# cat  >filename ... - overwrite the file
# cat >>filename ... - append to a file
cat > filename << __EOF__
data data data
__EOF__
使用 vim 编辑远程主机上的文件
vim scp://user@host//etc/fstab
创建一个目录并同时更改为该目录
mkd() { mkdir -p "$@" && cd "$@"; }
将大写文件转换为小写文件
rename 'y/A-Z/a-z/' *
在终端上打印一行字符
printf "%`tput cols`s" | tr ' ' '#'
显示不带行号的外壳历史记录
history | cut -c 8-
fc -l -n 1 | sed 's/^\s*//'
退出会话后运行命令
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__
生成数字序列
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
简单的 Bash 文件监视
unset MAIL; export MAILCHECK=1; export MAILPATH='$FILE_TO_WATCH?$MESSAGE'

工具:busybox
静态 HTTP Web 服务器
busybox httpd -p $PORT -h $HOME [-c httpd.conf]

工具:安装
挂载临时 ram 分区
mount -t tmpfs tmpfs /mnt -o size=64M
  • -t
    - 文件系统类型
  • -o
    - 安装选项
以读/写方式重新挂载文件系统
mount -o remount,rw /

工具:热熔器
显示哪些进程使用文件/目录
fuser /var/log/daemon.log
fuser -v /home/supervisor
终止正在锁定文件的进程
fuser -ki filename
  • -i
    - 互动选项
终止使用特定信号锁定文件的进程
fuser -k -HUP filename
  • --list-signals
    - 列出可用的信号名称
显示正在侦听特定端口的 PID
fuser -v 53/udp
显示使用指定文件系统或块设备的所有进程
fuser -mv /var/www

工具:lsof
显示当前使用互联网连接的进程
lsof -P -i -n
显示使用特定端口号的进程
lsof -i tcp:443
列出所有侦听端口以及关联进程的 PID
lsof -Pan -i tcp -i udp
列出所有打开的端口及其拥有的可执行文件
lsof -i -P | grep -i "listen"
显示所有打开的端口
lsof -Pnl -i
显示打开的端口 (LISTEN)
lsof -Pni4 | grep LISTEN | column -t
列出特定命令打开的所有文件
lsof -c "process"
查看每个目录的用户活动
lsof -u username -a +D /etc
显示 10 个最大的打开文件
lsof / | \
awk '{ if($7 > 1048576) print $7/1048576 "MB" " " $9 " " $1 }' | \
sort -n -u | tail | column -t
显示进程的当前工作目录
lsof -p <PID> | grep cwd

工具:ps
显示包含完整详细信息的 4 向可滚动流程树
ps awwfux | less -S
每个用户计数器的进程数
ps hax -o user | sort | uniq -c | sort -r
使用主标头按名称显示所有进程
ps -lfC nginx

工具:查找
查找过去 60 分钟内系统上修改过的文件
find / -mmin 60 -type f
查找大于 20M 的所有文件
find / -type f -size +20M
查找重复文件(基于 MD5 哈希)
find -type f -exec md5sum '{}' ';' | sort | uniq --all-repeated=separate -w 33
仅更改文件的权限
cd /var/www/site && find . -type f -exec chmod 766 {} \;
cd /var/www/site && find . -type f -exec chmod 664 {} +
仅更改目录的权限
cd /var/www/site && find . -type d -exec chmod g+x {} \;
cd /var/www/site && find . -type d -exec chmod g+rwx {} +
查找特定用户/组的文件和目录
# User:
find . -user <username> -print
find /etc -type f -user <username> -name "*.conf"

# Group:
find /opt -group <group>
find /etc -type f -group <group> -iname "*.conf"
查找所有没有特定用户/组的文件和目录
# User:
find . \! -user <username> -print

# Group:
find . \! -group <group>
查找仅具有特定权限的文件/目录
# User
find . -user <username> -perm -u+rw # -rw-r--r--
find /home -user $(whoami) -perm 777 # -rwxrwxrwx

# Group:
find /home -type d -group <group> -perm 755 # -rwxr-xr-x
删除超过 60 天的旧文件
find . -type f -mtime +60 -delete
以递归方式从目录中删除所有空子目录
find . -depth  -type d  -empty -exec rmdir {} \;
如何查找指向文件的所有硬链接
find </path/to/dir> -xdev -samefile filename
以递归方式查找最新修改的文件
find . -type f -exec stat --format '%Y :%y %n' "{}" \; | sort -nr | cut -d: -f2- | head
递归查找/替换带有 sed 的字符串
find . -not -path '*/\.git*' -type f -print0 | xargs -0 sed -i 's/foo/bar/g'
以递归方式查找/替换目录和文件名中的字符串
find . -depth -name '*test*' -execdir bash -c 'mv -v "$1" "${1//foo/bar}"' _ {} \;
递归查找 suid 可执行文件
find / \( -perm -4000 -o -perm -2000 \) -type f -exec ls -la {} \;

工具:顶部
使用 top 仅监视具有特定字符串的所有进程
top -p $(pgrep -d , <str>)
  • <str>
    - 包含字符串的进程(例如 nginx、worker)

工具:vmstat
显示当前系统利用率(以千字节为单位的字段)
vmstat 2 20 -t -w
  • 2
    - 具有定义时间间隔(延迟)的次数
  • 20
    - 命令的每次执行(计数)
  • -t
    - 显示时间戳
  • -w
    - 宽输出
  • -S M
    - 字段的输出以兆字节而不是千字节为单位
显示当前系统利用率将每 5 秒刷新一次
vmstat 5 -w
显示磁盘操作摘要报告
vmstat -D
显示事件计数器和内存统计信息的报告
vmstat -s
显示有关存储在平板层缓存中的内核对象的报告
vmstat -m
工具:iostat
显示有关 CPU 使用率的信息,以及有关所有分区的 I/O 统计信息
iostat 2 10 -t -m
  • 2
    - 具有定义时间间隔(延迟)的次数
  • 10
    - 命令的每次执行(计数)
  • -t
    - 显示时间戳
  • -m
    - 以兆字节为单位的字段( - 以千字节为单位,默认)
    -k
仅显示有关 CPU 使用率的信息
iostat 2 10 -t -m -c
仅显示有关磁盘利用率的信息
iostat 2 10 -t -m -d
仅显示有关 LVM 利用率的信息
iostat -N

工具:strace
使用子进程进行跟踪
# 1)
strace -f -p $(pidof glusterfsd)

# 2)
strace -f $(pidof php-fpm | sed 's/\([0-9]*\)/\-p \1/g')
以 30 秒限制跟踪进程
timeout 30 strace $(< /var/run/zabbix/zabbix_agentd.pid)
跟踪进程并将输出重定向到文件
ps auxw | grep '[a]pache' | awk '{print " -p " $2}' | \
xargs strace -o /tmp/strace-apache-proc.out
跟踪每个系统调用中花费的打印时间,并限制打印字符串的长度
ps auxw | grep '[i]init_policy' | awk '{print " -p " $2}' | \
xargs strace -f -e trace=network -T -s 10000
跟踪网口的打开请求
strace -f -e trace=bind nc -l 80
跟踪网络端口的打开请求(显示 TCP/UDP)
strace -f -e trace=network nc -lu 80

工具:杀戮
终止在端口上运行的进程
kill -9 $(lsof -i :<port> | awk '{l=$2} END {print l}')

工具:diff
比较两个目录树
diff <(cd directory1 && find | sort) <(cd directory2 && find | sort)
比较两个命令的输出
diff <(cat /etc/passwd) <(cut -f2 /etc/passwd)

工具:vimdiff
根据字符和单词突出显示确切的差异
vimdiff file1 file2
比较两个 JSON 文件
vimdiff <(jq -S . A.json) <(jq -S . B.json)
比较十六进制转储
d(){ vimdiff <(f $1) <(f $2);};f(){ hexdump -C $1 | cut -d' ' -f3- | tr -s ' ';}; d ~/bin1 ~/bin2
diffchar (英语)

保存 diffchar @

~/.vim/plugins

单击可在差异模式之间切换

F7

有用的命令:

vimdiff

  • qa
    退出所有窗口
  • :vertical resize 70
    调整窗口大小
  • 设置窗口宽度
    Ctrl+W [N columns]+(Shift+)<\>

工具:尾巴
用时间戳注释尾部 -f
tail -f file | while read ; do echo "$(date +%T.%N) $REPLY" ; done
分析 Apache 访问日志中最常见的 IP 地址
tail -10000 access_log | awk '{print $1}' | sort | uniq -c | sort -n | tail
分析 Web 服务器日志并仅显示 5xx 个 http 代码
tail -n 100 -f /path/to/logfile | grep "HTTP/[1-2].[0-1]\" [5]"

工具:焦油
排除特定目录的系统备份
cd /
tar -czvpf /mnt/system$(date +%d%m%Y%s).tgz --directory=/ \
--exclude=proc/* --exclude=sys/* --exclude=dev/* --exclude=mnt/* .
排除特定目录的系统备份 (pigz)
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 .

工具:转储
系统备份到文件
dump -y -u -f /backup/system$(date +%d%m%Y%s).lzo /
从lzo文件恢复系统
cd /
restore -rf /backup/system$(date +%d%m%Y%s).lzo

工具:cpulimit
限制进程的 CPU 使用率
cpulimit -p pid -l 50

工具:pwdx
显示进程的当前工作目录
pwdx <pid>

工具:任务集
仅在一个 CPU 内核上启动命令
taskset -c 0 <command>

工具:tr
在 PATH 中显示目录,每行一个
tr : '\n' <<<$PATH

工具:chmod
从当前目录中的所有文件中删除可执行位
chmod -R -x+X *
恢复 /bin/chmod 的权限
# 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

工具:
查找上次重新启动时间
who -b
在当前 shell 中检测用户 sudo-su
[[ $(who -m | awk '{ print $1 }') == $(whoami) ]] || echo "You are su-ed to $(whoami)"

工具:最后
上次重启是恐慌吗?
(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"

工具:屏幕
分离模式下的“开始”屏幕
screen -d -m <command>
附加到现有屏幕会话
screen -r -d <pid>

工具:脚本
录制和回放终端会话
### 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

工具:du
显示 20 个带有“K M G”的最大目录
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

工具:inotifywait
每次修改目录中的文件时的初始化工具
while true ; do inotifywait -r -e MODIFY dir/ && ls dir/ ; done;

工具:openssl
测试与远程主机的连接
echo | openssl s_client -connect google.com:443 -showcerts
测试与远程主机的连接(调试模式)
echo | openssl s_client -connect google.com:443 -showcerts -tlsextdebug -status
测试与远程主机的连接(支持 SNI)
echo | openssl s_client -showcerts -servername google.com -connect google.com:443
测试与具有特定 ssl 版本的远程主机的连接
openssl s_client -tls1_2 -connect google.com:443
使用特定 ssl 密码测试与远程主机的连接
openssl s_client -cipher 'AES128-SHA' -connect google.com:443
验证 0-RTT
_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
生成不带密码的私钥
# _len: 2048, 4096
( _fd="private.key" ; _len="2048" ; \
openssl genrsa -out ${_fd} ${_len} )
使用密码生成私钥
# _ciph: aes128, aes256
# _len: 2048, 4096
( _ciph="aes128" ; _fd="private.key" ; _len="2048" ; \
openssl genrsa -${_ciph} -out ${_fd} ${_len} )
从私钥中删除密码
( _fd="private.key" ; _fd_unp="private_unp.key" ; \
openssl rsa -in ${_fd} -out ${_fd_unp} )
使用密码加密现有私钥
# _ciph: aes128, aes256
( _ciph="aes128" ; _fd="private.key" ; _fd_pass="private_pass.key" ; \
openssl rsa -${_ciph} -in ${_fd} -out ${_fd_pass}
检查私钥
( _fd="private.key" ; \
openssl rsa -check -in ${_fd} )
从私钥中获取公钥
( _fd="private.key" ; _fd_pub="public.key" ; \
openssl rsa -pubout -in ${_fd} -out ${_fd_pub} )
生成私钥和 CSR
( _fd="private.key" ; _fd_csr="request.csr" ; _len="2048" ; \
openssl req -out ${_fd_csr} -new -newkey rsa:${_len} -nodes -keyout ${_fd} )
生成 CSR
( _fd="private.key" ; _fd_csr="request.csr" ; \
openssl req -out ${_fd_csr} -new -key ${_fd} )
生成 CSR(来自现有证书的元数据)

现有私钥在哪里。如你所见,你不会从证书(公钥)生成此 CSR。此外,你不会生成“相同”的 CSR,而只是生成一个新 CSR 来请求新证书。

private.key

( _fd="private.key" ; _fd_csr="request.csr" ; _fd_crt="cert.crt" ; \
openssl x509 -x509toreq -in ${_fd_crt} -out ${_fd_csr} -signkey ${_fd} )
使用 -config 参数生成 CSR
( _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   = "<two-letter ISO abbreviation for your country>"
ST  = "<state or province where your organisation is legally located>"
L   = "<city where your organisation is legally located>"
O   = "<legal name of your organisation>"
OU  = "<section of the organisation>"
CN  = "<fully qualified domain name>"

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = <fully qualified domain name>
DNS.2 = <next domain>
DNS.3 = <next domain>
__EOF__
))

其他值:

[ 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=

示例(你可能还必须通过在以下内容下添加以下内容来使 OpenSSL 了解 EV 所需的新字段):

oids
[new_oids]

[req]
...
oid_section         = new_oids

[ new_oids ]
postalCode = 2.5.4.17
streetAddress = 2.5.4.9

完整示例:

( _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__
))

欲了解更多信息,请查看这些精彩的解释:

列出可用的 EC 曲线
openssl ecparam -list_curves
打印 ECDSA 私钥和公钥
( _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} )
生成 ECDSA 私钥
# _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} )
生成私钥和 CSR (ECC)
# _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 )
生成自签名证书
# _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} )
从现有私钥生成自签名证书
# _len: 2048, 4096
( _fd="domain.key" ; _fd_out="domain.crt" ; _days="365" ; \
openssl req -key ${_fd} -nodes \
-x509 -days ${_days} -out ${_fd_out} )
从现有私钥和 csr 生成自签名证书
# _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} )
生成 DH 公共参数
( _dh_size="2048" ; \
openssl dhparam -out /etc/nginx/ssl/dhparam_${_dh_size}.pem "$_dh_size" )
显示 DH 公共参数
openssl pkeyparam -in dhparam.pem -text
从 pfx 中提取私钥
( _fd_pfx="cert.pfx" ; _fd_key="key.pem" ; \
openssl pkcs12 -in ${_fd_pfx} -nocerts -nodes -out ${_fd_key} )
从 pfx 中提取私钥和证书
( _fd_pfx="cert.pfx" ; _fd_pem="key_certs.pem" ; \
openssl pkcs12 -in ${_fd_pfx} -nodes -out ${_fd_pem} )
从 p7b 中提取证书
# 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})
将 DER 转换为 PEM
( _fd_der="cert.crt" ; _fd_pem="cert.pem" ; \
openssl x509 -in ${_fd_der} -inform der -outform pem -out ${_fd_pem} )
PEM 转换成DER
( _fd_der="cert.crt" ; _fd_pem="cert.pem" ; \
openssl x509 -in ${_fd_pem} -outform der -out ${_fd_der} )
私钥验证
( _fd="private.key" ; \
openssl rsa -noout -text -in ${_fd} )
公钥验证
# 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 )
证书验证
( _fd="certificate.crt" ; # format: pem, cer, crt \
openssl x509 -noout -text -in ${_fd} )
CSR的验证
( _fd_csr="request.csr" ; \
openssl req -text -noout -in ${_fd_csr} )
检查私钥和证书是否匹配
(openssl rsa -noout -modulus -in private.key | openssl md5 ; \
openssl x509 -noout -modulus -in certificate.crt | openssl md5) | uniq
检查私钥和 CSR 是否匹配
(openssl rsa -noout -modulus -in private.key | openssl md5 ; \
openssl req -noout -modulus -in request.csr | openssl md5) | uniq

工具:secure-delete
使用切碎进行安全删除
shred -vfuz -n 10 file
shred --verbose --random-source=/dev/urandom -n 1 /dev/sda
使用擦洗进行安全删除
scrub -p dod /dev/sda
scrub -p dod -r file
使用坏块安全删除
badblocks -s -w -t random -v /dev/sda
badblocks -c 10240 -s -w -t random -v /dev/sda
使用 secure-delete 进行安全删除
srm -vz /tmp/file
sfill -vz /local
sdmem -v
swapoff /dev/sda5 && sswap -vz /dev/sda5

工具:dd
每隔一段时间显示 dd 状态
dd <dd_params> status=progress
watch --interval 5 killall -USR1 dd
将输出重定向到带有 dd 的文件
echo "string" | dd of=filename

工具:gpg
导出公钥
gpg --export --armor "<username>" > username.pkey
  • --export
    - 从所有密钥环或特定密钥中导出所有密钥
  • -a|--armor
    - 创建ASCII铠装输出
加密文件
gpg -e -r "<username>" dump.sql
  • -e|--encrypt
    - 加密数据
  • -r|--recipient
    - 加密特定的
解密文件
gpg -o dump.sql -d dump.sql.gpg
  • -o|--output
    - 用作输出文件
  • -d|--decrypt
    - 解密数据(默认)
搜索收件人
gpg --keyserver hkp://keyserver.ubuntu.com --search-keys "<username>"
  • --keyserver
    - 设置特定的密钥服务器
  • --search-keys
    - 在密钥服务器上搜索密钥
列出加密文件中的所有数据包
gpg --batch --list-packets archive.gpg
gpg2 --batch --list-packets archive.gpg

工具:系统-其他
从 init 重新启动系统
exec /sbin/init 6
从单用户模式初始化系统
exec /sbin/init
显示进程的当前工作目录
readlink -f /proc/<PID>/cwd
显示已执行命令的实际路径名
readlink -f /proc/<PID>/exe
工具:卷曲
curl -Iks https://www.google.com
  • -I
    - 仅显示响应标头
  • -k
    - 使用SSL时连接不安全
  • -s
    - 静音模式(非显示主体)
curl -Iks --location -X GET -A "x-agent" https://www.google.com
  • --location
    - 关注重定向
  • -X
    - set 方法
  • -A
    - 设置用户代理
curl -Iks --location -X GET -A "x-agent" --proxy http://127.0.0.1:16379 https://www.google.com
  • --proxy [socks5://|http://]
    - 设置代理服务器
curl -o file.pdf -C - https://example.com/Aiju2goo0Ja2.pdf
  • -o
    - 将输出写入文件
  • -C
    - 恢复转移
查找外部 IP 地址(外部服务)
curl ipinfo.io
curl ipinfo.io/ip
curl icanhazip.com
curl ifconfig.me/ip ; echo
重复 URL 请求
# 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
检查带有特定域标头的 DNS 和 HTTP 跟踪
### 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

工具:httpie
http -p Hh https://www.google.com
  • -p
    - 打印请求和响应标头
    • H
      - 请求标头
    • B
      - 请求正文
    • h
      - 响应标头
    • b
      - 响应正文
http -p Hh https://www.google.com --follow --verify no
  • -F, --follow
    - 关注重定向
  • --verify no
    - 跳过SSL验证
http -p Hh https://www.google.com --follow --verify no \
--proxy http:http://127.0.0.1:16379
  • --proxy [http:]
    - 设置代理服务器
工具:ssh
转义序列
# 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
将远程文件与本地文件进行比较
ssh user@host cat /path/to/remotefile | diff /path/to/localfile -
通过中间主机的 SSH 连接
ssh -t reachable_host ssh unreachable_host
在远程主机上通过 SSH 运行命令
cat > cmd.txt << __EOF__
cat /etc/hosts
__EOF__

ssh host -l user $(<cmd.txt)
从私钥中获取公钥
ssh-keygen -y -f ~/.ssh/id_rsa
获取所有指纹
ssh-keygen -l -f .ssh/known_hosts
使用用户密码进行 SSH 身份验证
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no user@remote_host
使用公钥进行 SSH 身份验证
ssh -o PreferredAuthentications=publickey -o PubkeyAuthentication=yes -i id_rsa user@remote_host
简单录制 SSH 会话
function _ssh_sesslog() {

  _sesdir="<path/to/session/logs>"

  mkdir -p "${_sesdir}" && \
  ssh $@ 2>&1 | tee -a "${_sesdir}/$(date +%Y%m%d).log"

}

# Alias:
alias ssh='_ssh_sesslog'
使用钥匙串进行 SSH 登录
### 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 登录,不处理任何登录脚本
ssh -tt user@host bash
SSH本地端口转发

示例 1:

# 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

示例 2:

# 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
    - 重定向 stdin
    /dev/null
  • -N
    - 不要执行远程命令
  • -T
    - 禁用伪终端分配
SSH远程端口转发
# 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

工具:linux-dev
测试与端口的远程连接
timeout 1 bash -c "</dev/<proto>/<host>/<port>" >/dev/null 2>&1 ; echo $?
  • <proto
    - 设置协议 (TCP/UDP)
  • <host>
    - 设置远程主机
  • <port>
    - 设置目标端口
使用常用的 bash 工具读取和写入 TCP 或 UDP 套接字
exec 5<>/dev/tcp/<host>/<port>; cat <&5 & cat >&5; exec 5>&-

工具:tcpdump
过滤传入(接口上)流量(特定 ip:port)
tcpdump -ne -i eth0 -Q in host 192.168.252.1 and port 443
  • -n
    - 不转换地址(不会解析主机名或端口)
    -nn
  • -e
    - 打印链路级标题
  • -i [iface|any]
    - 设置接口
  • -Q|-D [in|out|inout]
    - 选择发送/接收方向( - 对于旧的 tcpdump 版本)
    -D
  • host [ip|hostname]
    - 设置主机,也
    [host not]
  • [and|or]
    - 设置逻辑
  • port [1-65535]
    - 设置端口号,同时
    [port not]
过滤传入(接口上)流量(特定 ip:port)并写入文件
tcpdump -ne -i eth0 -Q in host 192.168.252.1 and port 443 -c 5 -w tcpdump.pcap
  • -c [num]
    - 仅捕获 num 个数据包
  • -w [filename]
    - 将数据包写入文件, - 从文件中读取
    -r [filename]
捕获所有 ICMP 数据包
tcpdump -nei eth0 icmp
检查服务使用的协议(TCP 或 UDP)
tcpdump -nei eth0 tcp port 22 -vv -X | egrep "TCP|UDP"
显示 ASCII 文本(使用 grep 或其他方式解析输出)
tcpdump -i eth0 -A -s0 port 443
抓住两个关键字之间的所有内容
tcpdump -i eth0 port 80 -X | sed -n -e '/username/,/=ldap/ p'
抓住用户并传递普通的 http
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
从 HTTP 请求标头中提取 HTTP 用户代理
tcpdump -ei eth0 -nn -A -s1500 -l | grep "User-Agent:"
仅捕获 HTTP GET 和 POST 数据包
tcpdump -ei eth0 -s 0 -A -vv \
'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420' or 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354'

或者简单地说:

tcpdump -ei eth0 -s 0 -v -n -l | egrep -i "POST /|GET /|Host:"
旋转捕获文件
tcpdump -ei eth0 -w /tmp/capture-%H.pcap -G 3600 -C 200
  • -G <num>
    - 每秒将创建一次 PCAP
    <num>
  • -C <size>
    - 关闭当前 PCAP,如果大于
    <size>
按数据包排名靠前的主机
tcpdump -ei enp0s25 -nnn -t -c 200 | cut -f 1,2,3,4 -d '.' | sort | uniq -c | sort -nr | head -n 20
排除任何 RFC 1918 专用地址
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))'

工具:tcpick
实时分析数据包
while true ; do tcpick -a -C -r dump.pcap ; sleep 2 ; clear ; done

工具:ngrep
ngrep -d eth0 "www.domain.com" port 443
  • -d [iface|any]
    - 设置接口
  • [domain]
    - 设置主机名
  • port [1-65535]
    - 设置端口号
ngrep -d eth0 "www.domain.com" src host 10.240.20.2 and port 443
  • (host [ip|hostname])
    - 按IP或主机名过滤
  • (port [1-65535])
    - 按端口号过滤
ngrep -d eth0 -qt -O ngrep.pcap "www.domain.com" port 443
  • -q
    - 安静模式(仅有效载荷)
  • -t
    - 添加了时间戳
  • -O [filename]
    - 将输出保存到文件, - 从文件中读取
    -I [filename]
ngrep -d eth0 -qt 'HTTP' 'tcp'
  • HTTP
    - 显示 HTTP 标头
  • tcp|udp
    - 设置协议
  • [src|dst] host [ip|hostname]
    - 为特定节点设置方向
ngrep -l -q -d eth0 -i "User-Agent: curl*"
  • -l
    - STDOUT线路缓冲
  • -i
    - 不区分大小写的搜索

工具:hping3
hping3 -V -p 80 -s 5050 <scan_type> www.google.com
  • -V|--verbose
    - 详细模式
  • -p|--destport
    - 设置目标端口
  • -s|--baseport
    - 设置源端口
  • <scan_type>
    - 设置扫描类型
    • -F|--fin
      - 设置 FIN 标志,如果没有回复,端口打开
    • -S|--syn
      - 设置 SYN 标志
    • -P|--push
      - 设置 PUSH 标志
    • -A|--ack
      - 设置 ACK 标志(当 ping 被阻止时使用,如果端口打开,则返回 RST 响应)
    • -U|--urg
      - 设置 URG 标志
    • -Y|--ymas
      - 设置 Y 未使用的标志 (0x80 - nullscan),如果没有回复,端口打开
    • -M 0 -UPF
      - 设置TCP序列号和扫描类型(URG+PUSH+FIN),如果没有回复,端口打开
hping3 -V -c 1 -1 -C 8 www.google.com
  • -c [num]
    - 数据包计数
  • -1
    - 设置ICMP模式
  • -C|--icmptype [icmp-num]
    - 设置 ICMP 类型(默认 ICMP-ECHO = 8)
hping3 -V -c 1000000 -d 120 -S -w 64 -p 80 --flood --rand-source <remote_host>
  • --flood
    - 尽可能快地发送数据包(不显示回复)
  • --rand-source
    - 随机源地址模式
  • -d --data
    - 数据大小
  • -w|--win
    - winsize(默认 64)

工具:nmap
Ping 扫描网络
nmap -sP 192.168.0.0/24
仅显示打开的端口
nmap -F --open 192.168.0.0/24
使用服务版本检测的完整 TCP 端口扫描
nmap -p 1-65535 -sV -sS -T4 192.168.0.0/24
Nmap 扫描并将输出传递给 Nikto
nmap -p80,443 192.168.0.0/24 -oG - | nikto.pl -h -
使用 Nmap NSE 脚本堆栈进行特定于 ip:service 的 Recon
# 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"

工具:netcat
nc -kl 5000
  • -l
    - 侦听传入连接
  • -k
    - 客户端断开连接后侦听
  • >filename.out
    - 将接收数据保存到文件(可选)
nc 192.168.0.1 5051 < filename.in
  • < filename.in
    - 将数据发送到远程主机
nc -vz 10.240.30.3 5000
  • -v
    - 详细输出
  • -z
    - 扫描侦听守护进程
nc -vzu 10.240.30.3 1-65535
  • -u
    - 仅扫描 UDP 端口
传输数据文件(存档)
server> nc -l 5000 | tar xzvfp -
client> tar czvfp - /path/to/dir | nc 10.240.30.3 5000
启动远程 shell
# 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
简单文件服务器
while true ; do nc -l 5000 | tar -xvf - ; done
简单的最小 HTTP 服务器
while true ; do nc -l -p 1500 -c 'echo -e "HTTP/1.1 200 OK\n\n $(date)"' ; done
简单 HTTP 服务器

每次请求后重新启动 Web 服务器 - 仅删除单个连接的条件。

while

cat > index.html << __EOF__
<!doctype html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <title></title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">
    </head>
    <body>

    <p>

      Hello! It's a site.

    </p>

    </body>
</html>
__EOF__
server> while : ; do \
(echo -ne "HTTP/1.1 200 OK\r\nContent-Length: $(wc -c <index.html)\r\n\r\n" ; cat index.html;) | \
nc -l -p 5000 \
; done
  • -p
    - 端口号
简单 HTTP 代理(单连接)
#!/usr/bin/env bash

if [[ $# != 2 ]] ; then
  printf "%s\\n" \
         "usage: ./nc-proxy listen-port bk_host:bk_port"
fi

_listen_port="$1"
_bk_host=$(echo "$2" | cut -d ":" -f1)
_bk_port=$(echo "$2" | cut -d ":" -f2)

printf "  lport: %s\\nbk_host: %s\\nbk_port: %s\\n\\n" \
       "$_listen_port" "$_bk_host" "$_bk_port"

_tmp=$(mktemp -d)
_back="$_tmp/pipe.back"
_sent="$_tmp/pipe.sent"
_recv="$_tmp/pipe.recv"

trap 'rm -rf "$_tmp"' EXIT

mkfifo -m 0600 "$_back" "$_sent" "$_recv"

sed "s/^/=> /" <"$_sent" &
sed "s/^/<=  /" <"$_recv" &

nc -l -p "$_listen_port" <"$_back" | \
tee "$_sent" | \
nc "$_bk_host" "$_bk_port" | \
tee "$_recv" >"$_back"
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
创建一次性 TCP 或 UDP 代理
### 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"

工具:gnutls-cli
测试与远程主机的连接(支持 SNI)
gnutls-cli -p 443 google.com
测试与远程主机的连接(不支持 SNI)
gnutls-cli --disable-sni -p 443 google.com

工具:socat
测试与端口的远程连接
socat - TCP4:10.240.30.3:22
  • -
    - 标准输入 (STDIO)
  • TCP4:<params>
    - 设置具有特定参数的 TCP4 连接
    • [hostname|ip]
      - 设置主机名/IP
    • [1-65535]
      - 设置端口号
在 Linux 下将 TCP 流量重定向到 UNIX 域套接字
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:<params>
    - 使用特定参数设置 TCP 监听
    • [1-65535]
      - 设置端口号
    • bind=[hostname|ip]
      - 设置绑定主机名/IP
    • reuseaddr
      - 允许其他套接字绑定到一个地址
    • fork
      - 使父进程尝试生成更多连接
    • su=nobody
      - 设置用户
    • range=[ip-range]
      - IP 范围
  • UNIX-CLIENT:<params>
    - 与指定的对等套接字通信
    • filename
      - 定义套接字

工具:p0f
将 iface 设置为混杂模式并将流量转储到日志文件
p0f -i enp0s25 -p -d -o /dump/enp0s25.log
  • -i
    - 侦听指定的接口
  • -p
    - 将接口设置为混杂模式
  • -d
    - 分叉到背景
  • -o
    - 输出文件

工具:netstat
每个主机的连接数图 #
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 "" }'
监控特定端口的打开连接,包括侦听、计数和按 IP 排序
watch "netstat -plan | grep :443 | awk {'print \$5'} | cut -d: -f 1 | sort | uniq -c | sort -nk 1"
从本地 IPv4 侦听端口抓取横幅
netstat -nlt | grep 'tcp ' | grep -Eo "[1-9][0-9]*" | xargs -I {} sh -c "echo "" | nc -v -n -w1 127.0.0.1 {}"

工具:rsync
使用 sudo 以 root 身份同步远程数据
rsync --rsync-path 'sudo rsync' username@hostname:/path/to/dir/ /local/

工具:主机
解析域名(使用外部 dns 服务器)
host google.com 9.9.9.9
检查域管理员(SOA 记录)
host -t soa google.com 9.9.9.9

工具:挖掘
解析域名(短输出)
dig google.com +short
Lookup NS record for specific domain
dig @9.9.9.9 google.com NS
Query only answer section
dig google.com +nocomments +noquestion +noauthority +noadditional +nostats
Query ALL DNS Records
dig google.com ANY +noall +answer
DNS Reverse Look-up
dig -x 172.217.16.14 +short

Tool: certbot
Generate multidomain certificate
certbot certonly -d example.com -d www.example.com
Generate wildcard certificate
certbot certonly --manual --preferred-challenges=dns -d example.com -d *.example.com
Generate certificate with 4096 bit private key
certbot certonly -d example.com -d www.example.com --rsa-key-size 4096

Tool: network-other
Get all subnets for specific AS (Autonomous system)
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
_dname="google.com" ; curl -s "https://dns.google.com/resolve?name=${_dname}&type=A" | jq .
Tool: git
Log alias for a decent view of your repo
# 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
Static HTTP web server
# 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
# 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
python -m base64 -e <<< "sample string"
Decode base64
python -m base64 -d <<< "dGhpcyBpcyBlbmNvZGVkCg=="
Tool: awk
Search for matching lines
# egrep foo
awk '/foo/' filename
Search non matching lines
# egrep -v foo
awk '!/foo/' filename
Print matching lines with numbers
# egrep -n foo
awk '/foo/{print FNR,$0}' filename
Print the last column
awk '{print $NF}' filename
Find all the lines longer than 80 characters
awk 'length($0)>80{print FNR,$0}' filename
Print only lines of less than 80 characters
awk 'length < 80' filename
Print double new lines a file
awk '1; { print "" }' filename
Print line numbers
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
awk 'NF { $0=++a " :" $0 }; { print }' filename
Print the line and the next two (i=5) lines after the line matching regexp
awk '/foo/{i=5+1;}{if(i){i--; print;}}' filename
Print the lines starting at the line matching 'server {' until the line matching '}'
awk '/server {/,/}/' filename
Print multiple columns with separators
awk -F' ' '{print "ip:\t" $2 "\n port:\t" $3' filename
Remove empty lines
awk 'NF > 0' filename

# alternative:
awk NF filename
Delete trailing white space (spaces, tabs)
awk '{sub(/[ \t]*$/, "");print}' filename
Delete leading white space
awk '{sub(/^[ \t]+/, ""); print}' filename
Remove duplicate consecutive lines
# uniq
awk 'a !~ $0{print}; {a=$0}' filename
Remove duplicate entries in a file without sorting
awk '!x[$0]++' filename
Exclude multiple columns
awk '{$1=$3=""}1' filename
Substitute foo for bar on lines matching regexp
awk '/regexp/{gsub(/foo/, "bar")};{print}' filename
Add some characters at the beginning of matching lines
awk '/regexp/{sub(/^/, "++++"); print;next;}{print}' filename
Get the last hour of Apache logs
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
Print a specific line from a file
sed -n 10p /path/to/file
Remove a specific line from a file
sed -i 10d /path/to/file
# alternative (BSD): sed -i'' 10d /path/to/file
Remove a range of lines from a file
sed -i <file> -re '<start>,<end>d'
Replace newline(s) with a space
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, regex for new line, by a space, global match (as many times as it can)
    /\n/
    / /
    /g

Alternatives:

# 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
sed '/start/,+4d' /path/to/file

Tool: grep
Search for a "pattern" inside all files in the current directory
grep -rn "pattern"
grep -RnisI "pattern" *
fgrep "pattern" * -R
Show only for multiple patterns
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
grep -vE '(error|critical|warning)' filename
Show data from file without comments
grep -v ^[[:space:]]*# filename
Show data from file without comments and new lines
egrep -v '#|^$' filename
Show strings with a dash/hyphen
grep -e -- filename
grep -- -- filename
grep "\-\-" filename
Remove blank lines from a file and save output to new file
grep . filename > newfilename
Tool: perl
Search and replace (in place)
perl -i -pe's/SEARCH/REPLACE/' filename
Edit of files changing all foo to bar (and backup original)
*.conf
perl -p -i.orig -e 's/\bfoo\b/bar/g' *.conf
Prints the first 20 lines from files
*.conf
perl -pe 'exit if $. > 20' *.conf
Search lines 10 to 20
perl -ne 'print if 10 .. 20' filename
Delete first 10 lines (and backup original)
perl -i.orig -ne 'print unless 1 .. 10' filename
Delete all but lines between foo and bar (and backup original)
perl -i.orig -ne 'print unless /^foo$/ .. /^bar$/' filename
Reduce multiple blank lines to a single line
perl -p -i -00pe0 filename
Convert tabs to spaces (1t = 2sp)
perl -p -i -e 's/\t/  /g' filename
从文件中读取输入并报告行数和字符数
perl -lne '$i++; $in += length($_); END { print "$i lines, $in characters"; }' filename

炮弹技巧 [TOC]

当你得到一个贝壳时,它通常不是很干净,但是在完成这些步骤后,你会有一个相当干净和舒适的贝壳来使用。

  1. script /dev/null -c bash
  2. Ctrl-Z(将其发送到后台)
  3. stty raw -echo; fg
    (将 shell 返回到前台)
  4. reset
    (重置终端)
  5. xterm
    (当被问及端子类型时)
  6. export TERM=xterm; export SHELL=bash

Shell 函数 [TOC]

目录
域解析
# 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

}

例:

shell> DomainResolve nmap.org
nmap.org > 45.33.49.119

shell> DomainResolve nmap.org
Unsuccessful domain name resolution.
获取 ASN
# 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

}

例:

shell> GetASN 1.1.1.1
1.1.1.1 > AS13335 Cloudflare, Inc.

shell> GetASN 0.0.0.0
Unsuccessful ASN gathering.