![]() |
Perl – лучший друг хакера.
Perl – лучший друг хакера. Введение && Почему нам так подходит перл? Здравствуйте уважаемые читатели. В этой статье я постараюсь описать некоторые аспекты программирования для perl, которые, несомненно пригодятся для хекера. Почему перл? Много причин... Во-первых, простота. Да перл действительно очень простой язык. Это язык для тех, кто не хочет морочить себе голову набивая кучу кода, что бы вывести фразу "Hello word". А разве не это нам нужно? Простота и скорость создания скрипта. Так сказать, что бы писать программы на лету. Самое интересное, что на нем можно написать приложение для веб, а можно, например, скрипт для передачи шеллкода через уязвимый буфер. Не правда ли здорово?) Побудила меня написать этот материал статья Cobalt -а -"Perl - инструмент хакера", по моему мнению, статья получилась очень не полной. А тема интересная. Ну что ж пора переходить от слов к делу. Этюд 1. Ищем suid биты. Представим, что нам необходимо просканировать всю систему и найти файлы с suid битом (думаю ясно для чего). На перле это сделать просто также, как два байта передать. Набросаем примерный алгоритм функции поиска: *Функции принимает аргумента в качестве стартового каталога. *Переходим в указанный каталог и начинаем поиск *Проверяем файлы, а если встречаем каталог, то вызываем функцию повторно (рекурсивно) Да, если встречаем "." или ".." то пропускаем их. Т.к. первая указывает на текущий каталог, а вторая на каталог выше. Собстенно сам код: Код:
#!/usr/bin/perlВот еще несколько опций для определения статусной информации о файле: Код:
-e - проверка существования файлаМожно, например, составить список каталогов, которые доступны нам. Этюд 2. Парсинг? *YES*. Скажу вот что - написав всего лишь один скрипт для парсинга ответов гугла и наши возможности практически безграничны. Ведь google это самый мощный поисковик. С помощью него мы сможем получить гораздо больше информации о сайте & сервере, чем при прямом запросе к ресурсу. Например, можно провести ReversIP разведку, или составить структуру сайта. Вот только проблема в том, что google при большом кол-ве запросов попросту банит нас. Так что нужно быть аккуратными. Наш пример будет делать в гугл запрос "inurl: id=" и выбирать ссылки из полученной страницы. Что будем использовать в нашем коде: Код:
HTML::LinkExtor - для поиска ссылок.Код:
#!usr/bin/perlПарсер конечно не из лучших, но для примера подойдет. Этюд 3. Брутофорс по нашему. С помощью модуля NET::FTP простой брутajhc на перл можно написать за 10 минут. Удобство в том, что не нужно вдаваться в подробности работы протокола и можно уделить больше времени алгоритму. Итак, брут. Сначала забьем пароли в отдельный массив, а потом попросту будет из оттуда вынимать и пытаться подключиться. Смотримкод: Код:
use Net::FTP;Во-первых все входные данные желательно прогонять через функцию chomp. Она удалит знаки перевода каретки (\n), если такие имеются. Во-вторых, думаю просто обязательно нужно включить многопоточность. В-третьих, можно включить функцию, позволяющую пользователю самому выбирать, например timeout. Таймаут можно указать при подключении к хосту: Код:
my $brut=Net::FTP->new($hostftp,Timeout => число) || die "Не получается подключиться к указанному хосту\n";Таксс. Сейчас я покажу пример bindshell бэкдора на perl Это бывает очень полезно. Как всегда сначала смотрим алгоритм. Во-первых, биндим порт. Во-вторых, запускаем потоки ввода вывода. В-третьих, запускам терминал. А вот и сам код: Код:
#!/usr/bin/perlСначала я хотел в этом топе показать обычный сканер портов. Но это скучно. Покажу ка лучше вот что: тоже сканер, но сканировать он будет указанный диапазон ip, на один открытый порт, тот который мы укажем. Ну, например мы просканируем какую то сеть на открытый 23 порт. Те системы, у которых он открыт, могут быть уязвимы. Итак, алгоритм: Нам будет дан адрес и порт. В цикле перебираем последний разряд айпишника от 0 до 255 и пытаемся подключиться к указанному порту. Ну и все в принципе. Если подключение произошло успешно, выводим адрес. Вотисходник: Код:
#!/usr/bin/perlЕсли будет серьезная разработка, то нужно включить многопоточность. Вообще еще можно сделать так: читать баннеры и сравнивать их с уязвимыми. Если сходиться, то сервис возможно уязвим. Напоследок. Данный материал был написан даже не с целью напичкать вас чем то новым (если это для вас ново), а для того что бы показать всю привлекательность языка perl. Я искренне надеюсь, что после этой статьи вам захочется изучать его. Ps обо всех недочетах и ошибках пишем в комментариях, не стесняемся скачать ©StraNgeR from GR-TEAM |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Некоторые говорят, что лучший друг хакера - это google.
|
Цитата:
|
А можно узнать какойто учебнить по Perl ... ? Мне в статти нифига не понятно ... Может тому что я полный ламер в этом ....
|
Цитата:
ЕВМ лучший друг хакера. |
Цитата:
Освой самостоятельно Perl за 24 часа норм. ну для чтение статьи думаю нужно иметь хотя бы начальные знания языка |
Цитата:
А книгу я посоветовал какая пороще |
Этюд 5. Сканирование под собственные нужды.
Код:
#!/usr/bin/perlмне надо сканировать 2000 порт. Ну и хотел бы многопоточность ! можете подправить ? |
Код:
$paddr = sockaddr_in($port, $addr);perl.pl <host> <port> |
лучший друг хакера - это обнальщик вепмони денег
ссори за оффтоп, не удержался |
POS_troi
т.е. он все по одному сканирует ? ну это херня полная, если на самом деле так. я думал ведется диапазон, тип 55.111.222.0 - 55.111.222.256 : 2000 и все. он сканирует хосты по наличие порта 2000 |
Цитата:
Код:
$host=$r1.".".$r2.".".$r3; #составляем предварительный адрес |
razb
а ну тогда нормально. надо пробовать. если и многопоточность был - вообше супиер был бы |
Если уж учить Perl, то в первую очередь по этой книге - http://www.ozon.ru/context/detail/id/147137/ , а не по "освой за 24 часа/для чайников".
По поводу статьи. Не в обиду автору, но я так полагаю, что автор сам недавно начал программировать на Perl? Это видно по стилю. Конечно, хочется сразу помочь другим, как сам узнаёшь новое, но я бы не советовал спешить. Немного по коду: - почему нет use strict, use warnings? это сильно облегчает поимку ошибок, да и код чище и правильней будет; - зачем излишняя интерполяция - $ftp->login("$loginftp", "$passftp") ; - chomp($_); - это тоже лишнее, данная магическая переменная по умолчанию обрабатывается во многих функциях ( если не указан аргумент ), что относится и к chomp; ну и так далее, можно откомментировать практически каждую строку, но лучше почитать вот это: http://www.milw0rm.com/papers/194 и остальные выпуски. В общем, надеюсь мои ссылки помогут, никого не хочу обидеть, в конце-концов, все учатся. |
Цитата:
В общем, чтобы не разводить флейм и не создавать конфликтов, советую почитать perllexwarn - там хорошо описано что такое use warnings и что такое флаг -w. |
Да мог-бы кто выложить пример backconnect на perl?
|
эм ребят - вы вобще статью читаете? или сразу идете комментировать?)
|
ТС, а как же многопоточность? имхо это одно из главных преимуществ перле перед многими интерпретируемыми языками программирования.
|
ИМХО, целью ТС было не демонстрация своих хацкерских скриптов на perl, а всего лишь показать, что умение програмировать на перл - это очень полезный скил )
и не стоит тыкать пальцем и кричать "фууунах, без многопоточности!!!" Касаемо книг. Ларри Уолл, конечно, мужик хороший, однако сразу начинать изучать перл с его книги - это грудью на амбразуру. Есть замечательная книга того же издательства (O'Relly) _http://www.ozon.ru/context/detail/id/1704906/ - она больше подойдёт новичку, ИМХО. А насчёт "лучшего друга"... наверное, это всё-таки мозг ) |
а чем пер лучьше тогоже Python'a который явно порще ?
Perl - это птичий язык (с) ктото |
| Время: 19:25 |