|
Взлом internet-магазина: взгляд изнутри Dreamer Xakep, номер #050, стр. 050-060-2 Взлом В первую очередь, хакеру необходимо найти WWW-директорию. Это он может сделать путем поиска строки в httpd.conf. Затем, перейдя в эту директорию, ему следует найти cgi/php-скрипты, которые подключаются к базе. Пароль в таких скриптах указывается в большинстве случаев без какой-либо шифрации. Шаблон поиска может быть, к примеру, "passwd" или "password" без учета регистра. Иногда инфа о базе данных находятся в так называемых конфигурационных файлах, которые включаются в скрипт в его заголовке. Допустим, в ряде скриптов он нашел такую строчку: include "config.inc". Это значит, что на 99% в config.inc хранятся важные переменные, в том числе и информация о подключении к базе данных. Пусть первые строчки этого конфига будут: $user="dbuser"; $password="dbpassw0rd"; $dbname="ezine"; $dbhost="localhost"; Этой информации взломщику будет вполне достаточно для воплощения его идей в реальность. Следующим шагом будет исследование базы данных на предмет паролей к web-админ зоне. В 90 из 100 случаях в качестве базы данных используется mysql. Под нее ориентировано много движков, а синтаксис запросов наиболее популярен и пластичен (нежели postgresql, например). Вначале он подцепляется к mysqld и просматривает все базы. Затем, выбирает наиболее подходящую из них и находит в ней интересующую информацию. bash$ mysql -udbuser -pdbpassw0rd -e 'show databases' 3 rows in set (0.00 sec) bash$ mysql -udbuser -pdbpassw0rd -e 'show tables' ezine 3 rows in set (0.00 sec) bash$ mysql -udbuser -pdbpassw0rd -e 'select * from admins limit 1' ezine В данной таблице хакер обнаружил пароль на пользователя admin от админ-зоны www.ezine.com. Если все действительно так, то он приступает к штурму магазина. Но не всегда пароли на web лежат в mysql, да еще и plain text'ом. Может случиться так, что админ-скрипты просто закрыты .htpasswd-авторизацией. А обнаружить это легко. Он выясняет, где находится директория для администрирования на вебе (путем поиска строки 'admin' в httpd.conf) и просматривает ее содержимое. Если находит там .htaccess и .htpasswd (хотя он может называться и по-другому), значит, есть зашифрованные пароли. Их можно прочитать, так как его права удовлетворяют правам доступа на этот файл. Допустим, он нашел в .htpasswd строку: admin:xa.H512YeHBkA. Далее ему придется поручить расшифровку этого DES-хеша старому доброму John The Ripper'у. Он закидывает салт в какой-нибудь файл в директорию john (например, pswd), затем вызывает командную строку (без нее в XP наблюдались глюки) и набирает там примерно следующее: john -w:путь_к_словарю pswd -rules > done. Ломать без словаря он будет пытаться лишь в безвыходной ситуации, когда другие методы не прокатывают (вот пример где можно слить словарик: http://kamensk.net.ru/forb/1/dict.zip). |