Awesome Open Source
Awesome Open Source


License Medium Badge Twitter: sandochee

👨‍💻 Impress your friends by pretending to be a real hacker (works directly from the terminal)

Unlike many websites like Geektyper or Hackertyper, Terminhack shows real hacking tools in action and their possible outcome following a real penetration testing process. It can be used through the website or direcly from the terminal!

I made this little website for fun, while doing my learning month about penetration testing.

👉 Read more

Terminhack is a web service that lets you pretend to be a hacker running real penetration testing tools. Even though it shows the real commands and their response, it does not perform any of these actions for real, it is only faking it. Remember that running any of these commands displayed in Terminhack, for real, against a target or performing hack attempts against a target without their explicit permission is illegal. We are not responsible for any trouble you may get into with this. Terminhack has been built for educational purposes to remember the steps of penetration testing.

📖 How to use

From the browser

Go to and click on the "Run this command from my browser"

From the terminal

curl -N
# or use the alternative url
# curl -N

# you can replace by any domain name or IP address to prentend hacking a specific target

⚙️ Create your own script

Run the dev server

# install the project
npm install

# run the dev server
npm run dev

Add a script

  1. Go to the src/data folder
  2. You will find the default script hack.yml
  3. Duplicate it and rename it
  4. Edit src/config add another array like this ['hack-id', 'filename.yml'] to the hacksMap Map constructor replace hack-id by the id you want to give to your script and filename.yml by the name you decided on the previous step
  5. Edit your yaml file you will see a structure like this
- type: (char | line | block | linebreak | pause)
  value: host $target
  prefix: default

## Type
# - char: shows your message character after character
# - line: shows your message line after line
# - block: shows your message in one block
# - linebreak: to create a line break in the result
# - pause: will pause the script for the amount of time defined in value

## Value
# Here goes your message or the time of your pauses
# Note that $target will be replaced by the <target> in the url

## Prefix
# Setting a prefix to default will display [email protected]:~$ before the message
# You can also put the value of your prefix to replace [email protected]:~$
# Or disable it by not specifying prefix
  1. Test your script by running curl http://localhost:3000/<hack-id>/<target> -N or by opening this url in your browser http://localhost:3000/<hack-id>/<target>

Run with docker

docker build . -t terminhack
docker run -p 3000:80 terminhack

🤝 Contributing

Contributions, issues and feature requests are welcome!

⭐️ Show your support

Please ⭐️ this repository if this project helped you!


🍺 Buy me a beer

If you like this project, feel free to donate:

  • PayPal:
  • Bitcoin: 19JiNZ1LkMaz57tewqJaTg2hQWH4RgW4Yp
  • Ethereum: 0xded81fa4624e05339924355fe3504ba9587d5419
  • Monero: 43jqzMquW2q989UKSrB2YbeffhmJhbYb2Yxu289bv7pLRh4xVgMKj5yTd52iL6x1dvCYs9ERg5biHYxMjGkpSTs6S2jMyJn
  • Motive: MOTIV-25T5-SD65-V7LJ-BBWRD (Get Motive Now:

📄 License

MIT License

Copyright (c) Sandoche Adittane

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (69,694) 
hacking (546) 
simulation (260) 
hack (188) 
kali-linux (83) 
nmap (74) 
metasploit (55)