共计6小时
模块编号 模块名称 竞赛时间(小时) 权值
A 基础设施设置与安全加固 1.5 20%
B 网络安全事件响应、数字取证调查和应用安全 1.5 40%
C CTF 夺旗-攻击 1.5 20%
D CTF 夺旗-防御 1.5 20%
模块 A 基础设施设置与安全加固(200分)
一、项目和任务描述:
假定你是某企业的网络安全工程师,对于企业的服务器系统,根据任务要求确保各服务正常运行,并通过综合运用登录和密码策略、数据库安全策略、流量完整性保护策略、事件监控策略、防火墙策略等多种安全策略来提升服务器系统的网络安全防御能力。
二、服务器环境说明:
LOG:日志服务器(Splunk),操作系统为windows
Web:apache服务器,操作系统为linux
Data:数据库服务器(Mysql),操作系统为Linux
LOG:日志服务器(Splunk),操作系统为windows
Web:apache服务器,操作系统为linux
Data:数据库服务器(Mysql),操作系统为Linux
A-1任务一 登录安全加固
请对服务器Log、Web、Data 按要求进行相应的设置,提高服务器的安全性。
1.服务器密码策略(Log、Web、Data)
(1)服务器最小密码长度不少于6个字符、密码的使用期限7-30天;
windows:Win + R gpedit.msc 打开本地组策略编辑器
Windows:管理工具-本地安全策略-帐户策略-密码策略,设置密码长度不小于6,密码使用期限最短为7,最长为30
Linux:设置vim /etc/login.defs
文件
PASS_MAX_DAYS 30 #最大时间
PASS_MIN_DAYS 7 #最小时间
PASS_MIN_LEN 6 #长度限制
(2)服务器密码策略必须同时满足大小写字母、数字、特殊字符。
windows:Win + R gpedit.msc 打开本地组策略编辑器
windows:计算机配置–windows 设置–安全设置–账户策略–密码策略–密码必须符合复杂性要求
Linux:vim /etc/pam.d/system-auth
在pam_cracklib.so
的参数后面附加:
设置数字:dcredit= -1
设置大写字母::ucredit= -1
设置小写字母:lcredit= -1
设置特殊字符:ocredit= -1
-1 代表必须包含
2.登录策略(Log、Web、Data)
(1)用户登录服务器系统时,应该有警告标题“warning”内容为“For authorized users only”提示信息;
windows:计算机配置–windows 设置–本地策略–安全设置–安全选项–找到交互式登入得消息文本 输入 “warning” 标题 “For authorized users only”
linux:/etc/issue 输入 “For authorized users only”
init 3 验证一下
(2)一分钟内仅允许5次登录失败的尝试,超过5次,登录帐号锁定1分钟;
windows:计算机配置–windows 设置–安全设置–账户策略–账户锁定策略
Linux:vim /etc/pam.d/login
添加: auth required pam_tally2.so deny=5 unlock_time=60 even_deny_root root_unlock_time=300
五次登录失败:deny =5 设置登录账号锁定一分钟:unlock_time=60
(3)远程用户非活动会话连接超时应小于等于5分钟。
Linux:vim /etc/ssh/sshd_config
直接搜索🔍 / + 关键字(Client)
把注释去掉
windows:计算机配置–用户设置–管理模板–windows组件-远程桌面服务–会话时间限制 启用设置为5分钟
A-2任务二 数据库加固(Data)
1.以普通帐户MySql安全运行MySql,禁止MySql以管理员帐号权限运行;
vim /etc/my.cnf 在配置中进行设置 [mysqld] 添加user=mysql
2.删除默认数据库(test);
drop databases test;
3.改变默认MySql管理员用户为:SuperRoot;、
update user set user=“SuperRoot” where user=“root”;
flush privileges;
4.使用MySql内置MD5加密函数加密用户user1的密码为(P@ssw0rd1!);
update mysql.user set password=md5(“P@ssw0rd1!”) where user = ‘user1’;
5.赋予user1用户对数据库所有表只有select,insert,delete,update权限;
grant select,insert,delete,update on . to ‘user1’@’localhost’;
6.对忘记mysql数据库SuperRoot管理员密码进行重置操作;
在/etc/my.cnf 文件my[mysqd]下面添加 skip_grant_tables
Service mysqld restart 空密码登入进行修改密码
Update user set password=password(“P@ssw0rd1!”)where user=’SuperRoot’ and host=’localhost’;
在删除刚刚my.cnf 中添加的skip_grant_tables 重启使用新密码即可。
7.禁用LOCAL INFILE命令防止非授权用户访问本地文件;
Vim /etc/my.cnf 文件 在[mysqld]下添加 local-infile=0
8.为防止数据库操作信息泄露,请禁止使用MySql命令行历史记录;
find / -name “.mysql_history” 查看是否存在mysql的历史命令记录,如果有 就把他删除
rm -f /root/.mysql_history #删除历史记录文件 ln -s /dev/null
$HOME/.mysql_history #mysql_histfile变量设置为/dev/null
9.为了分析数据库运行过程中的一些异常活动,请开启MySql二进制日志。
vim /etc/my.cnf 在[mysqld]下面添加一行 log-bin = mysql-bin
保存重启 service mysqld restart
登入数据库
使用 show variables like ‘%log_bin%
’;
(如果log_bin 是off就表示没有开启,是on表示开启了)
A-3任务三 Web安全加固(Web)
1.防止网站信息探测及泄露,隐藏Apache 版本和操作系统版本相关信息;
vim /etc/httpd/conf/httpd.conf
ServerTokens Prod
# 隐藏Apache版本号
ServerSignature OFF #隐藏操作系统版本信息
2.防止PHP版本信息泄露,隐藏PHP的X-Powered-By信息;
vim /etc/php.ini
#打开php配置文件
expose_php 默认是on改为off
#隐藏php信息版本
3.防止网站目录信息泄露,禁用目录列表显示;
vim /etc/httpd/conf/httpd.conf
将 Indexes去掉 就可以防止网站目录信息泄露了
4.修改php配置文件禁用php危险函数:Assert、phpinfo、eval、passthru、exec、system、chroot;
vim /etc/php.ini
#打开php配置文件
搜索关键词 disable_functions 把后面要禁用的函数填上去即可。
5.为了减轻网站负载,设置网站最大并发连接数为200;
vim /etc/httpd/conf/httpd.conf
MaxClients 200
#连接最大数为200
6.为了保障服务器安全,限制访问Web根目录之外的文件;
A-4任务四 流量完整性保护(Web、Data)
1.对Web网站进行HTTPS配置,仅使用HTTPS协议访问网站(Web)(利用本地host文件解析域名https://www.test.com访问Web网站);
2.为了防止密码在登录或者传输信息中被窃取,仅使用证书登录SSH(Data)。
vim etc/ssh/sshd_config
把Password Authentication yes
改为no
把Pubkey Authentication yes
的注释去掉即可
windows:cmd里面输入一条: fsutil 8dot3name set 1
A-5任务五 事件监控(Web)
1.Web服务器开启自定义日志要求记录:客户端IP、用户、时间、行为、状态码、大小;
这个需要按题目要求勾选✔即可
2.配置splunk接收Web服务器、网站日志、系统日志、CPU负载、内存、磁盘空间、网络状态。
A-6任务六 服务加固vsFTPd (Data)
1.修改配置文件,将ftp服务预设端口改为2121,并对iptables进行配置;
vim /etc/vsftpd/vsftpd.conf
添加一条
listen_port=2121
防火墙规则: iptables -A INPUT -p tcp -m tcp --dport 2121 -j ACCEPT
2.修改配置文件,禁止匿名用户登录;
vim /etc/vsftpd/vsftpd.conf
3.修改配置文件,关闭ascii模式下载,防止被用于DoS攻击;
vim /etc/vsftpd/vsftpd.conf
ascii_download_enable=NO
4.修改配置文件,关闭ls -R命令,防止服务器被DoS攻击;
vim /etc/vsftpd/vsftpd.conf
ls_recurse_enable=NO
5.修改ftp默认主目录为/ftp文件夹,并将用户锁定在主目录内;
vim /etc/vsftpd/vsftpd.conf
添加这条
chroot_local_user=YES
##是否将所有用户限制在主目录,YES为启用 NO禁用
模块B 网络安全事件响应、数字取证调查和应用安全(400分)
B-1 任务一 数据库安全加固
任务环境说明:
服务器场景:CentOS6.8(用户名:root;密码:123456)
服务器场景操作系统:CentOS6.8
1.进入虚拟机操作系统:CentOS 6.8,登陆数据库(用户名:root;密码:root),查看数据库版本号,将查看数据库版本号的命令作为flag提交;
select version();
2.进入虚拟机操作系统:CentOS 6.8,登陆数据库(用户名:root;密码:root),查看数据库版本号,将查询到的数据库版本号作为flag提交;
5.0.95
3.进入虚拟机操作系统:CentOS 6.8,登陆数据库(用户名:root;密码:root),查看数据库列表,将查看数据库列表的命令作为flag提交;
show databases;
4.进入虚拟机操作系统:CentOS 6.8,登陆数据库(用户名:root;密码:root),进入mysql数据库,查看所有用户及权限,找到可以从任意 IP 地址访问的用户,将该用户的用户名作为flag提交;(如有多个可以从任意 IP 地址访问的用户,提交形式为用户名|用户名|用户名|用户名)
Use mysql;
select user,host from user where host=‘%’
5.进入虚拟机操作系统:CentOS 6.8,登陆数据库(用户名:root;密码:root),进入mysql数据库,查看所有用户及权限,找到可以从任意 IP 地址访问的用户,使用drop命令将该用户删除,将操作命令作为flag提交。
drop user ‘test’@'%'删除test用户
6.进入虚拟机操作系统:CentOS 6.8,登陆数据库(用户名:root;密码:root),进入mysql数据库,改变默认 mysql 管理员的名称,将系统的默认管理员root 改为 admin,防止被列举,将操作命令作为flag提交。
update user set user=‘admin’ where user=‘root’;
B-2 任务二 Web渗透测试
任务环境说明:
服务器场景:Pysystem2021
服务器场景操作系统:未知(关闭链接)
1.通过本地PC中渗透测试平台Kali对服务器场景PYsystem2021进行渗透测试,将该场景中Apache的版本号作为FLAG(例如:2.2.3)提交;
nikto -h
2.通过本地PC中渗透测试平台Kali对服务器场景PYsystem2021进行渗透测试,将该场景中PHP的版本号作为FLAG(例如:5.2.14)提交;
3.通过本地PC中渗透测试平台Kali对服务器场景PYsystem2021进行渗透测试,将该场景中数据库的版本号作为FLAG(例如:5.0.22)提交;
4.通过本地PC中渗透测试平台Kali对服务器场景PYsystem2021进行渗透测试,将该场景的内核版本号作为FLAG(例如:2.6.18)提交;
5.通过本地PC中渗透测试平台Kali对服务器场景PYsystem2021进行渗透测试,将该场景中网站后台管理员admin用户的密码作为FLAG提交;
6.通过本地PC中渗透测试平台Kali对服务器场景PYsystem2021进行渗透测试,将该场景/var/www/html目录中唯一一个后缀为shtml文件的文件内容作为FLAG提交。
B-3 任务三 系统漏洞
任务环境说明:
服务器场景名:Web20210529
服务器场景用户名:未知(关闭链接)
1.通过本地PC中渗透测试平台Kali查看目标靶机共享的目录及IP地址白名单(将IP地址替换为0.0.0.0),将查看命令作为Flag提交;
showmount -e 0.0.0.0
2.通过本地PC中渗透测试平台Kali 查看目标靶机共享的目录及IP地址白名单,将查看命令执行结果的共享目录作为Flag提交;
3.通过本地PC中渗透测试平台Kali渗透进入目标靶机,将挂载目标靶机文件系统到本地/mnt的命令(将IP地址替换为0.0.0.0)作为Flag提交;
4.通过本地PC中渗透测试平台Kali计算目标靶机磁盘可用空间(以M或G为单位)作为Flag提交;
5.通过本地PC中渗透测试平台Kali使用“flag.txt”作为关键词搜索靶机文件系统中该文件的位置,并将搜索所需命令作为Flag提交;
6.通过本地PC中渗透测试平台Kali下载flag.txt文件,将文件中的Flag提交;
这题的pdf已经上传到资源了有详细的解题思路这里我就不写了 不懂得可以私信我
B-4 任务四 隐藏信息探索
任务环境说明:
服务器场景:Web20210529
服务器场景操作系统:未知 (关闭链接)
1.通过本地PC中渗透测试平台Kali对服务器场景Web20210529中的网站进行访问,找到登录界面中的FLAG,并将FLAG提交;
访问是一个很好看得登入页面 通过发现右键被禁用了 在URL 添加一条协议
view-source:
就可以看源代码了 发现 FLAG
FLAG: welcome to css ! #这里有个感叹号 提交得时候可能有可能没有多尝试即可。
2.通过本地PC中渗透测试平台Kali对服务器场景Web20200529中的网站进行访问,找到登录界面背景中的FLAG,并将FLAG提交;
在sources中找到bgf.jpg文件,将它下载到桌面并使用WinHex打开,flag就在最后
3.通过本地PC中渗透测试平台Kali对服务器场景Web20200529中的网站进行访问,在登录界面中登录,登录成功后在成功的界面中找到FLAG并提交;
F12打开 修改 maxlength
不为0就行 这个是输入账号密码得长度限制 而且这个网站他会过一段时间刷新 应该是延时注入
给大家的福利
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
网络安全面试题
绿盟护网行动
还有大家最喜欢的黑客技术
网络安全源码合集+工具包
所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!