posted by 블르샤이닝 2013. 12. 5. 15:10
728x90




http://news.naver.com/main/imagemontage/index.nhn?gid=966192#968420

728x90

'일상' 카테고리의 다른 글

ONE OK ROCK 「The Beginning」  (0) 2014.01.23
캐논-D 첼로 4중주  (0) 2014.01.23
Full Tilt ft. Katrina Noorbergen – Letting Go  (0) 2013.10.02
세상은 착하고 성실하다고 잘되는게 아니다....  (0) 2013.08.07
안구정화  (0) 2013.02.21
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. 27. 11:21
728x90

 

pack 정보를 확인한다 

 

 

ep부분부터 call문의 주소가 있다(ex : 00418a42) 로 이동한다

 

이동된 주소로 부터 밑으로 내려가다보면 JMP EAX라는 코드가 존재한다 여기까지 BP를 걸고 RUN시킨 후 해당 주소에서 이동하게 되면 그곳이 OEP가 된다. 덤프 후 IMPORT REC로 IAT를 복원해주면 언팩이 끝나게 된다.

 

 

728x90
posted by 블르샤이닝 2013. 11. 22. 17:35
728x90

http://www.nurilab.com/?p=357

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