Git Product home page Git Product logo

beef's Introduction

===============================================================================

Copyright (c) 2006-2024 Wade Alcorn - [email protected]
Browser Exploitation Framework (BeEF) - https://beefproject.com
See the file 'doc/COPYING' for copying permission

===============================================================================

What is BeEF?

BeEF is short for The Browser Exploitation Framework. It is a penetration testing tool that focuses on the web browser.

Amid growing concerns about web-borne attacks against clients, including mobile clients, BeEF allows the professional penetration tester to assess the actual security posture of a target environment by using client-side attack vectors. Unlike other security frameworks, BeEF looks past the hardened network perimeter and client system, and examines exploitability within the context of the one open door: the web browser. BeEF will hook one or more web browsers and use them as beachheads for launching directed command modules and further attacks against the system from within the browser context.

Get Involved

You can get in touch with the BeEF team. Just check out the following:

Please, send us pull requests!

Web: https://beefproject.com/

Bugs: https://github.com/beefproject/beef/issues

Security Bugs: [email protected]

Twitter: @beefproject

Discord: https://discord.gg/ugmKmHarKc

Requirements

Quick Start

The following is for the impatient.

The install script installs the required operating system packages and all the prerequisite Ruby gems:

$ ./install

For full installation details, please refer to INSTALL.txt or the Installation page on the wiki.

Upon successful installation, be sure to read the Configuration page on the wiki for important details on configuring and securing BeEF.

Documentation

Usage

To get started, simply execute beef and follow the instructions:

$ ./beef

beef's People

Contributors

0xmachos avatar antisnatchor avatar asaafan avatar bcoles avatar bmantra avatar bw-z avatar deezye avatar dependabot[bot] avatar francois777 avatar gcattani avatar grantrburgess avatar h4sh5 avatar jackdwalker avatar jcrew99 avatar marcwickenden avatar mgeeky avatar mike-at-aura avatar milo2012 avatar passbe avatar qswain2 avatar radoen avatar sgorbaty avatar soh-cah-toa avatar stephenakq avatar thejambo avatar und3rf10w avatar wadealcorn avatar wanton1950 avatar wheatley avatar xntrik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

beef's Issues

Insecure URL Handling - Skype Call - No Longer Works

When running:

[17:32:01][>] Server: mounted handler '/command/insecure_url_skype.js'
[17:32:01][>] Hard Load module: 'insecure_url_skype'
[2011-09-10 17:32:03] ERROR NoMethodError: undefined method has_key?' for ["name", "tel_num"]:Array /Users/xian/beef/nextgen/beef/core/module.rb:393:inblock (2 levels) in merge_options'
/Users/xian/beef/nextgen/beef/core/module.rb:392:in each' /Users/xian/beef/nextgen/beef/core/module.rb:392:inblock in merge_options'
/Users/xian/beef/nextgen/beef/core/module.rb:390:in each' /Users/xian/beef/nextgen/beef/core/module.rb:390:inmerge_options'
/Users/xian/beef/nextgen/beef/core/module.rb:376:in execute' /Users/xian/beef/nextgen/beef/extensions/admin_ui/controllers/modules/modules.rb:585:inattach_command_module'
/Users/xian/beef/nextgen/beef/extensions/admin_ui/classes/httpcontroller.rb:69:in call' /Users/xian/beef/nextgen/beef/extensions/admin_ui/classes/httpcontroller.rb:69:inrun'
/Users/xian/beef/nextgen/beef/extensions/admin_ui/handlers/ui.rb:48:in do_GET' /Users/xian/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/webrick/httpservlet/abstract.rb:35:inservice'
/Users/xian/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/webrick/httpserver.rb:111:in service' /Users/xian/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/webrick/httpserver.rb:70:inrun'
/Users/xian/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'
^C
[17:32:33][*] BeEF server stopped

Google Code Issue: http://code.google.com/p/beef/issues/detail?id=495

Network stack throws error with high amount of traffic

I got these errors, that resulted in cpu => 50% and BeEF freeze,
when playing with Burp Scanner on two resources, using the following increased scanning engine config:

thread count: 20
retried on net failure: 2
pause before retry (millis): 500

So yes, very hazard settings.
I was hoping to get some errors, to see where things can hang.
Here we go :-)

[:39:56]←[33m[>]←[0m [PROXY] Forwarding request: host[192.168.10.128], method[GET], path[/dvwa/vulnerabilities/sqli/], urlparams[id=abcde../../../../../../../../../../windows/win.ini&Submit=Submit], body[]
[:39:56]←[33m[>]←[0m [PROXY] Forwarding request: host[192.168.10.128], method[GET], path[/dvwa/vulnerabilities/xss_r/], urlparams[name=)(sn=], body[]
[2011-06-28 10:40:06] ERROR NoMethodError: undefined method []' for nil:NilClass C:/BeEF/./core/main/network_stack/handlers/dynamicreconstruction.rb:80:inexpunge'
C:/Ruby187/lib/ruby/gems/1.8/gems/json-1.5.1-x86-mingw32/lib/json/pure/parser.rb:148:in sort_by' C:/BeEF/./core/main/network_stack/handlers/dynamicreconstruction.rb:80:ineach'
C:/BeEF/./core/main/network_stack/handlers/dynamicreconstruction.rb:80:in sort_by' C:/BeEF/./core/main/network_stack/handlers/dynamicreconstruction.rb:80:inexpunge'
C:/BeEF/./core/main/network_stack/handlers/dynamicreconstruction.rb:53:in check_packets' C:/BeEF/./core/main/network_stack/handlers/dynamicreconstruction.rb:41:ineach'
C:/BeEF/./core/main/network_stack/handlers/dynamicreconstruction.rb:41:in check_packets' C:/BeEF/./core/main/network_stack/handlers/dynamicreconstruction.rb:33:indo_GET'
C:/Ruby187/lib/ruby/1.8/webrick/httpservlet/abstract.rb:35:in __send__' C:/Ruby187/lib/ruby/1.8/webrick/httpservlet/abstract.rb:35:inservice'
C:/Ruby187/lib/ruby/1.8/webrick/httpserver.rb:104:in service' C:/Ruby187/lib/ruby/1.8/webrick/httpserver.rb:65:inrun'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:173:in start_thread' C:/Ruby187/lib/ruby/1.8/webrick/server.rb:162:instart'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:162:in start_thread' C:/Ruby187/lib/ruby/1.8/webrick/server.rb:95:instart'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:92:in each' C:/Ruby187/lib/ruby/1.8/webrick/server.rb:92:instart'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:23:in start' C:/Ruby187/lib/ruby/1.8/webrick/server.rb:82:instart'
C:/BeEF/./core/main/server.rb:101:in start' beef:64 [2011-06-28 10:40:06] ERROR NoMethodError: undefined method[]' for nil:NilClass
C:/BeEF/./core/main/network_stack/handlers/dynamicreconstruction.rb:80:in expunge' C:/BeEF/./core/main/network_stack/handlers/dynamicreconstruction.rb:80:insort_by'
C:/BeEF/./core/main/network_stack/handlers/dynamicreconstruction.rb:80:in each' C:/BeEF/./core/main/network_stack/handlers/dynamicreconstruction.rb:80:insort_by'
C:/BeEF/./core/main/network_stack/handlers/dynamicreconstruction.rb:80:in expunge' C:/BeEF/./core/main/network_stack/handlers/dynamicreconstruction.rb:53:incheck_packets'
C:/BeEF/./core/main/network_stack/handlers/dynamicreconstruction.rb:41:in each' C:/BeEF/./core/main/network_stack/handlers/dynamicreconstruction.rb:41:incheck_packets'
C:/BeEF/./core/main/network_stack/handlers/dynamicreconstruction.rb:33:in do_GET' C:/Ruby187/lib/ruby/1.8/webrick/httpservlet/abstract.rb:35:insend'
C:/Ruby187/lib/ruby/1.8/webrick/httpservlet/abstract.rb:35:in service' C:/Ruby187/lib/ruby/1.8/webrick/httpserver.rb:104:inservice'
C:/Ruby187/lib/ruby/1.8/webrick/httpserver.rb:65:in run' C:/Ruby187/lib/ruby/1.8/webrick/server.rb:173:instart_thread'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:162:in start' C:/Ruby187/lib/ruby/1.8/webrick/server.rb:162:instart_thread'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:95:in start' C:/Ruby187/lib/ruby/1.8/webrick/server.rb:92:ineach'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:92:in start' C:/Ruby187/lib/ruby/1.8/webrick/server.rb:23:instart'
C:/Ruby187/lib/ruby/1.8/webrick/server.rb:82:in start' C:/BeEF/./core/main/server.rb:101:instart'
beef:64
[:40:06]←[34m[*]←[0m [PROXY] Response for request #219 to [/dvwa/vulnerabilities/xss_r/] on domain [192.168.10.128:80] correctly processed


Google Code Issue: http://code.google.com/p/beef/issues/detail?id=358

Implement multiple zombie section functionality

Implement a method to permit the admin to select multiple zombies and have the same module execute on them.

As simple example is to detect ToR on many zombies in one click. Another use will be the distributed port scanning module. In this instance, zombies will be provided a unique piece of work to perform and individual results combined to produce the total result.

In the absence of a better option, the combined result will be displayed in all zombies taking part in the execution and in the main logs. If there is a better method of displaying the results add a comment. I suspect there is.



Google Code Issue: http://code.google.com/p/beef/issues/detail?id=71

Detect local settings module: not working in IE9

admin OS: win7
admin browser: IE9
hooked OS: win7
hooked browser: IE9
screenshot: IE9-IE9-localSettings

not working...see console log in the screenshot

admin OS: snow leopard
admin browser: FF 6.0.2
hooked OS: win7
hooked browser: IE9
screenshot: FF6-IE9-localSettings

same behavior of above.

[19:25:34][>] Server: mounted handler '/command/detect_local_settings.js'
[19:25:34][>] Hard Load module: 'detect_local_settings'
[19:25:34][>] Module 'detect_local_settings', no options method defined
[19:25:35][>] Module 'detect_local_settings', no options method defined
[19:25:35][>] Module 'detect_local_settings', no options method defined
[19:25:37][>] Server: mounted handler '/Beeffeine.class'
[19:25:37][] File
[/Users/antisnatchor/WORKS/BEEF/beeftrunk/modules/network/detect_local_settings/Beeffeine.class]
bound to url [/Beeffeine.class]
[19:25:37][
] Hooked browser 192.168.84.131 has been sent instructions
from command module 'Get Network Settings'
[2011-10-02 19:26:01] ERROR /Beeffeine.class/Beeffeine.class' not found. [2011-10-02 19:26:01] ERROR/Beeffeine.class/Beeffeine.class' not found.
[2011-10-02 19:26:02] ERROR /Beeffeine.class/Beeffeine.class' not found. [2011-10-02 19:26:02] ERROR/Beeffeine.class/Beeffeine.class' not found.

I didn't tried IE8, but as far as I remember it was working. So this can
be an issue on IE9 only. Also check if the module is working IE8.

Google Code Issue: http://code.google.com/p/beef/issues/detail?id=532

Simplify the 'Link Rewriter' module

Currently the 'Link Rewriter' allows the user to enter a jQuery selector. This should be removed and the module should simply overwrite all the links in the page with the specified URL.

Remove the 'jQuery Selector' option from the module.
Remove all references to jQuery.
Ensure the only input is the URL to use in the rewrite.

Google Code Issue: http://code.google.com/p/beef/issues/detail?id=450

Network Fingerprint module: with IE not all the excepted resources are detected.

admin OS: win7
admin browser: IE9
hooked OS: win7
hooked browser: IE9
screenshot: IE9-netFingerprint

The module is working, but not all the resources are correctly detected.
The module should return 2 Apache and 1 Jboss entries, but is returning
only 1 Apache entry.
The module is correctly loading the images, as you can see in the
IE9-fingerpting (note the Jboss image that is actually not notified back
to the framework) network logs.

admin OS: win7
admin browser: IE9
hooked OS: snow leopard
hooked browser: FF 6.0.2
screenshot: firefox-netFingerprint

no problems, everything ok. detected 3/3 resources (see comments above).

Google Code Issue: http://code.google.com/p/beef/issues/detail?id=531

Command module details panel is not displayed when multiple hooked browser panels are open

What steps will reproduce the problem?

  1. Hook 2 browsers
  2. Select the first browser from the browser tree
  3. Select the second browser from the browser tree
  4. Open the command modules tab on the first browser tab
  5. Open the command modules tab on the second browser tab
  6. Select any command module in the first browser tab
  7. Select any command module in the second browser tab

What is the expected output?
It is expected that the module options will be displayed in both modules panels.

What do you see instead?
The module options are shown in one module option tab and not the other. A screen shot of the empty panel is attached.



Google Code Issue: http://code.google.com/p/beef/issues/detail?id=437

[XssRays] Add support for depth-crawling

The JS crawler should be able to follow the links on the first hooked page, crawling to a depth = N new pages.

This would be really useful to expand the attack surface on cross-domain vulnerable links/forms that are not present on the page where the HB is already hooked.

We can issue ajax requests to all the same-domain links found in the hooked page, parse the links/forms in the response, and add them to a stack of resources to be scanned. Should work ;)


Google Code Issue: http://code.google.com/p/beef/issues/detail?id=404

Add Command Module Function: Get command module callback

Add a callback function to permit the alteration of parameters and variables based upon the hooked browser details.

Currently, when the command module righthand pain is displayed, it is not possible to display the hooked browser's domain in a variable setting. This is because there is no callback to the module.

Add a callback method called pre_display() to /lib/modules/command.rb. This method will be called before the configuration options of each command module is presented in the browser. The likely place this callback will be triggered is the select_command_module() function in /ui/modules/modules.rb.

It may help to refer to how the pre_send() callback works. pre_display() will be very similar.


Google Code Issue: http://code.google.com/p/beef/issues/detail?id=160

no such file to load -- windows_console_color_support

What steps will reproduce the problem?

  1. install ruby 1.9.2-head from rvm
  2. get latest source from svn (r1424)
  3. install beef with ruby install
  4. run 'ruby beef'

root@bt:/pentest/web/beef# ruby beef
/usr/local/rvm/rubies/ruby-1.9.2-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require': no such file to load -- windows_console_color_support (LoadError) from /usr/local/rvm/rubies/ruby-1.9.2-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:inrequire'
from /usr/local/rvm/gems/ruby-1.9.2-head/gems/librex-0.0.63/lib/rex/ui/text/output/stdio.rb:2:in <top (required)>' from /usr/local/rvm/rubies/ruby-1.9.2-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:inrequire'
from /usr/local/rvm/rubies/ruby-1.9.2-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require' from /usr/local/rvm/gems/ruby-1.9.2-head/gems/librex-0.0.63/lib/rex/ui/text/output.rb:15:in<class:Output>'
from /usr/local/rvm/gems/ruby-1.9.2-head/gems/librex-0.0.63/lib/rex/ui/text/output.rb:13:in &lt;module:Text&gt;' from /usr/local/rvm/gems/ruby-1.9.2-head/gems/librex-0.0.63/lib/rex/ui/text/output.rb:5:in<module:Ui>'
from /usr/local/rvm/gems/ruby-1.9.2-head/gems/librex-0.0.63/lib/rex/ui/text/output.rb:4:in &lt;module:Rex&gt;' from /usr/local/rvm/gems/ruby-1.9.2-head/gems/librex-0.0.63/lib/rex/ui/text/output.rb:3:in<top (required)>'
from /usr/local/rvm/rubies/ruby-1.9.2-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require' from /usr/local/rvm/rubies/ruby-1.9.2-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:inrequire'
from /usr/local/rvm/gems/ruby-1.9.2-head/gems/librex-0.0.63/lib/rex/ui/output.rb:18:in &lt;class:Output&gt;' from /usr/local/rvm/gems/ruby-1.9.2-head/gems/librex-0.0.63/lib/rex/ui/output.rb:12:in<module:Ui>'
from /usr/local/rvm/gems/ruby-1.9.2-head/gems/librex-0.0.63/lib/rex/ui/output.rb:4:in &lt;module:Rex&gt;' from /usr/local/rvm/gems/ruby-1.9.2-head/gems/librex-0.0.63/lib/rex/ui/output.rb:3:in<top (required)>'
from /usr/local/rvm/rubies/ruby-1.9.2-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require' from /usr/local/rvm/rubies/ruby-1.9.2-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:inrequire'
from /usr/local/rvm/gems/ruby-1.9.2-head/gems/librex-0.0.63/lib/rex/ui.rb:7:in &lt;top (required)&gt;' from /usr/local/rvm/rubies/ruby-1.9.2-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:inrequire'
from /usr/local/rvm/rubies/ruby-1.9.2-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require' from /pentest/web/beef/core/loader.rb:35:in<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in require' from &lt;internal:lib/rubygems/custom_require&gt;:29:inrequire'
from beef:37:in `<main>'


Google Code Issue: http://code.google.com/p/beef/issues/detail?id=566

Internet Explorer 9 is incorrectly reported as Internet Explorer 7

[*] Issue:

Internet Explorer 9 (and maybe 8) is incorrectly reported as Internet Explorer 7 on pages containing malformed HTML.

Internet Explorer uses Compatibility Mode (Quirks Mode) for pages containing invalid markup.

The chances of a BeEF hook residing within a malformed HTML document are quite high as XSS vectors quite often break the markup.

[*] Cause:

The browser detection for Internet Explorer 8/9 in core/main/client/browser.js is as follows:

    /**
     * Returns true if IE8.
     * @example: beef.browser.isIE8()
     */
    isIE8: function() {
            $j(&quot;body&quot;).append('&lt;!--[if IE 8]&gt;     &lt;div id=&quot;beefiecheck&quot; class=&quot;ie ie8&quot;&gt;&lt;/div&gt;      &lt;![endif]--&gt;');
            return ($j('#beefiecheck').hasClass('ie8'))?true:false;
    },

    /**
     * Returns true if IE9.
     * @example: beef.browser.isIE9()
     */
    isIE9: function() {
            $j(&quot;body&quot;).append('&lt;!--[if IE 9]&gt;     &lt;div id=&quot;beefiecheck&quot; class=&quot;ie ie9&quot;&gt;&lt;/div&gt;      &lt;![endif]--&gt;');
            return ($j('#beefiecheck').hasClass('ie9'))?true:false;
    },

Unfortunately the conditional HTML comments for IE8 and IE9 are not triggered in compatibility mode resulting in isIE8() and isIE9() returning false.

[*] Fix:

This could be fixed by using detection methods similar to those used for other browsers, for example:

    /**
     * Returns true if IE8.
     * @example: beef.browser.isIE8()
     */
    isIE8: function() {
            return !!window.chrome &amp;&amp; !!window.opera &amp;&amp; window.navigator.userAgent.match(/MSIE 8\.0;/) != null;
    },

    /**
     * Returns true if IE9.
     * @example: beef.browser.isIE9()
     */
    isIE9: function() {
            return !!window.chrome &amp;&amp; !!window.opera &amp;&amp; window.navigator.userAgent.match(/MSIE 9\.0;/) != null;
    },

This approach has the added benefit of not adding HTML comments to the DOM which are quite obvious to anyone viewing the DOM in a debugger.

However if it was that simple we would have done that in the first place... I hope... Please tell me there's a good reason we didn't :(


Google Code Issue: http://code.google.com/p/beef/issues/detail?id=589

<console> unknown command options are throwing exception

If we issue for example:
connect help
and the help option is not implemented for the command connect, there is an exception.

Handle this error gracefully.

BeEF > connect help
[-] Error while running command connect: undefined method `+' for nil:NilClass

Call stack:
C:/Ruby192/lib/ruby/1.9.1/net/http.rb:1274:in addr_port' C:/Ruby192/lib/ruby/1.9.1/net/http.rb:1209:inbegin_transport'
C:/Ruby192/lib/ruby/1.9.1/net/http.rb:1188:in transport_request' C:/Ruby192/lib/ruby/1.9.1/net/http.rb:1177:inrequest'
C:/Ruby192/lib/ruby/1.9.1/net/http.rb:419:in block in post_form' C:/Ruby192/lib/ruby/1.9.1/net/http.rb:627:instart'
C:/Ruby192/lib/ruby/1.9.1/net/http.rb:418:in post_form' C:/BeEF-things/BeEF_console/console/lib/beef/remote/session.rb:20:inauthenticate'
C:/BeEF-things/BeEF_console/console/lib/beef/ui/console/command_dispatcher/remote.rb:53:in cmd_conn ect' C:/Ruby192/lib/ruby/gems/1.9.1/gems/librex-0.0.44/lib/rex/ui/text/dispatcher_shell.rb:376:inrun_co
mmand'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/librex-0.0.44/lib/rex/ui/text/dispatcher_shell.rb:338:in block in run_single' C:/Ruby192/lib/ruby/gems/1.9.1/gems/librex-0.0.44/lib/rex/ui/text/dispatcher_shell.rb:332:ineach'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/librex-0.0.44/lib/rex/ui/text/dispatcher_shell.rb:332:in run_si ngle' C:/Ruby192/lib/ruby/gems/1.9.1/gems/librex-0.0.44/lib/rex/ui/text/shell.rb:199:inrun'
beefconsole.rb:65:in `<main>'

Google Code Issue: http://code.google.com/p/beef/issues/detail?id=409

Malformed HTTP request to the proxy renders it unusable

Sending a malformed HTTP request to the proxy renders it unusable.

[*] Steps to reproduce:

  1. Hook a browser
  2. Select it as a proxy
  3. Send a malformed HTTP request to the proxy:

$ netcat 127.0.0.1 6789
GET /

[*] Output:

[11:24:06][] Using Hooked Browser with ip [xx.xx.xx.xx] as Tunneling Proxy
[11:24:29][
] [PROXY] Thread started in order to process request #1 to [/] on domain [localhost:6789]
[11:24:29][!] undefined method keys' for nil:NilClass [11:24:39][!] undefined methodkeys' for nil:NilClass
[11:24:52][!] undefined method keys' for nil:NilClass [11:24:52][*] [PROXY] Thread started in order to process request #2 to [/demos/basic.html] on domain [localhost:6789] [11:25:04][!] undefined methodkeys' for nil:NilClass
[11:25:09][!] undefined method keys' for nil:NilClass [11:25:19][!] undefined methodkeys' for nil:NilClass

[*] Effect:

Once the malformed request has been received the proxy will still accept connections however won't return any results. The aforementioned error message repeats every ~10 seconds.


Google Code Issue: http://code.google.com/p/beef/issues/detail?id=429

The select boxes are not being correctly generated when the user clicks on the "domain" button of the HB tree list several times

What steps will reproduce the problem?

  1. have a HB running
  2. select the "requester" tab of the HB tree list
  3. click on the "domain" button in the bottom bar

What is the expected output? What do you see instead?

Expected: the online HB have select boxes available

Instead: no select boxes. Or they are just wrong.


Google Code Issue: http://code.google.com/p/beef/issues/detail?id=228

Tunneling proxy: bug when the hooked browser is IE

admin OS: Win7
admin browser: C 14
hooked OS: Win7
hooked browser: IE9
browser using the tunnel: FF 6.0.2 (mac osx)
screenshot: IE9-proxy

screenshot:
there is a bug on parsing the response headers
(extensions/proxy/handlers/zombie/handler.rb), line 198 (gsub! on null
object) when using IE.

  • ---> probably there is a null header, or an header value without a ":
    " space after the : header delimiter. I need to investigate more this
    (damn IE) issue.

admin OS: Win7
admin browser: IE9
hooked OS: Win7
hooked browser: C 14
browser using the tunnel: FF 7 (win7)
screenshot: Chrome-proxy

Everything works fine here (css was cached, this is why the page seems
blank). Anyway, there is still the bug that Saafan should fix (as far as
I remember) about parsing the images.

Google Code Issue: http://code.google.com/p/beef/issues/detail?id=533

Add beefjs API Function: Popup Blocker

Add a function to the beefjs api (/modules/beefjs/browser.js) called hasPopups() to detect if popup windows are allowed. When the function is executed the hooked browser user must not notice.

The below code snipped was copied from: http://www.jguru.com/faq/view.jsp?EID=1157429

function IsPopupBlocker() {
var oWin = window.open("","testpopupblocker","width=100,height=50,top=5000,left=5000");
if (oWin==null || typeof(oWin)=="undefined") {
return true;
} else {
oWin.close();
return false;
}
}

if (IsPopupBlocker()) {
document.write("You HAVE A POPUP BLOCKER");
} else {
document.write("Popup blocker NOT detected.");
}

Google Code Issue: http://code.google.com/p/beef/issues/detail?id=159

POST requests cannot be sent through requester

The sink: http.content_length = request.content_length
request object does not contain the content_length (nil to integer exception).

Additionally, the code added to validate that the raw request is flawed because it's expecting request headers in a determined position.

For example, it cannot be predicted if the Host header is the first one (some browsers put other headers first): anyway the code is (wrongly) supposing this.

This is actually not working from the start as I can see from the SVN history.

Google Code Issue: http://code.google.com/p/beef/issues/detail?id=486

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.