伪装黑客代码(伪装黑客代码复制手机)

作者: admin 分类: 黑客文章 发布时间: 2022-06-28 23:07

大家应该对"木马"这个名词都不陌生,很多人感觉自己的“电脑系统变慢了”,“某些文件打不开了”“打开网页慢了”就怀疑自己是不是中"病毒木马"了,其实这里要给大家解释一下,"病毒""木马"并不是一个统一概念,本质上还是有一些区别的,木马虽然属于病毒中的一类,但是要单独的从病毒类型中间剥离出来.独立的称之为"木马"程序

“黑客”深度学习之“木马程序的原理与实现”

木马和病毒的主要区别:

1、病毒是当已感染的软件运行时,这些恶性程序向计算机软件添加代码,修改程序的工作方式,从而获取计算机的控制权。

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

3、他们最大的区别就是病毒具有感染性,而木马一般不具有感染性,另外,病毒入侵后立刻有感觉 ,而木马入侵后希望你没有感觉,这样才有利于她"开展工作"。

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

一、 木马程序简介

1、 木马的由来和定义

由来:

先讲个故事,故事发生在在三千多年的古希腊,特洛伊的王子帕里斯爱上了斯巴达国王的妻子——绝世美女海伦。王子把她带回了特洛伊古城,这时斯巴达王非常的愤怒,他找到了自己的哥哥,迈锡尼国王阿加伽门农,请求他的的帮忙,阿伽门农正好也希望征服特洛伊,于是借此机会建立了一支希腊联军讨伐特洛伊古城。然后事情却没那么简单,建军围攻了特洛伊古城9年仍未攻下,到了第十年,将领奥德修斯想出一计,将一批勇士藏于一批巨大的木马腹内,放在城外,大部队则佯装退军。特洛伊人以为敌军已退,就打开城门,打扫战场,并把敌军留下的那只木马作为战利品带进了城中。全程饮酒狂饮,到了夜间,全城军民进入梦乡,而埋伏在木马中的勇士们跳了出来,并打开城门四处放火,城外将士一拥而入,部队里应外合,攻下了特洛伊城池。后代称这只大木马为"特洛伊木马"。后来,人们在写文章时,就常用"特洛伊木马"这一典故比作在敌方营垒内埋下伏兵里应外合的活动。

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

2、木马的主要特点

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

(2)潜伏性:木马能够毫无声响地打开端口等待外部连接。

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

(4)自动运行性:当系统启动时自动运行。

“黑客”深度学习之“木马程序的原理与实现”

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

(1)入侵

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

(2)留后门

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

二、 木马的工作原理

1、基本原理

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

“黑客”深度学习之“木马程序的原理与实现”

其中,客户端运行在入侵者的操作系统上,是入侵者控制目标主机的平台;服务端则是运行在目标主机上,是被控制的平台,一般发送给目标主机的就是服务端文件。

“黑客”深度学习之“木马程序的原理与实现”

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

例如:入侵者伪装成目标主机用户的朋友,发送了一张捆绑有木马的电子贺卡,当目标主机打开贺卡后,屏幕上虽然会出现贺卡的画面,但此时木马服务端程序已经在后台运行了。

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

当目标主机执行了服务端程序之后,入侵者便可以通过客户端程序与目标主机的服务端建立连接,进而控制目标主机。

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

木马的服务端程序会尽可能地隐蔽行踪,同时监听某个特定的端口,等待客户端的连接;此外,服务端程序为了在每次重新启动计算机后能正常运行,还需要通过修改注册表等方法实现自启动功能。

2、关键技术

(一) 隐藏技术

1) 程序隐藏

木马程序可以利用程序捆绑的方式,将自己和正常的exe 文件进行捆绑。当双击运行捆绑后的程序时,正常的exe 文件运行了。程序隐藏只能达到从表面上无法识别木马程序的目的,但是可以通过任务管理器中发现木马程序的踪迹,这就需要木马程序实现进程隐藏。

2) 进程隐藏

隐藏木马程序的进程显示能防止用户通过任务管理器查看到木马程序的进程,从而提高木马程序的隐蔽性。主要有两种:

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

远程线程注入属于进程真隐藏方式 主要是利用CreateRemoteThread函数在某一个目标进程中创建远程线程,共享目标进程的地址空间,并获得目标进程的相关权限,从而修改目标进程内部数据和启动DLL 木马。

3) 通信隐藏

可以从通信连接的状况中发现木马程序的踪迹。因此,很有必要实现木马程序的通信隐藏。主要有两种方式

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

利用ICMP和HTTP 协议,通常网络防火墙和入侵检测系统等安全设备只检查ICMP报文的首部,对数据部分不做处理。因此,可以将木马程序的通信数据隐藏在ICMP 报文格式的选项数据字段进行传送,如把服务端程序向客户端程序传输的数据伪装成回显请求报文,而把客户端程序向服务端程序传输的数据伪装成回显应答报文。这样,就可以通过PING\PINGRESPONSE的方式在木马服务端程序和客户端程序之间建立起一个高效的秘密会话信道。利用ICMP 协议传输数据还有一个很大的优点,即ICMP 属于IP 层协议,它在传输数据时并不使用任何端口,从而具有更好的隐蔽性。

(二) 木马自启动技术

自启动功能是必不可少的。自启动可以保证木马不会因为用户的一次关机操作而彻底失去作用。下面介绍经常使用的几种方法。

1)在Win.ini中启动

在Win.ini文件中的[Windows]字段中有启动命令"load="和"run="。默认情况下,"="后面是空白的。这两项分别是用来当系统启动时自动加载和运行的程序,如果木马程序加载到这两项中,那么系统启动后即可自动地加载和运行。

2)在System.ini中启动

在System.ini文件中的[boot]字段的shell=Explorer.exe中是木马常用的隐藏加载的地方。木马最惯用的伎俩就是把本应是"Explorer.exe"变成自己的程序名,名称伪装成几乎与Explorer.exe一样,只需稍稍改"Explorer"的字母"l"改为数字"1",或者把其中的"o"改为数字"0",这些改变如果不仔细留意是很难被人发现的。或者是shell=Explorer.exe 的后面加上木马程序的路径,如:shell=Explorer.exe sample.exe,这里的sample.exe就是木马服务端程序。

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

启动组是专门用来实现应用程序自启动的地方。启动组文件夹的位置为"C:\Documents and Settings\All Users\「开始」菜单\程序\启动"。

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

4)通过注册表启动

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

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce,

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

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce

5)修改文件关联

修改文件关联是木马常用手段。

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

6)捆绑文件

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

(三) 木马植入技术

1)图标伪装

黑客为了迷惑用户,将木马服务端程序的图标换成一些常见的文件类型的图标。

2)文件捆绑欺骗

文件捆绑就是通过使用文件捆绑器将木马服务端和正常的文件捆绑在一起,达到欺骗对方从而运行捆绑的木马程序的目的。

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

3)定制端口

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

4)扩展名欺骗

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

三、 木马的演变与种类

1、木马的演变

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

1)第一代木马

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

第一代windows木马只是一个将自己伪装成特殊的程序或文件的软件,如伪装成一个用户登录窗口,当用户运行了木马伪装的登录窗口,输入用户名和密码后,木马将自动记录数据并转发给入侵者。

2)第二代木马

提供了几乎所有能够进行的远程控制操作。国内最具代表性的就是冰河木马和广外女生。

3)第三代木马

继续完善了连接与文件传输技术,并增加了木马穿透防火墙的功能,并出现了"反弹端口"技术,如国内的灰鸽子木马软件。

4)第四代木马

利用了远程线程插入技术,将木马线程插入DLL线程中,使系统更加难以发现木马的存在与入侵的连接方式。

5)第五代木马

相对于第四代木马,功能更加全面。而且应用DLL技术后在目标主机的计算机中不生成新的文件。

2、木马的种类

“黑客”深度学习之“木马程序的原理与实现”

1)破坏型

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

2)密码发送型

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

3)远程访问型

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

大名鼎鼎的木马冰河就是一个远程访问型特洛伊木马。

4)键盘记录木马

记录目标主机用户的键盘操作且将键盘操作记录在文件中,入侵者可以获取这些文件并在文件中获取诸如密码等有用的信息。

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

5)Dos攻击木马

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

当黑客侵入一台计算机并种上了DOS攻击木马后,日后这台计算机就成了黑客DOS攻击的最得力的帮手。黑客控制的计算机数量越多,发动DOS攻击取得成功的概率就越大,所以,这种木马的危害不是体现在被感染的计算机上,而是体现在攻击者可以利用它来攻击网络上的其他的计算机。

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

6)代理木马

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

7)FTP木马

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

8)程序杀手木马

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

9)反弹端口型木马

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

于是,与一般的木马相反,反弹端口型木马在服务端 (被控制端)使用主动端口,客户端 (控制端)使用被动端口。

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

为了隐蔽起见,客户端 (控制端)的被动端口一般设置为80(浏览网页必须开的端口),这样,即使用户使用端口扫描软件检查自己的端口,发现的也是类似TCP UserIP:1026 ControllerIP:80 ESTABLISHED的情况,不明真相的用户就会以为自己在浏览网页,并且,防火墙一般不会禁止用户向外连接80端口。

主流木马:

“黑客”深度学习之“木马程序的原理与实现”

四、 木马程序的实现

1、 木马中的关键技术实现(附源码)

1) 木马程序隐藏技术

通过注册服务程序,实现进程伪隐藏的方法:

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
 {
 try
 {
 DWORD dwVersion = GetVersion();//取得Windows的版本号
 if (dwVersion 

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

标签云