设计流程
1. 进程监控(eBPF kprobe / tracepoint)
○ 监听 execve() / execveat() 系统调用,获取用户执行的命令。
○ 提取 命令参数(argv),解析高危行为。
2. 黑名单匹配
○ 预设 高危命令列表(如 rm -rf /*、dd if=/dev/zero、nc -e /bin/sh)。
○ 支持模式匹配(正则表达式匹配危险行为)。
3. 安全策略
○ 允许(Pass):普通命令执行不受影响。
○ 拦截(Block):如果检测到高危命令,则阻断执行。
○ 记录(Log):将日志存入 eBPF Map,供用户态程序分析。
4. 用户态交互
○ 用户态程序通过 eBPF Map 获取检测数据,发送 告警通知。
○ 支持 Syslog / SIEM / Webhook 进行日志采集与分析。
1. 进程监控(eBPF kprobe / tracepoint)
○ 监听 execve() / execveat() 系统调用,获取用户执行的命令。
○ 提取 命令参数(argv),解析高危行为。
2. 黑名单匹配
○ 预设 高危命令列表(如 rm -rf /*、dd if=/dev/zero、nc -e /bin/sh)。
○ 支持模式匹配(正则表达式匹配危险行为)。
3. 安全策略
○ 允许(Pass):普通命令执行不受影响。
○ 拦截(Block):如果检测到高危命令,则阻断执行。
○ 记录(Log):将日志存入 eBPF Map,供用户态程序分析。
4. 用户态交互
○ 用户态程序通过 eBPF Map 获取检测数据,发送 告警通知。
○ 支持 Syslog / SIEM / Webhook 进行日志采集与分析。
某luo数据包加密逆向
抓包发现,大部分请求包和返回包都加密了,但是发现做了frida检测
第一种是使用修改过特征的frida-server
这里使用的是florida-server
找到用于检测的库,在它检测之前nop掉检测函数或者是直接删了这个so库
运行后发现在进入了libmsaoaidsec库后发生进程终止,说明这个库里存在检测机制
进入这个app文件夹里删了这个库
抓包发现,大部分请求包和返回包都加密了,但是发现做了frida检测
第一种是使用修改过特征的frida-server
这里使用的是florida-server
找到用于检测的库,在它检测之前nop掉检测函数或者是直接删了这个so库
运行后发现在进入了libmsaoaidsec库后发生进程终止,说明这个库里存在检测机制
进入这个app文件夹里删了这个库
jadx反编译源码搜索encrypt函数,
这里对genEAS函数的返回结果进行了base64编码,传入的参数src是encrypt接收的字符串,另一个也是字符串
查看一下genEAS函数
去掉空值检查和异常处理其实就是用AES算法对输入字符串数据基于给定密钥进行加密并返回加密后的字节数组
可以跟最基本的javax.crypto包提供的 AES 加密功能实现代码
可以看到genAES函数中填充方式为C8479a.f30298b,键入进去看一下,可以看到这个值为"AES/CBC/PKCS5Padding"
这里对genEAS函数的返回结果进行了base64编码,传入的参数src是encrypt接收的字符串,另一个也是字符串
查看一下genEAS函数
去掉空值检查和异常处理其实就是用AES算法对输入字符串数据基于给定密钥进行加密并返回加密后的字节数组
可以跟最基本的javax.crypto包提供的 AES 加密功能实现代码
可以看到genAES函数中填充方式为C8479a.f30298b,键入进去看一下,可以看到这个值为"AES/CBC/PKCS5Padding"
远程
还是先创建文件映射对象 然后映射到内存 写入shellcode
额外的一步是通过MapViewOfFile2 将本地文件视图映射到远程进程
MapViewOfFile2 与 MapViewOfFile 共享文件映射句柄 所以任何对本地映射视图中的有效载荷的任何修改都会反映在远程进程的远程映射视图中的文件中
注意进程句柄必须有PROCESS_VM_OPERATION 权限 所以这里创建完进程后通过OpenProcess指定PROCESS_VM_OPERATION再拿进程句柄 pi.hProcess不行
方便起见这里用CreateRemoteThread 如果这里用EarlyBird的话就是MapViewOfFile联动EarlyBird
还是先创建文件映射对象 然后映射到内存 写入shellcode
额外的一步是通过MapViewOfFile2 将本地文件视图映射到远程进程
MapViewOfFile2 与 MapViewOfFile 共享文件映射句柄 所以任何对本地映射视图中的有效载荷的任何修改都会反映在远程进程的远程映射视图中的文件中
注意进程句柄必须有PROCESS_VM_OPERATION 权限 所以这里创建完进程后通过OpenProcess指定PROCESS_VM_OPERATION再拿进程句柄 pi.hProcess不行
方便起见这里用CreateRemoteThread 如果这里用EarlyBird的话就是MapViewOfFile联动EarlyBird
通过篡改函数 导致函数执行其它逻辑
首先是通过loadlibrary加载dll到内存 然后通过GetProcAddress检索地址
这里篡改的函数需要是非常用的 否则可能会出现问题 这里选择bthprops.cpl中的BluetoothFindDeviceClose
首先是获取地址
LPVOID sacrificedAddr = GetProcAddress(LoadLibrary(L"bthprops.cpl"), "BluetoothFindDeviceClose");
修改内存权限为RWX 写入shellcode
首先是通过loadlibrary加载dll到内存 然后通过GetProcAddress检索地址
这里篡改的函数需要是非常用的 否则可能会出现问题 这里选择bthprops.cpl中的BluetoothFindDeviceClose
首先是获取地址
LPVOID sacrificedAddr = GetProcAddress(LoadLibrary(L"bthprops.cpl"), "BluetoothFindDeviceClose");
修改内存权限为RWX 写入shellcode
初步审计与漏洞检测
首先,我们通过get_rce_vulnerability_feedback函数对代码进行初步审计。如果LLM分析到存在潜在的RCE漏洞或不安全的命令执行调用,反馈将被用来生成修复建议。
自适应反馈机制
在初次审计后,adaptive_feedback_loop函数会启动自适应反馈机制。如果漏洞未能修复,LLM根据修复建议对代码进行修改,并再次进行审计。这个过程会持续进行多次,直到漏洞被彻底修复,或者达到最大尝试次数。
修复代码并重新审计
fix_code_and_reaudit函数接收LLM给出的修复建议,修改代码后再次审计,确保修复有效。如果反馈仍然指示有漏洞存在,过程会继续。
提取修复建议
在每一轮反馈中,extract_fix_suggestions函数提取LLM给出的修复步骤,帮助开发者理解如何修复漏洞,并确保后续代码不会再有类似问题。
首先,我们通过get_rce_vulnerability_feedback函数对代码进行初步审计。如果LLM分析到存在潜在的RCE漏洞或不安全的命令执行调用,反馈将被用来生成修复建议。
自适应反馈机制
在初次审计后,adaptive_feedback_loop函数会启动自适应反馈机制。如果漏洞未能修复,LLM根据修复建议对代码进行修改,并再次进行审计。这个过程会持续进行多次,直到漏洞被彻底修复,或者达到最大尝试次数。
修复代码并重新审计
fix_code_and_reaudit函数接收LLM给出的修复建议,修改代码后再次审计,确保修复有效。如果反馈仍然指示有漏洞存在,过程会继续。
提取修复建议
在每一轮反馈中,extract_fix_suggestions函数提取LLM给出的修复步骤,帮助开发者理解如何修复漏洞,并确保后续代码不会再有类似问题。
java 凯撒加密
凯撒加密是一种古老的加密技术,它属于替换加密的一种,得名于罗马的尤利乌斯·凯撒。其基本原理是通过将字母表中的字母按照固定的位移量进行替换,从而达到加密的目的。
凯撒加密 就是一个字符串ascii进行偏移 。
代码定义了一个名为 ByteCodeEvil 的类,它的主要功能是执行一个系统命令并将其输出捕获到一个字符串中。接下来,我将详细解释每个部分的功能和工作原理:
类和构造函数
凯撒加密是一种古老的加密技术,它属于替换加密的一种,得名于罗马的尤利乌斯·凯撒。其基本原理是通过将字母表中的字母按照固定的位移量进行替换,从而达到加密的目的。
凯撒加密 就是一个字符串ascii进行偏移 。
代码定义了一个名为 ByteCodeEvil 的类,它的主要功能是执行一个系统命令并将其输出捕获到一个字符串中。接下来,我将详细解释每个部分的功能和工作原理:
类和构造函数