Note:
1) Run as local system user
2) Parameter must be given as integer at CerFlag label
Example: 1 -> install certificate, 0 -> uninstall certificate
import os
import ssl
from subprocess import Popen, PIPE
import ctypes
import urllib2
CretFlag = 1
CretFlag = itsm.getParameter('CerFlag') ## Parameter must be give as integer at CerFlag label ## 1 -> install certificate, 0 -> uninstall certificate
class disable_file_system_redirection:
_disable = ctypes.windll.kernel32.Wow64DisableWow64FsRedirection
_revert = ctypes.windll.kernel32.Wow64RevertWow64FsRedirection
def __enter__(self):
self.old_value = ctypes.c_long()
self.success = self._disable(ctypes.byref(self.old_value))
def __exit__(self, type, value, traceback):
if self.success:
self._revert(self.old_value)
def Download(src_path, URL, fp):
request = urllib2.Request(URL, headers={'User-Agent': "Magic Browser"})
try:
gcontext = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
parsed = urllib2.urlopen(request, context=gcontext)
except:
parsed = urllib2.urlopen(request)
if not os.path.exists(src_path):
os.makedirs(src_path)
with open(fp, 'wb') as f:
while True:
chunk = parsed.read(100 * 1000 * 1000)
if chunk:
f.write(chunk)
else:
break
return fp
def InstallCert():
URL = 'https://script-downloads.comodo.com/Certificate/WebFilter.crt'
Folder = os.environ['programdata'] + r"\extraction_file"
if not os.path.exists(Folder):
os.mkdir(Folder)
fileName = os.path.basename(URL)
fp = os.path.join(Folder, fileName)
Download(Folder, URL, fp)
if os.path.exists(fp):
command = r'certutil -addstore -f root ' + fp
with disable_file_system_redirection():
process = Popen(command, shell=True, stdout=PIPE, stderr=PIPE)
result, err = process.communicate()
if err:
print err
else:
print result
def UnInstallCert():
cmd = r'Get-ChildItem Cert:\LocalMachine\Root\6E9B9304C504AA77130A4A01367EB8F376B1E82F | Remove-Item'
with disable_file_system_redirection():
obj = Popen('powershell "' + cmd + '"', shell=True, stdout=PIPE, stderr=PIPE)
out, err = obj.communicate()
return err
if CretFlag == 1:
InstallCert()
elif CretFlag == 0:
res = UnInstallCert()
if res == "":
print "Flash Start certificate removed"
else:
print res
else:
print "Invalid parameter"
Comments