Burpsuite插件开发(之二): 信息采集插件

优采云 发布时间: 2020-08-08 01:34

  最后一集发送了“如何编写与sqlmap的burpsuite链接的插件”

  0x00

  我之前编写了一个用于burpsuite与sqlmap链接的插件. 这次是一个用于信息采集的插件. 该插件的名称是TheMagician. 这是“从Windows到Mac的渗透测试重点”计划的一小步. 我想简单地编写它,但是写的越多,就越麻烦. 多亏了朋友们的大力帮助,我终于顺利完成了任务.

  使用该插件之前需要修改三个全局变量,即NMAPPATH,BINGKEY和HOMEPATH,其他全局变量不需要更改

  

  该插件的使用与链接sqlmap插件的用法相同,遵循“简单就是美丽”的原则. 右键单击最简单的调用

  

  创建右键菜单的源代码

      #创建菜单右键

    def createMenuItems(self, invocation):

        menu = []

        responses = invocation.getSelectedMessages()

        if len(responses) == 1:

            menu.append(JMenuItem(self._actionName, None, actionPerformed=lambda x, inv=invocation: self.quoteJTab(inv)))

            return menu

        return None

  三个标签代表三种不同的功能

  

  0x01 C段端口扫描

  第一个是C扫描. 该IP地址是从Proxy标记中HTTP请求标头中的主机地址继承的. 它可以是单个IP​​地址或CIDR. 考虑到nmap在端口扫描中的绝对领导者位置,我没有亲自重写端口扫描引擎,而是通过Python子进程库调用了nmap.

  Mac在使用前必须先安装nmap

  brew install nmap

  class NmapScan(threading.Thread):

def __init__(self):

threading.Thread.__init__(self)

self.thread_stop = False

def setCommds(self,cmds,Jobject,pcontrol):

self.runcms=cmds

self.setobject=Jobject

self.pcontrol=pcontrol

def run(self):

#self.setobject.setResult('Nmap task for '+self.runcms[5]+' is running\n')

child1 = subprocess.Popen(self.runcms, stdout = subprocess.PIPE, stdin = subprocess.PIPE, shell = False)

child1.poll()

resultScan = child1.stdout.read()

self.setobject.setResult(resultScan)

#self.setobject.setResult('Nmap task for '+self.runcms[5]+' is finnished\n')

self.pcontrol.subnum()

self.stop()

def stop(self):

self.thread_stop = True

  单个IP地址扫描结果

  

  C段扫描结果

  

  通过先前的链接sqlmap插件来实现burpsuite,sqlmap和nmap这三个工件的集成.

  0x02子域查询

  我知道当前有三*敏*感*词*域查询方案: 一种是通过bing语法查询,第二种是使用第二级域名的集合,第三种是执行DNS爆破. 三种方案中较好的是第三种方案,而较好的轮子是subdomainsbrute. 当然,最好的方法是使用这三种方案,这只是消除重复的一种好方法,我在这里使用了第一种方案,不要问我为什么: 它很容易编写.

  调用bing的主要功能

   def BingSearch(query):

payload={}

payload['$top']=top

payload['$skip']=skip

payload['$format']=format

payload['Query']="'"+query+"'"

url='https://api.datamarket.azure.com/Bing/Search/Web?' + urllib.urlencode(payload)

sAuth='Basic '+base64.b64encode(':'+BINGKEY)

headers = { }

headers['Authorization']= sAuth

try:

req = urllib2.Request(url,headers=headers)

response = urllib2.urlopen(req)

data=response.read()

#print data

data=json.loads(data)

return data

except Exception as e:

print e

#print e.info()

urlList = []

returnData = BingSearch("domain:" + theTopDomain)

if not returnData['d']['results']:

print "The Url Error"

else:

for tarUrl in returnData["d"]["results"]:

tmpUrl = urlparse.urlparse(tarUrl["Url"]).netloc

if tmpUrl not in urlList:

urlList.append(tmpUrl)

  

  0x03敏感文件扫描

  敏感文件扫描也是信息采集中的重要步骤. 通过文件扫描通常会带来意想不到的收益. 第三个功能模仿了Yujian Daniel的设计

  

  目前有20个线程,速度已经过去

  

  此外,它具有可以完全继承Proxy标记中的http请求标头信息(包括ua和cookie)的功能

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线