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
번호 제목 날짜 조회 수 추천 수
369 RedHidden [열번째 거짓말] Droid Dream Light(DDLight) 분석 2011-06-01 252  
368 Pragmatic Forensics 한 사람의 벗은.. 2013-07-10 222  
367 Pragmatic Forensics Extracting processes binary 수정판 2012-08-05 262  
366 Pragmatic Forensics Extractor of process files from disk 2012-07-22 230  
365 Pragmatic Forensics 오랫만에 워밍업 2012-07-01 235  
364 Pragmatic Forensics 잽싸게 올리고 빠지는 utmp parser 2012-04-01 295  
363 Pragmatic Forensics Introduction of Network Forensics tools : 패킷을 보는 5가지 방법 2012-02-12 234  
362 Pragmatic Forensics 카빙으로 재미보기 : sqlite3 2012-01-29 316  
361 Pragmatic Forensics 2012 잡담 2012-01-22 219  
360 Pragmatic Forensics 카빙으로 재미보기 : 인터넷 히스토리 2012-01-21 246  
359 Pragmatic Forensics Volatility : 메모리 포렌식 툴 사용 후기 3/3 2011-09-04 227  
» pieces of code windows xp 에서 MSEC extension 사용하기 2013-12-17 401  
357 pieces of code Visual studio 컴파일러 버전 별 처리하기 2013-11-12 424  
356 pieces of code 커널모드 유닛테스팅 프레임웤 활용하기 2013-09-12 271  
355 pieces of code MASM 팁 2013-02-06 216  
354 pieces of code C4018 워닝을 잡아라! 2013-02-05 220  
353 pieces of code object namespace 2013-02-01 223  
352 pieces of code Microsoft specific predefined macro 2013-01-17 221  
351 pieces of code LNK4197 경고 해결하기 2013-01-14 259  
350 pieces of code windows api hooking 예제 2013-01-03 271  
349 passket.net using shellcode without calling mprotect in ubuntu ( writeup for codegate 2011 vuln300 ) 2011-03-10 267  
348 passket.net SEH Scopetable Overwrite ( Bypassing SEHOP + SafeSEH ) 2010-10-07 1538  
347 passket.net 남자와 여자와 기생충과 ASLR 2010-04-23 266  
346 passket.net writeup for Karma400 at PADOCON 2010 prequals 2010-03-23 246  
345 passket.net Codegate 2010 - yboy 2010-03-15 249  
344 passket.net Paradox Conference 2010 2010-01-29 244  
343 PacketInside 패킷 저장시 용량을 줄이기 위한 고민 2014-01-15 222  
342 PacketInside 어느덧 패킷인사이드 4주년, 새해 복 많이 받으세요. 2013-12-27 221  
341 PacketInside CaseStudy, FTP 접속 지연 원인 - 10초의 흔적을 찾아라! 2013-11-13 237  
340 PacketInside 구글에서 제공하는 무료 DDoS 방어 서비스, 프로젝트 쉴드(Project Shield) 2013-10-23 263  
339 PacketInside SQL 쿼리로 패킷 데이터를 조회한다고 ? 2013-10-16 281  
338 PacketInside 마이크로소프트 Message Analyzer 공식 릴리즈 2013-09-27 218  
337 PacketInside 차세대 패킷 포맷, Pcap-NG 를 알고싶다 _ 네번째 이야기 2013-09-25 253  
336 PacketInside 차세대 패킷 포맷, Pcap-NG 를 알고싶다 _ 세번째 이야기 2013-09-03 253  
335 PacketInside 차세대 패킷 포맷, Pcap-NG 를 알고싶다 _ 두번째 이야기 2013-08-21 275  
334 PacketInside 패킷에서 HTTP 를 전문적으로 뽑아주는 httpry 2013-08-06 265  
333 PacketInside 차세대 패킷 포맷, Pcap-NG 를 알고싶다 _ 첫번째 이야기 2013-07-25 253  
332 PacketInside 차세대 패킷 포맷 PCAP-NG 를 PCAP 으로 쉽게 변환하기 2013-07-19 272  
331 PacketInside 수성 탐사선 메신저호에 사용된 CPU 는 겨우 25MHz 2013-07-09 182  
330 PacketInside 미 국가안보국의 감청 프로젝트, 프리즘(PRISM) 2013-07-02 280  
329 PacketInside TCP/IP Fundamentals for Microsoft Windows 2013-06-27 226  
328 PacketInside 두 개의 GPU를 이용한 패스워드 해쉬 해독 리얼 사용기 2013-06-21 231  
327 PacketInside 네트워크에는 ping, 디스크 I/O 에는 ioping 2013-05-29 280  
326 PacketInside 라즈베리파이(Raspberry PI)가 네트워크 탭(Tapping) 장비로 변신한 이유 2013-05-21 202  
325 PacketInside 아파치 한국 공식미러 장비 기증 후원을 기다립니다. 2013-05-14 199  
324 PacketInside 패킷 데이터를 XML(Extensible Markup Language)로 저장하는 방법은? 2013-05-13 190  
323 PacketInside 시리아 인터넷 이틀간(5/7-8) 차단 2013-05-10 190  
322 PacketInside 데비안 7.0 Wheezy 공식 릴리즈 2013-05-06 181  
321 PacketInside 안드로이드기반 초소형 인공위성 폰샛(PhoneSat)이 보내는 패킷은 어떤모습? 2013-04-29 205  
320 PacketInside 데이터 유실없이 디스크 파티션 크기 재 조정하기 2013-04-26 180