Web and Forensics Guide
Guide
flag{Welcome_to_Cybersecurity}
What is Cyberspace
在写下这一份web入门手册之前,我想先和大家聊一聊什么是网络空间安全(What is Cybersecurity)。要谈Cybersecurity就要提到什么是网络空间(What is Cyberspace),Cybersecurity这个名词是最早是在William Gibson在《Burning Chrome》中创造的;在这一个故事中的Cyberspace指的是mass consensual hallucination in computer networks(计算机网络中的群体共识幻觉)。
接下来我们来一起看一份小布什政府时期的国家安全总统指令(NSPD-54) 和 国土安全总统指令(HSPD-23) ,这两份文件共同构成了《国家网络安全综合倡议》(CNCI),其中对网络空间的定义是:**the interdependent network of information technology infrastructures, including the Internet, telecommunications networks, computer systems, and embedded processors and controllers.**(网络空间是信息环境中一个整体域,它由独立且相互依存的信息基础设施和网络组成。包括了互联网、电信网、计算机系统、嵌入式处理器和控制器系统)
这是来自2008年NSPD-54/HSPD-23对Cyberspace定义:
其中网络空间中包含了IT设备(Internet of Things)、工业设备系统(Operation Technology)、物联网设备系统(Internet of Things)。专业上通常把遵循ISO/OSI7层协议框架(有时用TCP/IP协议框架)的设备统称为IT(Information Technology)设备或系统,其中可以按照类型进行划分:网络基础设施设备:路由器、交换机、防火墙、负载均衡器等,计算与存储设备:物理服务器、虚拟服务器、网络附加存储(NAS)、云存储(OSS、AWS S3),终端与外围设备:智能终端(iPhone)、输入输出设备(打印机、扫描仪)、数据采集设备(条码扫描器),软件与虚拟化系统:操作系统、数据库管理系统(Oracle、Mysql、MongoDB)、虚拟化与容器平台(VMware vSphere、Docker、Kubernetes)、企业应用软件(SAP S/4HANA、Microsoft Teams、钉钉),云计算基础设施:物理层设备(Google TPU Pod)、laaS(AWS EC2、Azure Virtual Network)、Paas(Google App Engine、阿里云函数计算)。
如果把整个范围扩大到所有可以连接到网络上的非IT设备系统:包括工业设备系统(Operation Technology,简称OT设备)如西门子S7-1500、思科Cyber Vision;物联网设备系统(Internet of Things,简称IoT设备)如蓝牙音箱、自动驾驶汽车。这就是网络空间的范围:海量+万物。
亦或是因为网络空间的范围如此之广,随之而来的就是安全问题!
What is Cybersecurity
网络空间安全包含了:信息安全、网络安全、数据安全。网络安全指的是:保护网络基础设施(路由器、服务器)和通信链路(WiFi、光纤)的安全,确保数据在传输过程中不被截胡或破坏。信息安全指的是:确保信息在存储、处理、传输全生命周期的保密性、完整性、可用性(CIA三原则),信息安全多在企业中被提及。数据安全就很好理解了:小到个人的敏感信息大到企业的一些核心敏感数据。
flag{Welcome_to_Ctf}
中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF 起源于 1996 年 DEFCON 全球黑客大会,以代替之前黑客们通过相发起真实攻击进行技术比拼的方式;其将安全相关的知识点抽象出来并加入到题目中,我们通过对知识点的理解认知,具体地进行实践来攻克题目。
Competition format
解题模式(Jeopardy):目前大多数国内外 CTF 比赛的主流形式,选手自由组队参赛。题目通常在比赛过程中陆续放出。解出一道题目后,提交题目对应的 flag 即可得分,比赛结束时分高者获胜。
攻防模式AWD (Attack With Defense):通常为现场比赛,多数 CTF 决赛的比赛形式,选手自由组队参赛。每个队伍都有自己的一台服务器,其上运行着一些带有漏洞的服务。参赛战队需要找到漏洞对其他队伍的服务器发起攻击,也需要加固自己的服务器。相比于解题模式,时间更短,比赛中更注重临场反应和解题速度,需要能够快速攻击目标主机的权限,考察团队多方面的综合安全能力。
静态攻防 AWDP (Attack With Defence Plus): 解题 + 加固赛,相比 AWD 赛制取消了攻击他人的服务器,主办方会根据出题人设置的脚本判断提交的攻击是否有效(攻击则和解题模式类似),参赛队伍无法直接攻击其他队伍。每个回合,参赛队伍都会根据自己攻击和加固成功的题目(以及相应题目的解题队伍数)来得分,以累积得分作为排行依据。
综合渗透赛 ISW:渗透+溯源,主办方给出一个模拟真实网络攻击的实战靶场,在渗透赛中选手需要对各个节点进行渗透,获取权限或者数据;其中分为单节点和多节点,多节点的可能会涉及到内网的横向和域内的攻击。在溯源赛中主办方会给出一个遭受了恶意攻击的机器,可能是给镜像或者流量包或者ssh机器。此时你需要对其进行取证和溯源,复盘出整个攻击路径。
CTF Web入门
基于 WEB 环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在 WEB 平台上,WEB 业务的迅速发展也引起黑客们的强烈关注,接踵而至的就是 WEB 安全威胁的凸显,黑客利用网站操作系统的漏洞和 WEB 服务程序的漏洞得到 WEB 服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。
在 CTF 竞赛中,WEB 也是占比重很大的一个方向之一,WEB 类的题目种类繁多,知识点细碎,时效性强,能紧跟时下热点漏洞,贴近实战。WEB 类的题目包括但不限于:sql注入、文件上传、php’s tricks、XSS 跨站脚本、CSRF 跨站请求伪造、php反序列化、Rce任意命令执行、ssti模板注入、pickle反序列化、java反序列化、框架安全、代码审计等等。
其实从大类来分就会简单明了很多,在计算机的世界里存在着700余种编程语言;其中比较流行的有50余种,而我们web中现如今更加关注于php、python、java、golang、rust这5大类语言;那么你现在所看到的一些网页系统,他们的后端就是通过编程语言进行编写。
在程序员进行编写代码时可能会出现参数过滤不当、接口未做鉴权、函数引用不严谨亦或是使用了某些存在历史漏洞的框架等一些列的问题,那我们Web手就是要抓住这一些存在问题的代码进行进一步漏洞的利用,比如参数过滤不全我们就可以进行注入等;接口没有做鉴权我们就可以实现越权;函数引用不严谨就可能会出现一些可能存在命令执行的漏洞。
一、首先
1.学会使用搜索引擎
既然选择了竞赛这一个方向,那么你一定要先知道你所学习到的知识基本都是通过网络资源来获取的,我们也不会像学校老师一样对你进行授课又或者是留作业;全靠你自身对竞赛的兴趣和热爱。那么学会使用搜索引擎来查找相关的文章并自学,这是你绝大多数学习资料的来源。比如遇到某个你不理解的知识点时你就可以利用搜索引擎:Google/Baidu/Bing进行知识点的查询。既然聊到了搜素引擎那么就不得不提到Google语法,善用Google语法可以让你更加快速更加精准的定位到你想要查找的知识点:https://segmentfault.com/a/1190000038432191;例如我对sql盲注这个知识点不是很清楚,那么我就可以使用Google语法对其进行精准的检索(在先知社区中查找关于盲注的文章的Google语法如下)。
再提一嘴,我希望大家可以熟练掌握Google语法,因为其对于Baidu/Bing都是适用的;而且在后续的ctf中你往往可以通过Google语法中的精准匹配来找到某一道题目的原题;并且在后续攻防演习中的信息收集也有着出其不意的效果。下面推荐一些安全相关的网站,个人觉得其内容质量都很高:先知社区: https://xz.aliyun.com/、跳跳糖社区: https://tttang.com/FreeBuf: https://www.freebuf.com/、安全客: https://www.anquanke.com/、奇安信攻防社区:https://forum.butian.net/、安全脉搏: https://www.secpulse.com/。
2.提问的智慧
在充满代码的世界里,你所提技术问题的解答很大程度上取决于你提问的方式与解决此问题的难度,个人极其的不喜欢被提问的方式就是:为什么这个报错了…(一张截图也没有,你做了什么操作导致了这样子也没有表明,你之前为了解决这个问题你还做了什么尝试);在我看来你正确的提问方式应该包含:你做了什么操作导致了这样、截图、报错代码、你之前为了解决这个问题还做了哪一些尝试、你自己打算如何去继续解决这个问题。我毫无歉意地敌视那些提问前不愿思考的人。这种人就像时间无底洞,他们只知道索取,不愿意付出,他们浪费了时间,这些时间本可用于其它更有趣的问题或更值得回答的人。我们(大多数)是自愿者, 从自己繁忙的生活中抽时间来回答问题,有时会力不从心。因此,我们会毫不留情地滤除问题,特别是那些看起来像是没有经过思考之后进行的提问,以便更有效地把回答问题的时间留给那些经过自身思考的同学。
所以我真的建议入门者可以看一看《How To Ask Questions The Smart Way》:http://www.catb.org/~esr/faqs/smart-questions.html
3.准备相关的工具和环境
环境
Python/Java的环境配置
基础工具
VMware Workstation Pro(虚拟机软件,我们可以用它来安装kali)、PhpStudy(你需要它来进行搭建一些基础的漏洞靶场)、Phpstorm、Pycharm(均为集成开发环境)、Vscode(代码编辑器)、Typora(Markdown 编辑器, 用来写一些你的学习笔记)、Navicat Premium(数据库管理工具)、MobaXterm(ssh/sftp管理工具)
安全工具
Burpsuite(Web 安全必备⼯具, 需要安装 Java 环境)、hackerbar(浏览器代理,你需要这个插件来代理流量让Burpsuite可以抓到你的请求包)、AntSword(Webshell管理工具)、dirsearch(目录扫描)
因为Ctf不像攻防演习那样需要你具备大量的工具,在前期的Ctf的Web学习中其实你只要熟练掌握Burpsuite的使用便可以应对大部分的入门题目。在工具安装和环境配置这里我希望大家可以通过前面的学会使用搜索引擎中进行独立的安装(上述工具可能有一些需要付费,这个时候你就需要发挥你的搜索功能去搜索引擎中检索如何对其进行一个免费的使用)。
4.学习一些编程语言
前面也说过了,Web一般会涉及到Php、Python、Javascript、Java、Golang、Rust;但是我们一般还是先从Php开始,然后学习一些Sql语句。这两年来一直在迎新被问到的问题就是:我对编程语言的学习应该到哪在开始进行漏洞的学习?
对于php来说:基本语法、数据类型、函数、文件/目录读写、Json格式转换、正则表达式、超全局变量、文件包含、连接 MySQL 数据库并执行 SQL 语句。当你可以看懂下面的代码时我觉得就可以了。
1 |
|
并且你可以借助php的官方手册: https://www.php.net/manual/zh/ 进行函数的查找,亦或者你可以借助Ai来对代码进行解释。总而言之,差不多在3天左右了解一下php的基本语法即可,可以借助: https://www.runoob.com/php/php-tutorial.html 来进行快速的入门(真的是3天左右)。
接下来你还需要花个2天左右的时间来对sql语法进行一个学习,主要是在:SELECT/INSERT/UPDATE/DELETE这四大语句、表/数据库的创建/修改/删除、常见的函数 (version(), database(), user(), group_concat(), hex(), md5() …)
看得懂下面的sql语句时即可
1 | select username as u, password as p from users where username like '%admin%'; |
个人不建议在入门的时候就开始深研这些语言,你只需要对其的大致语法有一定的了解即可。
二、你该从哪些漏洞开始?
Sqli labs
项目地址:https://github.com/Audi-1/sqli-labs;配合phpstudy将其搭建在本地。
要求:
- 在学习该靶场时可以直接看通过手册(Google/Baidu搜索:sqlilabs wp)再结合源码进行学习
- 理解每一个payload中每一个符号的含义;并掌握基础的绕过原理:大小写绕过、编码绕过等
- 掌握多种注入手法如:联合注入、报错注入、盲注(必须要达到可以自行编写盲注脚本的程度)、二次注入、宽字节注入、叠堆注入、Order By注入等(Sqlilabs差不多做到37关即可,不需要全部完成)
- 记笔记记笔记记笔记!!!(可以用前面推荐的Typora进行记录,推荐文章:https://xz.aliyun.com/t/7169)
Upload Labs
项目地址:https://github.com/c0ny1/upload-labs;配合phpstudy将其搭建至本地
要求:
- 在学习该靶场时可以直接看通过手册(Google/Baidu搜索:upload-labs wp)再结合源码进行学习,理解白名单和黑名单
- 熟练掌握靶场中的一些攻击手法例如:前后端验证的绕过、分配式文件攻击(.htaccess/.ini)、一些绕过手法(大小写、空格、点号、双写、截断、::$DATA等)、图片马、二次渲染、条件竞争攻击等
- 记笔记记笔记记笔记!!!(可以用前面推荐的Typora进行记录)
DVWA
项目地址:https://github.com/digininja/DVWA;配合phpstudy将其搭建至本地
要求:
- 在学习该靶场时可以直接看通过手册(Google/Baidu搜索:Dvwa wp),要理解各个漏洞的原理和基础的攻击手法。
- 着重关注文件包含、Rce、CSRF、SSRF、XSS、Nodejs这几个漏洞点
- 记笔记记笔记记笔记!!!(可以用前面推荐的Typora进行记录)
接下来呢?
在完成这些之后你应该也已经大一上学期结束了,该迎来寒假了;这也是你将会有质的飞跃的时刻。这个时候呢你就需要进行一个系统性的刷题
NSSCTF
平台地址:https://nssctf.cn/problem/explore;可以先从星辰大海的Web模块开始
ctfshow
平台地址:https://ctf.show/challenges#;如果你想更为系统或者是更加喜欢分模块的刷题的话可以试试ctfshow
Buu
平台地址:https://buuoj.cn/challenges;接下来就可以开始大量的刷题了
Tips:
前期刷题的时候肯定会遇到⼀些不会的知识点, 这里的建议是先在网上搜索相关题目的 Writeup 并学习里面涉及到的相关知识, 然后再去题目中复现,在积累了⼀定的经验之后可以尝试不去看 Writeup 独自做题, 拓宽思路当你能够独自解出⼀定数量的题目之后, 说明你就已经入门了。
比如此时我们遇到了BUU中的第一题,刚开始的你肯定什么都不懂,什么也不知道;那么此时我们就可以去搜索对应的 题目名 + Writeup (此时就要使用到上面讲过的搜索引擎的语法了,此时我还加了一个 -csdn来排除掉csdn论坛的文章)
都说好记性不如烂笔头,刷题期间可以用Typora来写一写笔记和心得,记录一下每道题目的解题思路。其实这个也是我最想强调的一个点:记录记录再记录
再接下来你会遇到什么呢?
接下来你会遇到大量再靶场中没有出现的知识点,比如php的反序列化、php’s tricks、CVE、ssti、pickle等等一系列的新题型;比如下面的这个[极客大挑战 2019]PHP
此时这是一道反序列化题目,此时光看 Writeup 肯定是看不懂的,这个时候你可以善用搜索引擎:site: site:xz.aliyun.com "php反序列化" -csdn
此时的site关键词可以换成我在上面推荐的那些安全网站;又或者你可以直接:"php反序列化" -csdn
当然你如果想阅读一些师傅的blog的话,你也可以:"php反序列化" blog -csdn
这个时候的搜索结果就是一些网安师傅自己的学习php反序列化的记录。
注意
讲了这么多,我还是要继续强调:当你遇到新的知识点的时候一定要把它记录下来,自己学会总结
初期遇见的东西绝大多数都是没听说过的,只有不停的搜索,不停的学习,有智慧和礼貌的提问才能成长。然后再你们大一寒假的这个阶段会有一个新生赛叫做hgame;大家可以用这个比赛来检验自己近阶段刷题的成果。
后续还要学些什么呢?
Python安全
我想现在这会儿你们经过上述的步骤后已经到了大一下的时候了,这个时候你需要学习什么呢(其实在你刷题的时候就会开始逐渐的遇到别的语言的安全问题)?已经学了一个学期的php安全了;我想你也应该开始接触另外的编程语言的安全问题了,这个时候你就应该开始了解Python安全,Python在Ctf中较为常考的点是ssti、pickle反序列化、Python内存马、flask框架、Bottle框架等等。那么这个时候接触的又是新的知识点;整个的学习流程还是:
1 | 遇到这个考点的题目 --> 发现不会做 --> 经过查看 Writeup --> 发现这个是一个新的知识点 --> 善用搜索引擎进行自学 --> 记录学习笔记 --> 再次尝试刚遇到的题目 |
并且在你大一下的时候,你可以多去尝试一些网安类的比赛,有比赛就打;因为此时你的知识储备还不够多;所以此时可能会遇见大量不会做的题目,这个是很正常的事情,在座的每一位学长在大一下的时候也是这样子;那么此时你就需要复盘复盘再复盘;一般在赛后官方都会放出 Writeup ;你需要对你不会做的题目参照Writeup 来进行复现并记录知识点。在大量的比赛的积累下你也会逐渐的形成一套属于自己的做题心得和知识体系。
这是几篇关于ssti的学习文章,我不是很想推荐文章的原因是希望大家善用搜索引擎去寻找一些自学的材料。
https://tttang.com/archive/1698/
https://tttang.com/archive/1412/
Ctf战队
这里我还想给大伙们一个建议,大一下刚好也会有一些战队的招新赛;这个时候大家可以去参与,尽力的去打;我们学校战队的师傅也有一些属于自己的校外战队,你们就可以通过比赛成绩或者学长的内推去加入一些Ctf战队。加入战队意味着你可以获取更加成熟的知识体系并且可以和队内的师傅一起交流学习;相互促进相互成长。
Tips
此时你经过了大一一整年的学习,我想你也开始知道自己需要去学一些什么;你感兴趣的知识点亦或是你想深入学习的知识点。学长在这里也有个小小的建议,这个时候你可以往回看,看看我们学过的php安全;你可以去审一审php中的ThinkPhp框架,了解一下框架安全;也可也去阅读一下Sqlmap的源代码,来帮助你对Sql注入有着更深的了解;然后去复现一些CVE,这对你后续进行漏洞挖掘和代码审计都会有着相当大的帮助;你也可以尝试的去了解一些渗透测试,这里推荐的渗透测试的靶场有htb、hackthebox、春秋云境(多为域渗透难度偏高)。
当然你也会被学长们拉去参与一些攻防演习,在整个福建省内,我校的攻防水平实战还是很可观的;我们可能会接到政府、医疗、金融、教育、企业等行业的邀请;让我们对其进行授权下的渗透,此时你就应该了解一下什么是信息收集,并且在前期你需要做的就是和学长们对靶标进行仔细的信息收集;并准备大量的攻防实战工具(也可也遇到在下载,但是在你参加攻防演习之前你必须要准备一些基础工具):
在我大二下2024年正值攻防演习最混乱的时期,政企都在紧赶慢赶的准备应对提前到来的国家护网,那个学期我也基本是一整个学期都不在学校里面(基本一周有一场的攻防,印象最深的就是马原课递了9张的假条哈哈哈哈);福建省内跑来跑去的哈哈哈哈哈哈也是非常的疲惫,这也导致了我Java安全的学习一直被影响。但是今年2025年中央下发文件后各个地级市和各个行业已经没有权力可以擅自举办攻防演习了;现在更多的是政企内部的演习;所以能给到咱们学校的机会也变少了,但是未尝不是一件好事情,大家可以更加专注的学习竞赛的内容,不用被攻防实战演习所分心和压力。
Java安全
如果大伙们已经把上述的那些知识点过完了,那么我想你已经是一个优秀的Ctfer了,那么我想你是时候去了解一下Java安全了。
这里的Java安全我想提一嘴,如果大家在大二年要准备开始学习Java安全,那么你一定要先去了解Java的开发和Java的框架!!!一定要先花一个月的时间去了解一下Java的开发和Java框架;Java考题大部分会围绕框架安全来进行出题。一定要先去学习Java开发,这也是老学长之前走过的坑,在没有了解Java开发的前提下直接开始学习cc链子,这会使你非常的吃力并且Java安全知识点太过于繁杂,如果没有开发来作为基础的话会导致你越来越没有信心。所以要学Java安全就一定要先去了解Java开发!!!这里推荐几个我认为非常不错的博主:https://github.com/Y4tacker/JavaSec、https://su18.org/、https://github.com/Drun1baby/JavaSecurityLearning、https://github.com/phith0n/JavaThings(p神的知识星球)、还有b站的白日梦组长。
聊一聊
当你能看到这里的时候我想你已经对整个Web的学习路线有了一定的认知和了解;我想当学到后面的时候你也会有自己想学习的知识,也不会跟着学长对你的安排来循规蹈矩的学习。我还想说初期遇见的东西绝大多数都是没听说过的,只有不停的搜索,不停的学习,有智慧和礼貌的提问才能成长。天赋、兴趣、毅力;得二便可一往无前!在大学这个美好的阶段;我想你们也可以在阳光灿烂的日子里去公园散散步赏赏花拍拍照,生活不止眼前的竞赛,仍然还有诗和远方。也希望你们可以拓宽一下自身的交际,当你学习到感觉疲劳时可以约上三五好友出去走一走散散步吃吃好吃的;当你还在问学长们什么时候开始学习竞赛时,我想在你你问了千千万万遍之后我依旧还是会告诉你当下就是最好的时间;前方的风景很好,希望你也加油。
Forensics
学弟说还想了解一下电子数据取证的考点,那也就顺便写写吧。
What is Forensics
电子取证是指利用计算机软硬件技术,以符合法律规范的方式对计算机入侵、破坏、欺诈、攻击等犯罪行为进行证据获取、保存、分析和出示的过程。从技术方面看,计算机犯罪取证是一个对受侵计算机系统进行扫描和破解,对入侵事件进行重建的过程。具体而言,是指把计算机看作犯罪现场,运用先进的辨析技术,对计算机犯罪行为进行解剖,搜寻罪犯及其犯罪证据。电子证据问题是由于技术发展引起的,因为计算机和电信技术的发展非常迅猛,所以取证步骤和程序也必须不断调整以适应技术的进步。并且电子数据取证发生于案后,你需要对涉案人员的手机、Pc、服务器、U盘、云等一系列介质进行调查取证;并且通过这些涉案介质来捋出一整条案情线索以及涉案人员的犯罪证据。
取证基础
VeraCrypt的使用:
要涉足于取证领域之前,你必须要先了解一下VeraCrypt和TrueCrypt。TrueCrypt 允许你创建一个加密的文件“保险库”,在那里你可以存储任何类型的敏感信息(文本、音频、视频、图像、PDF 等)。只要你有正确的口令,TrueCrypt 就可以解密保险库,并在任何运行 TrueCrypt 的电脑上提供读写权限。这是一项有用的技术,它基本上提供了一个虚拟的、可移动的、完全加密的驱动器(除了文件以外),你可以在其中安全地存储你的数据。VeraCrypt 基于 TrueCrypt 7.1a,比原来的版本有许多改进(包括标准加密卷和引导卷的算法的重大变化)。在 VeraCrypt 1.12 及以后的版本中,你可以使用自定义迭代来提高加密安全性。更好的是,VeraCrypt 可以加载旧的 TrueCrypt 卷。
证据文件格式:
全盘或分区镜像文件:E01、Ex01、DD/Raw Image(原始数据镜像)、AFF、Smart;逻辑证据文件:L01、Lx01、AD1;虚拟磁盘:VMDK、VHD、VHDX、VDI
镜像的处理:
接下来很重要的就是如何对镜像进行下一步的处理;我们在没有商用软件授权的情况下,我们可以使用FTK Imager挂载镜像,然后使用VMware新建虚拟机来进行一个镜像的仿真。又或者我们可以使用qemu-img;qemu-img能将RAW、qcow2、VMDK、VDI、VHD(vpc)、VHDX、qcow1或QED格式的镜像转换成VHD格式,也可以实现RAW和VHD格式的互相转换。使用 qemu-img 将 QCOW2、RAW、VMDK 或 VDI 镜像转换为 vmdk后再用VMware新建虚拟机来进行仿真也可以。
一系列开源工具的使用:
Volatility:
2007年,Volatility的第一个版本在黑帽DC公开发布。该软件基于多年来对高级内存分析和取证的公开学术研究。在此之前,数字调查主要集中在硬盘图像中发现违禁品。Volatility向人们介绍了使用易失性存储(RAM)中的数据分析系统运行时状态的力量。它还提供了一个跨平台、模块化和可扩展的平台,以鼓励在这一激动人心的研究领域开展进一步的工作。该项目的另一个主要目标是鼓励协作、创新和对攻击性软件社区中常见知识的可访问性。从那时起,记忆分析已经成为数字调查未来最重要的课题之一,Volatility已经成为世界上使用最广泛的记忆取证平台。该项目得到取证行业最大、最活跃的社区之一的支持。Volatility还提供了一个独特的平台,使尖端研究能够立即转移到数字调查人员手中。因此,建立在Volatility
之上的研究出现在顶级学术会议上,Volatility已经被用于过去十年中一些最关键的调查。它已经成为全世界执法、军事、学术界和商业调查人员所依赖的不可或缺的数字调查工具。
Volatility是非常优秀的一个内存取证开源软件,在后续的内存取证也会讲到。项目地址:https://github.com/volatilityfoundation/volatility
使用教程:https://www.forensics-wiki.com/volatility/install/
X-Ways Forensics:
X-Ways Forensics 是一款功能强大的法证工具,提供了各种用于磁盘、文件、网络及其他数据分析的功能。在执行法证分析时,它能够高效地处理大量数据、提供深入的报告和详细的时间线,为数字法证工作提供全面的支持。由 Stefan Fleischmann 开发。它最初发布于2001年,旨在为数字取证专业人士提供强大而灵活的工具,用于分析和重建计算机系统中的数据。该软件设计初衷是解决传统取证工具在效率和功能上的局限性,使得用户能够更深入、更快速地进行取证工作。(我希望你们可以先将X-Ways Forensics用到熟悉之后再去尝试一些商业的取证软件)
X-Ways Forensics使用指南: https://www.x-ways.net/winhex/manual.pdf ;强烈建议大家先好好的学一学X-Ways Forensics 的使用。
FTK Imager:
FTK Imager 是 AccessData Group, Inc. 公司开发的 FTK 系列取证工具中的磁盘镜像工具,为免费软件,可在官网免费下载并安装使用,但是该系列其他软件需要购买授权才能使用。FTK Imager 软件体积 50MiB 左右,安装后体积 128MiB 左右,可以在安装后拷出来以便携版的方式使用,以便于现场调证工作。FTK Imager 的主要功能是磁盘镜像、内存镜像、磁盘镜像查看、磁盘挂载和数据恢复,在关键词过滤、文本搜索等方面并不是特别突出,毕竟软件名称里面就把功能写出来了,主要是进行采集,而不是分析。
R-Studio:
R-Studio 是一套全功能的数据恢复应用程序,适用于 Windows、Mac OS 以及 Linux 。它可以从硬盘 (HDD)、固态硬盘 (SSD)、闪存及其他内部或外部的数据存储设备启动以恢复数据。R-Studio 内核的应用程序 R-Undelete 专为非专业用户开发,它只能在 Windows 下工作,拥有简化的界面和十六进制编辑器,但不支持 RAID 和网络数据恢复功能。R-Undelete 面向家庭用户,帮助这些用户从 FAT32/NTFS、FAT/exFAT等文件系统中恢复文件,前两种主要是Windows下的机械硬盘和固态硬盘(SSD),后两种文件系统主要用于USB以及数字相机中的 SD卡。
Ufs-explorer-pro:
是一款强大的、综合的、但是易用的数据恢复软件,可以帮助用户进行快速和全面的数据恢复和反删除程序文件。支持各种Windows损坏的RAID阵列恢复 支持系统,UFS的资源管理与专业恢复可以帮助您从不同的操作系统的文件系统的中恢复损坏或者丢失的文件。
Autopsy:
开源的电子数据取证软件。
Arsenal Imager Mounter:
Arsenal Image Mounter是一款非常优秀的磁盘挂载工具,在Microsoft Windows中可以将磁盘映像的内容作为“真实磁盘”挂载到系统中。Arsenal Image Mounter包含了一个虚拟SCSI适配器(通过独特的Storport miniport驱动程序),使用户可以从Windows中对挂载的镜像启动虚拟机(然后绕过Windows身份验证)、管理BitLocker -受保护的卷、安装/访问“卷影副本”、“磁盘管理器”等功能。
如果是在平常的练习中我还是希望大家更加的侧重于使用X-Ways Forensics、FTK Imager进行做题;如果是要参加取证比武的话那么我们就需要一些商用软件对我们进行帮助,下面是几家国内权威性较高的取证厂商:美亚柏科、奇安信盘古石系列取证分析产品、上海弘连、杭州平航、四川效率源。这些商用软件的申请,你们可以通过联系纪老师,然他跟厂家的销售对接申请。当然大家也可也关注一些被流出的破解取证软件比如Oxygen Forensic Detective、Cellebrite…
内存取证
从你按下计算机电源的那一刻起,内存就开始工作了,当然其他硬件也在工作,但是内存会加载很多的重要数据,如操作系统的加载、预启动程序的加载、正常运行时程序程序的加载等等。内存取证的一个特点就是它提供了一种清晰的途径来让人们对计算机实时的状态进行取证,如当时的进程情况、网络连接情况、执行过的命令等等,这对提取一些木马程序等恶意程序是有很大帮助的,除此之外,你甚至可以从内存中取出一些密码信息,如mimikatz就是这么干的。
内存取证可以说是最有成果、最有趣、最具争议的领域数字取证。操作系统或应用程序执行的每个功能导致对计算机内存(RAM)进行特定修改,这通常可以在行动之后持续很长时间,本质上是保存它们。此外,内存取证为系统的运行时状态提供了前所未有的可见性,例如哪些进程正在运行、打开的网络连接和最近执行的com-近日。您可以以完全独立于组件的方式提取这些工件您正在调查的系统,减少恶意软件或rootkit可以干扰的机会你的结果。关键数据通常只存在于内存中,例如磁盘加密移动键,内存驻留注入代码片段,不记录的聊天信息,加密的电子邮件消息,以及不可缓存的互联网历史记录。
此时在Ctf中我们遇到大部分的取证都会是内存取证分析;学习资料: https://xdforensics-wiki.github.io/XDforensics-wiki/ram2/ ;此时大家需要熟练使用Volatility。详细的题目可见2025GHCTF-mymem: https://blog.csdn.net/qq_63923205/article/details/146015873 。
Windows取证
与挖掘Linux服务器镜像中的网络行为信息不同,取证比赛中对于Windows镜像的考查主要体现在使用痕迹与文件上,比如软件使用记录,浏览器历史记录,病毒样本文件,以及爬取的表单话单等。因此取证工作者要熟练地掌握文件提取、数据恢复、系统仿真、详单分析、编程与逆向工程等知识与技术手段。
Linux&服务器取证
Linux主要作为网络服务器,在Linux取证中我们一般会挖掘Linux服务器镜像中的网络行为信息。并且涉及到涉案网站的重构或者集群的构建。
手机取证
手机取证最大的关键点在于你是否了解Android和IOS的文件系统和文件目录,因为我们普通的手机是没有root权限的;所以大多人对我们的手机目录并没有很深得的了解;不知道你平时的微信消息存储在哪一个目录,也不知道你的手机型号信息在哪个文件中可以观察;所以我认为入门者应该去了解一下Android和IOS的目录结构和存储结构。
How to Learning
初期遇见的东西绝大多数都是没听说过的,只有不停的搜索,不停的学习,有智慧和礼貌的提问才能成长。刚开始的学习还是和Web的学习方法一样,但是这个时候我们可以直接从刷题开始;依旧还是原来的搜索语法:2024FIC初赛 Writeup -csdn
然后记得把做题记录在自己的blog上面
这里推荐几个取证学习的网站:https://www.forensics-wiki.com/、https://forensics.xidian.edu.cn/、https://www.cnblogs.com/WXjzc
靶场:https://forensics.didctf.com/
声明
笔者于2025.3.25日后已不再参与任何单位授权下的渗透测试和任何级别的实战攻防演习与相关的社工情报工作,后续与笔者id相关的攻击行为均与本人无关。恳请蓝队师傅重新进行分析研判溯源。书上说了:天下没有不散的宴席,书上还说了:人生何处不相逢。山高水远我们江湖再见!