WINDOWS 签名工具
任务管理器(GUI)
如果您有远程桌面协议 (RDP) 或其他 GUI 访问设备,则可以使用 Windows 任务管理器创建转储文件。Windows Defender 默认不会对此发出警报,因此这是一个非常可靠的选择。这种方法的缺点是扩展性不佳并且速度相对较慢。
从任务管理器中,转到“详细信息”选项卡,找到 lsass.exe,右键单击,然后选择“创建转储文件”
这将在用户的 AppData\Local\Temp 目录中创建一个转储文件
现在您需要一种方法将转储文件传输到本地计算机。如果在 Linux 中使用 RDP,xfreerdp 是一个很好的选择,因为您可以使用以下语法自动安装共享驱动器来复制文件:
xfreerdp /v:IPADDRESS /u:USERNAME /p:PASSWORD /d:DOMAIN /drive:SHARE,/path/shared
这将在您远程访问的 Windows 计算机上创建一个名为“SHARE”的共享驱动器
任务管理器(GUI)
如果您有远程桌面协议 (RDP) 或其他 GUI 访问设备,则可以使用 Windows 任务管理器创建转储文件。Windows Defender 默认不会对此发出警报,因此这是一个非常可靠的选择。这种方法的缺点是扩展性不佳并且速度相对较慢。
从任务管理器中,转到“详细信息”选项卡,找到 lsass.exe,右键单击,然后选择“创建转储文件”
这将在用户的 AppData\Local\Temp 目录中创建一个转储文件
现在您需要一种方法将转储文件传输到本地计算机。如果在 Linux 中使用 RDP,xfreerdp 是一个很好的选择,因为您可以使用以下语法自动安装共享驱动器来复制文件:
xfreerdp /v:IPADDRESS /u:USERNAME /p:PASSWORD /d:DOMAIN /drive:SHARE,/path/shared
这将在您远程访问的 Windows 计算机上创建一个名为“SHARE”的共享驱动器
generate/build功能
主要逻辑实现在generateCmd.go
在这里获取stub、puppet的路径和aes的key、获取了时间戳
stub被读取为stubData,然后进入这里面
跟过去发现有个GenerateExe函数,传进了参数,进行了异或,生成了一个新的exe,根据前面调试看见的变量outputPath,可以认定新的exe就是loader.exe
这时候再来看看stub的源码
可以看到一开始是有默认值的
可以手动异或一下看看,发现跟Orca_Master里面type.go默认的值是一样的
然后继续看generateCmd,进入shellcode.PE2ShellCode(srcFile, dstFile, ¶ms),后面就是上传了,所以如果把Orca_Puppet_win_x64.exe转化成.bin文件就是在这里了,步入看一下,经过了donutGen的处理
主要逻辑实现在generateCmd.go
在这里获取stub、puppet的路径和aes的key、获取了时间戳
stub被读取为stubData,然后进入这里面
跟过去发现有个GenerateExe函数,传进了参数,进行了异或,生成了一个新的exe,根据前面调试看见的变量outputPath,可以认定新的exe就是loader.exe
这时候再来看看stub的源码
可以看到一开始是有默认值的
可以手动异或一下看看,发现跟Orca_Master里面type.go默认的值是一样的
然后继续看generateCmd,进入shellcode.PE2ShellCode(srcFile, dstFile, ¶ms),后面就是上传了,所以如果把Orca_Puppet_win_x64.exe转化成.bin文件就是在这里了,步入看一下,经过了donutGen的处理
babyapk
DIE扫出来是一个flutter架构的apk,考虑用blutter来反编译
我之前在ubuntu上配置成功过,后来因为虚拟机坏了全删了。重新配置时kali、ubuntu
网络问题(要全局代理),缺少编译环境
cmake相关的报错就是缺少环境,一定要检查VS这个模块有没有安装
环境配置成功之后就快乐启动
得到输出,利用里面的文件可以恢复符号表,把addName的脚本跑一遍
DIE扫出来是一个flutter架构的apk,考虑用blutter来反编译
我之前在ubuntu上配置成功过,后来因为虚拟机坏了全删了。重新配置时kali、ubuntu
网络问题(要全局代理),缺少编译环境
cmake相关的报错就是缺少环境,一定要检查VS这个模块有没有安装
环境配置成功之后就快乐启动
得到输出,利用里面的文件可以恢复符号表,把addName的脚本跑一遍
在apk包中发现了libapp.so和libfutter.so之后基本可以确定为flutter框架编写的应用,我们可以使用github上的开源项目blutter(GitHub - worawit/blutter: Flutter Mobile Application Reverse Engineering Tool)或者reflutter(Impact-I/reFlutter: Flutter Reverse Engineering Framework (github.com))还原IDA符号表用于分析。通过还原的符号名去猜测函数作用,然后根据目的进行各类分析
reflutter使用方法
reflutter的使用方法比较简单
选项1是抓包流量监控
选项2是获取函数偏移地址
我们是要获取函数偏移以及函数执行流程,所以选择2,然后会让输入burp的ip,这个是用于抓包使用,我们可以忽略,在ip输入填入127.0.0.1即可,此时reflutter会重打包一遍apk
reflutter使用方法
reflutter的使用方法比较简单
选项1是抓包流量监控
选项2是获取函数偏移地址
我们是要获取函数偏移以及函数执行流程,所以选择2,然后会让输入burp的ip,这个是用于抓包使用,我们可以忽略,在ip输入填入127.0.0.1即可,此时reflutter会重打包一遍apk
通过反编译工具,反编译出软件源码。
分析源码,找到License验证位置。
修改反编译代码。
重现编译生成修改后软件源码。
编写License验证demo代码:
.NET Reflector 工具本身不带修改 dll 和 exe 功能,需下载插件:Reflexil (Reflexil.Reflector.AIO.dll)。
Reflexil 插件安装方法:
Tools-->Add-Ins…--> +
点击“+”,选择下载好的Reflexil 插件路径。点击“Close”关闭窗体
分析源码,找到License验证位置。
修改反编译代码。
重现编译生成修改后软件源码。
编写License验证demo代码:
.NET Reflector 工具本身不带修改 dll 和 exe 功能,需下载插件:Reflexil (Reflexil.Reflector.AIO.dll)。
Reflexil 插件安装方法:
Tools-->Add-Ins…--> +
点击“+”,选择下载好的Reflexil 插件路径。点击“Close”关闭窗体
❤1
Linux 内核的管道功能中发现了一个释放后使用漏洞,该漏洞与用户在调用管道后执行操作的方式有关。此漏洞可导致本地用户崩溃或潜在地提升其在系统上的权限post_one_notification()。free_pipe_info()
由于watch_queue工作方式的原因,使用的指针可能在add_watch_to_object()and remove_watch_from_object() 函数中被访问/释放之前被释放。这允许本地攻击触发 UAF,进而可利用该攻击以系统 (root) 权限执行任意代码。
由于watch_queue工作方式的原因,使用的指针可能在add_watch_to_object()and remove_watch_from_object() 函数中被访问/释放之前被释放。这允许本地攻击触发 UAF,进而可利用该攻击以系统 (root) 权限执行任意代码。