Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- from __future__ import print_function
- from circuits import Component, Debugger
- from circuits.core.handlers import handler
- from resilient_circuits.actions_component import ResilientComponent, ActionMessage
- from pprint import pprint
- import os
- import re
- import json
- import lxml.etree
- import time
- import logging
- import random
- import requests
- import datetime
- from requests.auth import HTTPBasicAuth
- import co3 as resilient
- from json import JSONDecoder, JSONEncoder
- LOG = logging.getLogger(__name__)
- class paloaltoComponent(ResilientComponent):
- def __init__(self, opts):
- super(paloaltoComponent,self).__init__(opts)
- self.options = opts.get('paloalto', {})
- LOG.debug(self.options)
- self.channel = "actions." + self.options.get("queue","paloalto")
- @handler()
- def _paloalto(self,event, *args, **kwargs):
- if not isinstance(event, ActionMessage):
- return
- else:
- print('BBBBBBBBBBBBBBBBBB')
- artifact = event.message["artifact"]
- print('3')
- inc_id = artifact["inc_id"]
- print('4')
- art_id = artifact["id"]
- print('5')
- art_val = artifact["value"]
- print('6')
- URL="https://172.16.60.14"
- print('7')
- session = requests.session()
- print('8')
- res = session.post(URL + '/api/?type=keygen&user=Resilient&password=Passw0rd!!', verify=False,timeout=60)
- print('9')
- print(res.text)
- temp=res.text
- root=lxml.etree.fromstring(temp)
- key = root.find('result/key')
- print(key.text)
- xpath_value='/config/devices/entry[@name=\'localhost.localdomain\']/vsys/entry[@name=\'vsys1\']/address/entry[@name=\''+str(art_val)+'\']'
- xpath_value='/config/devices/entry/vsys/entry[@name=\'vsys1\']/address/entry[@name=\'xmltest addr\']'
- xpath_value="/config/devices/entry/vsys/entry/rulebase/security/rules/entry[@name='rule1']"
- print('>> '+xpath_value)
- element_value='<to><member>any</member></to><from><member>any</member></from><source><member>any</member></source><destination><member>'+str(art_val)+'</member></destination><source-user><member>any</member></source-user><category><member>any</member></category><application><member>any</member></application><service><member>application-default</member></service><hip-profiles><member>any</member></hip-profiles><action>deny</action>'
- element_value='<source><member>any</member></source><destination><member>'+str(art_val)+'</member></destination><service><member>application-default</member></service><application><member>any</member></application><action>deny</action><source-user><member>src-user</member></source-user><option><disable-server-response-inspection>yes</disable-server-response-inspection></option><negate-source>yes</negate-source><negate-destination>yes</negate-destination><disabled>no</disabled><log-start>no</log-start><log-end>no</log-end><description>description</description><from><member>any</member></from><to><member>any</member></to>'
- #wall> /api/?key=apikey&type=config&action=set&key=keyvalue&xpath=xpath-value&element=element-value
- addnewsecurityrule = session.post(URL+'/api/?type=config&action=set&key='+key.text+'&xpath='+xpath_value+'&element='+element_value,verify=False)
- print(addnewsecurityrule.text)
- commit = session.post(URL + '/api/?type=commit&key='+key.text+'&cmd=<commit><force></force></commit>',verify=False)
- print(commit.text)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement