awvs13破解安裝、批量掃描腳本


安裝awvs參照這篇博客,跟着一步一步來就能裝好,這里就不再另作介紹了

https://www.cnblogs.com/xyongsec/p/12370488.html

如果一個一個添加掃描目標還是比較麻煩的,這里可以通過腳本來批量 添加 掃描目標

需要注意修改幾個地方

1:awvs的訪問地址。如果沒有改過就是默認的https://localhost:3443

2:awvs的API接口。

然后點Profile

找到API Key,如果沒有則新建一個,如果有就直接copy

 然后替換python腳本中的數據

# -*-coding:utf-8-*- # @Author:malphite.tang
import json import requests from queue import Queue requests.packages.urllib3.disable_warnings() # 消除equests提示警告

class Awvs(): def __init__(self): self.host = 'https://localhost:3443' self.add_url_api = self.host + '/api/v1/targets'  # 新增任務接口
        self.speed_url_api = self.host + '/api/v1/targets/{}/configuration'  # 設置掃描速度接口
        self.scan_url_api = self.host + '/api/v1/scans'  # 啟動掃描任務接口
        self.stats_url_api = self.host + '/api/v1/me/stats'  # 儀表盤接口
        self.del_target_api = self.host + '/api/v1/targets/{}' #刪除任務接口
        self.API_KEY = '1986ad8c0a5b3df4d7028d5f3c06e936c5fdedf96d18c44e9a1a8e62d992df485' self.header = {'X-Auth': self.API_KEY, 'content-type': 'application/json'}  # header格式
        self.target_url = Queue()  # 創建掃描url隊列
        self.target_id = Queue()  # 創建任務id號隊列
        self.speed = 'fast'  # 定義掃描速度

    def main(self):  # 主程序-選擇對應的功能
        print('選擇要使用的功能(輸入相應的編號):') print('1.使用target.txt添加掃描任務 (注:url必須帶有http或https)') print('2.查看掃描器詳情') print('3.刪除所有任務') print('4.退出') choice = input('>') if choice == '1': self.run1() exit() if choice == '2': self.run2() exit() if choice == '3': self.run3() exit() if choice == '4': exit() else: self.main() def run1(self):  # 創建任務,自動設置為fast模式,並開啟掃描。
 self.url_queue() self.add_target() self.scan_target() def url_queue(self):    # 提取target.txt文件里面的url,並添加進self.target_url隊列
        fh = open(r'./target.txt', 'r', encoding='utf-8') for i in fh.readlines(): url = i.strip('\n')        # 去除空行和回車行
 self.target_url.put(url) def add_target(self):    # 添加掃描任務,並將返回包里的target_id添加進self.target_id隊列
        while True: if self.target_url.empty():        # 判斷x'Bself.target_url隊列是否為空,為空就中斷循環
                break target_url = self.target_url.get()            # 取self.target_url隊列中的元素
            add_data = json.dumps({'address' : target_url, 'description' : target_url, 'criticality' : '10'}) add_target_res=requests.post(url=self.add_url_api,headers=self.header,data=add_data,verify=False)    #添加任務
            if add_target_res.status_code==201:        # 判斷狀態碼是否為201
                target_id=add_target_res.json()['target_id']#以json格式打開add_target_res,
                self.target_id.put(target_id)       # 將創建好任務的target_id,添加到target_id隊列中
            else: print('任務建立失敗,請檢查host和API_KEY是否修改正確') def scan_target(self):    # 設置掃描速度,並啟動掃描任務
        while True: if self.target_id.empty():    # 判斷self.target_id隊列是否為空,為空就中斷循環
                break scan_target_id = self.target_id.get()    # 取self.target_id隊列中的元素
            set_data = json.dumps({'scan_speed': self.speed}) scan_data = json.dumps({"target_id": scan_target_id, "profile_id": "11111111-1111-1111-1111-111111111111", "schedule": {'disable': False, 'start_date': None, 'time_sensitive': False}}) set_speed_res = requests.patch(url=self.speed_url_api.format(scan_target_id),data=set_data,headers=self.header,verify=False)    #設置掃描速度
            if set_speed_res.status_code==204:    # 判斷狀態碼是否為204
                scan_target_res=requests.post(url=self.scan_url_api,data=scan_data,headers=self.header,verify=False)    #啟動掃描任務
                if scan_target_res.status_code==201:    # 判斷狀態碼是否為201
                    print(scan_target_res.json()['target_id']+'任務建立成功') else: print('任務建立失敗,請檢查host和API_KEY是否修改正確') def run2(self):  # 查看儀表盤
        stats_res = requests.get(url=self.stats_url_api, headers=self.header, verify=False).json() print('任務總數:' + str(stats_res['targets_count'])) print('正在掃描的任務數量:'+str(stats_res['scans_running_count'])) print('等待掃描的任務數量:'+str(stats_res['scans_waiting_count'])) print('任務詳情:') for i in stats_res['most_vulnerable_targets']: task_details=i['address']+' High risk:'+str(i['high_vuln_count'])+' medium risk:'+str(i['med_vuln_count']) print(task_details) def run3(self):  # 刪除所有任務
 self.get_target_id() self.del_target() def get_target_id(self):        # 獲取所有任務的掃描的地址和id
        stats_res=requests.get(url=self.add_url_api,headers=self.header,verify=False).json()['targets'] for i in stats_res: self.target_id.put([i['address'],i['target_id']])       # 將地址和id已列表的形式添加進target_id隊列
    def del_target(self):           # 刪除任務
        while True: if self.target_id.empty(): break del_target_id=self.target_id.get()      # 取target_id隊列的元素
            del_target_res=requests.delete(url=self.del_target_api.format(del_target_id[1]),headers=self.header,verify=False) if del_target_res.status_code==204: print('成功刪除{}' .format(del_target_id[0])) else: print('刪除失敗') if __name__ == '__main__': aw = Awvs() aw.main()

在與腳本同一個目錄中新建一個target.txt文件,里面寫上要掃描的目標

 

 

 然后執行python腳本,輸入“1”,就可以批量添加掃描目標然后自動掃描了。如果目標較多,等待的時間會長一些

 

 好了,awvs批量掃描的方法 就是這樣

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM