红队 | 针对大规模资产的攻击思路

1、背景

最近参加了一次攻防演练,因为准备不够充分导致结果差强人意,事实证明,没有一个清晰的思路在这个拼手速的时代是干不过人家的,事后重新梳理总结一下。

其实也没什么新东西,总体大概就是尽可能全面的搜集资产,然后全方位扫描,最后搭配手工扩大战果。

2、收集资产

根据IP收集url
使用棱洞魔改版:https://github.com/lemonlove7/EHole_magic

.\ehole.exe fofaext -l ip.txt

ip.txt的话格式最好是xxx.xxx.xxx.xxx:xxx afrog会自动识别扫描

61.*.*.*:9090
61.*.*.*:3389
61.*.*.*:53
61.*.*.*:9000
61.*.*.*:7547
61.*.*.*:1433
61.*.*.*:2000
61.*.*.*:8291
61.*.*.*:554
61.*.*.*:9090

goby全端口扫描

测绘平台收集url
https://hunter.qianxin.com/
https://fofa.info/
https://quake.360.cn/

多语法搜索
不同的语法进行资产搜集,搜集的资产会更全面
以 fofa 为例

domain="xxxx.com"  
host="xxxx.com"  
header="xxxx.com"  
cert="xxxx.com"

其他手段
google语法

查找文本内容:site:*.edu.cn intext: vpn | 用户名 | 密码 | 帐号 | 默认密码
查找后台地址:site:域名 inurl:login|admin|manage|member|admin_login|login_admin|system|login|user|main|cms
查找可注入点:site:域名 inurl:aspx|jsp|php|asp
查找上传漏洞:site:域名 inurl:file|load|editor|Files
找eweb编辑器:site:域名 inurl:ewebeditor|editor|uploadfile|eweb|edit
存在的数据库:site:域名 filetype:mdb|asp|#
查看脚本类型:site:域名 filetype:asp/aspx/php/jsp
迂回策略入侵:inurl:cms/data/templates/images/index/

各种敏感数据收集:

filetyle:xls inurl:gov username password
inurl:phpmyadmin/main.php intitle:phpmyadmin
filetype:inc inurl:config.inc host
filetype:sql cdb_members inurl:forumdata
filetype:txt inurl:"新建文本文档.txt"密码
inurl:phpinfo.php intitle:"phpinfo()""PHP Version"+"Server API"
filetype:log inurl:log mdb

github
*.edu.cn password

3、漏洞扫描

awvs

这里我用的是docker,直接运行下边的命令

docker run -it -d -p 13443:3443  xiaomimi8/docker-awvs-14.7.220401065

这里还要搭配另一个工具来批量添加任务https://github.com/test502git/awvs14-scan
使用前先在config.ini修把url和apikey修改为自己的

nuclei

工具下载地址https://github.com/projectdiscovery/nuclei

nuclei -list urls.txt

xray

下载高级版https://www.iculture.cc/
被动代理就不说了,这里说下另一种批量主动的方法

# coding:utf-8

import re
import os
import sys
import time

def scan():
    file = open("urls.txt")
    urls = []
    for line in file:
        lines = line.strip('\n')
        urls.append(lines)
    file.close()
    for url in urls:
        name = url.replace('https://', '').replace('http://', '').replace('/', '').replace('\n', '').replace(':', '-')
        try:
            os.mkdir('scan_report')
        except:
            pass
        cmd = 'xray.exe webscan --basic-crawler {0}/ --html-output {1}.html'.format(url.replace('\n', ''), './scan_report/' + name)
        os.system(cmd.replace('\n', ''))
        time.sleep(0.2)

if __name__ == "__main__":
    scan()

代码保存为urlscan.py

很简单,url放urls.txt里,urls.txt放xray.exe根目录

接下来还要稍微改下xray配置config.yaml
把过滤gov什么的删了或者注释掉

python urlscan.py

结束后会自动生成scan_report目录,结果都保存在里面

afrog

下载地址https://github.com/zan8in/afrog
常用方法,只要中危及以上的漏洞

.\afrog.exe -T url.txt -S medium, high, critical

api扫描

urlfind
工具下载地址https://github.com/pingc0y/URLFinder
项目中有详细的使用说明,这里写下我比较常用的

.\URLFinder-windows-amd64.exe -s 200 -m 3 -u http://124.71.137.81:8081 -o .

Packer-Fuzzer
工具地址https://github.com/rtcatc/Packer-Fuzzer

4、手工测试

web逻辑漏洞

1.任意用户注册2.可爆破用户名3.爆破用户名,密码4.用户名注入5.万能密码6.用户名Xss7.修改返回包信息,登入他人账户8.修改cookie中的参数,如user,adminid等9.HTML源码、JS等查看信息搜集10.后台登录参数修改为注册参数/reg、/register、/sign等11.密码重置(1)重置一个账户,不发送验证码,设置验证码为空发送请求。(2)发送验证码,查看相应包(3)验证码生存期的爆破(4)修改相应包为成功的相应包(5)手工直接跳转到校验成功的界面(6)两个账户,重置别人密码时,替换验证码为自己正确的验证码(7)重置别人密码时,替换为自己的手机号(8)重置自己的成功时,同意浏览器重置别人的,不发验证码(9)替换用户名,ID,cookie,token参数等验证身份的参数(10)通过越权修改他人的找回信息如手机/邮箱来重置

RCE漏洞

1.url参数,不仅仅可能存在ssrf漏洞,也有很大概率存在命令执行,可能调用系统命令如curl
示例:

index.php?id=2;}phpinfo();/*
http://www.xxx.com/cmd.php?cmd=whoami
http://xxx.cn/AdminPage/conf/runCmd?cmd=id

2.变量/提交的数据
常见在post包中exec、shell、path等参数
测试payload:

(1) &  不管前后命令是否执行成功都会执行前后命令
(2) &&  具有短路效果。前面的命令执行成功才能执行后面的命令
(3) |  管道符, 上一条命令的输出,作为下一条命令参数(输入) 。在拼接时,无论左边是false还是true,右边都会执行
(4) ||  具有短路效果。 前面的命令执行不成功才能执行后面的命令

各种框架、cms通用nday
https://github.com/MzzdToT/HAC_Bored_Writing

5、横向思路

fscan工具 https://github.com/shadow1ng/fscan/releases/tag/1.8.2

各数据库弱口令扫描

手工测试
通过命令行快速收集服务器网络拓扑、密码等重要文件。

1.dir /a /s /b "D:\*.txt"
2.dir /a /s /b "D:\*pass*"
3.dir /a /s /b "D:\*login*
4.dir /a /s /b "D:\*user*  
5.dir /a /s /b D:\\password.txt  
6.dir /a /s /b "D:\*.conf" "D:\*.ini" "D:\*.inc" "D:\*.config"
7.dir /a /s /b "C:\*.txt" "C:\*.xls*" "C:\*.xlsx*" "C:\*.docx" | findstr "拓扑"
8./C 参数来指定要查找的字符串 但是有双引号的话加不加/C感觉区别不大
9.dir /a /s /b "C:\*.conf" "C:\*.ini*" "C:\*.inc*" "C:\*.config" | findstr /C:"运维"
10.dir /a /s /b "D:\*.txt" "D:\*.xls*" "D:\*.xlsx*" "D:\*.docx" | findstr /C:"密码"

 部分命令执行结果

 编写成一键式bat

1.@echo off
2.set "drive=D:"
3.dir /a /s /b "%drive%\*.txt" >>result.txt
4.dir /a /s /b "%drive%\*pass*" >>result.txt
5.dir /a /s /b "%drive%\*login* >>result.txt
6.dir /a /s /b "%drive%\*user* >>result.txt
7.dir /a /s /b "%drive%\password.txt" >>result.txt
8.dir /a /s /b "%drive%\*.conf" "%drive%\*.ini" "%drive%\*.inc" "%drive%\*.config" >>result.txt
9.dir /a /s /b "%drive%\*.txt" "%drive%\*.xls*" "%drive%\*.xlsx*" "%drive%\*.docx" | findstr "拓扑" >>result.txt
10.dir /a /s /b "%drive%\*.conf" "%drive%\*.ini*" "%drive%\*.inc*" "%drive%\*.config" | findstr /C:"运维" >>result.txt
11.dir /a /s /b "%drive%\*.txt" "%drive%\*.xls*" "%drive%\*.xlsx*" "%drive%\*.docx" | findstr /C:"密码" >>result.txt
12. echo "find success"

 保存为23.bat直接运行即可,最后在result.txt中查看运行结果

本账号所有文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值