banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận bảo mật Phân tích và viết shellcode  XML
  [Discussion]   Phân tích và viết shellcode 06/06/2010 14:07:04 (+0700) | #1 | 212543
zjm_zjm
Member

[Minus]    0    [Plus]
Joined: 26/07/2009 01:53:09
Messages: 159
Location: hhhhhh
Offline
[Profile] [PM] [WWW] [Yahoo!] [MSN] [ICQ]
Hiện tại mình đang học và ngâm về cái này, nhưng trong khi làm việc thấy hơi khó hiểu chỗ này
Mình có 1 đoạn shellcode xuất ra từ hello như thế này.
Code:
;hello.asm
[SECTION .text]

global _start


_start:

        jmp short ender

        starter:

        xor eax, eax    ;clean up the registers
        xor ebx, ebx
        xor edx, edx
        xor ecx, ecx

        mov al, 4       ;syscall write
        mov bl, 1       ;stdout is 1
        pop ecx         ;get the address of the string from the stack
        mov dl, 5       ;length of the string
        int 0x80

        xor eax, eax
        mov al, 1       ;exit the shellcode
        xor ebx,ebx
        int 0x80

        ender:
        call starter	;put the address of the string on the stack
        db 'hello'


Và biên dịch nó ....
zjm@1337b0x:~$ nasm -f elf hello.asm
zjm@1337b0x:~$ ld -o hello hello.o
zjm@1337b0x:~$ objdump -d hello

Cái đoạn này đơn giản là xuất ra chữ hello
Cái mình không hiểu ở đây là

mov al, 4 ;syscall write
mov bl, 1 ;stdout is 1


có phải hàm write của syscall là 4
và stdout là 1
PS: Mình thấy chủ đề loại này ít có trên forum quá smilie


[Up] [Print Copy]
  [Discussion]   Phân tích và viết shellcode 06/06/2010 14:39:00 (+0700) | #2 | 212558
zjm_zjm
Member

[Minus]    0    [Plus]
Joined: 26/07/2009 01:53:09
Messages: 159
Location: hhhhhh
Offline
[Profile] [PM] [WWW] [Yahoo!] [MSN] [ICQ]
Hình như không ai hứng thú với cái vụ này smilie
[Up] [Print Copy]
  [Discussion]   Phân tích và viết shellcode 06/06/2010 21:41:45 (+0700) | #3 | 212599
[Avatar]
gamma95
Researcher

Joined: 20/05/2003 07:15:41
Messages: 1377
Location: aaa">
Offline
[Profile] [PM] [ICQ]
Cái đoạn này đơn giản là xuất ra chữ hello
Cái mình không hiểu ở đây là

mov al, 4 ;syscall write
mov bl, 1 ;stdout is 1

có phải hàm write của syscall là 4
và stdout là 1
 

Đc tự hỏi rồi tự trả lời luôn là sao? vậy ko hiểu là ko hiểu chỗ nào ? mỗi một system call nó gắn với một system call number khác nhau, chẳng hạn như trong đoạn mã của bạn vừa rồi thì sys_write có system call là 4, những con số này được thương được định nghĩa trong syscall.h
EX:
cat /usr/include/asm/unistd_32.h
Code:
#ifndef _ASM_X86_UNISTD_32_H
#define _ASM_X86_UNISTD_32_H

/*
 * This file contains the system call numbers.
 */

#define __NR_restart_syscall      0
#define __NR_exit                 1
#define __NR_fork                 2
#define __NR_read                 3
#define __NR_write                4
#define __NR_open                 5
#define __NR_close                6
#define __NR_waitpid              7
#define __NR_creat                8
..................


Để thấy rõ khi chạy chương trình, system call nào được goị, bạn thử chạy lệnh strace
EX:
Code:
$strace ./hello

execve("./hello", ["./hello"], [/* 40 vars */]) = 0
write(1, "hello", 5hello)                    = 5
_exit(0)                                = ?
Cánh chym không mỏi
lol
[Up] [Print Copy]
  [Discussion]   Phân tích và viết shellcode 06/06/2010 21:43:24 (+0700) | #4 | 212600
[Avatar]
gamma95
Researcher

Joined: 20/05/2003 07:15:41
Messages: 1377
Location: aaa">
Offline
[Profile] [PM] [ICQ]

zjm_zjm wrote:
Hình như không ai hứng thú với cái vụ này smilie 

Mới post bài hơn nửa tiếng mà phán câu này là sao ??? Bỏ cái thái độ này khi sinh hoạt nha !!!
Cánh chym không mỏi
lol
[Up] [Print Copy]
  [Discussion]   Phân tích và viết shellcode 07/06/2010 10:12:07 (+0700) | #5 | 212636
zjm_zjm
Member

[Minus]    0    [Plus]
Joined: 26/07/2009 01:53:09
Messages: 159
Location: hhhhhh
Offline
[Profile] [PM] [WWW] [Yahoo!] [MSN] [ICQ]
Thanks smilie,
PS cái đó mục đích của mình chỉ là úp lên thôi smilie
[Up] [Print Copy]
  [Discussion]   Phân tích và viết shellcode 07/06/2010 10:17:06 (+0700) | #6 | 212638
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]
Muốn viết shellcode, kiến thức về C + ASM không thể thiếu được. Song song vào đó, cần quen với các debuggers (như gdb). Bởi vì ASM chính bản thân nó đã khá "trừu tượng" nên nếu thiếu "tinh mắt" và kiên nhẫn thì thì sẽ... bơi.

Không biết bồ đã thử tham khảo trang này http://www.l0t3k.org/programming/docs/shellcode/ chưa? Nếu chưa, nên dành đủ thời gian để đi xuyên qua từng tute một cách cẩn thận. Sau đó mọi chuyện sẽ trở nên rõ ràng hơn.

Good luck.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Discussion]   Phân tích và viết shellcode 07/06/2010 10:18:07 (+0700) | #7 | 212639
mrro
Administrator

Joined: 27/12/2001 05:07:00
Messages: 745
Offline
[Profile] [PM]

zjm_zjm wrote:
Thanks smilie,
PS cái đó mục đích của mình chỉ là úp lên thôi smilie 


Bỏ luôn cái kiểu trả lời một hai chữ, chẳng ăn nhập vì vào cái nội dung đang thảo luận như thế này nha.
http://tinsang.net

TetCon 2013 http://tetcon.org

Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html
[Up] [Print Copy]
  [Discussion]   Phân tích và viết shellcode 07/06/2010 23:43:31 (+0700) | #8 | 212743
[Avatar]
H3x4
Member

[Minus]    0    [Plus]
Joined: 02/04/2009 00:03:16
Messages: 242
Offline
[Profile] [PM]
Mình chỉ đóng góp 1 trang có tut về shellcode khá đầy đủ và nó cũng feed về khá nhiều trang khác, ai quan tâm có thể tham khảo:
http://projectshellcode.com/
[Up] [Print Copy]
  [Discussion]   Phân tích và viết shellcode 22/07/2010 19:26:41 (+0700) | #9 | 216053
huyannet
Member

[Minus]    0    [Plus]
Joined: 21/07/2008 00:42:51
Messages: 83
Offline
[Profile] [PM]
Bác ơi, mình rất có hứng thú về mấy cái này. Đoạn mã trên bác viết bằng soft gì thế, ngôn ngữ lập trình gì?
Những ngôn ngữ khác có viết Shell được không?
[Up] [Print Copy]
  [Discussion]   Phân tích và viết shellcode 22/07/2010 21:20:43 (+0700) | #10 | 216070
phanledaivuong
Member

[Minus]    0    [Plus]
Joined: 23/05/2008 17:34:21
Messages: 315
Location: /dev/null
Offline
[Profile] [PM] [WWW]

huyannet wrote:
Bác ơi, mình rất có hứng thú về mấy cái này. Đoạn mã trên bác viết bằng soft gì thế, ngôn ngữ lập trình gì?
Những ngôn ngữ khác có viết Shell được không? 

Đoạn mã trên viết bằng tay smilie). ngôn ngữ: assembly.
Có. dùng C cũng được vì chèn được assembly vào trong C
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|