什么是木马程序?她是怎么发挥功能?
木马,全称特洛伊木马(Trojan horse),这个词语来源于古希腊神话,在计算机领域是一种客户/服务器程序,是黑客最常用的基于远程控制的工具。目前,比较有名的国产木马有:“冰河”、“广外女生”、“黑洞”、“黑冰”等;国外有名的木马则有:“SubSeven”、“Bo2000(Back Orifice)”、“NetSpy”、“Asylum”等。木马对计算机系统和网络安全危害相当大,因此,如何防范特洛伊木马入侵成为了计算机网络安全的重要内容之一。
1 木马的实现原理及特征
1.1 木马的实现原理
从本质上看,木马都是网络客户/服务模式,它分为两大部分,即客户端和服务端。其原理是一台主机提供服务(服务器) ,另一台主机接受服务(客户机),作为服务器的主机一般会打开一个默认的端口进行监听。如果有客户机向服务器的这一端口提出连接请求,服务器上的相应程序就会自动运行,来应答客户机的请求。这个程序被称为守护进程。
当攻击者要利用木马进行网络入侵,一般都要完成“向目标主机传播木马”,“启动和隐藏木马”,“建立连接”,“远程控制”等环节。
1.2 木马的特征
一个典型的木马程序通常具有以下四个特征:隐蔽性、欺骗性、顽固性和危害性。
(1)隐蔽性:隐蔽性是木马的生命力,也是其首要特征。木马必须有能力长期潜伏于目标机器中而不被发现。一个隐蔽性差的木马往往会很容易暴露自己,进而被杀毒(或杀马)软件,甚至用户手工检查出来,这样将使得这类木马变得毫无价值。木马的隐蔽性主要体现在以下两方面:
a.不产生图标。木马虽然在系统启动时会自动运行,但它不会在“任务栏”中产生一个图标。
b.木马自动在任务管理器中隐藏或者以“系统服务”的方式欺骗操作系统。这也就使得要及时了解是否中了木马带来了一定的困难。
(2)欺骗性:木马常常使用名字欺骗技术达到长期隐蔽的目的。它经常使用常见的文件名或扩展名,如dll、win、sys、explorer等字样,或者仿制一些不易被人区别的文件名,如字母“l”与数字“1”、字母“o”与数字“0”,常常修改几个文件中的这些难以分辨的字符,更有甚者干脆就借用系统文件中已有的文件名,只不过它保存在不同路径之中而已。
(3)顽固性:很多木马的功能模块已不再是由单一的文件组成,而是具有多重备份,可以相互恢复。当木马被检查出来以后,仅仅删除木马程序是不行的,有的木马使用文件关联技术,当打开某种类型的文件时,这种木马又重新生成并运行。
(4)危害性:当木马被植入目标主机以后,攻击者可以通过客户端强大的控制和破坏力对主机进行操作。比如可以窃取系统密码,控制系统的运行,进行有关文件的操作以及修改注册表等。
2 木马入侵手段
木马能不能完全发挥它的功能和作用,关键一步就是能否成功地进入到目标主机。随着网络知识的普及以及网络用户安全意识的提高,木马的入侵手段也随着发生了许多变化。
2.1木马的传统入侵手段
所谓传统入侵手段就是指大多数木马程序采取的、已经广为人知的传播方式,主要有以下几种:
1)电子邮件(E-mail)进行传播:攻击者将木马程序伪装成E-mail附件的形式发送过去,收信方只要查看邮件附件就会使木马程序得到运行并安装进入系统。
2)网络下载进行传播:一般的木马服务端程序都不是很大,最大也不超过200K,有的甚至只有几K。如果把木马捆绑到其它正常文件上,是很难发现的。一些非正规的网站以提供软件下载为名,将木马捆绑在软件安装程序上,下载后,只要运行这些程序,木马就会自动安装。通过Script、ActiveX及Asp、Cgi交互脚本的方法传播:由于微软的浏览器在执行Script脚本上存在一些漏洞,攻击者可以利用这些漏洞传播病毒和木马,甚至直接对浏览者主机进行文件操作等控制。如果攻击者有办法把木马服务端程序上载到目标主机的一个可执行WWW目录夹里面,他就可以通过编制Cgi程序在被攻击的目标主机上执行木马程序。
3)网页浏览传播:这种方法利用Java Applet编写出一个HTML网页,当我们浏览该页面时,Java Applet会在后台将木马程序下载到计算机缓存中,然后修改注册表,使指向木马程序。
4)利用系统的一些漏洞进行传播:如微软著名的IIS服务器溢出漏洞,通过一个IISHACK攻击程序即可把IIS服务器崩溃,并且同时在受控服务器执行木马程序。
5)远程入侵进行传播:黑客通过破解密码和建立IPC$远程连接后登陆到目标主机,将木马服务端程序拷贝到计算机中的文件夹(一般在C:\WINDOWS\system32或者C:\WINNT\system32)中,然后通过远程操作让木马程序在某一个时间运行。
2.2 木马入侵手段的发展
以上的木马入侵手段虽然使用广泛,但也很容易引起用户的警觉,所以一些新的入侵手段也相继出现,主要有:
1) 基于DLL和远程线程插入的木马植入
这种传播技术是以DLL的形式实现木马程序,然后在目标主机中选择特定目标进程(如系统文件或某个正常运行程序),由该进程将木马DLL植入到本系统中。
DLL文件的特点决定了这种实现形式的木马的可行性和隐藏性。首先,由于DLL文件映像可以被映射到调用进程的地址空间中,所以它能够共享宿主进程(调用DLL的进程)的资源,进而根据宿主进程在目标主机的级别未授权地访问相应的系统资源。其次,因为DLL没有被分配独立的进程地址空间,也就是说DLL的运行并不需要创建单独的进程,所以从系统的进程列表里看不见DLL的运行踪迹,从而可以避免在目标主机中留下木马进程踪迹,因此满足了隐蔽性的要求。将木马程序以DLL的形式实现后,需要使用插入到目标进程中的远程线程将该木马DLL插入到目标进程的地址空间,即利用该线程通过调用Load Library函数来加载木马DLL,从而实现木马的传播。
2)利用蠕虫病毒传播木马
以前的木马传播大都比较被动,而使用E-mail传播效率又太低,系统漏洞很快又被打上补丁,所以在某种程度上限制了木马的传播能力。网络蠕虫病毒具有很强的传染性和自我复制能力,将木马和蠕虫病毒结合在一起就可以大大地提高木马的传播能力。结合了蠕虫病毒的木马利用病毒的特性,在网络上大批量地进行传播、复制,这就加快了木马的传播速度,扩大了其传播范围。
3 木马的防范措施
为了减少或避免木马给主机以及网络带来危害,我们可以从两方面来有效地防范木马:使用防火墙阻止木马入侵以及及时查杀入侵后的木马。
防火墙是抵挡木马入侵的第一道门,也是最好的方式。绝大多数木马都是必须采用直接通讯的方式进行连接,防火墙可以阻塞拒绝来源不明的TCP数据包。防火墙的这种阻塞方式还可以阻止UDP、ICMP等其它IP数据包的通讯。防火墙完全可以进行数据包过滤检查,在适当规则的限制下,如对通讯端口进行限制,只允许系统接受限定几个端口的数据请求,这样即使木马植入成功,攻击者也是无法进入到你的系统,因为防火墙把攻击者和木马分隔开来了。但是,仍然有一些木马可以绕过防火墙进入目标主机(比如反弹端口木马),还有一些将端口寄生在合法端口上的木马,防火墙对此也无能为力。因此,我们必须要能迅速地查杀出已经入侵的木马。
为什么会中木马
您好
1,一般中木马病毒,可能是您下载了带病毒的软件,或者误入了带有木马病毒攻击的网站导致的。
2,建议您到腾讯电脑管家官网下载一个电脑管家。
3,然后使用电脑管家——杀毒——全盘查杀,然后根据电脑管家提示,对电脑中的木马病毒进行处理即可。
4,以后使用电脑的时候,注意开启电脑管家,电脑管家拥有16层实时防护和云智能预警系统,可以全方位保护您的电脑安全,并在木马活动早期侦测并阻断木马的破坏行为,通过云查杀技术秒杀最新流行木马。
如果还有其他疑问和问题,欢迎再次来电脑管家企业平台进行提问,我们将尽全力为您解答疑难
什么是木马
计算机木马介绍
一、木马的来历
计算机木马是一种后门程序,常被黑客用作控制远程计算机的工具。
英文单词“Trojan”,直译为“特洛伊”。
木马这个词来源于一个古老的故事:相传古希腊战争,在攻打特洛伊时,久攻不下。
后来希腊人使用了一个计策,用木头造一些大的木马,空肚子里藏了很多装备精良的勇士,然后佯装又一次攻打失败,逃跑时就把那个大木马遗弃。
守城的士兵就把它当战利品带到城里去了。
到了半夜,木马肚子里的勇士们都悄悄的溜出来,和外面早就准备好的战士们来了个漂亮的里应外合,一举拿下了特洛伊城。
这就是木马的来历。
从这个故事,大家很容易联想到计算机木马的功能。
二、计算机木马原理
计算机木马一般由两部分组成,服务端和控制端,也就是常用的C/S(CONTROL/SERVE)模式。
服务端(S端):远程计算机机运行。
一旦执行成功就可以被控制或者造成其他的破坏,这就要看种木马的人怎么想和木马本身的功能,这些控制功能,主要采用调用Windows的API实现,在早期的dos操作系统,则依靠DOS终端和系统功能调用来实现(INT 21H),服务段设置哪些控制,视编程者的需要,各不相同。
控制端(C端)也叫客户端,客户端程序主要是配套服务段端程序的功能,通过网络向服务段发布控制指令,控制段运行在本地计算机。
三、传播途径
木马的传播途径很多,常见的有如下几类:
1. 通过电子邮件的附件传播。
这是最常见,也是最有效的一种方式,大部分病毒(特别是蠕虫病毒)都用此方式传播。
首先,木马传播者对木马进行伪装,方法很多,如变形、压缩、脱壳、捆绑、取双后缀名等,使其具有很大的迷惑性。
一般的做法是先在本地机器将木马伪装,再使用杀毒程序将伪装后的木马查杀测试,如果不能被查到就说明伪装成功。
然后利用一些捆绑软件把伪装后的木马藏到一幅图片内或者其他可运行脚本语言的文件内,发送出去。
2. 通过下载文件传播。
从网上下载的文件,即使大的门户网站也不能保证任何时候他的问件都安全,一些个人主页、小网站等就更不用说了。
下载文件传播方式一般有两种,一种是直接把下载链接指向木马程序,也就是说你下载的并不是你需要的文件。
另一种是采用捆绑方式,将木马捆绑到你需要下载的文件中。
3. 通过网页传播。
大家都知道很多VBS脚本病毒就是通过网页传播的,木马也不例外。
网页内如果包含了某些恶意代码,使得IE自动下载并执行某一木马程序。
这样你在不知不觉中就被人种上了木马。
顺便说一句,很多人在访问网页后IE设置被修改甚至被锁定,也是网页上用脚本语言编写的的恶意代码作怪。
4. 通过聊天工具传播。
目前,QQ、ICQ、MSN、EPH等网络聊天工具盛行,而这些工具都具备文件传输功能,不怀好意者很容易利用对方的信任传播木马和病毒文件。
四、一些特殊类型的木马
1.反弹端口木马:普通木马的都是由C端发送请求S端来连接,但有些另类的木马就不是这样,它由S端向C端发送请求。
这样做有什么好处呢?大家知道,网络防火墙都有监控网络的作用,但它们大多都只监控由外面近来的数据,对由里向外数据的却不闻不问。
反弹端口木马正好利用了这一点来躲开网络防火墙的阻挡,以使自己顺利完成任务。
大名鼎鼎的“网络神偷”就是这样一类木马。
它由S断向C端发送一个连接请求,C端的数据在经过防火墙时,防火墙会以为是发出去的正常数据(一般向外发送的数据,防火墙都以为是正常的)的返回信息,于是不予拦截,这就给它了可钻的空子。
2.无进程木马:“进程”是一个比较抽象的概念,可以理解为排队买电影票,每一个窗口(其实就是端口)排的人可以理解为一个进程,有多少窗口就有多少个进程。
普通木马在运行时都有自己独立的进程(某一特定窗口排的人,先当作小偷),利用“柳叶擦眼”一类的优秀进程查看软件就可以发现和终止它。
这岂不是太扫兴了?好不容易写出个木马就这么被你发现了。
为了更好的隐藏自己,木马的制作者就想了一些办法,把木马的程隐藏进正常的进程(宿主进程)内。
打个比方,正常的进程(系统和正当文件的进程)可以理解为正常排队买票的人。
而木马的进程(排队假装买票的小偷),他们如果都排在某一个窗口(通过某一特定端口进行通讯),很容易就被发现了,于是那些小偷就想办法混到正常排队人当中(实现了木马进程的隐藏),这样就不容易被发现,而且也不容易被终止。
在实际中,即使你发现了隐藏在某一正常进程中的木马进程,你也不敢轻易终止它,因为一旦终止了木马的进程,正常的宿主进程也就被终止,这可能导致一些严重的后果。
所以可以看出,无进程木马实际上是“隐藏进程木马”,而这也是它的高明之处。
在实际中不可能出现真正意义上的“无进程木马”。
最近出现的“广外男生”就是典型的例子。
3.无控制端木马: 这类木马最显著的特点是C端和S端是集成到一起的,一次配置好就不能再更改。
功能一般比较专一,针对性强,危害较小,查杀较简单。
经常用来偷取QQ、Email和网络游戏的密码等。
4.嵌套型木马:先用自己写的小程序或者利用系统的漏洞,夺取到某写特定的权限,比如上传文件,干掉网络防火墙和病毒防火墙等,然后上传修改过或没修改过的功能强大的木马,进一步夺取控制权。
于是这个小程序或者系统漏洞就和那个功能强大的真正的木马联合起来,组成了一款“嵌套型木马”,其特点是不容发现和查杀,“具有良好的发展前景”。
5.其他木马:严格意义上讲,这里所说的其他木马并不是真正的木马,它们只能算做是木马入侵时的辅助工具吧。
典型的有恶意网页代码,让你浏览后不知不觉就被完全共享了所有的硬盘,然后方便别人给你种下木马,为进一步入侵做好准备。
五、关于捆绑
木马捆绑,通俗地讲就是把木马的代码嵌入其他类型的文件,便于伪装,比如,大名鼎鼎的国产木马“冰河”,他就自带一个捆绑工具,可以把木马代码嵌入到网页文件、图片文件、可执行文件等多种支持脚本语言或运行代码的文件中。
当接受方收到这些文件时,几乎感觉不到有任何异样,但在后台,木马代码却悄然进入内存并运行。
如果你的电脑莫名其妙地死机或重启,如果硬盘在无操作的情况下频繁被访问,如果系统无端搜索软驱、光驱,如果系统速度异常缓慢,系统资源占用率过高...你是否已经意识到你的电脑可能被植入了木马程序?
“特洛伊木马”,不是历史上那场惊心动魄的战争,而是互联网上广为祸患的一种危险程序。
木马在今天的网络上可谓无所不在,像“BO Back Orifice ”、“冰河”都是一种木马程序 甚至,连掌上电脑(PDA)的世界也已经出现了“木马”程序(Liberty Crack)。
人们谈“马”色变,下面,我就给大家说说可怕的“特洛伊木马”到底是怎么回事。
什么是“木马”
正像历史上的“特洛伊木马”一样,被称作“木马”的程序也是一种掩藏在美丽外表下打入我们电脑内部的东西。
确切地说,“木马”是一种经过伪装的欺骗性程序,它通过将自身伪装吸引用户下载执行,从而破坏或窃取使用者的重要文件和资料。
木马程序与一般的病毒不同,它不会自我繁殖,也并不“刻意”地去感染其他文件,它的主要作用是向施种木马者打开被种者电脑的门户,使对方可以任意毁坏、窃取你的文件,甚至远程操控你的电脑。
木马与计算机网络中常常要用到的远程控制软件是有区别的。
虽然二者在主要功能上都可以实现远程控制,但由于远程控制软件是“善意”的控制,因此通常不具有隐蔽性。
木马则完全相反,木马要达到的正是“偷窃”性的远程控制,因此如果没有很强的隐蔽性的话,那么木马简直就是“毫无价值”的。
木马的工作原理
一个完整的“木马”程序包含了两部分:“服务器”和“控制器”。
植入你的电脑的是它的“服务器”部分,而所谓的“黑客”正是利用“控制器”进入运行了“服务器”的电脑。
众所周知,基于TCP/IP协议接入互联网的电脑有0到65535共256×256个端口。
通常我们上网的时候,电脑通过139端口与外界保持联系。
运行了木马程序的“服务器”以后,你的电脑就会有另一个或几个端口被打开,使黑客可以利用这些打开的端口进入你的系统,你的系统安全和个人隐私也就全无保障了!
木马如此“泛滥”,究竟我们怎么样才能知道我们的电脑被种上了木马呢?
木马运行的征兆
如果电脑莫名其妙地死机或重启;
如果硬盘在无操作的情况下频繁被访问;
如果系统无端搜索软驱、光驱;
如果系统速度异常缓慢,系统资源占用率过高……
这些时候,你要小心了!你很可能已经和“木马”发生了“亲密接触”!到底这些“ *** ”是如何在我们电脑里“安家落户”的呢?
木马的隐藏和启动
木马进入服务端计算机以后,需要经过某种方式激活自身,运行并加载到系统自启动程序序列。
了解木马怎样激活自身,是找到并且清除木马的关键所在。
检查木马的方法
扫描端口是检测木马的常用方法。
前面我们说过,在不打开任何网络软件的前提下,接入互联网的电脑打开的只有139端口。
因此,我们可以关闭所有网络软件,然后,用“代理猎手”这类的端口扫描软件对电脑端口进行扫描,如果发现有139端口之外的被打开,那么,你是中了木马无疑了。
要想找到木马的位置,可以运用检测内存的办法。
运行“c:\windows\Drwatson.exe”,这是Windows系统的“华生医生”,它可以对系统内存拍照,以取得相关的信息。
拍照之后,查看“高级视图”中“任务”标签下的“程序”项,其中列出的就是正在运行的程序。
对于可疑的程序,再查“路径”栏,可以找到这个程序,这样就知道它到底是不是木马了。
手工删除木马
如果你认为找到木马后,删除不过是举手之劳,那你就大错特错了。
删除木马,有时候恰恰是最困难的工作,如果删除不彻底,木马很容易“死灰复燃”。
首先想到的方法应该是使用杀毒软件, 毕竟优秀的杀毒软件都是千锤百炼出来的“反恐”高手。
那么手工删除要注意什么呢?
许多木马本身具有自动检测其自启动项目的功能,如果你在未删除木马的情况下先行删除了其启动项目,木马马上又能将这些启动信息重新写入相关的文件或注册表相关位置。
因此,最稳妥的方法是,在确定木马的位置以后,先重新启动计算机并进入DOS状态,在DOS下删掉木马程序后,再返回Windows,删除它的相关启动信息。
其次是木马文件名的麻烦——木马为了更好地隐藏自己和给你制造麻烦,生成的服务端文件名类似Windows的系统文件名。
比如木马SubSeven 1.7版本的服务器文件名是c:\windows\kernel16.dll,而Windows有一个系统文件是c:\windows\kernel32.dll。
又如,木马phAse 1.0版本,生成的木马是c:\windows\system\Msgsrv32.exe,和Windows的系统文件一模一样,只是图标不同,你能正确区分这些并且删除吗?另外,别忘了,文件名是可以改的。
你可能认为中了bus木马就该有Mring.exe或者SysEdit.exe这样的文件出现,但是我把它改成123.exe你又能如何呢?所以,千万别一味依赖“常识”。
最后也是最困难的,就是木马的“多重攻击”带来的麻烦。
比如一种名叫“聪明基因”的国产“文件关联”型木马,只要服务端被运行,就会生成c:\windows\MBBManager.exe和Explore32.exe以及c:\windows\system\editor.exe三个文件,它们用的都是HTM文件图标,如果你的系统设置是不显示已知文件类型的扩展名,还真会以为它们是HTM文件呢!Explore32.exe关联HLP文件,MBBManager.exe在启动时加载,Editor.exe关联TXT文件。
当你发现并删除了MBBManager.exe,以为大功告成的时候,只要打开HLP文件或文本文件,哪怕只是一次,Explore32.exe和Editor.exe就被激活并再次生成MBBManager.exe。
类似手段甚至更厉害的木马还有很多。
要手工清除木马,非得有充分的电脑知识,丰富的经验,冷静的头脑,敏锐的洞察力以及高度的警惕性和超强的分析能力才行——你做得到吗?防患于未然木马如此凶残,你还有信心战胜它吗?别急,其实对付木马的最好方法,就是将它“拒之门外”。
在这个木马横行的年代,我们实在有必要加强安全防护意识。
防火墙、杀毒软件都要经常更新;要慎重选择下载软件的地方,尽量不要到一些来历不明的个人主页下载软件;对下载的软件,务必先用杀毒软件扫描后才可以进行安装,以防其中包藏祸害;另外就是不要打开来历不明邮件中的附件,不要执行别人发给你的所谓“有趣”的小程序……
此外,一旦中了木马,首先要断开网络连接,因为这样就是神仙也操纵不了你了,然后你可以耐心地去清除它。
还有就是删除前做好备份,以防操作失误。
总之,网络也是一个复杂的社会。
并且不同于现实社会的是,在这个虚拟世界里我们并不能见到对方的真实面目。
所以,我们更是难辨真伪。
在这样的环境中生存,我们一定要处处严加防范!这样,才能保证我们的安全
木马是什么 木马程序的介绍
1、木马程序是目前比较流行的病毒文件,与一般的病毒不同,它不会自我繁殖,也并不“刻意”地去感染其他文件,它通过将自身伪装吸引用户下载执行,向施种木马者提供打开被种主机的门户,使施种者可以任意毁坏、窃取被种者的文件,甚至远程操控被种主机。木马病毒的产生严重危害着现代网络的安全运行。
2、木马病毒是具备破坏和删除文件、发送密码、记录键盘和攻击Dos等特殊功能的后门程序。
3、木马病毒其实是计算机黑客用于远程控制计算机的程序,将控制程序寄生于被控制的计算机系统中,里应外合,对被感染木马病毒的计算机实施操作。
如何编写木马程序?
怎样编写木马程序
您好
建议您不要去学习使用木马病毒,是属于违法犯罪行为。而且,如果您接收了木马病毒,那么该病毒会自动在您的电脑中优先运行。
建议您到腾讯电脑管家官网下载一个电脑管家。
在平时使用电脑的时候,打开电脑管家,可以受到电脑管家16层实时防护的保护和云智能预警系统,可以在木马活动早期侦测并阻断木马的破坏行为,通过云查杀技术秒杀最新流行木马。
如果还有其他疑问和问题,欢迎再次来电脑管家企业平台进行提问,我们将尽全力为您解答疑难
腾讯电脑管家企业平台:zhidao.baidu/c/guanjia/
如何编写木马程序??
你想干什么?如果你只想玩玩,建议你学一下vbs脚本或bat脚本,如果你想把脚本做成exe程序,最简单的方法就是把脚本压缩到自解压文件里,再用16进制编辑器修改一下某个数值,就成功了。
如果你想干坏事,嘻嘻,木马也不是那么好写的,首先你要成为一个出色的程序员,不仅要打好C语言基础,更要精通汇编语言和计算机硬件以及操作系统原理,逻辑思维要强,当然要学的还很多,如mfc,C#等等,所以,如果你不是非常痴迷于编程,我劝你玩玩就行了,当然,更不要走上违法犯罪的道路吆!
good luck。
呀,还有,请采纳我吧,宝贝儿,嘻!
如何编写木马程序
如果对电脑感兴趣的话可以学习下,一般软件开发工程师都是学的高级语言,但是如果写木马,我们一般是要接触低级语言的,低级语言比高级语言学起来枯燥,但学成之后进阶高级语言很快而且比一般的程序员牛逼,高级语言配合底层知识才能写出更好的木马。底层知识越牢固越好。
怎样才能编程木马程序
北上广深这么多程序员,怎么没几个搞这种编程的?
一个原因就是没钱赚,另一个原因就是技术上要求太高。
好好的学编程,从你提这个问题来看,你都还没入门吧。
慢慢学,你会发现学得越多自己越无知,等你有五年以上开发经验的时候,再来看你现在的这个提问的时候,一定会笑话这个时候的自己的。
祝你在开发的路上快速成长!
木马是如何编写的(三)
很高兴为您解答:
木马编写是需要你懂的C++语言
首先是程序的大小问题,本程序经编译链接后得到的可执行文件竟有400多K,用Aspack1.07压了一下也还有200多K。可以看出不必要的Form是应该去掉的;并且尽量由自己调用底层的API函数,而尽量少使用Borland打好包的VCL控件;要尽量使用汇编语言(BCB支持C++和汇编混编),不但速度会加快,而且大小可以小很多,毕竟木马是越小越好。
还有启动方式的选择。出了Win.ini、System.ini之外,也还是那几个注册表键值,如:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\
RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
都已被其他的木马用烂了。现在又开始对exe、dll和txt文件的关联程序动手脚了(如冰河和广外女生)。这里涉及到参数传递的问题。得到ParamStr()函数传来的参数,启动自己后再启动与之关联的程序,并将参数传递给它,这样就完成了一次“双启动”,而受害者丝毫感觉不到有任何异常。具体键值如:
与exe文件建立关联:HKEY_CLASSES_ROOT\exefile\shell\open\mand
与txt文件建立关联:HKEY_CLASSES_ROOT\txtfile\shell\open\mand
与dll文件建立关联:HKEY_CLASSES_ROOT\dllfile\shell\open\mand
等,当然还可以自己扩充。目前还有一种新方法:在
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
\Windows
下添加如下键值 "AppInit_DLLs"="Server.dll",这就把Server.dll注册为系统启动时必须加载的模块(你应该把木马编译成DLL)。下次开机时,木马以动态链接库形式被加载,存在于系统进程中。因为没有它自己的PID(Process ID 进程识别号),所以在NT的任务管理器中也看不见(不过在“系统信息”——“软件环境”——“已加载的32位模块”中还是可以详细看到当前内存中加载的每一个模块的),这样做的目的是可以使自己的程序更加隐蔽,提高木马的生存能力。
木马的功能还可以大大扩充。你可以充分发挥你的想象力——比如上传、下载、新建、改名、移动文件,截图存为jpg文件传回,录音监听成Wav文件,录像成AVI文件,弹光驱,读软驱,关机,重启,不停地挂起,胡乱切换分辨率(烧掉你的显示器),发对话框,不停地打开资源管理器直到死机,杀掉Kernel32.dll进程使机器暴死,交换鼠标左右键,固定鼠标,限制鼠标活动范围,鼠标不听指挥到处乱窜,记录击键记录(记录上网口令,这需要深入了解钩子(Hook)技术,如键盘钩子和鼠标钩子),窃取......
编写木马?
盗号木马~~~~楼主,这不是好玩的东西,不过看在高分悬赏的份上,就告诉你吧。 可以通过 SendMessage 发送 WM_GETTEXT 取得密码框中的值,我们可以利用这一点来完成密码的截取。 使用 Timer 控件,监视QQ。 用遍查窗口的方法(EnumWindows),取得所有的窗口标题(GetWindowText),判断其中是否为"QQ用户登录"的标题,取 得QQ登录窗口的子窗口(窗口上的控件)的类名(GetClassName),然后通过 boBox、Edit 取得用户名和密码(通过 SendMessage 发送 WM_GETTEXT 取得值)。 由于不能判断外部按键事件的发生,只有通过不断的取得密码值,具体方法如下: 首先取得 用户名的值,然后不停的取密码的值,再判断窗口的标题是否为用户名,如果为用户名,则最后一次密码的值就是真正的密码,到此程序完成。 程序编制 (1)首先为了避免程序被多次装载,造成系统资源的浪费、及不必要的错误。 声明变量、过程及 API 函数,写在 Module1.bas 文件中 Declare Function CreateFileMapping Lib "kernel32" Alias "CreateFileMappingA" (ByVal hFile As Long, lpFileMappigAttributes As SECURITY_ATTRIBUTES, ByVal flProtect As Long, ByVal dwMaximumSizeHigh As Long, ByVal dwMaximumSizeLow As Long, ByVal lpName As String) As Long '创建一个新的文件映射对象
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long '关闭一个内核对象
Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Const PAGE_READWRITE = 1
Const ERROR_ALREADY_EXISTS = 183
建立判断程序是否多启动的过程
Sub Main()
Dim ynRun As Long
Dim sa As SECURITY_ATTRIBUTES
sa.bInheritHandle = 1
sa.lpSecurityDescriptor = 0
sa.nLength = Len(sa)
ynRun = CreateFileMapping(HFFFFFFFF, sa, PAGE_READWRITE, 0, 128, App.title) '创建内存映射文件
If (Err.LastDllError = ERROR_ALREADY_EXISTS) Then '如果指定内存文件已存在,则退出
CloseHandle ynRun '退出程序前关闭内存映射文件
End
End If
End Sub
(2)即时监视,就需要在系统启动时,程序自启动,这里使用修改注册表的方法 声明变量、过程及 API......
木马程序是怎么编出来的
一个典型的蠕虫病毒有两个功能型部件:传播和破坏,流行的蠕虫病毒大都是利用操作系统或者应用程序的漏洞(以弱口令和溢出最为常见),但常常并不会对宿主机造成“致命”的破坏。这两个特点使蠕虫病毒比普通电脑病毒传播得更快,影响力更大。一般来说,单一的蠕虫病毒只针对某种特定的漏洞进行攻击,所以一旦这种漏洞得到大范围修补,病毒也就没有了生存空间。
更新这种设计,我把传播部件拆分开来:把扫描、攻击和破坏脚本化,主程序则负责解析这些脚本。例如针对ftp弱口令进行扫描,我们可以定义如下脚本:
code:
uid = iscript-0a21-2331-x #随机唯一编号
using tcp;
port 21;
send “user anonymous”;
send crlf;
send “pass [email protected]”
send crlf;
if (find “200”) resulrt ok;
next;
[copy to clipboard]
解析了这段脚本后(我想这种脚本是很容易读懂的),我们再定义一系列的过程,把我们的蠕虫体upload上去,一次完整的传播动作就完成了。如果是溢出漏洞,为了简单起见我们可以采集远程溢出的数据包,然后修改ip地址等必要数据,再转发溢出数据包进行溢出(这种情况下要实现connect-back就不容易了,不过这些具体问题就待有心人去研究吧),例如:
code:
using raw;
ip offset at 12;
send “\x1a\xb2\xcc” ……
[copy to clipboard]d
主程序在完成传播后留下一个后门,其他宿主机可以通过这个后门与本地的蠕虫病毒同步传播脚本,这样每次有新的漏洞产生,宿主机的传播方式可以很快地得到升级。我们当然不会仅满足于这样一个蠕虫程序,扫描/攻击脚本的传播过程也是需要仔细处理的。
我们希望适应力(fitness)最强的脚本得到广泛的应用(看起来有点类似 蚁群算法 和 ga),所以我们要求得每个个体的fitness,当它和另一个体取得联系的时候就可以决定谁的传播脚本将取代另一个:
fitness = number of host infected / number of host scanned
但也不能仅凭fitness就修改传播脚本,我个人觉得一个合适的概率是75%,20%的机会保持各自的传播脚本,剩下的5%则交换脚本。这样在维持每种脚本都有一定生存空间的情况下使适应性最好的个体得到更多的传播机会,同时,一些在某种网络环境下适应性不强的脚本也有机会尝试不同的网络环境。
木马程序是怎么写出来的?
您好:
建议您不要编写木马程序,木马程序会对您和别人的电脑造成损害的,如果您曾编写过此类不安全的软件的话,为了您电脑的安全,建议您使用腾讯电脑管家对您的电脑进行一下全面的杀毒吧,打开腾讯电脑管家中的杀毒功能选择闪电查杀或者全盘查杀就可以,您可以点击这里下载最新版的腾讯电脑管家:最新版腾讯电脑管家下载
腾讯电脑管家企业平台:zhidao.baidu/c/guanjia/
怎么制作木马程序?
你需要学会编程才能编写木马编写木马最好用vc++。enet/eschool/video/c++/ 这是c++的教程,你学懂了这些皮毛的东西再深入研究内核编程吧如果上面的地址打不开可以到这里pconline/pcedu/empolder/gj/vc/0607/820674
怎么编写一个简单的木马程序?
特洛依木马这个名词大家应该不陌生,自从98年“死牛崇拜”黑客小组公布Back Orifice以来,木马犹如平地上的惊雷, 使在Dos——Windows时代中长大的中国网民从五彩缤纷的网络之梦中惊醒,终于认识到的网络也有它邪恶的一面,一时间人心惶惶。
我那时在《电脑报》上看到一篇文章,大意是一个菜鸟被人用BO控制了,吓得整天吃不下饭、睡不着觉、上不了网,到处求救!要知道,木马(Trojan)的历史是很悠久的:早在ATT Unix和BSD Unix十分盛行的年代,木马是由一些玩程式(主要是C)水平很高的年轻人(主要是老美)用C或Shell语言编写的,基本是用来窃取登陆主机的口令,以取得更高的权限。那时木马的主要方法是诱骗——先修改你的.profile文件,植入木马;当你登陆时将你敲入的口令字符存入一个文件,用Email的形式发到攻击者的邮箱里。国内的年轻人大都是在盗版Dos的薰陶下长大的,对网络可以说很陌生。直到Win9x横空出世,尤其是WinNt的普及,大大推动了网络事业的发展的时候,BO这个用三年后的眼光看起来有点简单甚至可以说是简陋的木马(甚至在Win9x的“关闭程序”对话框可以看到进程)给了当时中国人极大的震撼,它在中国的网络安全方面可以说是一个划时代的软件。
自己编写木马,听起来很Cool是不是?!木马一定是由两部分组成——服务器程序(Server)和客户端程序(Client),服务器负责打开攻击的道路,就像一个内奸特务;客户端负责攻击目标,两者需要一定的网络协议来进行通讯(一般是TCP/IP协议)。为了让大家更好的了解木马攻击技术,破除木马的神秘感,我就来粗略讲一讲编写木马的技术并顺便编写一个例子木马,使大家能更好地防范和查杀各种已知和未知的木马。
首先是编程工具的选择。目前流行的开发工具有C++Builder、VC、VB和Delphi,这里我们选用C++Builder(以下简称BCB);VC虽然好,但GUI设计太复杂,为了更好地突出我的例子,集中注意力在木马的基本原理上,我们选用可视化的BCB;Delphi也不错,但缺陷是不能继承已有的资源(如“死牛崇拜”黑客小组公布的BO2000源代码,是VC编写的,网上俯拾皆是);VB嘛,谈都不谈——难道你还给受害者传一个1兆多的动态链接库——Msvbvm60.dll吗?
启动C++Builder 5.0企业版,新建一个工程,添加三个VCL控件:一个是Internet页中的Server Socket,另两个是Fastnet页中的NMFTP和NMSMTP。Server Socket的功能是用来使本程序变成一个服务器程序,可以对外服务(对攻击者敞开大门)。Socket最初是在Unix上出现的,后来微软将它引入了Windows中(包括Win98和WinNt);后两个控件的作用是用来使程序具有FTP(File Transfer Protocol文件传输协议)和SMTP(Simple Mail Transfer Protocol简单邮件传输协议)功能,大家一看都知道是使软件具有上传下载功能和发邮件功能的控件。
Form窗体是可视的,这当然是不可思议的。不光占去了大量的空间(光一个Form就有300K之大),而且使软件可见,根本没什么作用。因此实际写木马时可以用一些技巧使程序不包含Form,就像Delphi用过程实现的小程序一般只有17K左右那样。
我们首先应该让我们的程序能够隐身。双击Form,首先在FormCreate事件中添加可使木马在Win9x的“关闭程序”对话框中隐藏的......
0条大神的评论