5、安全开发-Python-红队项目&漏扫工具&API推送微信&任务自动添加并启动

 用途:个人学习笔记,有所借鉴,欢迎指正!

目标:

利用Python脚本调用漏洞扫描工具API批量扫描目标url,发现漏洞后有所通知,解放双手。

一、漏洞扫描-API调用-Xray

参考:快速开始 - xray Documentation
应用案例:可通过自动化扫描后将实时结果进行微信推送,也可以应用在其他安全工具上。

使用示例:xray webscan --url http://x.x.x.x --webhook-output http://127.0.0.1:5000/webhook

基本步骤:
1、命令漏扫触发本地URL 
2、Flask启动进行监听处理
3、借助Server酱API推送微信

from flask import Flask, request
import requests

app = Flask(__name__)

@app.route('/webhook', methods=['POST'])
def xray_webhook():
    url = 'https://sctapi.ftqq.com/SCT75428T2Fd9hkLOmLXk53uWeFtl17TD.send?title=Xray find vuln!!!'
    try:
        #接受传递过来的数据转换json格式
        vuln=request.json
        content = """## xray 发现了新漏洞
        url: {url}
        插件: {plugin}
        漏洞类型: {vuln_class}
        请及时查看和处理
        """.format(url=vuln['data']['target']['url'], plugin=vuln['data']['plugin'],vuln_class=vuln['type'])
        print(content)
        data={
            'desp':content
        }
        print(data)
        requests.post(url,data=data)
        return 'ok'
    except Exception as e:
        pass


if __name__ == '__main__':
    app.run()

二、Python-红队项目-Awvs调用自动添加

漏扫API调用-AWVS

Awvs漏洞扫描工具:https://www.ddosi.org/awvs-5/

API使用参考:AWVS13批量脚本_%targets:website,=%-CSDN博客
应用案例:可通过脚本调用AWVS自动添加扫描也可以应用在其他安全工具上。

基本步骤:

1、启动工具&开启API-KEY
2、创建新任务并记录任务ID
3、启动新任务并记录返回ID

三、Python-红队项目-SQLMAP API调用脚本自动添加扫描

漏扫API调用-SQLMAP
参考:https:/www.freebuf.com/articles/web/204875.html
应用案例:前期通过信息收集拿到大量的URL地址,这个时候可以配合SqlmapAPl接口进
行批量的注入检测。

开发当前项目过程:(利用sqlmapAPI接口实现批量URL注入安全检测)

from flask import Flask, request
import requests,time,json

#启用sqlmap-API服务          python sqlmapapi.py -s
#Sqlmap API接口使用:
# 1.创建新任务记录任务ID       @get("/task/new")
# 2.设置任务ID扫描信息         @post("/option/<taskid>/set")
# 3.开始扫描对应ID任务         @post("/scan/<taskid>/start")
# 4.读取扫描状态判断结果       @get("/scan/<taskid>/status")
# 5.如果结束删除ID并获取结果    @get("/task/<taskid>/delete")
# 6.扫描结果查看               @get("/scan/<taskid>/data")

def new_id():
    headers = {
        'Content-Type': 'application/json'
    }
    url='http://127.0.0.1:8775'+'/task/new'
    resp=requests.get(url,headers=headers).json()
    taskid=resp['taskid']
    if resp['success'] is True:
        print('->1、创建任务ID成功,ID:' + taskid)
        return taskid

def set_id(id,scanurl):
    headers = {
        'Content-Type': 'application/json'
    }
    data={
        'url':scanurl
    }
    url = 'http://127.0.0.1:8775/option/%s/set' % id
    resp = requests.post(url, data=json.dumps(data),headers=headers).json()
    if resp['success'] is True:
        print('->2、设置任务ID成功,ID:' + taskid)
        print('->2、设置任务URL成功,URL:' + scanurl)
        return taskid

def scan_id(id,scanurl):
    headers = {
        'Content-Type': 'application/json'
    }
    data = {
        'url': scanurl
    }
    url = 'http://127.0.0.1:8775/scan/%s/start' % id
    resp = requests.post(url, data=json.dumps(data), headers=headers).json()
    if resp['success'] is True:
        print('->3、启动扫描任务ID成功,ID:%s'%id)
        print('->3、启动任务URL成功,URL:%s'%scanurl)

def status_id(id):
    url = 'http://127.0.0.1:8775/scan/%s/status'%id
    print('->4、扫描任务进行中,请等待结束,ID:%s' %id)
    while 1:
        resp = requests.get(url).text
        if 'running' in resp:
            #print(resp)
            continue
        else:
            print('->4、扫描任务ID已完成,ID:%s' %id)
            break

def data_id(id,scanurl):
    url = 'http://127.0.0.1:8775/scan/%s/data' % id
    resp = requests.get(url)
    #print(resp.json()['data'][0]['status'])
    if resp.json()['data'][0]['status'] == 1:
        print('>>>>>>>>>>>>>>>>>>>>>>>>>')
        print('存在注入:'+'\n'+scanurl)
        print('>>>>>>>>>>>>>>>>>>>>>>>>>')
        wx = 'https://sctapi.ftqq.com/SCT75428T2Fd9hkLOmLXk53uWeFtl17TD.send?title=SQLMAP find vuln!!!'
        sql_title=resp.json()['data'][1]['value'][0]['data']['5']['title']
        sql_payload=resp.json()['data'][1]['value'][0]['data']['5']['payload']
        sql_dbms = resp.json()['data'][1]['value'][0]['dbms'][0]
        try:
            content = """## sqlmap 发现了新漏洞
            url: {url}
            漏洞标题: {title}
            漏洞Payload: {Payload}
            漏洞数据库类型:{dbms}
            请及时查看和处理
            """.format(url=scanurl, title=sql_title, Payload=sql_payload,dbms=sql_dbms)
            #print(content)
            data = {
                'desp': content
            }
            print(data)
            requests.post(wx, data=data)
            return 'ok'
        except Exception as e:
            pass
        # with open('result.txt', 'a+') as f:
        #     f.write(resp.text)
        #     f.write('\n' + '===========python sqlmapapi by xiaodisec=============' + '\n')
        #     f.write('-?----------------------------------------------------' + '\n')
        #     f.close()
    print('->5、注入任务ID已完成,请查看结果:result.txt')

def delete_id(id):
    url = 'http://127.0.0.1:8775/task/%s/delete' % id
    resp = requests.get(url).json()
    if resp['success'] is True:
        print('->6、删除任务ID:%s成功' % id)
    time.sleep(3)

if __name__ == '__main__':
    for url in open('url.txt'):
        taskid = new_id()
        set_id(taskid,url.replace('\n',''))
        scan_id(taskid,url.replace('\n',''))
        status_id(taskid)
        data_id(taskid,url.replace('\n',''))
        delete_id(taskid)
        print('---------------------------------')
  • 15
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ATT&CK红队评估实战靶场四是一个实战训练场景,其中使用了phpmyadmin来利用数据库日志写入马来获取会话。具体的方法和之前的红日靶场一类似,你可以去查看相关链接了解更多细节。在攻击机要访问52网段的资源时,可以使用session 4作为下一跳进行路由设置。可以通过routeprint命令查看路由表,并使用routeadd命令添加相应的路由。此外,可以通过将SSH公钥添加到/home/ubuntu/.ssh/authorized_keys文件来实现免密登录到目标机器。具体命令是将SSH公钥追加到该文件中。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [ATT&CK红队评估(红日靶场四)](https://blog.csdn.net/weixin_45682839/article/details/124485070)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [ATT&CK红队评估实战靶场-1(全网最细)](https://blog.csdn.net/qq_40638006/article/details/122033546)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

++⁠⁠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值