Source Code Recon dengan Gitdumper

Source Code Recon, Apa itu?

Seperti biasa, kita bahas dulu tentang reconnaissance / Recon / Information Gathering. Kali ini adalah Source Code Recon. Yaitu tentang sebuah kegiatan recon, yang ditujukan untuk mendapatkan source code sebuah aplikasi web. Source Code Recon dapat berupa banyak cara, antara lain :

  • mendapatkan file backup aplikasi dalam sebuah aplikasi web
  • mendapatkan repository aplikasi
  • mendapatkan folder repository dalam sebuah aplikasi, misal .git .svn dan sejenisnya
  • dari cara-cara lainnya.

Dalam sebuah proses serangan cracker, source code curian, itu dapat memiliki manfaat sangat tinggi, yaitu bahwa si cracker akan dapat melakukan analisis terhadap source code, berikut dengan kelemahan/vulnerability di dalamnya.

Cara Kerja Git, dan Kelemahannya

Sebenarnya banyak program git exporter, atau git dumper lain. Namun sebatas saya pelajari, tool berikut adalah salah satu yang paling enak : https://github.com/arthaud/git-dumper. Sik-sik-sik… Untuk memahami tentang gitdumper, kita harus tahu juga cara kerja SCM (Source Code Management) yang bernama git. Jadi gimana si cara kerja repository itu?

Git itu bekerja di beberapa bagian. Ada bagian git/repository server. Jika kita kenal Github atau Gitlab, itu adalah salah satu server repository. Kemudian sisi lain ada juga git client. Git client itu biasanya ada di sisi programmer, dan di sisi server aplikasi. Segala hal yang dilakukan programmer dan di-commit ke server-git, akan diaplikasikan di server aplikasi.

Sayangnya di server aplikasi, git meninggalkan direktori .git. Begitu juga dengan svn, fossil dan sebagian source code management lainnya. Direktori .git ini berisi beberapa hal, antara lain :

  • config, berisi URL repository, branch dan versinya
  • HEAD, berisi informasi refs repository
  • dan info penting lainnya.

Source Code Recon

Misal seperti di gambar atas ini. Jika ini terlihat, atau file .git/HEAD terbaca atau terdownload, maka hal ini sangat potensial untuk dapat diambil oleh pelaku intrusi.

Q : “Lho om, kalau URL git repositorynya pakai password kan aman?

A : “Lho tidak… perca-perca file repo itu ada di folder .git itu

 

Source Code Recon dengan GitDumper

Gitdumper yang biasa saya pakai ada di sini. Penggunaannya cukup mudah. Jika sampeyan punya python di laptop/PC, kita bisa langsung install :

pip install git-dumper

Atau kita bisa clone dulu URL repo tadi, kemudian dapat dijalankan langsung dengan python.

Source Code Recon

Sorry ya, disensor… Bahaya.. Pakai contoh live soale. Hahehehe. Kira-kira hasilnya adalah seperti di bawah ini :

Source Code Recon

Berikut ini di atas adalah file-file yang berhasil didump. Seorang intruder dapat segera melakukan analisis terhadap file-file tertentu, sehingga dapat melakukan rencana skenario eksploitasi lebih lanjut. Di beberapa kasus, saya juga dapat menemukan sebuah file yang berisi halaman upload yang tidak dilindungi session. Maka case yang saya dapatkan itu, berubah menjadi RCE (Remote Code Execution), karena saya mengupload PHP-Shell.

Antisipasi

Cara mengantisipasinya adalah dengan melakukan perlindungan di sisi server. Jika kita menggunakan webserver Nginx, maka secara default direktori .git ini sudah ditutup. (Koreksi jika keliru yak). Namun jika anda pakai Apache, perlu menambahkan baris ini :

RedirectMatch 404 /\\.(svn|git|cvs)(/|$)

Artinya semua direktori svn, git, cvs, akan diberikan HTTP Response Code 404, alias dianggap tidak ada. Kalian suka dianggap tidak ada? Pasang 404 Not Found!

 

Leave a Reply

Your email address will not be published. Required fields are marked *