首页
社区
课程
招聘
[原创]内核层隐藏inject so来规避maps扫描
发表于: 2021-10-14 14:41 25501

[原创]内核层隐藏inject so来规避maps扫描

2021-10-14 14:41
25501

传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!!

最后于 2021-10-14 14:43 被github_yhnu编辑 ,原因:
收藏
点赞 8
打赏
分享
最新回复 (26)
雪    币: 202
活跃值: (118)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这个方案虽然不错,但是其实实际上人家会考虑如何从ROM是不是真的入手,而这个玩意的难度比maps蛋疼多了。另外,可能还得考虑linker下面2组获取modules的数据
2021-10-14 18:36
0
雪    币: 26
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
leftlizhi 这个方案虽然不错,但是其实实际上人家会考虑如何从ROM是不是真的入手,而这个玩意的难度比maps蛋疼多了。另外,可能还得考虑linker下面2组获取modules的数据
rom真不真好解决后面再分享. 可能还得考虑linker下面2组获取modules的数据, 针对这个问题能否详细阐述下. 没理解
2021-10-15 10:04
0
雪    币: 1867
活跃值: (4718)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4

riru不是本身就做了hide么?调用一下他的函数就可以了吧?似乎不需要在内核层面修改?


5d8K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6d9K9h3E0C8j5f1q4H3M7s2y4Q4x3V1k6d9K9i4u0#2i4K6u0r3j5X3I4G2j5W2)9J5c8U0S2T1x3K6x3%4k6o6p5$3k6r3b7%4k6U0p5H3y4r3j5#2y4o6y4W2y4e0c8S2k6o6N6V1z5o6t1I4y4o6V1H3x3e0S2V1k6U0x3J5z5e0S2Q4x3V1k6J5K9i4u0#2i4K6u0r3M7%4u0U0i4K6u0r3L8h3q4A6L8W2)9J5c8X3y4H3M7q4)9J5c8X3S2A6k6r3g2Q4x3V1k6Z5K9h3c8W2i4K6u0W2j5%4m8H3i4K6t1K6e0o6V1K6

最后于 2021-10-15 12:13 被virjar编辑 ,原因:
2021-10-15 12:10
0
雪    币: 35
活跃值: (8423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
你都修改内核了,为什么不直接加个hide整个vma的系统调用,被隐藏的segment直接从maps里消失不是更好?
2021-10-15 12:37
0
雪    币: 26
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
不吃早饭 你都修改内核了,为什么不直接加个hide整个vma的系统调用,被隐藏的segment直接从maps里消失不是更好?
好主意,我已经按照这种模式改了
2021-10-18 09:03
0
雪    币: 26
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
virjar riru不是本身就做了hide么?调用一下他的函数就可以了吧?似乎不需要在内核层面修改?c5eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6d9K9h3E0C8j5f1q4H3M7s2y4Q4x3V1k6d9K9i4u0#2i4K6u0r3j5X3I4G2j5W2)9J5c8U0S2T1x3K6x3%4k6o6p5$3k6r3b7%4k6U0p5H3y4r3j5#2 ...
学习了,一段匿名空间但是有可执行权限, 在防护系统看来是否很可疑?
2021-10-18 09:04
0
雪    币: 1867
活跃值: (4718)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
github_yhnu 学习了,一段匿名空间但是有可执行权限, 在防护系统看来是否很可疑?

感觉还好吧,目前的风控sdk大多还是扫描so文件特征。

最后于 2021-10-18 10:29 被virjar编辑 ,原因:
2021-10-18 10:24
0
雪    币: 35
活跃值: (8423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
github_yhnu 学习了,一段匿名空间但是有可执行权限, 在防护系统看来是否很可疑?
很可疑,某讯就会检测此类内存段
2021-10-18 12:23
0
雪    币: 6556
活跃值: (8609)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
不吃早饭 很可疑,某讯就会检测此类内存段
那么如何过内存段是可执行属性检测呢 如果代码需要长时间驻留在内存里执行的话
2021-10-18 12:49
0
雪    币: 6556
活跃值: (8609)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
不吃早饭 很可疑,某讯就会检测此类内存段
要是能操控cpu就好了
2021-10-18 12:51
0
雪    币: 35
活跃值: (8423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
木志本柯 那么如何过内存段是可执行属性检测呢 如果代码需要长时间驻留在内存里执行的话

用户层的话就是拦截io操作,重定向maps,smaps文件,隐藏map_files目录,实现难度较高。内核层的话隐藏对应vma即可,难度较低。

最后于 2021-10-18 12:58 被不吃早饭编辑 ,原因:
2021-10-18 12:57
0
雪    币: 6556
活跃值: (8609)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
Android能不能无痕hook内存属性检测api 返回假的属性值
2021-10-18 12:59
0
雪    币: 1867
活跃值: (4718)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
14
不吃早饭 木志本柯 那么如何过内存段是可执行属性检测呢 如果代码需要长时间驻留在内存里执行的话 用户层的话就是拦截io操作,重定向maps,smaps文件 ...
重定向maps文件在很多情况导致各种闪退。不太好操作。fd反查可以拿到重定向的真实的路径
2021-10-18 14:56
1
雪    币: 35
活跃值: (8423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
virjar 重定向maps文件在很多情况导致各种闪退。不太好操作。fd反查可以拿到重定向的真实的路径

重定向包括对stat系列函数的hook,许多io相关的操作都需要,例如inotify_add_watch等,当然不只是open/openat。另外重定向只要处理完善并不会出现频繁的闪退,至少我这里没有遇到

最后于 2021-10-18 15:12 被不吃早饭编辑 ,原因:
2021-10-18 15:09
0
雪    币: 35
活跃值: (8423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
virjar 重定向maps文件在很多情况导致各种闪退。不太好操作。fd反查可以拿到重定向的真实的路径
一般来讲io重定向的主要问题是内联syscall,这种情况下如果不做专门处理确实会产生逃逸,不过实际上也有解决方案
2021-10-18 15:15
0
雪    币: 1867
活跃值: (4718)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
17
不吃早饭 一般来讲io重定向的主要问题是内联syscall,这种情况下如果不做专门处理确实会产生逃逸,不过实际上也有解决方案
ptrace?还是扫描全部可执行区域?
我测试普通的io重定向没有出现过闪退,但是只要对maps进行fd重定向,确实有一定概率闪退。可能真的没有处理完善吧
2021-10-19 09:39
0
雪    币: 44
活跃值: (4818)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18

-

最后于 2023-1-31 10:33 被RiDiN编辑 ,原因:
2021-10-22 11:00
0
雪    币: 26
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
RiDiN cf1K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6J5k6i4j5I4M7$3V1H3L8W2)9J5c8X3q4F1k6s2u0G2K9h3c8Q4y4h3k6C8k6i4u0F1k6h3I4Q4y4h3k6G2L8X3g2H3L8s2g2K6i4K6g2X3L8i4y4E0z5o6V1&6z5q4)9J5c8X3y4G2L8h3#2A6N6q4)9J5c8X3b7K6j5h3b7J5k6U0b7&6x3U0g2X3y4e0S2V1k6U0b7$3k6U0M7^5y4$3y4W2y4o6k6U0z5e0f1H3k6X3u0U0x3e0f1`. ...
欢迎添加更多功能互相学习
2021-10-23 17:53
0
雪    币: 202
活跃值: (118)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
github_yhnu rom真不真好解决后面再分享. 可能还得考虑linker下面2组获取modules的数据, 针对这个问题能否详细阐述下. 没理解
就是,先生成一个进程,再attach它,在检测它的tracerid,看有无自相矛盾
2021-10-26 18:44
0
雪    币: 655
活跃值: (2800)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
21
不吃早饭 你都修改内核了,为什么不直接加个hide整个vma的系统调用,被隐藏的segment直接从maps里消失不是更好?
大佬,这种方法是什么意思呢?是直接删除有rwxp权限的那一行吗?如果直接去掉的话maps中的内存地址不连续了
2023-8-10 10:20
0
雪    币: 3723
活跃值: (3884)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
22
木志本柯 那么如何过内存段是可执行属性检测呢 如果代码需要长时间驻留在内存里执行的话
简单用户态可以参考 CobaltStrike,不执行的时候修改内存块权限,唤醒的时候再改一遍,要么就按内核 rootkit做 hook 内核函数写一个 filter
2023-8-10 11:24
0
雪    币: 199
活跃值: (897)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
好像效果不大,用cat去读maps会隐藏,但是程序都是用fopen去读maps,隐藏不了
2023-12-13 15:56
0
雪    币: 655
活跃值: (2800)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
24
不吃早饭 很可疑,某讯就会检测此类内存段
是的,检测inline hook特征的
2024-2-18 19:15
0
雪    币: 10038
活跃值: (34111)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
感谢分享
2024-2-18 20:42
1
游客
登录 | 注册 方可回帖
返回