首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

表哥有话说 第九期

任何网络攻防的比赛都不可为比赛而比赛

多注意联系实际的网络攻防对抗,以提高自身网络攻防能力为根本。

这里对参加的几场AWD比赛总结一下,本人Web狗,二进制部分在这里就不详细说明了。

0x00 什么是AWD

AWD:Attack With Defence,比赛中每个队伍维护一台或多台服务器,服务器的默认配置相同,每个服务器上默认有若干个漏洞,利用漏洞攻击其他队伍获取flag提交可以进行得分,修复漏洞可以避免被其他队伍攻击获取flag而失分。从而模拟现实的网络攻击和防御,借此提高选手的网络攻防能力。

0x01 网络拓扑与规则

比赛前有的主办方会提供网络的拓扑,我们应该研究一下拓扑对攻击机、靶机、checker、npc的网络架构做到心中有数,这时候就省去了比赛时主机发现的过程。而有的比赛不会提供网络拓扑,比赛时就需要用masscan等工具做到快速的主机发现。下面说一下常见的AWD网络拓扑与规则:

一般分配Web服务器,Pwn服务器,服务器或叫做Gamebox(多数为Linux)某处存在flag

可能会提供一台流量分析虚拟机,可以下载流量文件进行数据分析

flag在主办方的设定下每隔一定时间刷新一轮

各队一般都有自己的初始分数,flag一旦被其他队伍拿走,该队扣除一定积分,其他队伍得分

主办方会对每个队伍的服务进行check,服务宕机扣除分数

一般每个队伍会给一个低权限用户,非root权限

比赛中获取flag一般有两种模式:

flag在靶机根目录或家目录下,读取flag内容,提交即可得分

拿到其他队伍shell后,执行指定命令(curl 10.0.0.2),即可从上图中flag机获取flag内容

0x02 比赛分工

线下赛一般3人左右,2人攻击,1人防御,因为发现的漏洞可以攻击其他队伍,也要进行修复,所以攻防相辅相成,以攻为守。

比赛中每个队伍可能会维护多个靶机,web、pwn等,也可以每人负责一台,各自负责攻击和防御。总之人员的分工还是要根据团队和比赛的实际情况灵活安排,做到紧张有序。

0x03 攻防套路

初始SSH密码相同

比赛前主办方会提供ssh登陆的账号密码,当所有人密码相同时,可以运行事先准备好的ssh登陆和执行系统命令的脚本,先发制人,快速完成后门的部署和权限的维持。

系统端口渗透

使用netstat ps命令获取Gamebox上的端口服务开启情况 排除系统端口方面的漏洞

1.弱口令

ftp mysql ssh等

注意发现和修改利用ssh ftp mysql默认密码

注意/etc/passwd 发现可疑用户

2.服务配置

rsync samba redis rlogin nfs 中间件等

防御添加认证或者直接kill存在漏洞的进程(如果有权限的话)

mysql关闭远程访问,收回mysql用户的file权限防止mysql写shell和读取文件

关闭crontab服务 防止被写计划任务(如果有权限的话)

检查.ssh目录 注意是否被写入公钥

3.搭建进程网络监控

随时注意可疑进程

熟练使用iptables

备份Web目录 备份数据库

比赛开始后第一时间备份服务器中web目录下的文件和数据库,这是自我审计的基础,也是防止服务器在比赛中出现异常的情况下可以立即恢复到初始状态的先决条件。有的比赛可以提供恢复初始设置的机会,有的比赛不提供,所以备份十分重要。

文件监控 权限修改

chmod chattr等命令修改Web文件权限或者使用文件监控脚本随时注意文件的变化 防止文件上传漏洞同时也要注意保持checker的成功上传

寻找开源CMS EXP

如果Web直接给了开源的CMS,这个时候能够快速找到并能批量利用CMS Exp就显得非常重要。提高自身编写exp的能力,比赛时能够编写自动化批量exp与flag提交脚本会大大提高攻击得分效率。

有时候主办方会对CMS进行一定修改 我们可以下载相应版本的代码 diff一下发现其中不同,找到漏洞利用点

寻找预留后门

在维护的Gamebox上,很有可能已经预留了一个或多个后门,比如一句话木马,这个是送分题,可以利用这个迅速打一波,还可以视情况“搅屎”,利用这个漏洞一直维持权限,每轮都得分。将服务器中web目录下载到本地,利用D盾扫描,一般就可以发现预留后门。

Web弱口令

弱口令的问题几乎是必考,Web后台 tomcat很有可能存在弱口令需要立即修改,也可以修改其他队伍的后台口令,为本队所用,说不定可以利用后台getshell;如果修改视为服务宕机,这样还是不要动口令的心思。

修改配置文件

修改php apache配置文件 禁止特定函数可以有效防止命令执行代码执行漏洞(有权限的话)

关闭远程文件包含 设定包含范围 防止文件包含漏洞读取flag

禁用掉相关协议 防止SSRF攻击扩大化

代码审计

sql注入文件读取 写shell

反序列化导致代码执行

命令执行 代码执行

文件包含

SSRF

文件上传等

几乎所有能够导致文件读取、远程访问flag的漏洞都会涉及到

要求我们提高自己的代码审计能力在比赛有限的时间里能够快速发现相关漏洞给自己打上补丁并进行批量利用

WAF与log

Waf可以有效阻断各种Web攻击行为

Log日志记录可以查看自己被攻击时的攻击流量做到分析加固再利用

需要注意的是,部署Waf可能会导致服务不可用,需要谨慎部署。

权限维持与优雅搅屎

内存shell

shell防骑

1.MD5shell

2.远程ip认证

3.需要配置菜刀客户端

利用别人shell

删除对手shell

crontab计划任务

新建用户(有权限的话)

.ssh目录写公钥(有权限的话)

反弹shell

shell编程bash脚本

fork炸弹

删除数据库 删除关键文件

物理机漏洞 ms17010等

(内容较多这里不一一展开)

Pwn

Tip

使用python等网络编程模拟正常程序执行过程使之通过check,替换原有程序防止被攻击失分。

使用tcpdump抓取攻击流量,分析利用。

AWD相比较CTF更偏向于实战,更考验选手的综合素质,也是目前网络安全比赛的重要形式之一。本文只是带领大家了解AWD的大致流程,具体还需要自己的学习和实际操作。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171211G07QSE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券