partial translation
This commit is contained in:
73
scan.py
73
scan.py
@@ -7,15 +7,14 @@
|
||||
# To Do:
|
||||
# - Organize
|
||||
# - Translate
|
||||
# - Add more patterns
|
||||
#
|
||||
# - Add more patterns - work in progress
|
||||
# - remove false positives - work in progress
|
||||
|
||||
import os
|
||||
import re
|
||||
import fnmatch
|
||||
|
||||
whitelist = [
|
||||
'/lp-msh-scanner/',
|
||||
'/lp-msh-scanner/',
|
||||
'/._',
|
||||
'cache/object/000000/',
|
||||
@@ -190,39 +189,39 @@ whitelist = [
|
||||
debug = True
|
||||
line_early = 15
|
||||
scoring = {
|
||||
'WHITELISTED': (-10, u'fichier en whitelist manuelle'),
|
||||
'WHITELISTED_LINE': (-10, u'ligne en whitelist manuelle'),
|
||||
'PHP_COMMENTS': (-10, u'Fichier commence proprement avec une description'),
|
||||
'CLASS_FUNCTION': (-10, u'Fonction ou classe définie au tout début'),
|
||||
'BASE64_STRING': (50, u'Motif base64 trouvé'),
|
||||
'CRYPT_PHP': (50, u'Script CryptPHP qui inclue social.png'),
|
||||
'PHP_SHELL': (50, u'Script Shell'),
|
||||
'PHP_OBFUSC_SHELL': (50, u'Script Shell caché'),
|
||||
'ACCESS_DENIED': (-30, u'Execution bloquée en tout début de fichier'),
|
||||
'JAVASCRIPT_HACK': (50, u'Hack javascript'),
|
||||
'HAS_EVAL': (2, u'Contient eval()'),
|
||||
'HAS_EVAL_EARLY': (10, u'Contient eval() en début de fichier'),
|
||||
'HAS_CALL_FUNC_EARLY': (3, u'Contient call_user_func() en début de fichier'),
|
||||
'HAS_BASE64DECODE': (2, u'Contient base64_decode() ou str_rot13()'),
|
||||
'HAS_BASE64DECODE_EARLY': (10, u'Contient base64_decode() ou str_rot13() en début de fichier'),
|
||||
'HAS_MAIL': (1, u'Contient mail()'),
|
||||
'HAS_MAIL_EARLY': (2, u'Contient mail() en début de fichier'),
|
||||
'LONG_LINE': (5, u'Contient une ligne de plus de 1000 caractères'),
|
||||
'LONG_LINE_EARLY': (8, u'Contient une ligne de plus de 1000 caractères début de fichier'),
|
||||
'VERY_LONG_LINE': (5, u'Contient une ligne de plus de 3000 caractères'),
|
||||
'VERY_LONG_LINE_EARLY': (9, u'Contient une ligne de plus de 3000 caractères en début de fichier'),
|
||||
'MD5_VAR': (10, u'Contient une variable encodée en MD5'),
|
||||
'INCLUDE_REQUIRE': (-2, u'Contient include() ou require() sans http'),
|
||||
'COOKIE_FORM1': (20, u'Contient form1=@$_COOKIE'),
|
||||
'MAIL_X_HEADER': (5, u'Contient mail.add_x_header'),
|
||||
'SET_TIME_0': (5, u'Contient set_time_limit(0)'),
|
||||
'SET_ERRORREPORTING_0': (2, u'Contient error_reporting(0)'),
|
||||
'SET_TIMELIMIT_0': (2, u'Contient memory_limit(0)'),
|
||||
'SET_IGNOREUSERABORT_0': (2, u'Contient ignore_user_abort()'),
|
||||
'UPLOAD_FILE': (2, u'Contient move_uploaded_file()'),
|
||||
'FEW_LINES': (0, u'Contient peu de lignes'),
|
||||
'WHITELISTED': (-10, u'Manually whitelisted file'),
|
||||
'WHITELISTED_LINE': (-10, u'Manually whitelisted line'),
|
||||
'PHP_COMMENTS': (-10, u'File starts with a proper description'),
|
||||
'CLASS_FUNCTION': (-10, u'Class function defined early'),
|
||||
'BASE64_STRING': (50, u'base64 string found'),
|
||||
'CRYPT_PHP': (50, u'CryptoPHP inclusion for social.png'),
|
||||
'PHP_SHELL': (50, u'Shell Script'),
|
||||
'PHP_OBFUSC_SHELL': (50, u'Obfuscated Shell Script'),
|
||||
'ACCESS_DENIED': (-30, u'Early block execution'),
|
||||
'JAVASCRIPT_HACK': (50, u'Javascript'),
|
||||
'HAS_EVAL': (2, u'Has eval()'),
|
||||
'HAS_EVAL_EARLY': (10, u'Has eval() early'),
|
||||
'HAS_CALL_FUNC_EARLY': (3, u'Has call_user_func() early'),
|
||||
'HAS_BASE64DECODE': (2, u'Has base64_decode() or str_rot13()'),
|
||||
'HAS_BASE64DECODE_EARLY': (10, u'Has base64_decode() or str_rot13() early'),
|
||||
'HAS_MAIL': (1, u'Has mail()'),
|
||||
'HAS_MAIL_EARLY': (2, u'Has mail() early'),
|
||||
'LONG_LINE': (5, u'Has a line of more than 1000 characters'),
|
||||
'LONG_LINE_EARLY': (8, u'Has a line of more than 1000 characters early'),
|
||||
'VERY_LONG_LINE': (5, u'Has a line of more than 3000 characters'),
|
||||
'VERY_LONG_LINE_EARLY': (9, u'Has a line of more than 3000 characters early'),
|
||||
'MD5_VAR': (10, u'Has une variable encodée en MD5'),
|
||||
'INCLUDE_REQUIRE': (-2, u'Has include() ou require() sans http'),
|
||||
'COOKIE_FORM1': (20, u'Has form1=@$_COOKIE'),
|
||||
'MAIL_X_HEADER': (5, u'Has mail.add_x_header'),
|
||||
'SET_TIME_0': (5, u'Has set_time_limit(0)'),
|
||||
'SET_ERRORREPORTING_0': (2, u'Has error_reporting(0)'),
|
||||
'SET_TIMELIMIT_0': (2, u'Has memory_limit(0)'),
|
||||
'SET_IGNOREUSERABORT_0': (2, u'Has ignore_user_abort()'),
|
||||
'UPLOAD_FILE': (2, u'Has move_uploaded_file()'),
|
||||
'FEW_LINES': (0, u'Has peu de lignes'),
|
||||
'EMPTY_FILE': (-100, u'Fichier vide'),
|
||||
'MANY_LINES': (-2, u'Contient beaucoup de lignes'),
|
||||
'MANY_LINES': (-2, u'Has beaucoup de lignes'),
|
||||
'MANY_LINES2': (-5, u'Gros fichier avec de lignes'),
|
||||
'MANY_LINES3': (-10, u'Très gros fichier avec de lignes'),
|
||||
'BAD_NEWLINES': (-5, u'Ficher sur 1 ligne sans saut de ligne'),
|
||||
@@ -230,8 +229,8 @@ scoring = {
|
||||
'UA_GOOGLE': (5, u'Vérifie le User-Agent contre Google'),
|
||||
'EXEC_SHELL': (5, u'Utilise system() ou shell_exec()'),
|
||||
'CONCAT_STRING': (10, u'Chaine cachée par concaténation'),
|
||||
'MANY_GLOBALS': (20, u'Contient très souvent $GLOBALS'),
|
||||
'BIN_HOST': (10, u'contient /bin/host'),
|
||||
'MANY_GLOBALS': (20, u'Has très souvent $GLOBALS'),
|
||||
'BIN_HOST': (10, u'Has /bin/host'),
|
||||
'SHELL_COMPACT': (5, u'2eme ligne louche (shell?)'),
|
||||
'CURL_HTTP': (5, u'téléchargement HTTP'),
|
||||
'XXTEA_ENCRYPT': (20, u'Code source encode avec XXTEA (possible ransomware)'),
|
||||
|
||||
Reference in New Issue
Block a user