This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
wiki:projects:linkos [2017-08-05 09:54] – [State of the Development] n00ne | wiki:projects:linkos [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== linkOS ====== | ||
- | |||
- | In my opinion tere has been no relevant hacking game since [[https:// | ||
- | |||
- | * Everything is hackable | ||
- | * Everything is connected | ||
- | * Every hack has consquences | ||
- | |||
- | ===== State of the Development ===== | ||
- | |||
- | Last update: **05.08.2017** | ||
- | |||
- | ==== Game Features ==== | ||
- | |||
- | The current game features are: | ||
- | |||
- | * Networks of systems (currently only one network is configured and reachable: internet) | ||
- | * Systems containing: ip-address, name, file-system, | ||
- | * Access-Rights for every file/folder | ||
- | * SSH-access with terminal interface | ||
- | * WEB-access with website interface (e.g. linkos-marketplace) | ||
- | * a bunch of terminal-tools | ||
- | * a smaller bunch of hacker-/ | ||
- | * one daemon (ids) which traces your connection chain and throws you out of the protected system once it reached the source node | ||
- | * mails | ||
- | * traceview which shows the connection hops and any ongoing active trace | ||
- | |||
- | ==== ToDos ==== | ||
- | |||
- | There are a lot of things still to be done. If you want anything implemented, | ||
- | |||
- | ^No.^Dev-Role^Dev^Description^ | ||
- | |001|all | ||
- | |002|platform-dev| | ||
- | |003|platform-dev| | ||
- | |004|GUI-dev | ||
- | |005|platform-dev| | ||
- | |006|platform-dev| | ||
- | |007|platform-dev|mwe|< | ||
- | |008|tool-dev | ||
- | |009|platform-dev| | ||
- | |010|tool-dev | ||
- | |011|platform-dev| | ||
- | |012|tool-dev | ||
- | |013|tool-dev | ||
- | |014|platform-dev| | ||
- | |015|platform-dev| | ||
- | |016|platform-dev| | ||
- | |017|platform-dev| | ||
- | |018|platform-dev| | ||
- | |019|platform-dev| | ||
- | |020|tool-dev | ||
- | |021|platform-dev| | ||
- | |022|tool-dev | ||
- | |023|tool-dev | ||
- | |024|platform-dev| | ||
- | |025|platform-dev| | ||
- | |026|platform-dev| | ||
- | |027|platform-dev| | ||
- | |028|platform-dev| | ||
- | |029|platform-dev| | ||
- | |030|platform-dev| | ||
- | |031|platform-dev| | ||
- | |032|tool-dev | ||
- | |033|platform-dev| | ||
- | |034|tool-dev | ||
- | |035|tool-dev | ||
- | |036|tool-dev | ||
- | |037|tool-dev | ||
- | |038|platform-dev| | ||
- | |039|platform-dev| | ||
- | |040|platform-dev| | ||
- | |041|platform-dev| | ||
- | |042|platform-dev| | ||
- | |043|platform-dev| | ||
- | |044|tool-dev | ||
- | |045|tool-dev | ||
- | |046|tool-dev | ||
- | |047|tool-dev | ||
- | |048|tool-dev | ||
- | |049|platform-dev| | ||
- | |050|tool-dev | ||
- | ===== Collaboration in Development ===== | ||
- | |||
- | **__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: | ||
- | |||
- | * The master-branch should be clean and compileable anytime. | ||
- | * Use your personal branches for development. | ||
- | * Only pull your modifications / additions to the master-branch after testing and if you are sure, nobody else is working on it. | ||
- | * Communicating with the team solves 95% of all problems. You should probably start with that... | ||
- | ==== DevRoles ==== | ||
- | |||
- | There are different kind of jobs to be done which categorize themself into the following development roles: | ||
- | |||
- | * **Platform-dev**: | ||
- | * **Tool-dev**: | ||
- | * **storyteller**: | ||
- | * **GUI-dev**: | ||
- | |||
- | ==== DevEnv ==== | ||
- | |||
- | 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: | ||
- | |||
- | <code bash> | ||
- | git clone USER@carsec.de:/ | ||
- | git clone USER@carsec.de:/ | ||
- | git clone USER@carsec.de:/ | ||
- | </ | ||
- | |||
- | Before compiling you need some prerequisites: | ||
- | |||
- | <code bash> | ||
- | apt-get install libncurses5* | ||
- | </ | ||
- | |||
- | Compiling the source-code can be done with the existing makefiles. For a successful compilation the main gameproject ' | ||
- | |||
- | <code bash> | ||
- | cd MultiThread | ||
- | make clean && make all | ||
- | cd ../ | ||
- | make clean && make all | ||
- | cd ../HackSim | ||
- | make clean && make all | ||
- | </ | ||
- | |||
- | You can run the game anytime after a successful compilation with | ||
- | |||
- | <code bash> | ||
- | ./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. | ||
- | |||
- | ===== Pastebin of ' | ||
- | |||
- | The following is a simple copy& | ||
- | |||
- | ################################# | ||
- | 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 " | ||
- | 2. system name resolution / domain-name-resolution | ||
- | 3. Editor for Config-Files (World-Editor) | ||
- | |||
- | - more logging | ||
- | - better log-editing/ | ||
- | - 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' | ||
- | - 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!) | ||
- | - music player | ||
- | - chat | ||
- | |||
- | - C&C Software | ||
- | - security software | ||
- | - database-interface | ||
- | - city infrastructure interface application (police, firefighter, | ||
- | - marketplaces | ||
- | - 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, | ||
- | - 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, | ||
- | - Automatic make of redundancies of headerfiles | ||
- | - Add " | ||
- | - Heavy enrichment of the basic filesystem tools (e.g. "cd bla/ | ||
- | - ls with paramter (e.g. folder to search in as first parameter). Generally becoming more like the real thing | ||
- | - ' | ||
- | - Catching stuff like strg+c from cin because: 1) it looks like shit now and 2) strg+c kills the game anytime but should kill the current command | ||
- | - 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 | ||
- | - race against admins and other hackers when cracking systems | ||
- | - race against federal power offline (they will be searching you) -> never let them learn your name or loose access to your gateway) | ||
- | - not always know what is happening in the background (aka passive trace, ..., face consequences in the ' | ||
- | |||
- | - 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, | ||
- | |||
- | ################################# | ||
- | Game Modes: | ||
- | |||
- | When starting the simulation, the player can choose between different game/ | ||
- | |||
- | - MMOHG - [Multiplayer] | ||
- | - Coop - [Multiplayer] | ||
- | - Hunt - [Multiplayer] | ||
- | - 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 | ||
- | - systems have services running | ||
- | - services have different applications and different versions | ||
- | - systems have different OSs with different kind of security and vulns | ||
- | - systems have folders with files and stuff | ||
- | - NPCs representing admins and users of systems, other hackers, etc. | ||
- | - NPCs have names, email-adresses, | ||
- | - tools for finding systems, probing running services, finding vulnerabilities, | ||
- | - marketplaces for those tools (some darkweb newsgroup or similar, e.g. SilkRoad, etc.) | ||
- | - Money to buy stuff, like tools, servers, new hardware, etc. | ||
- | - there are banks and stuff | ||
- | - the currency is probably some bitcoin version, e.g. leetcoin, 1337c01n, co$n, bytecoin, etc. | ||
- | - systems can be compromised over vulnerabilities in their running services (getting limited access, than getting au-access via priv-escalations) | ||
- | - once compromised there can be placed a rootkit, backdoor, etc. to make them to zombies | ||
- | - there are tools for binding zombies to networks, so called botnets | ||
- | - botnets are used for stuff like | ||
- | - DDOS-attacks | ||
- | - distributed calculation of heavy stuff, like bruteforcing passwords, etc. | ||
- | - there has to be some kind of Multiplayer-Engine, | ||
- | |||
- | ################################# | ||
- | Ideas for system links and/or credentials to be found in the game: | ||
- | - Logs | ||
- | - Mails | ||
- | - Chat History | ||
- | - local PostIt-Files | ||
- | - applications' | ||
- | - 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: | ||
- | - deactivating security systems at the bank, police, etc. | ||
- | - diversion of police / security | ||
- | - getting layout plans before the actual robbery | ||
- | - support the getaway with manipulating the city's infrastructure | ||
- | - change the robbers details in police databases | ||
- | - ... | ||
- | - 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, | ||
- | - Hardware-Devices as in IOT | ||
- | - identity theft | ||
- | - LANs | ||
- | - simple scripting engine | ||