Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #91, ИЮЛЬ 2006 г.

Мастерская бравого хакера

Крис Касперски

Хакер, номер #091, стр. 091-116-2


Другой полезный сайт — MilW0rm (milw0rm.com) — содержит огромную коллекцию exploit'ов под всевозможные системы, достаточно оперативно обновляемую и к тому же неплохо классифицированную, что значительно упрощает поиск, избавляя тебя от необходимости качать все подряд. Здесь же находятся примеры shell-кода с готовой боевой нагрузкой и немногочисленный инструментарий.

Популярный Packet Storm (www.packetstormsecurity.org) значительно реже обновляется, да и коллекция exploit'ов у него победнее будет, зато на нем выложено умопомрачительное количество статей и

всякого полезного инструментария: от сканеров безопасности до мелких утилит в десяток строк.

Кстати говоря, чаще всего узнаю о новых дырах не через форумы, а от знакомых. Достаточно завести обширную переписку — и можно быть в курсе дел, происходящих на всех континентах! Ведь силами одного человека отслеживать появление новых дыр просто нереально, разве что полностью посвятить свою жизнь уязвимостям.

Чем компилировать?

Чаще всего exploit'ы пишутся на Си/Си++, Perl, Python и PHP, реже — на всякой экзотике типа Ruby, причем тип языка указывается далеко не всегда, а о версии транслятора и ключах компиляции остается только догадываться. Вот такая культура программирования, с которой нам приходится жить.

Ладно, Perl узнается с первого взгляда по строке «#!/usr/bin/perl», идущей впереди листинга. Если же ее нет — смотрим на следующее:

* присутствуют директивы в стиле «use IO::Socket;»

* точка с запятой ставится в конце каждой строки

* тело функций и многострочечных циклов/операторов if заключено в фигурные скобки

* отступ внутри тела роли не играет и часто отсутствует

* многострочечные строковые константы соединяются через точку

Выполнение всех этих условий свидетельствует о том, что перед нами Perl. Язык Python внешне похож на него, но содержит ряд принципиальных отличий (и обычно предваряется строкой «#!/usr/bin/python», которой, впрочем, может и не быть):

* присутствуют директивы в стиле «import socket», «import sys»

* точка с запятой в конце строки не ставится

* тело функций и многострочечных циклов, операторов if не берется в скобки

* отступ внутри тела функций, оператор if и циклов строго обязателен

* многострочечные строковые константы соединяются, как в Си («<ENTER>»)

Выполнение всех этих условиях — верный признак Питона, который, как и Perl, портирован на множество платформ и распространяется на бесплатной основе.

Проблемы вызывает комплект поставки. Достаточно часто хакеры выкладывают не весь exploit, а только его часть, и транслятор начинает материться на отсутствующие включаемые файлы/библиотеки. Такие exploit'ы следует сразу отправлять в топку, хотя при наличии большого количества свободного времени и некоторого опыта работы с языком недостающие файлы можно (теоретически) воссоздать и самостоятельно. Но зачем?!

Назад на стр. 091-116-1  Содержание  Вперед на стр. 091-116-3