
Incarcero는 악성코드 분석 도구와 악성코드 분석에 맞게 조정된 보안 설정이 사전 구성된 가상 머신(VM)을 사용자 상호작용 없이 생성하는 도구입니다.
악성코드 분석은 폭탄을 해체하는 것과 같습니다. 목표는 해를 끼치도록 만들어진 프로그램을 분해하고 이해하는 것이며, 이러한 프로그램은 분석을 더 복잡하게 만들기 위해 종종 난독화(예: 패킹)되어 있습니다.
Incarcero는 사용자 상호 작용 없이 악성코드 분석에 맞게 사전 구성된 악성코드 분석 도구와 보안 설정을 갖춘 가상 머신(VM)을 생성하는 도구입니다.
또한, 이 저장소에는 아마도 가장 큰 악성코드 소스 코드 컬렉션과 인기 있는 온라인 데이터베이스에서 악성코드 샘플을 다운로드할 수 있는 모듈도 포함되어 있습니다.
참고: MD5 값이나 smbXXX.tmp와 같은 일반적인 이름을 가진 바이너리는 업로드 시점에 VirusTotal에서 악성코드로 탐지되지 않았지만, 이것이 악성코드 샘플이 아니라는 의미는 아닙니다. 이 저장소에 있는 모든 샘플을 자유롭게 설정, 분석 및 리버스 엔지니어링하시기 바랍니다. 실제로 분석하신다면 조사 결과를 알려주세요.
dnf install ruby-devel gcc-c++ zlib-devel
vagrant plugin install winrm winrm-fs
apt install vagrant git python3-pip
apt install git python3-pip
pacman -Sy vagrant packer python-pip git
sudo pip3 install git+https://github.com/0x48piraj/incarcero.git#egg=incarcero
참고: Windows 10부터 Hyper-V는 운영 체제 아래에서 항상 실행됩니다. VT-X는 단 하나의 하이퍼바이저에 의해서만 독점적으로 운영되어야 하므로 VirtualBox(및 incarcero)가 실패하게 됩니다. Hyper-V를 비활성화하고 VirtualBox가 실행되도록 하려면 관리자 명령 프롬프트에서 다음 명령을 실행한 후 재부팅하세요: bcdedit /set hypervisorlaunchtype off. Virtualbox 6 버전부터는 Hyper-V를 대체 실행 코어로 지원합니다 (변경 로그)
다음 단계는 https://chocolatey.org/[Chocolatey]가 설치되어 있다고 가정합니다. 그렇지 않은 경우 수동 설치 절차를 따르세요.
종속성 설치:
choco install python vagrant packer git virtualbox
콘솔 새로고침:
refreshenv
incarcero 설치:
pip3 install setuptools
pip3 install -U git+https://github.com/0x48piraj/incarcero.git#egg=incarcero
C:\Windows\System32\)에 넣으세요pip3 install setuptools
pip3 install -U git+https://github.com/0x48piraj/incarcero.git#egg=incarcero
일반 설치 후 다음 명령을 실행하세요:
vagrant plugin install vagrant-aws
참고: AWS 기능은 현재 Linux에서만 테스트되었으며 EC2는 Windows 10 32비트 데스크톱 버전을 지원하지 않습니다.
이 명령은 Vagrant에 임포트되는 기본 box를 생성합니다. 이후에는 샘플 분석 시 동일한 box를 여러 번 재사용할 수 있습니다.
실행:
incarcero build <template>
다음 명령으로 지원되는 모든 템플릿을 나열할 수도 있습니다:
incarcero list
이 명령은 악성코드 조사에 사용할 준비가 된 Vagrant box를 빌드하며, 이후 Vagrantfile에 포함할 수 있습니다.
예를 들어:
incarcero build win10_x64_analyst
구성 섹션에는 incarcero로 구성할 수 있는 항목에 대한 추가 정보가 있습니다.
incarcero spin win10_x64_analyst <name>
이 명령은 악성코드 분석에 사용할 준비가 된 Vagrantfile을 생성합니다. 원하는 디렉토리로 이동한 후 다음을 실행하세요:
vagrant up
기본적으로 로컬 디렉토리는 VM의 바탕 화면에서 공유됩니다. 이는 Vagrantfile의 해당 부분을 주석 처리하여 변경할 수 있습니다.
예를 들어:
incarcero spin win7_x86_analyst 20160519.cryptolocker.xyz
incarcero는 Amazon Web Services의 VM을 업로드하고 상호 작용할 수 있습니다. 이렇게 하려면 다음 단계를 따르세요:
. incarcero는 VM을 AMI(Amazon Machine Image)로 변환하기 전에 AWS에 업로드할 S3 버킷이 필요합니다. 버킷이 없다면 지금 만드세요.
. 인스턴스에는 WinRM 인바운드 연결을 허용하는 규칙이 최소 하나 이상 포함된 보안 그룹도 필요합니다 (유형: WinRM-HTTP, 프로토콜: TCP, 포트 범위: 5985, 소스: 호스트의 공용 IP).
. 다음으로 vmimport 서비스 역할을 구성해야 합니다.
이 가이드의 VM Import Service Role 섹션을 따르세요.
이러한 단계는 iam:CreateRole 및 iam:PutRolePolicy 권한이 있는 계정으로 수행해야 합니다.
. 기본 구성을 사용하는 경우 하이퍼바이저를 aws로 변경하고 관련 필수 옵션을 입력하세요. 그렇지 않은 경우 AWS에 대한 모든 옵션을 사용자 지정 구성에 추가해야 합니다.
. 마지막으로 Box 생성 및 분석별 인스턴스 섹션에 설명된 것과 동일한 단계에 따라 인스턴스를 시작할 수 있습니다!
참고: AMI 임포트는 매우 오래 걸릴 수 있습니다 (약 1시간). 그러나 이 방법으로 작업 상태를 확인할 수 있습니다. 현재 템플릿당 하나의 AMI만 빌드할 수 있습니다.
pip를 사용하여 awscli 설치:
pip install awscli
다음으로 awscli를 구성하세요:
aws configure
그런 다음 실행:
aws ec2 describe-import-image-tasks
RDP를 사용하여 클라우드의 인스턴스에 연결하려면 Vagrantfile이 있는 동일한 위치에서 다음 명령을 실행하세요:
vagrant rdp -- /cert-ignore
이 작업이 작동하려면 인스턴스에 RDP 인바운드 연결을 허용하는 보안 그룹이 필요합니다 (유형: RDP, 프로토콜: TCP, 포트 범위: 3389, 소스: 호스트의 공용 IP).
참고: rsync가 아직 구현되지 않았으므로 다음 오류는 무시해도 안전합니다: No host IP was given to the Vagrant core NFS helper. This is an internal error that should be reported as a bug.
클라우드의 인스턴스를 중지하려면 Vagrantfile이 있는 동일한 위치에서 다음 명령을 실행하세요:
vagrant halt
incarcero의 구성은 일반적인 운영 체제 규칙을 따르는 디렉토리에 있습니다:
~/.config/incarcero/~/Library/Application Support/incarcero/C:\Users\<username>\AppData\Local\incarcero\incarcero\파일 이름은 config.js이며 첫 실행 시 예제 파일에서 복사됩니다. 예제 구성에 문서화되어 있습니다.
incarcero는 기본적으로 virtualbox를 백엔드로 사용하지만 0.3.0 버전부터 ESXi / vSphere 지원이 추가되었습니다. ESXi / vSphere 지원에 필요한 단계에 대한 메모를 확인할 수 있습니다. 모든 사용자의 설정이 조금씩 다르기 때문에 문제가 발생하면 주저하지 말고 이슈를 열거나 풀 리퀘스트를 통해 문서를 개선해 주세요.
저희는 구성과 별도로 저장되는 프로필 개념을 탐구하고 있습니다. 프로필은 파일 생성, 레지스트리 변경 또는 추가 패키지 설치에 사용할 수 있습니다. 예제 구성은 profile-example.js를 참조하세요. 이 새로운 기능은 실험적이며 사용해 보면서 변경될 수 있습니다.
현재 incarcero는 보안 그룹의 자동 생성을 지원하지 않으므로 AWS 콘솔을 사용하여 직접 만들어야 합니다. 그러나 Boto3 라이브러리를 사용하면 이를 구현할 방법이 있을 것입니다.
이 저장소는 연구 목적으로만 제공되며, 이 코드의 사용에 대한 책임은 사용자 본인에게 있습니다.
여기에 제공된 소스 코드를 어떻게 사용하든 저는 어떠한 책임도 지지 않습니다. 이 저장소의 파일을 사용함으로써 귀하는 본인의 책임 하에 사용하는 데 동의하는 것입니다. 다시 말하지만, 여기에 있는 모든 파일은 교육 및/또는 연구 목적으로만 제공됩니다.
저는 여기에 제공된 어떤 코드의 저자도 아닙니다. 이 저장소에는 온라인에 유출된 악성코드 소스 코드 샘플(및 여러 다른 출처에서 발견된 샘플)이 포함되어 있으며, 코드를 분석하려는 사람들의 과정을 단순화하기 위해 GitHub에 업로드했습니다.
이 저장소에 포함된 자료와 관련된 모든 행동 및/또는 활동은 전적으로 사용자 본인의 책임입니다. 이 저장소의 정보를 오용하면 관련자에 대한 형사 고발이 제기될 수 있습니다. 이 저장소의 코드를 불법 행위에 오용하는 개인에 대해 형사 고발이 제기되더라도 저는 책임을 지지 않습니다.
이 저장소는 해킹 관련 활동을 조장하지 않습니다. 이 저장소의 모든 정보는 교육 목적으로만 제공됩니다.
이 프로젝트는 malboxes의 도움으로 부활되었습니다.