|
#1
|
|||
|
|||
сканер php-shell
Добрый день!
Народ подскажите, я хочу написать сканер php-shell, но незнаю как мне находить его среди php скриптов. Написал такой сканер на основе MD5 сигнатур и базой данных, но если shell изменить немного, то программа его уже ненаходит. Скажите как лучше огранизовать сканирование так, чтобы программа всегда находила нужный файл? Использовать HEX-сигнатуры? |
#2
|
|||
|
|||
Уже пару дней веду переписку на эту тему:
Цитата:
собственно, если файл локальный, то можно попробовать искать набор некоторых функций (имен). Можнт давать ложные срабатывания, но если грамотно написать, то можно такой поиск обновлять без перекомпилирования основного модуля. |
#3
|
|||
|
|||
мне нужно просто создать базу данных из php-shell, а потом каждый файл проверять с базой данных както так
а файлы находяться на ПК где и сама программа |
#4
|
|||
|
|||
Ну набирай файлы и считай MD5, например.
Но я бы пошел по пути анализа содержимого файлов, как эвристика в антивирусе. Тогда не надо будет затачиваться на точное соотв. конкретного файла его контрольной сумме. |
#5
|
|||
|
|||
да я уже написал программу, которая ищет вредоносный код по базе используя MD5 сигнатуры.
В php-shell'ах можно выставлять пароль для использования скрипта, поетому если пароль изменить, то уже такой php-shell не найдет по базе данных, так что MD5 сигнатуры не то что нужно |
#6
|
||||
|
||||
MD5 чего считается? Скрипта? То есть текстового файла? Если да - хочешь, я за 10 минут сделаю 10 000 новых недетектящихся файлов? (шучу, это подсудное дело; хотя делается элементарно).
Если бинаря, но целиком - то же самое. Антивирусы не от хорошей жизни делаются здоровенными продуктами с эвристическими и поведенческими анализаторами, деобфускаторами, анпакерами, декрипторами и т.д. и т.п. Опиши подробно, что ты понимаешь под php-shell, где там вредоносный код, откуда берется и куда кладется, в каком виде он находится. jmp $ ; Happy End! The Cake Is A Lie. |
#7
|
|||
|
|||
Вот я прикрепил php-shell к сообщению, только формат файла изменил с ".php" на ".txt".
Программа получает MD5 сумму файла и сверяет с базой данных, если есть така MD5 сумма файла в базе данных, то shell найден. В скрипте есть переменная PHP код:
PHP код:
|
#8
|
||||
|
||||
Интересно, как тебе вообще пришла в голову такая идея.
А что если я после первой скобки в файле поставлю пробел? А что если после второй? А что если после обеих? А что если поменяю имена переменных простейшей регуляркой на какой-нибудь бред вида a, b, c и так далее? И создам миллионы файлов с различными случайными именами переменных? А если где-нибудь лишние скобки поставлю? А если удалю переносы строки? Еще можно и шифрование вспомнить. А если я все это скомбинирую? Правильно, получим полное множество возможных MD5 файлов от 00000000000000000000000000000000 до FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF. Что ж теперь, все файлы в мире считать вредоносными? Такая методика совершенно лишена всяческого смысла. Что касается малварщиков - уж поверь, они мастаки писать ботов для клепания рандомизированных отполиморфенных файлов, особенно когда речь идет о тексте. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 04.03.2014 в 00:02. |
#9
|
|||
|
|||
Я уже писал раньше, что лучше сделать простенький эвристический анализатор. Например, по ключевым словам + сигнатура php-файла + набор функций внутри файла (важных) или кусков их тел, которые характерны для php-shell.
|
#10
|
|||
|
|||
я знаю, поетому прошу помощи, как сделать, чтобы определяло php-shell?
|
#11
|
|||
|
|||
никак не разберусь, как все это осуществить в delphi
|
#12
|
||||
|
||||
Цитата:
На мой взгляд полезней всего какой-нибудь honeypot или эмулятор. Подробности в гугле, интерпретаторы PHP есть в виде исходников, я уверен. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 04.03.2014 в 00:12. |
#13
|
|||
|
|||
обьясните пожалуйста по подробней и как же всетаки найти незашифрованный скрипт?
|
#14
|
||||
|
||||
Я уже сказал ключевые слова для поиска. Если прям уверен, что скрипт всегда будет не зашифрован (хотя делается шифровка элементарно, и работать он будет прямо в таком виде), то надо сделать приведение скрипта к общему виду (как - как считаешь нужным, например можно все имена, кроме API, снести нафиг, заменив одинаковыми символами, оставить только значения, удалить все пробелы и переносы, лишние операции и т.д.), после чего нанять десяток аналитиков, которые будут находить и добавлять в базу новые скрипты (которые будут появляться очень часто). Ну и разумеется аналитики не будут детектить файл целиком, а только какие-то ключевые части.
Если же хочешь, чтоб была хоть какая-то примитивная защита от новых угроз - эмулятор. На интерпретаторе php. И... пяток аналитиков для анализа новых скриптов и добавления детекта по ним. Не, можно конечно и эвристикой заморочиться, но не думаю, что с такими знаниями она хоть как-то заработает. Да эмулятор, собственно, тоже... [advertisment]Поэтому пользуйтесь антивирусными продуктами![/advertisment] jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 04.03.2014 в 01:06. |
#15
|
|||
|
|||
дайте хотябы пример, как обнаружить вот етот файл:
|