设为主页 | 加入收藏 | 繁體中文

在木马中简单实现远程关机

  得当读者:黑器喜好者、编程新手
  前置知识:VC6根本利用方法
  Socket:长途控制中有一个紧张的部份就是怎样完成长途关机,在各种木马中几乎都完成了长途关机功能,本日我们就来看看这个紧张的关机部分是怎样编程完成的。本文利用的是普通的VC6.0,步骤很简单,新手朋友们也入手写一下自己的入侵工具吧!不难,要是你从点滴开端。
  在木马中简单完成长途关机
  在木马中,我们是接纳的让客户端Socket给服务真个Socket发送相干的指令,同时当服务端收到相应的指令后,执行相对应的操纵,比如关机,而这些操纵实质就是调用相应的函数来处置惩罚,关机函数及其参数说明如下:
  BOOL ExitWindowsEx(UINT uFlags,DWORD dwReserved);
  在此中uFlags可以有以下值:
  EWX_LOGOFF:注消;
  EWX_POWEROFF:逼迫关机;
  EWX_REBOOT:重启;
  EWX_SHUTDOWN:先生存再关机;
  EWX_FORCE:不生存关机;
  EWX_FORCEIFHUNG:不生存关机(Windows 2000以上版本)。
  晓得了函数,接上去我们就在VC中用这个函数完成我们所要的功能吧。先来看看我们所要完成步伐的外观!  起首,由VC中的领导生成一个对话框,注意在生成领导中要选择成静态联编。由于我们在木马中是常用的是重启,那么我们就把这个步伐取名为“reboot”吧!去失它默认生成的静态文本,然后添加三个单选项,并把别的主要的项设定如下:
  第二,打开MFC ClassWizard进行音讯的映射处置惩罚,五个主要的控件都是用的单击音讯处置惩罚,从而为每个控件进行了音讯映射。
  第三,在rebootDlg.h中为三个单选按钮添加一个标记成员整形变量“m_mark”,而且在三个单选项按钮的函数体辨别加入m_mark=0,m_mark=1,m_mark=2。如(另两个同理):
  void CRebootDlg::OnLogoff()
  {
  // TODO: Add your control notification handler code here
  m_mark=0;
  }
  第四,双击“确定”的按钮,去失它原来默认调用的ONOK(),而且加入以下的代码(各代码功能请看注释):
  void CRebootDlg::OnCok()
  {
  // TODO: Add your control notification handler code here
  HANDLE hToken;
  TOKEN_PRIVILEGES tkp;
  DWORD dwVersion;  //版本号
  dwVersion = GetVersion(); //失掉Windows NT或Win32的版本号
  switch(m_mark) //由吸收单选项值进行相干操纵
  {
  case 0:
  ExitWindowsEx(EWX_LOGOFF,0);
  break; //注消操纵
  case 1:
  if(dwVersion < 0x80000000)
  {
  OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|
  TOKEN_QUERY,&hToken);
  LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
  tkp.PrivilegeCount = 1; //设置权限
  tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
  AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);
  ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE,0);
  }
  else //Windows系列别的体系处置惩罚
  {
  ExitWindowsEx(EWX_FORCE | EWX_REBOOT,0);
  }
  break; //重启操纵
  case 2:
  if(dwVersion < 0x80000000) //用于果断Windows系列,从而设置相应的权限
  {
  OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES |
  TOKEN_QUERY,&hToken);
  LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
  tkp.PrivilegeCount = 1;
  tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
  AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);
  ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE,0);
  }
  else
  {
  ExitWindowsEx(EWX_FORCE | EWX_SHUTDOWN ,0);
  }
  break; //关闭盘算机
  }
  }
  第五,“取消”可以不做处置惩罚,接纳默认的就可了,然后编译运行。如许你就为你的木马编写了长途关机部分,当前自己的木马也有关机功能了,是不是更专业了呢?
 


    文章作者: 福州军威计算机技术有限公司
    军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。

TAG:
评论加载中...
内容:
评论者: 验证码: