{"id":34881891,"url":"https://github.com/fsdevcom2000/reverse-shell-client","last_synced_at":"2026-04-22T18:32:05.380Z","repository":{"id":329423454,"uuid":"1119528699","full_name":"fsdevcom2000/reverse-shell-client","owner":"fsdevcom2000","description":"A reverse shell client written in Nim programming language. The client connects to a remote server, receives commands, and executes them on the local machine.","archived":false,"fork":false,"pushed_at":"2025-12-19T12:47:25.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-22T04:53:07.712Z","etag":null,"topics":["cmd","nim","nim-language","remote-control","reverse-shell","windows"],"latest_commit_sha":null,"homepage":"","language":"Nim","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fsdevcom2000.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-19T12:16:41.000Z","updated_at":"2025-12-19T12:49:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/fsdevcom2000/reverse-shell-client","commit_stats":null,"previous_names":["fsdevcom2000/reverse-shell-client"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/fsdevcom2000/reverse-shell-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsdevcom2000%2Freverse-shell-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsdevcom2000%2Freverse-shell-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsdevcom2000%2Freverse-shell-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsdevcom2000%2Freverse-shell-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fsdevcom2000","download_url":"https://codeload.github.com/fsdevcom2000/reverse-shell-client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsdevcom2000%2Freverse-shell-client/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32149428,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T17:06:48.269Z","status":"ssl_error","status_checked_at":"2026-04-22T17:06:19.037Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["cmd","nim","nim-language","remote-control","reverse-shell","windows"],"created_at":"2025-12-26T02:17:29.785Z","updated_at":"2026-04-22T18:32:05.369Z","avatar_url":"https://github.com/fsdevcom2000.png","language":"Nim","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🇬🇧 Reverse Shell Client\n\nA reverse shell client written in Nim programming language. The client connects to a remote server, receives commands, and executes them on the local machine.\n\n## Features\n\n- Automatic reconnection on connection loss\n    \n- Exponential backoff for reconnection attempts\n    \n- Command execution via Windows command line (`cmd.exe`)\n    \n- Special command handling (`exit`, `quit`)\n    \n- Timeout protection against hangs\n    \n- Timestamped logging for all operations\n    \n\n## Requirements\n\n- Nim 2.2.6 or higher\n    \n- Nim compiler\n    \n- Windows operating system (cmd.exe commands supported)\n    \n\n## Installation\n\n1. Install Nim: [https://nim-lang.org/install.html](https://nim-lang.org/install.html)\n    \n2. Clone the repository or download the source code\n    \n3. Build the project:\n    \n```shell\nnim c -d:ssl --app:gui -d:release ShellClient.nim\n```\n\nCompilation options:\n\n- `-d:ssl`: Enables SSL support (if needed)\n    \n- `--app:gui`: Creates a GUI application (no console)\n    \n- `-d:release`: Optimizes code for release version\n    \nOr\n\n```\nnim c -r ShellClient.nim\n```\n## Configuration\n\nBefore compilation, configure connection parameters in the source code:\n\n```nim\nlet\n  host = \"10.10.10.1\"  # Server IP address\n  port = Port(443)      # Server port\n  baseRetryDelay = 30.seconds  # Base reconnection delay\n  maxRetryDelay = 300.seconds  # Maximum reconnection delay\n```\n## Usage\n\n### Starting the Client\n\nAfter compilation, run the executable:\n\n`ShellClient.exe`\n\n### Client Behavior\n\n1. **Initial Delay**: Program waits a random time (45-75 seconds) before starting\n    \n2. **Connection**: Client attempts to connect to the specified server\n    \n3. **Operation**: After connection, client waits for commands from the server\n    \n4. **Reconnection**: On connection loss, client automatically reconnects\n    \n\n### Available Commands\n\n- `exit` or `quit` - end the session\n    \n- Any Windows command line commands\n    \n\n## Security\n\n### Warnings\n\n⚠️ **IMPORTANT**: This tool is intended for legal use only:\n\n- Testing security of your own systems\n    \n- Administration with explicit permission\n    \n- Educational purposes\n    \n\n### Precautions\n\n1. Do not use for unauthorized access\n    \n2. Restrict use to trusted networks\n    \n3. Regularly update code to fix vulnerabilities\n    \n4. Use traffic encryption when working in unsecured networks\n    \n\n## Architecture\n\n### Main Components\n\n1. **Connection Module**: Manages network connections and reconnections\n    \n2. **Command Handler**: Executes received commands\n    \n3. **Reconnection Manager**: Exponential backoff for errors\n    \n4. **Logging**: Timestamped event recording\n    \n\n### Workflow Algorithm\n\nInitial Delay → Connection → Loop:\n  1. Receive command\n  2. Execute command\n  3. Send result\n  4. On error → Reconnect\n### Building for Testing\n\nFor debugging, build with debug information:\n\n```\nnim c -d:debug ShellClient.nim\n```\n## Troubleshooting\n\n### Common Issues\n\n1. **Cannot Connect**:\n    \n    - Check server availability\n        \n    - Ensure port is open in firewall\n        \n    - Verify IP address and port are correct\n        \n2. **Commands Not Executing**:\n    \n    - Check permissions\n        \n    - Ensure cmd.exe is available\n        \n    - Check logs for errors\n        \n3. **High CPU Usage**:\n    \n    - Increase delays between connection attempts\n        \n    - Add sleep in main loops\n        \n\n### Logging\n\nAll events are logged with timestamps. Example output:\n\n```\n[2024-01-15T10:30:00] Attempting to connect to 10.10.10.1:443...\n[2024-01-15T10:30:05] Connected successfully\n[2024-01-15T10:31:00] Executing command: dir\n[2024-01-15T10:32:00] Connection lost. Reconnecting in 30 seconds...\n```\n\n---\n\n**Note**: Always obtain explicit permission before testing any systems you do not own.\n\n# 🇷🇺 Reverse Shell Client\n\nПроект представляет собой клиент (reverse shell), написанный на языке Nim. Клиент подключается к удаленному серверу, получает команды и выполняет их на локальной машине.\n\n## Возможности\n\n- Автоматическое переподключение при потере соединения\n    \n- Экспоненциальная задержка при повторных попытках подключения\n    \n- Выполнение команд через командную строку Windows (`cmd.exe`)\n    \n- Обработка специальных команд (`exit`, `quit`)\n    \n- Защита от зависаний с помощью таймаутов\n    \n- Логирование всех операций с временными метками\n    \n\n## Требования\n\n- Nim 2.2.6 или выше\n    \n- Компилятор Nim\n    \n- Операционная система Windows (поддерживаются команды cmd.exe)\n    \n\n## Установка\n\n1. Установите Nim: [https://nim-lang.org/install.html](https://nim-lang.org/install.html)\n    \n2. Клонируйте репозиторий или скачайте исходный код\n    \n3. Соберите проект:\n    \n\n```shell\nnim c -d:ssl --app:gui -d:release ShellClient.nim\n```\n\nОпции компиляции:\n\n- `-d:ssl`: Включает поддержку SSL (если требуется)\n- `--app:gui`: Создает GUI приложение (без консоли)\n- `-d:release`: Оптимизирует код для релизной версии\n \n или\n```shell\nnim c -r ShellClient.nim\n```\n\n## Конфигурация\n\nПеред компиляцией настройте параметры подключения в исходном коде:\n\n```nim\nlet\n  host = \"10.10.10.1\"  # IP-адрес сервера\n  port = Port(443)      # Порт сервера\n  baseRetryDelay = 30.seconds  # Базовая задержка переподключения\n  maxRetryDelay = 300.seconds  # Максимальная задержка переподключения\n```\n\n## Использование\n\n### Запуск клиента\n\nПосле компиляции запустите полученный исполняемый файл:\n\n`ShellClient.exe`\n\n### Поведение клиента\n\n1. **Начальная задержка**: Программа ждет случайное время (45-75 секунд) перед началом работы\n    \n2. **Подключение**: Клиент пытается подключиться к указанному серверу\n    \n3. **Работа**: После подключения клиент ожидает команды от сервера\n    \n4. **Переподключение**: При потере соединения клиент автоматически переподключается\n    \n\n### Доступные команды\n\n- `exit` или `quit` - завершение сеанса\n    \n- Любые команды командной строки Windows\n    \n\n## Безопасность\n\n### Предупреждения\n\n⚠️ **ВАЖНО**: Этот инструмент предназначен только для легального использования:\n\n- Тестирование безопасности собственных систем\n    \n- Администрирование с явного разрешения\n    \n- Образовательные цели\n    \n\n### Меры предосторожности\n\n1. Не используйте для несанкционированного доступа\n    \n2. Ограничьте использование доверенными сетями\n    \n3. Используйте шифрование трафика при работе в незащищенных сетях\n    \n\n## Архитектура\n\n### Основные компоненты\n\n1. **Модуль подключения**: Управление сетевыми соединениями и переподключениями\n    \n2. **Обработчик команд**: Выполнение полученных команд\n    \n3. **Менеджер переподключений**: Экспоненциальная задержка при ошибках\n    \n4. **Логирование**: Запись событий с временными метками\n    \n\n### Алгоритм работы\n\nНачальная задержка → Подключение → Цикл:\n  1. Получить команду\n  2. Выполнить команду\n  3. Отправить результат\n  4. При ошибке → Переподключение\n\n\n### Сборка для тестирования\n\nДля отладки соберите с отладочной информацией:\n\n`nim c -d:debug ShellClient.nim`\n\n## Устранение неисправностей\n\n### Частые проблемы\n\n1. **Не удается подключиться**:\n    \n    - Проверьте доступность сервера\n        \n    - Убедитесь, что порт открыт в фаерволе\n        \n    - Проверьте правильность IP-адреса и порта\n        \n2. **Команды не выполняются**:\n    \n    - Проверьте права доступа\n        \n    - Убедитесь, что cmd.exe доступен\n        \n    - Проверьте логи на наличие ошибок\n        \n3. **Высокое использование CPU**:\n    \n    - Увеличьте задержки между попытками подключения\n        \n    - Добавьте sleep в основные циклы\n        \n\n### Логирование\n\nВсе события логируются с временными метками. Пример вывода:\n\n```\n[2024-01-15T10:30:00] Attempting to connect to 10.10.10.1:443...\n[2024-01-15T10:30:05] Connected successfully\n[2024-01-15T10:31:00] Executing command: dir\n[2024-01-15T10:32:00] Connection lost. Reconnecting in 30 seconds...\n```\n\n---\n\n**Примечание**: Всегда получайте явное  разрешение перед тестированием любых систем, которые вам не принадлежат.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffsdevcom2000%2Freverse-shell-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffsdevcom2000%2Freverse-shell-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffsdevcom2000%2Freverse-shell-client/lists"}