首页
社区
课程
招聘
[原创]使用Windbg&OllyDbg从头调试windows服务
发表于: 2018-7-7 14:58 17067

[原创]使用Windbg&OllyDbg从头调试windows服务

2018-7-7 14:58
17067


在分析恶意软件时,恶意软件通常会创建服务,然后拉起服务删除自身文件,结束进程。很多关键的操作都在恶意软件新创建的服务之中,当然可以使用IDA进行静态的调试,但同时需要OD对服务进行动态的调试。

对于绝大多数的服务可以直接attach到OD或者windbg上进行调试,但是如果想从启动就开始就调试该服务,这种attach的方法就不是很适用。网上有一些多年前的文档教程,但是在亲身尝试的时候总是用各种各样的问题,我就结合网上教程和亲身测试对如何使用OD/Winddbg调试windows服务进行一个较为详细的说明。


本人分析的是一个挖门罗币恶意软件的loader,直接步入对服务进行操作与的正题,首先是创建一个服务:


然后会对服务注册表中的一些值进行设定,这里就省略了。

在注册表的数值被设置之后,会直接调用StartService()开启服务:


此时要在次设置好断点,不要执行该布步骤。

静态分析该文件时,在文件中可以看到很多的函数操作,包括对文件的读写,对进程的遍历等等。但是在单纯执行该文件的时候,这些函数操作都不会表现出来。IDA反汇编代码如下:


从以上代码可知,如果该程序是以服务的形式被拉起的,则会运行sub_401F30()函数的程序,否则会向下运行到绿色框中的程序。绿色框中程序的功能就是,删除现有服务,再新创文件,自删除文件,创建新服务,设置注册表参数,拉起服务,结束程序。所以如果不进入到服务进行debug,则一直不能看到核心的恶意代码。而且这些恶意操作执行的速度会很快,不等你attach到OD上就会结束,所以此时需要设置当服务一被拉起就进行调试功能。

恶意软件所注册的服务通常是自启动的,为了方便调试,可以将其更改为手动开启模式。


使用注册表编辑器,打开注册表路径:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options ,添加一个主键,名称设置为将要调试服务的exe文件:


我要调试的服务的exe文件是scvhost.exe所以在

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options 键值下新建一个键值的名称为scvhost.exe,然后再里面添加一个新建一个字符串选项,命名为debugger,最后对debugger这个参数进行设置,设置为调试器的路径。在设置好之后,运行scvhost.exe文件,就自动进入OD的调试界面。所以最好在调试前在被调试服务文件入口设置好断点。


当调试服务.exe文件时,其实是在从服务启动时进行调试的,系统对启动服务设置了默认的超时时间,超过时间就会退出启动并报错:



[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 4
支持
分享
打赏 + 7.00雪花
打赏次数 2 雪花 + 7.00
 
赞赏  一位没有留下痕迹的看雪读者   +5.00 2020/08/17
赞赏  junkboy   +2.00 2018/07/13
最新回复 (18)
雪    币: 19
活跃值: (1086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
在它程序服务入口函数弄个INT3不就行了吗
2018-7-7 19:16
0
雪    币: 2359
活跃值: (288)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这个厉害,学习学习。
2018-7-7 19:21
0
雪    币: 1604
活跃值: (640)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
4
不错的用户空间静态分析+动态调试入门,洞察程序的运行时行为与断点的设置是一门艺术,需要实战经验累积
2018-7-7 22:47
1
雪    币: 1563
活跃值: (272)
能力值: ( LV7,RANK:105 )
在线值:
发帖
回帖
粉丝
5
shayi 不错的用户空间静态分析+动态调试入门,洞察程序的运行时行为与断点的设置是一门艺术,需要实战经验累积
嗯嗯 学习之路还很漫长。实战中才能暴露出自己的不足。
2018-7-9 09:43
0
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
按照你的方法,我的系统上找不到Interactive Services Detection 服务(Win10 RS4)。查了有关资料https://answers.microsoft.com/zh-hans/windows/forum/windows8_1-update/interactive-services-detection/7e24f6d7-100a-4575-b747-10df565e8d3d, 改了一下注册表,问题是Windbg调试窗口还是弹不出来。
2018-7-9 10:51
0
雪    币: 1563
活跃值: (272)
能力值: ( LV7,RANK:105 )
在线值:
发帖
回帖
粉丝
7
Monkey丶 按照你的方法,我的系统上找不到Interactive Services Detection 服务(Win10 RS4)。查了有关资料https://answers.microsoft.com/zh-h ...
网上有一些教程根本就没有提Interaction Services Detection,我是结合其他的材料,在win7 sp1 x64的平台上测试成功的。在没开这个服务之前,是怎么也不会弹窗。如果“交互式服务检测”窗口没弹出来的话,一种可能是系统没有检测到,也就是Interaction Services Detection没有开(我在win10 企业版上也找到了该服务,默认都是手动未开启状态),如果是修改注册表的方法,建议修改之后重启系统;另一种可能就是没有设置好要调试的服务与桌面交互。你先测试下,单纯运行服务的这个exe文件是否会弹出来windbg。
2018-7-9 14:24
1
雪    币: 3736
活跃值: (3867)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
感谢分享!
2018-7-9 14:32
0
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
fengyunabc 感谢分享!
谢谢你的解答。这是我电脑中 “I” 开头的服务名字,找不到Interactive,另外这个服务在system32下有个对应的exe文件(你的截图,UI0Detect.exe),我的电脑里也找不到,很奇怪。之前网上别的帖子都没提及到Interactive这个服务,直到今天发现你的贴子。目前的问题就是,服务启动后挂载到Windbg上(任务管理器中能看到Windbg的进程),调试界面弹不出来(允许服务与桌面交互都勾选好了)。
2018-7-9 14:57
1
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
哦,我在Win10上找到这个服务了,我换了个老版本的Win10,可能新的Windows干掉了这个服务。
2018-7-9 15:12
0
雪    币: 19
活跃值: (62)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
mark
2018-7-9 15:31
0
雪    币: 9057
活跃值: (1615)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
12
学习了,谢谢啦
2018-7-24 08:32
0
雪    币: 4182
活跃值: (817)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
感谢
2018-11-16 15:58
1
雪    币: 5299
活跃值: (3689)
能力值: ( LV13,RANK:283 )
在线值:
发帖
回帖
粉丝
14
好文章,最后用x64dbg测试成功的。
2018-12-18 16:44
0
雪    币: 2047
活跃值: (171)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
感谢分享,很棒的方法,学习了
2019-2-15 09:04
0
雪    币: 965
活跃值: (89)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
感谢分享! 
2019-2-15 16:07
0
雪    币: 8
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
非常感谢,此帖我受益非浅!
2020-3-5 21:21
0
雪    币: 83
活跃值: (1087)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
18
感谢
2020-3-6 06:52
0
雪    币: 437
活跃值: (524)
能力值: ( LV3,RANK:27 )
在线值:
发帖
回帖
粉丝
19

¥¥

最后于 2021-1-28 13:46 被GhostValley编辑 ,原因:
2020-9-25 16:12
0
游客
登录 | 注册 方可回帖
返回
//