Жизнь по сценарию Докучаев Дмитрий aka Forb Хакер, номер #072, стр. 072-064-2 Этот сценарий я использую уже второй год. Он действительно незаменим, когда на удаленной машине отсутствует /usr/bin/wget и компилятор gcc или нет прав на запуск качалок. Найти этот чудесный и очень полезный скрипт можно на нашем диске. Возьми его силой! Скажи мне, когда ты последний раз проводил атаку брутфорсом? Бьюсь об заклад, что не очень давно. Действительно – сетевой перебор паролей является очень действенным, а иногда единственным способом взлома сервера. Он используется, например, в тривиальной ситуации, когда найден бажный скрипт, показывающий системные логины. От тебя требуется лишь отделить мух от котлет и провести тупой брутфорс по паре login:login через открытый FTP-порт. Чтобы не испытывать сложности при рутинном парсинге системного файла, размер которого может достигать несколько десятков килобайт, предлагаю использовать практичный сценарий. Он составляет так называемый комболист, который затем скармливается брутфорсеру. В качестве бонуса я снабдил combo.pl функцией распознавания валидного шелла. Короче говоря, аккаунты со всякими /bin/false и /dev/null не будут внесены в комболист. Нехитрый парсинг #!/usr/bin/perl $goodshell='bash'; #Строка с хорошим шеллом open(IN,"$ARGV[0]"); open(OUT,"> $ARGV[1]"); # Открываем файлы while(<IN> ) { chomp; ($u,@undef)=split ':'; #Режем по символу «:» if (defined($goodshell)) { #Если отбрасывать левых юзеров if ($undef[(scalar $undef)-1]=~/$goodshell/) { print OUT "$u:$u\n"; }} else { print OUT "$u:$u\n"; }} В коде происходит разделение полей системного файла с последующим анализом последнего. Если шелл пользователя рабочий, то пара login:login выносится в отдельный файл. Впрочем, никто не заставляет тебя юзать эту фичу - ее можно выключить, удалив строку с объявлением переменной $goodshell. В командной строке запуска скрипта должны присутствовать два параметра: входной файл (/etc/passwd) и выходной (комболист). Можно упростить скрипт, вписав фиксированные имена файлов в функции open(), правда, в этом случае сценарий уже не назовешь универсальным :). А вот это мой размерчик! Мне часто приходится прибегать к рутинной процедуре поиска файлов определенного формата. Но помимо расширения, меня интересует и размер документа. К примеру, я не хочу скачивать документы, которые имеют размер менее семисот килобайт. В системной функции find есть опция -size, однако она задает лишь фиксированное число, что крайне неудобно. Все эти накладки заставили меня написать простенький скрипт, который ищет все необходимые документы, а затем составляет список файлов определенного размера. Вес документа передается сценарию в качестве первого параметра. Вторая и третья опции отвечают за маску поиска и путь соответственно. |