首页 | 业界新闻 | 黑客教程 | 安全漏洞 | 安全文章 | 破解技术 | 技术文摘 | 黑客文化 | 本站原创 | 安全贴吧 | 在线留言 | IP查询 | 软件下载 | 繁体中文 |
您现在的位置: 黑色反击 >> 技术资讯 >> 黑客教程 >> 黑客编程 >> 正文
在木马中简单实现远程关机
时间:2006-1-26 0:31:07 出处:黑客基地 作者:栓子 编辑:mervin 点击数:
合读者:黑器爱好者、编程新手

前置知识: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中用这个函数实现我们所要的功能吧。先来看看我们所要实现程序的外观!如图1所示:




图1


首先,由VC中的向导生成一个对话框,注意在生成向导中要选择成静态联编。由于我们在木马中是常用的是重启,那么我们就把这个程序取名为“reboot”吧!去掉它默认生成的静态文本,然后添加三个单选项,并把其它主要的项设定如下:


第二,打开MFC ClassWizard进行消息的映射处理,五个主要的控件都是用的单击消息处理,从而为每个控件进行了消息映射。如图2所示。



图2


 第三,在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; //关闭计算机
}
}

第五,“取消”可以不做处理,采用默认的就可了,然后编译运行。这样你就为你的木马编写了远程关机部分,以后自己的木马也有关机功能了,是不是更专业了呢?

精彩推荐
hack菜鸟入门
VB 从零开始编外挂(完
IPC入侵全接触
QQ跨站漏洞巧利用,强
WinXP中CPU占用100%原
黑客新技术 灰鸽子巧妙
实例讲解 黑客入侵论坛
ADSL共享上网方式大总
BMP文件格式分析
十招教你学会破解
热门软件
网 友 评 论
关于我们 - 联系方式 - 招聘信息 - 合作伙伴 - 网站地图 - 广告服务 - 我要投稿 - 设为首页 - 加入收藏
黑色反击 力倡网络安全,崇尚互联共享,欢迎各种媒体转载我们的原创作品 [转载请注明出处]。
EMAIL:hf110.com@gmail.com 备案:苏ICP备05010002号