Использование уязвимости Webmin для получения максимальных привелегий. Здравствуй уважаемый ачатовец, да и гостю привет! Сегодня я хочу рассказать вам про хороший способ получить рута в системе. Хех скажите вы, слышали уже байки.. Мда. я тоже слышал, не спорю, хватает "способов получения рута". Но я хочу рассказать о своем способе. Этим способом я порутал не очень много серверов (штук 8), но и этого оказалось достаточно. Ведь серваки были не простые, а на фре. И крутилась на них порнуха, в промышленных масштабах. Так что может кому этот способ и пригодиться=). Далее буду краток.. Описание уязвимости Сервис Webmin крутиться на 10000 порту по умолчанию. Крутиться с правами суперпользователя.=) Есть 2 режима работы протокола обмена этой системы удаленного администрирования с пользователем - http и https. Cоответственно в сплоите предусмотрено 2 параметра для этих режимов. Рассмотрим его (сплоит) поподробнее. Exploit - вот сам эксплоит, позволяющий добиться чтения файлов на уязвимой машине с правами Webmin. Стоит так же добавить, что помимо использования сплоита можно добиться нужного эффекта и руками https://solun.de:10000/unauthenticated/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/etc/passwd - вот пример ручной эксплуатации дыры Использование В случае с ручным использованием, я думаю, все ясно. НО ручной способ не всегда работает. Рассмотрим использование сплоита. Usage: webmin.pl <url> <port> <filename> <target> TARGETS are 0 - > HTTP 1 - > HTTPS Define full path with file name Example: ./webmin.pl blah.com 10000 /etc/passwd Что мы тут имеем? <url> - тут все, я думаю, понятно. Вводим URL или IP. <port> - как я уже говорил, смело ставь 10000 порт. Его очень редко меняют. <filename> - Вот тут вся соль. Сплоит позволяет читать файлы уязвимой машины с правами root. Неплохо. да? <target> - как описано выше, Webmin работает в 2 режимах. Соответственно ставим 1 для https и 0 для http. Собственно уже можно догадаться, что это сплоит позволяет нам очень многое, но я уточню для самых маленьких что именно=) Ставим в параметр <filename> например такой файл /etc/shadow для Linux или /etc/master.passwd для FreeBSD и у нас сами знаете что.. Теперь примеры того что СТОИТ читать в первую очередь: 1. /etc/shadow, /etc/master.passwd 2. /root/.bash_history, /root/mysql_history, /root/.history, /home/user какой нить/.bash_history 3. Конфиги апача. Не буду делать BAYAN, читайте http://forum.antichat.ru/thread22832-httpd.conf.html. 4. Файлы конфигурации Webmin. Если вдмин не маньяк то могут лежать в двух разных местах a) /usr/local/etc/webmin/miniserv.conf /usr/local/etc/webmin/miniserv.users б)/etc/webmin/miniserv.conf /etc/webmin/miniserv.users Если рут маньяк, то вам и рутовая читалка не поможет=). Поиск уязвимых машин Отдельно хочеться отметить такой вопрос, как поиск уязвимых машин. Как вы уже наверно догадались, можно искать с поможью nmap. Вот так: nmap -sT x.x.x.* -p 10000. Но можно искать и с помощью Google. Вот так inurl:"de:10000" Login to Webmin. Так что простор ниипаца какой. Как получить рута. Теперь методика получения рута. Все просто. Рекомендую заносить все найденные незашифрованный пароли в отдельный файл. А после того как поиски закончены, запустить Ивана-потрошителя вот так: ./john-mmx shadow -wordlist=файл с найденными пассами. Причем вместо shadow можно ставить master.passwd. ВНИМАНИЕ Найденный нами файл miniserv.users. Его конечно тоже на перебор. В нем пассы или DES или Unix md5. . Это как повезет. Кстати иногда в нем можно встретить запись вроде root:0. Это значит что аутентификация идет по теневому файлу. Еще хочу обратить внимание аудитории на то, что пароль root в miniserv.users НЕ ВСЕГДА совпадает с паролем root в shadow. Так что перебирайте miniserv.users обязательно. Таким образом, даже если тебе и не удасться взять рута с ходу, можно получить права юзера и, при должном умении, залить веб-шелл. Что дальше??? Теперь несколько пунктов о том "А что же делать дальше". Если вы получили рута, то читайте кучу статей на ачате, например отличный вариант http://forum.antichat.ru/thread37187.html Неплохо троянить Su, но не всегда катит. Можно давать шелл системному юзеру. Тоже не всегда катит. Иначе дела обстоят, если ты получил доступ в панель Webmin. Тут куча вариантов. Если есть возможность выполнения команды, то см. способы закрепления в системе. статей хватает. Иногда таких прав нет. Тогда приходиться изворачиваться. Тут каждый сам себе трактор. ЛОГИ Webmin Как вы наверно уже догадались, ни один запрос к вебмину не проходит незамеченно. Все строго логируеться. Логи в Webmin, при неманьяковых админах храняться тут /var/log/webmin/ Их там несколько. Перечислять не буду,найдете все сами. Про другие логи читайте например http://forum.antichat.ru/thread26232-%F7%E8%F1%F2%EA%E0+%EB%EE%E3%EE%E2.html З.Ы. Конструктивная критика будет учтена. Если кому что не нравиться то сами АПСТЕНКУ=) И самое главное, что этой уязвимостью файл приинклудить нельзя и команды системы из сплоита не выполняються Greets to Kot777, Crilaz,X-treem, Elekt, ShadOS.
В принципе баян, уже 2 года это юзаю, но за старание плюс Кстати, тема про locate.database не раскрыта, а это очень часто помогает во взломе через эту дыру
Slon, тема про базу locate не раскрыта специально, кому надо могут посмотреть видео на милворме. Ссылку давать не буду. Там найти просто.
ога, я с топикпастером эту дырку дрючили по полной. и реально, иногда не катит руками, а сплоетом катит.
Не пашет нихрена..Пробывал руками и ногами, скрипт тоже не пашед на на http ни на https... Наверное этот боян слишком зарос и ни у каво не осталось Webmin < 1.290 версии. Походу как определить версию Webmin'а ? Ы
Солнышко, там при заходе на 10000 порт обычным броузером версия под полями для ввода подписана цифорками. Юзай пример из статьи. Искать надо уметь. Эстонцы, например, отлично подходили под дырочку эту=)