반응형 정보보안/Malware8 [Security] 유용한 사이트 모음 아래 사이트에서 악성코드의 샘플 다운로드 및 분석 사례를 제공한다. https://bazaar.abuse.ch/browse/ MalwareBazaar | Browse malware samples bazaar.abuse.ch https://malpedia.caad.fkie.fraunhofer.de/library Malpedia Library malpedia.caad.fkie.fraunhofer.de https://www.vx-underground.org/samples.html vx-underground - samples Want to sponsor vx-underground? Your information could go here www.vx-underground.org https://www.malware.. 2021. 12. 20. [Malware] 악성코드 개요 및 기본 정적분석 1. 악성코드란 ? 악성코드는 악의 적인 행위를 하는 실행파일 또는 바이너리 파일을 의미합니다. 해커에 의해 사용되는 악성코드는 주로 데이터 수집 및 유출, 암호화, 삭제 등 다양한 비윤리적인 행위를 합니다. 악성코드는 행위 및 목적을 기반으로 트로이목마(Trojans), 원격제어(RAT's), 드롭퍼(Dropper), 랜섬웨어(Ransomware)로 분류할 수 있습니다. .Trojans : 사람의 심리를 악용하여 정상 프로그램으로 위장해 배포되며 감염된 PC의 데이터 유출 및 파괴, 스파이 활동을 합니다. .RAT's : 공격자가 원격에서 접근할 수 있도록 허용하고 여러 시스템 명령어를 실행합니다. 키로거와 같은 모듈을 사용해 민감정보 등을 탈취할 수 있습니다. .Dropper : 백신의 탐지를 우회하.. 2021. 7. 28. [Malware] Flare VM을 이용한 악성코드 분석환경 구축 Flare VM은 파이어아이에서 개발하여 오픈소스로 제공하고 있는 악성코드 분석, 정보보안 연구, 리버스 엔지니어링을 위한 가상환경 도구입니다. 설치하는데 시간이 오래 걸리는 편이지만 악성코드 분석 환경으로서 굉장히 유용한 도구들을 제공하기 때문에 FlareVM 환경을 구축하는 방법에 대해 포스팅 하려 합니다. 1. VirtualBox에 윈도우 구축하기 ※ 아래 URL에서 버추얼 박스에서 사용할 수 있는 윈도우 가상 환경 파일을 다운 받을 수 있습니다. https://developer.microsoft.com/ko-kr/microsoft-edge/tools/vms/ Virtual Machines - Microsoft Edge Developer Virtual MachinesTest IE11 and Micr.. 2021. 7. 11. [Reversing] 컴포넌트 객체 모델(COM) 1. 컴포넌트 객체 모델 컴포넌트 객체 모델(COM, Component Object Model)은 이종의 소프트웨어 컴포넌트에서 상호 세부내용을 모르더라도 서로 다른 코드를 호출할 수 있게 하는 인터페이스 표준이다. COM을 이용하는 악성코드를 분석할 때 COM 함수 호출의 결과로 어떤 코드가 실행될지 알 필요가 있다. COM은 운영체제 내부와 대부분의 마이크로소프트 애플리케이션에서 흔히 사용한다. COM은 클라이언트/서버 프레임워크로 구현된다. 클라이언트는 COM 객체를 사용할 수 있게 하는 프로그램이고, 서버는 COM 객체 자체인 재사용한 소프트웨어 컴포넌트다. COM을 사용하는 각 스레드는 다른 COM 라이브러리 함수 호출 전에 적어도 한 번은 OleInitialize나 CoInitializeEx .. 2021. 6. 2. [Reversing] 윈도우 커널 모드와 사용자 모드 커널 모드와 사용자 모드 윈도우는 두 가지의 프로세서 권한 수준을 이용하는데, 커널 모드와 사용자 모드를 사용한다. 커널 모드에서 동작하는 운영체제와 하드웨어 드라이버를 제외하면 거의 모든 코드는 사용자 모드에서 동작한다. 사용자 모드에서 각 프로세스는 개별 메모리, 보안 권한과 자원을 소유하고 있다. 사용자 모드 프로그램이 유효하지 않은 명령이나 종료를 수행하면 윈도우는 프로그램의 모든 자원을 반환하고 종료시킨다. 사용자 모드에서 하드웨어 조작이나 커널 내의 상태를 변경하려면 윈도우 API를 사용해야 한다. 커널 구조를 변경하는 윈도우 API 함수를 호출할 때 커널로 호출을 하게 된다. 디스어셈블리에서 SYSENTER, SYSCALL, INT 0x2E 명령어가 보이면 커널 호출이 진행 중이라는 .. 2021. 6. 1. [Reversing] 윈도우 리버싱(프로세스, 스레드, 뮤턴트, 서비스) 개요 1. 프로세스 윈도우는 리소스를 관리할 목적으로 컨테이너로 프로세스를 사용하고, 프로그램이 상호 간섭하지 않게 분리한다. 윈도우 시스템은 특정 시점에 적어도 20~30개의 프로세스가 CPU, 파일 시스템, 메모리, 하드웨어를 포함한 동일한 자원을 공유하면서 동작한다. 신규 프로세스 생성 악성코드가 신규 프로세스를 생성할 때 가장 흔히 사용하는 함수는 CreateProcess다. 이 함수의 많은 파라미터를 통해 호출자(caller)는 프로세스 생성에 관한 세부적인 제어가 가능하다. 악성코드는 보통 CreateProcess를 이용해 함수 하나만을 호출하는 간단한 원격 쉘을 생성한다. CreateProcess 함수의 파라미터 중 하나는 STARTUPINFO 구조체인데, 이는 프로세스의 표준 입출력과 표준 에러.. 2021. 5. 21. [Reversing] 리버싱을 위한 윈도우 API 기초 1. 헝가리안 표기법 윈도우는 일반적으로 API 함수 식별자로 헝가리안 표기법(Hungarian Notation)을 사용한다. 이 표기법은 변수 탑입을 식별하기 용이하게 하는 접두사 명명 스키마(prefix naming scheme)를 이용한다. 32비트 unsigned 정수, DWORD를 가진 변수는 dw로 시작한다. 타입과 접두사 설명 WORD (w) 16비트 unsigned 값 DWORD (dw) 더블 WORD, 32비트 unsigned 값 Handles (H) 객체 레퍼런스. 핸들에 저장된 정보는 문서화돼 있지 않으며 윈도우 API에 의해서만 조작될 수 있다. 대표적인 예로 HModule, HInstance, HKey를 들 수 있다. Long Pointer (LP) 다른 유형을 가리키는 포인터. .. 2021. 5. 14. [Reversing] 어셈블리어 기본 명령어 조건 명령어 cmp det, src zf cf dst = src 1 0 dst src 0 0 test 명령어는 and 명령어와 동일하지만, 수반한 오퍼랜드가 명령어에 의해 수정되지 않는다. test 명령어는 플래그만 설정한다. 자신과 테스트하는 행위는 NULL 값을 확인하는데 종종 사용되며 EAX를 0과 비교할 수 있지만 test eax, eax 구문은 좀 더 적은 바이트와 적은 CPU 사이클을 사용한다. 조건 점프 명령어 설명 jz loc ZF = 1이면 특정 위치로 점프 jnz loc ZF = 0이면 특정 위치로 점프 Je loc jz와 동일하지만 주로 cmp 명령어 이후에 사용. 목적지 오퍼랜드와 소스 오퍼랜드가 동일할 때 점프 jne loc jnz와 동일하지만 주로 c.. 2021. 5. 13. 이전 1 다음 반응형