模块编号 | 模块名称 | 竞赛时间(小时) | 权值 |
---|---|---|---|
A | 基础设施设置与安全加固 | 1.5 | 20% |
B | 网络安全事件响应、数字取证调查和应用安全 | 1.5 | 40% |
C | CTF 夺旗-攻击 | 1.5 | 20% |
D | CTF 夺旗-防御 | 1.5 | 20% |
总计 | 6 | 100% |
3小时内同时考A,B模块,3小时内同时考C,D模块。 别骂了别骂了代码无法实现上下合并表格QAQ
假定你是某企业的网络安全工程师,对于企业的服务器系统,根据任务要求
确保各服务正常运行,并通过综合运用登录和密码策略、数据库安全策略、流量
完整性保护策略、事件监控策略、防火墙策略等多种安全策略来提升服务器系统
的网络安全防御能力。本模块要求对具体任务的操作按照竞赛场地物理主机 E 盘
根目录下提供的报告单模板(网络安全模块 A 报告单)要求进行截图,若需要截
取多个窗口请加以相应的文字说明,以 word 文档形式编辑、PDF 格式保存;以“网
络安全模块 A-XX” 作为文件名保存到 U 盘提交(其中:“XX”代表的是工位号;
比如工位号为“01”,以“网络安全模块 A-01”)。
LOG:日志服务器(Splunk),操作系统为 windows
Web:apache 服务器,操作系统为 linux
Data:数据库服务器(Mysql),操作系统为 Linux
请对服务器 Log、Web、Data 按要求进行相应的设置,提高服务器的安全性。
该文件是设置用户帐号限制的文件/etc/login.defs,这里我们用来对用户的过期时间,密码的最大长度进行修改
vi /etc/login.defs
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210319163747974.png)
###### 修改下面的项目值
```kotlin
PASS_MAX_DAYS 30 #最大时间
PASS_MIN_DAYS 7 #最小时间
PASS_MIN_LEN 6 #长度限制
:wq! #保存
vi /etc/pam.d/system-auth
ucredit=-1 #大写字母
lcredit=-1 #小写字母
dcredit=-1 #数字
ocredit=-1 #特殊字符
password requisite pam_cracklib.so try_first_pass retry=3 type= ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
pam_cracklib.so | 新建密码时会受到该代码限制,新密码复杂度不满足不要 |
---|---|
retry | 尝试次数 |
difok | 最小不同字符 |
dcredit | 数字个数 |
ocredit | 特殊字符个数 |
ucredit | 大写字母个数 |
lcredit | 小写字母个数 |
minlen | 最小长度 |
修改/etc目录下的iisue文件,该文件是Linux系统开机启动时在命令行界面弹出的欢迎语句文件。
vi /etc/issue
-----------warning-------------
For authorized users only
------------------------------
init 3 #验证
不会真有人以为ssh登录不算服务器吧。
vi /etc/ssh/sshd_config
Banner /etc/ssh/Banner
vi /etc/ssh/Banner
service sshd restart
钟;
vi /etc/pam.d/system-auth
unlock_time #设定普通用户锁定后,多少时间后解锁,单位是秒;
auth required pam_tally2.so deny=5 unlock_time=60
vi /etc/ssh/sshd_config
修改my.cnf文件
vi /etc/my.cnf
添加下面代码
user=mysql
drop databases test;
update user set user='SuerRoot' where user='root';
update user set password=md5(password) where user="user1";
grant select,insert,delete,update on testdb.* to user1@‘localhost’;
show grants for 'user1'@'localhost';
vi /etc/my.cnf
添加下方代码
skip-grant-tables
update mysql.user set password=password('123456') where user='SuperRoot';
vi /etc/my.cnf
添加下方代码
set-variable=local-infile=0
添加下方的代码
rm -f $HOME/.mysql_history
ln -s /dev/null $HOME/.mysql_history
vi /etc/my.cnf
log-bin=mysql-bin
server mysql restart #重启数据库
ServerTokens Prod #隐藏apach版本
ServerSignature Off #隐藏操作系统版本信息
编辑php.ini文件
vi /etc/php.ini
添加下方代码
expose_php = Off
编辑http.conf文件
vi /etc/httpd/conf/httpd.conf
exec、system、chroot;
vi /etc/php.ini
disable_functions=assert,phpinfo,eval,passthru,exec,system,chroot
vi /etc/httpd/conf/httpd.conf
MaxClients 200
地 host 文件解析域名 https://www.test.com 访问 Web 网站);
修改host文件
vi /etc/hosts
IP www.test.com
yum install mod_ssl
[root@localhost 6]# openssl genrsa -out server.key 1024
Generating RSA private key, 1024 bit long modulus
...................................................++++++
.++++++
e is 65537 (0x10001)
[root@localhost 6]# ls
server.key
[root@localhost 6]# openssl req -new -x509 -key server.key -out server.crt
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:Cn
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:www.test.com
Email Address []:1
[root@localhost 6]# ls
server.crt server.key
vi /etc/httpd/conf/httpd.conf
NameVirtualHost 172.16.100.2:443 #修改端口为443
<VirtualHost 172.16.104.2:443>
ServerName www.test.com #设置域名
SSLEngine on
SSLCertificateFile /etc/httpd/.ssl/server.crt #设置证书
SSLCertificateKeyFile /etc/httpd/.ssl/server.key #设置私钥
</VirtualHost>
service httpd restart
(Data)。
生成私钥和公钥,私钥给客户端,公钥留在服务器
ssh-keygen -t rsa
vim /etc/ssh/sshd_config
StrictModes no #可以避免因为~.ssh/文件夹权限设置不正确导致的无法登陆
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys #公钥文件存放位置
fsutil 8dot3name set 1
态码、大小;
vi /etc/httpd/conf/httpd.conf
按照下方代码添加和修改
LogFormat "%a %i %t %U %s %b" common # 分别对应客户端ip、用户等等
CustomLog logs/access_log common #日志文件位置
置;
vi /etc/vsftpd/vsftpd.conf
修改下方的代码
listen_port=2121
iptables -A INPUT -p tcp -m tcp --dport 2121 -j ACCEPT
vi /etc/vsftpd/vsftpd.conf
修改下方的代码
anonymous_enable=NO
vi /etc/vsftpd/vsftpd.conf
修改下方的代码
ascii_download_enable=NO
vi /etc/vsftpd/vsftpd.conf
修改下方的代码
ls_recurse_enable=NO
vi /etc/vsftpd/vsftpd.conf
修改下方的代码
chroot_local_user=YES
local_root=/ftp
select version();
select version();
select version();
进入虚拟机操作系统:CentOS 6.8,登陆数据库(用户名:root;密码:
root),进入 mysql 数据库,查看所有用户及权限,找到可以从任意 IP 地址访
问的用户,将该用户的用户名作为 flag 提交;(如有多个可以从任意 IP 地址访
问的用户,提交形式为用户名|用户名|用户名|用户名)
进入虚拟机操作系统:CentOS 6.8,登陆数据库(用户名:root;密码:
root),进入 mysql 数据库,查看所有用户及权限,找到可以从任意 IP 地址访
问的用户,使用 drop 命令将该用户删除,将操作命令作为 flag 提交。
进入虚拟机操作系统:CentOS 6.8,登陆数据库(用户名:root;密码:
root),进入 mysql 数据库,改变默认 mysql 管理员的名称,将系统的默认管理
员 root 改为 admin,防止被列举,将操作命令作为 flag 提交。
nikto -h IP
nikto -h IP
rpm -qa|grep php
nmap -sV -n IP
进入mysql
select version();
nmap -O -n IP
uname -r
search apache_mod
apache_mod_cgi_bash_env_exec
set targeturi /cgi-bin/bin
set rhost IP
showmount -e 0.0.0.0
根据上一题即可得出答案
mount -t nfs IP:/tmp/SZYZ /tmp/test
mount -t nfs即挂载nfs共享,后面的ip:/tmp是nfs路径,/tmp/test是自己本地要挂载到的目录
df -h
df -h命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况,可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
-H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
-T 文件系统类型
--help 显示帮助信息
--version 显示版本信息
df -i以inode模式来显示磁盘使用情况。
find /mnt -name flag.txt
download 文件 /root
通过本地 PC 中渗透测试平台 Kali 对服务器场景 Web20200529 中的网站进
行访问,找到登录界面中的 FLAG,并将 FLAG 提交;
通过本地 PC 中渗透测试平台 Kali 对服务器场景 Web20200529 中的网站进
行访问,找到登录界面背景中的 FLAG,并将 FLAG 提交;
通过本地 PC 中渗透测试平台 Kali 对服务器场景 Web20200529 中的网站进
行访问,在登录界面中登录,登录成功后在成功的界面中找到 FLAG 并提交;
通过本地 PC 中渗透测试平台 Kali 对服务器场景 Web20200529 中的网站进
行访问,登录成功后找到页面中的月亮,将月亮中的信息解密,并将解密后的信
息作为 FLAG 提交;
通过本地 PC 中渗透测试平台 Kali 对服务器场景 Web20200529 中的网站进
行访问,登录成功后找到页面中的十字星,将十字星中页面内容进行下载,将下
载到的文件解密,并将解密后的文件内容作为 FLAG 提交;
通过本地 PC 中渗透测试平台 Kali 对服务器场景 Web20200529 中的网站进
行访问,在登录界面中登录,登录失败后找到页面中的链接访问连接并下载文件,
将文件中的隐藏文件全称作为 FLAG 提交;
通过本地 PC 中渗透测试平台 Kali 对服务器场景 Web20200529 中的网站进
行访问,在登录界面中登录,登录失败后找到页面中的链接访问连接并下载文件,
将文件中隐藏信息文件的内容作为 FLAG 提交;
通过本地 PC 中渗透测试平台 Kali 对服务器场景 Web20200529 中的网站进
行访问,寻找每页中的隐藏信息,将每条信息按顺序合并,作为 FLAG 提交。
1.一般是图片隐写或者藏在数据包头和数据包结尾
2.可能要修改cookie
3.也可能给你个文件通过经验分析文件格式(因为会把文件转成其他不可读取的格式),然后转换文件格式或者是通过其他编码进制打开文件
4.可能藏在源代码里面F12找
5.图片的话一种是把文件藏在图片里面,第二种是快速闪烁的图片,截图就行(别说这个真的有)。第三种有加密,要把图片解密。第四种图片的长或宽被修改,需要通过修改图片的大小来显示flag(ctf多此类型)
使用渗透机场景 Kali2.0 中的工具扫描服务器,通过扫描服务器得到 web
端口,登陆网站(网站路径为 IP/up),找到网站首页中的 Flag 并提交;
使用渗透机场景 windows7 访问服务其场景中的网站,通过上题给的信息
获取本题,并将本题中的 Flag 提交;
使用渗透机场景 windows7 根据第二题的入口继续访问服务器本题场景,
通过提示得到 Flag 并提交;
使用渗透机场景 windows7 根据第三题入口继续访问服务器的本题场景,
通过提示联系前两题上传特定文件名得到 Flag 并提交;
使用渗透机场景 windows7 根据第四题入口继续访问服务器的本题场景,
通过提示得到 Flag 并提交;
使用渗透机场景 windows7 根据第五题入口继续访问服务器的本题场景,
通过提示得到 Flag 并提交;
使用渗透机场景 windows7 访问 http://靶机 IP/7,对该页面进行渗透测
试,通过提示得到 Flag 并提交;
使用渗透机场景 windows7 访问 http://靶机 IP/8,对该页面进行渗透测
试,通过提示得到 Flag 并提交;
使用渗透机场景 windows7 访问 http://靶机 IP/9,对该页面进行渗透测
试,通过提示得到 Flag 并提交;
使用渗透机场景 windows7 访问 http://靶机 IP/10,对该页面进行渗透
测试,通过提示得到 Flag 并提交;
使用渗透机场景 windows7 访问 http://靶机 IP/11,对该页面进行渗透
测试,通过提示得到 Flag 并提交;
使用渗透机场景 windows7 访问 http://靶机 IP/12,对该页面进行渗透
测试,通过提示得到 Flag 并提交;
使用渗透机场景 windows7 访问 http://靶机 IP/13,对该页面进行渗透
测试,通过提示得到 Flag 并提交;
建议不要批量打,容易打到裁判机。
一般是分为3个层次的靶机,每个层次分数不同,越难的分越高。
每个层次靶机有3个(具体看人数而定,会发生变化)当有人打一个靶机时,一般其他人再打会出现卡顿,或者打不进去。建议不要盲目认为靶机出问题就放过,可以先打其他的最后回来,不要死命和他杠。
假定你是某企业的网络安全渗透测试工程师,负责企业某些服务器的安全防
护,为了更好的寻找企业网络中可能存在的各种问题和漏洞。你尝试利用各种攻
击手段,攻击特定靶机,以便了解最新的攻击手段和技术,了解网络黑客的心态,
从而改善您的防御策略。
请根据《赛场参数表》提供的信息,在客户端使用本地电脑中的攻击机。
客户机操作系统:Windows 10 或 Windows 7
攻击机操作系统:Kali1.0、Kali2.0、BT5、Windows 7
靶机服务器操作系统:Linux/Windows
服务器中的漏洞可能是常规漏洞也可能是系统漏洞;
靶机服务器上的网站可能存在命令注入的漏洞,要求选手找到命令注入的
相关漏洞,利用此漏洞获取一定权限;
靶机服务器上的网站可能存在文件上传漏洞,要求选手找到文件上传的相
关漏洞,利用此漏洞获取一定权限;
靶机服务器上的网站可能存在文件包含漏洞,要求选手找到文件包含的相
关漏洞,与别的漏洞相结合获取一定权限并进行提权;
操作系统提供的服务可能包含了远程代码执行的漏洞,要求用户找到远程
代码执行的服务,并利用此漏洞获取系统权限;
操作系统提供的服务可能包含了缓冲区溢出漏洞,要求用户找到缓冲区溢
出漏洞的服务,并利用此漏洞获取系统权限;
操作系统中可能存在一些系统后门,选手可以找到此后门,并利用预留的
后门直接获取到系统权限。
自己可以打一遍自己的靶机来看漏洞(别打傻了!)可能会与前面的题目出现的靶机具有类似的漏洞。
你可以和你的同伴商量,即他加固时可以留意一下有那些漏洞,有什么端口开放,有什么后门漏洞。这样可以减少走弯路
建议查看用户密码,远程连接,数据库,ftp,http,ssh等多个服务。然后根据题目提示来进行判断,和寻找漏洞,记得提前截图。不要打完后再截图,最好有个过程,即你如何发现,如何解决,解决完。
不能对裁判服务器进行攻击,警告一次后若继续攻击将判令该参赛队离场;
flag 值为每台靶机服务器的唯一性标识,每台靶机服务器仅有 1 个;
选手攻入靶机后不得对靶机进行关闭端口、修改密码、重启或者关闭靶机、
删除或者修改 flag、建立不必要的文件等操作;
在登录自动评分系统后,提交靶机服务器的 flag 值,同时需要指定靶机
服务器的 IP 地址;
赛场根据难度不同设有不同基础分值的靶机,对于每个靶机服务器,前三
个获得 flag 值的参赛队在基础分上进行加分,本阶段每个队伍的总分均计入阶
段得分,具体加分规则参照赛场评分标准;
本环节不予补时。
假定各位选手是某安全企业的网络安全工程师,负责若干服务器的渗透测试
与安全防护,这些服务器可能存在着各种问题和漏洞。你需要尽快对这些服务器
进行渗透测试与安全防护。每个参赛队拥有专属的堡垒机服务器,其他队不能访
问。参赛选手通过扫描、渗透测试等手段检测自己堡垒服务器中存在的安全缺陷,
进行针对性加固,从而提升系统的安全防御性能。
请根据《赛场参数表》提供的信息,在客户端使用谷歌浏览器登录需要加固
的堡垒服务器。
客户机操作系统:Windows 10 或 Windows 7
攻击机操作系统:Kali1.0、Kali2.0、BT5、Windows 7
堡垒服务器操作系统:Linux/Windows
堡垒服务器中的漏洞可能是常规漏洞也可能是系统漏洞;
堡垒服务器上的网站可能存在命令注入的漏洞,要求选手找到命令注入的
相关漏洞,利用此漏洞获取一定权限;
堡垒服务器上的网站可能存在文件上传漏洞,要求选手找到文件上传的相
关漏洞,利用此漏洞获取一定权限;
堡垒服务器上的网站可能存在文件包含漏洞,要求选手找到文件包含的相
关漏洞,与别的漏洞相结合获取一定权限并进行提权;
操作系统提供的服务可能包含了远程代码执行的漏洞,要求用户找到远程
代码执行的服务,并利用此漏洞获取系统权限;
操作系统提供的服务可能包含了缓冲区溢出漏洞,要求用户找到缓冲区溢
出漏洞的服务,并利用此漏洞获取系统权限;
操作系统中可能存在一些系统后门,选手可以找到此后门,并利用预留的
后门直接获取到系统权限。
自己可以打一遍自己的靶机来看漏洞(别打傻了!)可能会与前面的题目出现的靶机具有类似的漏洞,建议查看用户密码,远程连接,数据库,ftp,http,ssh等多个服务。然后根据题目提示来进行判断,和寻找漏洞,记得提前截图。不要加固完后再截图,最好有个过程,即你如何发现,如何解决,解决完。
每位选手需要对加固点和加固过程截图,并自行制作系统防御实施报告,
最终评分以实施报告为准;
系统加固时需要保证堡垒服务器对外提供服务的可用性;
不能对裁判服务器进行攻击,警告一次后若继续攻击将判令该参赛队离场;老是有人打,不要拿脚本批量打!
本环节不予补时。