{"id":13762786,"url":"https://github.com/ArturSS7/TukTuk","last_synced_at":"2025-05-10T15:31:56.075Z","repository":{"id":44417796,"uuid":"284786603","full_name":"ArturSS7/TukTuk","owner":"ArturSS7","description":"Tool for catching and logging different types of requests.","archived":false,"fork":false,"pushed_at":"2020-11-20T08:11:06.000Z","size":8127,"stargazers_count":216,"open_issues_count":2,"forks_count":27,"subscribers_count":16,"default_branch":"master","last_synced_at":"2024-08-03T14:06:28.120Z","etag":null,"topics":["bugbounty","go","golang","pentest","security","summer-of-hack"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ArturSS7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-08-03T19:16:39.000Z","updated_at":"2024-07-17T14:30:46.000Z","dependencies_parsed_at":"2022-09-05T22:51:38.719Z","dependency_job_id":null,"html_url":"https://github.com/ArturSS7/TukTuk","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArturSS7%2FTukTuk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArturSS7%2FTukTuk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArturSS7%2FTukTuk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArturSS7%2FTukTuk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArturSS7","download_url":"https://codeload.github.com/ArturSS7/TukTuk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224974208,"owners_count":17401100,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bugbounty","go","golang","pentest","security","summer-of-hack"],"created_at":"2024-08-03T14:00:57.441Z","updated_at":"2024-11-16T21:30:44.377Z","avatar_url":"https://github.com/ArturSS7.png","language":"Go","funding_links":[],"categories":["Weapons","Go","Go (531)"],"sub_categories":["Tools"],"readme":"\n\u003cp align=\"center\"\u003e\n \u003cimg src=\"https://user-images.githubusercontent.com/19762721/91321586-74a99380-e7c7-11ea-8cb8-f5f25907a33a.png\"\u003e\n\u003c/p\u003e\n\n# TukTuk\n\nThis project was initially started as a part of [Digital Security](https://github.com/DSecurity)'s internship [\"Summer of Hack 2020\"](https://dsec.ru/about/summerofhack/\n).\n\nTukTuk is an open source tool that designed to make pentester's life easier by catching and logging different types of requests. TukTuk is written in Go, but has a little part of python code. \n\nAlso if you wondering why project naming is so strange - *TukTuk* stands for *Knock-Knock* in Russian.\n## How to install\n\n#### Requirements\n\n- Golang \u003e= 1.14.2\n- PostgreSQL \u003e= 12.1\n- DNS domain\n- If you want SMB protocol to work you will need to install impacket fork. \nYou can do this with pip\n```pip3 install git+https://github.com/ArturSS7/impacket.git@master```\n\n#### Setting up DNS\n\nIn order to set up DNS do the following:\n- Make A record ns.example.com which points your ip\n- Make NS record e.example.com with contents of ns.example.com\n- Make A record on example.com which points your ip\n- Make MX record on example.com\n\nExample shows how to setup TukTuk for *.h.example.com if your VPS' IP is 1.3.3.7. Main DNS is Cloudflare in our case, but you can use what you want\n![DNS setup](https://user-images.githubusercontent.com/52138851/91592820-cbe66a00-e967-11ea-8a1f-e16379867ac6.png)\n\n#### Building project and setting up database\n\nJust run two scripts:\n- install.sh\n- db_init.sh\n\nAfter doing the project will be moved to $GOPATH/src/TukTuk\nYou can run it with ./TukTuk\n\n#### Configuring\n\nThe example configuration file is located in ```config/Config.json.example```.\nThere you can configure your domain settings, credentials and alerts\nMove the file to ```Config.json``` if you are going to run the project.\nPlease change default credentials.\n\n#### Configuring alerts\n\n##### Telegram configuring\n\nCreate a bot and get a token is [here](https://core.telegram.org/bots#3-how-do-i-create-a-bot).\nYou can get `Chatid` using this bot ```@m4n_idbot```.\nSet Telegram token in the ```TelegramBot``` field.\nIn the `Chatid` field, set your chat id.\nThe default length of the alert is \"short\" (protocol name + source ip + link to the admin panel), \"long alert\" - all information about the message)\n\n##### Discord Webhook configuring\n1. Go to ```Server settings``` -\u003e ```Webhooks``` -\u003e ```Create Webhook```.\n2. Setup name, avatar and the channel, where it will be posted. Copy Webhook URL. Do not share! Very dangerous!\n3. Click Save and then the Done button.\n\nSet Discord Webhook URL in the ```Webhook``` field.\n##### Quickstart Gmail API configuring\nGo to [Quickstart Go](https://developers.google.com/gmail/api/quickstart/go)\nto get the ```Config.json``` file then put it at the ```emailalert/Config.json``` path and run tuktuk. After starting, follow the generated link and give permission to send emails. Enter the received token into the console. Restart the server.\nYes, it's not convenient. In the future we will bring the configuration to the admin panel.\n\n#### Getting HTTPS certificate\n\nYou will have to get a wildcard certificate for your domain.\nYou can do this with cert-bot.\nA good article which will help you is [here](https://medium.com/@saurabh6790/generate-wildcard-ssl-certificate-using-lets-encrypt-certbot-273e432794d7).\nFirst start the app and then start the bot.\nDuring setting up certificates cert-bot will ask you to add TXT challenge to you domain. Add the TXT challenge in the ```Config.json``` file and continue.\nAfter getting certificate put its path to the config file.\n\n## Supported protocols:\n\n - HTTP\n - HTTPS\n - DNS\n - FTP\n - LDAP\n - SMTP (part of the code taken from [go-smtp](https://github.com/emersion/go-smtp))\n - SMB (used [impacket](https://github.com/SecureAuthCorp/impacket)'s SMB realisation)\n - Plain TCP\n \n## Alerting \nTukTuk is designed not only to log requests, but to alert in case of it. Current alert options are:\n - Telegram\n - Discord Webhook\n - GMail\n \n Additional alert types can be added by writing a module. Feel free to make a pull request!\n\n## Web interface\nTukTuk is featuring a little web interface where user can manage some of the settings or look for logged request.\n![Web interface](https://user-images.githubusercontent.com/19762721/91326276-d15b7d00-e7cc-11ea-8055-6760163c8dce.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FArturSS7%2FTukTuk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FArturSS7%2FTukTuk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FArturSS7%2FTukTuk/lists"}