найти и прочитать с сервера файл зная логин\пароль на mysql и больше ничего

Discussion in 'PHP' started by FrozenShade, 30 Jun 2008.

  1. FrozenShade

    FrozenShade New Member

    Joined:
    30 Jun 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Возможно, я пишу не в тот раздел, поправьте меня если что.

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

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

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

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    можно залить шшел и спокойно найти файл.


    Это мой 500-ый пост. всем пива за мой счёт!)
     
    #2 mr.The, 30 Jun 2008
    Last edited: 30 Jun 2008
    3 people like this.
  3. Zitt

    Zitt Elder - Старейшина

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    так потомушто сервак который юзает БД на другой машине (на 1ой)...
     
  4. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    можно попробовать открыть базу locate, и узнать путь до нужного файла, где ее искать в гугле написано было.
     
  5. FrozenShade

    FrozenShade New Member

    Joined:
    30 Jun 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Шелл некуда заливать, на том серве где MySQL нет больше ничего, все порты закрыты.
    Лично я бы ограничил доступ на MySQL только с сервера №1 (да хотя бы фаерволом), на котором сайт, а они всем подряд открыли....

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

    Solker Elder - Старейшина

    Joined:
    4 May 2006
    Messages:
    175
    Likes Received:
    53
    Reputations:
    18
    Попробуй открыть /etc/passwd и оттуда вытащить пароль от рута.
     
  7. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    он ему ничего не даст,т.к. всё закрыто.
     
  8. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    В /etc/passwd пароли уже давно не храняться , в /etc/passwd в большинстве случаев хранится только логин-лист
    теперь пароли(хеши) в /etc/shadow(в FreeBSD - /etc/master.passwd), если ничего не путаю..

    вот вам пример /etc/passwd
    Если мы будем знать даже весь путь к файлу, как мы сможем посмотреть его??? если все к 2 машине закрыто?
    Через LOAD DATA INFILE ?
    Но ведь для применения команды LOAD DATA INFILE к серверным файлам необходимо обладать привилегиями FILE для серверного хоста?
     
    #8 Naydav, 1 Jul 2008
    Last edited: 1 Jul 2008
  9. bxN5

    bxN5 Elder - Старейшина

    Joined:
    8 Jan 2006
    Messages:
    687
    Likes Received:
    138
    Reputations:
    32
    не для хоста а для мускуля ,любой пользователь, которому предоставлена такая привилегия, имеет право прочитать или записать любой файл, который может прочитать или записать сервер MySQL.
     
  10. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    т.е права пользователя на котором крутится mysql?
    да уж наверно врятли...
    Так может стоит узнать сначала, есть ли такие права? если прав нет, то смысла путь к файлу узнавать
     
    #10 Naydav, 1 Jul 2008
    Last edited: 1 Jul 2008
  11. FrozenShade

    FrozenShade New Member

    Joined:
    30 Jun 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    на МуСКуЛ у меня есть пароль рута.
    и я проверил, file_priv включён.

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

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

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    тебе стоит перенести тему в раздел - уязвимости...
    я думаю там точно найдут решение
     
  13. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    залей шелл ...
     
  14. Solker

    Solker Elder - Старейшина

    Joined:
    4 May 2006
    Messages:
    175
    Likes Received:
    53
    Reputations:
    18
    Через что он на него зайдет? ^^

    Какая версия MySQL?
     
  15. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    сервер не без сайтом .. особено сервер с мускл
     
  16. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    Блин прочти что вообще спрашивается в этой теме :)
    1 топик
     
  17. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Если юзер, от имени которого запущен мускуль, не входит в группу slocate, а по дефолту это так, то даже если базу отыщет, он ее не прочитает
    Code:
    # ls -l /var/lib/slocate
    -rw-r-----  1 root slocate 3844677 Июн 17 14:11 slocate.db
    
    можно запустить мускульный клиент из консоли (со своей тачки)
    Code:
    $ mysql -hserver -uroot -ppassword
    
    и попробовать ввести команду
    Code:
    mysql> \! find / -name '*filename*' -type f -print
    
    Тем самым при удачном стечении обстоятельств найдешь файл, который нужен. А зная полный путь до него и имея права рута на мускуле, прочитать его не составить труда (если прав хватит, конечно) любым из имеющихся способом
     
    #17 krypt3r, 2 Jul 2008
    Last edited: 2 Jul 2008
  18. gisTy

    gisTy Elder - Старейшина

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    хм... а что мешает залить шелл через SQL-inj на первую машину, а с нее уже лезть на вторую, точнее пытаться лезть, ведь порты закрыты только извне (из интернет), а изнутри (с локалки) не может быть чтобы абсолютно все порты были закрыты, кроме мускульного..
    просто апдейтишь таблицу из которой первый сайт берет например новости и вставляешь в базу произвольный пхп код, потом с первого сайта вызываешь запрос к базе, в нужную колонку в нужную таблицу и в файл заливается шелл, а там уже смотришь по обстоятельствам и узнаешь где конкретно лежит твой файл, и если прав хватит то просматриваешь его
     
    #18 gisTy, 3 Jul 2008
    Last edited: 3 Jul 2008
  19. FraiDex

    FraiDex Elder - Старейшина

    Joined:
    16 Jun 2006
    Messages:
    193
    Likes Received:
    68
    Reputations:
    -11
    Вот простенький скрипт:
    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); 
    ?>
     
  20. FrozenShade

    FrozenShade New Member

    Joined:
    30 Jun 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Шелл не помог, с первой машины (сайт) на вторую (база) есть доступ только на базу.
    Локатор - не смог разобраться :(

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

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