首页
社区
课程
招聘
[原创]2024腾讯游戏安全初赛wp
2024-4-21 23:46 2243

[原创]2024腾讯游戏安全初赛wp

2024-4-21 23:46
2243

今天又是emo的一天
竞赛官网

R3



沙箱分析hack.exe,有WriteProcessMemory,创建shellcode,PE文件.注入器八九不离十

hook NtWriteVirtualMemory以及CreateRemoteThread


随坤找个宿主写入shellcode启动远线程把dll射进去,如果宿主进程意外去世,会重新物色一个继续射
远线程参数结构

1
2
3
4
5
6
Struct
{
ULONG64 ShellcodeBase; // shellcode
ULONG64 HackDll;  //PE文件
ULONG32 Size;
}

shellcode base
操作完之后会把这块结构上的内存包括写入0x00-0xff的

启动远线程时直接把dll dump下来

这里值得注意的是CreateFileA参数dwCreationDisposition == OPEN_EXISTING 修改为CREATE_ALWAYS即可写出文件得到token1,或者手动创建2024GameSafeRace.token1也会自动写入

R0

在R3的调试中开启知名调试工具,如果没加载驱动,
图片描述
如果加载了驱动直接蓝精灵 0xACE
然而它的驱动返回值为31,不是正常的返回值,这就说明无模块驱动,大概率可能就是有线程或者hook等等.题中是启动了一个线程
图片描述
直接跳到入口看看
图片描述
调用DbgPrintEx
图片描述
token 就是它了
图片描述
图片描述

大概就是这样

1
2
3
4
5
6
7
8
9
10
11
12
short token[16];
while(1)
{
   DbgPrintEx(0,5,"token:");
   for(int i = 0; i < 16; ++i)
  {
   DbgPrintEx(0,5,"%02x",token[i]);
  }
   LARGE_INTEGER timeout = { 0 };
   time.QuadPart = -10000 * 0xACE;
   KeDelayExecutionThread(KernelMode, FALSE, &time);
}

图片描述
但是在windbg上面是没有输出的,这里值得注意的是DbgPrintEx参数Level = 5,直接改成0,windbg即可输出。或者打开DbgView也会直接输出,这是因为DbgPrintEx会进行一些判断
图片描述
其中v2==Level ,v3 == ComponentId
Dbgview开启时写入KdComponentTable[ComponentId] = 0x3fffffff
关闭时还原为1,题中ComponentId = 0,那我们直接写index=0的就好
图片描述
token1:757F4749AEBB1891EF5AC2A9B5439CEA
token2:8b3f14a24d64f3e697957c252e3a5686


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞4
打赏
分享
最新回复 (3)
雪    币: 152
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
VtRoot 2024-4-22 11:51
2
0
可以的 这个可以!
雪    币: 0
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
㬌宝贝 2024-4-22 15:16
3
0
可以的 这个可以!可以的 这个可以!可以的 这个可以!好很好!可以的 这个可以!可以的 这个可以!可以的 这个可以!好很好!
雪    币: 140
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
天台子 5天前
4
0
顶了,支持!
游客
登录 | 注册 方可回帖
返回