मुझे पता है कि यह वर्षों से है, लेकिन इस चुनौती में भाग गया और इस पोस्ट (दूसरों के बीच) में आया ताकि समाधान को साझा करने जा सके यदि इससे आगे बढ़ने में मदद मिलती है। इसका उपयोग डब्लूएमआई पर किसी भी फाइल को स्थानांतरित करने के लिए किया जा सकता है।
समाधान:
1: कुछ WMI पर एक फाइल करने के लिए इको Base64 और certutil साथ डिकोड
ConnectionOptions co = new ConnectionOptions();
// isLocal is a variable indicating whether machine name/IP is local
if (!isLocal) {
co.Username = "domainOrMachine\accountName";
co.Password = "password for account";
co.EnablePrivileges = true;
co.Impersonation = ImpersonationLevel.Impersonate;
}
//ip is a vaiable holding the target endpoint
ManagementScope s = new ManagementScope(@"\\" + ip + @"\root\cimv2", co);
s.open();
ObjectGetOptions ogo = new ObjectGetOptions();
ManagementClass prog = new ManagementClass(s, new
ManagementPath("Win32_Process"), ogo);
ManagementBaseObject mbo = prog.GetMethodParameters("Create");
mbo["CommandLine"] = @"cmd /c ""echo " + base64String + @" > c:\windows\temp\b64_exec.txt && certutil -decode c:\windows\temp\b64_exec.txt c:\windows\temp\b64_exec.exe && c:\windows\temp\b64_exec.exe""";
prog.InvokeMethod("Create", mbo, null);
अब, देखते हैं: Base64
byte[] bytes = File.ReadAllBytes(pathToExe);
String file = Convert.ToBase64String(bytes);
2 करने के लिए EXE कन्वर्ट गेटचा को हाइलाइट करने की आवश्यकता है
- पूरे आदेश पास की लंबाई 8191 वर्णों से अधिक नहीं हो सकती है, कमांड की अधिकतम लंबाई
- आप बेस 64 फ़ाइल को तोड़ सकते हैं और इसे कई हिस्सों में भेज सकते हैं - बस याद रखें कि> एक नई फ़ाइल में पाइप या किसी मौजूदा फ़ाइल को ओवरराइट करता है और >> किसी मौजूदा फ़ाइल को जोड़ता या जोड़ता है।
- आप बेस 64 फ़ाइल को साफ करने के लिए एक डेल कमांड जारी करना भी चाहेंगे - उपलब्ध कमरे के आधार पर, आपको इसे आमंत्रित करने के लिए दूसरा डब्लूएमआई कॉल करना पड़ सकता है।
मेरे मामले में, मैं एक समय में एक पूर्ण 2 एमबी फ़ाइल 7000 वर्ण नहीं भेजना चाहता था, इसलिए मैंने 6KB से कम संकलित एक सरल .net डाउनलोडर बनाया और इसे सभी को एक ही कथन में मिला (उपर्युक्त के अनुसार।) यह मेरे निष्पादन योग्य डाउनलोड करता है और जब पूरा होता है (जब मैं चाहता हूं कि फ़ाइल मुझे डब्लूएमआई पर पूछे, तो मैं इसे डब्लूएमआई पर हटा दूंगा।
स्रोत
2017-10-24 12:34:06
आपके पास किस प्रकार की पहुंच है? क्या आप लक्ष्य मशीन और स्थानीय मशीन पर कुछ स्थापित कर सकते हैं? – Rudu
@ रुडी: हाँ मेरे पास लैन पर सभी मशीनों पर व्यवस्थापक अधिकार हैं। –