木马编程技术分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

木马编程技术分析
杨希来,杨大全,吕海华,刘雪玲
(沈阳工业大学信息科学与工程学院,沈阳110023)
摘 要:随着In ternet 的普及,网络安全日益重要。

本文介绍了网络攻击的手段之一:特洛伊木马。

描述了它的发展状况和分类,重点分析了木马程序开发所采用的关键技术,最后给出了预防和消除木马程序的几点建议。

关键词:特洛伊木马;进程;线程
中图分类号:T P 393.08 文献标识码:A 文章编号:1002-2279(2004)04-0036-03
The A na lys is of T ro ja ns P rog ramm ing Te chno logy
YAN G X i -lai ,YAN G D a -quan ,LV H ai -hua ,et al
(S chool of inf or m ation S cience and E ng ineering S heny ang U niversity of T echnology ,S heny ang 110023,Ch ina )
Abstract :W ith the pop u larizati on of In ternet ,secu rity of In ternet is m o re i m po rtan t .T h is pap er discu sses one w ay of the attack s on the In ternet -T ro jan s .It describes the developm en t and class of T ro jan s and m ain ly analyses the p ivo tal techno logy to p rogram T ro jan s p rogram s .In the end ,it p u ts som e advice how to defend and get rid of T ro jan s .
Key words :T ro jan s ;P rocess ;T h read
1 引 言
在古希腊人同特洛伊人的战争中,希腊人利用一只内藏有战士的巨大木马,麻痹敌人,赢得了战争的胜利。

在当今的网络中有一类称作“木马“的特殊程序,它隐藏在用户的计算机中,远程控制者可以利用它来窃取用户的机密信息,对网络安全造成了极大的威胁。

木马技术发展至今已经历了四代。

第一代,简单的密码窃取和发送。

第二代在技术上有了很大的进步,冰河是典型代表之一。

第三代木马改进了数据传递技术,出现了I C M P 等类型的木马,即利用畸形报文传递数据。

第四代木马提高了进程隐藏技术,它采用内核插入式的嵌入方式,利用远程插入线程技术,嵌入DLL 线程,或者挂接PSA P I ,实现木马程序的隐藏。

根据特洛伊木马的表现行为可以把木马分为:远程控制型、密码发送型、键盘记录型、FT P 型、破坏型。

本文通过对木马编程技术的分析,让人们了解木马程序的开发技术,从而能够更加安全地管理自己的计算机。

2 木马编程关键技术
在编写木马程序时会用到很多技术,下面仅介绍一些关键技术。

2.1 木马程序隐藏技术
木马程序与普通远程管理程序的一个很大区别就是它的隐藏性。

在隐藏技术中最为关键的是进程的隐藏。

在介绍隐藏技术之前,首先了解三个相关的概念:进程、线程和服务。

进程:一个正常的W indow s 应用程序,在运行时都会在系统中产生一个进程。

每个进程对应一个不同的进程标识符,即P I D (P rogress I D )。

系统为进程分配一个虚拟的内存空间地址段,一切相关的操作,都会在此虚拟空间进行。

线程:一个进程可以存在一个或多个线程,线程之间同步执行多种操作,线程之间相互独立,当一个线程发生错误时,并不一定会导致整个进程的崩溃。

服务:当进程以服务的方式工作时,它不会出现在任务列表中,但在W inN T 2000下,仍可通过服务管理器检查是否有服务程序运行。

因此W in 9x 下,木马程序隐藏的方法就是把服务器端的木马程序注册为一个服务。

参见以下代码:
In t (CALLBA CK 3h ide )(DW ORD ,DW ORD ); 获得R egisterServiceP rocess 入口地址
H ide =(in t (CALLBA CK 3)(DW ORD ,DW ORD ))GetP roA ddress (dll ,"R egisterServiceP rocess "); 调用R egisterServiceP rocess ,把程序注册为服务H ide (NULL ,1);
杨希来(1977-),男,山东茌平人,硕士研究生,研究方向:计算机网络与安全。

收稿日期:2003-10-08
第4期2004年8月
微 处 理 机
M I CRO PROCESSOR S
N o.4A ug .,2004
这样在W in9x系统中按下C trl+A lt+D elete (热启动)时,就看不到这个程序了。

这种方法只适用W in9x的系统,对于W inN T、W in2000等可利用
A P I拦截技术来实现进程的隐藏。

2.2 木马程序自动启动技术
木马程序除第一次运行要靠用户来执行外,以后都是系统启动时,木马程序自动运行。

让程序自运行的方法很多,常见的是修改w in.in i、system.in i 及注册表。

修改注册表就是把程序启动路径写到注册表H KEY_LOCAL_M A CH I N E
SO FUW A R E M icro soft W indow s Cu rren tV ersi on R un下。

还有一些方法是修改Boo t.in i或Exp lo rer.exe启动参数。

现使用C++ B u ilder编写的修改H KEY_LOCAL_M A CH I N E SO FUW A R E
M icro soft W indow s Cu rren tV ersi on R un键值以实现自启动的木马程序:
T registry&regKey=3new T registry();
R egKey.Roo tKey=H KEY_LOCAL_M A CH I N E; R egKey.OpenKey("SO FUW A R E M icro soft W indow s Cu rren tV ersi on R un",true);
If(!regKey.V alueEx ists("In terbase Server")) regKey.W riteString("In terbasServer",c: W I NN T
System32 ib server.exe");
regKey.C lo seKey();
delete?Key;
2.3 木马程序建立连接的隐藏
木马程序的数据传递方法有很多种,其中最常见的要属TCP、UD P传输数据的方法了。

通常是利用W in sock与目标机的定制端口建立起连接,但是由于这种方法的隐蔽性比较差,往往容易被一些工具软件查看到,最简单的,比如在命令状态下使用nestat命令,就可以查看到当前的活动TCP、UD P 连接。

(这儿本机的IP为:202.199.101.229)如下所示:
C:》netstat-n
A ctive Connecti on s
P ro to L ocal A ddress Fo reign A ddress State
TCP202.199.101.229:106207.46.106.199.1863 ESTABL ISH ED
TCP202.199.101.229.111261.129.69.108:80 CLO SE_W A IT
TCP202.199.101.229.1135207.46.197.121:80 ESTABL ISH ED
黑客为了躲避这种侦察,一般采用两种方法:一是合并端口法,使用特殊的手段,在一个端口上同时绑定两个TCP(UD P)连接,通过把自己的木马端口绑定于特定的服务端口之上(如80端口),从而达到隐藏端口的目的;二是使用I C M P(In ternet Con tro l M essage P ro toco l)协议进行数据的发送,它修改I C M P头部,加入木马的控制字段。

这种木马不占用端口,用户很难发觉。

同时,使用I C M P可穿透一些防火墙,从而增加了防范难度。

这是因为I C M P不同于TCP和UD P,I C M P工作于网络应用层。

In ternet 网络中协议层次结构见表1。

表1 Internet网络协议层次表
应用层T elnet FT P S M T P WWW
传输层TCP UD P
互联网层I C M P IP IG M P
网络接口层A R P RA R以太网FDD I X..25A TM 2.4 目标机器情况的获取和控制
木马对目标主机情况,如磁盘、操作系统及硬件等信息进行窃取,然后再把这些信息通过Socket传送到控制端。

这些操作一般是通过调用相关的A P I 函数,通过函数返回值进行分解和分析有关成分。

CPU的信息包括在SYST E M_I N FO结构体中,内存的信息包括在M E M OR YSTA TU S结构中。

对鼠标的控制是用W I N A P I函数:
m ou se_even t(dw F lags,dx,c B u tton,dw Ex tre Info)其中的dw F lags可以取以下几个值:
M OU SEEV EN T F_AB SOLU T E指定鼠标坐标系中一个绝对位置。

M OU SEEV EN T F_M OV E移动鼠标。

M OU SEEV EN T F_L EFTDOW N鼠标左键按下。

M OU SEEV EN T F_L EFTU P鼠标左键抬起。

M OU SEEV EN T F_R IGH TDOW N右键按下。

M OU SEEV EN T F_R IGH TU P鼠标右键抬起。

dx、dy可取M OU SEEV EN T_AB SOLU T E中坐标位置。

2.5 木马程序的其它编程技术
还有其他一些编程技术如:发送数据的组织方法、服务器端程序的包装与加密等。

随着计算机网络技术和程序设计技术的发展,木马程序的编制技术也在飞快发展,每一种新的木马出现,几乎就会出现一种新技术。

3 预防和清除木马
一旦机器感染了木马程序,黑客从网络上几乎就可完全控制此机器,并能知晓用户的全部秘密,从而造成巨大的损失,因此应从思想上重视。

3.1 防范木马攻击
(1)反木马实时监控程序
上网时必须运行反木马实时监控程序。

例如, the cleaner,它的实时监控程序TCA,可实时显示当

7
3

 4期杨希来等:木马编程技术分析
前所有运行程序并有详细的描述信息。

另外,也可以采用一些专用的最新杀毒软件、个人防火墙进行监控。

(2)不要随意运行非正规网站下载或来历不明的软件
在一些非正规站点,特别是FT P小站点上,往往是新木马发布的首选之地,因此具有很大的危险性。

对于来历不明的软件,安装使用前,一定要用反病毒软件进行检查,最好用专门查杀木马程序的软件进行检查。

(3)不要轻易打开不熟悉的软件
现在,很多木马程序附加在邮件中,收邮件者一旦单击附件甚至鼠标移到邮件上面,它就会立即运行。

所以,千万不要打开不熟悉的邮件,特别是标题带有诱惑字眼或有点乱的邮件。

这些往往就是病毒和木马的携带者。

(4)尽量少用共享文件夹
如果计算机连接在互联网局域网上,要少用或尽量不用共享文件夹,如果因为工作等其他原因必须设置成共享,则最好单独开一个共享文件夹,把共享文件夹的属性设置为只读。

(5)隐藏IP地址
上网时,最好用一些工具软件隐藏自己计算机的IP地址。

例如,使用I CQ时,可以进入I CQM enu ->Secu rity&P rivacy,选中IP Pub lish ing下面的Do no t Pub lish IP address选项。

(6)定期检查W in.in i、sytem.in i、roo t.in i、启动组。

对于注册表可以察看H KEY_LOCAL_ M A CH I N E SO FUW A R E M icro soft W indow s Cu rren tV ersi on 下的R un和R unService两个目录。

3.2 木马清除
如果发现木马程序,最安全有效的方法是将计算机与网络断开,编辑W in.in i文件,将文件
[W I NDOW S]段下"run=木马程序"或"load=木马程序"改为"shell=exp lo re.exe"。

最后修改注册表,在H KEY_LOCAL_M A CH I N E SO FUW A R E M icro soft W indow s Cu rren tV ersi on R un下找到木马程序的文件名,再在整个注册表中搜索并替换掉木马程序。

有的木马程序,如B ladeR unner,需要回到DO S下,删除木马程序的文件夹,重启计算机再回到注册表中将所有木马文件的键值删除。

3.3 冰河木马程序的清除方法
(1)运行R egedit打开注册表。

(2)选择目录至H KEY_LOCAL_M A CH I N E SO FUW A R E M icro soft W indow s Cu rren tV ersi on R un。

(3)查找删除"C: W indow s System Kernel32.exe"和"C: W indow s System Sysex. p ir.exe"两个键值。

(4)关闭R egedit程序并重新启动计算机到M S -DO S方式,删除C: W indow s System 目录下的Kernel32.exe和Sysex.p ir.exe文件。

(5)重新启动计算机。

4 结束语
特洛伊木马程序发展到今天,已经比较完善了,但随着计算机网络和程序设计技术的发展,木马编制技术也在飞速发展,使其攻击性和破坏性更加强大。

据预测,木马与病毒相结合、跨平台性、模块化设计和即时通知型将是下一代木马的发展方向,应对此提高警惕。

参考文献:
[1] 阎雪.黑客就这么几招[M].北京:北京科海集团公司
出品,2002.
[2] 董玉格,金辉,赵振.攻击与防护[M].北京:人们邮电
出版社,2002.
[3] 叶丹.网络安全使用技术[M].北京:清华大学出版社,
2002.
[4] 黄鑫,沈传宁,吴鲁加.攻击与防范[M].北京:中国电
力出版社,2002.
(上接第35页)
得到区位码后根据地址码与区位码的对应关系就可以找到汉字字形码的所在,由上面所提到的国标码表可见,汉字排在16—87区,找到的区位码与地址码的关系为:
((区号-1)394+(位号-1))3N3N 8
如“啊”字区号位16,位号为1,代入上式后所得即为其字模点阵所在的地址。

如果使用的是16316点阵的字库,在该地址下连续读出32个字节,即得“啊”字的点阵信息。

4 小 结
本文实现了两种显示屏获得所需显示内容的点阵信息的方法。

对字库操作的方法比较简单易行,但在应用上有局限性;而截取位图的方法,尽管操作起来要比字库复杂,但应用面上更广,可以根据不同显示屏的显示要求选择最适合的操作。

参考文献:
[1] 李于剑.V isual C++实践与提高—图形图像编程篇
[M].北京:中国铁道出版社,2001.
[2] 王永丽.用V C++实现屏幕图形的获取与显示[J].成
都信息工程学院学报,2001;(7):123-128.
[3] 孙俊逸,冯刚,李邦畿,程正军.微型计算机汉字信息处
理的应用与开发[M].北京:人民邮电出版社,1994.

8
3
・微 处 理 机2004年 。

相关文档
最新文档