У каждого хакера должен быть свой личный набор боевого софта. Этот набор должен отвечать кое каким требованиям, которые каждый устанавливает сам. Я например, люблю небольшие программы, которые не обременены большим количеством функций.
Кому то нравятся программы гиганты с множеством встроенных возможностей.
В этом материале я решил описать несколько малоизвестных тулз, которые иногда могут работать почище популярных утилит.
«Маленький значит красивый» - именно этим принципом мы и будет держаться.
*********
body
*********
---------
webi.c
---------
enter
Первой утилитой, которую мы сегодня разберем, будет webi.c. Ее автором является лицо под ником Condor. Программа выполняет функции подделки (или инъекции, как сказано в описании) HTTP пакетов. Собственно она является аналогом (почти) windows утилиты InetCrack.
Первая при необходимости выводит справку для программы.
Вторая, преобразовывает int строки в char. Она написано специально для совместимости с некоторыми системами (т.к. иногда ее просто в них нет)
Ну и третья функция производит base64 кодировку.
В главной (main) функции, c помощью конструкции switch проверяются ключи.
Далее происходит сама генерация пакета.
Ну и конечной частью кода является отправка пакета и прием ответа.
Other
В принципе те же самые действия можно произвести с помощью той же netcat, но согласитесь, эта программа более удобна. К тому же ее исходный код занимает всего 300 строк.
-----------
synner.c
-----------
enter
Итак, наш следующий подопытный называется synner. Автором этого инструмента является человек под ником sm4x.
Программа является генератором TCP пакетов и служит для тестирования брандмауэров и производства DoS атак. Она может отправлять большие TCP пакеты с определенными TCP флагами, MAC и IPS
unsigned short calc_checksum(unsigned char *, int );
... вычисляет контрольную сумму, которая необходима при формировании пакета.
Так же в коде есть структура tcphdr. Она содержит в себе структуру TCP пакета. Если хотите более подробную информацию о ее полях обратитесь к спец. источнику.
Other
Как видите, программа довольно проста в использовании, но при этом является мощным инструментом, который займет достойное место в нашей коллекции.
A-SnIf.c
enter
Следующим на очереди стоит программа-сниффер A-SnIf. Ее создателем является некто
по имени Asynchro.
Загрузить код можно тут
http://packetstormsecurity.org/sniffers/A-SnIf.c
Это довольно простой инструмент для перехвата пакетов. В описании автор указал даже, что это "сниффер для обучения". Тем не менее он работает, давайте разберемся как.
Description
По сложившийся традиции давайте рассмотрим ключи программы:
Ключ указывает на интерфейс, который нужно использовать вместо установленного по умолчанию.
-a
Адрес, с которого нужно «снифать» пакеты.
-p соотвественно порт, который нужно контролировать
-l ключ создает лог файл, куда будет писаться результат
-d
вывести выходные данные.
Вот довольно наигранный пример:
[stranger@localhost ~]$ ./snif -a 192.168.1.1 77 /home/stranger/log.txt
Собрать программку можно обычным gcс, как и в прошлых примерах.
Да и, для использования нужны рут права.
Other
Программа заняла около 400 строк. Это сравнительно мало.
Безусловно, в этом сниффере мало функционала, но не смотря на это он практичен.
cscan.pl
enter
Следующая тулза является cgi сканером (или сканером уязвимостей). Написана она на perl человеком с ником iceburg.
По сути ничего отличительного в ней нет. Утилита работает с базой данных в которой хранятся уязвимые скрипты. Ну как с базой… Обычный текстовик с уязвимыми скриптами. =)
В нем происходит обычное построчное считывание из файла. Далее идет обращение к веб серверу.
Other
Несмотря на простоту, сканер может помочь в некоторых ситуациях. В принципе в сети есть много аналогов, даже на других языках.
dittrich.pl
enter
Следующая программа нашей коллекции это dittrich. Так же как и предыдущая она написана на языке perl. Ее автор- David Dittrich. Утилита выполняет одну функцию – собирает информацию о целевой системе. Для своих злых дел она использует nmapи netcat. Так что проследите, что бы оные были у вас в наличие.
В качестве аргумента программе нужно передать адрес хоста. Но конечно возможно использовать несколько опций:
-repeat [N]
Тут мы указываем сколько раз нужно пытаться собрать данные. Если не указать значение программка будет мучить целевую систему пока та работает =)
-sleep [N]
Сколько секунд нужно «спать» перед следующей попыткой
Дефолтовое значение указано в сорце
-log
Имя лог файла.
in source code...
В начале кода задано несколько констант.
Вроде путь до nmap –a или время «спячки» между запросами.
Ну и далее идет собственно сам процесс сборки данных.
Он в основном опирается на использование «сетевой кошки» и нмапа.
Other
В итоге довольно удобный инструмент, берет на себя ввод команд в nmapили netcat и экономит наше время.
ftp-spider.pl
enter
Ну и завершает наш топ инструмент с названием ftp-spider. Ее автором являетсяNithen Naidoo. Программа написана на perl. Она сканирует ftp сервер на разные уязвимости, вроде неправильной расстановки прав доступа или обнаружение анонимного доступа. Есть возможность составлять структуру каталогов.
Думаю это очень полезный скрипт. Полезен именно тем, что не просто перебирает имена, пытаясь найти уязвимый ftp–шник, а пытается найти баги, которые появляются вследствие лени админа.
**********
Outro
**********
Ну что ж. На этом все. Собственно целью данной статьи не было побуждать вас использовать именно этот софт. Просто я хотел показать несколько удобных программок, которые могут быть полезны в определенных ситуациях. Вообще акцент делался именно на то, что инструменты были небольшие по размеру и их функциональность довольно усечена. Но это нельзя считать недостатком. По моему мнению, такие утилиты использовать гораздо приятнее и удобней.
Написал небольшой фак, может кому интересно
будет почитать. Постарался снабдить еще доп. инфой. q№1.
На удалённом сервере присутствует нужный нам файл. У вас хватает прав что бы прочитать и изменить его. Но - задача заключается в том, что бы дата модификации осталась той же что и была (либо изменненой на любую другую фэйковую)
Решение:
Для этих целей в Linux существует команда touch.
У нее существует опция -t, которая меняет дату и время модификации файла.
Например:
Кстати в 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 <нужная нам прога>
Итак разберем примеры:
Опять же частенько бывают ситуации, когда нужно выполнить все действия через 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)
Что делать?
Решение: Если кто не понял, то выше приведённая надпись указывает на то, что отсутствует компилятор gcc. В идеале она команда должна была показать нам путь до компилятора.
Для начала можно попробовать использовать cc. Если и такого не нашлось, то дела плохи.
Выходом из данной ситуации будет компилирование сплоита на другой тачке и загрузке готового бинарника на целевой сервер.
Но. тебе нужно учитывать что бы система на которой ты будешь собирать наш эксплоит была такой же по архитектуре как и целевая. Иначе все труды напрасно. EOF
Врачи == олени. Сегодня поняли, что у меня нет пневмонии.
Пока валялся в койке появилось парочка идей для новой статейки и релизов.
Решил скачать CoD5 (зачем??). Погамаю... расслаблюсь.
Еще раз кстати поздравляю сципа =))
Пойду менять диз блога.
Что то тут решил асм поучить.)
Даже не знаю что их этого выйдет.... просто потянуло
Нашел книжонку Асемблер в Linux для программистов С.
Сижу читаю. Извращенец я
На дельфи с гордостью забил.
Так вот.