Botnet Sharing and Linking


This document is designed to help you with a working knowledge of botnets.

This document includes bot flags, sharing and linking bots. This only covers the 1.3.x and later versions of Eggdrop. Many things have changed in the way flags are handled and the way user-files are shared. The code has been stream-lined and made more efficient. Even if you have used previous version you should still glance over this document to find out what changes have been made. It will take some time to get used to but you will see its all for the better.

Terms

The following are some common terms that will be used in this document. Also the associated command(s) if applicable.

Botnet

The term used to describe multiple bots connected together.

Link

The term that means the actual linking of more than one bot
(.link .unlink)

Flags

Flags are attributes that determine what a bot can and can't do. Flags can be either global or channel specific. The main ones that affect a botnet are +h(hub), +a(alt hub) +s(passive share), +s (channel share), +p (passive share), +g (global share).
(.chattr, .botattr).

Share

The term used to describe two bots that share user records.

Aggressive Share

Term used to describe the method of sharing user-files. Aggressive share bot will only receive users from a passive bot.

Passive Share

Term used to describe the method of sharing user-files. Passive share bots will only send users to another bot.

Address

The physical address of the bot, i.e. the host address "eggdrop.com:3333" contains the port address of the bot also.
(.chaddr)

Relay

The relay port number of the bot, if defined in the config file. If defined in the config file the bot will use two separate ports. One for telnet connections to other bots and one for relay connections. A relay connection is used to relay (jump) to another bot in DCC chat. You can still relay to another bot even if this is not defined in the config file.
(.relay)

Port

The telnet port the bot uses to communicate with other bots.

Adding bots

With the common terms out of the way we can start with the process of adding a bot so you may connect them together. Before you start you will need to decide or know the following:

  1. Will it be a share bot?
  2. Which bot is the hub (+h) bot?
  3. Will there be a alternate hub (+a) bot?
  4. If sharing who gets what from whom?
  5. What are the domains and ports of the bots.

*NOTE*: For sharing to work modules: transfer, share, filesys must be loaded on all the bots, and the channel specific +s should be set for all channels to be shared.

First off, let's say we have two bots we want to link. We will call one Lamestbot, and the other Lameshare. The first thing that needs to be done is each bot needs the other bot added to it's user record. Your botnet should have a hub bot. This will have them connect automatically whenever they are started. Without a hub you would have to manually link them with the .link command. For this situation we will make Lamestbot the hub for our small botnet. Let's also use a channel called #eggdrop as the one we want to share user channel flags with. Do the following:

On Lamestbot:

.+bot Lameshare eggdrop.com:3333 (This command adds a user record to Lamestbot for Lameshare. Lameshare is running from eggdrop.com and is on port 3333. If Lameshare were to have a separate port for users/relays we would just add a '/' and the port number i.e. 3333/5555)

.botattr Lameshare +s (this tells us that Lamestbot will only send user files to Lameshare, Lameshare will not send them to it)

.botattr Lameshare |s #eggdrop (this sets up sharing of the channel flags for #eggdrop between the bots. Without this they will not share channel flags only global flags for the users.)

On Lameshare:

.+bot Lamestbot best.com:3333/5555 (Again this will add a user on Lameshare called Lamestbot with the domain of best.com. The bot has two ports, 3333 for bot communications and 5555 for users/relays)

.botattr Lamestbot +hp (this command sets Lamestbot as the hub and also as a passive share which means Lameshare will accept user files from Lamestbot.

.botattr Lamestbot |+s #eggdrop (again sets #eggdrop as a share channel and that channel flags will be passed to Lameshare from Lamestbot)

At this point the bots should be auto-connecting and sharing between themselves. HINT: don't assign the +h flag until you are ready for them to link. Depending on the speed of the box they may connect prematurely before you have all the flags set.

Lamestbot (hub)
|
|
|
Lameshare

Let's add a third bot called beldin to this scenario:

On Lamestbot:

.+bot beldin llama.com:3333

.botattr beldin s|s #eggdrop (notice how i piped (the | character) the channel flag also saving time.)

Also note that you don't have to add beldin on Lameshare since they are already sharing it was added automatically. The one thing that you should note though is that no bot flags will be shared. Meaning that if you set beldin as +s (Aggressive share) on the hub (Lamestbot) he will not be set on the other bots as that. The same with the channel +s flag. All other flags will be shared such as the o f etc. Now that we have three bots we can also set up one as an alternate hub. The alternate hub is the bot that the bots will auto-connect to in the event the hub goes down and is unreachable.

Let's make beldin an alternate hub for our little botnet

On Lameshare:

.botattr beldin +a

That's all there is to it. Again since bot flags are not shared you would have to add the bot flag +a for beldin on them all. The only ones you would not have to do this on are beldin, and the hub (Lamestbot). Of course if you had more bots you would have to add beldin as a +a to them but you would not do it on the hub or beldin.

                           Lamestbot (hub)___< >____Lameshare
                                        |_____< >______beldin

That's about it for sharing, again you could add subsequent bots the same way you added beldin.


© 1997 Robey Pointer
© 1999,2000 Eggheads