Giter Club home page Giter Club logo

browser-backdoor's Introduction

BrowserBackdoor Build Status Code Climate License

Screenshots

BrowserBackdoor is an Electron application that uses a JavaScript WebSocket Backdoor to connect to the listener.

BrowserBackdoorServer is a WebSocket server that listens for incoming WebSocket connections and creates a command-line interface for sending commands to the remote system.

The JavaScript backdoor in BrowserBackdoor can be used on all browsers that support WebSockets. It will not have access to the Electron API of the host computer unless the BrowserBackdoor Client application is used.

Some things you can do if you have access to the Electron API:

  1. Open new browser windows that can point to any website. (already built-in. See: server/modules/openURL.js).

  2. Change and read the clipboard. (already built-in. See: server/modules/readClipboard.js and server/modules/writeClipboard.js).

  3. Access cross-platform Operating System notifications and the tray on OS X and Windows.

  4. Take screenshots. (already built-in. See: server/modules/screenshot.js).

  5. Execute arbitrary system commands. (already built-in. See: server/modules/execCmd.js)

  6. Run at startup. (already built-in. See: client/main.js and server/modules/manageStartup.js).

Support

If you find an issue with the program please use the issue tracker: https://github.com/IMcPwn/browser-backdoor/issues

Wiki

Screenshots are avaliable on the Wiki! https://github.com/IMcPwn/browser-backdoor/wiki/Screenshots

More information will be added to it soon.

Usage

The client application will run in the background and provide no user interface while running. To check that it's running, quit it, or enable/disable system startup press Command (OS X) OR Control (Windows/Linux) + Alt + \ or whatever you configured the shortcut as in client/main.js.

The server application's usage can be accessed by typing help in the command line.

Installing

Requirements for client:

  • Latest Node.js and npm

Requirements for server:

  • Ruby 2.1+ and the gems in the Gemfile

BrowserBackdoor Client is supported on all devices supported by Electron. Currently that is Windows 32/64, OS X 64, and Linux 32/64.

BrowserBackdoorServer has been tested on Ubuntu 14.04, Debian 8, and Kali Linux. It should work on any similar Linux operating system.

To install anything, first, clone the repository. All the rest of the commands shown assume you are in the root of the repository.

git clone https://github.com/IMcPwn/browser-backdoor
cd browser-backdoor

How to install and run the BrowserBackdoor client application:

cd client
npm install
#
# Configure index.html and main.js before the next command.
#
npm start

How to build client executables (see here for more information):

cd client
npm install electron-packager -g
electron-packager . --all

How to run BrowserBackdoorServer:

cd server
gem install bundler
bundle install
#
# Configure config.yml before the next command
#
ruby bbsconsole.rb

License

MIT

Disclaimer

This is a personal development project, please do not use it for nefarious purposes. The author bears no responsibility for any misuse of the program.

Contact

This program is made by IMcPwn .

Contact information such as email, twitter, and other methods of contact are avaliable here: https://imcpwn.com

browser-backdoor's People

Contributors

imcpwn 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

browser-backdoor's Issues

Improve the module system

I would like to create a Metasploit-style module system where you can "use module" then type the module command for the JavaScript in the module file to be executed on the selected session.

At the moment I do not know how to implement this, I will be doing further research on the topic.

File upload module

Add a module that will allow filesystem access with upload/download of files.

Colors!

Everyone likes command line applications with colors.

VNC module

Can we string a couple diffs of the screenshots together to get vnc like functionality?

webcamMicrophone.js does not work

[X] Error converting incoming encoded webm to webm automatically (Webm is empty). Attempting to save as .txt
[*] Response received but is too large to display (20 characters). Saved to out/bb-result-XXXX-XXXX.txt

Make travis.yml test better

Travis does not test any Ruby code besides syntax. Even so, it doesn't test anything besides commands in server/ which does not include server/lib/

Save responses to a file

Have a class variable in Bbs::WebSocket that stores the past 5 responses and add a save command to save a certain amount to a file.

Feature request: REST based fallback for older clients

Would it be possible to create an option which simply starts an HTTP(S) REST server which a browser can continuously ping for updated commands.

Example

  • Server starts with the --rest option
  • Server starts an HTTP(S) server on the configured ports
  • Client executes code, but doesn't support websockets
  • Client switches to REST and uses an HTTP GET call to get a buffer of code every x milliseconds
  • Server sends response and clears the buffer for related session
  • Client eval's the code passed to it, and POST's it back to the server as a response
  • Server echoes the output to the user

Asynchronous commands

The server should automatically make commands sent asynchronous so the client's executing doesn't get halted by an alert() dialog or something.

Pull configuration from URL

The client could pull information on the WebSocket it should connect to via a XMLHttpRequest to the Server.

I'm not sure if this is a worthwhile addition though.

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.