Diretas Ingin mengerti caranya


40

Seseorang, untuk kedua kalinya, menambahkan potongan javascript ke situs yang saya bantu jalankan. Javascript ini membajak Google adsense, memasukkan nomor akun mereka sendiri, dan menempelkan iklan di mana-mana.

Kode selalu ditambahkan, selalu dalam satu direktori tertentu (satu digunakan oleh program iklan pihak ketiga), mempengaruhi sejumlah file dalam sejumlah direktori di dalam satu dir iklan ini (20 atau lebih) dan dimasukkan pada sekitar malam yang sama waktu. Akun adsense milik situs web Cina (terletak di kota tidak satu jam dari tempat saya akan berada di Cina bulan depan. Mungkin saya harus bangkrut ... bercanda, semacam), btw ... ini adalah info tentang situs: http://serversiders.com/fhr.com.cn

Jadi, bagaimana mereka menambahkan teks ke file-file ini? Apakah ini terkait dengan izin yang ditetapkan pada file (mulai dari 755 hingga 644)? Untuk pengguna server web (ada di MediaTemple sehingga harus aman, ya?)? Maksud saya, jika Anda memiliki file yang izinnya diset ke 777, saya masih tidak bisa menambahkan kode sesuka hati ... bagaimana mungkin mereka melakukan ini?

Berikut adalah contoh kode aktual untuk kesenangan menonton Anda (dan seperti yang Anda lihat ... tidak banyak. Trik sebenarnya adalah bagaimana mereka mendapatkannya di sana):

<script type="text/javascript"><!--
google_ad_client = "pub-5465156513898836";
/* 728x90_as */
google_ad_slot = "4840387765";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

Karena sejumlah orang telah menyebutkannya, inilah yang telah saya periksa (dan dengan mengecek maksud saya, saya melihat-lihat waktu file-file tersebut dimodifikasi untuk keanehan dan saya mengambil file-file untuk pernyataan POST dan direktori traversal:

  • access_log (tidak ada waktu kecuali lalu lintas bot normal msn)
  • error_log (hanya file biasa yang tidak ada kesalahan untuk file yang tampak tidak berbahaya)
  • ssl_log (tidak lain dari biasanya)
  • messages_log (tidak ada akses FTP di sini kecuali saya)

* PEMBARUAN: ** OK, selesaikan. Peretas dari Cina secara fisik menempatkan file di situs kami yang memungkinkan mereka untuk melakukan segala macam hal administratif (akses database, menghapus dan membuat file dan dir, sebut saja, mereka memiliki akses). Kami beruntung mereka tidak melakukan sesuatu yang lebih merusak. Tidak ada dalam file log apache normal tapi saya menemukan satu set file log yang berbeda di penganalisa log server web dan bukti ada di sana. Mereka mengakses file ini dengan nama pengguna dan kata sandi admin mereka sendiri dan kemudian mengedit apa pun yang mereka butuhkan di server. File mereka memiliki "apache" yang ditetapkan sebagai pengguna sementara semua file lain di situs kami memiliki nama pengguna yang berbeda. Sekarang saya perlu mencari tahu bagaimana mereka secara fisik mendapatkan file ini ke sistem kami. Saya curiga kesalahan ini akhirnya akan terjadi pada host web kami (Media Temple)


6
Saya tidak tahu, apakah Anda memberi seseorang kata sandi Anda?

4
Jika Anda tahu kapan tepatnya ini terjadi, cari access_log Anda untuk segala hal yang tidak biasa saat ini. Terutama perhatikan semua permintaan POST: ke mana mereka pergi, apa yang mereka lakukan.
sanmai

3
Thx WhirlWind ... sangat membantu.
Lothar_Grimpsenbacher

2
Sebenarnya jika Anda mengenal mereka, mengapa tidak menempelkan detail alamat mereka di situs anti-spam. Biarkan jaring "berbicara" kepada mereka dan beri mereka rasa medacine mereka sendiri. :-)

4
@ gaoshan88 - lebih bermanfaat dari yang Anda kira. Satu serangan vektor adalah Trojan yang mengendus kata sandi dari klien ftp pengembang.
Quentin

Jawaban:


9

Pertama-tama chmod 744BUKAN yang Anda inginkan. Maksud chmod adalah mencabut akses ke akun lain di sistem. Chmod 700jauh lebih aman daripada chmod 744. Namun Apache hanya membutuhkan bit eksekusi untuk menjalankan aplikasi php Anda.

chmod 500 -R /your/webroot/

chown www-data:www-data -R /your/webroot/

www-data biasanya digunakan sebagai akun Apache yang digunakan untuk mengeksekusi php. Anda juga dapat menjalankan perintah ini untuk melihat akun pengguna:

`<?php
print system("whoami");
?>`

FTP sangat tidak aman dan sangat mungkin Anda diretas dari metode ini. Menggunakan FTP Anda dapat membuat file dapat ditulisi, dan kemudian menginfeksi mereka lagi. Pastikan Anda menjalankan anti-virus di semua mesin dengan akses FTP. Ada virus yang mengendus lalu lintas lokal untuk nama pengguna dan kata sandi FTP dan kemudian login dan menginfeksi file. Jika Anda peduli dengan keamanan, Anda akan menggunakan SFTP, yang mengenkripsi semuanya. Mengirim kode sumber dan kata sandi melalui kawat dalam teks yang jelas adalah kegilaan total.

Kemungkinan lain adalah Anda menggunakan perpustakaan atau aplikasi lama. Kunjungi situs vendor perangkat lunak dan pastikan Anda menjalankan versi terbaru.


6
+1, hindari FTP seperti wabah. Trojan sniffer kata sandi dapat menginfeksi komputer Anda dan menggunakan kredensial Anda untuk mengubah file. Atau dapat menginfeksi router Anda. Atau komputer tetangga Anda di netcafe dengan jaringan wifi tidak aman. Mengirim kata sandi di clearext adalah ide yang buruk dan buruk.
Tgr

1
FTP memang datang dengan SSL, Anda tahu.
grawity

1
@grawity kebanyakan orang tidak menggunakan "ftps", tetapi itu akan mencegah Anda diretas. sftp lebih populer.
Benteng

2
Www-data TIDAK boleh memiliki file di direktori web Anda. Apa pun yang www-data dapat diperbarui dengan skrip yang ditulis dengan buruk di server.
Zoredache

9

Akun Media Temple Grid Server saya telah "diretas" seperti ini beberapa kali. Keamanan mereka sangat buruk ... dimulai dengan PASSWORDS TEXT POLA tahun lalu dan berlanjut hingga hari ini (Anda dapat memanggil dukungan teknis dan mereka mengatakan "apa kata sandi Anda?"). Saya tahu karena saya mendapat email bulanan tentang bagaimana mereka telah mengubah semua kata sandi akun saya dan mereka benar-benar masuk dan mengubah kata sandi basis data untuk Anda setiap kali mereka diretas. Perusahaan itu terlihat sangat mengilap di permukaan, tetapi server jaringannya berantakan. Saya sarankan segera beralih .

Silakan lihat posting ini dari tahun lalu tentang kegagalan asli (peringatan, itu akan membuat Anda kesal). Sudah menurun dari sana. Saya menghabiskan ucapan syukur tahun lalu dari keluarga saya dan menghapus tautan porno dari situs web saya. Menyenangkan.

Pantau kesenangan di halaman status mereka : Ini akan memberi tahu Anda semua tentang eksploitasi terbaru (dan, ya memang, ada "kemungkinan eksploitasi" di sana sekarang).


ha ha. situs gs saya semuanya turun sekarang. tidak ada email weblog.mediatemple.net/weblog/category/system-incidents/…
typeoneerror

2

Berdasarkan kurangnya aktivitas dalam log akses, dll. Dan fakta yang terjadi pada waktu yang hampir bersamaan, tampaknya mereka telah mengkompromikan server dan memiliki semacam skrip shell yang berjalan untuk menjalankan append.

Sudahkah Anda memeriksa crontab untuk hal-hal aneh?

Sudahkah Anda mencoba mengubah nama direktori dan rujukannya (ini dapat merusak skrip shell)?


mengganti nama adalah ide yang bagus. Saya akan mencobanya setelah saya melihat efek apa yang akan terjadi di situs. Crontab punya satu hal yang agak aneh, ada entri tentang waktu file diubah tetapi itu adalah manajer cadangan Plesk ... aplikasi yang dikompilasi. Jika itu dikompromikan maka Media Temple memiliki masalah besar di tangan mereka.
Lothar_Grimpsenbacher

1

Ya, itu pasti bisa terkait dengan izin file. Dengan memiliki file yang dapat ditulis oleh proses web, Anda terbuka terhadap kerentanan keamanan apa pun di aplikasi web yang Anda jalankan. Kunci semuanya agar proses web tidak dapat membaca atau menulis apa pun lebih dari yang seharusnya.

Komponen lainnya melacak dengan tepat bagaimana mereka memodifikasi file Anda. Memeriksa log akses server web adalah tempat yang baik untuk memulai. Periksa waktu login terakhir untuk berbagai pengguna. Anda juga dapat mengatur skrip yang memantau file untuk modifikasi, dan memberi tahu Anda sehingga Anda dapat mencoba dan menangkap para penjahat yang dikalahkan!


1

Ini terdengar sangat akrab bagi peretasan Wordpress yang menabrak situs Network Solutions akhir-akhir ini. Karena Anda berada di Media Temple, ada kemungkinan Anda membiarkan beberapa file terlihat oleh pengguna lain yang berbagi mesin Anda. Itu akan menjelaskan kurangnya POST atau jejak log Apache yang menakutkan. Jika itu masalahnya, akan sangat mudah untuk menyuntikkan kode pada baris perintah.


Log menunjukkan lalu lintas sekitar waktu ketika file-file ini dimodifikasi tetapi itu adalah hal-hal yang tidak berbahaya seperti: 207.46.13.43 - - [05 / Mei / 2010: 01: 42: 26 -0700] "DAPATKAN /oped/bpr.php?edid= 211 & halaman = 4 HTTP / 1.1 "404 257" - "" msnbot / 2.0b (+ search.msn.com/msnbot.htm ) "
Lothar_Grimpsenbacher

Apakah Anda tahu cara kerja peretasan Wordpress itu? Mungkin beri tahu saya cara memperbaiki masalah saya sendiri.
Lothar_Grimpsenbacher

2
Ya, itu izin buruk pada kotak bersama, mungkin disebabkan oleh konfigurasi default yang buruk di bagian Network Solutions. Perbaikan yang disarankan adalah mengunci izin seperti 755 pada folder dan 644 pada file.

1

Kode selalu ditambahkan, selalu dalam satu direktori tertentu

Apakah ini terkait dengan izin yang ditetapkan pada file (mulai dari 755 hingga 644)? Untuk pengguna server web

Apakah Anda berada di server bersama? Jika demikian (atau bahkan jika tidak), seseorang mungkin dengan kasar memaksakan kata sandi FTP dan mengunggah skrip yang menambahkan file apa pun yang bisa didapatkan.

yang digunakan oleh program iklan pihak ketiga

Atau mungkin program ini memiliki exploit.


Saya berasumsi mungkin kode pihak ketiga memiliki exploit. Itu ada di server bersama tetapi saya akan menemukan skrip yang diunggah (kecuali mereka mengunggahnya, menggunakannya dan kemudian menghapusnya tetapi bahkan kemudian saya akan menemukan sesuatu dalam file log yang menunjukkan koneksi ftp mereka)
Lothar_Grimpsenbacher

1
Jika file Anda dapat ditulisi oleh server web, ada kemungkinan mereka bisa mengunggah skrip ke situs web apa pun di server dan menimpa file Anda. Tapi saya juga akan melihat lebih dekat pada aplikasi pihak ke-3 itu.

The kode pihak ketiga ... itu script dieksekusi atau hanya potongan JavaScript? JavaScript tidak dapat memodifikasi file di server.
Salman A

@Salman A - itu adalah kumpulan skrip PHP yang mengelola iklan.
Lothar_Grimpsenbacher

Oke, saya harap Anda telah menyelidiki kode itu.
Salman A

1

Jika Anda memiliki akses yang tepat (dan dukungan kernel), Anda dapat mencoba menyiapkan daemon pemantauan berdasarkan inotify atau dnotify untuk melihat perubahan pada file Anda, lalu (cepat) gunakan "lsof" untuk melihat proses apa yang dibuka dengan file tersebut. akses tulis. Anda mungkin juga dapat menggunakan strace untuk memantau. Itu harus memberikan petunjuk tentang apa yang dieksekusi dieksploitasi.


1

FTP memeriksa log adalah tempat pertama untuk memulai. Log harus berisi sebagian besar jika tidak semua aktivitas bersama dengan stempel waktu jadi jika Anda tahu jam berapa file Anda diubah, Anda dapat menentukan apakah akun FTP Anda terganggu atau tidak.

Selanjutnya, itu bisa berupa skrip di server web Anda yang menyuntikkan kode itu. Dalam skenario hosting bersama, saya pikir ini mungkin dilakukan cat /web/malicious.com/script.js >> /web/innocent.com/index.php. Ini mungkin bekerja dalam kondisi tertentu, seperti perintah yang dijalankan oleh pengguna httpd dan file index.php juga dimiliki / dapat ditulis oleh pengguna tersebut. Dalam hal ini Anda harus meminta penyedia hosting Anda untuk melacak akun yang digunakan untuk menyuntikkan skrip.


1

Sebagian besar file situs harus dapat dibaca oleh server web. Di situs hanya baca, hanya log yang harus dapat ditulisi oleh server web. atur pemilik ke orang lain selain yang digunakan oleh server web. Atur perlindungan 640 pada semua file kecuali skrip. Mengatur skrip dan direktori 750. Untuk file atau direktori yang perlu ditulis oleh websever Anda dapat mengubah pemilik ke server web atau mengatur chmod g + 2 file atau direktori yang relevan.


Skrip non-CGI sering dapat memiliki mode 600 atau 640 (tergantung pada pemilik & grup file dan pengguna apa yang dijalankan oleh server web), karena banyak skrip diteruskan ke juru bahasa.
outis

0

Ada jutaan cara yang mungkin untuk memecahkan suatu situs. Mereka bisa menggunakan kerentanan dalam skrip Anda, mencuri kata sandi Anda, menggunakan kerentanan situs yang di-host (jika Anda berada di host murah), menggunakan kerentanan beberapa layanan yang tidak terkait web di mesin server .. .

Sebagai langkah pertama, periksa tanggal modifikasi file, dan periksa akses, kesalahan, dan log ftp untuk aktivitas mencurigakan pada waktu itu.


0

Hal yang sama terjadi pada saya beberapa waktu lalu. Wordpress adalah satu-satunya perangkat lunak yang akan menyebabkan sesuatu seperti ini sejauh yang saya tahu.


Tidak ada Wordpress yang terlibat di sini.
Lothar_Grimpsenbacher
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.