본문 바로가기

Malware Analysis

(18)
TeslaCrypt Ransomware analysis Summary(TeslaCrypt Ransomware Time table pestudio를 통한 사전 분석 # compiler-stamp를 보면 1970년.. ? 말이안된다. 의도적으로 변형시킨것을 확인할 수 있다. # 정적분석을 통해 확인해야 하겠지만, 위와같은 위험한 함수들을 사용하고 있다. Symptoms of compromise # 랜성웨어를 실행하면 위와 같이 돈을 요구함. # 바탕화면(왼쪽), 파일암호화(오른쪽) 및 바탕화면에 파일 생성. Analysis tool 1. sysmon 2. regshot, Autoruns 3. wireshark 4. procmon 1. sysmon 1). Process create TeslaCrypt.exe(SHA1=51B4EF5DC9D26B7A26E214CEE9..
Sysmon의 개념 및 환경 구성 sysmon 개념 Sysmon은 기본 윈도우 이벤트 로그로는 한계가 있는 프로세스 생성, 네트워크 연결 등을 이벤트화 할 수 있습니다. 사고 대응 관점에서 생성된 프로세스 목록과 네트워크 연결 로그는 사고를 재구성하는데 굉장히 도움이 됩니다. Sysmon은 별도의 모니터링 도구 없이 간단히 드라이버 설치만으로 이런 로그를 이벤트화 시켜줍니다. (출처 : http://blog.plura.io/?p=5500) 앞으로 악성코드를 분성할 때 sysmon을 통해 위의 설명 대로 사고 대응 관점에서 생성된 프로세스와 네트워크 등 사고 재구성에 많은 활용을 할 것 입니다. ! sysmon 환경구성 vmware를 통해 32비트로 구성하여 실습을 진행하는데 있어서 최신버전 sysmon을 이용했지만.. 이벤트로그가 모두 ..
Jigsaw Ransomware analysis Summary(Jigsaw Ransomware Time table) Jigsaw.exe - Process create(684) [+]Copy File: Jigsaw.exe => C:\Users\Scott\AppData\Roming\Frfx\firefox.exe [+]Copy File: Jigsaw.exe => C:\Users\Scott\AppData\Local\Drpbx\drpbx.exe [+]Add Registery => HKU\S-1-5-21-3088076523-2200090595-96777359-1000\Software\Microsoft\Windows\CurrentVersion\Run\firefox.exe: "C:\Users\kimhy\AppData\Roaming\Frfx\firefox.exe" +..
assembly strcat (esi, edi, rep movsd, rep movsb) 위의 코딩 부분은 strcat을 실행하는 부분을 assembly설명을 위해 캡쳐한 부분이다. 다른 것을 막론하고 strcat("sky","blue")를 한다고 가정하자. 위 코딩과 비교해 보자면... var_D8는 "sky"의 NULL에 해당하는 부분의 주소, var_E0은 "blue"의 b에 해당하는 부분의 주소, var_E4는 "blue"의 문자열 수 5를 저장한다(null포함). 위의 그림처럼, edi = 문자열 마지막 주소 즉, sky의 문자열 마지막 주소인 NULL에 위치해 있는다. 그리고 edi = esi(복사할 문자열 여기선 "blue") 문자 복사를 한다. 문자열 복사는 ecx를 기준으로 ecx의 데이터 값만큼만 한다. 흐름은 이런식이고.. assembly에서는 어떻게 작동하는지 다시 위의..
adc, sbb, carry flag, overflow flag 이해하기(+cmp) what is the adc, sbb?? 해석을 해보자면..(잘 못하지만) 당신의 프로세서 레지스터 사이즈보다 더 큰 수가 더해지거나 빼질 경우 ADC와 SBB 지시자를 사용할 수 있다고 한다. add dest, source 가 dest = dest + source라고한다면, adc는 dest = dest + source + carry flag sub dest, source 가 dest = dest - source라고한다면, sbb는 dest = dest - source - carry flag 이다. 그렇다면 carry flag란 무엇인가. carry flag는 overflow flag와 혼동될 수 있는 flag이다. 둘의 차이에 대해 알아보자. 예를 들어, (4bit 연산을 한다고 가정) 1000+10..
JSON?? JSON은 JavaScript Object Notation의 약자로서 JavaScript문법에 영향을 받아 개발된 데이터 표현 방식이다. JSON은 데이터를 교환하는 한 포맷으로서 그 단순함과 유연성 때문에 널리 사용되고 있다. 특히 웹브라우져와 웹서버 사이에 데이터를 교환하는 데 많이 사용하고 있다. 가장 많이 사용되는 JSON 포맷은 Key-Value Pair의 컬렉션이다. Python은 기본적으로 JSON표준 라이브러리(json)를 제공하고 있는데, "import json"을 통해 JSON 라이브러리를 이용 가능하다. JSON 라이브러리를 사용하면, Python 타입의 Object를 JSON문자열로 변경할 수 있고, 반대로 JSON 문자열을 다시 python 타입으로 변환할 수 있다. JSON인코딩..
malwares,virustotal python script malwares,virustotal python script 먼저, 두 사이트는 모두 API를 제공한다. API란 무엇인가?.. API는 Application Programming Interface의 약자이다. 응용 프로그램 개발자들이 애플리케이션을 만들 떄 운영체제에서 동작하는 프로그램을 쉽게 만들 수 있도록 화면 구성이나 프로그램 동작에 필요한 각종 함수를 모아놓은 것을 말한다. 위 그림에서 예를 들면 API는 메뉴판 라이브러리는 주방이라고 볼 수 있다. C언어에서 printf는 메뉴판(API)을 통해 주방(라이브러리)에서 printf()의 완성된 함수 양식을 꺼내어 보여주고, 손님은 그것을 이용할 수 있습니다. 그럼 이제 API를 알고 malwares.com부터 알아 보도록하겠습니다.! malwar..
assembly div, idiv, cdq 32bit의 나눗셈을 한다고 가정해보자. 명령어 div(부호가 없는 나눗셈), idiv(부호가 있는 나눗셈)은 많이 알고 있는 개념이다. 그 외에 알아야할 개념은 2가지 정도이다. 피제수와 cdq이다. 피제수는 나눔을 당하는 수 즉, dividied이다. 17과 5를 (32bit data라 가정) 나눈다고 하면 eax에 17을 넣고, ebx(다른 레지스터나 메모리도 상관은 없다)에 5를 넣는다. 그리고 div나 idiv연산을 하면 잘 될 거같지만 그렇지 않다. 제수가 32bit data라면 피제수는 64bit가 되어야한다. 그래서 피제수의 bit를 확장해 줘야하는데 그것이 cdq 연산이다. eax를 eax(상위16비트):edx(하위32비트)로 바꿔준다. 그리고 idiv 연산을 하면 몫은 eax 나머지는 ..