2016 hack festival igrusJinookawk2016 IGRUS Hack Festival
대회일자 : 5월 21일 ~ 5월 22일
공동제작자 : 임준수, 김정현, 연준모, 곽진우, 조은희, 최정무
템플릿 출처 : http://blog.naver.com/PostThumbnailView.nhn?blogId=metalpan13&logNo=40209691660&categoryNo=46&parentCategoryNo=&from=postList
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 ѫGangSeok Lee2014 CodeEngn Conference 11
DTrace를 보안 관점에서 활용해보자!
DTrace 프레임워크는 솔라리스 기반으로 개발된 동적 추적 프레임워크로 현재 Solaris, Mac OS X, BSD 등에 적용되고 있다. 프레임워크는 운영체제 개발 시점에 커널에 통합된 프레임워크로 사용자 및 커널 레벨의 다양한 정보(메모리나 CPU, 파일시스템, 네트워크 자원의 모니터링이나 특정 함수의 인자 추적 등)를 동적으로 ѫ할 수 있게 하여 애플리케이션 테스팅에 주로 활용되고 있다. 이러한 장점을 활용하여 최근에는 보안 관점에서 프레임워크를 사용하는 경우가 늘어나고 있다. 퍼징 모니터링이나, 바이너리 동적 ѫ과 같은 취약점 ѫ, 악성코드 동적 ѫ, 루트킷 개발이 한 예이다. 본 발표에서는 DTrace가 무엇인지 살펴보고, 윈도우의 filemon의 기능을 구현해보도록 한다. 이 발표를 통해 ѫ가에게 생소할 수 있는 Mac OS X의 바이너리 ѫ에 도움이 될 것이라 생각한다.
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 ѫ 방법론GangSeok Lee2013 CodeEngn Conference 09
MS 윈도우의 원데이 패치에 대해서 ѫ 및 접근 방법을 살펴본다. 또한, 최근에 나온 원데이 취약점 패치 ѫ을 진행하며 필요한 팁에 대해서 알아보고자 한다.
http://codeengn.com/conference/09
http://codeengn.com/conference/archive
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 ѫ 방법론GangSeok Lee2013 CodeEngn Conference 09
MS 윈도우의 원데이 패치에 대해서 ѫ 및 접근 방법을 살펴본다. 또한, 최근에 나온 원데이 취약점 패치 ѫ을 진행하며 필요한 팁에 대해서 알아보고자 한다.
http://codeengn.com/conference/09
http://codeengn.com/conference/archive
[2011 CodeEngn Conference 05] daly25 - 파일바이러스 ѫ 및 치료로직 개발GangSeok Lee2011 CodeEngn Conference 05
FileVirus(FV)는 정상파일들을 악성코드로 감염시키기는 감염˳ 바이러스이다. FV는 일반적인 바이러스 치료방법(삭제)보다는 원래의 정상파일로 복원하여 치료해야한다. 이에 본 발표에서는 치료로직 개발에 필요한 FV 감염구조들에 대해 알아보고, 각 감염구조에 따른 악성코드 ѫ 및 치료로직 개발 방법에 대해 알아보도록 한다.
http://codeengn.com/conference/05
[2007 CodeEngn Conference 01] 이강석 - Malware Analysis StartGangSeok Lee2007 CodeEngn Conference 01
악성코드의 정의, 악성코드 ѫ을 하려고 했을때 공부해야 할 것들 코드의 기본적인 제작방법 루틴 설명 / 발전하는 악성코드 제작 프로그램 악성코드 ѫ에 앞서 ѫ환경 구축설명 간단한 악성코드 ѫ과 발표자가 제작한 AntiVirus 프로그램 설명 악성코드 탐지방법 설명등에 대해서 설명한다.
http://codeengn.com/conference/01
3. 자주 등장하는 코드
• 함수 호출1 – 프로그래머가 만든 함수
• 함수 호출2 – 미리 만들어진 Library 함수
• 반복문
• 조건 분기문
4. 함수 호출 1 – 프로그래머 제작 함수
위의 함수의 경우 Func1(arg1) 와 같은 ˳태 인 것을 알 수 있다.
함수 명이 보이지 않는 경우 해당 심볼이 없거나 프로그래머가 제작한 함수이다.
ѫ 시에 그냥 넘어가면 안 되는 함수 이기도 하다.
※ 정적으로 컴파일 된 라이브러리 일 수도 있다.
( IDA 와 같은 디버거로 보게 되면 보이는 경우도 있다. )
5. 함수 호출 2 – 미리 만들어진 Libraray
위의 함수의 경우는
CreateFileA(FileName,0x120089,0,NULL,OPEN_EXISTING,0,NULL)
와 같이 번역 할 수 있다. 함수호출 시에 함수 이름이 보이며
Kernel32 라는 모듈내부에 이미 만들어진 함수 임을 알 수 있다.
이런 함수는 내부로 들어가서 ѫ 할 필요 없다.
6. 반복문
위의 함수에서 JMP (Address) 와 같이 JMP하여 도착하는 코드의 위치가
위쪽을 향하는 것을 볼 수 있다. 이런 것은 반복적으로 사용하는 반복문에서
많이 볼 수 있다.
7. 조건 분기문
위와 같이 TEST 혹은 CMP와 같은 명령어 연산 이후에 조건을 보고
JE 명령어로 분기하는 것을 볼 수 있다.
특히 TEST EAX, EAX는 자주 등장하는 명령어 이며
If eax == 0 조건이면 JE 다음 주소로 점프하는 경우이다.
해당 값이 0인지 아닌지 검사할 때 자주 등장한다.
16. 악성코드 자동시작을 위한
레지스트리 생성
RegCreateKeyExA 함수로 SoftwareMicrosoftWindowsCurrentVersionRun
17. 실행파일에 포함된 악성파일 Drop
자신의 실행파일 영역 중 Resource 영역에 Drop 할 실행파일을 숨기고
해당 실행 파일을 찾아서 Drop 하기 위해 FindResource 함수를 호출하는 것을
볼 수 있다.
18. 공격자가 설정한 서버에 접속하여
악성코드 행위 결정
패킷의 내용을 보면 GET /~ 으로 시작하는 내용이 있는 것을 볼 수 있다.
이것은 해당 공격자 서버에 접속하여 악성코드가 어떤 행위를 할 것인지
혹은 어느 쪽으로 접속을 할 것인지에 대한 정보를 얻어 행동할 수 있다.