-
-
[旧帖]
关于NT服务无法访问网络问题
0.00雪花
-
-
[旧帖] 关于NT服务无法访问网络问题
0.00雪花
大家好!
最近遇到了个问题,希望能够得到大家的指点,先谢谢了!!
问题描述:
之前写了个程序EXE类型的,里面使用到了CURL这个库,用来获取网页内容的。EXE工作很正常,没什么问题,最近要将这个EXE程序改成DLL,并以服务的方式启动DLL,当服务启动的时候,CURL的curl_easy_perform函数返回值为6,也就是无法解析给定的远程主机。同样的代码为什么可以在EXE下正常工作在DLL以服务方式启动的时候会不行。于是我开始查找原因:
首先我在DLL那导出一个函数DEBUG,该函数跟ServiceMain函数的工作内容差不多,我这回不用服务方式启动,而是写一个EXE来调用这个DLL导出的DEBUG函数,发现工作正常,没问题。
接着我修改ServiceMain函数,让他直接调用DEBUG函数,然后以服务方式启动,发现还是出现无法解析主机的问题。并且我提供给CURL这个库的域名也是没问题的,在浏览器中打开很正常,由此肯定我的代码是没有问题。于是我在网上找,找到了这个网址:
http://www.qqkjl.com/jxc3c/201109/63922.html
里面讨论的内容说到NT服务默认是以local system这个用户启动的,跟普通的EXE程序运行的用户权限不同,local system用户在本地拥有最高权限,但是这个用户不能访问网络。里面有这个说法。然后我就在服务那有个登陆身份的,我将它改成指定的用户,发现还是出现无法解析主机问题。就像里面讨论到的那样,一些木马也是以DLL方式作为服务启动的。为什么他们可以访问网络?我看了些远控的代码,里面注册服务的方式跟我的大同小异,不存在什么特别之处啊,纠结啊,郁闷啊。这就可能存在两个问题,一个是CURL库不支持以服务方式启动?但又说不通;另一个问题就是NT服务无法访问网络?这似乎也说不通。没办法我现在真的是无法解决了,希望能得到大家的指点,谢谢了。我的QQ419248531


[注意]看雪招聘,专注安全领域的专业人才平台!