Проверете PHP сайт хакерство
Проверете трупи за достъп
Какво ще трябва да започне от някъде, бих искал да споделя някои от записите от дневника на достъп (Дневник) достъп хакнат сайт на мой приятел.
Често е необходимо да се провери трупи достъп до сървъра, но ако не сте внимателни, URL като по-горе, което на пръв поглед изглежда безобидно, може да ходи направо покрай вас.
Нека разгледаме по-горе в списания линии, нищо не ви докосва?
Моля, имайте предвид, че достъпът до исканията за POST лог, не GET заявки.
Най-вероятно нападателите са искали да направят дневник за достъп по-незабележими, тъй като повечето списания не задържат пощенските данни.
Идентифицирайте злонамерен PHP файл
Има няколко начина, които ще идентифицират подозрителни PHP файлове на вашия сървър, тук са най-добрите.
Съвет: Тези инструкции се изпълняват от главната директория на вашия сайт.
Търсене скоро променените PHP файлове
Да започнем с един прост пример, че не сте направили промени в кода на PHP за известно време, следните команда търси всички PHP файлове в текущата директория дърво, които са се променили през последната седмица. Mtime опция може да се променя по желание, например прави времето на промяна -14 продължение на две седмици.
Моят хакнат сървъра върна следните резултати:
Всички тези сценарии се зареждат от хакер, за да изтеглите потребителски директории.
Забележка: Тази команда ще произвежда фалшиви резултати, ако сами са се променили PHP файлове в даден период от време. Следните методи са много по-ефективни.
Търсене във всички PHP файлове с подозрителен код
Това не е най-добрият подход, следните екипи търсят PHP файлове, съдържащи атака сценарий. Започваме прост и да получите повече с разширеното търсене.
Първо проверете файла, който съдържа Оценка, base64_decode, gzinflate или str_rot13.
Съвет: Първият параметър е търсенето на директория за търсене, точката означава текущата директория (и всички поддиректории). Можете да промените тази настройка на някоя съществуваща директория с цел намаляване на резултатите от търсенето, като например:
Ако изтриете опцията -l на Впиши, ще покаже на съответстващата текстовия файл. За да се отиде по-далеч, щях да се възползва от този комбиниран екип, който е по-често
Тази команда ще намерите файлове, съдържащи PHP Оценка (str_rot13 (base64_decode (
Впиши синтаксис е много проста и можете да го промените според нуждите си. Обърнете внимание на израза на върха, което ние търсим, това е «Оценка * (str_rot13 * (base64_decode * (»
Gap след * означава нула или повече знака. Над по-горе израз важи за следните редове:
Съвет: Разширете израз да търсите функции, които могат да се използват злонамерено, като например поща, fsockopen, pfsockopen, stream_socket_client, EXEC, система и passthru. Можете да комбинирате всички тези ценности в една команда:
Забележка: ние използваме egrep, не Впиши, тя ви позволява да използвате разширените регулярни изрази.
И накрая, има най-малко познат метод, за да скриете кода:
preg_replace с д модификатор ще изпълни този код, изглежда странно, но това е просто компресирани в base64 PHP код формат с помощта на някои шестнадесетични кодове характер.
\ X65 \ x76 \ X61 \ Х6с \ X28 \ x67 \ Х7а \ x69 \ x6E \ x66 \ Х6с \ X61 \ X74 \ x65 \ X28 \ X62 \ X61 \ x73 \ x65 \ x36 \ x34 \ x5F \ x64 \ x65 \ x63 \ x6F \ x64 \ x65 \ X28 се превежда като Оценка (gzinflate (base64_decode (и \ X29 \ X29 \ X29 \ x3B, как)));
Тази команда ще ви помогне да намерите preg_replace употреба:
Съвет: Ако получите тон на резултатите от тази команда, можете да го запишете във файл или да ги пренасочат към друга програма, наречена по-малко, което ви позволява да видите резултатите на една страница в даден момент. F ключ е отговорен за хвърляне напред, ключовият р за изход.
При всяко ниво на екипи за търсене по-горе можем да продължим в същия дух.
Съвет: За да обърнем внимание на шестнадесетичен X29 в края? Това затваряща, а x3B запетая. Можете да проверите това, като използвате:
Можете да използвате търсене, за да намерите тези шестнадесетични кодове в PHP файлове за по-нататъшно разследване.
Това е добър подход, ако знаете, че не се използват стойностите на кодови шестнадесетични.
установи фактите
Повечето методи предполагат, че нападателят ще изтегли файловете на север, и използва някаква форма на obfuscating кода, когато другите нападатели могат просто промяна на съществуващо PHP код. В този случай, кодът ще изглежда естествено и съобразено със стила на съществуващ скрипт или може да е объркващо.
За да се реши този проблем, което трябва чисто копие на кода си, ако използвате по-широко разпространени PHP скриптове, като WordPress, форуми, прочетен и т.н. - сте готови. Ако не, аз се надявам, че използвате Git или друга система за контрол на версиите и можете да получите чиста версия на кода си.
За този пример ще използвам WordPress.
Аз имам две чисти WordPress-папката, която съдържа само изтеглите копие на WordPress и WordPress-компрометиран, което съдържа заплаха някъде в файловете.
Мога да намеря разликите между моя сет и чиста WordPress WordPress, изпълнението на командата:
Аз изключени WP-съдържание на това изследване, защото всеки има свои собствени теми и плъгини.
Съвет: За да сте сигурни, използвайте същия WordPress версия за сравнение.
Това са резултатите от търсенето:
Той открива зловреден код!
От любопитство.
Един нападател с 3 реда код? Първо, нападателят се научили полезна информация:
Винаги гледам за наличните каталози, за да изтеглите изпълним код
При използване на методи, които са представени по-горе, че е лесно да се намери на PHP код в багажника ви указател. Wordpress за това ще бъде:
Съвет: Ето един много прост Баш скрипт, който търси наличните директории за запис и PHP файлове в тях. Резултатът ще бъде записан във файл results.txt. Сценарият работи рекурсивно.
Обадете search_for_php_in_writable файл и да го дам на упражняването на правото
Запазете този файл в дома си директория и след това отидете до директорията, в която вие ще намерите и изпълнете следната команда:
Забележка: Ако вашият сайт е на виртуален сървър и уеб сървър не е конфигурирана сигурно, вашият сайт не може да бъде единственият обект на атака. Общо сваляния PHP черупка на уязвимите обекти, по същество е инструмент, който дава на нападателя файловия браузър. Те могат да използват този инструмент, който ще изтеглите атака скриптове за всички папки на сървъра са на разположение за запис, като директория за изтегляне.
Забележка: Нападателите обикновено се опитват да качите изображения, които съдържат PHP код, така че проверете и други разширения, методите, изброени по-горе.
Не ми ли вярвате? Този файл е качен на изображението във формат JPG на хакнат сайт. Изглежда, че е сбъркал за двоични данни. Ето един и същи файл в повече "се чете" формат.
Все още не можете да прочетете? Точно както аз съм в по-дълбока инспекция. Всичко това код е предназначен за изпълнение на тази функция:
Това, което прави този скрипт не е от значение, трябва да се научат, че трябва да проверявате електронната си обувка директория.
Ако се чудите, това е просто един сценарий тест, който ще видим дали уязвими домакин, е извършена атаката по-късно.
Къде другаде може да скрие зловреден код?
Ако вашият PHP код за динамично генериране на съдържанието на страницата и сайта Ви е бил компрометиран, атакуващият може да пише на зловреден код в базата данни. Можете също така да проведе по-подробно разглеждане.
Отидете на сайта си, при зареждането на страницата проверяват източника HTML код и да го запишете някъде на вашия компютър, например mywebsite.txt; Изпълнете следната команда
Търсене в база данни
Може би на някой хакер е добавил код към базата данни. Тя ще бъде само ако скрипта ви съхранява потребителски кода, като плъгини в базата данни. Същото прави и форуми. Въпреки че това е рядко, но вие трябва да знаете това. Ако сте в този случай са били счупени, нападателят е вероятно да вмъкнете вградена рамка в таблици, които показват данни на вашия сайт.
В този пример ще използваме MySQL или негови производни.
За това бих искал да вземе PHPMyAdmin и това не е обичайно за мен, аз предпочитам да използвам командния ред инструменти, код, те са на разположение, но това е удобен инструмент за търсене.
Лично аз не пускаме PHPMyAdmin на производство на сървъра, аз изтеглите копие на базата данни и да го стартирате на локален сървър. Ако вашата база данни е голям, не се препоръчва да се търсят малки парчета текст на производствения.
Open PHPMyAdmin изберете базата данни, и кликнете върху "Търсене". Можете да търсите за низове като% base64_% и% Оценка (%, или всяка друга комбинация, която вече е описано.
Проверете .htaccess файлове, ако използвате Apache
Ако използвате уеб сървъра Apache, проверка на .htaccess файлове за подозрителни промени.
auto_append_file и auto_prepend_file включва и други PHP файлове са в началото или в края на всички скриптове PHP, атакуващите могат да ги използват за включване на техния код.
Следващите команда търси всички поддиректории .htacsess файлове, които съдържат "HTTP". Резултатът от търсенето е списък на всички правила за пренасочване, които могат да бъдат злонамерен правило.
Някои злонамерени пренасочвания са базирани на потребителския агент. Би било добре да се търси използване HTTP_USER_AGENT в .htaccess файлове. Предишни команди могат лесно да се променят, просто смяна на ключовата дума в точка точка.
За да се повиши нивото на сигурност, ако можете, изключете използването на .htaccess в директорията и прехвърляне на вашата конфигурация на базова конфигурация на Apache.
В "реалния свят"
Така че, защо хората искат да проникна в сайта си, какво означава това за тях? За някои това е хоби, а за други е източник на доходи.
Ето един пример на скрипта качена на сайта на нападателя хакнат. Тя се основава единствено на операции за публикуване, повечето от регистрационните файлове на уеб сървър ще бъде безполезно в този случай. Аз бях в състояние да получи трупи публикувайте заявки:
Зловредният скрипт основно зомбита SPAM, който ще изпратим имейл на всеки, който използва вашия сървър за изпращане на имейли чрез искането за публикация. Ключовете на всеки пост заявка могат да се променят, а сценарият е много изобретателен, той проверява инсталираните характеристики и се адаптира към него. Например, ако поща на PHP () не е на разположение, ще се опита да създаде сокет на порт 25 и изпращане на електронна поща директно чрез SMTP.
Ако използвате съветите, дадени в тази статия, вие няма да е трудно да се намери такъв сценарий.
заключение
Ако използвате обществени скриптове PHP като нас WordPress, обърнете внимание на критичните и сигурността актуализации не само за основната инсталация, но и за разширения, като например плъгини. Повечето нападатели ще се опитват да намерят хиляди сайтове с известни уязвимости, така че ако сте уязвими, ще намерите в края на краищата.
Попълнете онлайн приложение, ние ще се свържем с вас възможно най-скоро и да отговори на всички въпроси.