понедельник, 31 января 2011 г.

Обзор блога за январь 2011

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

  • Как поменять атрибут в AD: варианты №2
  • Как по быстрому создать графическую утилиту для изменения атрибута пользовательской учетной записи. Ну или какого-нибудь другого объекта.

  • Секреты %SystemRoot%\System32
  • А что у нас находится в папке system32? Сдается мне, там много вкусного =)

  • Создание самоподписанного сертификата для подписи кода
  • Что делать, если нужен сертификат для подписи кода, но только “для себя”. А денег платить не хочется.

  • Live Writer Wrap Up Tool: моя версия
  • Я сделал свое первое приложение на C#! Поздравляю меня. оно содержит кое-какие ошибки, но именно с его помощью я только что создал это сообщение ;)

  • Русинович пишет детектив, MS OneNote доступен к скачиванию для iPhone
  • Спешите видеть, спешите слышать – мир сошел с ума, но мне это даже нравится =)

  • Секреты %SystemRoot%\System32: Schtasks
  • Продолжение серии про System32.

  • Секреты %SystemRoot%\System32: Auditpol

    Еще одно продолжение той же серии.

  • четверг, 27 января 2011 г.

    Секреты %SystemRoot%\System32: Auditpol

    CLIА вот эта команда очень даже полезна в случае, если Вам нужно тонко настроить аудит. Например, Вы не сможете только с помощью GUI установить “Audit directory service changes” не установив “Audit directory service replication” и еще парочку, потому что “Средства с интерфейсом Windows, позволяющего просматривать или задавать подкатегории политики аудита, в Windows Server 2008 нет”. Так что Вы крайне нуждаетесь в этой утилите, если есть нужда в настройке подкатегорий аудита. Так же она Вам нужна для создания скриптов, изменяющих или анализирующих SACL. А еще она пригодится для резервного копирования и восстановления политик аудита (скажем, Вам нужно на время поиска решения проблемы включить расширенный аудит, а потом выключитьт его). А еще она может полностью или частично сбросить политики аудита.

    Обалдеть! Пишу вот это и преисполняюсь благоговения. Мне следовало лучше использовать этот инструмемнт Winking smileСинтаксис весьма обширен, так что читайте сами, а я приведу здесь лишь самый простой пример использования утилиты:

    image

    Have fun! =)

    понедельник, 24 января 2011 г.

    Секреты %SystemRoot%\System32: Schtasks

    CLIПосле моего предыдущего поста из этой серии о команде AT я получил некий фидбек от людей, очевидно, не любящих читать до конца Winking smile Впрочем, они вполне справедливо указали мне на то, что AT устарела и хорошо бы использовать schtasks. Они знали! =)

    Несмотря на все мои ужимки, schtasks и впрямь значительно более мощная утилита и, раз уж она так всем нравится, я решил посвятить следующее сообщение серии ей, а не auditpol, которая следует за AT в моем списке. Приступим.

    Schtasks

    По сравнению с AT данная команда является большим шагом вперед. Правда, посмотрите только на ее подкоманды: create, change, run, end, delete, query. Собственно, этот инструмент позволяет делать абсолютно все, что Вы можете сделать с помощью консоли Scheduled Tasks в панели управления. А так как это утилита командной строки, то все это еще можно и заскриптовать. Как обычно, впрочем, такая мощь имеет свою обратную сторону: описание ее синтаксиса состоит из 33 страниц в MS Word шрифтом размера 8,5. 33 страницы! И все же рекомендую переключаться на нее, потому что, буду честным, если Вам хочется хоть чуть-чуть большего, чем может Вам предоставить команда AT, то особых вариантов у Вас нет. Кроме того, если лениться чуть меньше и освоить ее синтаксис, то результат может приятно удивить:

    schtasks /create /tn “Shutdown Friends Machine” /tr “shutdown /s /f /t 0” /sc minute /mo 5 /s friend

    Эта команда заменяет все строки из моего примера в статье про AT.

    четверг, 20 января 2011 г.

    Русинович пишет детектив, MS OneNote доступен к скачиванию для iPhone

    Вот такой вот сумасшедший мир нас окружает. А новости правдивые:

    Новая книга Марка Русиновича

    Этот товарищ, более известный нам по всяким утилитам и Windows Internals внезапно разродился детективом-триллером Zero Day. Что-то там о кибер-преступности, кибер-атаках и всяком таком. Я дежа не буду читать отрывок, а просто куплю ее, когда она станет доступна (March 2011). Пред3@к@3 уже д0ступен. Winking smile

    OneNote доступен на iPhone/iPod/iPad.

    И даже работает, хотя я еще не до конца синхронизировал его из моего SkyDrive хранилища. Процесс продолжается, а Вы пока качайте с Apple Store.Продукт бесплатен “ограниченное время”

    понедельник, 17 января 2011 г.

    Live Writer Wrap Up Tool: моя версия

    Как я уже говорил когда-то, парень по имени Simon May создал небольшую программку, которая позволяет Вам создать с помощью Live Writer сообщение, состоящее из перечисления Ваших же (или чужих – смотря на чью RSS-ленту натравить приложение) сообщений в блоге. Забавное и полезное приложение – ежемесячно экономит мне какое-то время. Однако я решил:

    1) адаптировать ее слегка под собственные нужды

    2) Написать, наконец, мое первое приложение с… Черт, я не писал ничего серьезнее скриптов уже лет 15. =)

    Так что парень с больше, чем одним блогом и навыками программирования на уровне BASIC’овского (даже не VB) “Здравствуй, Мир” закрыл глаза, скачал Visual C# 2010 Express и начал разрабатывать свое собственное приложение. Ну ладно, глаза пришлось открыть еще на стадии скачивания VS. Потом я взял Саймоновские объяснения его процесса создания программы, потратил 10-15 (да, я знаю, у матерых программеров это заняло бы от силы пару часов, включая поиск иконок Winking smile ) часов в поисках решений возникавших передо мной проблем на MSDN и других ресурсах Интернет и… 

    image

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

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

    /// Ну и расскажите мне на милость, что я тут только что сделал? Я так понял, это LINQ?
    OrderedFeed = feed.Items.OrderBy(i => i.PublishDate);

    Но эта штука РАБОТАЕТ! По крайней мере, в моих сценариях.


    Я заменил календарь, который был в версии от Саймона на выбор дат, добавил возможность выбора двух предопределенных интервалов времени, возможность запоминать больше одной RSS-ленты и сортировку списка сообщений блога по времени. 




    Какова мораль истории? Вы можете создавать свои программы, даже если Вы не профи в этом. С помощью Visual Studio это и впрямь легко. Так что если Вам нужно что-то маленькое, но Вы не можете найти программы, которая это делает – напишите ее.


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


    1) Процесс был развлечением для меня. Программа была создана для меня. Я обещаю Вам, что не планировал никаких вредоносных функций для программы, однако, с какой стати Вы должны мне верить? Я уже не говорю о том, что она лежит на бесплатном хостинге, и никто не знает, что с ней там может случиться. В любом случае – я не несу никакой ответственности за ее использование и результаты оного. Разве что только за хорошие =)


    2) Программа будет искать обновления при старте. Если Вам нужна версия, которая не делает этого – напишите ее сами. Мне так удобнее =) 


    3) Если у Вас есть идеи по улучшению программы: напишите мне и я обдумаю Ваше предложение. Я не обещаю реализации Вашей идеи, и работа над программой вряд ли станет когда-нибудь высокоприоритетной задачей для меня, но иногда я буду заниматься и этим, почему нет?


    4) Если Вам нужны исходники… Не проблема, но:




    • Если Вы новичок в программировании вообще или в C# в частности, то я рекомендовал бы написать ее с нуля. Так будет и веселее, и больше пользы, чем в случае, если Вы просто скачаете и скомпилируете мои исходники. 


    • Если Вы профи, то я дам Вам исходники только если после того, как Вы над ними отсмеетесь, Вы объясните мне как мне исправить или улучшить сотворенное =)

    5) Программа создает в реестре ключ HKEY_CURRENT_USER\Software\WLWWrapupper, который не удаляется при деинсталляции программы. Удалите его вручную, если он Вас раздражает.


    Ну и если Вас не напугали все мои предостережения, то устанавливайте ее  отсюда.

    четверг, 13 января 2011 г.

    Создание самоподписанного сертификата для подписи кода

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

    Иногда хочется быть уверенным хоть в какой-то степени, что скрипт, или код, который Вы вот-вот запустите, является тем самым, который Вы написали черт знает когда. Одним из путей достижения этого состояния просветления является закрытие флешки с кодом в сейфе. Второй вариант – подписать код. Вторая возможность обычно считается, да и является более удобной, однако требует специального сертификата. Причем покупка такового в общем-то не самое дешевое удовольствие: минимум, который мне удалось найти это 99 долларов за год. С одной стороны, не такая уж огромная сумма, с другой, есть ли смысл платить, когда единственная цель – убедить себя, что это Ваш собственный код? Может быть да, может быть – нет (это тема отдельного далеко не однозначного разговора), и если Ваш ответ “нет”, то Вы можете без излишних трат создать Ваш собственный сертификат, который будет не хуже, чем у Verysign до тех пор, пока Вы не попытаетесь убедить кого-либо еще, что это именно Ваш сертификат и что ему можно верить =) 

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

    1) Скачиваем Windows SDK (нам в любом случае нужно это сделать, даже по тем двум рецептам, поскольку именно там располагается makecert), устанавливаемего и следуем в его папку.

    2) makecert.exe -cy end -pe -r -n "CN=Имя Вашего Супер-Сертификата" -sky Signature –sv path_to\key.pvk path_to\key.cer

    3) pvk2pfx.exe -pvk path_to\key.pvk -spc path_to\key.cer -pfx path_to\key.pfx

    4) Импортируем ключ key.pfx в Ваше хранилище сертификатов. Или на Вашу смарткарту .

    Используете его там, где Вам необходимо. Заметьте, что выделенные части нужно на что-то заменить.

    Надеюсь, для Вас это сработает как и для меня.

    Описания для makecert и pvk2pfx здесь и здесь.

    понедельник, 10 января 2011 г.

    Секреты %SystemRoot%\System32

    Помните мою серию “старая добрая командная строка? Подчиняясь наказу Васи Гусева я продолжаю. Но теперь я буду брать интересные команды не с какого-то там сайта, а из недр своей собственной Windows 7. Начнем с папки, указанной в теме. Обычно это c:\windows\system32, но кто знает, что Вы могли сотворить со своей невинной системой?

    Что же, начнем, пожалуй. И первым участником шоу становится:

    at.exe

    Ну, ну, ну… Только посмотрите, кто нарисовался. Эта команда эпизодически считается устаревшей кем ни попадя начиная с Windows 2003 RTM, но все еще включена в состав W7. В то время, как мы имеем значительно более мощную schtasks (будет освещена в одном из следующих выпусков), мы все еще можем использовать старичка для создания простых задач или что-то подобное заскриптовать. Почему ее использовать ее, а не более “навороченный” schtasks? Ну, например, можно это делать если Вы, подобно мне, достаточно стары, чтобы помнить синтаксис at (который еще и проще, кстати) и достаточно ленивы, чтобы не помнить синтаксис schtasks. =) Почему я все еще помню как использовать at? Черт, это же было так весело лет так 10 назад сделать такие задачи, чтобы компьютер друга выключался каждые пять минут… Winking smile

    Наверное, это было что-то такое:

    at \\friend 00:00 /every:M,T,W,Th,F,S,Su “shutdown /s /f /t 0”

    at \\friend 00:05 /every:M,T,W,Th,F,S,Su “shutdown /s /f /t 0”

    at \\friend 00:10 /every:M,T,W,Th,F,S,Su “shutdown /s /f /t 0”

    ………………………………………………………………..

    at \\friend 23:55 /every:M,T,W,Th,F,S,Su “shutdown /s /f /t 0”

    (Как видите, тогда я не был еще таким ленивым. А еще у нас не было AD и были одинаковые пароли)

    Ну или что-то похожее, я не стал проверять прямо сейчас то, что написал. =)

    Синтаксис тут, ничего не поменялось с пор Win2000.

    четверг, 6 января 2011 г.

    Как поменять атрибут в AD: варианты №2

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

    создание какого-нибудь графического приложения

    Есть множество вариантов: C#, VBScript, C, черт в ступе. Так как я несколько ленив, то вместо создания собственного приложения с нуля я взял некий скрипт, приложенный к Windows Administration Resource Kit из состава Windows 2008 resource kit, который называется “Object_Attribute_EmployeeNumber.hta”. Он позволяет просмотреть и изменить атрибут EmployeeNumber. Так как ранее я демонстрировал изменение EmployeeID, то и здесь мне пришлось внести некоторые правки типа замены слова “number” на слово “ID” (осторожно – не везде “number” нуждаетсяс в замене!), как здесь:

    image

    ну и поправить кое-какие баги. Минут 20 работы, правда. Как только я сделал это – вуаля:image

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

    В любом случае, есть еще один метод:

    расширение возможностей ADUC и других консолей

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

    понедельник, 3 января 2011 г.

    Зловреды: как нас заражают

    Уже не в первый раз имел я некие споры с разными людьми, знакомыми, не очень и даже коллегами, которые до сих пор думают, что основной метод для заражения для зловредов это использование уязвимостей, не требующее от пользователя быть идиотом помощником в этом нелегком деле. Я же полагаю (и имею братьев по оружию, которые меня поддерживают), что главной угрозой является как раз упомянутый выше… Эээ… Ну давайте переформулируем так: недостаток образования и халатность. О чем я говорю? Что ж, некоторые источники рассказали мне на ушко, что самые успешные, с точки зрения инсталляционной базы, зловреды устанавливают себя через USB флешки, открытые в общий доступ диски и прочие, требующие вовлечения пользователя, технологии.  Например, в отчете SIR №9 от Microsoft (первая половина 2010) мы легко увидим следующую таблицу:

    1

    Win32/Taterf

    2

    Win32/Frethog

    3

    Win32/Renos

    4

    Win32/Rimecud

    5

    Win32/Conficker

    6

    Win32/Autorun

    7

    Win32/Hotbar

    8

    Win32/FakeSpypro

    9

    Win32/Alureon

    10

    Win32/Zwangi

     

    Это top10 семейств зловредов, обнаруженных на компьютерах. Первый – наиболее часто встречающийся, последний – наименее (из top10, конечно же) часто. Теперь я просто повторю ту же таблицу, но с добавлением механизмов заражения:

    1

    Win32/Taterf

    Win32/Taterf это семейство червей, которые распространяются через открытые в общий доступ диски.

    2

    Win32/Frethog

    Распространяется через...

    Mapped Drives

    3

    Win32/Renos

    Скачивание “видеокодеков” и других “вкусняшек” со злонамемренных сайтов. 
    4

    Win32/Rimecud

    Win32/Rimecud это семество червей, распространяющихся через съемные носители и IM. 
    5

    Win32/Conficker

    Не могу спорить: этот распространяется через уязвимость. А еще через съемные носители и слабые пароли.
    6

    Win32/Autorun

    Ну и здесь не поспоришь: авторан. Съемные и прочие носители.
    7

    Win32/Hotbar

    Набор “установи это сам”. Правда.
    8

    Win32/FakeSpypro

    Rogue:Win32/FakeSpypro может быть установлен пользователем с сайта программы или тем же пользователем, но с применением социальной инженерии.
    9

    Win32/Alureon

    Ручные скачки (кейгены, ПО в нагрузку, etc…)
    10

    Win32/Zwangi

    Ручные скачки.

     

    Знаете что? Пока писал это, даже расхотелось дискутировать. Прочитайте еще один отчет. И хватит на этом: нет нужды хакать Ваш компьютер, если можно хакнуть Вашу голову.

    Будьте осторожны хотя бы уж в этом году и в последующие. Заставьте хакеров быть более изобретательными Winking smile