Skip to content

CyberPeace/ctf_nsjail

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CTF竞赛中的Docker环境

同时适用于解题、攻防竞赛

配置

将源代码文件或二进制文件放入bin目录,最终会编译成二进制,并拷入/home/ctf/challenge目录内。

flag位于/home/ctf/flag内,注意更新flag。

因赛题名不同,注意同时更新nsjail.cfg内的exec_binrerun.sh内的重启命令。

登录后,在本地监听9999端口,可扣1重启服务。

echo 1 | nc localhost 9999

注意:

  • 因nsjail所需,Docker环境需要--privileged权限,docker-compose.yml文件内已写。
  • 请重新初始化ctf用户的密码,并添加公钥。
  • 请根据需求配置nsjail.cfg。

一键运行

docker-compose up

特点

  1. 把CTF攻防比赛放进Docker容器,降低运维成本。

  2. 使用google/kafel,自动对抗通防机制,当前黑名单禁用seccomp ptrace两个syscall,更严格的做法,推荐设置白名单。

    seccomp_string: "	POLICY pwn {"
    seccomp_string: "		DENY {"
    seccomp_string: "			seccomp, ptrace"
    seccomp_string: "		}"
    seccomp_string: "	}"
    seccomp_string: "	USE pwn DEFAULT ALLOW"
    
  3. 支持socket编写的程序(设置为RERUN模式即可),而xinetd无法用在这种程序上。

    mode: RERUN
    # LISTEN = 0; /* Listening on a TCP port */
    # ONCE = 1;   /* Running the command once only */
    # RERUN = 2;  /* Re-executing the command (forever) */
    # EXECVE = 3; /* Executing command w/o the supervisor */
    
  4. 可用在多数web赛题上,不仅限于pwn,让比赛jiaoshi现象尽可能的变少,请自行探索。

致谢

About

基于nsjail的CTF竞赛Docker环境

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published