我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019跑狗图高清彩图 > 执行例程 >

TrojanRootkito 是什么病毒有什么危害?

归档日期:07-13       文本归类:执行例程      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  此病毒是一个Rootkit病毒,由C语言编写的过滤驱动程序,提供键盘按键记录功能。

  (1) 检查系统是否存在USB键盘设备:病毒首先通过调用ObReferenceObjectByName函数得到Driverhidusb的驱动对象,然后遍历该驱动对象创建的功能设备的设备链。对设备链上的每个设备对象,遍历其所在的设备栈,对设备栈上的每个设备对象,通过 DEVICE_OBJECT-DriverObject-DriverName获取每个设备的驱动名称,比较是否是Driverkbdhid,如果找到表示有USB键盘设备,得到USB键盘设备对象的指针。

  3、病毒驱动设立的对键盘读的irp包的完成例程:在该完成例程中,病毒驱动实现了获取并记录键盘按键的功能。病毒将读到的按键记录到缓冲区(通过DEVICE_OBJECT.DeviceExtension传递地址)。同时病毒作者在这里和IRP_MJ_DEVICE_CONTROL例程中通过写0x60端口发送命令控制键盘NumLock灯的开闭,可能是作者为了调试时能够方便的知道其过滤驱动的工作情况。

  4、病毒驱动的IRP_MJ_DEVICE_CONTROL处理例程:在这个处理例程中,病毒对值为“0x 80102180”和“80102184”的IOCTL进行了处理。对于IOCTL = 0x 80102180 , 进行初始化处理,如清空记录缓冲区、计数器等。对于IOCTL = 0x 80102180 ,病毒将把在缓冲区中记录的按键扫描码返回给调用者。使用这个rootkit的程序可以调用DeviceIoContro函数进行控制和读取按键记录。

  检查是否有IRP未完成且IRP有效则调用IoCancelIrp尝试取消这个IRP,如果取消IRP失败则等待直到有下一次IRP然后取消。

  由于该驱动在卸载例程中安全地删除了过滤设备并尝试取消未完成的IRP,所以该Rootkit可以被安全地卸载。不过一般的病毒作者很少会给用户留下安全的卸载例程,所以怀疑该Rootkit是作者从网上抄来的代码,作者有可能甚至不了解该驱动真正的工作原理。

  作者的论坛中称本病毒为UAM (Universal Access Manager),中文名称“幻影远程控制”,提供收费注册使用。

  服务端安装程序由C/C++语言编写,UPX加壳保护。其它部分由C/C++或汇编语言编写。

  服务端安装程序在感染explorer.exe时,在其最后增加一个大小为0x1000的节写入病毒代码,并将入口点改为指向新的节的开始。被感染的病毒代码执行时通过调用LoadLibraryA装载SysIdt00.dll,然后返回原入口点。病毒感染explorer.exe的目的是为了在系统启动时都能运行SysIdt00.dll,达到自启动的目的。

  (2) 遍历进程对找到的第一个”svchost”进程,将自己将注入其内存,然后通过CreateRemoteThread启动其导出函数”Entry”。

  (1) 通过尝试打开名为UAM_4803的互斥量来检查驱动是否加载,如加载则不做其它操作。

  反弹连接方式2 (设置网页地址,服务端从这个地址下载ip.txt,按照其内容去连接控制端)

  病毒名称为Rootkit.Win32.PortHide.a,该驱动加载后首先创建一个名为Devicehypy的设备和一个名为??hypy的符号链接用来和3环程序交互。这个设备名与3环程序所使用的符号链接(.UAM)不同,所以显然我们所截获的样本是无法正常工作的。

  之后该驱动注册IRP处理回调,在IRP_MJ_WRITE处理例程中,该驱动接受3环传入的需要隐藏的端口号,并保存在一个全局变量中。不过该Rootkit作者显然对驱动编写很不熟悉,所有的IRP处理例程均没有通过IofCompleteRequest完成,而是直接返回到I/O管理器。所以该驱动是无法正常地完成所希望实现的功能的。

  1.在驱动初始化时,对设备名和设备符号链接字符串进行解码,并创建设备和相应的符号链接来与用户态程序通信;

  2.去除CR0寄存器中的WP位,以防止写只读页出现页异常,然后将内存中的加密字符串解码并写回,此解密字符串将用来与IOCTL传递的参数比较,从而判断是否响应该用户程序的IOCTRL;

  3.获取进程的EPROCESS地址,在此结构体中搜索system字符串偏移,然后根据此偏移计算进程名在EPROCESS中的偏移,以备比较进程时使用;

  支持:创建文件、设置注册表键值、关闭线.创建系统线程,每隔指定的时间后,尝试写入驱动程序对应的注册表项

  3)映射ntoskrnl.exe到内存中,获取ntoskrnl.exe的服务表中指定服务函数的地址并保存,利用获取的服务函数地址枚举注册表,试图绕过其他软件的拦截;

  4)记录 Winlogon.exe 的启动,但没有做其它操作,可能在以后的版本中会进行相关处理

  该工具主要用来获取当前主机用户的LM/NTLM散列,使用者可以通过该散列对主机用户密码进行暴力破解.

  2.打开自身进程,添加SeDebugPrivilege权限,以允许当前进程对LSASS.EXE等进程进行内存操作和线.打开查找到的进程LSASS.EXE,获取该进程句柄

  [2]. 设置事件为有状态,通知主线]. 连接到管道并从中读取数据直到关闭

  6.在创建的事件上等待,与之前创建的管道通信线.向LSASS.EXE进程空间中写入创建的管道名和辅助动态库SamDump.dll导出函数名(DumpSam)作为参数,创建远程线程.

  在远程线程中,根据传递的API地址,加载DLL,获取DLL导出函数(DumpSam)并调用

本文链接:http://guidoon.com/zhixinglicheng/242.html