0X00 사설
구름 "HFS 2.3 원격 명령 실행 (캐치 닭 해커의 최후 심판)"기사 이전에 이진 취약성 분석을 볼 수있는 영역에서, 이번이 처음은 HFS 2.3.279이 버전에서 인터넷에서 명령 주입 취약점 분석입니다 POC를 실행하고 수행 한 후, 네 CALC는 최대 실행.
POC :
HTTP : // 로컬 호스트 : 80 / 검색 == % 00 {.exec | CALC.}?
PS : 최종 분석, 실행 모듈 문자열 "에 대한 구글 검색 parserLib는
"바로이 취약점이 CVE2014-6287 것을 알고 있습니다. . . . . . 슬픔의 힌트. 그러나 아직도 그것을 분석하는 과정에 대해 이야기한다.
0x01로 준비
첫째, PEiD로 분석하기 전에 몇 가지 준비, 단순히 PEiD 보편적 탈곡기를 통해 풀고, ASP 쉘을 추가, 파일을 검사합니다.
IDA 파일 지식 스트링 클래스 구현 전에 C ++에있어서, 도시의 일부 기능을보고 후 포격에 의해로드, 그것은 그것이 문자열 라이브러리 코드 정적 실행 파일에 링크되어 운반 정적 사용 컴파일되어야한다고 나타난다 .
PEid 의해 파일 포격 후 볼랜드 델파이 6.0로 식별 컴파일러에 의해 인식 - 우리가 분석을 용이하게하기 위해, 인라인 함수의 다수를 식별 할 수 있도록 7.0, IDA, 함수의 서명을 통해 적절한 서명 데이터베이스를로드. 서명함으로써, 그들은 이미 5636 인라인 함수를 식별 할 수 있습니다, 그래서 더 쉽게 분석이다.
0x02로 분석 프로세스
프로세스가 매개 변수 WinDbg는 관찰, 함수 호출, 브레이크 포인트를 찾기 위해 상호 참조 포인트에 의해 시작 같은 IDA에 의해 실제로 ShellExecuteA 계산기에 의해 시작, WinExec, ShellExecuteA 관련 기능을 찾기 위해 파일 가져 오기 기능을 볼 수 있습니다. 이와 동시에 프로그램의 호출 스택을 표시.
CALC 명령과 석회질을 시작합니다 | 콜 스택을 통해, 당신은 이미 간부을 설명 sub_531438 기능을 찾을 수 있습니다. 함수의 분석 기능은 아래 관련 코드의 구현을 설명하기위한 사용자의 명령의 함수임을 나타낸다.
용 IDA 결합 호출 스택을 통해 계속 | 전사 공정 "간부 CALC 것은"찾을 분석
INT __stdcall sub_51E268 (부호 문자 *** A1, INT의 A2)
기능, ** 문자열 "\ x00에서 {.exec. | CALC}를"설명 할 필요에 A1 점은 어떤 INT __cdecl sub_51DFA0 (INT A1)
기능 " \ X00 {.exec. | 캘크}
"분석 및 실행 .
용
HTTP : // 로컬 호스트 : 80 / 검색 = % 20 {.exec | CALC.}?
** A1 점에서 대비 sub_51E268 문자열을 설명하기 위해, 당신은 볼 수 있습니다 {|.
및 다른 문자 인코딩됩니다.
눈에 보이는
HTTP : // 로컬 호스트 : 80 / 검색 = % 00 {.exec | CALC.}?
에서 00 %
에 주도 {. | CALC .exec}
특수 문자 변환이 실패, 그래서 위치에 대한 변환 함수가 필요. "& #"문자열 검색에 모듈에서 얻을 찾을
INT __fastcall sub_528EB0 (INT A1, INT의 A2)
문자 같은 변환 | {완료.
정규 표현식 매칭을 할 sub_51E390 찾을 | {
같은 문자 } CALC |. % 20 {.exec
함수에 전달하면 함수가 2의 값을 반환합니다. 다음으로
sub_4B827C, SysUtils와 :: 된 IntToStr
문자 진수 문자열로 변환하고, 궁극적으로 원래의 문자열을 {대체된다.
용
HTTP : // 로컬 호스트 : 80 / 검색 = % 00 {.exec | CALC.}?
sub_51E390 반환 값은 0이므로, 뒷면 {| 및 다른 문자는 결국 명령 실행의 뒤에 이어지는 변환되지 않을 것이다.
체크 아웃
INT __fastcall sub_51E390 (INT A1, INT의 A2)
기능, 당신은 "볼 수 \\ {[합니다. :] | [:.] \\} | \\ |
"와" !의 m
", 분석하는 과정에서, 문자열"본 parserLib을
", 당신은 그것을 구글 . . . . . . .
취약점 세부 정보보기, 당신은 분석하고 일관된 결과를 볼 수있는 궁극적 인 원격 코드 실행으로 이어지는 정규 표현식의 문제 때문이다.
'malware ' 카테고리의 다른 글
MP3 변환기 (2.7.3.700) 스택 오버 플로우 디버깅 정보에 쉽게 RM (0) | 2014.10.14 |
---|---|
안드로이드 UXSS 요약 및 자동화 된 테스트 단계 (0) | 2014.10.14 |
Introducing FlowBAT, the Flow Analysis GUI (0) | 2014.10.14 |
Smart DLL execution for Malware Analysis in Sandbox Systems (0) | 2014.10.14 |
Democracy in Hong Kong Under Attack (0) | 2014.10.14 |