CTF思路
点击放大

Create an ephemeral, collaborati en inside GitHub
Actions; con save data with git. Particularly useful for solving
Capture The Flag
(CTF)
problems.
Less technically: this is kind of like Google Docs for working on hacking
competitions collaboratively.
Create a repo from the
template. Do the rest
of the steps from within your copy of the repository. The link to create a copy
of the repository will only work for users logged into GitHub.
In all cases, the username is runner and the password is ctf.
Connecting over Tor is the most secure way to use the server, and doesn't
require signing up for any service. It does, however, require downloading the
Tor Browser Bundle. It also runs with noticeably higher latency than using the
alternati connection method.
0. Create a repo from the
template. Many of
the following links will only work from within your copy of the repository.
Creating a copy only works for users logged into GitHub.
1. Download and run the Tor Browser
Bundle.
2. Na to the "Run Collaborative CTF En"
workflow.
3. Start the ser the button in the top right ("Run workflow").
4. View the output; wait for it to print the connection information.
5. SSH in or connect from the Web using the connection information printed
during the Action run. Note: whether connection to the .onion address
using the browser or SSH, Tor Browser must be running.
6. Tor browser has a default setting that causes text to be illegible in ttyd
and/or its dependency xterm.js. To fix this, go to about:config in the
address bar, and set privacy.resistFingerprinting to false.
Connecting o instead of Tor is a less secure, but lower-latency way to
connect to the ser on GitHub Actions. This method of connecting
doesn't require downloading Tor, but it does require signing up for ngrok.
0. Create a repo from the
template. Many of
the following links will only work from within your copy of the repository.
Creating a copy only works for users logged into GitHub.
1. Sign up for ngrok.
2. Copy your ngrok
Authtoken.
3. Na to the "Run Collaborative CTF En"
workflow.
4. Paste in your ngrok Authtoken when you start the ser the button in
the top right ("Run workflow").
- To avoid pasting the Authtoken every time, paste it into a secret called
NGROK_TOKEN under the Secrets settings
area. It will be saved here and used automatically.
5. View the output; wait for it to print the connection information.
6. SSH in or connect from the Web using the connection information printed
during the Action run.
tmux with <kbd>Ctrl</kbd> +tmuxtmux cares abouttmux adjusts the size of a window to accommodate the smallestquit command to terminate the server for all connected users~/ctf) for each CTF to stay organizedgit within the ~/ctf foldersudo capabilities<details>
<summary><b>Graphical Server</b></summary>
Don't use the graphical workflow unless absolutely necessary!
0. Create a repo from the
template. Many of
the following links will only work from within your copy of the repository.
Creating a copy only works for users logged into GitHub.
1. Sign up for ngrok.
2. Copy your ngrok
Authtoken.
3. Na to the "Run Graphical RDP CTF En (Ubuntu GNOME)"
workflow").
4. Paste in your ngrok Authtoken when you start the ser the button in
the top right ("Run workflow").
- To avoid pasting the Authtoken every time, paste it into a secret called
NGROK_TOKEN under the Secrets settings
area. It will be saved here and used automatically.
5. View the output; wait for it to print the connection information.
6. Connect to the HTTP link in your browser or paste the connection link into
your remote desktop (RDP)
client.
- On Windows, press the start button and search for "Remote Desktop
Connection" – the client should be installed by default.
- On Linux Remmina is a
well-regarded RDP client.
</details>
This project is for those with limited access to compute resources – students
in particular. By making it possible to connect from the web and over Tor, the
project is designed to be accessible to those who are behind a firewall and/or
are unable to install software on the computer they are using. For example,
someone who wants to participate in a CTF competition, but is using
shared computers in a library or a school computer lab.
This project uses generously-offered, free resources in a way that was likely
not intended by GitHub. Please do not abuse them.
I claim no responsibility for how you use this project. Based on my reading of
GitHub's:
I ha that using this Actions workflow to do productive work,
particularly if you don't have the ability to run a Linux computer of your own,
is probably permissible if done in good faith, and with an effort made to
reduce excessi consumption. For example, don't use the graphical
workflows unless absolutely necessary, because they are considerably more
resource intensive to set up and run, and don't leave the workflows running
when not using them.
That being said, I may be reading the policies wrong, and GitHub has the right
to change them at any time. In particular, if this use of GitHub Actions is
abused, it is likely that future ability to do things like this will be limited
by GitHub. If you like it, don't ruin it for others.
Note: typical users get 3,000 minutes of private Actions
time
per month per user. This project can quickly run up that time if you are not
careful. Check your own usage here to
see how close to the limit you are. Also note that actions stop automatically
after 6 hours.
Solution: Restart Tor browser
Solution: Disable the privacy.resistFingerprinting setting in
about:config
Solution: The ngrok authtoken supplied either as input to the workflow,
or as a repository secret is invalid or corrupted
Solution: Make sure Tor browser is running while the command is run. If
it is still not working, try the command on port 9050 instead of 9150
Solution: Run the action again. If it continues to fail, open an
issue
Solution: Use Tor browser and do not use tor2web sites
dotfiles directory contains configuration files for manyinstall.sh copies dotfiles to the proper.tmux.conf contains custom shortcuts for tmux.bashrc is pretty minimal, but contains a fewttyd_run.sh is run every time a new usertmux session that uses one common set of windows for all clientsThanks to my good friend Logan Snow ()
for testing, fixing bugs, and other contributions!
This project makes use of several great software packages that have made their
services a for free:
开发语言:Shell
Star 数:73
该项目属于CTF思路方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕Collaborative programming environment inside GitHub Actions – like Google Docs for hacking展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。
从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。
1. 下载源码压缩包,解压到本地环境。
2. 根据项目类型准备对应的运行环境与依赖。
3. 按照 README 中的步骤完成配置与部署。
4. 在隔离的测试环境中运行验证,避免影响生产系统。
本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。
| 资源标题 | ctf-collab - Collaborative programming environment inside GitHu |
| 所属分类 | CTF思路 |
| 发布作者 | admin |
| 发布时间 | 2026-10-06 00:00:45 |
| 下载权限 | 免费下载 |
| 附件数量 | 2 个下载链接 |
| 浏览次数 | 419 |
| 讨论数量 | 0 |
| 主题状态 | 正常讨论中 |