All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Implemented a JSON file save example (031cecd)
2.1.0 - 2023-04-01
- Properly log error and stop execution for non whitelisted IP
- Updated syntax in DiscordAction
2.0.0 - 2021-07-13
- Better protocol check in urlanalyzer (a377aee)
- Use sys.exit() instead of exit() (2d6cb67)
- Add missing parameter 'unique_matches' for match function (c9a2e99)
- Implemented ExactWordAnalyzer to match words exactly rather than partially (08ebdbc)
- Implemented BasicAnalyzer.unique(), which can be used to filter out duplicate matches from BasicAnalyzer.match()
- Ability to enforce IP version for the connection to pastepwn (3483566)
- BREAKING: Dropped support for Python < 3.6
1.3.1 - 2020-06-20
- The PastebinScraper could not recognize error messages with IPv6 addresses.
- Started adding some readme files for the subfolders to explain certain parts of the code better
1.3.0 - 2020-03-03
- Implemented base64analyzer, which matches if a found base64 string decodes to valid ascii (b535781)
- Implemented IrcAction - the previous implementation was not working (546b87f)
- SaveFileAction now got a parameter to set the file ending and a template (c3d75f7)
- Analyzers now check if a passed action is a subclass of BasicAction, which prevents issues such as #175
- The DiscordAction now also uses the templating engine - it was forgotten in a previous update (#176)
- The SyslogAction now also uses the templating engine - it was forgotten in a previous update (54d3652)
- The SaveFileAction does now store each paste in a different file as it should be (#179)
- The IrcAction did not send the correct data. This was fixed and eventually the action was rewritten from scratch (see "Added")
1.2.0 - 2020-02-05
- Analyzers can now return a boolean or a list of matched results
- Actions now get passed a list of matched results by the analyzer
- New Analyzer: PasteTitleAnalyzer - Analyzer to match Paste titles via regex
- New Analyzer: IPv4AddressAnalyzer - Match IPv4 addresses via regex
- Subclasses of RegexAnalyzer now got a method
def verify(results)
that can be overwritten to filter matches, so you only return valid results - EmailPasswordPairAnalyzer has now an optional parameter
min_amount
to specify how many pairs must be found to actually match - Base64Analyzer got an optional parameter
min_len
to specify how long a detected string must be at least to actually match - Logical operators for analyzers - you can now connect multiple analyzers with logical operators to specify more precisely when a paste should match (aed2dbf)
- Analyzers can now return a boolean, or a list of matched results
- Actions now get passed a list of matched results by the analyzer and can
- IBANAnalyzer will now filter out wrong IBANs and return a list of validated IBANs if the
validate
parameter is set toTrue
- Using non-capturing groups in regex for various analyzers. This is done so that the analyzer can return a matched string and at the same time it fixed some issues with analyzers not matching properly
1.1.0 - 2019-11-11
- Implement TemplatingEngine for filling template strings with content (8481036)
- Add custom request headers in request.py (5043e0c)
- Add flags to RegexAnalyzer to handle e.g. case-insensitive matching (ddd0dca)
- logger object now usable from within any analyzer (d21532e)
- Implement logical analyzers (and/or) (94fc691)
- Implement listify method to create lists from a given input (e935122)
- Implement support for onstart handlers (25b5313)
- Create docker-compose file (83014be)
- New Action: TwitterAction for posting tweets when a paste matched (2056c3c)
- New Action: DiscordAction (eafdc1c)
- New Action: MISPAction (8dabe5d)
- New Action: EmailAction (9cfba96)
- New Action: IrcAction (fc1d1ab)
- New Analyzer: PrivateKeyAnalyzer (a8746f1)
- New Analyzer: DatabaseDumpAnalyzer (0aa63ad)
- New Analyzer: DBConnAnalyzer (e940630)
- New Analyzer: PhoneNumberAnalyzer (9ff58b9)
- New Analyzer: OriginKeyAnalyzer (d0d715d)
- New Analyzer: SteamKeyAnalyzer (27273a6)
- New Analyzer: UplayKeyAnalyzer (38097ac)
- New Analyzer: EpicKeyAnalyzer (da122da)
- New Analyzer: BattleNetKeyAnalyzer (8927204)
- New Analyzer: MicrosoftKeyAnalyzer (8927204)
- New Analyzer: AWSAccessKeyAnalyzer (ebc6eab)
- New Analyzer: AWSSecretKeyAnalyzer (d07021a)
- New Analyzer: SlackWebhookAnalyzer (c40c364)
- New Analyzer: GoogleOAuthKeyAnalyzer (fbfb8bf)
- New Analyzer: FacebookAccessTokenAnalyzer (bb51e3e)
- New Analyzer: Base64Analyzer (8d50fbe)
- New Analyzer: AdobeKeyAnalyzer (4e52345)
- New Analyzer: EmailPasswordPairAnalyzer (f0af9cb)
- New Analyzer: HashAnalyzer (87080c2)
- New Analyzer: SlackTokenAnalyzer (d686169)
- New Analyzer: MailChimpApiKeyAnalyzer (2e5302d)
- New Analyzer: MegaLinkAnalyzer (c884cb6)
- New Analyzer: StripeApiKeyAnalyzer (f9bd202)
- New Analyzer: AzureSubscriptionKeyAnalyzer (b010cb5)
- New Analyzer: GoogleApiKeyAnalyzer (635a5e4)
- SHA hash analyzer can now accept multiple length hashes (494d1af)
- Use empty string if paste.body is set to None in URL- and IBANAnalyzer (09f6763)
- Include some changes when creating a sqlite file (0eb3504)
1.0.16 - 2019-09-08
- Perform checks on pastebin responses to catch errors (01f865e)
- If pastes are not ready for downloading, requeue them (01f865e)
1.0.15 - 2019-09-04
- Ability to search for multiple words in single WordAnalyzer (d2a7e09)
- Ability to restart running scrapers after adding a new one (de99892)
- Ability to register error handlers (1fae47e)
- Check if paste is None before analyzing it (2fd7b39, f4bfa46)
- Broken behaviour for WordAnalyzer blacklist (df2dd5b)
- Reduced sleep time in order to shut down pastepwn faster (55bb18d)
- Add check in GenericAnalyzer if parameter is callable (781d6d0)
- WordAnalyzer not matching in case-sensitive mode (8762ddd)
1.0.14 - 2019-09-04
- Parameter for setting up storing of all downloaded pastes (e04f476)
- Broken path to requirements.txt in setup.py (cc7edf4)
- Missing column 'syntax' in sqlite table layout (3fb3821)
- Broken variable substitution for sqlite statement (cf49963)
- Allow writing to sqlite db from multiple threads (f47ec62)
1.0.13 - 2019-09-02
- Broken paths in setup.py (42eca9b)
1.0.12 - 2019-02-20
- New
add_action(self, action)
method in BasicAnalyzer to add actions on the fly (4b5df12) - Created a Dockerfile (b5334ff)
- Implement possibility to execute multiple actions when a paste matches (ae6055e)
- Method to create database on a mysql server (dbfecce)
- Stop method for pastedispatcher
- Stop method in actionhandler ()
- Minimum supported Python version is now 3.5, because that's what we run travis on (7b8bae2)
- Use better sqlite create table statement (9378dad)
- MySQL Port setting did not work (d498088)
- Wrong MySQL syntax in create statements (6ae6508)
1.0.11 - 2019-01-09
- Several issues with MySQL adapter (37c8f36)
1.0.10 - 2019-01-06
- Template support for Telegram messages (3f11cb5)
1.0.9-travis - 2018-10-26
- Travis badge in Readme
- Usage description in Readme
1.0.8-travis - 2018-10-26
- Travis config file (dd3db55)
1.0.8 - 2018-10-22
First stable release