awvs13使用教程_脚本网

awvs13使用教程_脚本网你可以在以下渠道联系到我,转载请注明文章来源地址~知乎:Sp4rkWGITHUB:Sp4rkWB站:一只技术君博客:https://sp4rkw.blog.csdn.net/联系邮箱:getf_own@163.com文章目录前言核心接口仪表盘接口新增任务接口设置扫描速度启动扫描任务丝滑脚本前言最近在改reaper的awvs互动功能,因为自己的服务器垃圾,一次最多扫四个站,否则就卡死了。所以需要对现有的批量脚本进行修改处理。逻辑比较简单:拿到web资产,django异步启扫描任务从l

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

你可以在以下渠道联系到我,转载请注明文章来源地址~

  • 知乎:Sp4rkW
  • GITHUB:Sp4rkW
  • B站:一只技术君
  • 博客:https://sp4rkw.blog.csdn.net/
  • 联系邮箱:getf_own@163.com

前言

最近在改reaper的awvs互动功能,因为自己的服务器垃圾,一次最多扫四个站,否则就卡死了。所以需要对现有的批量脚本进行修改处理。逻辑比较简单:

  • 拿到web资产,django异步启扫描任务
  • 从list中取出前四个,丢入awvs,选择slow模式慢慢扫
  • 一分钟判断一次目前正在扫描的任务数量,不满4个自动新增补全到4个任务
  • 知道列表为空

django部分代码略去,awvs的部分代码我提取出来了,供大家使用

核心接口

仪表盘接口

/api/v1/me/stats
参数 说明
most_vulnerable_targets 最脆弱的目标
scans_conducted_count 总进行扫描个数
scans_running_count 正在扫描的个数
scans_waiting_count 等待扫描的个数
targets_count 总进行扫描个数
top_vulnerabilities 排名靠前漏洞分布
vuln_count_by_criticality 通过危险程度进行漏洞等级个数分布
vuln_count 漏洞数据
vuln_count_by_criticality 通过危险程度进行漏洞等级个数分布
top_vulnerabilities 排名靠前漏洞分布
vulnerabilities_open_count 共发现漏洞总数
#核心代码如下
api_running_url = 'https://x/api/v1/me/stats'
headers = { 
   
    'X-Auth': 'x',
    'Content-type': 'application/json'
}
r = requests.get(url=api_running_url, headers=headers, verify=False).json()
print(r['scans_running_count']) # 正在扫描的个数

# 返回数据如下:
{ 
   'most_vulnerable_targets': [], 'scans_conducted_count': 0, 'scans_running_count': 0, 'scans_waiting_count': 0, 'targets_count': 0, 'top_vulnerabilities': [], 'vuln_count': { 
   'high': None, 'low': None, 'med': None}, 'vuln_count_by_criticality': { 
   'critical': None, 'high': None, 'low': None, 'normal': None}, 'vulnerabilities_open_count': 0}

新增任务接口

Method:POST 
URL: /api/v1/targets
发送参数 类型 说明
address string 目标网址:需http或https开头
criticality Int 危险程度;范围:[30,20,10,0];默认为10
description string 备注
# 发送代码如下
api_add_url = "https://x/api/v1/targets"
headers = { 
   
    'X-Auth': 'x',
    'Content-type': 'application/json'
}

data = '{"address":"http://vulnweb.com/","description":"create_by_reaper","criticality":"10"}'

r = requests.post(url=api_add_url, headers=headers, data=data,verify=False).json()
print(r)
返回参数 说明
address 目标网址
criticality 危险程度
description 备注
type 类型
domain 域名
target_id 目标id
target_type 目标类型
canonical_address 根域名
canonical_address_hash 根域名hash
# 返回包如下

{'address': 'http://vulnweb.com/', 'criticality': 10, 'description': 'create_by_reaper', 'type': 'default', 'domain': 'vulnweb.com', 'target_id': '13564b22-7fd8-46d5-b10f-3c87a6cc6afa', 'target_type': None, 'canonical_address': 'vulnweb.com', 'canonical_address_hash': '823a9c89d4aea02ab8a4f5d31fd603c7'} 

设置扫描速度

Method:PATCH 
URL: /api/v1/targets/{target_id}/configuration
参数 类型 说明
scan_speed string 由慢到快:sequential slow moderate fast
# 核心代码
api_speed_url = "https://x/api/v1/targets/{}/configuration".format(target_id)
data = json.dumps({ 
   "scan_speed":"sequential"})

r = requests.patch(url=api_speed_url, headers=headers, data=data, verify=False)

print(r)

# 返回
<Response [204]>   #代表成功

启动扫描任务

Method:POST
URL: /api/v1/scans
参数 类型 说明
profile_id string 扫描类型
ui_session_i string 可不传
schedule json 扫描时间设置(默认即时)
report_template_id string 扫描报告类型(可不传)
target_id string 目标id
扫描类型 国光翻译的理解
Full Scan 11111111-1111-1111-1111-111111111111 完全扫描
High Risk Vulnerabilities 11111111-1111-1111-1111-111111111112 高风险漏洞
Cross-site Scripting Vulnerabilities 11111111-1111-1111-1111-111111111116 XSS漏洞
SQL Injection Vulnerabilities 11111111-1111-1111-1111-111111111113 SQL注入漏洞
Weak Passwords 11111111-1111-1111-1111-111111111115 弱口令检测
Crawl Only 11111111-1111-1111-1111-111111111117 Crawl Only
Malware Scan 11111111-1111-1111-1111-111111111120 恶意软件扫描
# 核心代码
data = '{"profile_id":"11111111-1111-1111-1111-111111111111","schedule":{"disable":false,"start_date":null,"time_sensitive":false},"target_id":"%s"}'% target_id

r = requests.post(url=api_run_url, headers=headers, data=data, verify=False).json()
print(r)


# 返回包
{ 
   'profile_id': '11111111-1111-1111-1111-111111111111', 'schedule': { 
   'disable': False, 'start_date': None, 'time_sensitive': False, 'triggerable': False}, 'target_id': '13564b22-7fd8-46d5-b10f-3c87a6cc6afa', 'incremental': False, 'max_scan_time': 0, 'ui_session_id': None}

丝滑脚本

import requests
import json
import time
from requests.packages.urllib3.exceptions import InsecureRequestWarning

requests.packages.urllib3.disable_warnings(InsecureRequestWarning)


# 请自行对接子域名列表,格式demo见main

awvs_token = 'xxx'
website = ""


def awvs_reaper(domainlist):# 接受域名list类型
    headers = { 
   
        'X-Auth': awvs_token,
        'Content-type': 'application/json;charset=utf8'
    }

    api_running_url = website+'/api/v1/me/stats'
    api_add_url = website+"/api/v1/targets"
    api_run_url = website+"/api/v1/scans"

    # 先把所有任务添加上并调整速度
    target_list = []
    for target in domainlist:
        data = '{"address":"%s","description":"create_by_reaper","criticality":"10"}'% target
        r = requests.post(url=api_add_url, headers=headers, data=data, verify=False).json()
        target_id = r['target_id']
        api_speed_url = website+"/api/v1/targets/{}/configuration".format(target_id)
        data = json.dumps({ 
   "scan_speed":"fast"})# slow最慢,一般建议fast
        r = requests.patch(url=api_speed_url, headers=headers, data=data, verify=False)
        target_list.append(target_id)

    target_num = len(target_list)

    if target_num <= 4:
        for target_id in target_list:
            data = '{"profile_id":"11111111-1111-1111-1111-111111111111","schedule":{"disable":false,"start_date":null,"time_sensitive":false},"target_id":"%s"}'% target_id
            r = requests.post(url=api_run_url, headers=headers, data=data, verify=False).json()
    else:
        r = requests.get(url=api_running_url, headers=headers, verify=False).json()
        runnum = int(r['scans_running_count']) # 正在扫描的个数
        flag = 0 # 做数组标志位
        while flag < target_num:
            if runnum < 4:
                target_id = target_list[flag]
                flag = flag + 1
                data = '{"profile_id":"11111111-1111-1111-1111-111111111111","schedule":{"disable":false,"start_date":null,"time_sensitive":false},"target_id":"%s"}'% target_id
                r = requests.post(url=api_run_url, headers=headers, data=data, verify=False).json()
                r = requests.get(url=api_running_url, headers=headers, verify=False).json()
                runnum = int(r['scans_running_count']) # 正在扫描的个数
            else:
                pass
            time.sleep(60)
    return target_num


if __name__ == "__main__":
    domainlist = ['http://10086.1.com', 'http://10087.1.com', 'http://10088.1.com']#必须带http或者https
    awvs_reaper(domainlist)

# linux服务器配合screen持久化运行

#注意,无授权请勿扫描,后果自负
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190716.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何使vmware虚拟机中的Redflag Linux操作系统能够上网?

    如何使vmware虚拟机中的Redflag Linux操作系统能够上网? 第一种情况:主机使用PPPOE拨号上网方法一:NAT方式1、先关闭虚拟机中的操作系统,回到虚拟机主界面双击主界面右上方的的“Ethernet”,弹出“NetworkAdapter”对话框,选择“NAT”2、启动虚拟机操作系统,设置IP为动态获取,即通过DHCP获得。此时虚拟机中的操作系统用的是主机的IP,主机能够上网,那么虚拟机也能。方法二:Host-only方式1

    2022年8月20日
    5
  • 决策树原理简介[通俗易懂]

    决策树原理简介[通俗易懂]基于决策树(DT)的算法如RF、GBDT在各种工业场景有着广泛的应用,了解决策树基础算法非常重要,下面我们就对于决策树算法做一下总结决策树分类器基本思想决策树是一种基于分治法的分类器。假设我们有若干个样本点,把它们放在一个节点内,按照最原始的方法对数据做分类,我们可以对节点内部的样本标签做统计,每一个新的样本都可以归为标签的众数(数量最多的标签);当然,这个方法太粗暴没有实用价值,那么我们…

    2025年10月4日
    2
  • 解决Google相册打不开的解决办法「建议收藏」

    解决Google相册打不开的解决办法「建议收藏」就在前几天,有大部分网民反映google相册打不开,picasaweb不能访问。Google官方也么给出解释.题外话就不啰嗦了,直接切入正题:在系统文件hosts里添加一些代码,该文件的路径一般是

    2022年7月3日
    144
  • 使用Androidkiller或APKIDE编译APK文件时出现libpng error: Not a PNG file的错误

    使用Androidkiller或APKIDE编译APK文件时出现libpng error: Not a PNG file的错误 使用Androidkiller或APKIDE编译APK文件时出现提示:&gt;W:libpngerror:NotaPNGfile&gt;W:ERROR:FailureprocessingPNGimageD:\xin\AndroidKiller_v1.3.12018\projects\CFF_100\Project\res\mipmap-xxhdpi-v4\ic_…

    2025年7月30日
    5
  • 少儿编程网站源码和scratch课程

    随着智能时代的到来,随着国家双减政策的实施,少儿编程是很多教育从业者的首选。因为不仅国家重视,而且对于承认来说容易上手。但目前市面上的少儿编程,投入都极高,且都是租用有限的账号和功能,并不是拥有真正属于自己的系统。学生端所以一定要有源码,这样才能拥有真正属于自己的少儿编程教学平台和管理平台系统。(源码即和新文件,拥有源码就可以不受任何限制。)另外,系统要大量的投入教学使用,这样才能保证其成熟使用,最后还要有专业的技术团队去维护。学生端+课程视频教师端:可以一键推送学生作业给家长..

    2022年4月6日
    61
  • 数据恢复案例之Linux服务器数据恢复成功案例

    数据恢复案例之Linux服务器数据恢复成功案例一、服务器数据恢复故障描述介绍数据恢复案例前照例先介绍故障服务器的物理状况。本次数据恢复的服务器是linux操作系统,某品牌730系列服务器,MD3200系列存储。导致数据丢失的原因是机房意外断电导致系统无法正常启动,客户管理员对无法访问的服务器进行了修复操作后进入系统查看数据,服务器部分文件已经丢失。于是客户管理员联系了数据恢复中心进行服务器数据恢复。二、服务器数据恢复故障分析1.备…

    2022年5月9日
    55

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号