Memverifikasi bahwa saya telah sepenuhnya menghapus peretasan WordPress?

105

Blog WordPress for-fun saya di http://fakeplasticrock.com (menjalankan WordPress 3.1.1) diretas - itu menunjukkan <iframe>pada setiap halaman seperti:

<iframe src="http://evilsite.com/go/1"></iframe>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 

Saya melakukan yang berikut

  1. Diupgrade ke 3.1.3 melalui sistem peningkatan WordPress bawaan
  2. Menginstal Exploit Scanner (banyak peringatan penting pada file yang tidak biasa) dan AntiVirus (ini menunjukkan semua hijau dan bersih, jadi saya menghapus dan menghapusnya setelah menjalankan)
  3. Mengubah kata sandi MySQL.
  4. Mengubah semua kata sandi pengguna WordPress.
  5. Terhubung melalui FTP dan mengunduh seluruh sistem file (tidak besar, ini adalah host bersama Linux WordPress saja)
  6. Menyebarkan sistem file terhadap ZIP resmi WordPress 3.1.3 dan menghapus atau menimpa apa pun yang tidak cocok.

Saya cukup yakin itu

  • semua file pada disk adalah file WordPress 3.1.3 resmi
  • tidak ada file "ekstra" pada disk selain yang saya /thememiliki, plugin Exploit Scanner (yang baru saja saya unduh), /uploadsfolder, dan beberapa file kecil lainnya yang diharapkan. Plugin saya yang lain, wp-recaptcha, cocok dengan versi resmi yang diunduh saat ini.
  • Saya juga memeriksa .htaccessfile dan tidak ada yang salah di sana

bandingkan file wordpress 3.1.3 di Beyond Compare

Saya tidak menyentuh basis data , tetapi saya berjuang untuk memikirkan bagaimana segala sesuatu di dalam basis data dapat berbahaya tanpa kode PHP khusus untuk membuatnya berfungsi?

Blog WordPress saya muncul OK dan bebas hack sekarang (saya pikir), tetapi apakah ada hal lain yang harus saya periksa?

Jeff Atwood
sumber
1
Anda harus selalu memperbarui blog. :)
fuxia

Jawaban:

80

Sudahkah Anda mengidentifikasi vektor exploit? Jika tidak, Anda mungkin membiarkan diri Anda terbuka untuk dieksploitasi di masa depan.

Hal-hal lain yang perlu dipertimbangkan:

  1. Ubah kata sandi pengguna admin WordPress - selesai
  2. Ubah kata sandi pengguna akun Hosting
  3. Ubah kata sandi FTP
  4. Ubah kata sandi pengguna MySQL db - selesai
  5. Ubah awalan tabel db
  6. Perbarui wp-config nonces / salt Anda
  7. Periksa izin direktori / file Anda
  8. Blokir akses menjelajah direktori, melalui .htaccess
  9. Telusuri semua yang ada di entri WordPress Codex Pengerasan
  10. Telusuri semua yang ada di FAQ My Site Was Hacked Code
Chip Bennett
sumber
1
maaf, lalai menyebutkan - Saya mengubah kata sandi WordPress tentu saja. Pos yang diperbarui dan dicentang pada daftar di sini! Saya tidak bisa memikirkan cara mereka dapat memiliki kata sandi hosting saya, atau kata sandi FTP, hanya dengan masuk ke WordPress; informasi itu tidak ada dalam sistem file atau database.
Jeff Atwood
9
Anda memiliki kemungkinan vektor eksploitasi ke belakang; sepertinya bukan WordPress -> akun hosting , melainkan akun hosting (via server atau FTP) -> WordPress .
Chip Bennett
2
@ Jeff beberapa eksploit tingkat server yang tidak dapat Anda kendalikan (selain menemukan host yang lebih baik). Tetapi hanya karena Anda belum menggunakan kredensial host / FTP tidak berarti bahwa seseorang belum mencurinya , dengan mendapatkan akses ke akun hosting Anda.
Chip Bennett
7
Ada eksploit yang sangat umum di mana malware menginfeksi stasiun kerja Anda (atau workstation kontraktor), menggali melalui kata sandi yang disimpan dalam program FTP favorit Anda (atau yang difungsikan FTP), dan mengirimkannya ke penyerang, yang kemudian berkompromi situs Anda dan menggunakannya untuk menyebarkan malware yang sama ke webmaster lain. Itu adalah salah satu cara umum di mana kata sandi FTP Anda dicuri. Apa yang khususnya berbahaya adalah bahwa penyebarannya melalui situs-situs normal seperti milik Anda, bukan yang kumuh di mana Anda cenderung berhati-hati.
tylerl
3
FYI, jika Anda memiliki akses ke baris perintah, WP-CLI memiliki perintah checksum verifikasi yang akan memeriksa setiap file terhadap wordpress.org
William Turrell
26

Melihat pesan "penjelajahan aman" Google Chrome, Anda mendapatkan ".cc iFrame hack" yang tampaknya banyak terjadi akhir-akhir ini. Saya pikir 3.1.3 akan memperbaiki ini, tetapi periksa file index.php Anda di root jika situs Anda, di situlah terus memukul saya sampai saya mendapatkan SEMUA yang diperbarui dan kata sandi diubah.

Ada beberapa hal yang SANGAT rumit yang dapat dilakukan orang dengan injeksi pos dan komentar. Anda dapat menjalankan kueri berikut terhadap basis data Anda untuk membantu menemukan beberapa di antaranya. Saya membuat blog "pelacakan" lainnya di sini .

SELECT * FROM wp_posts WHERE post_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%display:%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<?%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<?php%'
SELECT * FROM wp_comments WHERE comment_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%display:%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<?%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<?php%'

Semoga ini membantu!

Dillie-O
sumber
4
Saya akan menambahkan SELECT * FROM wp_* WHERE comment_content LIKE '%<?%'dan SELECT * FROM wp_* WHERE comment_content LIKE '%<?php%'hanya untuk memastikan ...
SeanJA
4
Oh, satu not terakhir. Saya berasumsi Anda memiliki alat Google Webmaster yang terhubung ke domain ini. Setelah Anda membereskan semuanya, Anda dapat mengirim permintaan dari akun alat webmaster Anda agar Google memindai ulang situs dan menghapus pesan peringatan. Mereka memproses permintaan dari alat webmaster biasanya dalam sehari. Kalau tidak, Anda masuk "daftar nakal" selama 90 hari.
Dillie-O
Menemukan banyak hasil tetapi karena iframe tertanam untuk Vimeo.
tooshel
20

Basis data juga dapat berisi kode berbahaya: akun pengguna tersembunyi atau nilai yang dicetak tanpa terhapus di suatu tempat. Juga, periksa direktori unggahan Anda untuk file yang bukan miliknya.

Oh, dan coba pahami bagaimana penyerang menemukan jalannya ke situs Anda. Pada akun bersama, sering kali seluruh server. Periksa situs lain di server untuk mengetahui blog yang diretas atau halaman lain juga. Baca log FTP Anda. Jika Anda tidak tahu bagaimana itu terjadi, Anda tidak dapat mencegah jeda berikutnya.

fuxia
sumber
tidakkah Pemindai Eksploitasi akan menemukan akun pengguna tersembunyi?
Jeff Atwood
@ Jeff Atwood saya tidak akan bergantung pada itu. Tabel pengguna Anda tidak sebesar itu. Anda dapat dengan mudah membacanya tanpa plugin apa pun.
fuxia
Saya memeriksa wp_userstabel dan hanya 2 baris, keduanya diharapkan .. tidak ada dalam /uploadfolder yang tidak biasa (hanya gifs dan pngs dan jpegs)
Jeff Atwood
@ Jeff Atwood Apakah Anda melihat file atau hanya pada ekstensi? Apakah semua file itu terdaftar di perpustakaan media?
fuxia
4
File gambar adalah metode pengiriman payload yang cukup umum. Lihat di sini , dan Tim Tinjauan Tema juga bertemu dengan Tema menggunakan eksploitasi TIFF yang serupa.) Jadi, ya: Saya akan memeriksa masing-masing, untuk memastikan itu bagian dari Perpustakaan Media. (Pemindaian tingkat tinggi yang mudah: periksa gambar yang tidak memiliki ukuran thumbnail yang ditentukan.)
Chip Bennett
13

Maaf mendengar Anda diretas - sepertinya Anda telah melakukan pekerjaan pemulihan dengan baik!

Sistem file Anda kedengarannya emas, saya tidak akan mengatakan ada hal lain yang bisa Anda lakukan di sini.

Saya akan berpikir Exploit Scanner akan memberikan peringatan jika ia menemukan skrip, iframe, PHP (meskipun hanya berbahaya jika dievaluasi), atau kode tidak biasa lainnya di database Anda.

Saya tidak yakin apakah itu memeriksa tabel selain dari posting & komentar, mungkin perlu memeriksa /wp-admin/options.phpsekilas dan melihat apakah Anda melihat sesuatu yang aneh.

Saya juga akan memeriksa tabel pengguna Anda di klien MySQL (pengguna mungkin ada di database tetapi tidak terlihat di admin).

TheDeadMedic
sumber
pasti ide yang bagus untuk menjalankan kueri MySQL pada tabel pengguna untuk memastikan tidak ada yang tidak terduga, dan saya melakukan itu. Tip yang bagus!
Jeff Atwood
8

Periksa alat Google Webmaster untuk dua hal:

  • verifikasi bahwa situs Anda belum ditandai sebagai dikompromikan, dan minta dipertimbangkan kembali jika ada
  • periksa situs Anda sebagai Googlebot dan verifikasi bahwa tidak ada spam yang disisipkan yang hanya dapat dilihat oleh Googlebot - contohnya adalah peretasan WP Pharma

Juga, saya akan menerapkan kembali tema, atau memeriksanya dengan sangat hati-hati. Beberapa baris PHP dapat mendefinisikan kembali fungsi PHP inti sehingga mereka mengekstrak kode jahat dari database, terutama tabel wp_options key / value store

Jon Galloway
sumber
ya saya pasti mengirim ulang situs melalui Alat Webmaster Google, dan sepertinya "dihapus" sekarang.
Jeff Atwood
6

Cari database melalui phpmyadmin untuk "iframe" atau buang database dan cari teks.

Dan periksa untuk pengguna yang tidak terlihat di tabel pengguna; Saya telah melihat pengguna di tabel yang tidak muncul di WP Admin >> Pengguna.

Opsi Bersihkan «Plugin WordPress akan menunjukkan sampah apa yang tersisa dari plugin yang lama dan kemungkinan rentan dalam database.

Tema Anda juga tidak memiliki <head>tag, jadi saya akan memeriksa jika Anda mengedit tema untuk menghapus tautan buruk.

Dan yang biasa: dan Bagaimana menemukan pintu belakang di WordPress yang diretas dan Pengerasan WordPress «WordPress Codex

markratledge
sumber
5

"Apakah ada hal lain yang harus saya periksa?" Anda perlu memeriksa proses Anda, dan mencari tahu bagaimana Anda diretas (hampir pasti karena Anda tidak menambal waktu, atau dengan benar) dan memperbaikinya juga, bukan hanya gejalanya.

Tom Chiverton
sumber
5
Saya ragu itu ada hubungannya dengan tidak memperbarui WordPress (meskipun mungkin , itu tidak mungkin ). WordPress sendiri hampir tidak pernah menjadi vektor exploit. Vektor yang biasa adalah konfigurasi host tidak aman, dan kredensial FTP curian.
Chip Bennett
4

Itu terjadi pada saya sekali, melalui kebocoran pada mediatemple. Saya harus menulis plugin untuk memeriksa basis data untuk tautan yang disuntikkan. Anda dapat mengambilnya di sini sebagai inti github .

Ini sangat user friendly, memiliki beberapa langkah yang memberikan umpan balik dan memeriksa ulang database Anda setelah Anda selesai.

Semoga berhasil!

kaisar
sumber
4

Saya memiliki retasan yang sangat mirip dengan yang harus saya perbaiki di salah satu situs klien saya.

Ada skrip berbahaya dalam sistem file (hal-hal php base64_decode). Namun, tabel 'posting' & 'komentar' database telah dikompromikan dan kode iframe juga tersebar di data itu.

Setidaknya saya akan menjalankan beberapa pencarian di DB, hanya untuk aman. :)

Eric Allison
sumber
3

Periksa plugin Anda!, Sejauh tahun ini telah ada 60 rilis exploit dari plugin .org, saya akan menduga angka sebenarnya jauh lebih tinggi karena tidak ada yang benar-benar melakukan hal ini secara penuh.

Anda mencantumkan bahwa Anda hanya memiliki satu plugin, baik itu memiliki lubang keamanan (tidak yakin berapa lama itu, dan mungkin bukan vektor).

wp-recaptcha-plugin
Eksploitasi dirilis: 2011-03-18
Versi eksploit: 2.9.8

Penulis menyatakan ia menulis ulang dengan versi 3.0, tetapi tidak disebutkan patch keamanannya.

http://www.wpsecure.net/2011/03/wp-recaptcha-plugin/

Ubah log: http://wordpress.org/extend/plugins/wp-recaptcha/changelog/

Wyck
sumber
2

Saya menggunakan server cloud dan memiliki nomor port ssh aneh acak tidak ada ftp sama sekali. Kata sandi sangat sulit diretas. Semua akses root sepenuhnya ditolak. Saya setuju bahwa WordPress tidak akan menjadi biang keladi Anda. Hal lain yang perlu diperiksa adalah sesi ftp tidak menutup, virus di komputer pribadi Anda (ingat Anda dapat memuat file ke situs Anda dan siapa pun yang memuat file itu bisa mendapatkan virus yang sama), juga jangan simpan kata sandi Anda di situs publik atau pribadi situs selalu benar di atas kertas tidak pernah pada dokumen atau notepad kata.

Terakhir tanyakan kepada host Anda apakah mereka baru-baru ini melakukan pelanggaran karena mereka seharusnya memiliki pengaturan firewall

xLRDxREVENGEx
sumber
2

Periksa tanggal file Anda. Tidak ada file yang harus memiliki perubahan data yang lebih baru dari edit / instal terakhir Anda!

Tapi ini juga bisa dipalsukan. Cara paling pasti untuk memastikan adalah membandingkan (mis. Membandingkan hash) semua file dengan file instalasi asli.

powtac
sumber