无题
前置知识NoSQL 数据库(意即”Not Only SQL,不仅仅是SQL”)并非表格格式,其存储数据的方式与关系表不同。NoSQL 数据库的类型因数据模型而异。主要类型包括文档、键值、宽列和图形。它们提供了灵活的模式,可以随大量数据和高用户负载而轻松扩展。NoSQL 数据库是以关系表以外的格式存储数据的数据库,是一种非关系型数据库。
随着存储成本迅速降低,存储和查询所需的数据应用程序数量也增加了。这些数据具有各种形状和大小(结构化、半结构化和多态性),因此预先定义架构几乎变得不可能。于是在二十世纪晚期出现了 NoSQL 数据库,NoSQL 数据库允许开发者存储大量非结构化数据,从而为他们提供了很高的灵活性。
另外云计算也越来越流行,开发者开始使用公有云来托管其应用程序和数据。他们希望能够在多个服务器和区域之间分布数据,以使其应用程序具有弹性,可以横向扩展而不是纵向扩展以及对数据进行智能地理定位。一些 NoSQL 数据库(如 MongoDB)提供了这些功能。
类型NOSQL主要有四种数据类型,分别是文档数据库,键值数据库,宽列存储数据库和图形数据库。
文档数据库将数据存储在类似于 J ...
内存取证基础——linux
Profile制作不同的操作系统(Windows、Linux、macOS)、不同的发行版(比如 Ubuntu 22.04 vs CentOS 7),甚至不同版本的操作系统内核,它们在内存中存储信息的方式是完全不同的。vol2使用profile进行内存信息的标记
对于 Windows 系统,微软发布的版本相对固定,Volatility 官方自带了绝大多数常见 Windows 版本的 Profile。 但 Linux 开源且碎片化严重,各个发行版(Ubuntu, Debian, CentOS 等)都会自己编译内核,更新也非常频繁。Volatility 不可能内置所有 Linux 内核的配置文件。因此:
如果你拿到一个 Linux 的内存镜像,你通常需要先查出它具体的内核版本号(比如 5.15.0-76-generic)。
然后去开源仓库找别人做好的。
如果找不到,你就得按照教程,自己搭建一个相同内核版本的 Linux 虚拟机,编译提取出 system.map 和 module.dwarf,打包成自己专属的 Profile。
扫描系统在开始制作之前,你必须知道这个内存镜像是从什么系统、什 ...
内存取证基础——macos
识别不出内存镜像版本的取证直接使用 010 手搓或者用 Strings 命令把可打印字符保存到文本文件中再手搓
需要从内存中找到 AES 解密的 key 的情况:可以使用 findaes.exe 工具辅助查找
工具dmp文件
拉入Passware Kit Forensic-Memory Analysis进行分析(用户名和密码)
使用vol分析
lsass.DMP文件直接使用mimikatz或者pypykatz分析
12sekurlsa::minidump lsass.dmpsekurlsa::logonpasswords
1pypykatz lsa minidump lsass.DMP
dump文件“dmp” 通常特指 Windows 的崩溃转储文件,而 “dump” 是一个更为通用的术语,可以用于描述各种数据转储操作或文件。
取证方法大致和dmp文件相同
mem文件1vol.py -f mem imageinfo
raw文件可以直接使用 vol2 或者 vol3 进行内存取证
系统取证——centos
网络配置位置 配置网卡参数
网卡的配置文件位于/etc/sysconfig/network-scripts/目录下,文件名通常为ifcfg-<interface_name>。
配置文件修改以下是一个典型的静态IP配置:
1234567891011121314151617TYPE="Ethernet"BOOTPROTO="none"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"NAME="ens33"UUID="some-uuid-value"DEVICE="ens33"ONBOOT="yes"IPADDR="192.168.1.100"PREF ...
逻辑缺陷——弱密钥
JWT安全漏洞JWT(JSON Web Token)是一种用于身份认证和授权的开放标准,它通过在网络应用间传递被加密的JSON数据来安全地传输信息使得身份验证和授权变得更加简单和安全,JWT对于渗透测试人员而言可能是一种非常吸引人的攻击途径,因为它们不仅是让你获得无限访问权限的关键而且还被视为隐藏了通往以下特权的途径,例如:特权升级、信息泄露、SQLi、XSS、SSRF、RCE、LFI等
基础概念
JWS:Signed JWT,签名过的JWT
JWK:JWT的密钥,也就是我们常说的SECRET
JWE:Encrypted JWT部分payload经过加密的JWT
JKU:JKU(JSON Web Key Set URL)是JWT Header中的一个字段,字段内容是一个URI,该URI用于指定用于验证令牌秘钥的服务器,该服务器用于回复JWK
X5U:X5U是JWT Header中的一个字段,指向一组X509公共证书的URL,与JKU功能类似
X.509标准:X.509标准是密码学里公钥证书的格式标准,包括TLS/SSL(WWW万维网安全浏览的基石)在内的众多Internet协议都应用了 ...
linux取证——文件取证
Linux系统文件信息取证与核心操作在Linux系统的日常维护与安全取证过程中,熟练掌握文件操作与查找命令是至关重要的基础。以下内容将原有的知识体系进行了深度重构与详尽扩展。
Linux核心文件操作指令ls 命令ls(全拼为 list directory contents)是Linux中最基础也是最常用的命令,其核心作用是显示指定工作目录下的内容,精准列出目前工作目录所包含的文件及子目录。
基础语法与运行逻辑
ls [-alrtAFR] [name...]
核心参数深度剖析
-a (all):无死角显示所有文件及目录。在Linux中,以 . 开头的文件属于隐藏文件,该参数强制列出所有隐藏内容,在取证时排查隐藏的恶意文件极其重要。
-d (directory):仅针对目录本身进行列出,而不会递归深入列出目录内部的具体文件。
-l (long format):以极其详尽的长格式输出文件和目录的各项元数据信息。输出内容涵盖了文件的读写执行权限、文件所有者、文件大小以及具体的创建或修改时间等关键取证线索。
-r (reverse):打破默认的正向排序,强制将文件和目录进行倒序显示。 ...
流量种类
网络流量SQL注入流量分析可以使用 wireshark 的过滤器过滤出注入的流量,然后导出特定分组
然后使用 tshark 根据字段名提取出所有的注入语句
如果是盲注的话,直接写个正则匹配脚本提取数据即可
Tips:如果返回的响应数据是gzip格式,要注意提取的位置,gzip的文件头是1F 8B 08 00
webshell流量分析菜刀流量分析菜刀流量的一个明显的特征就是,响应里可能有 ->| |<- 这样的字符串
哥斯拉流量分析
哥斯拉的默认密钥为:3c6e0b8a9c15224a
哥斯拉流量一般的加密方式就是异或,当然在插件的加持下可能也会用到AES
我们以下面这个编码器为例子,这里要注意异或的时候,是从密钥的第二位开始异或
因此当我们使用CyberChef解密的时候,需要把密钥的第一位移到最后
1234567function encode($D,$K){ for($i=0;$i<strlen($D);$i++) { $c = $K[$i+1&15]; $D[$i] = $D[$i]^$c; & ...
流量分析基础——网络模型
网络模型TCP/IP协议毫无疑问是互联网的基础协议,没有它就根本不可能上网,任何和互联网有关的操作都离不开TCP/IP协议。不管是OSI七层模型还是TCP/IP的四层、五层模型,每一层中都要自己的专属协议,完成自己相应的工作以及与上下层级之间进行沟通。由于OSI七层模型为网络的标准层次划分,所以我们以OSI七层模型为例从下向上进行一一介绍。
物理层(Physical Layer)激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。物理层记住两个重要的设备名称,中继器(Repeater,也叫放大器)和集线器。
数据链路层(Data Link Layer)数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。为达到这一目的,数据链路必须具备一系列相应的功能,主要有:如何将数据组合成数据块,在数据链路层中称这种数据块为帧(frame),帧是数据链路层的传送单位;如何控制帧在物理信道上的传输,包括如 ...
linux基本特性
单用户模式与Root密码重置在Linux系统的日常维护中,管理员经常会遇到忘记Root密码或者系统因配置错误无法正常引导的情况。此时,单用户模式(Single-User Mode)就成为了一个至关重要的紧急修复通道。
拦截并进入系统引导菜单
中断内核启动引导:当服务器或虚拟机刚开始启动时,系统会加载GRUB引导加载程序。在屏幕上出现内核启动顺序选择界面时,必须迅速按下键盘上的任意键,打断默认的倒计时自动引导过程。接着,通过键盘的上下方向键,让光标稳定停留在你需要启动的Linux内核项上。
进入内核编辑模式:在选中目标Linux内核启动项后,仔细阅读屏幕下方的操作提示,此时键入小写字母 e,即可进入内核启动参数的编辑界面。
定位核心配置行:在打开的编辑界面中,文本内容可能较多。请使用键盘方向键向下滚动,准确找到以 kernel 或 linux16 作为开头的那一行(通常在配置块的中间偏下位置)。定位后,可以再次按下按键 e 或直接移动光标准备修改参数。
内核启动选项参数深度解析在内核启动时,我们可以通过追加不同的参数来改变系统的行为状态:
核心启动参数
底层运行含 ...
攻击检测方案
攻击检测方案
判别模型:通过在标记好的越狱数据集上进行微调模型,判断输入提示是否触发了越狱行为。模型输出为二分类结果:“1”表示越狱成功;“0”表示拒绝响应。这种方式能够通过学习越狱提示与正常提示的特征差异,较为精准的检测出攻击
基于规则的检测:这种方法依赖于预定义的一组规则和模式,例如检测输出中是否包含拒绝提示的常见短语。通过这类检测,可以快速检测出部分越狱提示,尤其是在模型直接拒绝攻击提示时
提示泄露检测:当用户输入请求后,模型生成相应的响应。我们将响应与需要保护的内部Prompt进行语义相似性比较,计算两者之间的相似度,通过分析文本之间的相似性来识别潜在的攻击行为
判别模型判断模型的准确率和自动化程度高,能够在较多场景中发挥重要的作用。在这种方法中我们可以将越狱检测的任务抽象为一个二分类任务,通过模型的输出来判断输入的Prompt是否为越狱攻击语句。首先我们需要一个预训练的分类模型,该模型通常会在大规律数据上进行训练,并具备强大的自然语言理解能力
基于规则的检测
优点:实现简单,易于维护和扩展,适用于明确的越狱攻击提示和模型拒绝提示
缺点:规则的覆盖范围有限,容易漏掉复制或微妙 ...








