yi
移
dong
动
an
安
quan
全
0x00背景
前些日子做了几天全职扫描工程师,在此做一下最新版AWVS和Nessus破解版在安装或使用中的踩坑记录以及AWVS批量脚本的分享。HVV即将来临,无论是蓝队安全自查,还是红队信息收集,批量漏洞扫描工具肯定是必不可少的,希望下面的内容能够给你些许帮助~
0x01AWVS破解踩坑
最新版AWVS13的破解很简单,根据压缩包里的readme破解即可,但最新版AWVS13的破解还是延续之前版本的老问题,容易破解失效,所以下面主要还是说一下遇到如下失效情况的时候,如何解决:
AWVS突然崩了,扫了半天的结果也看不了了:
重新登录发现登录界面不显示,或者输入账号密码后没反应:
此时打开windows的服务管理界面,查看AWVS对应的服务是关闭状态:
于是想着重启一下服务吧,于是发现死活重启不起来,就像下面这个样子:
这时候如果重新安装AWVS(重装大法解决一切问题!),那么之前扫描的结果都没有了就很难受了,不要慌,解决办法来了:此时只需要重新把破解补丁拖取到AWVS安装目录
然后重启Acunetix服务后再次重新登录即可:
总结:AWVS13版本在扫描大批量资产的时候非常容易出现各种破解失效,服务自动关停等问题,总是重装肯定是很难受的,所以经过多次踩坑发现目前大部分问题基本都可以通过上述方法进行重新破解即可。祝你好运
0x02AWVS自动化脚本分享
如果你的破解版AWVS十分给力,不曾出现过破解失效问题,上面的经验对你毫无作用,那么希望下面这个脚本能够给你提供些许便利:
脚本说明:某大佬分享的AWVS批量导入脚本,支持:
1、批量导入资产并开始扫描(可配合AWVS定时任务,在任意时间段开始扫描)
2、批量删除所有任务(会连带着删除扫描记录、漏洞等,慎用!)
3、由于部分资产较为脆弱,需要调整扫描速率,所以又在大佬的基础上添加了一个批量修改扫描速率的模块。(默认为fast,需手动修改代码self.speed值,代码中已注释)
4、使用方法很简单,替换自己的AWVS APIkey即可。
import json
import queue
import requests
requests.packages.urllib3.disable_warnings()
def run():
print(' ______ ____ __ __ ')
print('/ _ / _` / __ / ')
print(' L __ __ __ __ __ ____ L __ ,_ ___ ___ ')
print(" __ / / / / / /',__ _ <' /'__` / /'___ _ ` ")
print(" / _/ _/ _/ |/__, ` L / L._ _/ __/ ")
print(" _ _ ___x___/' ___/ /____/ ____/ __/._\ __ ____\ _ _ ")
print(' /_//_//__//__/ /__/ /___/ /___/ /__//_/ /__//____/ /_//_/')
print(' ______ __ ')
print(' /__ _ / __ ')
print(' /_/ / ___ ___ _____ ___ _ __ ,_ ')
print(" /' __` __`/ '__` / __`/`'__ / ")
print(' _ __/ / / L / L / _ ')
print(' /_____ _ _ _ ,__/ ____/ _ __ ')
print(' /_____//_//_//_/ / /___/ /_/ /__/')
print(' _ ')
print(' /_/ ')
print("n")
print(' Github:https://github.com/BetterDefender/AwvsBatchImport.git')
print(' Author:BetterDefender')
print(' Version:1.1')
class AwvsScan(object):
def __init__(self):
self.scanner = 'https://127.0.0.1:3443' # Modify URL
self.api = '1986ad8c0a5b3df4d7028d5f3c06e936c9c77171759f347dd8426737ab9736f9d' # Modify API
self.ScanMode = '11111111-1111-1111-1111-111111111111' # ScanMode
self.headers = {'X-Auth': self.api, 'content-type': 'application/json'}
self.targets_id = queue.Queue()
self.scan_id = queue.Queue()
self.site = queue.Queue()
self.speed = 'fast' #修改扫描速度为sequential|slow|moderate|fast即可,默认为fast
def main(self):
print("")
print("|"+'=' * 35+"|")
print("|Please select the function to use:|")
print("""| 1.Add scan task using awvs.txt |n| 2.Delete all tasks |n| 3.Regulae all tasks's speed |""")
print("|"+'=' * 35+"|")
choice = input(">")
if choice == '1':
self.scans()
if choice == '2':
self.del_targets()
if choice == '3':
self.speed_regulate()
self.main()
def openfile(self):
with open('awvs.txt') as cent:
for web_site in cent:
web_site = web_site.strip('nr')
self.site.put(web_site)
def targets(self):
self.openfile()
while not self.site.empty():
website = self.site.get()
try:
data = {'address': website,
'description': 'awvs-auto',
'criticality': '10'}
response = requests.post(self.scanner + '/api/v1/targets', data=json.dumps(data), headers=self.headers,
verify=False)
cent = json.loads(response.content)
target_id = cent['target_id'] #获取任务target_id
self.targets_id.put(target_id)
except Exception as e:
print('Error:Target is not website! {}'.format(website))
print("Please check if the URL in awvs.txt is correct!")
exit()
def scans(self):
self.targets()
while not self.targets_id.empty():
data = {'target_id': self.targets_id.get(),
'profile_id': self.ScanMode,
'schedule': {'disable': False, 'start_date': None, 'time_sensitive': False}}
response = requests.post(self.scanner + '/api/v1/scans', data=json.dumps(data), headers=self.headers,
allow_redirects=False, verify=False)
if response.status_code == 201:
cent = response.headers['Location'].replace('/api/v1/scans/', '')
#print(cent)
def get_targets_id(self):
response = requests.get(self.scanner + "/api/v1/targets", headers=self.headers, verify=False)
content = json.loads(response.content)
for cent in content['targets']:
self.targets_id.put([cent['address'], cent['target_id']])
def del_targets(self):
while True:
self.get_targets_id()
if self.targets_id.qsize() == 0:
break
else:
while not self.targets_id.empty():
targets_info = self.targets_id.get()
response = requests.delete(self.scanner + "/api/v1/targets/" + targets_info[1],
headers=self.headers, verify=False)
if response.status_code == 204:
print('delete targets {}'.format(targets_info[0]))
def speed_regulate(self):
while True:
self.get_targets_id()
if self.targets_id.qsize() == 0:
break
else:
if not self.targets_id.empty():
for i in range(self.targets_id.qsize()):
targets_info = self.targets_id.get()
data = {'scan_speed':self.speed}
response = requests.patch(self.scanner + "/api/v1/targets/"+targets_info[1]+'/configuration', data=json.dumps(data), headers=self.headers,verify=False)
if response.status_code == 204:
print('Regulate targets {}'.format(targets_info[0]))
break
if __name__ == '__main__':
run()
Scan = AwvsScan()
Scan.main()
0x03Nessus破解踩坑
https://www.52pojie.cn/thread-1140341-1-1.html
但是在破解中可能会出现一些问题导致无法破解成功,下面就是一些踩坑记录,如果你也遇到了,可以试一试这里的解决办法:
1)更新插件遇到如下:
问题不大,使用管理员权限重新打开cmd,运行更新命令即可:
2)如果发现覆盖配置文件无效时打开目录发现如下(基本上都是这个问题导致破解失败):
此时需要将内容复制到inc文件中,但可能会遇到如下情况:
这个就需要在文件的NTFS权限中添加“Everyone”完全控制权限:
添加完权限以后只需要将内容复制到inc文件并保存即可:
同时把此plugin_feed_info.inc文件复制到C:ProgramDataTenableNessusnessusplugins目录后重启Nessus服务后等待重新初始化即可即可:
出现如下界面,则表示可以无视IP条数限制开始扫描:
0x04写在最后
希望上面分享的踩坑记录能够对你有所帮助,上述的所有最新版漏扫安装包、破解程序、批量扫描脚本都可通过在公众号后台回复“自动化扫描”获取!
往期经典推荐:
渗透实战(一)|BSides Vancouver 2018 (Workshop)
移动安全(一)|Android设备root及神器Xposed框架安装
>>关于我们:
WhITECat安全团队是起源实验室合作安全团队,主要致力于交流分享团队成员技术研究成果、即时发布最新的漏洞新闻资讯、各大厂商内推通道以及各种安全相关延伸。团队成员目前由起源实验室核心成员、一线安全厂商攻防实验室、某研究院、漏洞盒子TOP10白帽子等人员组成。团队内有不定期的技术交流,(不可描述)工具分享等活动,致力于实现“开放分享”的hack精神。
欢迎各位大佬关注^_^
关注我们
开放共享
扫描上方二维码添加关注
一起分享安全狮的日常
本文始发于微信公众号(WhITECat安全团队):HVV前奏|最新版AWVS&Nessus破解及批量脚本分享
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论