自学内容网 自学内容网

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登录密码

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

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连接主机

连接上以后先修改密码

然后进行备份,然后将源码导出,然后就可以用D盾扫描并通过代码审计,查看有什么漏洞

发现有三个漏洞

查看第一个的源码,发现是最后这段php代码,存在一个php伪协议

先修复自己的漏洞,将最后一段漏洞相关的php代码删除(删多了会导致宕机),然后就可以利用nmap扫描端口找到别人然后利用漏洞攻击

这里先试一下自己的,发现确实已经修复了

扫到端口后就可以去查看别人的了

这里尝试攻击别人的,发现flag

这里发现一个sql注入的漏洞


原文地址:https://blog.csdn.net/cyy001128/article/details/142337272

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!