欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > AWD入门

AWD入门

2024/10/24 3:20:47 来源:https://blog.csdn.net/cyy001128/article/details/143078981  浏览:    关键词:AWD入门

 一、简介

AWD(Attack With Defense,攻防兼备)模式。你需要在一场比赛里要扮演攻击方和防守方,攻者得分,失守者会被扣分。也就是说攻击别人的靶机可以获取 Flag 分数时,别人会被扣分,同时你也要保护自己的主机不被别人得分,以防扣分。

二、流程

1.出题方会给每个队伍提供相同环境的靶机,会提供IP段,可以通过脚本或者手动找到对方IP

2.比赛分为加固时间和攻击时间,时间长短根据规则而定

3.每个服务、数据库、主机上都会可能存在 flag 字段,并且会定时刷新。通过攻击拿到 flag 后需要提交到裁判机进行得分,一般会提供指定的提交接口。下一轮刷新后,如果还存在该漏洞,可以继续利用漏洞获取 flag 进行得分。

4.Web 攻击流程一般分为信息收集、攻击端口、攻击Web服务、维持权限四步

三、防守加固

1.比赛开始时我们会分配到一个至多个靶机,通常是分配给我们ssh 用户名和密码还有虚拟ip等信息,我们需要自己去连接靶机。使用xshell和xftp

用法可参考链接:【Linux】—Xshell、Xftp安装-CSDN博客

2.连接靶机后的第一件事就是dump网站源码,使用ssh工具(xshell)保留源码,复制两份,用d盾去扫一份,因为当我们靶机受到攻击时对手可能直接删除我们的源码导致靶机DOWN机,而通常比赛中主办方会在源码中留有一些后门,我们用D盾去扫描一下来进行修复和攻击。

D盾的使用可参考:D盾使用方法-CSDN博客

3.数据库备份,登录数据库来进行备份,当数据被删除时可以使用命令快速还原。

mysqldump -u db_user -p db_passwd db_name > 1.sql //备份指定数据库
mysql -u db_user -p db_passwd db_name < 1.sql //还原指定数据库

4.修改密码

passwd  //linux修改ssh即本地密码
mysql>set password for root@localhost =password('xino');  //修改mysql登录密码

a4e10ff727ee4a9a816b4102d7444891.png

5.关闭不必要端口,一些端口会存在漏洞,为了保证安全我们关闭一些不必要的端口来进行维护

9ae873104e534d08b7e7f0440a644526.png

6.WAF用来分析阻挡对手攻击的工具它可以分析流量,别人攻击我们的时候,我们可以看到别人的攻击方式。当没有攻击思路时我们就可以分析流量,使用别人的攻击方式

每个文件前边加:

require_once(waf.php);

为了方便我们可以修改php.ini配置文件,来自动给当前文件夹下文件头部添加:

auto_prepend_file=<filename>;

常见加固手段可以参考:AWD常见防御加固手段_awd防守脚本-CSDN博客

四、攻击

Web 攻击流程一般分为信息收集、攻击端口、攻击Web服务、维持权限四步

1.信息搜集

1>探测主机

用 Nmap 或者 HTTPScan等工具,先扫描主办方给的内网存活主机,弄明白网络拓扑(用传输介质连各种设备的物理布局。指构成网络的成员间特定的物理的即真实的、或者逻辑的即虚拟的排列方式。如果两个网络的连接结构相同我们就说它们的网络拓扑相同,尽管它们各自内部的物理接线、节点间距离可能会有不同。),一般会给出主机范围

2>探测端口

主办方给的机器都是一样的,所以直接看自己开了什么端口就行。如果不一样的话,使用 Nmap 进行常见端口扫描,先攻击常见端口,再放后台进行全端口的扫描,发现新端口再加入到攻击队列中。

3>探测端口服务

端口服务一般用 Nmap 就能扫到,并且可以用 Nmap 的脚本扫一下漏洞,但是需要注意 Nmap 的相关参数,这要根据情况灵活运用。

2.端口攻击

端口一般会有弱口令存在的情况,比如常见的 22、3389、1443、3306 等主机登陆、数据库端口,当发现靶机存在弱口令后,我们就可以遍历IP地址来查询存活的机器来自动连接查找FLAG,或者在受害者靶机里植入后门文件来维持我们的控制。

自带后门,通常靶机会有自带的后门木马,我们知道路径后便可以写一个脚本批量连接来提交FLAG

3.web攻击

Web 方面的语言多为 PHP,小部分为 Java 和 Python。这里的 Web 环境分两种情况,一种是已有漏洞的框架,一种是出题人写的框架。

1.已有漏洞的框架

通常会比较明显。比如说 Struts 2 各种漏洞等等,用工具扫就可以扫出来。这个需要准备得比较充分,在电脑中备好 EXP 库、漏洞库和各种扫描工具库,以便能够快速利用比较明显的漏洞。

2.出题人出的框架

常用并且简单有效的做法是把整站源码下载下来,直接用工具审计。以 PHP 举例,一般的流程是先D盾查杀,发现有带有预留后门或者 Webshell 马上进行加固。

3.源码审计

把后门的问题搞定、防止别人快速拿分后,其次才是源码审计,发现问题点后迅速验证,报给防守队友,并且开始写攻击脚本。以 PHP 举例,一般是使用 Seay 等源码审计工具,审核出比较明显的漏洞。

Seay使用:PHP代码审计工具-CSDN博客

4.维持权限

在 AWD 中优先考虑种不死马、反弹 shell,用一般木马的留后门方式维持权限,以便后续刷 flag,再考虑提升权限。

不死马:主要功能是执行后会不断在该路径生成一个 shell 文件,用于菜刀等工具进行连接,是一种维持权限的方法。

注:使用 `find / -name *flag*` 或 `grep -rn ”flag” *` 类似的语句可以快速发现 flag 所在的地方,方便后续拿分。

五、awd复现

开始后先用xshell连接主机

e3da0e90e6854f1ba31e1fa1bc7c481d.png

030abd6b1b114e37b3abd3467ba3a2c4.png

连接上以后先修改密码

504f5263ffe34cf8890cf3c5b6f04641.png

然后进行备份,将源码导出

c13c476e8cbd4e61bf88343031426e05.png

然后就可以用D盾扫描并通过代码审计,查看有什么漏洞

下面使用的seay自动源码审计的这个工具师兄说最好不要使用,这个只能扫描出一些最基本的漏洞,在代码不是很多的情况下最好还是自己审计

3e54229ea4844d229265b0b78644e3fd.png

ef67a723d3714267a7e3f8e4efcd09f2.png

接下来就是通过注释等修复漏洞,等时间到了以后就可以攻击其他人了

180503dd3f064c0488d9a31086121d8d.png

通过nmap扫描出可运行的端口,这里也可以用脚本

import requests
url = "http://172.16.17.202:"
for i in range(2200,2211):url_new = url + '{}'.format(i)try:if requests.get(url_new).status_code == 200:print(url_new+'能访问')except:pass

知道有哪些端口以后就可以登上网页查看一下

3275c8047f5840a3befed2a1f186c1fa.png

先在首页检查一下,划到最下面就发现有一个rce的漏洞

af9bd324bc204ebabf7f0d4b658706e5.png

还没有被修复,接着查看自己的源码会发现flag在根目录下

f7c6bebdc3b84857acf31201c5033feb.png

直接查看

d965a0d9348e444dbc5e7850a89eff80.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com