
매우 이식성이 뛰어난 봇넷 프레임워크로, Django 기반의 C2 서버를 갖추고 있습니다. 클라이언트는 C++로 작성되었으며, 대체 클라이언트는 Rust, Bash, Powershell로 작성되었습니다.
봇넷의 C2 서버는 Django 프레임워크를 백엔드로 사용합니다. 가장 효율적인 웹 서버와는 거리가 멀지만, 다음과 같은 점으로 상쇄됩니다:
aura-server 폴더에 포함되어 있습니다.http://your_server:server_port/admin에 위치한 관리 사이트는 수퍼유저를 설정한 후에 접근할 수 있습니다(아래 참조).
C2 서버는 현재 SQLite3 데이터베이스인 bots.sqlite3을 사용하도록 구성되어 있습니다.
현재 구성은 aura-server/aura/settings.py에서 변경할 수 있습니다.
대신 MySQL 또는 PostgreSQL을 사용할 수도 있습니다. Django의 휴대용 데이터베이스 API 덕분에 쉽게 변경할 수 있습니다.
기본 클라이언트는 C++로 작성되었으며, CMake를 사용하여 Linux 또는 Windows에서 컴파일할 수 있습니다. 대체 클라이언트는 Rust, Bash 및 Powershell로 작성되었지만, 대부분 지원되지 않으므로 특정 기능이 부족할 수 있습니다. 제가 알게 된 주요 버그는 수정하겠지만, 현재로서는 다른 셸에서 명령을 실행하는 것과 같은 특정 기능이 계속 부족할 것입니다.
클라이언트는 관련 시스템 정보를 수집하여 C2 서버로 보내 새 봇을 등록합니다. 식별은 코드 전체에서 인증 파일이라고 하는 무작위 데이터가 포함된 파일을 처음 생성한 다음, 클라이언트가 실행될 때마다 해시하여 클라이언트를 식별하고 C2 서버와 인증하는 방식으로 이루어집니다. 그런 다음 코드에 지정된 폴더에 모든 파일을 설치하고, 클라이언트가 실행된 것과 동일한 권한으로 시스템 서비스를 초기화하거나 작업을 예약합니다. 기본 설정에서는 클라이언트 및 기타 파일이 구성 파일로 위장하도록 되어 있습니다.
테스트 목적이므로 C2 서버를 클라이언트 및 웹 전달 파일에 하드코딩해야 합니다. 현재 모든 파일에서 localhost로 설정되어 있습니다. 실제 봇넷은 도메인 생성 알고리즘(DGA)과 같은 것을 사용하여 클라이언트 측에서 변경되는 도메인 스트림과 등록되는 일회용 도메인 스트림을 동기화하거나, 원래 Mirai 봇넷과 같은 정말 견고한 호스팅을 사용하기 때문입니다.
코드도 난독화되어 있지 않으며 리버스 엔지니어링을 방지하려는 노력도 없습니다. 이는 테스트 및 시연용 봇넷의 목적에 어긋나기 때문입니다.
killswitch 폴더에는 기기에서 테스트할 때 클라이언트를 쉽게 제거할 수 있는 스크립트가 포함되어 있습니다.