<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>F145H 的博客</title><link>http://47.98.243.15/</link><description>Recent content on F145H 的博客</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Wed, 14 Oct 2026 00:00:00 +0800</lastBuildDate><atom:link href="http://47.98.243.15/index.xml" rel="self" type="application/rss+xml"/><item><title>TerraformGoat 云靶场</title><link>http://47.98.243.15/posts/terraformgoat/</link><pubDate>Wed, 14 Oct 2026 00:00:00 +0800</pubDate><guid>http://47.98.243.15/posts/terraformgoat/</guid><description>&lt;h2 id="阿里云"&gt;阿里云&lt;/h2&gt;&#10;&lt;p&gt;首先，在阿里云工作台创建 Accesskey。然后按照 README.md 部署靶场。在执行 terraform apply 时遇到报错，回到阿里充值一定金额并在 &lt;a href="https://oss.console.aliyun.com/"&gt;https://oss.console.aliyun.com/&lt;/a&gt; 开启OSS对象存储服务后重新部署。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://47.98.243.15/posts/terraformgoat/TerraformGoat-1-1.png" alt="image" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;</description></item><item><title>恶意软件分析</title><link>http://47.98.243.15/posts/note/</link><pubDate>Mon, 27 Oct 2025 00:00:00 +0800</pubDate><guid>http://47.98.243.15/posts/note/</guid><description>&lt;h2 id="basic-knowledge"&gt;Basic knowledge&lt;/h2&gt;&#10;&lt;h3 id="恶意软件种类划分"&gt;恶意软件种类划分&lt;/h3&gt;&#10;&lt;p&gt;根据分析方法，可以将恶意软件分析分为以下四种&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;基础静态分析&lt;/li&gt;&#10;&lt;li&gt;基础动态分析&lt;/li&gt;&#10;&lt;li&gt;高级静态分析&lt;/li&gt;&#10;&lt;li&gt;高级动态分析&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;根据种类，可以将恶意软件分为以下九种&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Backdoor&lt;/li&gt;&#10;&lt;li&gt;Botnet&lt;/li&gt;&#10;&lt;li&gt;Downloader&lt;/li&gt;&#10;&lt;li&gt;Launcher&lt;/li&gt;&#10;&lt;li&gt;Information-stealing malware&lt;/li&gt;&#10;&lt;li&gt;Rookit&lt;/li&gt;&#10;&lt;li&gt;Scareware&lt;/li&gt;&#10;&lt;li&gt;Spam-sending malware&lt;/li&gt;&#10;&lt;li&gt;Worm or virus&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="pe头相关知识"&gt;PE头相关知识&lt;/h3&gt;&#10;&lt;h4 id="导入未列出的链接函数"&gt;导入未列出的链接函数&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;LoadLibrary&lt;/li&gt;&#10;&lt;li&gt;GetProcAddress&lt;/li&gt;&#10;&lt;li&gt;LdrLoadDll&lt;/li&gt;&#10;&lt;li&gt;LdrGetProcAddress&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="关于导入函数名公约"&gt;关于导入函数名公约&lt;/h4&gt;&#10;&lt;p&gt;当微软更新一个和旧版本不兼容的新功能时，会在新的函数后方加入 &lt;code&gt;Ex&lt;/code&gt;，且可以叠加如 &lt;code&gt;ExEx&lt;/code&gt;。这代表这个函数经历了两次这种类型的更新，且旧版本会继续被支持。而 &lt;code&gt;A&lt;/code&gt; 或 &lt;code&gt;W&lt;/code&gt; 的后缀仅表示这个函数支持 ASCII String 或 WCHAR String 类型的输入。&lt;/p&gt;</description></item><item><title>kernel</title><link>http://47.98.243.15/posts/kernel/</link><pubDate>Thu, 23 Oct 2025 00:00:00 +0800</pubDate><guid>http://47.98.243.15/posts/kernel/</guid><description/></item><item><title>恶意代码分析实战-Labs</title><link>http://47.98.243.15/posts/practialmalwareanalysis/</link><pubDate>Thu, 23 Oct 2025 00:00:00 +0800</pubDate><guid>http://47.98.243.15/posts/practialmalwareanalysis/</guid><description>&lt;h2 id="1"&gt;1&lt;/h2&gt;&#10;&lt;h3 id="1-1"&gt;1-1&lt;/h3&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;先将文件Hash上传 VirusTotal 查看信息&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img src="http://47.98.243.15/posts/practialmalwareanalysis/PMAlab-1-1-1.png" alt="img" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://47.98.243.15/posts/practialmalwareanalysis/PMAlab-1-1-2.png" alt="img" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;ol start="2"&gt;&#10;&lt;li&gt;使用 PEStudio 查看文件信息，可以知道编译时间&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img src="http://47.98.243.15/posts/practialmalwareanalysis/PMAlab-1-1-3.png" alt="img" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;ol start="3"&gt;&#10;&lt;li&gt;查看节区表信息，认为没有进行加壳或混淆&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img src="http://47.98.243.15/posts/practialmalwareanalysis/PMAlab-1-1-4.png" alt="img" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;ol start="4"&gt;&#10;&lt;li&gt;查看导入表，发现有使用网络传输的模块，和遍历本地文件的模块，认为可能是泄露本地信息的恶意行为。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img src="http://47.98.243.15/posts/practialmalwareanalysis/PMAlab-1-1-5.png" alt="img" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;ol start="5"&gt;&#10;&lt;li&gt;在 strings 中可以看到有一个形似 kernel32.dll 的 kerne132.dll。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img src="http://47.98.243.15/posts/practialmalwareanalysis/PMAlab-1-1-6.png" alt="img" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;ol start="6"&gt;&#10;&lt;li&gt;在 strings 中可以看到有一个IP地址。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img src="http://47.98.243.15/posts/practialmalwareanalysis/PMAlab-1-1-7.png" alt="img" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;ol start="7"&gt;&#10;&lt;li&gt;根据以上信息认为是一个 Uploader 或者是一个 Downloader&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h3 id="1-2"&gt;1-2&lt;/h3&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;上传至 VirusTotal 查看报告&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img src="http://47.98.243.15/posts/practialmalwareanalysis/PMAlab-1-2-1.png" alt="img" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;ol start="2"&gt;&#10;&lt;li&gt;使用 DIE 和 PEStudio 都可以看到，DIE 检测到有 UPX 壳，而 节区表中的节区名为 UPX0 UPX1 是明显的 UPX 加壳特征。使用 UPX 官方软件脱壳即可。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img src="http://47.98.243.15/posts/practialmalwareanalysis/PMAlab-1-2-2.png" alt="img" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;</description></item><item><title>简单的关于环境设置</title><link>http://47.98.243.15/posts/init/</link><pubDate>Thu, 23 Oct 2025 00:00:00 +0800</pubDate><guid>http://47.98.243.15/posts/init/</guid><description>&lt;h2 id="核心组件安装"&gt;核心组件安装&lt;/h2&gt;&#10;&lt;h3 id="flarevm"&gt;flarevm&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://github.com/ionuttbara/windows-defender-remover/releases/tag/release_def_12_8_4"&gt;https://github.com/ionuttbara/windows-defender-remover/releases/tag/release_def_12_8_4&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;它真的会耗费很长时间&amp;hellip;&lt;/p&gt;&#10;&lt;p&gt;完成后继续安装一些必要软件如 &lt;code&gt;mingw&lt;/code&gt; 等，并手动设置环境变量和位置。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;choco install mingw&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;注意： flarevm 的正常组件中是不包括 &lt;strong&gt;IDA Pro&lt;/strong&gt; 的（除非你持有正版许可证）&lt;/p&gt;&#10;&lt;h3 id="remnux"&gt;remnux&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://remnux.org/"&gt;https://remnux.org/&lt;/a&gt;&lt;/p&gt;&#10;&lt;h3 id="网络配置"&gt;网络配置&lt;/h3&gt;&#10;&lt;p&gt;处于安全性，虚拟机必须与外界网络隔离。&lt;/p&gt;&#10;&lt;p&gt;在 vmware 创建一个 /dev/vmnet2 hostonly 来保证环境的安全性。&lt;/p&gt;&#10;&lt;p&gt;设置 flarevm &lt;code&gt;10.0.0.2/24&lt;/code&gt; 和 remnux &lt;code&gt;10.0.0.3/24&lt;/code&gt; 并将 flarevm 的 dns 和 网关 指向 remnux。&lt;/p&gt;</description></item><item><title>PMAT-labs Challenge 1: SillyPutty</title><link>http://47.98.243.15/posts/sillyputty/</link><pubDate>Sat, 27 Sep 2025 00:00:00 +0800</pubDate><guid>http://47.98.243.15/posts/sillyputty/</guid><description>&lt;p&gt;首先，看一下 README.md 的信息&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Hello Analyst,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;The help desk has received a few calls from different IT admins regarding the attached program. They say that they&amp;#39;ve been using this program with no problems until recently. Now, it&amp;#39;s crashing randomly and popping up blue windows when it&amp;#39;s run. I don&amp;#39;t like the sound of that. Do your thing!&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;IR Team&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#79c0ff"&gt;## Objective&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Perform basic static and basic dynamic analysis on this malware sample and extract facts about the malware&amp;#39;s behavior. Answer the challenge questions below. If you get stuck, the &lt;span style="color:#a5d6ff"&gt;`answers/`&lt;/span&gt; directory has the answers to the challenge.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#79c0ff"&gt;## Tools&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Basic Static:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; File hashes&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; VirusTotal&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; FLOSS&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; PEStudio&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; PEView&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Basic Dynamic Analysis&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; Wireshark&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; Inetsim&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; Netcat&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; TCPView&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; Procmon&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#79c0ff"&gt;## Challenge Questions:&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#79c0ff"&gt;### Basic Static Analysis&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; What is the SHA256 hash of the sample?&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; What architecture is this binary?&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; Are there any results from submitting the SHA256 hash to VirusTotal?&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; Describe the results of pulling the strings from this binary. Record and describe any strings that are potentially interesting. Can any interesting information be extracted from the strings?&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; Describe the results of inspecting the IAT for this binary. Are there any imports worth noting?&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; Is it likely that this binary is packed?&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#79c0ff"&gt;### Basic Dynamic Analysis&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; Describe initial detonation. Are there any notable occurrences at first detonation? Without internet simulation? With internet simulation?&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; From the host-based indicators perspective, what is the main payload that is initiated at detonation? What tool can you use to identify this?&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; What is the DNS record that is queried at detonation?&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; What is the callback port number at detonation?&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; What is the callback protocol at detonation?&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; How can you use host-based telemetry to identify the DNS record, port, and protocol?&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff7b72"&gt;-&lt;/span&gt; Attempt to get the binary to initiate a shell on the localhost. Does a shell spawn? What is needed for a shell to spawn?&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;现在，我们将围绕这些问题对程序进行分析：&lt;/p&gt;</description></item><item><title>GDBfuzz: Fuzzing Embedded Systems using Debug Interfaces</title><link>http://47.98.243.15/posts/gdbfuzz/</link><pubDate>Thu, 25 Sep 2025 00:00:00 +0800</pubDate><guid>http://47.98.243.15/posts/gdbfuzz/</guid><description>&lt;p&gt;前记：在对 DIR-816路由器 的漏洞 CVE-2025-5623 的复现过程中，发现这是一个典型的内存溢出漏洞，利用该漏洞可以控制路由器的内存，从而实现对路由器的控制。为了进一步研究该漏洞和学习相关fuzz工具，模拟漏洞发现过程，我们使用了 GDBfuzz 这个工具来对路由器进行 fuzzing 测试。&lt;/p&gt;&#10;&lt;p&gt;相关论文在 &lt;code&gt;docs/Fuzzing Embedded Systems using Debug Interfaces.pdf&lt;/code&gt;&lt;/p&gt;&#10;&lt;h2 id="gdbfuzz-的安装和测试"&gt;GDBfuzz 的安装和测试&lt;/h2&gt;&#10;&lt;p&gt;首先，从最基础的安装和使用学习 gdbfuzz 这个工具。&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;git clone https://github.com/F145H-F145H/gdbfuzz&#10;cd gdbfuzz&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;根据 &lt;code&gt;README.md&lt;/code&gt; 文档，我们最好使用一个独立的 python 环境，且最好是 3.10 版本，笔者在 python3.13 环境下安装依赖时遇到了错误。在 &lt;code&gt;make&lt;/code&gt; 的过程中，如果遇到错误或网络问题等，可以根据 &lt;code&gt;Makefile&lt;/code&gt; 文件手动解决问题。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;conda create -n python310 &lt;span style="color:#79c0ff"&gt;python&lt;/span&gt;&lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt;3.10&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;conda activate python310 &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# 这里我使用 miniconda 管理python版本，可以在这里进行安装： &lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# https://www.anaconda.com/docs/getting-started/miniconda/install#linux-2&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;python3 -m venv .venv&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;source .vnev/bin/activate &lt;span style="color:#8b949e;font-style:italic"&gt;# 使用本地虚拟环境&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;make&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod a+x ./src/GDBFuzz/main.py&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;安装完成后，我们可以由简到繁地进行测试。首先，我们打开./为了进一步观察 fuzz 过程，我们使用 Ghidra 打开测试程序，使用 &lt;code&gt;Script Manager&lt;/code&gt;，搜索 &lt;code&gt;bridge&lt;/code&gt; 关键字，找到 &lt;code&gt;ghidra_bridge_port.py&lt;/code&gt; 设置端，然后运行 &lt;code&gt;ghidra_bridge_server_background.py&lt;/code&gt;，注意 .cfg 文件的端口需要和这里保持一致。&lt;/p&gt;</description></item><item><title>DIR816路由器栈溢出复现和深入探索</title><link>http://47.98.243.15/posts/cve-2025-5623/</link><pubDate>Fri, 29 Aug 2025 00:00:00 +0800</pubDate><guid>http://47.98.243.15/posts/cve-2025-5623/</guid><description>&lt;h2 id="路由器漏洞分析"&gt;路由器漏洞分析&lt;/h2&gt;&#10;&lt;p&gt;在官网下载对应版本固件&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://www.dlink.com.cn/techsupport/ProductInfo.aspx?m=DIR-816"&gt;https://www.dlink.com.cn/techsupport/ProductInfo.aspx?m=DIR-816&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;固件：&#10;&lt;a href="http://47.98.243.15/files/iot/DIR-816A2_FWv1.10CNB05_R1B011D88210.img"&gt;DIR-816A2_FWv1.10CNB05_R1B011D88210.img&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;使用 &lt;code&gt;binwalk&lt;/code&gt; 查看信息，没有加密，因此直接进行解包，提取出系统进行分析。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;binwalk -Me DIR-816A2_FWv1.10CNB05_R1B011D88210.img&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;find ./ -iname &lt;span style="color:#a5d6ff"&gt;&amp;#39;busybox&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cp -r ./extractions/DIR-816A2_FWv1.10CNB05_R1B011D88210.img.extracted/0/Linux_Kernel_Image.bin.extracted/1822EE/squashfs-root/ .&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="http://47.98.243.15/posts/cve-2025-5623/CVE-2025-5623-1-1.png" alt="image" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;这个漏洞存在于 &lt;code&gt;/bin/goahead&lt;/code&gt; 程序中 &lt;code&gt;isIpNetmaskValid&lt;/code&gt; 函数中，由于主调函数的 &lt;code&gt;sip_address&lt;/code&gt; 和 &lt;code&gt;dip_address&lt;/code&gt; 参数可控，在其后传参并调用的此函数中，直接对字符串进行了写入操作，无论传入参数的长度如何，都会被复制到 &lt;code&gt;local_30&lt;/code&gt; 缓冲区中，存在漏洞调用路径的入口函数有三个 &lt;code&gt;FUN_0044ab48&lt;/code&gt; &lt;code&gt;FUN_0044dde8&lt;/code&gt; 和 &lt;code&gt;FUN_0046bb80&lt;/code&gt;，在这里我使用了 &lt;code&gt;FUN_0046bb80&lt;/code&gt; 进行漏洞复现。&lt;/p&gt;&#10;&lt;p&gt;( &lt;code&gt;FUN_0046bb80&lt;/code&gt; 中，关于 &lt;code&gt;sip_address&lt;/code&gt; 和 &lt;code&gt;dip_address&lt;/code&gt; 的获取。 )&lt;/p&gt;</description></item><item><title>LD_PRELOAD</title><link>http://47.98.243.15/posts/ld-preload/</link><pubDate>Sun, 10 Aug 2025 00:00:00 +0800</pubDate><guid>http://47.98.243.15/posts/ld-preload/</guid><description>&lt;h2 id="模拟固件下的-patch-和-hook"&gt;模拟固件下的 patch 和 hook&lt;/h2&gt;&#10;&lt;h3 id="ld_preload"&gt;LD_PRELOAD&lt;/h3&gt;&#10;&lt;p&gt;LD_PRELOAD 是 Linux 系统中的一个环境变量，它可以影响程序的运行时的链接（Runtime linker），它允许你定义在程序运行前优先加载的动态链接库。&lt;/p&gt;&#10;&lt;p&gt;当程序调用一个动态链接库中的函数（如 &lt;code&gt;printf&lt;/code&gt;, &lt;code&gt;open&lt;/code&gt;, &lt;code&gt;malloc&lt;/code&gt;）时，动态链接器负责在已加载的共享库中找到该函数（符号）的实际地址，动态链接器按照特定的顺序搜索共享库来解析符号。&lt;code&gt;LD_PRELOAD&lt;/code&gt; 赋予指定的库最高的搜索优先级。&lt;/p&gt;&#10;&lt;p&gt;这意味着：如果一个函数（例如 &lt;code&gt;open&lt;/code&gt;）在 &lt;code&gt;LD_PRELOAD&lt;/code&gt; 指定的库 A 中被定义，同时也在标准库 B（如 &lt;code&gt;libc.so.6&lt;/code&gt;）中被定义，那么链接器会优先找到并使用库 A 中的 &lt;code&gt;open&lt;/code&gt; 函数，而完全忽略库 B 中的原始 &lt;code&gt;open&lt;/code&gt; 函数。&lt;/p&gt;&#10;&lt;p&gt;示例如下： 图中虚线表示动态链接过程，实线表示函数调用流程。预加载库通过拦截-转发机制实现了对系统调用的透明监控。&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code class="language-mermaid" data-lang="mermaid"&gt;sequenceDiagram&#10; box 无 LD_PRELOAD（普通模式）&#10; participant Program as 程序&#10; participant LibC as 标准库&#10; end&#10; &#10; box 有 LD_PRELOAD（拦截模式）&#10; participant ProgramX as 程序&#10; participant Preload as 预加载库&#10; participant LibCX as 标准库&#10; end&#10; &#10; Note left of Program: 普通执行&amp;lt;br/&amp;gt;./openfd&#10; Program-&amp;gt;&amp;gt;LibC: 调用 open(&amp;#34;test.txt&amp;#34;)&#10; LibC--&amp;gt;&amp;gt;Program: 返回文件描述符 (fd)&#10; &#10; Note right of ProgramX: 拦截执行&amp;lt;br/&amp;gt;LD_PRELOAD=./libpreload.so ./openfd&#10; ProgramX-&amp;gt;&amp;gt;Preload: 调用 open(&amp;#34;test.txt&amp;#34;)&#10; Note over Preload: ✋ 拦截 open 调用!&amp;lt;br/&amp;gt;🔍 访问文件: test.txt&#10; Preload-&amp;gt;&amp;gt;LibCX: 调用原始 open()&#10; LibCX--&amp;gt;&amp;gt;Preload: 返回文件描述符 (fd)&#10; Note over Preload: ✅ 返回文件描述符: fd&#10; Preload--&amp;gt;&amp;gt;ProgramX: 返回文件描述符 (fd)&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;示例 2-1 &lt;code&gt;openfd.c&lt;/code&gt;&lt;/p&gt;</description></item><item><title>利用binfmt_misc机制加快CGI调试</title><link>http://47.98.243.15/posts/binfmt-misc/</link><pubDate>Sun, 10 Aug 2025 00:00:00 +0800</pubDate><guid>http://47.98.243.15/posts/binfmt-misc/</guid><description>&lt;p&gt;学习参考文章&#10;&lt;a href="https://mp.weixin.qq.com/s?__biz=Mzk0OTU2ODQ4Mw==&amp;amp;mid=2247487412&amp;amp;idx=1&amp;amp;sn=c54f5b26b7a14a4ec76dfdf866684f57&amp;amp;chksm=c2ebddafc36bbf1ac3308a5cda98e2e478cced85a3a8dc1309c3c40c9ebfb1984273414a5833"&gt; 奇安信天工实验室 利用binfmt_misc机制加快CGI调试&lt;/a&gt;&#10;&lt;a href="https://www.cnblogs.com/yaohong/p/17481358.html"&gt; 姚红 binfmt_misc &lt;/a&gt;&#10;&lt;a href="https://zh.wikipedia.org/wiki/Binfmt_misc"&gt; binfmt_misc Wikipedia &lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;code&gt;binfmt_misc&lt;/code&gt; 是 Linux 内核的一项功能，其使得内核可识别任意类型的可执行文件格式并传递至特定的用户空间应用程序，如模拟器和虚拟机，它是内核中准备用户空间程序运行的诸多二进制格式文件处理程序之一 。例如，可以用它来自动运行 Java 或 Python 脚本，或在 x86_64 系统上运行 ARM 二进制文件等。这里，我们可以通过 &lt;code&gt;binfmt_misc&lt;/code&gt; 这项功能来简化和加速跨平台文件的调试过程。&lt;/p&gt;&#10;&lt;p&gt;在许多文章中提到使用 &lt;code&gt;binfmt_misc&lt;/code&gt; 往往需要先将其挂载，但是在笔者的系统上（Ubuntu 24.04）已经不再需要手动进行挂载。所以高版本的系统大多可以跳过挂载这个阶段，这一点可以通过命令得到确认，或者是直接运行一个 python 脚本。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mount | grep binfmt_misc&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./test.py&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;在 Linux 系统中，直接“执行” Python 脚本时，&lt;code&gt;binfmt_misc&lt;/code&gt; 机制会自动调用 &lt;code&gt;python3 test.py&lt;/code&gt; 来运行脚本。其原理是通过 &lt;code&gt;binfmt_misc&lt;/code&gt; 机制将以特定格式（如以 &lt;code&gt;#!&lt;/code&gt; 开头的脚本文件）自动关联到相应的解释器（如 Python 解释器），从而实现无需手动指定解释器即可直接运行脚本文件。&lt;/p&gt;</description></item><item><title>Cisco RV160W 固件模拟</title><link>http://47.98.243.15/posts/cisco-rv160/</link><pubDate>Wed, 06 Aug 2025 00:00:00 +0800</pubDate><guid>http://47.98.243.15/posts/cisco-rv160/</guid><description>&lt;p&gt;本次进行的固件模拟，依旧是基于 Cyberangel 师傅的博客进行学习。指北：&lt;a href="https://www.yuque.com/cyberangel/rg9gdm"&gt; Cyberangle 公开知识库 &lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;先对获得的固件进行解压、打包备用。&lt;/p&gt;&#10;&lt;p&gt;固件：&#10;&lt;a href="http://47.98.243.15/files/iot/RV16X_26X-v1.0.01.01-2020-08-17-11-09-01-AM.img"&gt;RV16X_26X-v1.0.01.01-2020-08-17-11-09-01-AM.img&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://47.98.243.15/posts/cisco-rv160/Cisco_RV160-1-1.png" alt="image" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;设置网桥、启动虚拟机，给出代码和截图。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# 创建网桥&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo brctl addbr ms_br &lt;span style="color:#8b949e;font-style:italic"&gt;# 创建一个名为`ms_br`的网桥设备&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ip link set ms_br up &lt;span style="color:#8b949e;font-style:italic"&gt;# （启动）刚刚创建的网桥`ms_br`，使其处于活动状态&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ip addr add 192.168.10.1/24 dev ms_br &lt;span style="color:#8b949e;font-style:italic"&gt;# 给网桥`ms_br`分配一个IP地址`192.168.10.1`&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# 创建并连接TAP设备&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ip tuntap add dev ms_tap mode tap &lt;span style="color:#8b949e;font-style:italic"&gt;# 创建一个TAP设备，命名为`ms_tap`&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo brctl addif ms_br ms_tap &lt;span style="color:#8b949e;font-style:italic"&gt;# 将TAP设备`ms_tap`添加到网桥`ms_br`中&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ip link set ms_tap up &lt;span style="color:#8b949e;font-style:italic"&gt;# 启用TAP设备`ms_tap`&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ip addr add 192.168.10.10/24 dev ms_tap &lt;span style="color:#8b949e;font-style:italic"&gt;# 给`my_tap`分配一个IP地址`192.168.10.10`&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;开启虚拟机：&lt;/p&gt;</description></item><item><title>Cisco RV340利用链研究</title><link>http://47.98.243.15/posts/cisco-rv340/</link><pubDate>Wed, 06 Aug 2025 00:00:00 +0800</pubDate><guid>http://47.98.243.15/posts/cisco-rv340/</guid><description>&lt;p&gt;作为初次接触IoT漏洞研究的探索，本文基于多篇优秀技术文章完成环境搭建和漏洞复现，主要参考：&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://www.yuque.com/cyberangel/rg9gdm/zz75e4"&gt; Cyberangel 师傅的语雀文章 Cisco RV340利用链研究 &lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://zhuanlan.zhihu.com/p/526291311"&gt; 盛邦安全 的知乎文章 Cisco RV340命令执行漏洞（CVE-2022-20707）及关联历史漏洞分析 &lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://forum.butian.net/share/1869"&gt; 就叫16385吧 的奇安信攻防社区文章 pwn2own2021中的Cisco路由器 &lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://bestwing.me/Pwning%20a%20Cisco%20RV340%20%20%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90%EF%BC%88CVE-2022-20705%20%E5%92%8C%20CVE-2022-20707.html"&gt; Swing 的博客 Pwning a Cisco RV340 漏洞分析（CVE-2022-20705 和 CVE-2022-20707 &lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://www.cnblogs.com/sun-ye/p/15750212.html"&gt; lone_legend 的博客园文章 配置 QEMU Ubuntu 虚拟机通过网桥连接外网 &lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;注意：笔者不再使用这篇博客的环境，不建议使用这篇博客进行环境安装的参考。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="基础环境的安装和测试"&gt;基础环境的安装和测试&lt;/h2&gt;&#10;&lt;h3 id="环境准备"&gt;环境准备&lt;/h3&gt;&#10;&lt;p&gt;&lt;code&gt;MIPS&lt;/code&gt;交叉编译工具链搭建及其32位指令集。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# qemu 安装&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt install qemu qemu-user qemu-user-static qemu-system binfmt-support&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# 虚拟网络工具包&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt install uml-utilities bridge-utils&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# 安装 mips 交叉编译环境&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt install gcc-mips-linux-gnu&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt install gcc-mipsel-linux-gnu&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt install gcc-mips64-linux-gnuabi64&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt install gcc-mips64el-linux-gnuabi64&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# 多架构调试依赖&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt install gdb-multiarch&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;习惯使用 &lt;code&gt;conda&lt;/code&gt; 进行环境管理，创建一个专门用来进行 IoT 操作的 &lt;code&gt;conda&lt;/code&gt; 环境（主要管理 &lt;code&gt;python包&lt;/code&gt; 等），此步骤可以省略。&lt;/p&gt;</description></item></channel></rss>