Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   найти и прочитать с сервера файл зная логин\пароль на mysql и больше ничего (https://forum.antichat.xyz/showthread.php?t=75477)

FrozenShade 30.06.2008 16:59

найти и прочитать с сервера файл зная логин\пароль на mysql и больше ничего
 
Возможно, я пишу не в тот раздел, поправьте меня если что.

Ситуация: "жертва" - две машины, обе имеют выходы в инет.
На 1й крутится: виндаХР, апач, RAdmin ftp, mail и ещё куча всякой моелочи.
На 2й крутится: линь и MySQL. Все другие порты кроме 3306 тупо закрыты.
MySQL не имеет привязки к localhost, зайти туда можно с любого места. Зачем так сделали - понятия не имею.

Методами вдумчивого копания сайта с 1й машины найден пароль рута на MySQL. Никуда больше пароль не подходит.
Т.Е. всё что у меня есть - это root\pass на MySQL.

Что нужно - считать файл со 2й машины (на которой MySQL).
Собственно вопрос: можно ли, зная название файла но не зная где он лежит, его найти?
Всё, что мне нужно - это получить содержимое этого файла. Но пути к нему я не знаю.
А в MySQL и SQL вообще разбираюсь крайне слабо...

mr.The 30.06.2008 17:03

можно залить шшел и спокойно найти файл.


Это мой 500-ый пост. всем пива за мой счёт!)

Zitt 30.06.2008 18:13

Цитата:

MySQL не имеет привязки к localhost, зайти туда можно с любого места. Зачем так сделали - понятия не имею.
так потомушто сервак который юзает БД на другой машине (на 1ой)...

ShAnKaR 30.06.2008 22:30

можно попробовать открыть базу locate, и узнать путь до нужного файла, где ее искать в гугле написано было.

FrozenShade 01.07.2008 00:53

Шелл некуда заливать, на том серве где MySQL нет больше ничего, все порты закрыты.
Лично я бы ограничил доступ на MySQL только с сервера №1 (да хотя бы фаерволом), на котором сайт, а они всем подряд открыли....

Можно поподробнее, что за locate? Я в MySQL ни бум-бум, мне это слово ни о чём ни говорит к сожалению, намекните о чём речь...

Solker 01.07.2008 02:02

Попробуй открыть /etc/passwd и оттуда вытащить пароль от рута.

scrat 01.07.2008 02:12

Цитата:

Сообщение от Solker
Попробуй открыть /etc/passwd и оттуда вытащить пароль от рута.

он ему ничего не даст,т.к. всё закрыто.

Naydav 01.07.2008 02:18

В /etc/passwd пароли уже давно не храняться , в /etc/passwd в большинстве случаев хранится только логин-лист
теперь пароли(хеши) в /etc/shadow(в FreeBSD - /etc/master.passwd), если ничего не путаю..

вот вам пример /etc/passwd
Цитата:

http://www.ntfnt.ru/cgi-bin/creator.pl?bf=../../../../etc/passwd
Если мы будем знать даже весь путь к файлу, как мы сможем посмотреть его??? если все к 2 машине закрыто?
Через LOAD DATA INFILE ?
Но ведь для применения команды LOAD DATA INFILE к серверным файлам необходимо обладать привилегиями FILE для серверного хоста?

bxN5 01.07.2008 04:08

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

Naydav 01.07.2008 04:17

т.е права пользователя на котором крутится mysql?
да уж наверно врятли...
Так может стоит узнать сначала, есть ли такие права? если прав нет, то смысла путь к файлу узнавать
Цитата:

select file_priv from mysql.user

FrozenShade 01.07.2008 22:04

на МуСКуЛ у меня есть пароль рута.
и я проверил, file_priv включён.

т.е. теоретически прочитать файл можно.
вопрос, есть ли средства его найти, если я знаю его название, но не знаю где конкретно установлена та программа, к которой он?

собственно, файл который нужен - это конфиг от одной программы. возможно, можно посмотреть какой-то реестр установленных программ? или в линях такого не предусмотрено?

Naydav 02.07.2008 00:33

тебе стоит перенести тему в раздел - уязвимости...
я думаю там точно найдут решение

Doom123 02.07.2008 01:02

залей шелл ...

Solker 02.07.2008 02:02

Цитата:

Сообщение от Doom123
залей шелл ...

Через что он на него зайдет? ^^

Какая версия MySQL?

Doom123 02.07.2008 02:26

сервер не без сайтом .. особено сервер с мускл

Naydav 02.07.2008 02:44

Цитата:

сервер не без сайтом .. особено сервер с мускл
Блин прочти что вообще спрашивается в этой теме :)
1 топик

krypt3r 02.07.2008 08:35

Цитата:

можно попробовать открыть базу locate, и узнать путь до нужного файла, где ее искать в гугле написано было.
Если юзер, от имени которого запущен мускуль, не входит в группу slocate, а по дефолту это так, то даже если базу отыщет, он ее не прочитает
Код:

# ls -l /var/lib/slocate
-rw-r-----  1 root slocate 3844677 Июн 17 14:11 slocate.db

можно запустить мускульный клиент из консоли (со своей тачки)
Код:

$ mysql -hserver -uroot -ppassword
и попробовать ввести команду
Код:

mysql> \! find / -name '*filename*' -type f -print
Тем самым при удачном стечении обстоятельств найдешь файл, который нужен. А зная полный путь до него и имея права рута на мускуле, прочитать его не составить труда (если прав хватит, конечно) любым из имеющихся способом

gisTy 03.07.2008 09:19

хм... а что мешает залить шелл через SQL-inj на первую машину, а с нее уже лезть на вторую, точнее пытаться лезть, ведь порты закрыты только извне (из интернет), а изнутри (с локалки) не может быть чтобы абсолютно все порты были закрыты, кроме мускульного..
просто апдейтишь таблицу из которой первый сайт берет например новости и вставляешь в базу произвольный пхп код, потом с первого сайта вызываешь запрос к базе, в нужную колонку в нужную таблицу и в файл заливается шелл, а там уже смотришь по обстоятельствам и узнаешь где конкретно лежит твой файл, и если прав хватит то просматриваешь его

FraiDex 03.07.2008 09:57

Вот простенький скрипт:
PHP код:

<?php 
file_get_contents
('/etc/passwd'); 
$l mysql_connect("localhost""root"); 
mysql_query("CREATE DATABASE a"); 
mysql_query("CREATE TABLE a.a (a varchar(1024))"); 
mysql_query("GRANT SELECT,INSERT ON a.a TO 'aaaa'@'localhost'"); 
mysql_close($l); mysql_connect("localhost""aaaa"); 
mysql_query("LOAD DATA LOCAL INFILE '/etc/passwd' INTO TABLE a.a"); 
$result mysql_query("SELECT a FROM a.a"); 
while(list(
$row) = mysql_fetch_row($result)) 
print 
$row chr(10); 
?>


FrozenShade 03.07.2008 21:44

Шелл не помог, с первой машины (сайт) на вторую (база) есть доступ только на базу.
Локатор - не смог разобраться :(

Походу бесполезняк...

...а последний приведённый скрипт, он, простите, к чему?
php там вертится на одной машине, загрузить оттуда etc/passwwd невозможно потому что там WinXP :) и такого файла просто нет.


Время: 22:45