-
Notifications
You must be signed in to change notification settings - Fork 87
/
BOTNET
301 lines (214 loc) · 10 KB
/
BOTNET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
Botnet Sharing and Linking Last revised: June 29, 2016
Botnet Sharing and Linking
==========================
The purpose of this document is to show you what a botnet is and how
it could be useful to you. It also covers botflags userfile sharing.
What is a botnet?
-----------------
A botnet consists of one or more bots linked together. This can allow
bots to op each other securely, control floods efficiently, and share
user lists, ban lists, exempt/invite lists, and ignore lists (if
sharing is enabled).
Terms
-----
The following are some common terms used in this document:
Botnet
A botnet consists of one or more bots connected together.
Link
Link is the term used to describe a bot connecting to another bot.
Hub
A bot is described as a hub-bot if one or more bots are linked to
it.
Leaf
A leaf is a non-hub bot connecting to a hub-bot. A leaf has only one
other bot connected to it, its hub. Leaf bots can be assigned the
"l" botflag to prevent other bots from linking to them.
Link Bot
A link-bot is a bot that is linked to another bot. It may or may not
be a hub-bot.
Share
Share is the term used to describe the sharing of user records.
Share Bot
A share-bot is a bot which shares user records with one or more
linked bots.
Aggressive Share
Aggressive share is a term used to describe the direction of sharing
user-files. Aggressive share bots will SEND userfiles to another
passive bot.
Passive Share
Passive share is a term used to describe the direction of sharing
user-files. Passive share bots will accept userfiles from an
aggressive share bot.
Address
The physical address, containing the address and port of the bot.
For example: lame.org:3333. You can change a bot's address with:
.chaddr <botname> <hostaddress:botport[/userport]>
Relay Port
The relay port number of the bot is defined in the config file. Note
that you can define one port for bots and another for user
connections.
Relay
A relay connection is used to relay (jump) to another bot via telnet
or DCC chat. You can relay to another bot even if the remote bot is
not linked. You can use:
.relay <botname>
to relay to another bot.
Port
The telnet port is used by the bot to communicate with other bots
and/or users. Note that you can define separate ports for user and
bot connections.
Example bottree
---------------
BotA
|-+BotB
`-+BotC
BotB is linked to a master sharebot, BotA, and a slave sharebot, BotC.
BotB shares passively with [receives from] BotA and shares aggressively
with [sends to] BotC.
Bot Flags
---------
Flags are attributes that determine what a bot can or is allowed to do.
Flags can be either global (such as +s) or channel specific (such as |+s
#lamest). See '.help botattr' for help with setting these flags.
The following is a list of valid bot flags:
------- ----------------------------------------------------------------
s share aggressively (SEND userfile to a passive bot)
p share passively (ACCEPT userfile from an aggressive bot)
g global share (share all channels)
h hub (automatically link to this bot)
a alternate (automatically link to this bot if the hub bot can't
be linked)
l leaf (bot is not allowed to link in other bots)
r reject (bot will not be allowed to link)
i isolate (isolate the party line across a bot link)
0-9 user defined flags
------- ----------------------------------------------------------------
Adding and linking bots
-----------------------
With the common terms out of the way, we can start with the process of
linking two bots. Before you start, you need to know the address and
port of each bot you wish to link.
Here is an example scenario:
BotA is on lame.org listening on port 3333, and BotB is on irc.org
listening on port 4444. First, you have to add each Bot to the other's
userfile. On BotA, you would type '.+bot BotB irc.org:4444'. If BotB
is on a common channel with BotA, BotB's hostmask is automatically
added. Otherwise, you have to add the hostmask manually with the
'.+host' command. On BotB, you would type '.+bot BotA lame.org:3333'.
At this point, you can link the two bots by typing '.link BotA' on BotB
(or '.link BotB' on BotA). The bots will now give themselves random
passwords which are not stored encrypted in the userfile. Note that you
can link as many bots as you wish to your botnet.
Using botflags
--------------
Botflags are needed to assign special functions and tasks to your bots.
Bot flags are set with the '.botattr' command. See '.help botattr' for
help with this command. The following is a list of botflags and their
functions:
"h" (hub)
If you want your bot(s) to automatically link/relink, you can
assign the +h botflag each bot's hub. Note that if you set
multiple bots +h, the bot only attempts to link to one.
"a" (alternate)
If your bots are, for some reason, unable to link to their hub,
they will attempt to connect to an alternate hub. You can assign a
bot as an alternate hub by giving it the +a botflag.
"l" (leaf)
This flag, assigned to a link bot, will prevent the link bot from
linking other bots to your botnet.
"r" (reject)
If you assign this flag to a link bot, the link bot will not be
allowed to link to the botnet.
"i" (isolate)
This flag isolates a link bot's partyline from the rest of the
botnet. Anything said on the link bot's partyline won't appear on
the rest of the botnet.
"s" (SEND userfile to)
+s Giving a link bot this flag will make the bot share aggressively
with the link bot. See 'Aggressive Share' in section 2 of this
document for more information on aggressive sharing.
"|s" (channel-specific sharing)
+s bots need this flag for each channel you want to share.
"p" (ACCEPT userfile from)
Giving a link bot this flag will make the bot share passively with
the link bot. See 'Passive Share' in section 2 of this document
for more information on passive sharing.
"g" (global share)
This flag allows the sharing of all channels with a link bot.
"0-9" (user-defined)
These 10 flags are user-defined can be used by scripters.
Making bots share user records
------------------------------
Before you start preparing your bots for sharing, make sure that
you've loaded the transfer and share modules. You also have to ensure
that each channel you wish to share is set +shared (see '.help
chanset' and '.help chaninfo').
By using specific botflags, you can cause your bot to share
aggressively with some link bots, and passively with others. For
sharing to work, flags must be set properly on both the passive and
the aggressive bots. An aggressive bot will not share userfiles with
another aggressive bot; a passive bot will not share userfiles with
another passive bot.
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 its 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
This sets #eggdrop as a share channel
Our botnet:
Lamestbot
`-+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 is that no bot flags will be shared. 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 or 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 on them, but you would not do it on the hub or beldin.
Our botnet:
Lamestbot
|-+beldin
`-+Lameshare
Copyright (C) 1999 - 2016 Eggheads Development Team