Перейти к контенту ↓


Windows 2000 — взлом за 10 минут и меньше…

Завязалась у меня как-то по электронной почте небольшая дискуссия с одним читателем на тему — кто такой ламер? В результате недолгой переписки мы пришли к единому мнению, что далеко не каждый неопытный пользователь — ламер, и не каждый ламер — неопытный пользователь. Что это значит? А значит это то, что непробиваемым ламером может оказаться и проработавший несколько десятков лет за компьютерами системный администратор, поскольку ламерство — это не отсутствие знаний, а ничем не подкреплённая уверенность в их наличии. Как там говорил кто-то из великих мудрецов (редактор наверняка в курсе — кто)? «Я знаю, что ничего не знаю». Ламер же знает, что он знает всё.

Системный администратор, имеющий даже весьма серьёзные пробелы знаний в областях, имеющих непосред­ственное отношение к его рабочим обязанностям, не так уж и фатален для всего техно­логи­ческого процесса, протекающего в подведом­ственной ему локальной сети. В конце концов, нормальный человек имеет склонность к постоянному повышению своего образова­тельного уровня, да и наличие нескольких сисадминов, как правило, заметно улучшает суммарное качество их работы — опыт одного дополняют знания другого. Гораздо хуже, на мой взгляд, если системный администратор начинает сваливать свою вину на подопечных пользователей — дескать, это они, такие сякие, ведут себя нелояльно, так и норовят всё на свете хакнуть, и вообще, не умеют обращаться с компьютером. Дык, ёлки-палки, это ж твоя задача — сделать так, чтобы, во-первых, система не только была надёжно защищена от «дурака», но и как-то сопротивлялась хотя бы самым элементарным приёмам взлома. А во-вторых, создать для пользователей такие условия работы, чтобы во взломе просто не было никакой необходимости, и это, возможно, даже эффективнее. То есть работать надо, выполнять свои прямые обязанности. Ставить нужный пользователям софт, разграничивать грамотным образом пользова­тельские привилегии, делать так, чтобы всем было комфортно, а не только сисадмину. Если же на просьбу установить простейшую программу типа Exact Audio Copy сисадмин задаёт вопрос «А зачем?» и отсылает к более высокому начальству за разрешением, то про него сразу всё становится ясно. Ну не хочет человек оторвать зад от стула, прикрываясь словами, что на рабочем ПК должен быть установлен софт только для работы. Как правило, именно в сетях с такими администраторами и творится чёрт знает что — пользователи, не видя админа месяцами, устанавливают такой софт, что мама не горюй! Диски забиты играми, порнухой и вирусами… Но зато сам сисадмин формально ни за что не отвечает — пользователи ведь делают всё это само­вольно. И именно в таких сетях нередко возникают эксцессы со взломом системы, после случайного вскрытия которых недобро­совестный админ тут же бежит жаловаться любимому начальнику, где начинает брызгать слюнями и исходить жуткой вонью с единственной целью — пытаться доказать, что это не он так плохо работает, а пользователи обнаглели. И ваще, хороший пользователь — мёртвый пользователь, а он весь такой белый и пушистый и сам про взлом всё знает, только непонятно, почему ничего не сделал для его предотвращения. Хотя дураку ясно, если админа живьём увидеть можно только у начальника в кабинете, то пользователям волей-неволей приходится брать права админис­тратора на себя. Надо ли говорить, что админ, который не сумел защитить компьютер от взлома даже со стороны обычного, ленивого на всякие дополни­тельные тело­движения, пользователя, и подавно не защитит сеть от проникновения активного и действительно злонамеренного хакера. Благо, делается это в считающейся на сегодня самой надёжной Windows 2000 минут этак за 10 (Windows XP встречается в сетях пока редко, но не сильно превосходит в этом плане «Винтукей»). 

Загрузка — основа основ

Способов «взлома» локальной Windows NT, вообще говоря, множество. Это и получение паролей других пользователей, в том числе администратора. Это и сброс или замена пароля администратора. Это и повышение до максимума пользова­тельских привилегий непосред­ственно из-под своей учётной записи, имеющей изначально весьма ограниченные права. Это и осуществление доступа к чужим файлам и многое другое. Из всех этих способов самый, на мой взгляд, элегантный и неразрушающий — получение полного списка паролей локальной машины. Ситуаций, когда взлом вероятен или даже необходим, тоже немало. Собственно говоря, само понятие «взлом» может применяться и к абсолютно законным случаям, прикрываясь фиговым листком фразы «восстановление забытых паролей». Ведь именно такая задача нередко стоит и перед самими системными админи­страторами, поскольку случаев, когда админ уволился, не сказав все пароли своему преемнику — пруд пруди. И используются при этом самые натуральные и достаточно известные хакерские методы. А уж пользователей, которые забыли понаста­вленные с бодуна пароли…

Вторая сторона медали во всём этом неблагодарном деле — умение по мере сил и возможностей противо­стоять взлому. Любой администратор самой маленькой локальной сети обязан это делать. Аксиома! Доказательств не требуется… Но не надо забывать и того, что всякого рода любопытным личностям или даже силовым структурам (легальным и нелегальным) может понадобиться полный или скрытый доступ и к вашему личному домашнему или мобильному ПК, если только информация на нём представляет хоть какую-то ценность. А потому, быть как минимум в курсе наличия брешей в безопасности своей собственной системы желательно и самому обычному пользователю, не только системному администратору. Конечно, если вас посадят на раскалённый утюжок, то тут будет уже не до сохранения паролей, но мы рассмотрим здесь чисто софтовый аспект проблемы. Различные методы «социального инжиниринга», «новорусские» пытки и шпионские штучки типа скрытых камер в отдушине или «жучков» в клавиатурном кабеле пока оставим за кадром. 

И для осуществления большинства задач по взлому (будем всё же называть это именно так — «восстановление паролей» звучит хуже) системы необходимо загрузить на ПК альтернативную операционную систему — DOS, Linux или что-то ещё (например, можно перенести жёсткий диск на другой ПК со «своей» Windows NT). Думаю, понятно, что в системе, на которой можно запустить NTFS for DOS, NTFS for Windows 98, ERD Commander [1], Paragon NTFS for Windows [2], Active@ NTFS Reader for DOS [3], Windows Preinstallation Environment или «линуксовый» LiveCD, абсолютно невозможно скрыть свои частные документы от посторонних глаз, не прибегая к дополнительному шифрованию. А потому, сисадмин, который не предпринял никаких, даже простейших мер по предотвращению загрузки ПК со сменных носителей, или не очень умный или очень ленивый. А самый элементарный способ — установка пароля в CMOS Setup, плюс разрешение загрузки ПК только с диска С:.

Надо сказать, что существуют два наиболее распро­странённых метода ограничения доступа к компьютеру с помощью настроек CMOS Setup: запрет изменения настроек CMOS Setup и требование ввода пароля при загрузке компьютера. В обоих случаях для законного снятия блокировки необходимо знание установленного в системе пароля. Встречаются, конечно, и дополни­тельные меры защиты на уровне «железа», это, в частности, очень распро­странено в портативных компьютерах — ноутбуках. Например, парольная защита, встроенная в жёсткий диск или даже механические замки. Защищённый паролем жёсткий диск (hard disk lock password) часто оказывается бесполезен даже при его переносе на другую машину, и такой пароль неспециалисту не удастся сбросить ни формати­рованием ни пере­раз­биением диска. Нередко для предотв­ращения неавтори­зованного доступа к ноутбуку применяются специальные микро­схемы, которые либо просто в защищённом виде хранят пароль BIOS, либо осуществляют какую-то более серьёзную защиту, например, поддержку аутенти­фикации по смарт-картам или отпечаткам пальцев. Впрочем, и такую защиту компетентные товарищи всё же ломают, причём в ряде случаев даже таким относительно простым способом [4], как пере­прошивка БИОСа или подмена чипа на аналогичный чип с уже известным паролем. Но в любом случае затраты на защиту, конечно, должны соответ­ствовать возможному ущербу от неавтори­зованного доступа и вероятному упорству потенциальных хакеров. Для обычной офисной «локалки» дальше пароля на BIOS, вероятно, смысла идти всё же нет, а если вы вдруг начнёте заниматься банковским делом, то слабую гарантию безопасности может дать разве что кругло­суточный охранник, готовый по условленному сигналу в пух и прах расстрелять из «Калашникова» жёсткий диск сервера. Да и то, если охранник неподкупный…

Итак, если вы можете загрузить компьютер в обычном режиме или с дискеты, т. е. пароль непосред­ственно на загрузку не установлен, то вскрыть пароль на изменение настроек CMOS Setup часто довольно легко — для этого написано немало специали­зированных программ (кракеров), которые либо вообще сбрасывают пароль в пустоту, либо элементарно выводят его на экран компьютера. Например, пара «линуксовых» утилит исключительно для установки паролей ноутбуков Toshiba имеется здесь: www.buzzard.org.uk/toshiba/passwords.html [5]. Самые лучшие из универсальных программ вы найдёте в Интернете по адресам:

или на сайте www.password-crackers.com/crack.html [9].

Надо только учитывать, что для BIOS от разных производителей обычно используются разные программы, найти которые в Интернете не так уж сложно, достаточно в любой поисковой системе задать поиск, например, по такой маске: «Award BIOS Cracker» или «AMI BIOS password recovery». Не все такие программы, правда, гарантированно сработают, они обычно жаждут чистого DOS, но вскрыть пароль с их помощью более чем реально.

Известен также «ручной» метод сброса настроек BIOS из-под DOS, при помощи команды Debug. Загрузившись с дискеты в чистый DOS, необходимо набрать в командной строке для Award и AMI BIOS:

DEBUG
-O 70 17
-O 71 17
Q

для Phoenix BIOS:

DEBUG
-O 70 FF
-O 71 17
Q

Если же в системе установлен пароль и на загрузку ПК, то дело лишь немного усложняется. Вскрыть такую защиту тоже можно несколькими способами. Самый простой — вообще сбросить все настройки CMOS Setup в состояние по умолчанию. Естественно, при этом и требование ввода пароля будет отключено (что может заметить админ). Для корректного проведения такой операции желательно найти инструкцию к материнской плате (полагаю, в Интернете их навалом) и в соответствии с её указаниями пере­ставить определённую пере­мычку на материнской плате. Обычно она располагается возле края платы, рядом с батарейкой или же рядом с процессором и маркируется «CLEAR», «CLEAR CMOS», «CLR», «CLRPWD», «PASSWD», «PASSWORD», «PWD». На лаптопах её можно найти под клавиатурой или в открываемых отсеках нижней части. Если такой вариант по каким-либо причинам не проходит, то можно попробовать на несколько минут (редко — часов, если имеется ёмкий конденсатор) вынуть батарейку или сам чип CMOS из материнской платы — этого также достаточно для обнуления всех настроек CMOS (желательно при этом отсоединить и блок питания). В крайнем случае, если аккумулятор намертво впаян в плату, то допускается даже замыкание его контактов, но это, как вы понимаете, уже менее грамотно и гарантии сохранности оборудования вам в этом случае никто не даст (хотя вряд ли что-то при этом сломается). Однако в случае с ноутбуками, особенно IBM Thinkpad, обычно крайне не рекомендуется отключать батарейку, так как это может привести к невозможности загрузить ПК, поскольку в некоторых таких машинах используется скрытый от пользователя пароль жёсткого диска (включается он обычно вместе с установкой пароля Supervisor), который при сбросе питания система попросту забывает. В подобных ситуациях настройки CMOS следует сбрасывать только в соответствии с инструкцией на ноутбук — джампером на плате.

На некоторых машинах можно обойти ввод пароля путём нажатия некой комбинации клавиш при загрузке ПК, например, если держать зажатым левый Shift (на Toshiba), Insert (некоторые версии AMI BIOS) или же если в течение загрузки несколько раз одно­временно нажать обе кнопки мыши (IBM APTIVA). Иногда помогают и такие не вполне корректные способы, как пере­полнение буфера клавиатуры путём быстрого много­кратного нажатия клавиши Esc при загрузке или даже загрузка ПК без клавиатуры или мыши. В Phoenix Ambra сбросить пароль можно, если загрузить ПК с отключенным от жёсткого диска IDE-шлейфом.

Кроме того, встречаются и такие необычные способы сброса пароля CMOS, как навешивание специальной заглушки на LPT-порт у ноутбуков Toshiba, в которых даже полное снятие питания может не сбросить пароль, хранящийся в энерго­независимой памяти. Для этого надо просто распаять стандартный коннектор 25pin, соединив контакты: 1-5-10, 2-11, 3-17, 4-12, 6-16, 7-13, 8-14, 9-15, 18-25.

Для ноутбуков Toshiba мне попался в Интернете ещё один интересный способ обхода пароля BIOS. Вот что он из себя представляет. Берётся дискета, и в любом шестнад­цатеричном редакторе изменяются первые пять байтов второго сектора (если загрузочный сектор считать первым) таким образом, чтобы они равнялись: 4B 45 59 00 00. Изменения сохраняются, и вы получаете ключевую дискету! Теперь вставляете её в ноутбук, пере­загружаете его, при запросе пароля просто жмёте Enter, и появляется запрос на подтверждение ввода нового пароля (пустого!), на который отвечаем «Y» и Enter. Всё, пароль сброшен. Сам я этот способ не проверял — обладатели ноутбуков Toshiba могут поэкспери­ментировать на досуге. А готовую ключевую дискету для Toshiba можно скачать по адресу www.cgsecurity.org/keydisk.exe [10].

И, наконец, уже давно повелось, что производители BIOS оставляют в своих программах специальные «чёрные ходы» или так называемые «инженерные пароли» (а вы сомневались? Думаете, в Windows такого нет?). Всё бы хорошо, но инженерные пароли относительно старых систем давным-давно всем известны, а вот для новой материнской платы или современного «брендового» ноутбука вы, скорее всего, такой уже не подберёте. Более того, компания Award предоставляла производителям оборудования даже специальную утилиту MODBIN.EXE для установки своего собственного инженерного пароля, так что узнать такой пароль может оказаться непростой задачей. Тем не менее, я приведу список наиболее известных паролей (учтите, что символ _ на американской клавиатуре может соответствовать ? на европейской) (см. врезку).

Инженерные пароли для BIOS

Award
  • AWARD_SW
  • 589589
  • 589721
  • 595595
  • 598598
  • 1322222
  • _award
  • ALFAROME
  • ALLy
  • aLLy
  • ALLY
  • aPAf
  • AWARD PW
  • AWARD SW
  • AWARD?SW
  • AWARD_SW
  • awkward
  • AWKWARD
  • BIOSTAR
  • CONCAT
  • CONDO
  • Condo
  • d8on
  • djonet
  • HLT
  • j256
  • J256
  • j262
  • J262
  • j322
  • j64
  • J64
  • KDD
  • Lkwpeter
  • LKWPETER
  • PINT
  • pint
  • SER
  • shift + syxz
  • SKY_FOX
  • syxz
  • SYXZ
  • SY_MB
  • szyx
  • TTPTHA
  • ZAAADA
  • ZBAAACA
  • ZJAAADC
AMI
  • A.M.I.
  • AAAMMMIII
  • AMI
  • AMI?SW
  • AMI_SW
  • BIOS
  • CONDO
  • HEWITT RAND
  • LKWPETER
  • PASSWORD
PHOENIX
  • phoenix
  • PHOENIX
  • CMOS
  • BIOS
Разные производители
  • ALFAROME
  • bell9
  • BIGO
  • biosstar
  • BIOSTAR
  • biostar
  • Biostar
  • central
  • CMOS
  • cmos
  • Compaq
  • Dell
  • iwill
  • LKWPETER
  • lkwpeter
  • merlin
  • Posterie
  • QDI
  • setup
  • SETUP
  • SKY_FOX
  • spooml
  • Syxz
  • Toshiba
  • Wodj
  • xo11nE

Постоянно же обновляемые списки «заводских паролей» вы также можете найти в Интернете:

Последний способ получения доступа к информации при забытом пароле — обратиться непосред­ственно к производителю оборудования, профес­сионалам типа www.pwcrack.com [4] или даже в обычный сервис-центр по ремонту ноутбуков. Уж они-то знают все «чёрные ходы» и, вероятно, за некоторое вознаграждение помогут вам или другим заинтере­сованным лицам восстановить или сбросить установленный на вашем ПК пароль.

Таким образом, пароль, установленный в CMOS Setup, по большому счёту, конечно, не представляет какой-либо серьёзной защиты даже от обычных, разбирающихся в современной технике пользователей, имеющих доступ к компьютеру, и без параллельного исполь­зования каких-то дополни­тельных ухищрений он почти бесполезен. Но в любом случае сисадмин обязан его устанавливать (а лучше — оба пароля)!!! Потому что пара достаточно простых приёмов всё же существенно повышают степень его защиты. А чем больше преград надо преодолевать при взломе системы, тем ниже вероятность его успешного осуществления.

Какие же это приёмы? Надо исключить возможность чисто механи­ческого сброса паролей, для чего вполне подойдёт опломби­рование корпуса стикерами, применение винтов с нестандартными шлицами (типа «секреток» на колёсах автомобилей), установка на корпус специального замочка. Всё-таки оставить явные следы взлома на служебном ПК решится не каждый сотрудник даже ради установки очень нужной программы. Говорят, после появления программ типа NTFS for DOS Microsoft заявила, что полную безопасность сможет дать только отсутствие физического доступа к ПК (оптимисты, едрёныть!). Но можно, например, заставить каждого пользователя подписать жёсткий документ о политике безопасности в сети, где, помимо всего прочего, прописать запрет вскрытия корпуса и загрузки ПК со сменных носителей — психо­логический эффект от этого сыграет немалую роль.

Далее необходимо затруднить применение программных «крякеров» паролей CMOS. Естественно, весьма желательно, чтобы админи­стратор заранее проверил возможность срабатывания таких программ на подведом­ственной ему технике. Если выяснится, что таковые существуют в природе, то, поскольку подобные программы обычно «ДОСовские», можно, во-первых, с помощью локальных политик безопасности запретить запуск консоли CMD.EXE на пользовательских ПК. Для этого в диалоговом окне «Групповая политика» → «Конфигурация пользователя» → «Админи­стративные шаблоны» → «Система» установите параметр «Запретить использование командной строки» («Disable the command prompt»).

Во-вторых, можно вообще исключить запуск любых DOS-программ на машине пользователя. Для этого запретите пользователю доступ к файлу %SystemRoot%\System32\ntvdm.exe. Или для запрета целой группе пользователей «Users» выполните такую команду:

CACLS %SystemRoot%\System32\ntvdm.exe /E /D "Users"

Также можно, например, запретить доступ или вообще удалить с диска все копии файла Command.com (а вообще для NTVDM — виртуальной машины DOS в Windows 2000 — требуются ещё файлы Ntio.sys, Ntdos.sys, Ntvdm.exe, Ntvdmd.dll, Redir.exe — можно провернуть эксперимент и с их удалением).

Если же провести тщательный поиск в Интернете «крякеров» BIOS и составить список найденных программ (Password Reminder, например, это Windows-приложение — www.newpowersoft.com/password%20reminder/ [13]), то неплохо было бы ещё и внести эти программы в список запрещённых к запуску. Это тоже делается в меню «Групповая политика» → «Конфигурация пользователя» → «Админи­стративные шаблоны» → «Система». Правда, пере­имено­вание программы, внесённой в такой список, полностью снимает блокировку, но, возможно, как раз на этом рубеже у потенциального «хакера» лопнет терпение. Либо проявите ещё большую жестокость и установите список разрешённых к запуску программ в значении параметра «Выполнять только разрешенные приложения для Windows» («Run only allowed Windows applications»).

Наконец, можно пойти и на полное удаление из ПК привода гибких дисков — в локальной сети он не очень-то и нужен. От CD-ROM отказаться, конечно, сложнее, но если пред­принять описанные выше усилия по защите пароля CMOS, то с наличием привода CD-ROM можно смириться. И ещё. Не используйте в BIOS опцию авто­мати­ческого определения жёсткого диска, поскольку взломщик может подключить в систему собственный диск со всеми необходимыми для взлома пароля CMOS программами. И обязательно отключите в CMOS Setup возможность загрузки по сети, а также USB-порт, поскольку флеш-диски для этого порта сейчас получили огромное распространение, а Windows 2000 авто­мати­чески подключает такой диск, не спрашивая разрешения у админи­стратора. Да и DOS-драйвера для USB-дисков уже появились. 

Кража SAM-файла

Итак, если благодаря ленивому админу первый бастион защиты — пароль BIOS — рухнул, и вы имеете полный доступ к компьютеру из-под альтер­нативных операционных систем, то можно, наконец, приступать к взлому локальных учётных записей Windows 2000, из которых наиболее ценными являются, конечно же, админи­страторские. Со времён Windows NT 4 каждому дошкольнику известно, что в этой ОС для получения имён пользователей и соответ­ствующих им паролей достаточно скопировать файл реестра SAM — базу данных Security Account Manager, диспетчера защиты учётных записей, в которой и хранятся пароли, извлекаемые впоследствии с помощью специальных программ. Файл SAM Windows NT (и одна из его резервных копий SAM.SAV) находится в папке %SystemRoot%\system32\config, а ещё одну его копию можно обнаружить в папке %SystemRoot%\repair (и там же попадается упакованный файл SAM._, который может быть распакован командой EXPAND SAM._ SAM). Из-под самой Windows доступ к этому файлу (а в грамотно настроенной системе — и к его резервной копии) получить невозможно, потому-то и требуется загрузка альтер­нативных ОС, которой мы так активно добивались чуть выше. Обычная DOS-дискета и программа NTFS for DOS Pro отлично справляются с такой задачей. Однако уязвимость SAM-файла Microsoft однажды попыталась устранить (в Windows NT 4 SP3) и в изучаемой нами сегодня Windows 2000, если говорить проще, файл SAM по умолчанию дополнительно шифруется с помощью специальной утилиты SYSKEY.EXE (вернее, SYSKEY дополнительно шифрует [14] хэши паролей). Поэтому, в отличие от Windows NT­4, в Win2k кража одного только файла SAM уже не даст злоумышленнику возможности вычислить локальные пароли. Но! Существует малюсенькая программа SAMInside [15], которая способна извлечь пароли из файла SAM при условии, что в её распоряжении имеется и второй по значимости файл реестра подвергшегося атаке компьютера — файл SYSTEM. Файл SAM обычно невелик и легко влезает на дискету, а вот SYSTEM может достигать нескольких мега­байт, и «утащить» его чуть сложнее, но при желании, наличии архиватора, привода флоппи-дисков и полу­дюжины дискет всё получится.

Этот способ взлома паролей очень хорош по нескольким причинам: он предельно прост; время, которое необходимо злоумышленнику для работы непосред­ственно на атакуемом ПК, довольно невелико; процедуру взлома SAM-файла можно проводить в любое время в любом месте на макси­мально мощной машине; благодаря работе из-под DOS практически никаких следов взлома на атакованном ПК не остаётся (разве что даты последнего доступа к файлам в их атрибутах). Недостаток у этой программы один — её демо-версия имеет существенные функцио­нальные ограничения, которые позволяют восстанавливать только самые простые пароли. Да ещё не хватает, пожалуй, опций настройки процесса перебора паролей, максимум что преду­смотрено — атака по словарю да выбор используемых при подборе пароля символов. Но даже при таком раскладе программа «щёлкает» пароли длиной до 14 символов, как семечки.

Хотя полное шифрование диска, безусловно, сделает невозможным копирование файлов реестра, никакой специальной защиты непосред­ственно от кражи файлов SAM и SYSTEM (так называемой атаки на SAM-файл), пожалуй, нет. Всё, что касалось защиты паролей CMOS Setup, в равной мере касается и SAM-файлов. Главная задача в обоих случаях — не допустить загрузки компьютера со сменных носителей. Также администратор обязан предотвратить несанкцио­нированный доступ ко всем резервным копиям файлов реестра из-под Windows, что легко делается установкой соответствующих разрешений для папки %SystemRoot%\repair и других папок, в которых могут оказаться эти файлы при проведении регулярного резервного копирования. О защите же самих паролей от возможности их подбора программами, аналогичными SAMInside, мы поговорим чуть ниже.

Дамп хэшей

Второй способ получения пароля админи­стратора — исполь­зование велико­лепной и очень полезной для каждого заботящегося о безопасности админа программы LC+4 [16] (старое название — L0phtCrack+) или её зарубежного аналога — LC4 [17] (старое название — L0phtCrack). Отечественная программа LC+4 гораздо пред­почти­тельнее, поскольку абсолютно бесплатна, снабжена отличной справкой на русском языке, и у неё нет проблем с локали­зованными версиями Windows. Кроме того, много­чис­ленные настройки этой программы при грамотном их исполь­зовании позволяют много­кратно ускорить процесс подбора пароля даже в сравнении со сверх­быстрым SAMInside, а потому её и рассмотрим поподробнее.

Но для начала немного теории. Windows NT/2000/XP хранят пароли в зашифрованном виде, называемом хэшами паролей (hash — смесь, мешанина). Хэши на локальной машине получить достаточно легко, но способ шифрования таков, что пароли не могут быть извлечены непосред­ственно из хэшей. Восстановление паролей заключается в вычислении хэшей по возможным паролям и сравнении вычисленных хэшей с имеющимися в действи­тельности. В Windows 2000 с активированной функцией SYSKEY реально получить хэши учётных записей двумя способами: внедрением DLL из реестра или Active Directory локального или удалённого компьютера либо пере­хватом аутентифи­кационных пакетов в сети. Второй способ в рамках этой статьи подробно рассматривать, пожалуй, не будем, поскольку нас интересует пока только локальный взлом. А первый способ называется методом pwdump2 (подробнее о нём — в readme [18] к соответ­ствующей утилите), и для его осуществления требуются полномочия админи­стратора. Что же получается — замкнутый круг? Для получения прав админи­стратора требуются права админи­стратора? Ну, во многих случаях действительно восстановлением утерянных паролей юзеров-склеротиков приходится заниматься самому админи­стратору, а потому он изначально имеет все права. Если же работать приходится из-под учётной записи обычного пользователя, то для снятия дампа паролей с помощью LC+4 методом pwdump2 потребуется пара нехитрых приёмов. 

Попробуйте загрузить ПК и не прикасаться ни к мыши, ни к клавиатуре порядка 10-15 минут. Т. е. на экране всё это время должно оставаться либо приглашение нажать клавиши Ctrl+Alt+Del, либо приглашение ввести имя пользователя и пароль. Если хватит терпения, то вы увидите, как запустится хранитель экрана — скрин­сейвер, файл %SystemRoot%\system32\scrnsave.scr. Оказывается, этот скрин­сейвер запускается в контексте системы, ещё до регистрации какого-либо пользователя (вернее, от имени пользователя Default), и, соответ­ственно, у скрин­сейвера имеются все права системы. Таким образом, достаточно просто подменить файл скрин­сейвера на любую другую программу (хотя бы на консоль CMD.EXE), и у нас будет максимум прав. Подмену скрин­сейвера сразу на программу LC+4 можно провернуть двумя способами. Например, просто пере­именовать файл LCP4.EXE в scrnsave.scr и скопировать его в папку %SystemRoot%\system32 вместе с необходимой библиотекой samdump.dll, которую копируем в подкаталог %SystemRoot%\system32\DATA\pwdump2. Не забудьте только сохранить в надёжном месте исходный scrnsave.scr, чтобы потом вернуть его на место. Теперь пере­загружаем ПК и выпиваем чашечку кофе в ожидании авто­мати­ческого запуска LC+4.

Если же этот способ по какой-то причине не сработает, или ждать 10 минут кажется недостойным рулёзного хакера, то можно скопировать LC+4 под его родным именем, а уже в реестре прописать запуск не scrnsave.scr, а LCP4.EXE. Это очень несложно сделать с помощью интересной бесплатной программы Offline NT Password & Registry Editor [19], которая является вполне пригодным консольным редактором реестра Windows 2000, работающим из-под мини-линукса, загружаемого с обычной дискеты. Более удобный редактор из комплекта ERD Commander, к сожалению, не даёт доступа ко всем кустам реестра и в данном случае нам не поможет, разве что для удобного копирования файлов. Работать с Offline NT Password & Registry Editor несложно, встроенная подробная справка вызывается стандартным символом ?; главное — вникать во все вопросы, что задаёт программа, и выписать на бумажку все консольные команды, которые понадобятся при редакти­ровании реестра из командной строки. С помощью этих команд мы должны открыть куст реестра Default, отвечающий за настройки системы в отсутствии залоги­нившегося пользователя, перейти к разделу (учтите, что при вводе имён разделов реестра важен регистр букв) \Control Panel\Desktop и изменить значение параметра "SCRNSAVE.EXE"="scrnsave.scr". Нужно вместо scrnsave.scr указать имя программы, которую мы хотим запустить с правами системы, в нашем случае — LCP4.EXE. Сам файл этой программы опять же необходимо скопировать в папку %SystemRoot%\system32, чтобы система его легко нашла, а все сопутствующие DLL-библиотеки её дистрибутива — в папку %SystemRoot%\system32\DATA. Хотя, чтобы быть совсем точным, желательно, чтобы количество символов в имени дефолтного скрин­сейвера (а в слове scrnsave их восемь) и его замены совпадало — только в этом случае гарантируется безошибочная работа оффлайнового редактора реестра. А потому заранее всё-таки пере­именуйте файл LCP4.EXE в LCP40000.EXE. И уже под таким именем копируйте его в системную папку и прописывайте в реестр. А чтобы не ждать 10-15 минут до авто­мати­ческого запуска нашего казачка, изменим в реестре ещё один параметр, как раз и определяющий задержку перед запуском хранителя экрана: 

HKEY_USERS\.DEFAULT\Control Panel\Desktop
"ScreenSaveTimeOut"="600"

Выставляем вместо «дефолтных» 600 секунд (или 900, в зависимости от версии ОС) 100 и через пару минут наблюдаем запуск LC+4. Если этого не произошло, проверьте ещё два параметра в том же разделе:

"ScreenSaveActive"="1"
"ScreenSaverIsSecure"="0"

После того как одним из выше­пере­чис­ленных способов мы добились запуска LC+4 от имени системы, в меню программы выбираем команду «Импорт» → «Импорт с локального компьютера», и — вуаля, дапм хешей паролей, пригодный для взлома, у нас готов! Сохраняем его в файл («Файл» → «Сохранить как») и копируем на дискету. После этого, чтобы не оставлять никаких следов нашего вторжения, заново загружаем ПК с дискеты Offline NT Password & Registry Editor и возвращаем всем изменённым параметрам реестра их исходные значения. Не забудьте вернуть на место настоящий scrnsave.scr, удалить с диска все файлы программы LC+4 и авто­мати­чески создающиеся файлы дампов вида pwdxxхxx.txt из папки %SystemRoot%\system32 — лишние улики в нашем чёрном деле ни к чему. Я бы даже посоветовал перед тем, как приступать к взлому, пере­вести календарь в CMOS Setup таким образом, чтобы он указывал на тот день, когда вас точно не могло быть за компьютером — в этом случае в свойствах файлов не засветится реальная дата попытки проник­новения в систему. Да и не забывайте подчищать следы своей деятельности в системном журнале событий. Впрочем, всё, что происходит при загрузке ПК с дискеты или до регистрации пользователя, никоим образом аудитом не зафиксируется.

Теперь на любом доступном ПК запускаем в LC+4 непосред­ственно сам подбор паролей по полученным хэшам и при удачном стечении обстоятельств через несколько часов имеем полный список учётных записей локального ПК вместе с их паролями. Сам процесс подбора паролей по снятому дампу вряд ли есть смысл описывать — вся методо­логия достаточно подробно разжёвана в документации к программе LC+4. С умом выбранные настройки процесса подбора, основанные на наличии минимума информации об установ­ленном пароле (какая раскладка, есть ли цифры, сколько букв) или большой словарь значительно сокращают необходимое программе время. Скажу лишь, что даже такой длинный — 14 букв — пароль, как slonhobotastiy, вычисляется часа за 3-4 на машине двух­летней давности (а вот кажущийся более сложным пароль gjkmpjdfntkm — за одну секунду, догадайтесь почему). Обратите внимание, что в зарубежных программах, выполняющих снятие дампа хэшей паролей, имеется ошибка, не позволяющая получить достоверные хэши паролей, если в операционной системе имеются учётные записи с нелатинскими буквами в именах. В программе LC+4 эта ошибка отсутствует, а потому нет смысла использовать буржуйские аналоги. На мой взгляд, единственный вариант, когда может пригодиться импортный LC4 — перехват аутентифи­кационных пакетов в сети.

Как же защититься от подбора пароля, если вы всё же не смогли предот­вратить взлом CMOS и загрузку ПК со сменного носителя? Самый надёжный способ, который сведёт на нет все усилия хакера по снятию дампа или копированию файлов реестра, — это исполь­зование очень длинного пароля. Почему-то считается, что пароль, состоящий из случайных букв и символов «взломать» сложно. Это не так. Какой бы сложный пароль вы не выбрали, если он меньше 15 букв, то вычислить его вполне реально, поскольку по умолчанию в Windows 2000 хранится два хэша одного и того же пароля — NT-хэш и LM-хэш. LM-хэш используется для совместимости с другими операционными системами — Windows 3.11, Windows 9x и OS/2, и он содержит информацию о пароле без учёта регистров букв, что серьёзно упрощает восстановление пароля! Более того, в LM-хэше независимо друг от друга шифруются первые семь букв пароля и вторые семь букв, то есть фактически нужно подобрать всего лишь два семи­буквенных пароля, в которых не различается регистр букв. А вот если вы будете устанавливать пароль длиной 15 букв или ещё больше, то лёгкий для взлома LM-хэш не будет использоваться (он будет соответствовать пустому паролю), и парольные взломщики SAMinside и LC+4, а также импортная L0phtCrack его либо вообще не смогут вычислить в силу особенностей шифрования, либо им потребуются месяцы и годы беспрерывной работы. Правда, передачу по сети LM-хэша и его сохранение в реестре можно отключить и принудительно, даже если пароль меньше 15 символов. Для этого используйте диалоговое окно «Групповая политика» — gpedit.msc — или редактор политик безопасности secpol.msc. В Windows XP эти программы, кстати говоря, позволяют регулировать гораздо больше системных параметров безопасности. Откройте раздел «Конфигурация компьютера» → «Конфигурация Windows» → «Параметры безопасности» → «Локальные политики» → «Параметры безопасности», здесь необходимо изменить значение параметра «Уровень проверки подлинности LAN Manger» («LAN Manager Authentication Level»), выбрав использование только протокола NTLMv2 [20] и «Network security: Do not store LAN Manager hash value on next password change», установив для него «Enabled». В Windows 2000 последний параметр придётся установить напрямую в реестре, редактор политик этого не позволяет. Для этого надо лишь создать такой подраздел: 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\NoLMHash

А в Windows XP через реестр LM-хэш отключается так:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
"nolmhash"=dword:00000001

После этих операций пере­загрузите ПК и непременно смените все пароли, чтобы «убить» LM-хэш. Но в любом случае главное — длина пароля!

Кроме того, полезно будет ужесточить и другие политики паролей, для этого откройте диалоговое окно «Групповая политика» → «Конфигурация компьютера» → «Конфигурация Windows» → «Параметры безопасности» → «Политики учетных записей» → «Политика паролей» и измените имеющиеся там параметры в соответствии с вашими пред­став­лениями о защите системы. К сожалению, установить мини­мально разрешённую длину пароля более 14 символов с помощью редактора политик Windows 2000 невозможно, а ведь макси­мальная длина пароля в этих ОС — 128 символов!

Конечно, имеется масса рекомендаций по придумыванию наиболее устойчивого (в том числе к подсматриванию через плечо) и при этом легко запоминаемого пароля: одно­временное использование букв разного регистра, цифр и символов (ВасяСиДоРоФФ140$$); применение несуществующих или составных слов (ГлавСнабГанджобас); записывание русских слов в английской раскладке (:ehyfk Fguhtql); применение специальных символов типа вертикальной черты, вводимой клавишами Ctrl+BkSpace. Пробелы и прочие символы типа тех, что можно задать только при нажатии клавиши Alt и вводе цифрового кода, ещё больше осложняют вычисление пароля. Например, для ввода символа «возврат каретки», который не воспринимает программа L0phtCrack, нажмите клавиши Alt+0+1+3 на цифровой панели клавиатуры, а для ввода символа неразрывного пробела — Alt+0+1+6+0. Но, опять повторю, главное условие — длина должна быть более 14 букв! Чем длиннее пароль, тем он надёжнее. 

Подбор пароля по таблице хэшей

В Windows 2000 при генерации хэша пароля, к сожалению, не используется случайная составляющая, уникальная для каждого конкретного компьютера (что-то типа механизма активации Windows XP). Т. е. если на самых разных машинах, в разных версиях Windows NT задать один и тот же пароль, то и соответ­ствующие хэши на этих машинах будут полностью совпадать, что очень сильно облегчает задачу взлома. Возникает вопрос: зачем же проделывать двойную работу, каждый раз вычисляя одни и те же хэши при подборе пароля? Не проще ли было бы раз и навсегда составить организованную таблицу хэшей/соответствующих им паролей и затем просто брать искомый пароль из этой таблицы? Действительно, поиск в уже готовой базе данных, по идее, должен быть гораздо быстрее, чем поочерёдное вычисление каждого её компонента. Как-то до меня уже доходили слухи о существовании огромной супер-хакерской базы хэшей, и вот совсем недавно в Интернете открылся сайт Advanced Instant NT Password Cracker [21], на котором всем желающим предоставляют бесплатный доступ к такой базе. Скорость работы этого сервиса онлайнового взлома паролей Windows NT просто феноменальная — на взлом буквенно-цифрового пароля обычно требуется не более нескольких секунд (в среднем — 5)! Сама база на сегодняшний день имеет объём 1,4 Gb, и её обще­доступные демонст­рационные возможности пока ограничены взломом паролей, состоящих только из латинских букв и цифр. Но это только начало! Создатели сайта, студенты из Швейцарии, разработали уникальный алгоритм работы поискового механизма, уже имеют в загашнике ещё большую базу для паролей, состоящих из букв, цифр и 16 специальных символов, и, надо думать, на этом они не остановятся.

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

Захват привилегий

Ну что же, если ваш админи­стратор не лыком шит, и после снятия дампа программа LC+4 показывает наличие пароля более 14 букв, то нет смысла пытаться его вычислять. Гораздо проще назначить своей собственной учётной записи максимум прав или создать нового пользователя с правами админи­стратора. Это делается гораздо легче и быстрее, чем вычисление пароля админи­стратора. Если вы внимательно читали описание трюка с дефолтным скрин­сейвером, то наверняка догадались, что исполь­зование этой уязвимости уже позволяет захватывать права системы. Достаточно с помощью Offline NT Password & Registry Editor прописать в реестре запуск CMD.EXE вместо scrnsave.scr (или просто пере­именовать CMD.EXE в scrnsave.scr), как вы получите командную строку с максимумом прав. Но этот способ не очень удобен и в зависимости от версии Windows NT далеко не всегда срабатывает. Есть способ гораздо лучше! А именно — программа DebPloit [22], которую без особого труда можно найти в Интернете. Программа эта относится к классу эксплоитов, то есть использует одну из известных уязвимостей Windows 2000, и после её запуска в обычном сеансе пользователя с ограниченными правами вы опять-таки получаете командную строку с правами админи­стратора. Из этой консоли можно вызвать любую другую программу, например диалоговое окно «Управление компьютером» и в меню «Локальные пользователи и группы» добавить себя в группу админи­страторов, создать нового пользователя или сменить пароль админи­стратора. После того, как вы используете права админи­стратора по полной программе, не забудьте всё вернуть на место, чтобы никто ничего не заметил. Учтите только, что эксплоит DebPloit детектируют многие антивирусы (хотя никаких деструктивных функций он сам по себе не выполняет), что вполне логично. Поэтому, если на вашей системе установлен антивирус, и вы не хотите, чтобы админ получил от него оповещение о попытке запуска DebPloit, то перед исполь­зованием эксплоита антивирус придётся отключать. А для этого опять нужно загрузить ERD Commander или Offline NT Password & Registry Editor и напрямую в реестре установить параметры, выключающие антивирус. Какие это параметры для каждого конкретного антивируса, вам придётся выяснить заранее, установив на своём собственном ПК с такой же ОС точно такой же антивирус и, отслеживая с помощью деинсталлятора Ashampoo Uninstaller [23] все изменения в реестре, определить, какой параметр меняется при включении-выключении антивируса. Очень распро­странённый в отечественных локальных сетях Norton Antivirus версии 7.61 Corporate, например, отключается совершенно элементарно:

HKEY_LOCAL_MACHINE\SOFTWARE\INTEL\LANDesk\VirusProtect6\CurrentVersion\Storages\Filesystem\RealTimeScan
"OnOff"=dword:00000000

Более свежие версии NAV 2002 и 2003 отключаются немного по-другому, но ещё проще:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\navapsvc
"Start"=dword:00000003

Уязвимость, которой вовсю пользуется DebPloit, присутствует в Windows 2000 вплоть до SP2. В третьем сервис-паке (а точнее — в одном из хотфиксов, вышедшем после SP2) она была исправлена. Но и это нас не остановит! Оказывается, в случае с DebPloit уязвим файл SMSS.EXE, а потому нам ничего не стоит просто взять более старую версию этого файла из дистрибутива Windows 2000 (или даже из SP2) и скопировать его в %SystemRoot%\system32 с помощью NTFS for DOS Pro, предварительно сохранив исходный файл. После того, как необходимость в DebPloit отпадёт, опять же верните исходный файл на место, и заметите следы в реестре.

Ещё один аналогичный эксплоит — GetAdm2 [24], этот ваааще — работает даже в Windows XP! Принцип всё тот же: запускаете сразу после пере­загрузки ПК эксплоит, а он уже загружает консоль с правами системы. Вы пере­тас­киваете в её окно значок C:\WinNT\System32\lusrmgr.msc, жмёте Enter и получаете диалог «Local Users and Groups», в котором вносите себя в группу «Administrators». И всё! Взлом Windows фактически занял две минуты… Если только антивирус не заверещал… В Windows XP SP1 уязвимость, которой пользуется GetAdm2, «пофиксена», но при желании вы можете попробовать выяснить, обновление какого файла прикрыло «дырку» GetAdm. Думаю, что возврат старой версии этого файла, как и в случае с DebPloit, вернёт всё на свои места.

Поскольку DebPloit и GetAdm2 — далеко не первые эксплоиты для Windows NT, боюсь, они далеко и не последние. И ничего не попишешь… Операционных систем без ошибок не бывает. В борьбе с такими программами поможет только хороший, ежедневно обновляемый антивирус да свое­временная установка обновлений операционной системы и прикладных программ. Не помешает и регулярное посещение специали­зированных веб-ресурсов, посвящённых вновь открытым уязвимостям Windows и даже чисто хакерских сайтов. 

Сброс пароля

В принципе, существуют и ещё более простые способы получения прав админи­стратора, но они предназначены, скорее, для самих админи­страторов, забывших или потерявших установленные пароли. Дело в том, что почти в любой системе можно без особого труда просто сбросить, отменить или изменить любой пароль. Для этого удобнее всего использовать программу ERD Commander или тот же Offline NT Password & Registry Editor. Умеют сбрасывать пароли локальных учётных записей также такие универ­сальные программы, как O&O BlueCon XXL [25], в составе которого, между прочим, имеется ещё и неплохой консольный редактор реестра и похожего назначения утилита CIA Commander [26]. Хотя имеются и несколько устаревшие аналоги, больше подходящие для Windows NT 4: NTAccess [27], NTFS driver & Change a NT password [28]. Но опять-таки надо учитывать, что практически все эти программы очень не любят, когда имя учётной записи записано кириллицей («Админи­стратор»), и в этих случаях могут возникнуть серьёзные проблемы с последующей загрузкой ПК. Поэтому прежде, чем пойти на такой шаг, проведите эксперимент с вашей версией подобной программы на тестовом ПК. Впрочем, изменить пароль с минимумом усилий помогут и описанные выше эксплоиты DebPloit и GetAdm2. 

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

А вот ещё один интересный способ сбросить пароль админи­стратора заключается в замене системной библиотеки MSV1_0.DLL на её «пропатченную» версию, в которой отключена проверка пароля при авторизации пользователя в системе. Фактически, необходимо таким образом исправить код этой библиотеки, чтобы изменить порядка десятка условных переходов на безусловные — как это делается можно при желании найти в Интернете. Правда, для пользователя, плохо знакомого с ассемблером, это вряд ли будет лёгкой задачей. Возможно, было бы проще предоставить «пропатчивание» этого файла вирусу Bolzano версий 3628, 3904, 5396. Этот вирус, помимо всего прочего, патчит две процедуры в системных файлах WinNT: в NTOSKRNL разрешает запись во все файлы системы вне зависимости от прав доступа к файлам, а в MSV1_0.DLL отключает проверку паролей, в результате чего любая введённая строка воспринимается системой как пароль, необходимый для доступа к системным ресурсам. Однако найти этот вирус сегодня вряд ли реально, и неизвестно, сработает ли он с обновлёнными версиями файла MSV1_0.DLL.

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

Кейлоггеры

Отдельно стоит упомянуть, пожалуй, такой класс жизненно необходимых программ, как клавиатурные шпионы, поскольку в нашем деле они могут оказать неоценимую помощь. Дело в том, что это, пожалуй, единственный софтовый метод (Snooping), который позволяет на практике определить пароль админи­стратора, превышающий 14 знаков. И главное в работе с клавиатурным шпионом — правильный выбор этого самого шпиона. Конечно, для установки качественного кейлоггера наверняка потребуются права админи­стратора, но, как мы видим, получить макси­мальные пользова­тельские привилегии без знания пароля админи­стратора — не такая уж и сложная задача. Куда важнее, чтобы кейлоггер хорошо маскировался и обладал способностью фиксировать нажатия клавиш в момент ввода пароля при загрузке системы, а это не самая тривиальная задача. И такие шпионы есть! Один из них — Invisible KeyLogger Stealth [29]. Множество настроек, мини­мальный размер, возможность пере­имено­вания файла программы и её библиотек, шифрование лог-файла, словом, в арсенале имеется всё для успешного и безнаказанного перехвата админского пароля. Если же вам по каким-то причинам эта программа не подойдёт, то сравните возможности конкурентов на сайте www.keylogger.org [30], где приведены отличные материалы по самым лучшим кейлоггерам. Так, записать аутентифи­кационный пароль смогут ещё самый серьёзный из известных мне клавиатурных шпионов PC Activity Monitor Net [31] и мало в чём ему уступающий ProBot SE [32]. Но, к сожалению, качественные кейлоггеры платные и в демо-режиме, как правило, отказываются маскироваться в системе. 

Если вы решите воспользоваться кейлоггером, то не забывайте, что чем короче период, в течение которого шпион присутствует на ПК, тем меньше вероятность его обнаружения. Установите кейлоггер, позовите админа поправить какую-нибудь проблему или установить новый софт и сразу же после его ухода удаляйте! Пароль пере­хвачен — задача выполнена. И обязательно заранее проверьте, не фиксируется ли выбранный кейлоггер установленным на препарируемый ПК антивирусом — такое вполне возможно. Надо сказать, что и некоторые троянские вирусы или программы удалённого управления способны записывать все действия пользователя, но это, скорее, побочный продукт их применения.

Интересно, что хорошую программу для защиты от кейлоггеров Anti-keylogger [33] производит сам же разработчик одного из лучших клавиатурных шпионов — PC Activity Monitor. Программа эта способна обнаруживать не только заложенных в систему явных шпионов, но и вообще все программы, пытающиеся пере­хватывать нажатия клавиш, так что скрыться от неё сложно. 

Снифферы

Про программы, осущест­вляющие перехват аутентифи­кационных пакетов в сети я, пожалуй, только упомяну. В ряде случаев пароль админи­стратора или пароли других пользователей можно получить и не с локальной машины, а производя «прослушивание» всего сетевого трафика. Эта возможность, в частности, реализована в уже упомянутой программе LC4 (L0phtCrack, www.atstake.com/research/lc/ [17]). Её отечественному аналогу это пока не под силу, но при желании можно найти и другие снифферы.

Как меру противо­действия снифферам могу посоветовать использование в сети свитчей, которые, в отличие от хабов, не транслируют весь трафик на каждый компьютер. Однако и в этом случае злоумышленник сможет перехватить ваш пароль в тот момент, когда вы попытаетесь, например, скопировать какой-то файл с его собственного компьютера. И тут посоветовать, пожалуй, можно только одно — используйте шифрование трафика и как можно более длинные и сложные пароли, чтобы даже пере­хвативший их хакер не смог их расшифровать за разумный период времени.

Взлом вторичных паролей

Различных привлека­тельных для потенциального хакера паролей в Windows может быть очень много, дело тут не ограничивается только лишь паролями учётных записей. Нередко пользователю или админи­стратору бывает необходимо «вспомнить» пароль, установленный в настройках удалённого доступа, т. е. имя пользователя и пароль для выхода в Интернет через модем. После получения админи­стра­торского пароля это, я думаю, вторая по важности задача. И тут, к сожалению ответственных за безопасность работников, дела с защитой совсем плохи. Даже в Windows XP, в которой Microsoft пошла на беспреце­дентный шаг по защите паролей Dial-Up — заменила звёздочки на кружочки в диалоговых окнах, пароли удалённого доступа в ней вскрываются за доли секунды. И делает это программа Dialupass [34]. Правда, имеется незначительное ограничение: для работы программы требуется войти в систему с правами админи­стратора. Другая программа, в которой заявлена возможность восстановления скрывающихся за кружочками паролей различных программ под Windows XP — iOpus Password Recovery XP [35]. Она без проблем покажет вам пароли, например, Outlook Express или CuteFTP.

Да и для взлома других паролей, присутствующих в прикладных программах, уже давно созданы специальные утилиты — и для архивов любых типов, и для самых популярных звонилок, и для FTP-клиентов, и для электронных книг, и для документов MS Office. Например, получившая скандальную известность российская фирма Elcomsoft [36] предоставит в ваше распоряжение целый букет таких взломщиков, вплоть до уникальной программы, вскрывающей файлы, зашифрованные посредством хвалёной шифрующей файловой системы Windows — EFS! Программа Advanced EFS Data Recovery работает во всех версиях Windows, кроме (пока) Windows XP SP1 и Windows Server 2003. А вот ещё «небольшой» список программ, которые сегодня «ломает» Elcomsoft:

  • архивы ZIP/RAR/ACE/ARJ;
  • Microsoft Office (Word, Excel, Access, Outlook и т. д.);
  • Outlook Express;
  • Internet Explorer;
  • Lotus SmartSuite (WordPro, 1-2-3, Approach, Organizer);
  • Corel WordPerfect Office (WordPerfect, Paradox, QuattroPro);
  • Adobe Acrobat PDF;
  • ACT!;
  • Intuit Quicken и QuickBooks;
  • а также целая куча различных Интернет-пейджеров и e-mail-клиентов.

Впрочем, и конкурентов у нашей компании на этом поприще хватает. Огромное количество самых разных «крякеров» дожидается вашего внимания на сайте www.password-crackers.com [37]. Именно здесь вы найдёте, например, утилиту для взлома паролей известной шифровальной программы BestCrypt. Быстрому взлому паролей обычно способствует хороший словарь — некоторое количество таких словарей, программ и сопутствующих справочных материалов вы можете найти на ещё на одном специали­зированном отечественном сайте www.passwords.ru [38]. 

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

Общие рекомендации

Поскольку защита приватной информации для обычного пользователя всё же гораздо важнее, нежели знание самых изощрённых приёмов взлома, я попробую вкратце дать ещё кое-какие достаточно известные советы по повышению общего уровня защиты Windows 2000. Для воплощения в жизнь многих из этих рекомендаций требуется просто открыть редактор политик групп gpedit.msc или редактор политик безопасности secpol.msc и изменить соответ­ствующий параметр. Редакторы системных политик из состава Windows или популярные программы-«твикеры» позволяют изменить множество настроек Windows, влияющих на безопасность системы, и грамотный пользователь обязан изучить их вдоль и поперёк. Поэтому полный путь к каждому из упоминаемых мной параметров я, пожалуй, приводить не буду — найти его само­стоя­тельно будет полезно. Главное — помните, что макси­мальный эффект даст только целый комплекс оборони­тельных меро­приятий, поскольку достаточно одного прокола, чтобы cвести все усилия на нет.

Итак, нередко рекомендуется пере­име­новать имена учётных записей админи­стратора и гостя, и хотя в случае снятия хэша паролей или кражи SAM-файла это бессмысленно, тем не менее, в целом это повышает уровень защиты системы, так как затрудняет взлом с удалённого компьютера. Для пере­име­нования этих учётных записей запустите диалоговое окно secpol.msc — «Локальные параметры безопасности», откройте «Локальные политики» → «Параметры безопасности» («Local Policies» → «Security Options») и восполь­зуйтесь пунктами «Пере­име­нование учетной записи админи­стратора» и «Пере­име­нование учетной записи гостя» («Accounts: Rename administrator account» и «Accounts: Rename guest account»). Также для этих учётных записей измените соответ­ствующим образом параметры «Описание» и «Полное имя» («Description» и «Full name») в диалоговом окне «Управление компьютером» → «Локальные пользователи и группы». А ещё можно создать свое­образную ловушку для взломщика — ложную учётную запись админи­стратора с минимумом прав, после чего активи­зировать аудит регистрации пользователей и периодически отслеживать зондирование потенциальными хакерами этой учётной записи в журнале безопасности системы. Вообще, активнее используйте аудит, во многих случаях это способно вовремя предупредить взлом системы. В ряде ситуаций нелишним будет включить создание полного протокола работы модема (\SYSTEM32\RAS\DEVICE.LOG): 

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters
"Logging"=dword:00000001

Также полезным будет по возможности отключить учётную запись гостя, используя только явное прописывание пользователей в системе, чтобы исключить безответ­ственную анонимность. Безответ­ственность порождает и ситуация, когда все админи­страторы сети используют только одну на всех учётную запись админи­стратора. Каждый админ должен иметь свою собственную учётную запись. Учётные записи с правами админи­стратора следует использовать как можно реже, осуществляя рутинную работу из-под аккаунта пользователя с ограниченными правами и запуская приложения, непременно требующие прав админи­стратора в режиме «Запуск от имени…» («Run as…»). Обязательно свое­временно удаляйте учётные записи уволившихся сотрудников. Регулярно меняйте пароли. Для разных ресурсов или программ должны быть разные пароли. Пароль админи­стратора на сервере или на ПК с секретной информацией, разумеется, должен отличаться от пароля на машинах рядовых сотрудников. Ни в коем случае не используйте в качестве пароля слова, которые могут оказаться в словаре. Не используйте персональную информацию (дата рождения, имя собаки) в качестве пароля. Не записывайте пароль на бумагу и никогда не вводите свой пароль на чужом компьютере. Включите режим блокирования учётной записи админи­стратора после нескольких попыток ввода неправильного пароля. То же самое касается и обычных пользователей (в Windows XP параметры «Account lockout duration» и «Account lockout threshold»).

Кроме того, в редакторе политик безопасности secpol.msc, в диалоге «Локальные политики» → «Параметры безопасности» («Local Policies» → «Security Options») тщательно просмотрите все имеющиеся параметры и установите макси­мально возможные в вашей сети ограничения, поскольку по умолчанию система не настроена даже на разумный уровень защиты. Например, желательно выставить в положение «Disabled» параметр «Консоль восстановления: разрешить автоматический вход администратора» («Recovery console: Allow automatic administrative logon»), чтобы злоумышленник не смог воспользоваться встроенным механизмом восстановления Windows. Снизить до 2 или даже до нуля значение параметра «Количество предыдущих подключений к кэшу…» («Interactive logon: Number of previous logons to cache…»), тем самым отключится кэширование хэшей 10 последних пользователей, входивших в систему интерактивно, которое производится для того, чтобы пользователь смог залогиниться, даже если ПК отключён от сети, или недоступен контроллер домена. В положение «Enabled» желательно установить «Не отображать последнего имени пользователя в диалоге входа» («Interactive logon: Do not display last user name»), чтобы лишний раз не показывать настоящие имя учётной записи админи­стратора и так далее. Короче говоря, если решили заняться защитой, не бойтесь прослыть параноиком.

Установите права доступа к папкам таким образом, чтобы обычные пользователи не могли изменять содержимое директорий WinNT и Program Files. В реестре, соответ­ственно, установите запрет на изменение разделов HKLM и Default. Запретите удалённый доступ к реестру. Включите режим очистки файла подкачки при выключении компьютера, а также напишите командный файл, очищающий папки временных файлов и удаляющий файлы user.dmp и memory.dmp (для этих файлов разрешите доступ только админи­страторам и системе). Ещё лучше — полностью отключить создание дампа памяти при сбоях. Отключите дебаггер Dr. Watson.

Ни в коём случае не используйте в локальной сети, о безопасности которой нужно заботиться, машины с Windows 9x, так как их защита… её почти нет. К тому же, наличие клиентов Windows 9x приводит к появлению тех самых легко расшифро­вываемых LM-хэшей. Запретите админи­стратору доступ из сети, отключите скрытые системные ресурсы общего доступа, такие как C$ (диск C:), D$ (диск D:, и так далее), Admin$ (папка WinNT), к которым имеют доступ члены группы админи­страторов. Для этого в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters установите равным 0 параметр AutoShareServer (типа REG_DWORD) для сервера или параметр AutoShareWks для рабочей станции. Эту операцию можно осуществить, в частности, и с помощью известной программы POLEDIT.EXE — редактора системных политик (System Policy Editor) — за управление скрытыми ресурсами общего доступа отвечает параметр «Windows NT» → «Network» → «Sharing» → «Create Hidden Drive Shares».

Используйте файерволл, по возможности вообще отключите службу Server и другие неиспользуемые сервисы. Кроме того, компьютер можно сделать «невидимым» в сети:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters
"Hidden"=dword:00000001

Запретить возможность использования т. н. Null — Session:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa
"RestrictAnonymous"=dword:00000001

Запретить [39] запуск «дефолтного» скрин­сейвера, появляющегося, если не производить регистрацию пользователя в течение 10-15 минут:

HKEY_USERS\.DEFAULT\Control Panel\Desktop
"ScreenSaveActive"="0"
"ScreenSaveTimeOut"="0"

Запретите авто­запуск компакт-дисков. Для BAT, VBS и REG-файлов установите действие по умолчанию «Редактировать», чтобы исключить авто­запуск этих файлов из папки «Авто­загрузка» или разделов Run реестра. Не забывайте блокировать или выключать ПК, когда покидаете своё рабочее место даже на несколько минут. Даже такой простой вещью, как пароль скрин­сейвера, пренебрегать не стоит. В особо ответственных случаях прибегайте к помощи «железной» защиты: SmartCard, видео­наблюдение, блокировка входа в помещение, аппартные шифраторы, электронные замки и т. п. Носители с резервными копиями системы или важных данных храните в надёжном сейфе, желательно в зашифрованном виде.

Последнее слово

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

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

На мой взгляд, в сегодняшних условиях макси­мальную защиту приватных файлов и ценной информации можно получить только с помощью серьёзного шифрования (специалисты RSA Laboratories рекомендуют использовать ключи шифрования длиной не менее 768 бит) посредством аппаратных кодеров или проверенных программ, пред­почти­тельно с открытым исходным кодом. Причём наилучший результат будет при шифровании всего системного диска, а не отдельных файлов, т. к. это практически исключит возможность какого-либо взлома операционной системы — взламывать будет нужно не ОС, а шифратор. «Виндовая» шифрованная файловая система EFS для этого не годится, так как с её помощью нельзя «закриптовать» системные файлы — Windows после этого просто не загрузилась бы. К тому же уже появились программы, взламывающие EFS. Даже загрузка альтер­нативной копии Windows в ряде случаев может позволить злоумышленнику восстановить файлы, зашифрованные EFS. Возможно, неплохим выбором для рядового пользователя или админа средне­статис­тической локалки оказалась бы программа DriveCrypt Plus Pack [40]), поскольку она с минимумом затрат позволяет полностью зашифровать системный диск вместе со всей операционной системой и её загрузочными файлами, а при шифровании всего диска автоматически устраняются ещё и такие прорехи в безопасности, как файл подкачки и временные файлы, в которых может оказаться конфиден­циальная информация. Кстати говоря, DriveCrypt Plus Pack имеет встроенную защиту против подбора пароля, клавиатурных шпионов и троянских вирусов. Так что шифруйте и ещё раз шифруйте! Правда, недобрые слухи ходят даже вокруг сертификации крипто­систем в специальных органах, якобы это делается лишь для того, чтобы встроить в программы «чёрные ходы». В свете последних событий в мире в это верится…

Дополнительные ссылки




Темы