Chinaunix首页 | 论坛 | 博客
  • 博客访问: 512788
  • 博文数量: 15
  • 博客积分: 8046
  • 博客等级: 中将
  • 技术积分: 810
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-10 21:55
文章分类

全部博文(15)

文章存档

2011年(1)

2009年(1)

2008年(13)

我的朋友

分类: 网络与安全

2008-12-28 14:29:43

  一、基础篇(揭开木马的神秘面纱)

  无论大家把木马看得多神秘,也无论木马能实现多么强大的功能,木马,其实质只是一个网络客户/服务程序。那么,就让我们从网络客户/服务程序的编写开始。

  1.基本概念:

  网络客户/服务模式的原理是一台主机提供服务(服务器),另一台主机接受服务(客户机)。作为服务器的主机一般会打开一个默认的端口并进行监听(Listen), 如果有客户机向服务器的这一端口提出连接请求(Connect Request), 服务器上的相应程序就会自动运行,来应答客户机的请求,这个程序我们称为守护进程(UNIX的术语,不过已经被移植到了MS系统上)。对于冰河,被控制端就成为一台服务器,控制端则是一台客户机,G_server.exe是守护进程, G_client是客户端应用程序。(这一点经常有人混淆,而且往往会给自己种了木马!

  2.程序实现:

  在VB,可以使用Winsock控件来编写网络客户/服务程序,实现方法如下(其中,G_ServerG_Client均为Winsock控件):

  服务端:

  G_Server.LocalPort=7626(冰河的默认端口,可以改为别的值)

  G_Server.Listen(等待连接)

  客户端:

  G_Client.RemoteHost=ServerIP(设远端地址为服务器地址)

  G_Client.RemotePort=7626 (设远程端口为冰河的默认端口,呵呵,知道吗?这是冰河的生日哦)

  (在这里可以分配一个本地端口给G_Client, 如果不分配, 计算机将会自动分配一个, 建议让计算机自动分配)

  G_Client.Connect (调用Winsock控件的连接方法)

  一旦服务端接到客户端的连接请求ConnectionRequest,就接受连接

  Private Sub G_Server_ConnectionRequest(ByVal requestID As Long)

  G_Server.Accept requestID

  End Sub

  客户机端用G_Client.SendData发送命令,而服务器在G_Server_DateArrive事件中接受并执行命令(几乎所有的木马功能都在这个事件处理程序中实现)

  如果客户断开连接,则关闭连接并重新监听端口 

  Private Sub G_Server_Close()

  G_Server.Close (关闭连接)

  G_Server.Listen (再次监听)

  End Sub

  其他的部分可以用命令传递来进行,客户端上传一个命令,服务端解释并执行命令...... 

阅读(1246) | 评论(0) | 转发(0) |
0

上一篇:08年的圣诞之夜

下一篇:冰河之控制篇

给主人留下些什么吧!~~