Git Product home page Git Product logo

takeshixx / advent-calendar-2018 Goto Github PK

View Code? Open in Web Editor NEW
10.0 5.0 2.0 2.48 MB

A technical advent calendar with CTF-like services where a new port opens every day.

C 1.09% Python 16.23% Go 5.59% HTML 28.44% Dockerfile 10.79% C# 2.36% Makefile 0.10% Shell 0.77% JavaScript 32.35% CSS 2.28%
python golang dotnet tcp openssl openssh ssh unicorn iptables sctp http serial pillow tcpmux chacha20 tls ssl websockets quic

advent-calendar-2018's Introduction

Advent Calendar of Advanced Cyber Fun 2018

A CTF-like advent calendar that opens a port everyday, starting from port 1. The challenges incorporate different protocols and services ranging from ancient RFCs to bleeding edge technologies. Each port is meant to be solvable rather easily so that it doesn't take too much time.

Generally, the services run in Docker containers. Each service has a Dockerfile and instructions in the respective README.md how to use it. However, there are some exceptions for services that could not run in Docker containers. These include i.e. incompatibilities with Docker and SCTP or requirements for setting sysctl parameters and iptables rules on the host system. These run via systemd.

The 2018 edition of the advent calendar was hosted at xmas.rip. The page contents are in the website directory.

Agenda

Port Challenge Path
1 TCPMUX (RFC1078) service: Assigned TCP port 1 by IANA (RFC1700). tcpmux
2 XMASbleed (CVE-2014-0160): Heartbleed with christmas fun! xmasbleed
3 HTTPoSCTP: HTTP over SCTP, a poor man's implementation of draft-natarajan-http-over-sctp-00.txt. sctphttp
4 KnockKnock: A webserver that is only accessible after knocking on TCP port sequence 42 23 16 15 8. knockknock
5 HTTPS with Client Certificate: Accessing the webserver requires a client certificate that includes christmas in the Common Name field. tlsclientcert
6 SERIAL Challenge. It is required to talk to two sockets. One read only and one write only. serial
7 XMASHTTP: A webserver that implements a special XMAS HTTP method xmashttp
8 TLS ChaCha: A HTTPS server that is only accessible with ChaCha20 based ciper suites. tlschacha
9 eBPF filter with magic keyword. C code will be provided. ebpf
10 .NET Remoting Server. pcap will be provided. remoting
11 PlainSSH: A patched OpenSSH server that only allows connections with "none" ciphers. Requires a patched OpenSSH client, maybe provide patch for OpenSSH v6.8. plainssh
12 TLS13: A HTTPS server that only supports TLSv1.3. tls13
13 TCPReserved: A service that is only accessible when the reserved bits in the TCP header are set. Similar to evil bit but on layer 4. reservedbits
14 XMASSSHHTTP: A TCP multiplexer port that runs HTTPS and SSH. xmassshhttp
15 A websocket Server which needs a specific input to print the success message websocket
16 ASMoverTCP: A service that prints byte code with arithmetic operations. assembly
17 TLS-SRP: A Nginx HTTPS server that only supports TLS-SRP with a weak password. tlssrp
18 Message Send Procotol 2: Python implementation of RFC1312. Users need to send a message to a specific user with a signature. Code for signature creation/checking will be provided. msp2
19 TCPImages: A challenge-response authentication that sends images with random codes. Clients have to send random code back in the same TCP session. tcpimages
20 XMASDoH: A DNS Queries over HTTPS (DoH) (RFC8484) server with a special xmas TXT record. xmasdoh
21 XMASQUIC: A simple QUIC server. xmasquic
22 Port Hunter: A servie that opens random TCP/UDP/SCTP ports. Clients have to follow each port to get the secret. porthunter
23 SSH Layer 2 VPN: Clients have to establish a ethernet tunnel via SSH and send a DHCP DISCOVER on the tap device. xmassshvpn
24 Merry XMAS: Obfuscated JavaScript that prints the secret, one char at a time. merryxmas

Development Setup

Create a development VM with pre-installed Docker:

vagrant up
vagrant ssh

Within the VM, you can build the Docker containers:

cd /vagrant/tcpmux
sudo docker build -t day01_tcpmux .
sudp docker run -d --restart=always -p 1:1 --name=day01 day01_tcpmux

The VM creates a second host-only interface by default, which should expose the services.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.