Alan Framework
Alan Framework — это фреймворк для пост-эксплуатации, полезный при проведении красно-командных мероприятий.
Если вы считаете мой инструмент полезным, пожалуйста, подумайте о спонсировании меня.
⚠⚠⚠ Отказ от ответственности ⚠⚠⚠
Создание подобного рода программного обеспечения всегда вызывало споры. Если вам интересно, почему я решил создать этот инструмент, то потому что я убежден, что лучший способ обучения — это реализация того, что вы изучили. В процессе реверс-инжиниринга упускается множество мелких деталей. Постепенно эти детали мешают исследователю составить полную картину происходящего. Наконец, я прежде всего программист, и мне нравится разрабатывать такие программы 😄
Загрузка
Скачать Alan C2 Framework
Заметные возможности
- Вы можете запускать предпочитаемые инструменты непосредственно в памяти
- Выполнение JavaScript-скриптов (в памяти, без сторонних зависимостей)
- Полностью совместимый SOCKS5-прокси
- Поддерживаемые типы агентов: Powershell (x86/x64), DLL (x86/x64), Executable (x86/x64), Shellcode (x86/x64)
- Server.exe может выполняться в Linux (через dotnet core)
- Сетевое взаимодействие полностью шифруется с помощью сессионного ключа, который невозможно восстановить из бинарного файла агента или из дампа трафика
- Связь осуществляется через HTTP/HTTPS
- Не требует установки внешних зависимостей или библиотек
- Мощная командная оболочка
- Конфигурация агента может обновляться на лету (можно менять также порт и протокол)
Документация:
Статьи в блоге
Для получения дополнительной информации об использовании, пожалуйста, ознакомьтесь с документацией.
Компиляция исходного кода
Чтобы скомпилировать Alan, необходимо выполнить следующие действия:
- Убедитесь, что у вас установлен cmake и он находится в PATH (запустите cmake --help, чтобы проверить его работоспособность)
- Установите Visual Studio 2022 (подойдет Community Edition). Эти шаги были проверены на версии VS 2022 17.3.1
- Убедитесь, что в составе Visual Studio установлены: .NET Desktop Development, Desktop development with C++ и язык F#
- Установите библиотеки .NET, выполнив: ./src/server/paket.exe install
- Откройте файл .src/server/ServerSln.sln в Visual Studio. Установите проект ServerBuilder в качестве основного (правой кнопкой мыши -> Set as Startup Project)
- Запустите ServerBuilder, который скомпилирует всё
- Если компиляция завершилась успешно, ZIP-файл Alan будет находиться во вновь созданной директории Misc/out/release
Видео:
Демонстрационные видео
Alan v7.0.514.10 - SOCKS5 Proxy  | Alan v6.0.511.28 - JS Execution  | Alan v5.0.509.20 - In-Memory Execution  |
|---|
Alan v4.0.0 - x64 Agent && Inject  | Alan v3.0.0 - Misc Commands  | Alan v2.0.500.23  |
Alan v1.0.0  | | |
Список изменений
v7.0.514.10 - 15.05.2022
- Реализована команда
proxy для пивотинга
- Команды
info и info++ отображают, использует ли агент прокси
- Исправлена ошибка в сетевом взаимодействии (Issue 2)
- Исправлена ошибка в PE-загрузчике при импорте функций по ordinal
- Исправлен модуль JS, вызывавший преждевременное освобождение памяти
- Исправлена ошибка в команде
run, из-за которой опция & не работала
- Сообщения журнала теперь сохраняются в файл
alan.log
- Все генерируемые выходные данные и ввод пользователя записываются в файл доказательств в папке
evidences
- Добавлена информация об идентификаторе машины в команду
info
- Добавлен тип пакета
Vanilla для создания агента. Это позволяет лучше интегрировать пользовательский упаковщик.
v6.0.511.28 - 24.02.2022
- Изменены x86/x64 PE-загрузчики для обновления поля PEB->Ldr. Это позволяет системе вызывать DLL_PROCESS_DETACH на внедренной DLL.
- Увеличен максимальный размер ответа до 1 ГБ. Исправлена загрузка больших файлов.
- Добавлена дата истечения срока действия агента в конфигурацию.
- Команда
run была расширена для поддержки выполнения файлов JavaScript.
- Команда
info++ теперь показывает метку тома и тип файловой системы.
v5.0.509.20 - 13.12.2021
- Реализована команда
run
- Реализована команда
kill
- Реализована команда
exec
- Удалено сообщение
inject, так как его можно выполнить с помощью команды run в фоновом режиме
- Созданы stager и PE-загрузчик для большей скрытности агента. Каждый сгенерированный файл агента имеет разный хеш
- Улучшено внедрение кода для обхода политики Dynamic Code Policy Mitigation
- Теперь можно указать имя файла агента для создания во время мастера
- Исправлена ошибка в командах
upload и download
- Исправлена ошибка при создании оболочки. Токен процесса командной оболочки не имел того же уровня целостности, что и агент
- Удалена экспортируемая функция из артефакта DLL-агента
- Добавлена текущая рабочая директория в команду
info
- Расширена команда
shell для выполнения одиночной команды