diff --git a/README.md b/README.md index d98269a..f540a32 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,82 @@ -# krylon +# krylon **art spam micro botnet logic** +``` + .oydddhhyo+/-. + `hddddhhddddddddhso/. + .dddh. ``..-:+ohdh- + __ .__ -ddddds/-` -sd/` + | | _________ ___.__.| | ____ ____ :dd//sdddhys+/:-` sdy-. + | |/ /\_ __ < | || | / _ \ / \ ody `yhdhddddddhhs/:+ddd/ + | < | | \/\___ || |_( <_> ) | \ yd/ .hdh.hdhshddddddddddy + |__|_ \ |__| / ____||____/\____/|___| / `dh. `yddo:dd: ``-/+odddddo + \/ \/ \/ :hy +dddyhddhyo:. .sddddy: + +hy hddhdddhsyhdhohdddy:` + hdd` hdd/+hdhs//hddddy/` + .dddo`odd` .+yddddddh/` + `.--:://+-ydddyyds `+ddddh+` + .oso+. `:oyhhhddddddy.-odddd+ `:ydddh+. + :hddddh+`+ddddhyso++//+../ohddhyydddds. + +hdddds::..sdd/.` -hso+oosyyhyo+- + `odddhshy` `ody+-` -hdddy- ````+dh+ + `sdddy- -ys. /hddhs/-` .:+s/ -dddo + `yddh. `oy/` .+hddddhso/-..```````.:ydddd+`++. + `/hy+.` :yy+.` `/shdddddddhyyyssyyhddddddd-+dh/` + `/yhs-` `/yhs/.` ./shddyyyyyhdddddddddddo`oddds + `++-/yhy+-` -ohdy+:`` `-:+oyyysddddddddho-.odddds + .sddhs:-+hdhs/.`.:shdhyo:.`` `..-/+osso/:.-ohddddd: + `/hddddy- -/shdhs/--/ohdddhys+/:--..--:+shdddddddy + .sddddh/ `-+yhddyo+osyddddddddddddddddddddddd: + /hddddo` `-/oyhdddhddddddddddddddddddddds + .sddddy- `-/+shdddddddddddddddddddh. + /hdddh/ `.:/+osyhhhhhhys+/. + .:+syyy` .sddddo` /o. + .+ydddddddho- `-+ddddy- sdd+ + -sddddddhsoydddhhdddddh: .----. hddy + -sddddds/.`ohdddddddddd+` .:oyddddddddy/` .ddd+ + `odddddo. .ydddddhddddh- -+ydddddddhhhddddh/ +ddd- + /hddddh: .yhddo-.``odd/ .+hddddho/-.` `:ohhho` `hddh + -ydddddd- `yddd: od. -sddddh+-` `/yho oddd: + `+ddddddd+ +ddd: .d` .sdddds:` -ddodddy + -ydddh/hdd. `hddo h- `/hdddy- yddddh. + ydddo` hhy -ddh` so .` `sdddh/` .ddddd: + ddd+ shy :ddo -h/.``:/ `ydddy. sdddd/ + hdd: /dh :dd/ :hhyhs` oddds` odddd/ + odd/ `dd` .dd/ `/o/` `ddds` `sdddh: + .hdo od/ sdo .ddd- -ydddh- + +dh` `hy -dh` `hdd- `+hddds. + `yd+ /d/ od+ +dd/ `/hdddh/` + .hd/ oh- `yh- `sdh. ./ydddds- + -hd/ `yh- .yh. `odh+. `-ohddddy:` + .yd/ `yh- .yh: :yhhs+:----/oydddddy/` + .sdo` .yh: `sdo` `/ydddddddddddddy/` + `ody. `oy/` `+hy:` `-ohddddddddy/` + /hs-` `+sy- -yds- `` `./shdddddho- + -yy+. :hdo` `/hds:` -:.`` ``./sddddddho:` + `odh/` -ydh/` .+hdy+-` .syysyhddddddyo:` + :hdy- `+hdy/` .+hddhs+:---yddddddy+sd/ + `ohds- .ohdy/. `:shddddddddddddd:.ydh` + .shds:`-sdddo:` `:oyhhdddddddd+hddd- + -sddho::shddho:` `.-://///ohddh- + .+hdddsoydddddyo/-.` `odddy. + -ohddddddddddddddhhyhhddd+ + -+sdddddddddddddddddh- + .:+osyhdddddhys+` +``` -art spam micro botnet logic \ No newline at end of file +#INSTALL: + +##NOTES: +``` +* install python3 +* install python3-pip +``` + +##COMMANDS: +``` +* git clone --recursive https://git.tcp.direct/decoded/krylon +* cd krylon +* python3 -m venv env +* . env/bin/activate +* python -m pip install --upgrade pip +* python -m pip install -r requirements.txt +* irc3 krylon.ini +``` diff --git a/krylon.ini b/krylon.ini new file mode 100644 index 0000000..d034dee --- /dev/null +++ b/krylon.ini @@ -0,0 +1,57 @@ +[bot] +nick = kryl0n_0001 +username = dr1p +host = ircd.chat +port = 6697 +channel = #sh0rtbus +version=1 +ssl = true +ssl_verify = CERT_NONE + +includes = + irc3.plugins.command + irc3.plugins.asynchronious + irc3.plugins.storage + irc3.plugins.uptime + irc3.plugins.ctcp + irc3.plugins.cron + irc3.plugins.logger + irc3.plugins.userlist + kryl0n + +flood_burst = 0 +flood_rate = 1 +flood_rate_delay = 1 +storage = json://spy.json + +[irc3.plugins.command] +cmd = ? +guard = irc3.plugins.command.mask_based_policy + +[irc3.plugins.command.masks] + d!*dr1p@* = all_permissions + * = view + +ignore_list = + g1mp_!*@* + g1mp!*@* + ken_!*@* + ken!*@* + +[bot_2] +nick = kryl0n_0002 +username = dr1p +channel = #sh0rtbus + +[bot_3] +nick = kryl0n_0003 +username = dr1p +channel = #sh0rtbus + +[bot_4] +nick = kryl0n_0004 +username = dr1p +channel = #sh0rtbus + +[server] +servername = ircd.chat \ No newline at end of file diff --git a/krylon.py b/krylon.py new file mode 100644 index 0000000..71c8f26 --- /dev/null +++ b/krylon.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +import irc3 +from irc3.testing import BotTestCase +import ipdb + + +testfile = ['a'*40,'b'*40,'c'*40,'d'*40,'1'*40,'2'*40,'3'*40,'4'*40] +KRYLON_FILE = testfile + +TOTAL_BOTS = 4 +CONNECTED_BOTS = [] +ONLINE_BOTS = [] +INITIALIZED = 0 + +@irc3.plugin +class Plugin(object): + + def __init__(self, context): + self.log = context.log + self.context = context + self.channel = context.config.channel + self.init = 0 + + def krylon(self): + if self.init == 0: + KRYLON_FILE.reverse() + self.init = 1 + MSG='sent validation test' + CHN='#sh0rtbus' + self.context.privmsg(CHN,MSG) + BotTestCase.assertSent(['PRIVMSG {} :{}'.format(CHN,MSG)]) + + @irc3.event(irc3.rfc.JOIN) + def welcome(self, mask, channel, **kw): + if mask.nick == self.context.nick: + ONLINE_BOTS.append(self.context.nick) + if len(ONLINE_BOTS) == TOTAL_BOTS: + self.krylon() + + @irc3.event(irc3.rfc.CONNECTED) + def connected(self, **kw): + for _ in [x for x in self.context.config.botnet]: + if kw['me'] in self.context.config.botnet[_].nick: + CONNECTED_BOTS.append((_,kw['me'])) + self.context.join(self.channel) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..6c05e0e --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +irc3 +aiocron +asyncio