检测并禁用隐藏服务
日期:2005年10月31日 作者: 查看:[大字体 中字体 小字体]-
隐藏服务的概念是由hxdef 和rootkit这些后门工具提出的。这些后门工具通过挂钩系统本地调用来隐藏自己,原本通过调用Windows API调用查看系统服务的企图都是徒劳的。所以这时的系统是不可靠的,不值得信任的。目前针对查找隐藏服务的工具已经有很多,比如IceSword, knlsc,FHS等等。虽然这些软件都是免费的,但是它们到目前为止都不是开源,所以将自己的实现版本展示出来,正如knlsc的作者所说的那样,这是一个简单的小程序。
Knlsc是通过将%SystemRoot%/System32/Config/System这个Hive文件转储出来,提取出 ControlSet001/Services的子项再与RegEnumKeyEx的输出结果进行比对,发现若是在RegEnumKeyEx的输出结果中没有的子项就可以认为是一个隐藏的服务。当然knlsc还认为隐藏服务必须同时拥有ImagePath,Start,Type三个键值。据说knlsc运行时还将从资源段中放出一个驱动程序,但是估计这个驱动是假的。将knlsc托壳后用VC从资源段中导出的文件是一个没有EntryPoint但有MZ标志的驱动,没有办法进行反汇编。或许作者使用了SMC技术,放出资源文件后在进行修改,在执行文件中也有NtLoadDriver的调用片段,但是同一作者的knlps中的资源驱动却未作任何的处理。要实现检测隐藏服务的功能其实没有必要使用驱动程序,即使可以验证knlsc驱动的真实性。直接对Hive 文件的转储也不是必须的,虽然这只要通过修改Gary Nebbett的示例代码就可做到。
Hive文件的转储可以通过RegSaveKey函数来进行,rootkitrevealer就是使用这个API的扩充函数RegSaveKeyEx工作的,至少到目前为止还没有挂钩这类函数的后门,但是世上没有永远的安全,在理论上是可行的,可能不得不对该函数的输出文件进行处理,这将在一定程度上影响该函数的执行时间。使用该函数时还必须赋予调用进程以SE_BACKUP_NAME权限。
在实现中将“HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services"的子项都转储为Hive格式文件(使用DumpServiceInfo函数),存放在C:\tmp.hive,在C盘下不可有同名文件,否则会发生Dump错误。现在的问题是如何对Hive 格式文件进行处理,在这一点上必须感谢Petter Nordahl-Hagen所写的NT Registry Hive access library,它是The Offline NT Password Editor的一部分。本人的实现很大程度上就是参照他的程序,然而这个库工作在Linux环境,但是它向VC编译器移植的工作量是极少的,只需稍加修改。
1.将 #include <unistd.h> 去掉
2.将程序中三处的
#define D_OFFS(o) ( (void *)&(key->o)-(void *)hdesc->buffer-vofs )
改为
#define D_OFFS(o) ( (int *)&(key->o)-(int *)hdesc->buffer-vofs )
因为在VC中无法打印void * 类型,只得改为int * 。
3.将程序中唯一的一处使用snprintf函数该为_snprintf,即
snprintf(path,maxlen,"(...)%s",tmp);改为
_snprintf(ptth,maxlen,”(…)%s”,tmp);
4.添加两个VC不支持的函数来使编译通过
void bzero(void *s,int n)
{
memset(s,0,n);
}
int strncasecmp(const char *s1, const char *s2, size_t n) - [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 下一页
-
- 检测并禁用隐藏服务 相关文章:
- ·检测并禁用隐藏服务
- ·检测并禁用隐藏服务
- 检测并禁用隐藏服务 相关软件
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
下一篇:个人网络安全防卫手册
精品推荐
热点TOP10
- ·突破网络限制之三十六计篇
- ·BAT批处理文件语法
- ·软件注册码、安装序列号☆集锦
- ·管理员组获取系统权限的完美解决方案
- ·苹果机中如何安装Windows系统
- ·TCP/IP基础
- ·巧测MTU,加快网页打开速度
- ·杜绝自动弹出的网页
- ·Leopard中用户帐户和文件共享的新变化
- ·ADSL共享方案及实例操作
- ·IPv6详解
- ·两台电脑直连的方法
- ·Firefox的32个插件介绍
- ·瑞星个人防火墙安装与使用
- ·在电脑上录制电视节目
- ·使用httpModule做权限系统
- ·掌握IP地址知识 子网掩码与子网划分
- ·使用网桥能否实现ADSL独立拨号
- ·铁通宽带如何设置交换机(急)
- ·关于数据同步方面的一些经验
特别推荐
- ·用net start 可以启动的服务命令一览
- ·Linux阅读材料
- ·掌握IP地址知识 子网掩码与子网划分
- ·ADSL共享方案及实例操作
- ·2000/XP中无法删除文件的解决办法
- ·最全面的密码破解以及抗击手段大曝光
- ·两台电脑直连的方法
- ·电子邮件头解析
- ·密码遗忘通关手册
- ·Regsvr32的特殊作用
- ·收藏经典:windows消息大全
- ·nslookup-ipconfig基础网络命令
- ·网络硬盘数据保护及还原精灵实战
- ·巧用net命令进行局域网文件批量同步更新
- ·打造WIN2000/XP/2003系统万能克隆
- ·菜鸟必知 shift键十大密招大公开
- ·快速批量绑定MAC与IP地址
- ·98/2000/XP密码恢复方法
- ·还原精灵之另类破解
- ·查看内存是否处于双通道模式
