|  | 
 
 | 
| 
			 
			#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, где там вредоносный код, откуда берется и куда кладется, в каком виде он находится. | 
| 
			 
			#7  
			
			
			
			
		 | |||
| 
 | |||
|   Вот я прикрепил php-shell к сообщению, только формат файла изменил с ".php" на ".txt". Программа получает MD5 сумму файла и сверяет с базой данных, если есть така MD5 сумма файла в базе данных, то shell найден. В скрипте есть переменная PHP код: 
		PHP код: 
		 | 
| 
			 
			#8  
			
			
			
			
		 | ||||
| 
 | ||||
|   Интересно, как тебе вообще пришла в голову такая идея. А что если я после первой скобки в файле поставлю пробел? А что если после второй? А что если после обеих? А что если поменяю имена переменных простейшей регуляркой на какой-нибудь бред вида a, b, c и так далее? И создам миллионы файлов с различными случайными именами переменных? А если где-нибудь лишние скобки поставлю? А если удалю переносы строки? Еще можно и шифрование вспомнить. А если я все это скомбинирую? Правильно, получим полное множество возможных MD5 файлов от 00000000000000000000000000000000 до FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF. Что ж теперь, все файлы в мире считать вредоносными? Такая методика совершенно лишена всяческого смысла. Что касается малварщиков - уж поверь, они мастаки писать ботов для клепания рандомизированных отполиморфенных файлов, особенно когда речь идет о тексте. Последний раз редактировалось Bargest, 04.03.2014 в 00:02. | 
| 
			 
			#9  
			
			
			
			
		 | |||
| 
 | |||
|   Я уже писал раньше, что лучше сделать простенький эвристический анализатор. Например, по ключевым словам + сигнатура php-файла + набор функций внутри файла (важных) или кусков их тел, которые характерны для php-shell. | 
| 
			 
			#10  
			
			
			
			
		 | |||
| 
 | |||
|   я знаю, поетому прошу помощи, как сделать, чтобы определяло php-shell? | 
| 
			 
			#11  
			
			
			
			
		 | |||
| 
 | |||
|   никак не разберусь, как все это осуществить в delphi | 
| 
			 
			#12  
			
			
			
			
		 | ||||
| 
 | ||||
|   Цитата: 
 На мой взгляд полезней всего какой-нибудь honeypot или эмулятор. Подробности в гугле, интерпретаторы PHP есть в виде исходников, я уверен. Последний раз редактировалось Bargest, 04.03.2014 в 00:12. | 
| 
			 
			#13  
			
			
			
			
		 | |||
| 
 | |||
|   обьясните пожалуйста по подробней и как же всетаки найти незашифрованный скрипт? | 
| 
			 
			#14  
			
			
			
			
		 | ||||
| 
 | ||||
|   Я уже сказал ключевые слова для поиска. Если прям уверен, что скрипт всегда будет не зашифрован (хотя делается шифровка элементарно, и работать он будет прямо в таком виде), то надо сделать приведение скрипта к общему виду (как - как считаешь нужным, например можно все имена, кроме API, снести нафиг, заменив одинаковыми символами, оставить только значения, удалить все пробелы и переносы, лишние операции и т.д.), после чего нанять десяток аналитиков, которые будут находить и добавлять в базу новые скрипты (которые будут появляться очень часто). Ну и разумеется аналитики не будут детектить файл целиком, а только какие-то ключевые части. Если же хочешь, чтоб была хоть какая-то примитивная защита от новых угроз - эмулятор. На интерпретаторе php. И... пяток аналитиков для анализа новых скриптов и добавления детекта по ним. Не, можно конечно и эвристикой заморочиться, но не думаю, что с такими знаниями она хоть как-то заработает. Да эмулятор, собственно, тоже... [advertisment]Поэтому пользуйтесь антивирусными продуктами![/advertisment] Последний раз редактировалось Bargest, 04.03.2014 в 01:06. | 
| 
			 
			#15  
			
			
			
			
		 | |||
| 
 | |||
|   дайте хотябы пример, как обнаружить вот етот файл: |