**********
intro
**********
У каждого хакера должен быть свой личный набор боевого софта. Этот набор должен отвечать кое каким требованиям, которые каждый устанавливает сам. Я например, люблю небольшие программы, которые не обременены большим количеством функций.
Кому то нравятся программы гиганты с множеством встроенных возможностей.
В этом материале я решил описать несколько малоизвестных тулз, которые иногда могут работать почище популярных утилит.

«Маленький значит красивый» - именно этим принципом мы и будет держаться.

*********
body
*********
---------
webi.c
---------
enter
Первой утилитой, которую мы сегодня разберем, будет webi.c. Ее автором является лицо под ником Condor. Программа выполняет функции подделки (или инъекции, как сказано в описании) HTTP пакетов. Собственно она является аналогом (почти) windows утилиты InetCrack.
Скачать сишник можно по этой ссылке:

description
Программа имеет несколько ключей, давайте разберём  основные из них:
-s
Указываем  адрес веб сервера (127.0.0.1, hackzona.ru)

-u
URL(/cgi-bin/script.php)

-p
Порт. По умолчанию — 80

-m
Метод отправки. Наверное самый нужный ключ.
Возможные варианты:
{GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT, OPTIONS, PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK, TRACE}

-r
Рефферер

-a
Юзер агент.

-z
Username и пароль. Например, login:pass

-t
Proxy, опять же proxy:port

-d
Данные

-?
Справочка

Компилируется так:

[stranger@localhost ~]$ gcc /home/stranger/webi.c -o /home/stranger/web



Пример:

[stranger@localhost ~]$ /home/stranger/web -s hackzona.ru -u http://hackzona.ru/index.php

 


in source code...
Давайте теперь взглянем на исходный код.
Помимо главной функции написаны еще три:
void usage(char *arg)
char *itoa(int i)
void base64Encode(char *intext, char *output)

Первая при необходимости выводит справку для программы.
Вторая, преобразовывает  int строки  в char. Она написано специально для совместимости с некоторыми системами (т.к. иногда  ее просто в них нет)
Ну и третья функция производит base64 кодировку.
В главной (main) функции, c помощью конструкции switch  проверяются ключи.
Далее происходит сама генерация пакета.
Ну и конечной частью кода является отправка пакета и прием ответа.

Other
В принципе те же самые действия можно произвести с помощью той же netcat, но согласитесь, эта программа более удобна. К тому же ее исходный код занимает всего 300 строк.

-----------
synner.c
-----------
enter
Итак, наш следующий подопытный называется synner. Автором этого инструмента является человек под ником sm4x.
Программа является  генератором TCP пакетов и служит для тестирования брандмауэров и производства DoS атак. Она может отправлять большие TCP пакеты с определенными TCP флагами, MAC и IPS
Слить исходник можно по этой ссылке

description
Давайте рассмотрим некоторые ключи программы.
Прототип использование вот такой:

[root@localhost stranger]#
./synner -i -s -S -d -D

-i
Имя интерфейса

-x
Режим DoS атаки

-s
Исходный айпишник (если производится спуфинг)

-S
Исходный MAC, опять же для спуфинга

-d
ип цели

-D
Соответственно MAC адрес цели.

-l
Размер пакета

-f
TCP флаги — s,a:p:u,r:f
(s)yn, (a)ck, (p)push, (u)rgent, (r)eset, (f)in, (x)=ALL

Компиляция производится так:
[root@localhost stranger]# gcc /home/stranger/synner.c -o /home/stranger/synner


Замечу, что для использования программы вам понадобятся root права.
Ну что ж, давайте рассмотрим пару примеров:

[root@localhost stranger]#./synner -ieth0 -x -s192.168.1.1 -S00:AA:BB:CC:00:00 -d192.168.1.219 -D00:dd:ee:aa:dd:bb -p 6984 -l 512 -u5555 -fas

[root@localhost stranger]#./synner -ieth0 -sr -S00:dd:ee:aa:dd:ff -d192.168.1.219 -D00:dd:ee:aa:dd:bb -p80 -u500 -fx

in source code...
В общей сложности исходный код занял 400 строк.

Функция...
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
По сложившийся традиции давайте рассмотрим ключи программы:

Прототип:
[root@localhost stranger]#./a-snif [-i interface] [-a address] [-p port] [-l logfile] [-h] [-d]

-i
Ключ указывает на интерфейс, который нужно использовать вместо установленного по умолчанию.

-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.
По сути ничего отличительного в ней нет. Утилита работает с базой данных в которой хранятся уязвимые скрипты.  Ну как с базой… Обычный текстовик с уязвимыми скриптами. =)
Скачать сценарий можно по этой ссылке:

Description
Для работы с программой вам понадобиться создать базу данных.
Ну и естественно добавить туда какое то кол-во уязвимых скриптов (гоу ту багтрак)
Далее можно приступать к работе.

Ключи:

-p
Порт

-h
Хост

-d
Имя файла с дырявими сценариями

-l
Имя лог файла

-m
С помощью этой опции можно просканировать диапазон адресов.

Смотрим пример:

[stranger@localhost ~]$ perl cscan.pl -p 80 -h 127.0.0.1 -d cgi.database -l blah.log

[stranger@localhost ~]$ perl cscan.pl -p 80 -m 127.0.0.1-255 -d cgi.database -l blah.log

in source code...
Код занимает всего 150 строк.
В нем происходит обычное построчное считывание из файла. Далее идет обращение к веб серверу.

Other
Несмотря на простоту, сканер может помочь в некоторых ситуациях. В принципе в сети есть много аналогов, даже на других языках.


dittrich.pl
enter
Следующая программа нашей коллекции это dittrich. Так же как и предыдущая она написана на языке perl. Ее автор- David Dittrich. Утилита выполняет одну функцию – собирает информацию о целевой системе. Для своих злых дел она использует nmap и netcat. Так что проследите, что бы оные были у вас в наличие.
Скачать скрипт можно тут:
Description
В качестве аргумента программе нужно передать адрес хоста. Но конечно возможно использовать несколько опций:

-repeat [N]
Тут мы указываем сколько раз нужно пытаться собрать данные. Если не указать значение программка будет мучить целевую систему пока та работает =)

-sleep [N]
Сколько секунд нужно «спать» перед следующей попыткой
Дефолтовое значение указано в сорце

-log
Имя лог файла.

in source code...
В начале кода задано несколько констант.
Вроде путь до nmapa или время «спячки» между запросами.
Ну и далее идет собственно сам процесс сборки данных.
Он в основном опирается на использование «сетевой кошки» и нмапа.

Other
В итоге довольно удобный инструмент, берет на себя ввод команд в nmap или netcat и экономит наше время.

ftp-spider.pl
enter
Ну и завершает наш топ инструмент с названием  ftp-spider.  Ее автором является Nithen Naidoo. Программа написана на perl. Она сканирует ftp сервер на разные уязвимости, вроде неправильной расстановки прав доступа или обнаружение анонимного доступа. Есть возможность составлять структуру каталогов.
Слить сценарий можно здесь:

Description
Прототип использование таков:

[stranger@localhost ~]$  perl ./ftp-spider.pl [-h] [-v] [-d] [-k] [-P] [-w] [-s server] [-u username] [-p password] [-r remote] [-i ignore] [-f filterfile]

-v
Подробный вывод. В том числе все дерево каталогов и списки файлов.

-P
Пассивный режим работы

-i
Тут задается регулярное выражение. Файлы, которые ему соответствуют, игнорируются.

-p
Пароль. Опционально.

-w
Перечислить все каталоги, которые доступны для записи.

-s сам сервер

Вот небольшой примерчик:

[stranger@localhost ~]$  perl ./ftp-spider.pl –s 127.0.0.1 –v

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

**********
Outro
**********

Ну что ж. На этом все. Собственно целью данной статьи не было побуждать вас использовать именно этот софт. Просто я хотел показать несколько удобных программок, которые могут быть полезны в определенных ситуациях. Вообще акцент делался именно на то, что инструменты были небольшие по размеру и их функциональность довольно усечена. Но это нельзя считать недостатком. По моему мнению, такие утилиты использовать гораздо приятнее и удобней.

StraNger