From f657109752f803d56b12c7c92c6fc1d056acefad Mon Sep 17 00:00:00 2001 From: Egor Bochkarev Date: Sun, 9 Nov 2025 14:01:58 +0700 Subject: [PATCH] feat: add ip range config parameters --- README.md | 10 ++ config.yml | 13 ++ docs/config.md | 37 +++++ docs/{ => img}/logo.png | Bin docs/img/ui_config.png | Bin 0 -> 129848 bytes workers/config_loader/go.mod | 7 +- workers/config_loader/go.sum | 9 ++ .../config_loader/internal/config/config.go | 12 ++ .../config_loader/internal/service/config.go | 76 ++++++++-- workers/config_loader/internal/utils/utils.go | 88 +++++++++++ .../internal/utils/utils_test.go | 137 ++++++++++++++++++ 11 files changed, 378 insertions(+), 11 deletions(-) create mode 100644 docs/config.md rename docs/{ => img}/logo.png (100%) create mode 100644 docs/img/ui_config.png create mode 100644 workers/config_loader/internal/utils/utils.go create mode 100644 workers/config_loader/internal/utils/utils_test.go diff --git a/README.md b/README.md index c949de3..49d11a5 100644 --- a/README.md +++ b/README.md @@ -30,12 +30,21 @@ ### Start +1. Configure *config.yml* for your competition. A detailed description of the quick configuration is [here](./docs/config.md) + +2. Start the farm ```bash make up ``` Credentials for basic auth and the token for sending flags via start_exploit.py will be printed to stdout. +3. After the game ends, turn off the farm and clean the database and queue +```bash +make down +make clean-all +``` + ## Features - Uploading exploits in ui @@ -48,6 +57,7 @@ Credentials for basic auth and the token for sending flags via start_exploit.py - Bash script - Binary - View logs of running exploits and sending flags on ui +- Configuring vulnboxes ip addresses using [various methods](./docs/config.md) ## Components diff --git a/config.yml b/config.yml index d9fdd8b..92f46c3 100644 --- a/config.yml +++ b/config.yml @@ -3,6 +3,19 @@ exploit_runner: - 10.10.1.2 - 10.10.2.2 - 10.10.3.2 + team_ip_cidrs: + - "10.228.79.0/24" + - "10.229.79.0/24" + team_ip_ranges: + - "10.200.78.2-10.200.78.200" + - "10.200.78.221-10.200.78.233" + team_ip_from_N: # N - range(n_start, n_end); X = N / block + offset_x, Y = N % block + offset_y + n_start: 0 + n_end: 2000 + offset_x: 32 + offset_y: 0 + block: 200 + ip_template: "10.{X}.{Y}.2" flag_format: '[A-Z0-9]{31}=' run_duration: 10s exploit_directory: ./exploits diff --git a/docs/config.md b/docs/config.md new file mode 100644 index 0000000..e13685b --- /dev/null +++ b/docs/config.md @@ -0,0 +1,37 @@ +# Config + +## Start configuration + +The initial farm configuration is located in **config.yml** and must be configured before starting the farm. + +You have to change: + +### Section exploit_runner + +1. Vulnboxes ip addresses (target ip addresses for exploits). +This can be done in one of four ways (you can remove unnecessary fields from config.yml): + - **team_ips** - list of IP addresses of team vulnboxes + - **team_ip_cidrs** - cidrs of team vulnboxes + - **team_ip_ranges** - range of team vulnboxes + - **team_ip_from_N** - range of team vulnboxes calculating by formula for template like "10.{X}.{Y}.2" + - N - range(**n_start**, **n_end**) + - X = N / **block** + **offset_x** + - Y = N % **block** + **offset_y** +2. **flag_format** - format of flag in CTF competition. This regular expression will extract flags from the exploit text + +### Section flag_sender + +1. **plugin** - module for sending flags in jury system +2. **jury_flag_url_or_host** - url or host of jury system where the flags will be sent +- For HTTP plugins should be url like: http://example.com/flags or http://1.2.3.4:5555/flags +- For TCP plugins should be hostname + port like: example.com:5555 or 1.2.3.4:5555 +3. **token** - auth token for jury system (if needed) +4. **flag_ttl** - time to live of flags + +## Real-time configuration + +All settings of this configuration can be changed in real-time in ui. The exception is parameter **plugin** in section **flag_sender**. To change it, you need to restart the farm. + +It is also not recommended to add ip addresses via the ui, as there is no option for bulk addition. + +![ui config img](img/ui_config.png) diff --git a/docs/logo.png b/docs/img/logo.png similarity index 100% rename from docs/logo.png rename to docs/img/logo.png diff --git a/docs/img/ui_config.png b/docs/img/ui_config.png new file mode 100644 index 0000000000000000000000000000000000000000..4721868fa8ff4b59dff08c2414280d795eb44fb0 GIT binary patch literal 129848 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%0A+f*nvX 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�`&MM@q5 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ⅆ=VXmVAKM>)juD=KVC{?~w!@km`G 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 literal 0 HcmV?d00001 diff --git a/workers/config_loader/go.mod b/workers/config_loader/go.mod index 768bb91..1aee8cf 100644 --- a/workers/config_loader/go.mod +++ b/workers/config_loader/go.mod @@ -7,18 +7,23 @@ require ( github.com/jackc/pgx/v5 v5.7.5 github.com/jacute/prettylogger v0.0.7 github.com/kelseyhightower/envconfig v1.4.0 + github.com/stretchr/testify v1.10.0 ) require ( + github.com/davecgh/go-spew v1.1.1 // indirect github.com/fatih/color v1.17.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect github.com/jackc/puddle/v2 v2.2.2 // indirect + github.com/kr/text v0.2.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/stretchr/testify v1.10.0 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/rogpeppe/go-internal v1.14.1 // indirect golang.org/x/crypto v0.37.0 // indirect golang.org/x/sync v0.13.0 // indirect golang.org/x/sys v0.32.0 // indirect golang.org/x/text v0.24.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/workers/config_loader/go.sum b/workers/config_loader/go.sum index 3f5ab41..6754665 100644 --- a/workers/config_loader/go.sum +++ b/workers/config_loader/go.sum @@ -1,3 +1,4 @@ +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -17,6 +18,10 @@ github.com/jacute/prettylogger v0.0.7 h1:inKCDEJ42j31hNVB6wAYZWOrc7E4QJ//x2hcR0L github.com/jacute/prettylogger v0.0.7/go.mod h1:3lynOiaGfyYdX6g8mz6cEg9CyLBZSTnPWwXdeQlao2w= github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8= github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= @@ -24,6 +29,8 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -40,6 +47,8 @@ golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/workers/config_loader/internal/config/config.go b/workers/config_loader/internal/config/config.go index dbe6296..f9a6ee4 100644 --- a/workers/config_loader/internal/config/config.go +++ b/workers/config_loader/internal/config/config.go @@ -16,6 +16,9 @@ type Config struct { type ExploitRunnerConfig struct { TeamIPs []string `yaml:"team_ips"` + TeamIPRange []string `yaml:"team_ip_ranges"` + TeamIPCidr []string `yaml:"team_ip_cidrs"` + TeamIPFromN *TeamIPFromN `yaml:"team_ip_from_N"` FlagFormat string `yaml:"flag_format"` RunDuration time.Duration `yaml:"run_duration"` MaxConcurrentExploits int `yaml:"max_concurrent_exploits"` @@ -43,6 +46,15 @@ type DBConfig struct { DBName string `envconfig:"PG_DB_NAME"` } +type TeamIPFromN struct { + NStart int `yaml:"n_start"` + NEnd int `yaml:"n_end"` + OffsetX int `yaml:"offset_x"` + OffsetY int `yaml:"offset_y"` + Block int `yaml:"block"` + IPTemplate string `yaml:"ip_template"` +} + const defaultConfigFilepath = "./config.yml" func MustParseConfig() *Config { diff --git a/workers/config_loader/internal/service/config.go b/workers/config_loader/internal/service/config.go index 719aefc..889d076 100644 --- a/workers/config_loader/internal/service/config.go +++ b/workers/config_loader/internal/service/config.go @@ -4,6 +4,7 @@ import ( "config_loader/internal/config" "config_loader/internal/models" "config_loader/internal/postgres" + "config_loader/internal/utils" "config_loader/pkg/common_config" "context" "errors" @@ -18,19 +19,53 @@ func (s *Service) LoadConfigIntoDB(ctx context.Context, cfg *config.Config) erro log := s.log.With(slog.String("op", op)) var existTeams []string - for _, ip := range cfg.ExploitRunner.TeamIPs { - _, err := s.db.AddTeam(ctx, &models.Team{ - IP: ip, - }) + + // add single ips + err := s.addIps(ctx, cfg.ExploitRunner.TeamIPs, existTeams) + if err != nil { + log.Warn("error adding ips", slog.Any("ips", cfg.ExploitRunner.TeamIPs), prettylogger.Err(err)) + } + + // add ip ranges + for _, ipRange := range cfg.ExploitRunner.TeamIPRange { + ips, err := utils.ExpandRange(ipRange) if err != nil { - if errors.Is(err, postgres.ErrTeamAlreadyExists) { - existTeams = append(existTeams, ip) - continue - } - log.Warn("team cannot be added", prettylogger.Err(err)) - return err + log.Warn("error adding ip range", slog.String("ip_range", ipRange), prettylogger.Err(err)) + continue + } + err = s.addIps(ctx, ips, existTeams) + if err != nil { + log.Warn("error adding ips", slog.Any("ips", ips), prettylogger.Err(err)) + } + } + + // add ip cidrs + for _, ipCIDR := range cfg.ExploitRunner.TeamIPCidr { + ips, err := utils.ExpandCIDR(ipCIDR) + if err != nil { + log.Warn("error adding ip cidr", slog.String("ip_cidr", ipCIDR), prettylogger.Err(err)) + continue + } + err = s.addIps(ctx, ips, existTeams) + if err != nil { + log.Warn("error adding ips", slog.Any("ips", ips), prettylogger.Err(err)) } } + + // add ip from N + ips := utils.ExpandIpFromN( + cfg.ExploitRunner.TeamIPFromN.NStart, + cfg.ExploitRunner.TeamIPFromN.NEnd, + cfg.ExploitRunner.TeamIPFromN.OffsetX, + cfg.ExploitRunner.TeamIPFromN.OffsetY, + cfg.ExploitRunner.TeamIPFromN.Block, + cfg.ExploitRunner.TeamIPFromN.IPTemplate, + ) + err = s.addIps(ctx, ips, existTeams) + if err != nil { + log.Warn("error adding ips", slog.Any("ips", ips), prettylogger.Err(err)) + } + if len(existTeams) > 0 { log.Info("some teams already exist", slog.Any("teams", existTeams)) } @@ -70,3 +105,24 @@ func (s *Service) LoadConfigIntoDB(ctx context.Context, cfg *config.Config) erro return nil } + +func (s *Service) addIps(ctx context.Context, ips []string, existTeams []string) error { + const op = "service.jacfarm.addIps" + log := s.log.With(slog.String("op", op)) + + for _, ip := range ips { + _, err := s.db.AddTeam(ctx, &models.Team{ + IP: ip, + }) + if err != nil { + if errors.Is(err, postgres.ErrTeamAlreadyExists) { + existTeams = append(existTeams, ip) + continue + } + log.Warn("team cannot be added", prettylogger.Err(err)) + return err + } + } + + return nil +} diff --git a/workers/config_loader/internal/utils/utils.go b/workers/config_loader/internal/utils/utils.go new file mode 100644 index 0000000..da31678 --- /dev/null +++ b/workers/config_loader/internal/utils/utils.go @@ -0,0 +1,88 @@ +package utils + +import ( + "fmt" + "net" + "strconv" + "strings" +) + +// ExpandCIDR returns all IP addresses in a CIDR range without network and broadcast addresses +// Example: ExpandCIDR("38.0.101.0/30") returns []string{"38.0.101.1", "38.0.101.2"} +func ExpandCIDR(cidr string) ([]string, error) { + _, ipnet, err := net.ParseCIDR(cidr) + if err != nil { + return nil, fmt.Errorf("invalid cidr") + } + + var ips []string + for ip := nextIP(ipnet.IP.Mask(ipnet.Mask)); ipnet.Contains(ip); ip = nextIP(ip) { + ips = append(ips, ip.String()) + } + return ips[:len(ips)-1], nil +} + +func nextIP(ip net.IP) net.IP { + ip = append(net.IP(nil), ip...) + for j := len(ip) - 1; j >= 0; j-- { + ip[j]++ + if ip[j] != 0 { + break + } + } + return ip +} + +// ExpandRange returns all IP addresses in range +// Example: ExpandRange("38.0.100.255-38.101.1") returns []string{"38.0.100.255", "38.0.101.0", "38.101.1"} +func ExpandRange(iprange string) ([]string, error) { + parts := strings.SplitN(iprange, "-", 2) + if len(parts) != 2 { + return nil, fmt.Errorf("invalid ip range") + } + + startIP, endIP := parts[0], parts[1] + s := net.ParseIP(startIP).To4() + if s == nil { + return nil, fmt.Errorf("invalid start range IP") + } + e := net.ParseIP(endIP).To4() + if e == nil { + return nil, fmt.Errorf("invalid end range IP") + } + + var ips []string + for ip := append(net.IP(nil), s...); !ipAfter(ip, e); ip = nextIP(ip) { + ips = append(ips, ip.String()) + } + return ips, nil +} + +func ipAfter(a, b net.IP) bool { + for i := 0; i < 4; i++ { + if a[i] > b[i] { + return true + } + if a[i] < b[i] { + return false + } + } + return false +} + +// ExpandIpFromN returns all IP addresses by template with variables {X}, {Y} +// Example: ExpandIpFromN(0, 6, 32, 1, 3, "10.{X}.{Y}.5") returns []string{"10.32.1.5", "10.32.2.5", "10.33.1.5", "10.33.2.5", "10.34.1.5"} +func ExpandIpFromN(nStart, nEnd, offsetX, offsetY, block int, ipTmpl string) []string { + ips := make([]string, 0, nEnd-nStart) + for n := nStart; n < nEnd; n++ { + ip := string([]byte(ipTmpl)) + ip = strings.Replace( + ip, "{X}", strconv.Itoa(n/block+offsetX), 1, + ) + ip = strings.Replace( + ip, "{Y}", strconv.Itoa(n%block+offsetY), 1, + ) + ips = append(ips, ip) + } + return ips +} diff --git a/workers/config_loader/internal/utils/utils_test.go b/workers/config_loader/internal/utils/utils_test.go new file mode 100644 index 0000000..e1f54af --- /dev/null +++ b/workers/config_loader/internal/utils/utils_test.go @@ -0,0 +1,137 @@ +package utils + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestExpandCIDR(t *testing.T) { + testcases := []struct { + name string + cidr string + addresses []string + }{ + { + name: "ok 10.10.0.0/30", + cidr: "10.10.0.0/30", + addresses: []string{ + "10.10.0.1", + "10.10.0.2", + }, + }, + { + name: "ok 192.168.55.0/29", + cidr: "192.168.55.0/29", + addresses: []string{ + "192.168.55.1", + "192.168.55.2", + "192.168.55.3", + "192.168.55.4", + "192.168.55.5", + "192.168.55.6", + }, + }, + } + + for _, tc := range testcases { + t.Run(tc.name, func(t *testing.T) { + addresses, err := ExpandCIDR(tc.cidr) + require.NoError(t, err) + require.Equal(t, tc.addresses, addresses) + }) + } +} + +func TestExpandRange(t *testing.T) { + testcases := []struct { + name string + iprange string + addresses []string + }{ + { + name: "ok 10.10.0.254-10.10.1.1", + iprange: "10.10.0.254-10.10.1.1", + addresses: []string{ + "10.10.0.254", + "10.10.0.255", + "10.10.1.0", + "10.10.1.1", + }, + }, + { + name: "ok 10.10.5.0-10.10.5.2", + iprange: "10.10.5.0-10.10.5.2", + addresses: []string{ + "10.10.5.0", + "10.10.5.1", + "10.10.5.2", + }, + }, + } + + for _, tc := range testcases { + t.Run(tc.name, func(t *testing.T) { + addresses, err := ExpandRange(tc.iprange) + require.NoError(t, err) + require.Equal(t, tc.addresses, addresses) + }) + } +} + +func TestExpandIpFromN(t *testing.T) { + testcases := []struct { + name string + nStart, nEnd int + offsetX, offsetY int + block int + ipTmpl string + addresses []string + }{ + { + name: "ok1", + nStart: 0, + nEnd: 6, + offsetX: 32, + offsetY: 1, + block: 2, + ipTmpl: "10.{X}.{Y}.1", + addresses: []string{ + "10.32.1.1", + "10.32.2.1", + "10.33.1.1", + "10.33.2.1", + "10.34.1.1", + "10.34.2.1", + }, + }, + { + name: "ok2", + nStart: 0, + nEnd: 6, + offsetX: 25, + offsetY: 0, + block: 5, + ipTmpl: "10.{X}.{Y}.1", + addresses: []string{ + "10.25.0.1", + "10.25.1.1", + "10.25.2.1", + "10.25.3.1", + "10.25.4.1", + "10.26.0.1", + }, + }, + } + + for _, tc := range testcases { + t.Run(tc.name, func(t *testing.T) { + addresses := ExpandIpFromN( + tc.nStart, tc.nEnd, + tc.offsetX, tc.offsetY, + tc.block, tc.ipTmpl, + ) + require.Equal(t, tc.addresses, addresses) + }) + } +}