首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
软件逆向
发新帖
2
0
linux hook
发表于: 2014-1-29 22:02
6581
linux hook
chitcrazy
2014-1-29 22:02
6581
最近在做linux下so文件的hook,总体思路比较清晰,用一段shellcode注入被攻击进程,这段shellcode代码就会驱动so文件的注入,主要是利用dlopen函数来动态加载so文件,从而完成so文件的注入,现在关键是如果找不到dlopen怎么办呢,根据我的实践,我的linux系统版本是ubuntu10.04,内核版本是2.6.32,在我的动态连接器中并不存在dlopen这个函数,而dlopen这个函数存在于libdl.so的共享库中,可是假如一个被攻击的程序运行时并没有加载libdl.so这个共享库,那么我就无法找到dlopen函数了,想请问大家有什么另外的办法???
我的被攻击程序是简单的HelloWorld程序,运行时内存中只存在三个ELF文件的映射:一个是HelloWorld的可执行文件的内存映射,一个是动态链接器ld.so的内存映射,另一个是libc.so的映射,libc.so文件在静态的的时候存在对dlopen的引用,不过加载到内存中的时候,在符号表里面并不存在dlopen这个符号,所以,现在没想到啥好办法能够解决,希望大家能够给点提示,谢谢
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
#系统底层
收藏
・
2
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
8
)
justlovemm
雪 币:
208
活跃值:
(40)
能力值:
( LV3,RANK:20 )
在线值:
发帖
33
回帖
605
粉丝
0
关注
私信
justlovemm
2
楼
输出一下dlopen的地址就会知道实际上是在那个模块里面了,但估计那个模块里面也没有这个符号,:)。
libdl.so这玩意比较特殊,一般只是编译时的一个stub,你不能用libdl.so来装载自己,但前面有fork,其实这些东西都已经在内存中了。
2014-1-30 15:29
0
chitcrazy
雪 币:
47
活跃值:
(43)
能力值:
( LV3,RANK:20 )
在线值:
发帖
21
回帖
77
粉丝
0
关注
私信
chitcrazy
3
楼
能说的再清楚点吗,你说的fork是再开一个子进程吗,不太懂,求详细解释
2014-1-31 09:17
0
justlovemm
雪 币:
208
活跃值:
(40)
能力值:
( LV3,RANK:20 )
在线值:
发帖
33
回帖
605
粉丝
0
关注
私信
justlovemm
4
楼
你用libdl.so的dlopen来加载share库,但你能用libdl.so的dlopen来加载它自身吗?结果肯定是不行的,那libdl.so是谁加载的,如果有代码能加载libdl.so,那些代码肯定也能加载其他的share库,干嘛还要libdl.so,还不如直接在libdl.so的got中把对应的abi直接指向那些已经存在的代码。
2014-1-31 11:46
0
chitcrazy
雪 币:
47
活跃值:
(43)
能力值:
( LV3,RANK:20 )
在线值:
发帖
21
回帖
77
粉丝
0
关注
私信
chitcrazy
5
楼
先谢谢你的给的提示啊,我后来也查过了一些资料,做了下小的实验,可是仍然发现不了libdl到底是怎么加载的,只能勉强猜测出来时由动态链接器ld加载进去的,可是没有依据,也没有资料,你有什么好的资料可以介绍给我看看吗,求大神再给点提示
2014-2-10 17:17
0
justlovemm
雪 币:
208
活跃值:
(40)
能力值:
( LV3,RANK:20 )
在线值:
发帖
33
回帖
605
粉丝
0
关注
私信
justlovemm
6
楼
先输出一下dlopen的地址,看看在那个so里面。
2014-2-10 21:34
0
chitcrazy
雪 币:
47
活跃值:
(43)
能力值:
( LV3,RANK:20 )
在线值:
发帖
21
回帖
77
粉丝
0
关注
私信
chitcrazy
7
楼
这个已经完成啦,dlopen在libdl.so里面啊
2014-2-10 22:11
0
chitcrazy
雪 币:
47
活跃值:
(43)
能力值:
( LV3,RANK:20 )
在线值:
发帖
21
回帖
77
粉丝
0
关注
私信
chitcrazy
8
楼
大神,求指点啊,不知道如何下手啊,libdl.so这个文件时由动态连接器加载的吗,怎么做到的呢?
2014-2-11 19:52
0
justlovemm
雪 币:
208
活跃值:
(40)
能力值:
( LV3,RANK:20 )
在线值:
发帖
33
回帖
605
粉丝
0
关注
私信
justlovemm
9
楼
确定dlopen在libdl.so里面,那就直接做个inline hook,不用考虑got表hook了
2014-2-12 13:21
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
chitcrazy
21
发帖
77
回帖
20
RANK
关注
私信
他的文章
[求助]ida调试dex
13299
[原创]基于Xposed开发应用的基本规则
28278
[求助]netbeans调试apk
10756
[原创]DexClassLoader4.4.2动态加载分析(磁盘加载分析)
30080
[原创]Dex动态加载的C语言部分
23773
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部