목록전체 글 (347)
저번 샘플을 이어서 분석했다. 이번에는 동적으로 분석을 진행했다. SysAnalyzer을 이용했다. 세팅을 해주고 start를 눌러주어 기다려준다. 실행하기 전 꼭 스냅샷을 찍어주어야 한다. 무슨 일이 일어날지 모른다. 실행 후 확인을 하면 샘플 프로그램이 종료되지 않았다. 계속 실행중이다. PID 1248이 USER의 권한을 사용하고 있다. 여러 개의 PORT가 생성된 것을 확인할 수 있다. 레지스트리가 수정되었다. API log를 확인한다. 레지스트리, 통신, 뮤텍스 관련 api들을 확인했다. 패킷을 확인해보면 저번 pestudio를 통해 확인했던 url이 찍혀있다. 해당 url과 통신을 한다는 것을 알 수 있다. 마지막으로 뮤텍스 관련 기록들이 존재한다. HGL345 또한 pestudio에서 식별했..
패킹 되어있지 않다. PESUTDIO를 통해 정적 분석을 진행했다. 요약을 보면 악성코드로 의심되는 부분이 많다. 여러 백신에서 트로이목마로 식별된다. 잘 사용하지 않는 wininet.dll이 보인다. url 관련 함수, service 함수, mutex함수, heap 함수, DLL 인섹션 의심 함수들 등도 보였다. strings 확인 결과 이다. 해당 url을 open하는것을 식별했다.
윈도우 API - 대부분의 악성코드는 윈도우 플랫폼에서 동작 - 운영체제와 밀접하게 상호작용 - 최신정보 확인 http://soen.kr 핸들 - 윈도우, 프로세스, 모듈, 메뉴, 파일 등과 같이 운영체제에서 오픈되거나 생성 - 객체나 메모리 위치를 참조한다는 점에서 포인터와 같음 파일 시스템 함수 - 악성코드가 시스템과 상호작용하는 가장 일반적인 방식은 파일을 생성하거나 수정해 파일명을 구별하거나 기존 파일명을 변경 - 식별자로 사용 가능 - 파일을 생성해 그 파일에 웹 브라우징 내용을 저장한다면 해당 스파이웨어 형태일 가능성이 높음 - 함수 - CreateFile : 파일을 생성하고 열 때 사용 - ReadFile, WriteFile : 파일을 읽고 쓰는 데 사용 - CreateFileMapping,..
10. 0x1000ff58에서 서브루틴으로 수백 라인은 문자열을 비교하기 위한 일련의 memcmp비교다. robotwork와 문자열 비교가 성공적으로 이뤄지면 무슨 일이 일어날까 세 개의 레지스터 값을 사용하는 모습이다. 11 PLIST 익스포트는 무슨 역할을 하는가 플랫폼 id와 버전을 확인한다. 12 그래프 모드를 이용해 sub_10004E79 상호 참조 그래프를 그려보자. 이 함수에 진입하기 위해 호출하는 API 함수는 무엇인가? 해당 API 함수에만 기반을 두고 이 함수를 어떤 이름으로 변경하겠는가?. 사용자 언어 정보를 공격자에게 전송한다고 추측할수있다. 그 기능에 맞게 함수 이름도 변경해주었다. 13 DllMain 이 직접 호출하는 윈도우 API 함수는 몇 개인가? 두 번째 깊이(depth o..
실습 예제 1. DLL entrypoint 주소 2. Imports 윈도우를 이용해 gethostbyname을 탐색 3. gethostbyname을 호출하는 명령어는 개수 4. 0x10001757에 위치한 gethostbyname호출을 통해 어떤 dns 요청이 이루어지는지 확인 5. 0x10001656에 있는 서브루틴에서 지역 변수 개수 6. 0x10001656에 있는 서브루틴에서 파라미터 개수 7. 디스어셈블리 내의 문자열 \cmd.exe /c찾기 8. \cmd.exe /c를 참조하는 코드 영역에서 무슨 일이 발생하는지 확인 9. 악성코드는 어떻게 dword_1008e5c4를 설정하는지 확인 1번은 간단하게 functions window에서 dll을 검색해서 ep를 찾는다. 0x1001516D가 ent..
기초 동적 분석 개요 - 기초 동적 분석이란 - 프로그램을 직접 실행하며 분석 - 악성코드 분석에서 가장 프로그램의 영향을 쉽게 파악 - 프로그램의 기능을 파악하기 위해 악성코드 실행 전후 상태를 조사 및 분석 - 분석 방법 - 악성코드 실습 시 발생하는 호스트/네트워크 환경 구성 - 파일, 프로그램 실행, 레지스트리, 서비스 등 관련 항목 변경 사항 확인 - 실행 시 발생하는 네트워크 트래픽 분석 기초 동적 분석 도구 - 프로세스 모니터(procmon.exe) - 특정 레지스트리, 파일 시스템, 네트워크, 프로세스, 스레드 행위를 모니터링하는 고급 도구 - ProcMon의 한계 - 특정 GUI와 장치 I/O 제어를 통한 루트킷 탐지 불가 - 네트워크 행위에 대해 일관성 있는 탐지 불가 - 프로세스 익스..
예제 악성코드 샘플을 통해 실습을 진행했다. 파일을 실행하지 않고 정적으로 분석을 진행한다. 먼저 악성코드의 이름과 같은 해시값을 추출해준다. 해시값을 바이러스 토탈에 검색하면 score는 51/71이다. 예제 샘플이라고 나온다. 바이러스 토탈에서는 더욱 자세한 해시값들과 패커까지 알려준다. 컴파일된 날짜를 확인한다. PEVIEW를 통해 확인할 수 있다. exe파일과 dll파일이 거의 동일한 시간대에 컴파일된 것을 확인할 수 있다. 패킹이 되어있는지 확인하기 위해 offset들을 확인해주었다. peid로도 확인해본 결과 패킹은 되어있지 않았다. dll의 IAT를 확인해주었다. Sleep을 통해 예약 스케줄링이 있다는 것을 예측할 수 있다. Mutex기능으로 중복 실행을 방지한다. 그리고 KERNEL32...
악성코드 분석 방법 순서 기초 정적 분석 - 비실행 기초 동적 분석 - 실행 고급 정적 분석 - 비실행 고급 동적 분석 - 실행 악성코드 분석의 네 가지 접근 방법 완전 자동화 분석 - 정적 분석 및 동적 분석을 통해 악의적인 행위를 판단 - 자동 분석 수행 - 전문가에 의해 분석되는 만큼 상세하거나 정확하지 않을 수 있음 - 악성코드 분석 제공 서비스 정적 속성 분석 - 악성코드의 추가 분석을 위해 필요한 단계 - 문자열 헤더 정보, 해시 값, 리소스 정보, 패킹 여부 등 신속하게 정보 획득 - 정보들을 활용해 실행 파일 간의 비교 데이터베이스를 구성 - 바이러스 토탈 서비스 대화형 동적 분석 - 레지스트리, 파일시스템, 프로세스, 네트워크 활동을 위해 분리된 가상 머신 환경에서 실행하며 분석 - 메모..