2025-08-13 19:32:51 +02:00
# Conquest default configuration file
2025-08-13 21:42:58 +02:00
name = "cq-default-profile"
2025-08-13 19:32:51 +02:00
2025-08-13 21:42:58 +02:00
# Important file paths and locations
2025-08-22 10:48:00 +02:00
private-key-file = "data/keys/conquest-server_x25519_private.key"
database-file = "data/conquest.db"
2025-08-13 19:32:51 +02:00
2025-10-01 13:25:15 +02:00
# Team server settings (WebSocket server port, users, ...)
[ team-server ]
2025-11-03 09:52:01 +01:00
host = "0.0.0.0"
2025-10-01 13:25:15 +02:00
port = 37573
2025-08-13 21:42:58 +02:00
# ----------------------------------------------------------
# HTTP GET
# ----------------------------------------------------------
# Defines URI endpoints for HTTP GET requests
2025-08-13 19:32:51 +02:00
[ http-get ]
2025-10-30 17:08:50 +01:00
user-agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"
# Defines URI endpoints for HTTP GET requests
2025-11-07 20:22:13 +01:00
# This has to be an array, even if it only has one member
2025-08-14 15:53:58 +02:00
endpoints = [
"/get" ,
2025-08-13 19:32:51 +02:00
"/api/v1.2/status.js"
]
2025-08-13 21:42:58 +02:00
# Defines where the heartbeat is placed within the HTTP GET request
2025-11-18 09:43:56 +01:00
# Allows for optional data transformation using encoding (base64, hex, ...), appending and prepending of strings
# Metadata can be stored in a Header (e.g. JWT Token, Session Cookie), URI parameter or request body
2025-08-14 15:53:58 +02:00
# Encoding is only applied to the payload and not the prepended or appended strings
2025-08-13 21:42:58 +02:00
[ http-get . agent . heartbeat ]
2025-11-21 15:55:41 +01:00
placement = { type = "header" , name = "Authorization" }
encoding = { type = "base64" , url-safe = true }
prefix = "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9."
suffix = ".######################################-####"
2025-08-14 15:53:58 +02:00
# Example: PHP session cookie
2025-08-13 21:42:58 +02:00
# placement = { type = "header", name = "Cookie" }
2025-11-18 09:43:56 +01:00
# encoding = { type = "base64", url-safe = true }
2025-08-14 15:53:58 +02:00
# prefix = "PHPSESSID="
# suffix = ", path=/"
2025-11-18 09:43:56 +01:00
# Example: Hex string in GET parameter
2025-11-08 15:59:36 +01:00
# placement = { type = "query", name = "id" }
2025-11-18 09:43:56 +01:00
# encoding = { type = "hex" }
2025-11-21 20:14:21 +01:00
# Example: Data encoded with multiple techniques in GET request body
2025-11-21 15:55:41 +01:00
# placement = { type = "body" }
2025-11-21 20:14:21 +01:00
# encoding = [
# { type = "rot", key = 5 },
# { type = "base64" }
2025-11-23 20:40:48 +01:00
# ]
# Example: Binary prefix (PDF header)
# placement = { type = "body" }
# encoding = { type = "xor", key = 100 }
# prefix = [0x25, 0x50, 0x44, 0x46]
# suffix = [0x25, 0x25, 0x45, 0x4F, 0x46]
2025-08-13 21:42:58 +02:00
# Defines arbitrary URI parameters that are added to the request
[ http-get . agent . parameters ]
2025-08-15 16:18:15 +02:00
id = "#####-#####"
2025-10-30 17:08:50 +01:00
lang = [
"en-US" ,
"de-AT"
]
2025-08-13 21:42:58 +02:00
# Defines arbitrary headers that are added by the agent when performing a HTTP GET request
2025-08-13 19:32:51 +02:00
[ http-get . agent . headers ]
2025-08-17 16:27:48 +02:00
Host = [
"wikipedia.org" ,
"google.com" ,
"127.0.0.1"
]
2025-08-15 15:42:57 +02:00
Connection = "Keep-Alive"
2025-08-14 15:53:58 +02:00
Cache-Control = "no-cache"
2025-08-13 19:32:51 +02:00
2025-08-14 12:25:06 +02:00
# Defines arbitrary headers that are added to the server's response
2025-08-13 19:32:51 +02:00
[ http-get . server . headers ]
2025-08-14 15:53:58 +02:00
Server = "nginx"
Content-Type = "application/octet-stream"
Connection = "Keep-Alive"
2025-08-13 21:42:58 +02:00
# Defines how the server's response to the task retrieval request is rendered
# Allows same data transformation options as the agent metadata, allowing it to be embedded in benign content
2025-08-14 19:33:32 +02:00
# e.g base64-encoded in a svg/img
2025-08-13 21:42:58 +02:00
[ http-get . server . output ]
placement = { type = "body" }
2025-08-17 17:01:50 +02:00
# encoding = { type = "base64" }
# prefix = "<!DOCTYPE html><html class=client-nojs lang=en dir=ltr><head><meta charset=UTF-8/><title>Wikipedia</title><script>document.documentElement.className = document.documentElement.className.replace( /(^|s)client-nojs(s|$)/, $1client-js$2 );</script><script>(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({wgCanonicalNamespace:,wgCanonicalSpecialPageName:false,wgNamespaceNumber:0,,wgBetaFeaturesFeatures:[],wgMediaViewerOnClick:true,wgMediaViewerEnabledByDefault:true,wgVisualEditor:{pageLanguageCode:en,pageLanguageDir:ltr,usePageImages:true,usePageDescriptions:true},wgPreferredVariant:en,wgMFDisplayWikibaseDescriptions:{search:true,nearby:true,watchlist:true,tagline:false},wgRelatedArticles:null,wgRelatedArticlesUseCirrusSearch:true,wgRelatedArticlesOnlyUseCirrusSearch:false,wgULSCurrentAutonym:English,wgNoticeProject:wikipedia,wgCentralNoticeCookiesToDelete:[],wgCentralNoticeCategoriesUsingLegacy:[Fundraising,fundraising],wgCategoryTreePageCategoryOptions:{mode:0,hideprefix:20,showcount:true,namespaces:false},wgWikibaseItemId:"
# suffix = ",wgCentralAuthMobileDomain:false,wgVisualEditorToolbarScrollOffset:0,wgEditSubmitButtonLabelPublish:false});mw.loader.state({ext.globalCssJs.user.styles:ready,ext.globalCssJs.site.styles:ready,site.styles:ready,noscript:ready,user.styles:ready,user:ready,user.options:loading,user.tokens:loading,wikibase.client.init:ready,ext.visualEditor.desktopArticleTarget.noscript:ready,ext.uls.interlanguage:ready,ext.wikimediaBadges:ready,mediawiki.legacy.shared:ready,mediawiki.legacy.commonPrint:ready,mediawiki.sectionAnchor:ready,mediawiki.skinning.interface:ready,skins.vector.styles:ready,ext.globalCssJs.user:ready,ext.globalCssJs.site:ready});mw.loader.implement(user.options@0j3lz3q,function($,jQuery,require,module){mw.user.options.set({variant:en});});mw.loader.implement(user.tokens@1dqfd7l,function ( $, jQuery, require, module )</script><link rel=stylesheet href=/w/load.php?debug=false&lang=en&modules=ext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cmediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.sectionAnchor%7Cmediawiki.skinning.interface%7Cskins.vector.styles%7Cwikibase.client.init&only=styles&skin=vector/><script async= src=/w/load.php?debug=false&lang=en&modules=startup&only=scripts&skin=vector></script><meta name=ResourceLoaderDynamicStyles content=/><link rel=stylesheet href=/w/load.php?debug=false&lang=en&modules=site.styles&only=styles&skin=vector/>"
2025-08-13 19:32:51 +02:00
2025-08-13 21:42:58 +02:00
# ----------------------------------------------------------
# HTTP POST
# ----------------------------------------------------------
2025-08-13 19:32:51 +02:00
[ http-post ]
2025-10-30 17:08:50 +01:00
user-agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"
2025-08-15 15:42:57 +02:00
# Defines URI endpoints for HTTP POST requests
2025-11-07 20:22:13 +01:00
# This has to be an array, even if it only has one member
2025-08-14 15:53:58 +02:00
endpoints = [
"/post" ,
2025-08-13 19:32:51 +02:00
"/api/v2/get.js"
]
2025-11-08 15:59:36 +01:00
# Post request can also be sent with a different HTTP verb (PUT, GET, ...)
2025-08-15 15:42:57 +02:00
request-methods = [
"POST" ,
"PUT"
]
2025-11-08 15:59:36 +01:00
# Defines arbitrary request headers that are added to the POST request
2025-08-13 19:32:51 +02:00
[ http-post . agent . headers ]
2025-08-17 16:27:48 +02:00
Host = [
"wikipedia.org" ,
"google.com" ,
"127.0.0.1"
]
2025-11-18 09:43:56 +01:00
Content-Type = "text/plain"
2025-08-14 15:53:58 +02:00
Connection = "Keep-Alive"
2025-08-13 21:42:58 +02:00
Cache-Control = "no-cache"
2025-08-13 19:32:51 +02:00
2025-11-08 15:59:36 +01:00
# Defines arbitrary query parameters that are added to the URI
[ http-post . agent . parameters ]
lang = [
"en-US" ,
"de-AT"
]
2025-11-18 09:43:56 +01:00
page = "1$" # The $ character is replaced with a random number
2025-11-08 15:59:36 +01:00
# Defines how the POST requests made by the agents look like
# For modules that involve large file transfers, it is not recommended to place the task output in a header or query parameter, as this will exceed the header size
# Placing this type of data in the body is highly recommended
2025-08-14 12:25:06 +02:00
[ http-post . agent . output ]
placement = { type = "body" }
2025-11-08 16:16:15 +01:00
encoding = { type = "hex" }
2025-11-18 09:43:56 +01:00
# prefix = "<START>"
# suffix = "<END>"
2025-08-14 12:25:06 +02:00
2025-11-08 15:59:36 +01:00
# Defines arbitrary response headers added by the server
2025-08-13 19:32:51 +02:00
[ http-post . server . headers ]
2025-08-14 15:53:58 +02:00
Server = "nginx"
2025-08-13 21:42:58 +02:00
2025-11-08 15:59:36 +01:00
# Defines data that is returned in the body of the server's response
2025-08-13 21:42:58 +02:00
[ http-post . server . output ]
2025-11-18 09:43:56 +01:00
body = "Ok"