HOME


즐거운 연말을 보내기 위해 1주일 짜리 '소프트웨어 버그헌팅' 교육을 가게 되었습니다. 오호호~~
워드 프로세서 프로그램의 크래시를 일으키는 실습을 하던중에 예전에 '오 이런것도 있네' 했던 MSEC 확장이 생각났습니다. 

http://msecdbg.codeplex.com/

msec 은 MS 에서 배포하는 고마운 WinDbg 확장모듈로, 자동으로 크래시에 대한 분석을 수행하고, 이 크래시가 exploitable 한지 확인을 해줍니다. 
냉큼 다운로드 받고, WinDbg 로 로딩하려는데 계속 에러가 나는군요.

hwp_03.png

우선 depends 로 봤더니 msvcr11.dll, msvcp11.dll 이 필요하네요. visual studio 2012 로 빌드를 했나봅니다. visual studio 2012 redistributable package 를 설치해 주면 되겠죠?
(http://www.microsoft.com/en-us/download/details.aspx?id=30679)
재배포 패키지 설치 후 다시 로드를 해봐도 마찬가지로 에러를 내면서 로딩이 안됩니다. Orz

hwp_00.png


depends 로 다시 확인해 보니, Kenel32.dll 의 GetTickCount64 함수를 import 하고 있는데, msdn 에서 확인해보니 이 함수는 vista 부터 사용가능한 함수입니다. 
제 테스트 환경은 windows xp sp3 라서 dll 로딩이 실패할 수 밖에요.
어떻게 할까 한 10초 고민하다가 그냥 PE 의 import 테이블을 직접 고치는게 제일 편할것 같습니다. GetTickCount() 나 GetTickCount64() 나 뭐 정밀도의 차이가 좀 있을뿐 프로그램 돌아가는데는 별 문제 없으니, GetTickCount() 함수를 import 하도록 실행파일을 변경시켜 버리면 될것 같습니다.

hwp_04.png

100만년 전에 열심히 사용하던 LordPE 를 검색해서 다운로드 받고 실행합니다. (우와 PE+ 도 지원하고, 정말 오랜만이네요, 반갑다!)

hwp_05.png


IAT 를 고쳐야 하니까 'Directories' 버튼을 눌러주고요.


hwp_06.png

hwp_07.PNG

hwp_08.PNG

GetTickCount64 를 GetTickCount 로 변경해주면 됩니다.

이제 다시 !load winext/msec.dll 명령으로 extension 을 로드하고, !exploitable 명령을 실행해보면... 
오오옷! exploit 가능한 크래시군용~ 

hwp_01.png

hwp_02.png

 참 쉽죠? :-) (쉽긴 개뿔...-_-;;)







원문출처 : http://bugsfixed.blogspot.com/2013/12/windows-xp-msec-extension.html
List of Articles
번호 제목 날짜 조회 수 추천 수
361 Pragmatic Forensics 2012 잡담 2012-01-22 218  
360 Pragmatic Forensics 카빙으로 재미보기 : 인터넷 히스토리 2012-01-21 240  
359 Pragmatic Forensics Volatility : 메모리 포렌식 툴 사용 후기 3/3 2011-09-04 223  
» pieces of code windows xp 에서 MSEC extension 사용하기 2013-12-17 392  
357 pieces of code Visual studio 컴파일러 버전 별 처리하기 2013-11-12 417  
356 pieces of code 커널모드 유닛테스팅 프레임웤 활용하기 2013-09-12 268  
355 pieces of code MASM 팁 2013-02-06 213  
354 pieces of code C4018 워닝을 잡아라! 2013-02-05 214  
353 pieces of code object namespace 2013-02-01 221  
352 pieces of code Microsoft specific predefined macro 2013-01-17 215  
351 pieces of code LNK4197 경고 해결하기 2013-01-14 258  
350 pieces of code windows api hooking 예제 2013-01-03 267  
349 passket.net using shellcode without calling mprotect in ubuntu ( writeup for codegate 2011 vuln300 ) 2011-03-10 266  
348 passket.net SEH Scopetable Overwrite ( Bypassing SEHOP + SafeSEH ) 2010-10-07 1501  
347 passket.net 남자와 여자와 기생충과 ASLR 2010-04-23 263  
346 passket.net writeup for Karma400 at PADOCON 2010 prequals 2010-03-23 244  
345 passket.net Codegate 2010 - yboy 2010-03-15 246  
344 passket.net Paradox Conference 2010 2010-01-29 238  
343 PacketInside 패킷 저장시 용량을 줄이기 위한 고민 2014-01-15 214  
342 PacketInside 어느덧 패킷인사이드 4주년, 새해 복 많이 받으세요. 2013-12-27 217  
341 PacketInside CaseStudy, FTP 접속 지연 원인 - 10초의 흔적을 찾아라! 2013-11-13 233  
340 PacketInside 구글에서 제공하는 무료 DDoS 방어 서비스, 프로젝트 쉴드(Project Shield) 2013-10-23 261  
339 PacketInside SQL 쿼리로 패킷 데이터를 조회한다고 ? 2013-10-16 276  
338 PacketInside 마이크로소프트 Message Analyzer 공식 릴리즈 2013-09-27 214  
337 PacketInside 차세대 패킷 포맷, Pcap-NG 를 알고싶다 _ 네번째 이야기 2013-09-25 248  
336 PacketInside 차세대 패킷 포맷, Pcap-NG 를 알고싶다 _ 세번째 이야기 2013-09-03 249  
335 PacketInside 차세대 패킷 포맷, Pcap-NG 를 알고싶다 _ 두번째 이야기 2013-08-21 269  
334 PacketInside 패킷에서 HTTP 를 전문적으로 뽑아주는 httpry 2013-08-06 258  
333 PacketInside 차세대 패킷 포맷, Pcap-NG 를 알고싶다 _ 첫번째 이야기 2013-07-25 251  
332 PacketInside 차세대 패킷 포맷 PCAP-NG 를 PCAP 으로 쉽게 변환하기 2013-07-19 269  
331 PacketInside 수성 탐사선 메신저호에 사용된 CPU 는 겨우 25MHz 2013-07-09 178  
330 PacketInside 미 국가안보국의 감청 프로젝트, 프리즘(PRISM) 2013-07-02 274  
329 PacketInside TCP/IP Fundamentals for Microsoft Windows 2013-06-27 222  
328 PacketInside 두 개의 GPU를 이용한 패스워드 해쉬 해독 리얼 사용기 2013-06-21 225  
327 PacketInside 네트워크에는 ping, 디스크 I/O 에는 ioping 2013-05-29 278  
326 PacketInside 라즈베리파이(Raspberry PI)가 네트워크 탭(Tapping) 장비로 변신한 이유 2013-05-21 200  
325 PacketInside 아파치 한국 공식미러 장비 기증 후원을 기다립니다. 2013-05-14 195  
324 PacketInside 패킷 데이터를 XML(Extensible Markup Language)로 저장하는 방법은? 2013-05-13 188  
323 PacketInside 시리아 인터넷 이틀간(5/7-8) 차단 2013-05-10 189  
322 PacketInside 데비안 7.0 Wheezy 공식 릴리즈 2013-05-06 177  
321 PacketInside 안드로이드기반 초소형 인공위성 폰샛(PhoneSat)이 보내는 패킷은 어떤모습? 2013-04-29 203  
320 PacketInside 데이터 유실없이 디스크 파티션 크기 재 조정하기 2013-04-26 175  
319 PacketInside 집에서 Passive 네트워크 탭(Tapping) 장비 만들기 2013-04-22 402  
318 Out of Control [iOS Tutorial #3]나만의 MobileSubstrate 트윅 만들기(How To Create A MobileSubstrate Tweaks for iOS) Part4. Theos 를 이용하여 SpringBoard 후킹하기 2014-01-16 660  
317 Out of Control [iOS] iOS Code Signing Tool ‘ldid’ on OSX 2013-12-28 379  
316 Out of Control [iOS] iOS Code Signing Tool ‘ldone’ 2013-12-27 383  
315 Out of Control [iOS] 맥포트 가이드(MacPort Guide) 2013-12-26 212  
314 Out of Control [LoadMap]해킹 스터디 로드맵 (How to be a Hacker-Hacking Study Load Map) 2013-12-18 254  
313 Out of Control [iOS Tutorial #3]나만의 MobileSubstrate 트윅 만들기(How To Create A MobileSubstrate Tweaks for iOS) Part2. iOS 에서 후킹이란 ?(What is “Hooking” on iOS) 2013-12-11 284  
312 Out of Control [Programming] 코더 지망생을 위한 알짜배기 무료 코딩 학습 툴 – itworld 2013-12-11 228