Commit Graph

50 Commits

Author SHA1 Message Date
nichogenius
9bc41ee8b4 Added createfunction and gzinflate obfuscations
Added createfunction and gzinflate obfuscations.
also added gzinflate b64 patterns
2017-07-28 03:25:10 -06:00
nichogenius
d889aad1d6 obfuscat is too common, causes fp's
obfuscat is too common, causes fp's
2017-07-28 03:16:19 -06:00
nichogenius
13c6e7d81a removed datatran
removed datatran for false positives
2017-07-28 03:00:46 -06:00
nichogenius
296db40c8a Added http://www.fopo.com.ar/
http://www.fopo.com.ar/ is a free online php obfuscator that apparently leaves comments in the code which we should be looking for.
2017-07-28 02:38:08 -06:00
nichogenius
51389233fc Added obfuscat
obfuscat should catch things like obfuscated, obfuscator, obfuscation.
Some online obfuscator providers leave a signature comment in the code.
2017-07-28 02:35:25 -06:00
nichogenius
12249ae719 Typo fix
Typo fix
2017-07-27 23:18:26 -06:00
nichogenius
34867652d8 shortened base64_decode to just base64
shortened the base64 fingerprints of 'base64_decode' to just 'base64'. will also catch cases of base64_encode which isn't quite so bad but still worth finding.
2017-07-27 23:14:23 -06:00
nichogenius
92d891f212 added file_get_contents, fopen
dropped allow_url_fopen as fopen will catch those references on its own.
2017-07-27 23:11:18 -06:00
nichogenius
3f516f9e15 added create_function
interesting note from the php.net manual on create_function:
Caution
This function internally performs an eval() and as such has the same security issues as eval(). Additionally it has bad performance and memory usage characteristics.
2017-07-27 23:07:54 -06:00
nichogenius
20fa892b51 just adding some comments
just adding some comments
2017-07-27 22:59:11 -06:00
nichogenius
0e40b194e6 Uploaded an organized and commented version
This file just contains a list of internal php 7 functions (probably incomplete depending on extensions etc) and their 3 base64 fingerprints. It is designed to be used as either a pattern file to explore potential patterns that may be effective, or simply as a reference to translate between plain text php and the 3 different base64 versions.
2017-07-27 22:53:33 -06:00
nichogenius
eceff0545e ovh removed
ovh removed
2017-07-27 08:59:23 -06:00
nichogenius
1a5020d65d bad idea... lots of fps
bad idea... lots of fps
removing base_convert
2017-07-27 07:47:04 -06:00
nichogenius
954cfeb10a Adding base_convert as a test
base_convert seems like a rare enough function... trying it out to see if it generates many fp's.
2017-07-27 07:41:58 -06:00
nichogenius
26fd5d91e7 Removed (chr\(\d+\)\.){4,}
Too many false positives
2017-07-27 07:27:37 -06:00
nichogenius
317ff8b6b7 Added functions, dropped Spammer.
Spammers gives false positives.  added a couple more php functions in base64
2017-07-27 07:08:05 -06:00
nichogenius
c4cac57689 Removed some nasty false positive patterns
Removed some nasty false positive patterns
2017-07-27 05:57:28 -06:00
nichogenius
0844963c21 Add files via upload
This is a file of base64 patterns that represent strings that would be present if any of the functions in php7 were encoded to base64.  I'll probably add structure later by grouping them with their plain text translation.

This file is useful to swap out with patterns_raw.txt to gain additional insights into other strings to search for in base64.
2017-07-27 02:38:55 -06:00
nichogenius
f02a984f60 Added Security service providers
Phishers often block these web-security providers... worth checking for if they don't create many false positives.
2017-07-26 09:32:51 -06:00
nichogenius
857999aee2 Added case-insensitive search logic
Added case-insensitive search logic

will search patterns_raw.txt, patterns_iraw.txt and patterns_re.txt
2017-07-26 05:17:53 -06:00
nichogenius
c5f1bcaa10 New file for case-insensitive search of strings
New file for case-insensitive search of strings
patterns_iraw.txt
2017-07-26 05:13:29 -06:00
nichogenius
0a198f82f5 using strpos instead of substr_count
don't know if it's faster, but I don't see a reason to count the number of times a line exists in a file for our use case.
2017-07-26 05:00:04 -06:00
nichogenius
1c7963149e Bug fix for last commit
comment and empty line filters were in the wrong place
2017-07-26 03:09:47 -06:00
nichogenius
86be84e8b6 Organizing, categorizing and prioritizing patterns
There's enough raw patterns in here to justify organizing the file.
Now that whitespace and comments are supported, I've been dividing it into sections

More critical problems should be near the top as I would rather the script identify a file as a backdoor instead of as a spammer.

I don't know the history behind a lot of these or the implication of the code, so I'm sure I mis-categorized many.  There are also many that I have not done yet.
2017-07-26 01:27:53 -06:00
nichogenius
b138ce1707 Added generic base64 long string pattern
Added some comments to the file and added a generic base64 string regex for long base64 strings.
2017-07-26 00:26:29 -06:00
nichogenius
8122d11eff Whitespace and Comment handling for pattern files
The pattern files are large and complex enough to justify some whitespace and comments to explain what each entry is.

Added logic to check if the line is empty or if the first character is equal to '#' before using it as a pattern.  Simply skips over empty and commented lines.
2017-07-25 23:55:37 -06:00
nichogenius
a371961928 Two-key sorting is better
cat php-malware-scanner-master/whitelist.txt | sort -k 2,2 -k 1,1 | less
More of an OCD thing than anything, but might as well sort primarily by file path, secondarily by hash value.
2017-07-25 23:50:42 -06:00
nichogenius
bdb375441b Sorted this file by column 2
cat whitelist.txt | sort -k 2 | less
No reason this shouldn't be sorted perfectly to keep like files together.
No white list rules changed... just plain sorting.
2017-07-25 21:29:10 -06:00
nichogenius
9931821ec5 added wordfence whitelist
wp-content/plugins/wordfence/lib/wordfenceURLHoover.php
checksum verified with fresh download.
2017-07-25 06:38:23 -06:00
nichogenius
32e8992b50 preg_replace b64 sample shortened to 'replace'
preg_replace should be shortened to just replace as it will also match str_replace, str_ireplace, ereg_replace, eregi_replace and many others I'm sure.  Should increase number of hits.  

'preg_replace' base64 strings: (removed)
cHJlZ19yZXBsYWNl
ByZWdfcmVwbGFjZ
wcmVnX3JlcGxhY2

'replace' base64 strings: (added)
cmVwbGFjZ
JlcGxhY2
yZXBsYWNl
2017-07-24 22:32:57 -06:00
nichogenius
34e6238a19 Minor correction to base64 sample
JHZpc2l0Y291bnQgPSAkSFRUUF9DT09LSUVf is correct.  encoded version of "$visitcount = $HTTP_COOKIE_"
I seem to have added a couple of extra characters than what I should have.  Not sure where they came from.
2017-07-24 21:51:43 -06:00
nichogenius
deb569cd11 contact-form-7 welcome-panel.php whitelist
contact-form-7 welcome-panel.php whitelist
confirmed md5 checksum from wordpress.org download.
2017-07-24 12:33:00 -06:00
nichogenius
6b55cfd8b3 Added Equivalent base64 pattern samples
Because base64 converts from an 8 bit to a 6 bit character system, you can get 3 unique base64 strings from a single ascii string depending on the position of the first character.

for example:
base64_encode("system");
base64_encode(" system");
base64_encode("(  system");

The above 3 input strings all produce very different base64 signatures even though they all contain the same keyword 'system'.  This is because the first letter of system, 's' fall on indices 0,1,2 respectively.

I updated several of the base64 samples to include their offset counterparts as the originals would only catch about 1 in 3 of the actual present matches.
2017-07-24 12:23:39 -06:00
Gabor Gyorvari
00bc3c1336 Pattern update according to japanese seo hack 2017-02-27 12:47:34 +01:00
Gabor Gyorvari
18929a47aa Japanese keywoard SEO hack
More info at https://developers.google.com/webmasters/hacked/docs/fixing_the_japanese_keyword_hack
2017-02-22 14:01:44 +01:00
Gabor Gyorvari
be8bc7448a Fix LICENSE file 2017-02-22 13:58:07 +01:00
Gabor Gyorvari
cd78f4a8ac Separate patterns from code 2017-02-22 13:56:09 +01:00
Gabor Gyorvari
acb58f1c2e New ignore argument to exclude files and folders with glob style matching 2017-01-11 19:10:59 +01:00
Gabor Gyorvari
b522a23a74 Case insensitive extension check, removed problematic whitelist 2016-12-29 08:31:27 +01:00
Gabor Gyorvari
5675fb8e79 New arguments to follow symlinked directories, default is not to follow 2016-12-27 17:51:39 +01:00
Gabor Gyorvari
1f6efc124b Patterns update from manul samples 2016-12-27 17:45:47 +01:00
Gabor Gyorvari
91174b5a60 Remove too regular patterns 2016-12-27 15:48:48 +01:00
screwloose83
608caf6d5e Removed unneeded time zone and comment. 2016-12-10 16:09:29 +01:00
screwloose83
dd78eee67a Added --extra-check Adds GoogleBot and htaccess to Scan List. 2016-12-10 16:09:29 +01:00
screwloose83
e8ee36b534 Update Whitelist
Updated white list
2016-12-10 16:09:29 +01:00
screwloose83
d12f5982b2 Added Extra Patterns for Scanning.
Added Extra Patterns for scanning from samples i found on my server.
Added extra-check it checks for googlebot and htaccess useful for cleaning up left over files.
2016-12-10 16:09:29 +01:00
Gabor Gyorvari
4f41362a46 extending patterns and whitelists 2016-08-15 15:07:23 +02:00
Gabor Gyorvari
dbeec3d29e extending patterns and whitelists 2016-08-12 21:39:10 +02:00
Gabor Gyorvari
5783ead57a extending patterns from 3rd samples source 2016-05-05 07:42:39 +02:00
Gabor Gyorvari
7e06f846ae first commit 2016-05-05 07:35:23 +02:00