17 Commits

Author SHA1 Message Date
Gabor Gyorvari
c542a745e4 Sample update 2024-05-22 14:16:44 +02:00
Gabor Gyorvari
7ac65c0c8d Hide error arg fix 2024-05-22 14:04:07 +02:00
Gabor Gyorvari
5061e319e3 Sample update 2024-05-22 14:03:43 +02:00
Gabor Gyorvari
b2b2c4b081 Small typo, fix #88 2023-07-26 12:39:34 +02:00
Gabor Gyorvari
26458d20af Sample update 2023-05-14 08:59:43 +02:00
Gabor Gyorvari
70edc4210d Sample update 2023-05-14 08:45:20 +02:00
Gabor Gyorvari
aec0f56af5 Sample update 2023-02-25 07:47:30 +01:00
Gabor Gyorvari
2e8b9c604f Merge remote-tracking branch 'origin/master' 2022-11-18 14:10:57 +01:00
Gabor Gyorvari
802ead97cc Flag usage fix about wordpress version checksum 2022-11-18 14:10:45 +01:00
Győrvári Gábor
4666a101f9 Merge pull request #81 from Fot0n/patch-1
Make it compatible with php 8.1
2022-09-19 12:51:07 +02:00
Fot0n
e4755feeef Make it compatible with php 8.1
strftime was deprecated.
2022-09-19 13:49:05 +03:00
Gabor Gyorvari
920cf8a4c6 Backdoor script samples 2022-08-17 18:52:03 +02:00
Gabor Gyorvari
aa774f4330 Another obfuscated malware check 2022-08-09 09:18:07 +02:00
Győrvári Gábor
cd1164dbb5 Merge pull request #80 from elliotkendall/master
Cast $needle in calls to strpos/stripos to string to avoid automatic …
2022-07-25 19:15:19 +02:00
Elliot Kendall
77ebd8abd7 Cast $needle in calls to strpos/stripos to string to avoid automatic ordinal conversion of integer patterns 2022-07-25 09:52:27 -07:00
Gabor Gyorvari
29e6c73558 Webshell matching pattern update 2022-07-22 11:28:18 +02:00
Gabor Gyorvari
bf13288367 Nested function call pattern update 2022-07-17 08:17:20 +02:00
5 changed files with 105 additions and 14 deletions

View File

@@ -34,7 +34,7 @@ Usage: php scan.php -d <directory>
-t --time Show time of last file change
-L --line-number Display matching pattern line number in file
-o --output-format Custom defined output format
-j --wordpress-version Version of wordpress to get md5 signatures
-j <version> --wordpress-version Version of wordpress to get md5 signatures
--combined-whitelist Combined whitelist
--custom-whitelist Loads whitelist from specified file and merge with existing
--disable-stats Disable statistics output

View File

@@ -19,4 +19,45 @@ surfright
# symantec - removed because already a TLD too so generate many false positives
# SEO poison, pharmacy redirect
dealonline.su
dealonline.su
# functions escaped as hexadecimal string
7068705f756e616d65
70687076657273696f6e
6368646972
676574637764
707265675f73706c6974
636f7079
66696c655f6765745f636f6e74656e7473
6261736536345f6465636f6465
69735f646972
6f625f656e645f636c65616e28293b
756e6c696e6b
6d6b646972
63686d6f64
7363616e646972
7374725f7265706c616365
68746d6c7370656369616c6368617273
7661725f64756d70
666f70656e
667772697465
66636c6f7365
64617465
66696c656d74696d65
737562737472
737072696e7466
66696c657065726d73
746f756368
66696c655f657869737473
72656e616d65
69735f6172726179
69735f6f626a656374
737472706f73
69735f7772697461626c65
69735f7265616461626c65
737472746f74696d65
66696c6573697a65
726d646972
6f625f6765745f636c65616e
7265616466696c65
617373657274

View File

@@ -27,6 +27,8 @@ ShellBOT
curl_get_from_webpage
file_get_contents('http://codepad.org
#mailers
leafmailer.pw
#Base64 String Samples. Each plain text string should have 3 base64 equivalents
@@ -205,6 +207,7 @@ http://www.fopo.com.ar/
@eval("\
";eval(
eval(eval(
@eval(`
#Malware/Attack specific strings/fingerprints/signatures
MagelangCyber
@@ -262,6 +265,7 @@ FaisaL Ahmed aka rEd X
smisbot
smotherbot
Indonesian Hacker Rulez
pwetan.com
# WP-VCD Malware https://www.getastra.com/blog/911/how-to-fix-wp-vcd-backdoor-hack-in-wordpress-functions-php/
wp-vcd
@@ -384,12 +388,51 @@ cGhwOi8vaW5wdXQ=
# backdoor script
<font color="red">Upload Gagal..</font><br />
explode('?>',$shell
0.33333333333333+0.33333333333333+0.33333333333333
0.66666666666667+0.66666666666667+0.66666666666667
1.3333333333333+1.3333333333333+1.3333333333333
class _t{private static$_
'LQ'.'=='
# common mobile agent check in SEO poison scripts
Array("1207", "3gso", "4thp", "501i", "502i", "503i", "504i", "505i", "506i",
# eval url decoded string
eval(rawurldecode('
eval(htmlspecialchars_decode(
# simple obfuscated gzuncompress
'gz'.'unc'.'ompress'
# simple obfuscated function
'gz'.'unc'.'ompress'
'create'.'_'.'function'
'gzinf', 'la', 'te'
'e_f', 'cti', 'un', 'on', 'cr', 'eat'
'base', '64_dec', 'ode'
'cook', 'set', 'ie'
'repl', 'str_', 'ace'
"base"."64_"
'base'.'64_'
"t"."m"."p"."_"."n"."a"."m"."e"
"f"."i"."l"."e"."_"."p"."u"."t"
"f"."i"."l"."e"."_"."g"."e"."t"
'ode', 'e64_', 'bas', 'dec'
'unct', 'ion', 'te_f', 'crea'
'te', 'g', 'nf', 'l', 'a', 'zi'
'tion', 'e_func', 'creat'
'64_d', 'se', 'eco', 'de', 'ba'
'co', 'ki', 'e', 'o', 'set'
'str', '_rep', 'lace'
# process data from request object directly
extract($_REQUEST) && @$
extract($_REQUEST)&&@$
xtract($_REQUEST)&&@$
# uncompress cafted content
gzuncompress(strrev(substr(
# disable error reporting
<?php error_reporting(0);?>
# infected file include attached on the top of a legit file
<?php if (file_exists(dirname(__FILE__) . '/class.theme-modules.php')) include_once(dirname(__FILE__) . '/class.theme-modules.php'); ?>
<?php if (file_exists(dirname(__FILE__) . '/class.plugin-modules.php')) include_once(dirname(__FILE__) . '/class.plugin-modules.php'); ?>

View File

@@ -79,7 +79,7 @@ chr\s*\(\s*['"]?\s*((95)|(0[Xx]5[Ff]))\s*['"]?\s*\)
#Escaped path characters: \x2fho\x6de/\x69mp\x75ls\x69oq\x65/w\x77w. or \x2fhome\x2fimpu\x6csioq\x65/www\x2emusc
(\\x[0-9abcdef]{2}[a-z0-9.-\/]{1,4}){4,}
#Malware inffected files sometimes marked with comments like /*87cda*/ to avoid infect again
#Malware infected files sometimes marked with comments like /*87cda*/ to avoid infect again
\/\*[a-z0-9]{5}\*\/
# XOR-ed strings with custom math
@@ -95,7 +95,7 @@ eval\(\$[a-z0-9_]+\(\$_POST
("[a-z0-9]+"\.chr\(\d+\)\.){3,}
# nested function call used variables
\$[a-z]+\(\$[a-z0-9]+\(
\$[a-z0-9_]+\(\$[a-z0-9_]+\(
# GLOBALS inject with escaped content
\$GLOBALS;\$\{"\\x
@@ -141,10 +141,16 @@ explode\('\|\x01\|\x03\|\x03', gzinflate\(
\$[a-z]11 \^ [a-z]8\(\$[a-z]6, \$[a-z]14, \$[a-z]6\[13\]\(\$[a-z]11\)\)\)\);
# eval function return and concat
eval\([A-Za-z]{5,}\(\) \. '
eval\([A-Za-z0-9]{5,}\(\) \. '
# eval function return, parameter is a hex string
eval\([A-Za-z0-9]{5,}\(\"[A-Z0-9]{16,}
# gzip payload called by variable named function
\$[a-zA-Z0-9]{6,}\('\x78\x9C\xAD\x90\x41\x0E
\$[a-zA-Z0-9]{6,}\('\x78\x9C\xAD\x90\x41\x0E
# obfuscated code return with error suppression
return @\$[a-z]{2}\d+\[\d+\]\(\$[a-z]{2}\d+\[\d+\],
# htaccess alternating
[a-z]{1}\([a-z]{1}\(\$[a-z]{2}\.'\/\.htaccess'\)

View File

@@ -231,7 +231,7 @@ class MalwareScanner
private function parseArgs()
{
$options = getopt(
'd:e:i:o:abmcxlhkwnsptLj:E',
'd:e:i:o:abmcxlhkrwnsptLj:E',
array(
'directory:',
'extension:',
@@ -244,6 +244,7 @@ class MalwareScanner
'follow-link',
'help',
'hide-ok',
'hide-err',
'hide-whitelist',
'no-color',
'no-stop',
@@ -622,8 +623,8 @@ class MalwareScanner
private function report($start, $dir)
{
$end = time();
echo 'Start time: ' . strftime('%Y-%m-%d %H:%M:%S', $start) . PHP_EOL;
echo 'End time: ' . strftime('%Y-%m-%d %H:%M:%S', $end) . PHP_EOL;
echo 'Start time: ' . date('Y-m-d H:m:s', $start) . PHP_EOL;
echo 'End time: ' . date('Y-m-d H:m:s', $end) . PHP_EOL;
echo 'Total execution time: ' . ($end - $start) . PHP_EOL;
echo 'Base directory: ' . $dir . PHP_EOL;
echo 'Total directories scanned: ' . $this->stat['directories'] . PHP_EOL;
@@ -709,14 +710,14 @@ class MalwareScanner
//Returns true if the raw string exists in the file contents.
private function scanFunc_STR(&$pattern, &$content)
{
return strpos($content, $pattern);
return strpos($content, (string)$pattern);
}
//Performs raw string, case insensitive matching.
//Returns true if the raw string exists in the file contents, ignoring case.
private function scanFunc_STRI(&$pattern, &$content)
{
return stripos($content, $pattern);
return stripos($content, (string)$pattern);
}
//Performs regular expression matching.
@@ -859,7 +860,7 @@ class MalwareScanner
echo ' -t --time Show time of last file change' . PHP_EOL;
echo ' -L --line-number Display matching pattern line number in file' . PHP_EOL;
echo ' -o --output-format Custom defined output format' . PHP_EOL;
echo ' -j --wordpress-version Version of wordpress to get md5 signatures' . PHP_EOL;
echo ' -j <version> --wordpress-version Version of wordpress to get md5 signatures' . PHP_EOL;
echo ' --combined-whitelist Combined whitelist' . PHP_EOL;
echo ' --disable-stats Disable statistics output' . PHP_EOL;