브라우저 취약점 쉘코드를 작성하여, html의 unescape 부분에 %ue8fc%u00c3%u0000%u8960 이런 형태로 붙여넣었습니다. 그런데 작동이 되지 않았습니다.
원인을 찾아봤는데, bad character라고 하여 \x00 이 들어가면 동작이 되지 않던 것이었습니다.
이는 메타스플로잇에서 공개한 브라우저 취약점 공격 PoC에서도 확인할 수 있습니다.
http://www.exploit-db.com/exploits/23785/
아래는 메타스플로잇에서 제공하는 어셈블리어 코드로 쉘코드를 생성하는 방법입니다. LoadLibrary기능을 하는 쉘코드이며, generate 로 생성이 가능합니다. bad char 0x00 이 포함되어있어서 브라우저에서 정상동작하지 않습니다.
그대로 디버거에 붙여넣은 화면입니다.
아래는 옵션을 주어 0x00을 제거하였습니다. 디폴트로 시카타가 나이라는 인코더가 선택됩니다. (일본어로, "어쩔수가 없지". 이름을 재미있게 지었군요.
그대로 디버거에 붙여넣은 화면입니다.
디코더가 처음 부분에 삽입되어 있어서 한 라인씩 실행하다 보면, 평문으로 복호화가 됩니다.
# 쉘코드 인코딩 하는 방법
msfencode라는 프로그램이 내장되어 있습니다.
옵션 설명
-e x86/shikata_ga_nai : 인코더 선택
-b '\x00' : Bad Character 제거
-i /root/loadlibrary.bin : 경로명 (쉘코드를 바이너리로 저장해주세요)
-t c : C언어 변수 타입으로 출력
'Windows > Hacking & Vulnerability' 카테고리의 다른 글
익스플로잇 무작정 따라하기 #1 - Stack Buffer Overflow (0) | 2014.05.08 |
---|---|
[SEH Exploit] AudioCoder 0.8.29 - Memory Corruption (0) | 2014.04.29 |
EMET 4.1 - Force ASLR (0) | 2014.03.20 |
EMET 4.1 - 주요 후킹 API 그리고 Deep Hooks란? (0) | 2014.03.18 |
EMET 4.1 - 패킹된 EXE의 오진 이슈 (0) | 2014.03.10 |