partial translation

This commit is contained in:
Palma Solutions LTD
2018-05-11 17:51:03 +02:00
parent f4a8636c57
commit f7660c3f97

73
scan.py
View File

@@ -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)'),