2018 年山东省职业技能大赛 中职组“网络空间安全”赛项竞赛赛题

一、竞赛时间 


8:30-11:30,共计 3 小时。 


二、竞赛阶段 

 

2018 年山东省职业技能大赛 中职组“网络空间安全”赛项竞赛赛题_第1张图片


三、竞赛任务书内容 


(一)拓扑图

2018 年山东省职业技能大赛 中职组“网络空间安全”赛项竞赛赛题_第2张图片

(二)第一阶段任务书 


任务一、 Nmap 扫描渗透测试 

  • 任务环境说明: 
  • 服务器场景:Linux 
  • 服务器场景操作系统:Linux(版本不详) 
  •  渗透机场景:Kali 
  • 渗透机用户名:root,密码:toor  

提示:使用 nmap 进行脆弱性漏洞扫描应使用命令 nmap -p 3306 --script=mysql-brute.nse 【ip】 ,则脚本名称为 mysql-brute.nse 
1.在本地 PC 渗透测试平台 Kali 中使用 nmap 工具查看本地路由与接口,并将该操作使用的全部命令作为 FLAG 提交; 

nmap --iflist


2.通过本地 PC 中渗透测试平台 Kali 对服务器场景 Linux 进行 VNC 服务扫描渗透测试,并将使用的脚本名称作为 FLAG 提交(例 mysql-brute.nse);  

nmap --script vnc-brute.nse -p 5900

提示:找到nmap 的脚本所在文件路径:  /usr/share/nmap/scripts  下
3.通过本地 PC 中渗透测试平台 Kali 对服务器场景 Linux 进行 VNC 服务扫描渗透测试,并将该操作显示结果中 VNC 版本号作为 FLAG 提交;  

思路:进到 /usr/share/nmap/scripts 下,使用ls | grep vnc将查询的内容输入

可能是:vnc-info.nse


4.在本地 PC 渗透测试平台 Kali 中使用 nmap 发送空的 UDP 数据对类 DNS服务 avahi 进行拒绝服务攻击,并将使用的脚本名称作为 FLAG 提交(例mysql-brute.nse);

 

broadcast-avahi-dos 尝试使用DNS服务发现协议发现本地网络中的主机,并向每个主机发送NULL UDP数据包以测试它是否容易受到Avahi NULL UDP数据包拒绝服务(CVE-2011-1002)的攻击。

 broadcast-avahi-dos.nes 



5.通过本地 PC 中渗透测试平台 Kali 对服务器场景 Linux 进行模糊测试,来发送异常的包到靶机服务器,探测出隐藏在服务器中的漏洞 ,并将使用的脚本名称作为 FLAG 提交(例 mysql-brute.nse); 

 

nmap --script dns-fuzz.nse IP

 


6.在本地 PC 渗透测试平台 Kali 中使用 zenmap 工具扫描服务器场景可能存在远程任意代码执行漏洞,并将使用的脚本名称的字符串作为 FLAG 提交; (例mysql-brute.nse); 

http-shellshock.nse


7.在本地 PC 渗透测试平台 Kali 中使用 zenmap 工具扫描服务器场景可能存在远程任意代码执行漏洞(提示:检测路径为/cgi-bin/bin,需添加--script-args uri=/cgi-bin/bin 参数),并将该操作显示结果中漏洞编号和发布时间作为 FLAG 提交(漏洞编号和发布时间的字符串之间以分号隔开)。 

CVE-2014-7169;2014-09-24


任务二、 Web 应用程序 SQL Inject 安全攻防  
任务环境说明:  服务器场景:WebServ2003 
 服务器场景操作系统:Microsoft  Windows2003  Server 
 服务器场景用户名:administrator,密码:空 
 渗透机场景:Kali(用户名:root;密码:toor) 
 渗透机场景:BT5(用户名:root;密码:toor) 
 渗透机场景:WindowsXP(用户名:administrator 密码:123456) 
1.进入 WebServ2003 服务器场景,分析源文件 login.php,找到提交的变量名,并将全部的变量名作为 Flag(形式:[变量名 1&变量名 2&变量名 3…&变量名 n])提交;

[usernm&passwd]

 
2.通过万能用户名、任意密码登录进入 WebServ2003 服务器场景,"/"->"Employee Information Query",查看该页面源文件,找到提交的变量名,并将全部的变量名作为 Flag(形式: [变量名 1&变量名 2&变量名 3…&变量名 n])提交;

[usernm]

[usernm&]
 

 
3.通过对任务第 2 题页面注入点“_”进行 SQL 注入渗透测试,在WebServ2003 服务器场景中添加账号“Hacker”,密码“P@ssword”,并将注入语句作为 Flag 提交;

exec master.dbo.xp_cmdshell 'net user Hacker P@ssword /add' --

 
4.进入 WebServ2003 服务器场景的 C:\AppServ\www 目录,找到QueryCtrl.php 程序,使用 EditPlus 工具分析并修改 PHP 源文件,使之可以抵御 SQL 注入渗透测试,并将修改后的 PHP 源文件中的 F1 和 F2 作为 Flag(形式:[F1]+[ F2])提交; 

[addslashes]+[str_replace]


5.再次对该任务第 2 题页面注入点进行渗透测试,验证此次利用注入点对该 WebServ2003 服务器场景进行 SQL 注入渗透测试无效,并将测试后页面回显倒数第 2 行作为 Flag 提交。 

 


任务三、Linux 系统安全加固 
任务环境说明:  服务器场景:CentOS5.5 
 服务器场景操作系统:CentOS5.5 
 服务器场景用户名:root;密码:123456 
 渗透机场景:BT5  渗透机用户名:root,密码:toor 
1.在本地 PC 渗透测试平台 BT5 对服务器场景 CentOS5.5 进行服务扫描渗透测试,并将扫描结果上数第 5 行的 4 个单词作为 Flag(形式:单词 1|单词 2|单词 3|单词 4)提交; 

PORT|STATE|SERVICE|VERSION


2.通过本地 PC 渗透测试平台 BT5 对服务器场景 CentOS5.5 进行远程超级管理员口令暴力破解(使用 PC 中的渗透测试平台中的字典文件 superdic.txt),并将破解结果 Success:后面 2 个空格之间的字符串作为 Flag 提交;

root':'123456' 


3.通过本地 PC 渗透测试平台 BT5 打开已经建立的会话,在与 CentOS5.5的会话中新建用户 admin,并将该用户提权至 root 权限,并将新建用户 admin并提权至 root 权限全部命令作为 Flag(形式:命令 1|命令 2|…|命令 n)提交; 

useradd admin|passwd admin|usermod -g root admin


4.修改并在原目录下编译、运行./root/autorunp.c 木马程序,使该木马程序能够实现远程连接 8080 端口,并在该端口上运行/bin/sh 命令行程序,并将运行./root/autorunp.c 木马程序以及运行后的系统网络连接状态(netstat -an)增加行内容作为 Flag 提交; 

tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN


5.将 autorunp.c 木马程序设置为系统启动后自动加载,并转入系统后台运行,并将在配置文件中增加的内容作为 Flag 提交; 

/root/autorunp&


6.重新启动 CentOS5.5 服务器场景,通过 PC 中渗透测试平台 NETCAT 远程打开 CentOS5.5 服务器场景./bin/sh 程序,并运行查看 IP 地址命令,并将运行该命令需要输入的字符串作为 Flag 提交; 

/sbin/ifconfig


7.对 CentOS5.5 服务器场景进行安全加固,阻止 PC 中渗透测试平台对服务器场景 CentOS5.5 进行远程超级管理员口令暴力破解,并将配置文件增加的内容字符串作为 Flag 提交; 

PermitRootLogin no


任务四、 服务端口扫描渗透测试 
任务环境说明:  服务器场景:CentOS5.5 
 服务器场景操作系统:CentOS5.5 
 服务器场景用户名:root,密码:123456 
 渗透机场景:BT5  渗透机用户名:root,密码:toor  
1.进入本地虚拟机平台BT5中的/root目录,完善该目录下的PortScan.py文件,填写该文件当中空缺的 Flag1 字符串,将该字符串作为 Flag 值(形式:Flag1 字符串)提交;(PortScan.py 脚本功能见该任务第 6 题) 


2. 进入本地虚拟机平台 BT5 中的/root 目录,完善该目录下的PortScan.py 文件,填写该文件当中空缺的 Flag2 字符串,将该字符串作为 Flag值(形式:Flag2 字符串)提交;(PortScan.py 脚本功能见该任务第 6 题) 


3. 进入本地虚拟机平台 BT5 中的/root 目录,完善该目录下的PortScan.py 文件,填写该文件当中空缺的 Flag3 字符串,将该字符串作为 Flag值(形式:Flag3 字符串)提交;(PortScan.py 脚本功能见该任务第 6 题)

 
4. 进入本地虚拟机平台 BT5 中的/root 目录,完善该目录下的PortScan.py 文件,填写该文件当中空缺的 Flag4 字符串,将该字符串作为 Flag值(形式:Flag4 字符串)提交;(PortScan.py 脚本功能见该任务第 6 题) 


5. 进入本地虚拟机平台 BT5 中的/root 目录,完善该目录下的PortScan.py 文件,填写该文件当中空缺的 Flag5 字符串,将该字符串作为 Flag值(形式:Flag5 字符串)提交;(PortScan.py 脚本功能见该任务第 6 题) 


6. 进入本地虚拟机平台BT5下执行PortScan.py文件,对靶机服务器(IP:192.168.1.113)进行 TCP 服务端口号(1-1024)扫描渗透测试,使该渗透测试结果能够在屏幕上打印出靶机服务器的 TCP 服务端口号(1-1024)当中开放的端口,将 PortScan.py 文件执行以后,屏幕上的打印结果中的最后一行,最后一个单词字符串作为 Flag 值提交; 


任务五、 数据库安全攻防 
任务环境说明:  服务器场景名称:WinServ2003 
 服务器场景安全操作系统:Microsoft  Windows2003  Server 
 服务器场景用户名:administrator,密码:空 
 渗透机场景:BT5  渗透机用户名:root,密码:toor 
1. 进入 PC(虚拟机:Backtrack5),使用 Metasploit 程序的 arp_sweep模块,对数据库服务器所在网段(192.168.1.0/24)进行扫描测试,将该程序执行后的显示结果中的倒数第二行所有字符作为 Flag 值提交; 

 

[*] Auxiliary module execution completed


2. 通过 PC(虚拟机:Backtrack5)中的渗透测试工具对服务器场景WinServ2003 进行 TCP 服务扫描渗透测试(使用工具 nmap,使用必须要使用的参数),并将该操作使用命令中必须要使用的参数作为 Flag 提交; 

-sT


3.通过 PC(虚拟机:Backtrack5)中渗透测试工具对服务器场景WinServ2003进行ping扫描渗透测试(使用工具nmap,使用必须要使用的参数),并将该操作显示结果中的 SqlServer 服务名称字符串作为 Flag 提交;

 使用nmap -sP ip命令,将结果中的sqlServer(mssql)的服务名

ms-sql-s


4.在 PC(虚拟机:Backtrack5)下使用 Metasploit 程序 mssql_login,进行数据库超级管理员密码暴力破解渗透测试(使用字典文件./root/dic.txt),将该程序执行后的显示结果中的倒数第三行 successful 后面的所有字符作为Flag 值提交; 

WORKSTATION\sa:root


5.通过对服务器场景 WinServ2003 的数据库服务进行安全加固,阻止攻击机对其进行数据库超级管理员密码暴力破解渗透测试,并将进行安全配置的数据库身份验证选项中的英文单词字符串作为 Flag 值(形式:进行安全配置的数据库身份验证选项中的唯一一个英文单词字符串)提交; 

windows[W]


6.验证在 WinServ2003 的数据库服务进行安全加固后,再次在 PC(虚拟机:Backtrack5)下使用 Metasploit 程序 mssql_login,进行数据库超级管理员密码暴力破解渗透测试(使用字典文件./root/dic.txt),将该程序执行后的显示结果中的倒数第三行 failed 后面的所有字符作为 Flag 值提交; 

Failed:WORKSTATION\sa:123456


任务六、 SSH 弱口令渗透测试 
任务环境说明: 
 服务器场景:Linux 
 服务器场景操作系统:Linux(版本不详) 
 渗透机场景:BT5  渗透机用户名:root,密码:toor 
1.在本地 PC 渗透测试平台 BT5 中使用 zenmap 工具扫描服务器场景 Linux所在网段(例如:172.16.101.0/24)范围内存活的主机 IP地址和指定开放的 21、22、23 端口。并将该操作使用的命令中必须要添加的字符串作为 FLAG 提交(忽略 ip 地址);  

nmap –p 21,22,23


2.通过本地 PC 中渗透测试平台 BT5 对服务器场景 Linux 进行系统服务及版本扫描渗透测试,并将该操作显示结果中 SSH 服务对应的服务端口信息作为FLAG 提交; 

22/tcp


3.在本地 PC 渗透测试平台 BT5 中使用 MSF 模块对其爆破,使用 search 命令,并将扫描弱口令模块的名称信息作为 FLAG 提交;  

mssql_login


4.在上一题的基础上使用命令调用该模块,并查看需要配置的信息(使用show options 命令),将回显中需要配置的目标地址,密码使用的猜解字典,线程,账户配置参数的字段作为 FLAG 提交(之间以英文逗号分隔,例hello,test,..,..);  

RHOST,PASS_FILE,THREADS,USERNAME


5.在 msf 模块中配置目标靶机 IP 地址,将配置命令中的前两个单词作为FLAG 提交;  

set RHOSTS


6.在 msf 模块中指定密码字典,字典路径为/root/2.txt,用户名为 test爆破获取密码并将得到的密码作为 FLAG 提交;

exploit后得到的结果 


7.在上一题的基础上,使用第 6 题获取到的密码 SSH 到靶机,将 test 用户家目录中唯一一个后缀为.bmp 图片的文件名的字符串作为 FLAG 提交。 

使用ssh  test@ip 登陆后使用密码

Dir查看目录 dir /user/test


任务七、 Web 信息收集 
任务环境说明: 
 服务器场景:Linux 
 服务器场景操作系统:Linux(版本不详) 
 渗透机场景:Kali 
 渗透机用户名:root,密码:toor 
1.通过本地 PC 中渗透测试平台 Kali 对服务器场景 Linux 进行 Web 扫描渗透测试(使用工具 nikto,查看该命令的完整帮助文件),并将该操作使用命令中固定不变的字符串作为 Flag 提交;  

可使用命令

 nikto

nikto --help

nikto -h

man nikto 


2.通过本地 PC 中渗透测试平台 Kali 对服务器场景 Linux 进行 Web 扫描渗透测试(使用工具 nikto,扫描目标服务器 8080 端口,检测其开放状态),并将该操作使用命令中固定不变的字符串作为 Flag 提交(目标地址以http://10.10.10.1 来表示);

nikto -host http://10.10.10.1:8080  


3. 通过本地 PC 中渗透测试平台 Kali 对服务器场景 Linux 进行 Web 扫描渗透测试(使用工具 nikto,扫描目标服务器 80 端口),将回显信息中 apache服务的版本参数作为 flag 提交; 

使用2题结果查找


4. 通过本地 PC 中渗透测试平台 Kali 对服务器场景 Linux 进行 Web 扫描渗透测试(使用工具 nikto,扫描目标服务器 80 端口),将回显信息中 php 的版本参数作为 flag 提交; 

使用命令:nikto -host http://10.10.10.1查看结果中查找php字样 


5. 通过本地 PC 中渗透测试平台 Kali 对服务器场景 Linux 进行 Web 扫描渗透测试(使用工具 nikto,扫描 CGI-BIN 目录的文件),将该操作使用的命令中固定不变的字符串作为 Flag(目标地址以:http://10.10.10.1 来表示)提交; 

nikto -host http://10.10.10.1/ CGI-BIN


6. 通过本地 PC 中渗透测试平台 Kali 对服务器场景 Linux 进行 Web 扫描渗透测试,使用工具 nikto 并结合 nmap 的扫描结果进行扫描,首先使用 nmap工具对靶机所在网段的 80 端口进行扫描,并将扫描结果以输出至所有格式的方式输出到指定文件target中,将输出至所有格式需要用到的参数作为flag提交;  

nmap -p 80 -oX target


7. 通过本地 PC 中渗透测试平台 Kali 对服务器场景 Linux 进行 Web 扫描渗透测试,使用工具 nikto 扫描第六题生成的 target 文件中的网站,并将该操作使用的所有命令作为 FLAG 提交。 

nikto -host target.gnmap


任务八、数据分析与取证 
任务环境说明: 
 服务器场景:WinSrv2003 
 服务器场景操作系统:Window Server 2003 
 服务器场景用户名:administrator,密码:空 
 渗透机场景:WindowsXP 
 渗透机场景用户名:administrator,密码:123456  
1.使用Wireshark查看并分析WindowsXP桌面下的attack.pcapng数据包文件,通过分析数据包 attack.pcapng 找出黑客的 IP 地址,并将黑客的 IP 地址作为 FLAG(形式:[IP 地址])提交; 


2.继续查看数据包文件 attack.pacapng,分析出黑客扫描了哪些端口,并将全部的端口作为 FLAG(形式:[端口名 1,端口名 2,端口名 3…,端口名n])从低到高提交; 


3.继续查看数据包文件 attack.pacapng 分析出黑客最终获得的用户名是什么,并将用户名作为 FLAG(形式:[用户名])提交;

 
4.继续查看数据包文件 attack.pacapng 分析出黑客最终获得的密码是什么,并将密码作为 FLAG(形式:[密码])提交; 


5.继续查看数据包文件 attack.pacapng 分析出黑客连接一句话木马的密码是什么,并将一句话密码作为 FLAG(形式:[一句话密码])提交; 


6.继续查看数据包文件 attack.pacapng 分析出黑客下载了什么文件,并将文件名及后缀作为 FLAG(形式:[文件名.后缀名])提交; 
7.继续查看数据包文件 attack.pacapng 提取出黑客下载的文件,并将文件里面的内容为 FLAG(形式:[文件内容])提交; 


(三)第二阶段任务书 


各位选手是某公司的系统安全管理员,负责服务器(受保护服务器 IP、管理员账号见现场发放的参数表)的维护,该服务器可能存在着各种问题和漏洞(见漏洞列表)。你需要尽快对服务器进行加固,十五分钟之后将会有很多黑客对这台服务器进行攻击。 
提示:服务器中的漏洞可能是常规漏洞也可能是系统漏洞;需要加固常规漏洞;并对其它参赛队系统进行渗透测试,取得 FLAG 值并提交到裁判服务器。 十五分钟之后,各位选手将真正进入分组对抗环节。 
注意事项: 
注意 1:任何时候不能人为关闭服务器常用服务端口(21、22、23、53、80),否则将判令停止比赛,第三阶段分数为 0 分; 
注意 2:不能对裁判服务器进行攻击,否则将判令停止比赛,第三阶段分数为 0 分。 
注意 3:在加固阶段(前十五分钟,具体听现场裁判指令)不得对任何服务器进行攻击,否则将判令攻击者停止比赛,第三阶段分数为 0 分。 
注意 4:FLAG 值为每台受保护服务器的唯一性标识,每台受保护服务器仅有一个。 
    在渗透测试环节里,各位选手需要继续保护你的服务器免受各类黑客的攻击,你可以继续加固你的服务器,你也可以选择攻击其他组的保护服务器。 
漏洞列表如下: 
1. 靶机上的网站可能存在命令注入的漏洞,要求选手找到命令注入的相关漏洞,利用此漏洞获取一定权限。 
2. 靶机上的网站可能存在文件上传漏洞,要求选手找到文件上传的相关漏洞,利用此漏洞获取一定权限 
3. 靶机上的网站可能存在文件包含漏洞,要求选手找到文件包含的相关漏洞,与别的漏洞相结合获取一定权限并进行提权 
4. 操作系统提供的服务可能包含了远程代码执行的漏洞,要求用户找到远程代码执行的服务,并利用此漏洞获取系统权限。 
5. 操作系统提供的服务可能包含了缓冲区溢出漏洞,要求用户找到缓冲区溢出漏洞的服务,并利用此漏洞获取系统权限。 
6. 操作系统中可能存在一些系统后门,选手可以找到此后门,并利用预留的后门直接获取到系统权限。 
选手通过以上的所有漏洞点,最后得到其他选手靶机的最高权限,并获取到其他选手靶机上的 FLAG 值进行提交。 

你可能感兴趣的:(2018 年山东省职业技能大赛 中职组“网络空间安全”赛项竞赛赛题)