Beispiel #1
0
def blacklistsUpdate():
    db = Database()
    blacklists = db.getAllBlacklist()
    template = get_template('blacklists.html')
    return template.render({
        "blacklists": blacklists,
        "total": len(blacklists)
    })
Beispiel #2
0
 def get_campaign(self, campaign_prepid):
     """
     Return a single campaign if it exists in database
     """
     campaigns_db = Database('campaigns')
     campaign_json = campaigns_db.get(campaign_prepid)
     if campaign_json:
         return Campaign(json_input=campaign_json)
     else:
         return None
Beispiel #3
0
def index():
    db = Database()
    totalRequests = len(db.getAllLogs())
    totalBlacklists = len(db.getAllBlacklist())

    template = get_template('index.html')
    return template.render({
        "total_requests": totalRequests,
        'total_blacklists': totalBlacklists
    })
Beispiel #4
0
 def __new__(self,date,request,host,url,client_ip,useragent):
     db = Database()
     status = 'Safe'
     result = db.checkBlacklist(host,url)
     if result:
         status = 'Unsafe'
     else:
         pass
         #t1 = Thread(target=self.checkAgain, name="checkAgain", args=(self,url,host,))
         #t1.start()
     db.insertLog(date=date,url=url,host=host,client_ip=client_ip,useragent=useragent,status=status)
     return status
Beispiel #5
0
    def delete_campaign(self, campaign_json):
        """
        Delete a campaign
        """
        campaign = Campaign(json_input=campaign_json)
        prepid = campaign.get_prepid()

        campaigns_db = Database('campaigns')
        if not campaigns_db.get(prepid):
            raise Exception('Campaign with prepid does not "%s" exist' %
                            (prepid))

        campaigns_db.delete_object(campaign)
        return True
Beispiel #6
0
    def create_campaign(self, campaign_json):
        """
        Create a new campaign
        """
        campaign = Campaign(json_input=campaign_json)
        prepid = campaign.get_prepid()

        campaigns_db = Database('campaigns')
        if campaigns_db.get(prepid):
            raise Exception('Campaign with prepid "%s" already exists' %
                            (prepid))

        if self.__check_campaign(campaign):
            campaigns_db.save(campaign)
            return campaign
        else:
            self.logger.error('Error while checking campaign %s', prepid)
            return None
Beispiel #7
0
    def update_campaign(self, campaign_json):
        """
        Update a campaign with given json
        """
        new_campaign = Campaign(json_input=campaign_json)
        prepid = new_campaign.get_prepid()

        campaigns_db = Database('campaigns')
        old_campaign = campaigns_db.get(prepid)
        if not old_campaign:
            raise Exception('Campaign with prepid does not "%s" exist' %
                            (prepid))

        old_campaign = Campaign(json_input=old_campaign)
        # Move over history, so it could not be overwritten
        new_campaign.set('history', old_campaign.get('history'))
        changed_values = self.get_changed_values(old_campaign, new_campaign)
        new_campaign.add_history('update', changed_values, None)
        if self.__check_campaign(new_campaign):
            campaigns_db.save(new_campaign)
            return new_campaign
        else:
            self.logger.error('Error while checking campaign %s', prepid)
            return None
Beispiel #8
0
class Blacklists(object):
    def update(self, ):
        self.db = Database()
        self.phishiTank()
        self.openPish()

    def phishiTank(self, ):
        r = requests.get('http://data.phishtank.com/data/online-valid.csv')
        csvcontent = r.text.split('\n')
        urls = list()
        for i in range(1, len(csvcontent) - 1):
            url = csvcontent[i].split(',')[1]
            urls.append({'url': url, 'host': urlparse(url).netloc})
        self.db.bulkInsertBlacklist(urls)

    def openPish(self, ):
        r = requests.get('https://openphish.com/feed.txt')
        feed = r.text.split('\n')
        urls = list()
        for url in feed:
            if url:
                url = url.strip()
                urls.append({'url': url, 'host': urlparse(url).netloc})
        self.db.bulkInsertBlacklist(urls)
Beispiel #9
0
 def checkAgain(self,url,host):
     results = list()
     results.append(self.globaSiteSafety(self,url))
     if True in results:
         db = Database()
         db.insertBlacklist(url,host)
Beispiel #10
0
 def update(self, ):
     self.db = Database()
     self.phishiTank()
     self.openPish()
Beispiel #11
0
def logs():
    db = Database()
    allLogs = db.getAllLogs()
    template = get_template('logs.html')
    return template.render({"logs": allLogs})
Beispiel #12
0
def blacklistsDelete(bid):
    db = Database()
    db.deleteBlacklist(bid)
    return hug.redirect.to('/blacklists')