Services
A service is provided by calling a WP:port on a remote machine Each service uses a specific port on the machine running it In order to access a service from outside a LAN, the router must open one of its own port and transmit the data towards the service's port, a process known as "port forwarding" Please note that, while you can't change what port is used by a service, it IS possible to open (almost) any port on the router, as long as no device uses the same port twice
Players are able to obtain 4 services in regular shops, while 4 extra services can be found on the NPC machines Each service is running from a specific library in the /lib/ folder : this library determines the service's version and which exploits can be used against it. It's recommended to run services on rented servers rather than your own machine, as your remote computer is shutdown once you quit the game
Here is the list of ports used by default:
Service name | Port number | Open port? | For players? | Library name | Tool | Uses | Real-life reference |
---|---|---|---|---|---|---|---|
NONE | 0 | N/A | N/A | router_kernel.so | N/A | Metaxploit interprets a NULL or 0 port as "launch a router exploit" | Same use : 0 can't be assigned and is used to indicate "no port" |
ftp | 21 | Open | Yes | libftp.so | ftp command | Used in "hosting services" missions | They are protocols with an assigned well-known port |
ssh | 22 | Open | Yes | libssh.so | ssh command | ||
http | 80 | Open | Yes | libhttp.so | Browser.exe | Allows the administrator to host a website available to other players
The website can have additionals uses : bank, mail, downloads, missions... | |
8080 | Closed | No (router) | Used to access the port forwarding interface without using the http port | 8080 is an "alternative port" (often for testing websites during development) | |||
chat | 6667 | Open | Yes | libchat.so | Chat.exe | Allows the machine administrator to create his own chat channel
Also necessary to setup a guild mainframe |
IRC protocol uses port range 6665-6669 |
smtp | 25 | Open | No | libsmtp.so | smtp-user-list (exploit) | When hacked, list all the service users | It's a protocol with an assigned well-known port |
bank_account | 141 | Closed | No | libsql.so | NONE | No uses in current GH version besides lore | Despite being in the 0-1024 range, this port is not assigned |
employees | 3306 or 3307 | EmployeesViewer.exe | Acts as a "generic sql" port on students/criminals missions
EmployeesViewer.exe allows to read either students or criminals databases |
Port 3306 refers to MySQL, one of the database systems based on SQL
Port 3307 is unassigned | |||
students | 3306 | StudentsViewer.exe | Can be edited with StudentsViewer.exe
The objective of "University Hacking" missions | ||||
criminals | 3307 | CriminalsViewer.exe | Can be edited with CriminalsViewer.exe
The objective of "Police Hacking" missions | ||||
*varies* | XXXXX | (outside only) | N/A | N/A | N/A | Appears when a NPC lan provides the same service on two separate machines
The duplicated service is then forwarded as a random 5-number port |
N/A |
Debug data:
[SQLBagOStuff] MainObjectStash using store ReplicatedBagOStuff
[objectcache] MainWANObjectCache using store EmptyBagOStuff
IP: 34.239.152.207
Start request GET /w/index.php?title=Services&oldid=351
HTTP HEADERS:
CONTENT-LENGTH: 0
CDN-LOOP: cloudflare
CF-IPCOUNTRY: US
CF-CONNECTING-IP: 34.239.152.207
ACCEPT-LANGUAGE: en-US,en;q=0.5
ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
USER-AGENT: CCBot/2.0 (https://commoncrawl.org/faq/)
CF-VISITOR: {"scheme":"https"}
X-FORWARDED-PROTO: https
CF-RAY: 7affdffcac433b0e-IAD
X-FORWARDED-FOR: 34.239.152.207
ACCEPT-ENCODING: gzip
CONNECTION: close
HOST: wiki.ghtools.xyz[localisation] LocalisationCache: using store LCStoreDB
[session] SessionManager using store SqlBagOStuff
[DBReplication] Cannot use ChronologyProtector with EmptyBagOStuff
[DBReplication] Wikimedia\Rdbms\LBFactory::getChronologyProtector: request info {
"IPAddress": "34.239.152.207",
"UserAgent": "CCBot\/2.0 (https:\/\/commoncrawl.org\/faq\/)",
"ChronologyProtection": false,
"ChronologyPositionIndex": 0,
"ChronologyClientId": false
}[DBConnection] Wikimedia\Rdbms\LoadBalancer::lazyLoadReplicationPositions: executed chronology callback.
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
[SQLBagOStuff] Connection mysql object #145 (handle id #151) will be used for SqlBagOStuff
[session] SessionBackend "4e26kfpqa70lgddltqemlr04q9bc9p21" is unsaved, marking dirty in constructor
[session] SessionBackend "4e26kfpqa70lgddltqemlr04q9bc9p21" save: dataDirty=1 metaDirty=1 forcePersist=0
[cookie] already deleted setcookie: "c6_wiki_session", "", "1648638299", "/", "", "1", "1"
[cookie] already deleted setcookie: "c6_wikiUserID", "", "1648638299", "/", "", "1", "1"
[cookie] already deleted setcookie: "c6_wikiToken", "", "1648638299", "/", "", "1", "1"
[cookie] already deleted setcookie: "forceHTTPS", "", "1648638299", "/", "", "", "1"
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
Title::getRestrictionTypes: applicable restrictions to [[Services]] are {edit,move}
[ContentHandler] Created handler for wikitext: WikitextContentHandler
[MessageCache] MessageCache using store SqlBagOStuff
[SQLBagOStuff] Connection mysql object #145 (handle id #151) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #145 (handle id #151) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #145 (handle id #151) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #145 (handle id #151) will be used for SqlBagOStuff
[SQLBagOStuff] SqlBagOStuff::lock failed due to timeout for c6_wiki:messages:en.
[SQLBagOStuff] Connection mysql object #145 (handle id #151) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #145 (handle id #151) will be used for SqlBagOStuff
[MessageCache] MessageCache::load: Loading en... local cache is empty, global cache is expired/volatile, loading from database
ParserFactory: using preprocessor: Preprocessor_Hash
Unstubbing $wgLang on call of $wgLang::_unstub from ParserOptions->__construct
[caches] parser: SqlBagOStuff
Article::view using parser cache: yes
[SQLBagOStuff] Connection mysql object #145 (handle id #151) will be used for SqlBagOStuff
Article::view: doing uncached parse
[SQLBagOStuff] Connection mysql object #145 (handle id #151) will be used for SqlBagOStuff
[Preprocessor] Cached preprocessor output (key: c6_wiki:preprocess-hash:8c736464a3d4df9fd4591156090ebd67:0)
[Preprocessor] Cached preprocessor output (key: c6_wiki:preprocess-hash:8c736464a3d4df9fd4591156090ebd67:0)
Saved in parser cache with key c6_wiki:pcache:idhash:151-0!canonical and timestamp 20230330110459 and revision id 351
[SQLBagOStuff] Connection mysql object #145 (handle id #151) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #145 (handle id #151) will be used for SqlBagOStuff
MediaWiki::preOutputCommit: primary transaction round committed
MediaWiki::preOutputCommit: pre-send deferred updates completed
MediaWiki::preOutputCommit: session changes committed
MediaWiki::preOutputCommit: LBFactory shutdown completed
Title::getRestrictionTypes: applicable restrictions to [[Services]] are {edit,move}