Categorygithub.com/seantcanavan/anon-eth-net

# README

Anonymous Ethereum Network (anon-eth-net)

Totally anonymous botnet client with an emphasis on individual zombie control, resiliency of the host machine, and ease of remote code execution. Zombies are designed to easily mine ethereum in their free time for fun and check in at pre-specified intervals to report on their CPU, memory, disk, and network utilization.

Zombies can also use go-dos-yourself to enable remote network performance testing, fuzzing, spoofing, and attacking. Use responsibly.

###Feature List:

  1. Automate the execution of local processes remotely via REST or locally via JSON configuration.
  2. Automatically receive local processes' log output directly via email.
  3. Automatically prune old logs when disk space gets low.
  4. Built-in network manager regularly queries configurable internet endpoints at set intervals and reboots the machine when it's unable to reach the internet.
  5. Receive automated 'checkups' from the remote machine via email which include reports about overall system health.
  6. Remote machines can be fully passively and fully anonymously monitored via a steady stream of emailed logs or directly managed via REST.
  7. REST supports HTTPS with TLS encryption and timestamping to prevent replay attacks and ensure anonymity. Authentication is a work in progress still.

###Currently supported platforms:

  • macOS El Capitan 10.11.6
  • Ubuntu 16.04.1
  • Windows 10

###Supported platforms wish list:

  • macOS >= 10.8.X
  • Ubuntu >= 14.04.5
  • Windows >= 7 SP2

##General Setup for all OS's:

  1. Navigate to assets/ and execute cp config.json.sample config.json
  2. Update the required values in assets/config.json:
  3. CheckInGmailAddress - set this to the gmail address you wish to receive system reports and process logs at.
  4. CheckInGmailPassword - set this to the password to the above gmail address.
  5. CheckInFrequencySeconds - set this to the frequency at which you'd like to receive system reports at your specified email address. value is in seconds.
  6. NetQueryFrequencySeconds - set this to the frequency at which you'd like anon-eth-net to check for internet connectivity.
  7. Optionally update the optional values in assets/config.json:
  8. DeviceName - set this to the canonical name of the device which will be executing anon-eth-net. e.g. "main desktop", "garage pc", "sister's laptop", etc.
  9. DeviceId - if you wish to use your own method of uniquely identifying your remote devices fill in that value here otherwise anon-eth-net will generate a GUID for you automatically.
  10. Set your gmail address to allow "insecure app access". The page to enable that is here: https://support.google.com/accounts/answer/6010255?hl=en
  11. Download your favorite ethereum miner from the internet and add its install location to your system PATH variable.
  12. Read the manual for the miner and configure it along with all the command-line parameters required for it to operate. Extract the entire command-line command to start the miner.
  13. Update assets/main_loader_.json with the command to start up the miner. An example is already located in assets/main_loader_linux.json to copy from.
  14. You're done! Run the binary!

##Mac Code Compilation Setup:

####Required Packages:

  1. Git: brew install git
  2. Go: brew install go
  3. Glide: brew install glide
  4. TBA

####Required Setup:

  1. Select a parent folder for all your go code. 'golang' is not a bad idea. Inside this folder create a subfolder "src" and in that folder a subfolder named "github.com". Example: golang/src/github.com
  2. Use git clone to download the repository into the <parent_go_folder>/src/github.com/ folder.
  3. Go is already automatically configured on your local macOS path if installed via the brew package manager.
  4. Setup GOBIN and GOPATH system variables for your macOS user. Point to the <parent_go_folder> directory. For GOBIN use the same value as GOPATH but add /bin to the end. GOPATH should be something like /Users/<username>/<parent_go_folder>/src/github.com/anon-eth-net. You can automatically set the GOPATH variable in your .bash_profile file on each terminal load / system startup:
  5. nano ~/.bash_profile
  6. Scroll to the bottom and paste the following. You may wrap the folder argument after the equal sign in quotes if you have spaces in your folder names (shame on you).
  7. export GOPATH=/Users/<username>/<parent_go_folder>
  8. export GOBIN=/Users/<username>/<parent_go_folder>/bin
  9. I use a folder called 'workspace' as a former Eclipse user so my paths looks like this:
  10. export GOPATH=/Users/seantcanavan/workspace/golang
  11. export GOBIN=/Users/seantcanavan/workspace/golang/bin
  12. Update your sudoers file with the following:
  13. sudo visudo
  14. <username> ALL=(ALL) NOPASSWD:/usr/sbin/lsof
  15. Mine looks like: seantcanavan ALL=(ALL) NOPASSWD:/user/sbin/lsof
  16. <username> ALL=(ALL) NOPASSWD:/sbin/shutdown
  17. Mine looks like: seantcanavan ALL=(ALL) NOPASSWD:/sbin/shutdown
  18. By default your REST commands will be encrypted over HTTPS with a test certificate and private key that are readily available from this GitHub. This is fine for testing but when you decide to deploy you'll need to create your own private key / public key / certificate combination to keep all your transmissions totally secure.
  19. Generate the private key: openssl genrsa -out server.key 2048
  20. Generate the certificate and public key: openssl req -new -x509 -sha256 -key server.key -out server.pem -days 3650
  21. Place both files in the 'assets' folder which will be at <clone_root_dir>/anon-eth-net/src/github.com/seantcanavan/assets/
  22. Change directory to the root of the source folder: <clone_root_dir>/anon-eth-net/src/github.com/seantcanavan/
  23. make install
  24. TBA

##Linux Code Compilation Setup:

####Required Packages:

  1. Git: sudo apt-get install git
  2. Go: sudo apt-get install golang-go
  3. iostat: sudo apt-get install sysstat
  4. Glide:
  5. sudo add-apt-repository ppa:masterminds/glide && sudo apt-get update
  6. sudo apt-get install glide
  7. TBA

####Required Setup:

  1. Select a parent folder for all your go code. 'golang' is not a bad idea. Inside this folder create a subfolder "src" and in that folder a subfolder named "github.com". Example: golang/src/github.com
  2. Use git clone to download the repository into the <parent_go_folder>/src/github.com/ folder.
  3. Go is already automatically configured in your local Ubuntu path if installed via the synaptic package manager.
  4. Setup GOBIN and GOPATH system variables for your Ubuntu user. Point to the <parent_go_folder> directory. For GOBIN use the same value as GOPATH but add /bin to the end. GOPATH should be something like /home/<username>/<parent_go_folder>/src/github.com/anon-eth-net. You can automatically set the GOPATH variable in your .bashrc file on each terminal load / system startup:
  5. nano ~/.bashrc
  6. Scroll to the bottom and paste the following. You may wrap the folder argument after the equal sign in quotes if you have spaces in your folder names (shame on you).
  7. export GOPATH=/home/<username>/<parent_go_folder>
  8. export GOBIN=/home/<username>/<parent_go_folder>/bin
  9. I use a folder called 'workspace' as a former Eclipse user so my paths looks like this:
  10. export GOPATH=/home/seantcanavan/workspace/golang
  11. export GOBIN=/home/seantcanavan/workspace/golang/bin
  12. Update your sudoers file with the following:
  13. sudo visudo
  14. <username> ALL=(ALL) NOPASSWD:/bin/netstat
  15. Mine looks like: seantcanavan ALL=(ALL) NOPASSWD:/bin/netstat
  16. By default your REST commands will be encrypted over HTTPS with a test certificate and private key that are readily available from this GitHub. This is fine for testing but when you decide to deploy you'll need to create your own private key / public key / certificate combination to keep all your transmissions totally secure.
  17. Generate the private key: openssl genrsa -out server.key 2048
  18. Generate the certificate and public key: openssl req -new -x509 -sha256 -key server.key -out server.pem -days 3650
  19. Change directory to the root of the source folder: <clone_root_dir>/anon-eth-net/src/github.com/seantcanavan/
  20. make install
  21. TBA

##Windows Code Compilation Setup:

####Required Packages:

  1. Git: https://github.com/git-for-windows/git/releases/download/v2.10.2.windows.1/Git-2.10.2-64-bit.exe
  2. Golang: https://storage.googleapis.com/golang/go1.7.3.windows-amd64.msi
  3. TBA - glide for windows? i don't think it's a thing unfortunately. will have to revert to 'go get'

####Required Setup:

  1. Use git clone to download the repository.
  2. Configure your local system to make sure that the Go installation path is on the system path.
  3. Setup GOBIN and GOPATH system variables for your windows users. Point to the root of the anon-eth-net clone directory. For GOBIN use the same value as GOPATH but add \bin to the end. GOPATH should be something like C:\users\<username>\clone_root_dir\anon-eth-net.
  4. I don't think Windows requires elevated permissions to execute the shutdown command natively from the shell as long as the executing user is an Administrator. Fingers crossed.
  5. By default your REST commands will be encrypted over HTTPS with a test certificate and private key that are readily available from this GitHub. This is fine for testing but when you decide to deploy you'll need to create your own private key / public key / certificate combination to keep all your transmissions totally secure.
  6. Windows private key gen command here
  7. Windows certificate gen command here
  8. TBA

# Packages

The config package represents a static instance of the Config struct which is globally accessible once properly initialized.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author