Forum PB (Clan KONZU8)
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Forum PB (Clan KONZU8)

mempererat persatuan PB dan persahabatan....antar GAMES
 
IndeksLatest imagesPencarianPendaftaranLogin

 

 Blajar Hacker

Go down 
PengirimMessage
Admin
Admin
Admin


Jumlah posting : 60
Join date : 16.03.10
Age : 34
Lokasi : kalbar

Blajar Hacker Empty
PostSubyek: Blajar Hacker   Blajar Hacker I_icon_minitimeSun Apr 18, 2010 7:49 pm

[You must be registered and logged in to see this image.]


Memahami Sniffer.C -Basic Hacking- part1

Hai Sobat, mau jadi hacker...saya Juga!
Tapi kita Harus mulai dari (-"seperti kata The Mentor"-) tataran yang akademis dulu (mungkin supaya jadi white hat atw pakar keamanan jaringan kalee..hehe)...diantaranya belajar unix, linux, sendmail, tcp-ip, c, java, perl, networking, snmp...dll...trus bugtraq dan lainnya yang berkaitan dengan security jaringan dan internet....setelah itu semua kita kuasai...baru deh resmi jadi HACKER.
Kali ini gw mau berbagi sama kalian cara menafsirkan sebuah script exploit nieh...sama-sama belajar...kalau ada kesalahan, cukup maki2 gua di kolom komentar
Nah..di depan elu2 pada..ada sebuah script karangan dari Russell Handorf yang bisa elu download di link- di bawah ini beserta file pustaka pendukungnya yaitu pcap.h dan net/ethernet.h, nih linknya:
[You must be registered and logged in to see this link.]

Emang mungkin diantara lu pada yang udah 'mahir' dan jago...script ini mungkin cuma jadi bahan tertawaan, tapi bagi yang baru masuk dan wannabe hacker...ini adalah jalan awal mereka dalam memahami kerjaan Hacker...Bagi gua yang juga wannabe..script ini membuat gua lebih PD alias bisa memotivasi gua untuk membuat exploit suatu saat nanti dengan semua fasilitas keren yang ditawarkan 'C'...Mungkin juga nih script udah gak berlaku lagi dan gak bisa diterapin..tapi nih script pernah menjadi alat yang efektif dalam exploit sniffer..Yang gw titik beratkan disini adalah pemahaman membaca exploit...Tapi sebelum baca ini, coba baca dulu STH-2 karangan salah satu 'Suhu' gw dalam masalah hacking yaitu 'S,To'...terutama pemahaman promicious mode dan flooding ethernet...ok..nah sekarang kita mulai bro....

Da Scripto:


Code:

 /* By: Russell Handorf
[You must be registered and logged in to see this link.]
Written out of bordom
If you run this, and something bad happens, it's your own fault.
*/
// To compile:  gcc -o happy-sniffer sniffer-final.c -lpcap
#include <stdio.h>
#include <pcap.h>
#include <net/ethernet.h>
pcap_handler callback(u_char *, struct pcap_pkthdr *, u_char *);
int main(void)
{
  bpf_u_int32 netmask;
  bpf_u_int32 netp;
  struct bpf_program fcode;
  char errbuffer[PCAP_ERRBUF_SIZE];
  char *device;                    // /dev/eth0
  int promisc = 1;                // set in promiscuous mode as TRUE
  pcap_t *pcap_data;              // pointer to the captured data
  netmask=0;
  device = pcap_lookupdev(errbuffer);
  if (device == NULL) {
    fprintf(stderr, "Oops: %s\n", errbuffer);
    fprintf(stderr, "Exiting...\n");
    exit(1);
  }
  printf("Found device: %s\n", device);
  pcap_data = pcap_open_live(device, 65535, promisc, 0, errbuffer);
  if (pcap_data == NULL) {
    fprintf(stderr, "Oops: %s\n", errbuffer);
    fprintf(stderr, "Exiting...\n");
    exit(1);
  }
  if (pcap_compile(pcap_data, &fcode, "arp", 1, netmask) < 0)    // arp is
all we need
            { printf("%s", pcap_geterr(pcap_data)); exit(1); }
  if (pcap_setfilter(pcap_data, &fcode) < 0)
            { printf("%s", pcap_geterr(pcap_data)); exit(1); }
  while(pcap_loop(pcap_data, -1, (pcap_handler)callback, NULL));
}
// *********************
pcap_handler callback(u_char *datain, struct pcap_pkthdr *pktdata, u_char*pkt)
{
  int i, fromlen, bytes_received;
  struct ether_header *ethhdr;
  ethhdr = (struct ether_header *) pkt;
  switch(ethhdr->ether_shost[0])
  {
    case 0 : {
      switch(ethhdr->ether_shost[1])
        {
          case 2 :
            switch(ethhdr->ether_shost[2]) {
              case 45 : {
            switch(ethhdr->ether_shost[3]) {
              case 55 : {
                printf("Vendor: Lucent Orinocco WLAN Card\n");
                for(i = 0; i < 5; i++)
                    printf("%02x:", ethhdr->ether_shost[i]);
                  printf("%02x\n\n", ethhdr->ether_shost[5]);
                }
              }
            }         
            }
          case 64 :
        switch(ethhdr->ether_shost[2])
          case 05 : {
        switch(ethhdr->ether_shost[3]) {
          case 223 : {
                    printf("Vendor: D-Link - DWL-1000AP\n");
                    for(i = 0; i < 5; i++)
                      printf("%02x:", ethhdr->ether_shost[i]);
                    printf("%02x\n\n", ethhdr->ether_shost[5]);
              }
                }
          }
        }
      case 5 : {
        switch(ethhdr->ether_shost[1]) {
      case 93 : {
        switch(ethhdr->ether_shost[2]) {
          case 249 : {
                printf("Vendor: D-Link - Wireless Compact Flash\n");
                      for(i = 0; i < 5; i++)
                    printf("%02x:", ethhdr->ether_shost[i]);
                  printf("%02x\n\n", ethhdr->ether_shost[5]);
          }         
        }
      }
        }
      }
    }
  }
}
// *********************


Terakhir diubah oleh Admin tanggal Sun Apr 18, 2010 7:59 pm, total 2 kali diubah
Kembali Ke Atas Go down
http://konzu.blogspot.com
Admin
Admin
Admin


Jumlah posting : 60
Join date : 16.03.10
Age : 34
Lokasi : kalbar

Blajar Hacker Empty
PostSubyek: Re: Blajar Hacker   Blajar Hacker I_icon_minitimeSun Apr 18, 2010 7:53 pm

Memahami Sniffer.C -Basic Hacking- part2

Pemahaman Source Code Sniffer.c



Nih Tafsir 'Sesat'nya...hehe:

1. Baris 1 sampai 5 adalah pemberitahuan dari coder yaitu Russel Handorf
bahwa dia tidak bertanggung jawab atas segala permasalahan bila terjadi "apa-apa" setelah script ini di compile

2. Baris 6 keterangan cara meng-compile script. Menggunakan Lcc-Win C
Compiler yang bisa didownload di...
[You must be registered and logged in to see this link.]

3. Baris ke-8 whitespace..baris ke-9 sampai ke-11 adalah pendefinisian dari fungsi pustaka yang dikenal dalam struktur bahasa C, dengan sytnax include.
Fungsi pustaka yang digunakan adalah fungsi stdio.h, pcap.h, net/ethernet.h.
- Stdio.h berfungsi untuk menampilkan fungsi-fungsi output dan input melalui keyboard seperti printf dan scanf
- pcap.h berfungsi untuk memasukkan variabel dan elemen dari pemrograman yang berfungsi untuk membaca driver ethernet card dari dua buah komputer dan melakukan sniffing antara keduanya setelah diketahui arp atau mac adresssnya.
- net/ethernet.h berfungsi untuk melakukan pemrograman c terkait dengan ethernet card yang ada. seperti yang dijelaskan dalam script net/ethernet.h yang bisa anda download di link di atas, maka terlihat bahwa script tersebut bisa dibagi menjadi beberapa bagian. beberapa konstanta dasar, perhitungan yang didefinisikan menyangkut frame dan length ethernet, tipe alur data, dan type ethernet yang didefinisikan...dan pendefinisan penting lainnya(bisa dilihat sendiri).

4. Baris ke-13, memanggil kembali(callback) dari pcap_handler yang telah
didefinisikan di pcap.h yang berguna untuk membedakan antara ethernet card dari dua device komputer yang berbeda yang ingin kita sniff. root dari pcap_handler ini telah didefinisikan di pcap.h untuk membentuk penggunaan callback nantinya. Didalam pcap.h script C-nya adalah sebagai berikut:
typedef void (*pcap_handler)(u_char *, const struct pcap_pkthdr *,
const u_char *);
char *pcap_lookupdev(char *);
int pcap_lookupnet(const char *, bpf_u_int32 *, bpf_u_int32 *, char *);
pcap_t *pcap_open_live(const char *, int, int, int, char *);
pcap_t *pcap_open_dead(int, int);
pcap_t *pcap_open_offline(const char *, char *);
pcap_t *pcap_fopen_offline(FILE *, char *);
void pcap_close(pcap_t *);
int pcap_loop(pcap_t *, int, pcap_handler, u_char *);

5. Baris Ke-15 adalah memasukkan int main(void) karena pcap_handler seperti yang lu lihat diatas didefinisikan typenya dengan void.

6. baris ke-17 mendefinisikan variabel netmask dan netp dengan type elemen data dengan bpf_u_int32. Fungsinya adalah untuk mendefinisikan netmask yang 32 bit itu (contoh 255.255.255.254) dan network prefix atw netp (contoh 168.192.16.0) cocok atau tidak-kah dengan barkeley packet filter atau versinya.

7. Baris ke-18 mendefinisikan variabel freecode (atau fcode) dengan membentuk bpf program yang rootnya telah didefinisikan di pcap .h, lihat dibawah ini:
int pcap_setfilter(pcap_t *, struct bpf_program *);
...
int pcap_compile(pcap_t *, struct bpf_program *, char *, int,
bpf_u_int32);
int pcap_compile_nopcap(int, int, struct bpf_program *,
char *, int, bpf_u_int32);
void pcap_freecode(struct bpf_program *);
....
void bpf_dump(struct bpf_program *, int);
Untuk kegunaan fcode, nanti akan dibahas di line-nya...
8. Baris ke-19 mendefinisikan error buffer sebesar 256 karakter seperti
tercantum di definisi pcap.h.

9. Baris ke-20 Mendefinisikan Device sebagai file pointer yang berisikan
maksimum 256 karakter seperti yang didefinisikan di baris 19.

10. Baris ke-21 mendefinisikan tipe data integer untuk promisc mode untuk membaca semua alur data dari semua device yang masuk kedalam komputer H4ck3r.menjadi 1 atau true.

11. Baris ke-22 mendefinisikan tipe data pcap_t yang kegunaannya adalah untuk menampung semua kegunaan dan utilitas yang berguna untuk eksploit sniffing yang dimiliki oleh pcap_t kedalam file pointer *pcap_data

12. Baris ke-24 mensetting netmask dalam mode default yaitu 0 artinya belum membaca ip yang akan disniffing sebelum device di baca.

13. Baris ke-26 mencari device yang ada dijaringan untuk mengambil MAC
adressnya.

14. Baris ke-27 sampai ke-31 adalah statemen kondisi bila devicenya tidak
ditemukan, maka akan muncul kalimat Oops: (nomor error) di buffer...menggunakan fprintf yang merupakan properti fungsi pustaka stdio.h.

15. Baris ke-33, Bila device ditemukan, maka akan dimasukkan dan dicetak di layar dalam bentuk karakternya.

16. Baris ke-35, Sekarang kita akan menikmati salah satu fasilitas tipe data yang didefinisikan dalam pcap_t dalam pcap.h yaitu pcap_open_live dimana rootnya yaitu:
pcap_t *pcap_open_live(const char *, int, int, int, char *);

tujuan fungsi ini adalah untuk memasukkan data dari device tersebut dan
mensetting pengaturan sniffer yang tepat dan dimasukkan ke dalam file pointer pcap_data.

16. Baris ke-34 sampai ke-38 sama dengan ke-27 sampai ke-31.

17. Baris ke-39 sampai 42, lagi-lagi kita melihat kehandalan dari tipe
pointer pcap_t, yaitu fitur pcap_compile dan pcap_setfilter. pcap_compile
berfungsi untuk mengcapture isi dari pcap_data yang sudah di ambil di bagian script di atasnya, lalu membentuk barkeley packet filter di dalam variabel fcode, juga mengambil kata arp dari pcap_data dan memasukkan nilai true dan nilai netmask. kalau hasilnya lebih kecil dari 0, maka akan menampilkan pesan error dan langsung exit dalam satu detik, atau juga bisa diartikan error sama dengan true. untuk diketahui, fitur pcap_geterr(pcap_data) adalah sebuah fitur yang disediakan oleh tipe pointer pcap_t untuk menampilkan pesan error dalam bentuk karakter. Begitu pula pcap_setfilter..berguna untuk memfilter paket data yang diinginkan yang disimpan di variabel fcode..jika variabelnya kosong maka tidak ada yang difilter, kalau tidak ada yang difilter, maka akan muncul pesan karakter error dan langsung keluar proses.

18. Baris ke-43 memasukkan statemen perulangan while untuk pcap_loop yang tersedia dalam pointer pcap_t yang di definisikan dalam pcap.h yang disimpan di dalam script dengan file pointer pcap_data. Jika nilai integer dalam file pointer pcap_data adalah bernilai -1 dan pcap_handler untuk mendefinisikan device yang digunakan komputer yang disniff dipanggil kembali fungsinya, serta char bernilai NULL. maka lakukan assignment dibawahnya

19. Di dalam statemen perulangan tersebut akan terlihat fungsi pustaka
net/ethernet.h akan bermain-main disana, kita mulai dari baris ke-48 dimana pcap_handler untuk mensniff packet dan mendefinisikan device mulai bermain, disana fungsi callback akan digunakan untuk menangkapa dan memasukkan data ke file pointer datain, lalu membentuk file pointer pcap_pkthdr untuk menangkap header packet yang ditangkap itu, lalu menyimpan packet yang ditangkap tersebut pada dalam bentuk char pada file pointer pkt.

20. Di baris ke-50 -> 53, coder mendefinisikan tipe data integer dengan nama i, fromlen, bytes_received. lalu membentuk tipe file pointer yang
didefinisikan di net/ethernet.h dengan nama ethhdr. di dalam ethhdr yang
didefinisikan sebagai file pointer, coder memasukkan tipe struct ether_header kedalam file pointer pkt.

21. Baris ke-54, coder melakukan statemen kondisi dengan switch dengan
parameter isi dari file pointer ethhdr yang menangkap informasi dari ethernet card yang disniff. file yang disniff adalah packet yang akan dimasukkan headernya ke file pointer pkt yang bisa dipanggil melalui handlernya pcap.

22. Switch yang dilakukan adalah switch bersarang dimana ada dua kondisi case induk yaitu case 0 dan case 5. Didalam switch case 0 ada beberapa case, yaitu 0,2,3,45,55 adalah nilai dari ethernet headernya.. jika nilai tersebut adalah 55, maka lakukan perintah cetak untuk memberi tahu jenis ethernet cardnya. Begitu pula case64, 05, 223, bila nilainya adalah 223 maka jenis ethernet cardnya adalah D-Link - DWL-1000AP. Begitu pula untuk nilai switch yang terakhir dan seterusnya.

Ini Dulu yang bisa gua sumbangin, mungkin masih banyak kekurangan dan banyak kesalahan. Untuk itulah gua belajar! piss....
(C) 2009, By Fundament0zz
Kembali Ke Atas Go down
http://konzu.blogspot.com
 
Blajar Hacker
Kembali Ke Atas 
Halaman 1 dari 1

Permissions in this forum:Anda tidak dapat menjawab topik
Forum PB (Clan KONZU8) :: Tempat ngumpul bersama berbagi info/cerita dll di sini-
Navigasi: