Skip to content
Andrey Abakumov edited this page Sep 10, 2017 · 7 revisions

Описание бота

client/main.go

Главный исходный файл бота. Здесь основная логика работы, подключение к серверу, запуск необходимых функций, отправка результатов выполнения команд в api.go

Немного конкретнее

src/wrapper/winhttp.go

Обертка для библиотеки WinHTTP.

WinHTTP

src/wrapper/api.go

Использует winhttp.go или dns (в зависимости от указанного интерфейса) для отправки запросов, также обрабатывает ответы от сервера и отправляет результат обратно в main.go.

###src/addfile/addfile.go Позволяет подключить к боту фейк файл, который будет открываться при запуске бота.

Динамически генерируется с помощью скрипта CreateSourceForFakeLaunchFile.go Или с помощью makebot.exe

src/addfile/config.go

Здесь задается конфигурация бота. Может динамически генерироваться с помощью makebot.exe

src/gobotnet/registration.go

Модуль для закрепления на машине.

При запуске копирует исполняемый .exe файл бота в *C:\Users%Current_User%\AppData\Roaming\AsocialFriend*

Прописывает себя в автозапуск в реестре HKCU\Software\Microsoft\Windows\CurrentVersion\Run

Сохраняет полученный токен после регистрации на сервере в реестре в HKCU\Software\AsocialFriend

src/gobotnet/

  • file_operation.go - обертка для работы с файлами

  • keylogger.go - модуль кейлогера

  • other_function.go - модуль с дополнительными функциями

  • registry_work.go - обертка для работы с реестром

  • screenshot.go - модуль для скриншотов


Описание сервера

backend_main.go

Исходный код сервера.

По дефолту висит на 80 порту

/web/

Интерфейс админки

dns_server.go

DNS сервер-туннель

Описание

Выполняет роль прокси сервера между клиентом


Остальное

client/utils/CreateSourceForFakeLaunchFile.go

Скрипт позволяющий динамически создать src/addfile/addfile.go

Для использования, необходимо скомпилировать его в исполняемый и запустить с аргументами %путь_к_исходникам% %имя_файла%

e.g. CreateSourceForFakeLaunchFile.exe C:/Go/src/github.com/gobotnet/ fakefiles/myfile.doc

client/utils/TestLaunchFakeFile.go

Скрипт тестирует корректное открытие фейк файла

Он цепляет файл src/addfile/addfile.go

Для проверки нужно сбилдить и запустить исполняемый файл

rsrc.exe

Утилита позволяющая создавать .syso файлы для сборки (в них можно пихать иконки для .exe файлов)

Описание здесь


Зависимости

Клиент

go get github.com/satori/go.uuid
go get github.com/tv42/zbase32
go get github.com/aglyzov/charmap
go get golang.org/x/sys/windows/registry
go get github.com/AllenDang/w32

Сервер:

go get github.com/dgrijalva/jwt-go
go get github.com/labstack/echo/...
go get github.com/labstack/echo/middleware
go get github.com/mattn/go-sqlite3
go get github.com/satori/go.uuid
go get github.com/tonnerre/golang-dns
go get github.com/tv42/zbase32

Как все почистить после запуска?

Нужно убить процесс с ботом и юзать следующий скрипт, который удалит все что насоздавал бот:

@RD /S /Q "%USERPROFILE%\AppData\Roaming\AsocialFriend"
reg delete "HKCU\Software\AsocialFriend" /f
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /f /v asocialfriend

Скрипт лежит в client/utils/clear.bat