feat(mwg): Add new file mwg.py
Updating lists in MWG via this script
This commit is contained in:
parent
d0bd8bf39b
commit
974a691649
1 changed files with 92 additions and 0 deletions
92
mwg/mwg.py
Normal file
92
mwg/mwg.py
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# 20210907 petbau / https://github.com/mohlcyber/McAfee-Web-Gateway-List-Update
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import requests
|
||||||
|
import json
|
||||||
|
import xml.etree.ElementTree as xml
|
||||||
|
|
||||||
|
MWG_URL = 'http://1.1.1.1' #url of the web gateway
|
||||||
|
MWG_PORT = '4711' #port of the web gateway
|
||||||
|
MWG_USER = 'admin' #username
|
||||||
|
MWG_PWD = 'password' #password
|
||||||
|
VERIFY = False #https verification
|
||||||
|
|
||||||
|
def login(headers):
|
||||||
|
auth = {'userName': MWG_USER,
|
||||||
|
'pass': MWG_PWD}
|
||||||
|
|
||||||
|
res = requests.post(MWG_URL + ':' + MWG_PORT + '/Konfigurator/REST/login', headers=headers, params=auth, verify=VERIFY)
|
||||||
|
|
||||||
|
if res.status_code == 200:
|
||||||
|
print('Successfull logged in')
|
||||||
|
else:
|
||||||
|
print('Something went wrong')
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
return res.cookies['JSESSIONID']
|
||||||
|
|
||||||
|
def get_list_id(headers, cookies, list):
|
||||||
|
params = {'name': list}
|
||||||
|
res = requests.get(MWG_URL + ':' + MWG_PORT + '/Konfigurator/REST/list', headers=headers, cookies=cookies, params=params, verify=VERIFY)
|
||||||
|
res_parse = xml.fromstring(res.content).find('entry/id')
|
||||||
|
|
||||||
|
if res.status_code == 200:
|
||||||
|
print('The ID for the list {0} is: {1}'.format(list, res_parse.text))
|
||||||
|
else:
|
||||||
|
print('Something went wrong')
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
return res_parse.text
|
||||||
|
|
||||||
|
def insert_list(headers, cookies, list, list_id, value):
|
||||||
|
data = '''
|
||||||
|
<entry xmlns="http://www.w3org/2011/Atom">
|
||||||
|
<content type="application/xml">
|
||||||
|
<listEntry>
|
||||||
|
<entry>{}</entry>
|
||||||
|
<description></description>
|
||||||
|
</listEntry>
|
||||||
|
</content>
|
||||||
|
</entry>
|
||||||
|
'''
|
||||||
|
data = data.format(value)
|
||||||
|
|
||||||
|
res = requests.post(MWG_URL + ':' + MWG_PORT + '/Konfigurator/REST/list/' + list_id + '/entry/0/insert', \
|
||||||
|
headers=headers, cookies=cookies, data=data, verify=VERIFY)
|
||||||
|
|
||||||
|
if res.status_code == 200:
|
||||||
|
print('Successfull added the IP/Domain {0} to the list {1}'.format(value, list))
|
||||||
|
else:
|
||||||
|
print(res.content, 'Something Went Wrong')
|
||||||
|
return res
|
||||||
|
|
||||||
|
def commit(headers, cookies):
|
||||||
|
res = requests.post(MWG_URL + ':' + MWG_PORT + '/Konfigurator/REST/commit', headers=headers, cookies=cookies, verify=VERIFY)
|
||||||
|
return res.content
|
||||||
|
|
||||||
|
def logout(headers, cookies):
|
||||||
|
res = requests.post(MWG_URL + ':' + MWG_PORT + '/Konfigurator/REST/logout', headers=headers, cookies=cookies, verify=VERIFY)
|
||||||
|
|
||||||
|
if res.status_code == 200:
|
||||||
|
print('Successfull Logged Out')
|
||||||
|
else:
|
||||||
|
print('Something Went Wrong')
|
||||||
|
return res
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
|
||||||
|
list = 'Global Block: Sites' #list to edit
|
||||||
|
value = sys.argv[1]
|
||||||
|
|
||||||
|
headers = {'Content-Type': 'application/xml'}
|
||||||
|
|
||||||
|
cookie = login(headers)
|
||||||
|
cookies = {'JSESSIONID': cookie}
|
||||||
|
|
||||||
|
list_id = get_list_id(headers, cookies, list)
|
||||||
|
|
||||||
|
insert = insert_list(headers, cookies, list, list_id, value)
|
||||||
|
commit = commit(headers, cookies)
|
||||||
|
|
||||||
|
logout = logout(headers, cookies)
|
Loading…
Add table
Add a link
Reference in a new issue