posted by 블르샤이닝 2014. 3. 24. 10:39
728x90

두가지 방법.


1. Ctrl + F 를 눌러서 RETN 0c를 검색한다. 

그 밑에 두개의 명령에 BP를 걸어준다. 그다음 진행하면 된다.

EX)

RETN 0C

PUSH 0            <====여기서 BP

RETN               <====여기서 BP 


---------------------------------------------진행하면 


RETN 0C 

PUSH 00401BF3            <======OEP로 복원되어 RETN으로 해당 주소값으로 이동하게 된다. 

RETN 



2. 맨처음 PUSHAD 한번 진행해서 레지스터값 ESP부분에 하드웨어 BP 걸어서 진행. 해당 PUSHAD(모든 레지스터를 저장)을 한것을 POPAD에서 풀어주게 되는데 이때 OEP부분이 나오게 되는거다. 결론은 위에 주소(위치)랑 같다.

EX)

POPAD 

JNZ         SHORT 009263BA

MOV        EAX, 1

RETN        0C

PUSH       0

RETUN

------------------------------------------------------

진행하면 위와 똑같이 변함.


결론적으로 해당 OEP의 위치는 같은것을 찾게됨. 다만 두번째는 바이너리를 이용하여 찾는방법이고, 두번째는 저장된 레지스터가 풀리면서 나오게되는 ESP의 위치의 OEP값을 찾게되는거다.


개인적으로 1.이 좀더 빠르고 쉽다. 어느걸 이용하든 개인의 자유 (인터넷 및 배우내용을 토대로 적음) 

(오타나 태클부분 환영합니다. 잘못된 점 가르쳐 주시면 좋은 배움이 됩니다. )






728x90

'리버싱' 카테고리의 다른 글

가상머신인지 확인하는 어셈코드  (0) 2014.04.07
PEcompect 언팩킹  (0) 2014.03.27
thmida 2.xx 버젼 언팩 튜토리얼  (0) 2014.02.04
mfc 에서 #32770(Dialog)의 의미  (0) 2014.01.20
스레드 패턴 만드는법  (0) 2013.12.11
posted by 블르샤이닝 2014. 2. 13. 16:22
728x90

 

원래는 문서로 올리지않고 편집해서 올리지만...이번엔 ..ㅎㅎ 왠지모를 귀차니즘의 승리로 걍 문서로 올린다;

 

JYJ_(칼럼)윈도우 UAC 우회.DOCX
다운로드

 

 

샘플은 공개되지 않았습니다.

103013_6dd699baa8bb7ac46269b31c4c00c71d89d5ffd0ed082b2c3a67d8b90609b196.zip
다운로드

 

 

---------------------------------------------

10년만에 추가 글 쓰네

 

아래 BAT 파일 참조하시면됨

 

윈도우 11 시스템 검사.BAT
0.00MB

728x90
posted by 블르샤이닝 2014. 2. 4. 16:28
728x90

음 유명한 외쿡사이트에서 구한 더미다 언팩 튜트리얼...


물론 영상및 파일이 들어가있다.


한동안 코딩 및 언팩 준비해야지 틈틈히;


n드라이브에 올린거라 공유기간제한있음~ 열공


http://me2.do/xiOvipDg


728x90

'리버싱' 카테고리의 다른 글

PEcompect 언팩킹  (0) 2014.03.27
ASPACK 언팩  (0) 2014.03.24
mfc 에서 #32770(Dialog)의 의미  (0) 2014.01.20
스레드 패턴 만드는법  (0) 2013.12.11
TOR(The Onion Routing) 기반의 botnet 증가  (0) 2013.08.21
posted by 블르샤이닝 2014. 1. 20. 10:36
728x90
mfc에서 dialog 형태로 프로그램을 만들면 #32770(Dialog) 라는 classname을 얻을 수 있다
일반적인 다이얼로그 혹은 메시지 박스도 해당된다. 어떤 코드에서 #32770을 찾는다면 다이얼로그 베이스의 프로그램을 찾는 것이다. 대체로 아래의 함수를 이용한다. 
HWND FindWindowEx
 HWND hwndParent,
 HWND hwndChildAfter
 LPCTSTR lpszClass,
 LPCTSTR lpszWindow 
); 
 FindWindowEx(NULL,NULL ,TEXT("#32770"), TEXT("열기"));

 FindWindwo와 FindwindowEx에서 찾는 방식에 차이가 있다.


참조 : http://baeg.tistory.com/59

728x90

'리버싱' 카테고리의 다른 글

ASPACK 언팩  (0) 2014.03.24
thmida 2.xx 버젼 언팩 튜토리얼  (0) 2014.02.04
스레드 패턴 만드는법  (0) 2013.12.11
TOR(The Onion Routing) 기반의 botnet 증가  (0) 2013.08.21
vm 우회  (0) 2013.07.02
posted by 블르샤이닝 2013. 12. 11. 19:11
728x90

1. CreateRemoteThread 부분까지 찾는다.


2. 인젝션될 프로세스에 bp CreateThread를 건다. f9


3. 1번의 리코트 스레드를 런시키면 2번의 스레드 생성부분에서 멈춘다.


4. 해당 부분을 확인하면 된다.




728x90
posted by 블르샤이닝 2013. 12. 2. 11:20
728x90

Java 취약점 분석

 

CVE-2012-0504 취약점 분석

 

 JAVA는 객체지향적 언어로써 임베디드의 목적으로 개발되었지만, 현재는 웹, 모바일 등 다양한 분야에서도 사용되어 지고 있다. 이러한 JAVA의 특징은 플랫폼이 독립적이라는 점이다. JAVA 컴파일러는 자바 언어로 작성된 프로그램을 바이트코드라는 특수한 바이너리 형태로 변환한다. 이러한 바이코드를 실행하기 위해서 JVM(자바 가상머신)이라는 특수한 가상 머신이 필요하다. (이러한 부분은 현재 안드로이드에서도 적용되고 있다.) 이 가상 머신은 자바 바이트코드를 어느 플랫폼에서나 동일한 형태로 실행시킨다. 때문에 자바로 개발된 프로그램은 CPU나 운영 체제의 종류에 관계없이 JVM을 설치할 수 있는 시스템에서는 어디서나 실행할 수 있으며, 이 점이 웹 애플리케이션의 특성과 맞아떨어져 폭발적인 인기를 끌게 되었다. – 위키 백과 사전 ‘JAVA’ 설명부분.

자바 플랫폼에 대한 설명


이렇듯 자바를 이해하기 위해서는 두가지가 중요하다. 바이트코드로 작성된 형태이며, JVM으로 어떠한 플랫폼에서도 동작이 가능하다라는 특징을 가진다는 것이다.

 이번에 JAVA취약점은 CVE-2012-0507의 취약점을 이용한 정보를 토대로 분석을 진행하도록 하겠다.

(하우리 진단명 : JAVA.S.CVE-2012-0507.13233)

 Java decompiler를 하여 코드를 확인하게 되면 다음과 같은 함수들이 선언 되어 있는 것을 확인 할 수 있으며, 두번쨰 그림에서 해당 함수들의 코드 내용을 확인 할 수 있다

 

함수 이름 리스트


코드 내용


이제 cve-2012-0504 코드 부분을 확인해보도록 하자.

코드 부분을 살펴 보면 Gond 함수와 Oho부분에서 특정 바이너리 덩어리가 존재하며 이 바이너리를 복호화 하는 코드로 읽어오는 부분을 확인할 수 있다.

복호화 코드방식은 아래와 같으며 xor을 통해 0x7A 0x0을 여러 번 수행하는 것을 확인 할 수 있다. 0x0 xor하여도 같은 값이기에 우리는 0x7AXOR한 값을 확인한다.


이 값을 토대로 위의 바이너리값들을 0X7A로 복호화 하여 나온 값을 JAVA파일로 저장하게 되면 특정 자바 문자열과 명령들을 확인할 수 있다.

복호화된 코드를 확인하여 보면 java코드들이 존재하는 것을 확인 할 수 있으며, 해당부분에서 iosream 및 파일 권한에 대한 부분을 확인 할 수 있다. 복호화 코드에서 앞에 인자 변형부분을 보게 되면 byte코드로 변형되는 것을 확인 할 수 있다. JAVA언어의 특성이라 생각하고 해당 코드로 변형되면 볼 수 있는 문자열과 볼 수 없는 문자열로 복호화 되는 것을 확인 할 수 있다.


 

이를 위해서 다시 한번 역컴파일을 해주어야 한다. 이를 위해서 JAD.EXE이라는 자바 툴을 이용해 다시 한번 역컴파일을 해준다.


훤씬 보기 좋은 상태의 코드로 변형된 것을 알 수 있다. CVE-2012-0504취약점을 이용하여 Windows 운영 체제 환경에서 악의적 웹 서비스에 접속할 경우, 관리자 권한을 가진 신뢰할 수 없는 Java Web Start applications 또는 Java applets을 실행하여 원격 코드 실행이 가능하게 하여 악의적인 기능의 파일을 실행시키는 취약점으로 이용된다.

 우리는 CVE 취약점 중 JAVA취약점에 대해 분석을 해보았다. 물론 악성코드 배포를 위해서 동작되는 취약점은 이 뿐만 아니라 웹 취약점, 시스템 취약점, 소프트웨어 취약점, 방화벽 취약점등을 이용하여 악의적인 기능의 파일을 설치하려 한다. 이러한 취약점을 방지하기 위해서는 꾸준한 소프트웨어 업그레이드 및 패치, 백신 예약기능을 통한 검사, 시스템 모니터링이 필요하며 최소한의 피해를 위해 정기적인 백업을 해두는 습관이 필요합니다.

 ------------------------------------------------------------------------------------

 

 

jad-295-socezy3.exe(java 역 컴파일러 툴)

 

 

java.zip                           (java 복호화 코드....별로 대단한것도 없슴;;;그래서 비공개;)

 

 

givu0.zip                         (악성파일 - 비공개입니다. 비번걸렸있습니다.)


아참 여기서 특이한 점!!!!

원래는 javap를 이용하려하였다. 하지만 java 클래스라 아니라고 뜨더라..그래서 찾아본 결과!! javap는 클래스 파일만 역어셈블 하는 파일이더라...자바를 모르지만 나중에 무슨의미인지 좀 찾아봐야할듯한다.

javap는 sdk깔면 설치되니까 환경설정걸고 하시면됩니다^^쉬워요쉬워요

java를 설치하면, bin 디렉토리 내에 다양한 실행파일들이 설치가 됩니다.

 

하지만, 일반적으로 사용하는 것은 javac와 java가 대부분이죠..

 

bin 디렉토리 내부를 잘 보면, javap 라는 실행파일도 있습니다.

 

이글의 주제는 바로 이 javap 에 대한 얘기가 되겠습니다.

 

javap는 간단하게 설명하면, 클래스 파일의 역어셈블하는 실행파일입니다.

 

여기서 역어셈블이라는 것이 중요한데요, 역컴파일과는 사뭇 다릅니다.

 

역컴파일은 클래스 파일을 가지고 원래 소스로 변환하는 것을 말하지만, 역어셈블은 클래스 파일의 내부의 기본 구조와 역어셈블코드(JVM의 바이너리 코드)만을 나오게 됩니다.

 

특정 클래스의 내부 전체를 보고 싶은 경우는 역컴파일러를 이용하셔야 하고, 클래스 내부의 상수/함수들의 목록을 간단히 보고자 할때는 javap를 이용하는 것이 대부분입니다.

 

이를 통해서 symbol not found 같은 에러를 찾는데 도움이 됩니다.

(퍼온곳 : http://psvm.tistory.com/52)

 

 

 

 












728x90
posted by 블르샤이닝 2013. 11. 20. 10:56
728x90

드디어 나오셨습니다 64비트 올리디버거!!!


오예오예 우선 64비트 파일이 올라가는것은 확인완료!!


나중에 샘플 분석이나 해봐야지 ㅎ


근데 참 인재들이 많군..ㅡㅡ;;;;(이거 만든놈은 미친놈이라 생각했는데 거기다 오픈소스로 공개까지했으니 참...외쿡애들은 역시 우리나라의 시크릿 정신보다는 낫다고 생각한다..ㅠ 멋진놈들..진짜 생각이 트인놈들이여..ㅠㅠ)


여튼 주저리주저리 말하기보단!! 써봐야지 ㅋㅋ 아직 테스트버젼이라했으니 많은건 기대하지말것 ㅋ

---------------

 

release_022.zip.001


release_022.zip.002


 버전은 2014/12/29일 홈페이지에서 다운받을걸로 교체합니다. 버젼은 0.22 이제 슬슬 쓸만해지는듯하네요 ㅎㅎ 64비트는 이게 나은듯 

 

아 전에는 특정 사이트에서 받았는데 이제보니 정식으로 배포되는 곳이 있군요 추가적으로 URL공개합니다


http://x64dbg.com/#start



추가 (다른 64비트 디버거)...위에것보다 아직 좋진않음.

https://github.com/zer0fl4g/Nanomite

-------------------------------------------------------------------------------64비트 DLL파일 분석할때 오랜만에 써봄.


우선 나쁘지 않다..다만 편하지도 않다..올리에 적응되서...다만 메모리부분에 BP걸고 진행하길바란다. 아직 이 디버거는 DLL로더 부분이 정상적으로 동작하지 않더라. IDA 64비트 올리고 해당 메모리부분에서 BP걸로 같이 진행하면된다.(IDA는 주소가 다를수 있으니 어셈코드 IDA에서 열어놓고 같이 코드 보길바란다.)

728x90

'리버싱 > ' 카테고리의 다른 글

SSDEEP - 해쉬 유사도 비교 툴  (0) 2015.09.04
한글 문서 분석할때 유용한 툴  (0) 2015.06.23
쉘코드 분석 툴  (0) 2014.10.22
[Portable_OllySND.exe] 포터블 올리디버거  (0) 2014.04.24
XueTr툴  (0) 2011.08.05