This is an old revision of the document!
In my opinion tere has been no relevant hacking game since Uplink. I wanted to change that for years. That is probably the key point, why i started developing linkOS. It's core manifest is:
Last update: 05.08.2017
The current game features are:
There are a lot of things still to be done. If you want anything implemented, just add it at the end of the list with the next number available. If you want to help, just claim one of the TODOS and strike it through once finished. If you know how to easily setup a bugtracking system, come talk to me, i may have one or two questions…
No. | Dev-Role | Dev | Description |
---|---|---|---|
001 | all | all | A lot of small bugs to fix and optimizations to be done (have a look at the TODO-tags in the code) |
002 | platform-dev | More than one ip-address per system (probably coupled to hw-interfaces) which routes from network to network | |
003 | platform-dev | Unit-test platform for regression tests | |
004 | GUI-dev | Graphical Editor for xml-config-files | |
005 | platform-dev | network-scanner which generates random systems after some time | |
006 | platform-dev | generic platform for in-game file-based websites | |
007 | platform-dev | mwe | |
008 | tool-dev | different operating systems (e.g. different directory-structures) | |
009 | platform-dev | possibility for tool- and os-versions | |
010 | tool-dev | implementing tool- and os-versions | |
011 | platform-dev | passive traces based on log-file entries | |
012 | tool-dev | better logging. many tools lack creating log-entries | |
013 | tool-dev | log-editing/-removing for disturbing passive traces | |
014 | platform-dev | priviluege escalations for getting root-access | |
015 | platform-dev | rootkits and botnets. Who doesn't like collecting systems | |
016 | platform-dev | mobile and embedded systems which behave differently | |
017 | platform-dev | mobile networks for reaching mobile and embedded devices | |
018 | platform-dev | file-sizes: longer file-transfers, etc. | |
019 | platform-dev | hardware: faster hacks, more concurrent apps running, more storage, etc. | |
020 | tool-dev | more terminals. Currently only one type of shell available | |
021 | platform-dev | kind of terminal created based on some kind of system-config | |
022 | tool-dev | more daemons: intrusion detection, intrusion prevention, etc. be creative! | |
023 | tool-dev | chat-application | |
024 | platform-dev | local multiplayer | |
025 | platform-dev | saving and loading | |
026 | platform-dev | WIFIs: (Spoofing, Disassociating, WPA-Key-Cracking, …) –> dynamic network-nodes on Wifis (e.g. customers of a café) | |
027 | platform-dev | LANS. ARP-Spoofing, MITM-Attacks, etc. | |
028 | platform-dev | people | |
029 | platform-dev | Groups like families, companies with their own network | |
030 | platform-dev | bitcoin: wallets which can be stolen, mining with botnets, etc. | |
031 | platform-dev | classic banks, because not everybody uses bitcoins… | |
032 | tool-dev | social engineering possibilities: hiring reallife helpers for stuff like bringing malicious usb-sticks into company networks | |
033 | platform-dev | firewalls | |
034 | tool-dev | ftp- and web- cracker tools which give you a terminal on a system without ssh-access | |
035 | tool-dev | ssh-exploits for hacking/cracking into ssh-services without the knowledge of a username | |
036 | tool-dev | ssh-exploit which gives you available usernames for a target system | |
037 | tool-dev | file-commander as terminal application | |
038 | platform-dev | tabbing in terminals | |
039 | platform-dev | news | |
040 | platform-dev | events and hooks for better storylines (e.g. news created based on successful hack, etc.) | |
041 | platform-dev | intelligent randomizer for systems (hw, interfaces, files, services, logins, etc.) | |
042 | platform-dev | intelligent randomizer for side-missions | |
043 | platform-dev | intelligent randomizer for people (systems, accounts, etc.) | |
044 | tool-dev | different official services (social security, academic database, criminal database, etc.) | |
045 | tool-dev | different private services (facebook, tinder, twitter, eMail-Providers, etc,) | |
046 | tool-dev | better mail-client (interactive gui, filter, separate terminal-window, background updates, etc. | |
047 | tool-dev | hacker-mail-client with features like (spoofing sender-email-address, editing header-parameter of local saved mails (ip-addresses, email-addresses), etc.) | |
048 | tool-dev | scans on a firewalled system should be able to be more successful with different scan-types (xmas-scan, …) | |
049 | platform-dev | naming resolution should be done better. right now this is a feature of the class Network. Instead it should be a dedicated DNS-server. Systems should have knowledge of that server and do fancy dns-stuff with it | |
050 | tool-dev | mwi | auto dependencies for linkOS makefile |
Everybody who is able to read and manipulate this page is strongly invitated to participate in the further development of linkOS if he/she/it wants to. Don't hesitate to just try things out and see how you feel about it. You probably cannot break anything really hard. I would love to see a few rules followd though:
There are different kind of jobs to be done which categorize themself into the following development roles:
Getting your development environment up and running is easy. Just login to your favourite linux box, cd into your development folder and clone the necessary git-repositories:
git clone USER@carsec.de:/usr/local/src/MultiThread git clone USER@carsec.de:/usr/local/src/UltraCurses git clone USER@carsec.de:/usr/local/src/HackSim
Before compiling you need some prerequisites:
apt-get install libncurses5*
Compiling the source-code can be done with the existing makefiles. For a successful compilation the main gameproject 'HackSim' depends on the libraries 'MultiThread' and 'UltraCurses' (also 'UltraCurses' has a Demo application which itself depends on 'MultiThread'), so the compilation sequence would be:
cd MultiThread make clean && make all cd ../UltraCurses make clean && make all cd ../HackSim make clean && make all
You can run the game anytime after a successful compilation with
./linkOS
Since this is Pre-Pre-Pre-Alpha i didn't take care of stuff like making sure, this runs smoothly on every target-system or with any kind of terminal-emulator (linkOS is currently using gnome-terminal). So, if you run into stuff, eMail me and i will try to make it work.
The following is a simple copy&paste of the project-internal file TODOS_IDEAS_MANIFEST.txt which kind of serves the purpose of a chaotic specification…
################################# Direct next steps:
1. Implement simple network scanner, which burns a lot of time and sometimes finds one of the loaded network-nodes. Probably has to create new random network-nodes while “scanning”, which provides an theoretical nearly endless stream of network nodes 2. system name resolution / domain-name-resolution 3. Editor for Config-Files (World-Editor)
- more logging - better log-editing/-viewing - better connection-chain modifing, editing, viewing - sw-version updates for tools with convenience features - priv-escalations - shared-memory for networks for ipc (multiple gnome-terminals / windows) - saving at least for locahost - naming resolution. remembering all those nifty ip-adresses is kind of hard work. Also: ping could resolve names (right now it doesn't) - command line tool behavior based on file content (some kind of hex-bitmap) and not on filename - At some point we need daemons (such as the provided services, but also mail to receive mails parallely without the need of constant polling, chats, etc.) - I want to put the type of terminal used as a file inside the sys folder. Also the type of OS and the daemons running on the system should be files inside sys - rich applications (use ncurses windows!)
- people! (good, bad, powerful bosses, powerless zombies): they work, they interact with security, they probably hack themselves, they have bank accounts, etc. - Groups / Companies with own networks - different sub-networks only reachable over gateways - LANs! - WLANs! (Spoofing, Disassociating, WPA-Key-Cracking, …) –> dynamic network-nodes on Wifis (e.g. customers of a café) - some applications do stuff locally. Some of them need special hw (so they only run on specific systems). Some of them need connection to a server (e.g. Chat-Server) - I want money-stuff, like banks and such. Probably starting with some cool bitcoin stuff - Automatic make of redundancies of headerfiles - Add “tabbing” of commandos and parameters in the terminal - Heavy enrichment of the basic filesystem tools (e.g. “cd bla/bla/bla”). Probably move 'ls' into the basic tools inside the class 'Terminal'
- Probably interfacing the terminal for different implementations of the terminal (basic terminal, ncurses-enhanced-terminal, …)
################################# What is making it interesting?
- Secrets / Learning - finding hidden systems - finding vulnerabilities - exploiting vulnerabilities - finding links to more systems, subnets, credentials to secure systems - finding files, chat histories, personal details, …
- Consequences - you will be traced - hiding your trails - win against time
- not always know what is happening in the background (aka passive trace, …, face consequences in the 'real' world (e.g. Lose access to your gateway), get discredited by competing hackers, …))
- Power / Creation - gather enormous bitcoin wealth - grow your botnet(s), - grow your toolchain (get more powerful tools) - hacker ranking / status / …
- Freedom - no artificial borders - everything is hackable (systems, apps, networks, people, social data, financial data, …)
- Immersive Simulation - Systems, networks, darknets, gateways, people, tools, applications, different sw versions, different OSs, different look&feel, different terminal emulations, multiple windows, multiplayer, people, companies, rival hackers, hacking groups, IoT, challenging missions, …
################################# Game Modes:
When starting the simulation, the player can choose between different game/simulation modes:
- MMOHG - [Multiplayer] Massive Multiplayer Online Hacking Game - Coop - [Multiplayer] Take over the world together - Hunt - [Multiplayer] Hunt other players and kill their linkOS-gateway. NPC-Hackers present - Rogue - [Singleplayer] Only one gateway, when you're detected / identified, the game is over. Let's see how far you come - Endless - [Singleplayer] Several gateways allowed. If played clever you can take over the internet, even the world - Story - [Singleplayer] Dive into a deep story about corruption, world domination and the risks of next gen technology
################################# Core Manifest:
- core feature: everything has to be hackable! - core feature: everything has consequences!
- random creation of systems with ip4-adresses
- NPCs representing admins and users of systems, other hackers, etc.
- tools for finding systems, probing running services, finding vulnerabilities, etc.
- Money to buy stuff, like tools, servers, new hardware, etc.
- systems can be compromised over vulnerabilities in their running services (getting limited access, than getting au-access via priv-escalations)
- there are tools for binding zombies to networks, so called botnets
- there has to be some kind of Multiplayer-Engine, ranging from simple Coop-Hacking-Stuff on small dedicated servers to a MMOHG (Massive Multiplayer Online Hacking Game)
################################# Ideas for system links and/or credentials to be found in the game: - Logs - Mails - Chat History - local PostIt-Files - applications' conf-files - Html files - Chat Msgs - mission details - Scan Library
################################# Ideas for missions / storylines - Help an gangster with his evil stuff by doing several hacking support. For example, support a gang of bankrobbers with their robbery with:
- getting ditigal data to the real world. The player has to deliver data / sw / etc. to a specific system (probably inside a corporate network)
then an real-life agent will pick it up via usb-stick or similar and transport it to another system / network / ... where it opens a backdoor or anything
################################# Possible future updates: - multiple windows for different connections (but with the same shared memory) and different applications, services, etc. - Hardware-Devices as in IOT - identity theft - LANs - simple scripting engine