ตรวจสอบว่าฉันลบแฮ็ค WordPress ออกทั้งหมด


105

บล็อก WordPress เพื่อความสนุกของฉันที่http://fakeplasticrock.com (ใช้งาน WordPress 3.1.1) ถูกแฮก - มันแสดงให้เห็น<iframe>บนทุกหน้าดังนี้:

<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"> 

ฉันทำสิ่งต่อไปนี้

  1. อัปเกรดเป็น 3.1.3 ผ่านระบบอัพเกรด WordPress ในตัว
  2. ติดตั้งExploit Scanner (คำเตือนที่สำคัญจำนวนมากเกี่ยวกับไฟล์ที่ผิดปกติ) และAntiVirus (สิ่งนี้แสดงให้เห็นว่าเป็นสีเขียวและสะอาดดังนั้นฉันจึงถอนการติดตั้งและลบออกหลังจากใช้งาน)
  3. เปลี่ยนรหัสผ่าน MySQL
  4. เปลี่ยนรหัสผ่านผู้ใช้ WordPress ทั้งหมด
  5. เชื่อมต่อผ่าน FTP และดาวน์โหลดทั้งระบบไฟล์ (ไม่ใหญ่มากนี่เป็นโฮสติ้งที่ใช้ร่วมกับ WordPress เท่านั้น)
  6. ระบบไฟล์แตกต่างจาก ZIP อย่างเป็นทางการของ WordPress 3.1.3 และลบหรือเขียนทับสิ่งที่ไม่ตรงกัน

ฉันค่อนข้างแน่ใจว่า

  • ทุกไฟล์บนดิสก์อย่างเป็นทางการ WordPress 3.1.3 ไฟล์
  • ไม่มีไฟล์ "พิเศษ" ในดิสก์นอกเหนือจากไฟล์ของฉัน/themeปลั๊กอิน Exploit Scanner (ซึ่งฉันเพิ่งดาวน์โหลด) /uploadsโฟลเดอร์และไฟล์อื่น ๆ ที่คาดหวังจำนวนเล็กน้อย ปลั๊กอินอื่นของฉันคือ wp-recaptcha ตรงกับรุ่นที่ดาวน์โหลดอย่างเป็นทางการในปัจจุบัน
  • ฉันตรวจสอบ.htaccessไฟล์และไม่มีอะไรผิดปกติ

ไฟล์ wordpress 3.1.3 เปรียบเทียบใน Beyond เปรียบเทียบ

ฉันไม่ได้แตะฐานข้อมูลแต่ฉันพยายามคิดว่าสิ่งใดในฐานข้อมูลอาจเป็นอันตรายโดยไม่ต้องใช้รหัส PHP พิเศษเพื่อให้ทำงานได้

บล็อก WordPress ของฉันปรากฏว่าตกลงและไม่แฮ็คตอนนี้ (ฉันคิดว่า) แต่มีอะไรอีกบ้างที่ฉันควรตรวจสอบ?


1
คุณควรปรับปรุงบล็อกให้ทันสมัย :)
fuxia

คำตอบ:


80

คุณได้ระบุการใช้ประโยชน์จากเวกเตอร์แล้วหรือยัง? ถ้าไม่คุณอาจปล่อยให้ตัวเองเปิดรับการเอารัดเอาเปรียบในอนาคต

สิ่งอื่น ๆ ที่ควรพิจารณา:

  1. เปลี่ยนรหัสผ่านผู้ใช้ WordPress admin - เสร็จแล้ว
  2. เปลี่ยนรหัสผ่านบัญชีผู้ใช้โฮสติ้ง
  3. เปลี่ยนรหัสผ่าน FTP
  4. เปลี่ยนรหัสผ่านผู้ใช้ MySQL db - เสร็จสิ้น
  5. เปลี่ยนคำนำหน้าตาราง db
  6. อัพเดตwp-config nonces / salt ของคุณ
  7. ตรวจสอบสิทธิ์ไดเรกทอรี / ไฟล์ของคุณ
  8. ปิดกั้นการเข้าถึงไดเรกทอรีผ่านทาง .htaccess
  9. ผ่านทุกสิ่งในรายการHardening WordPress Codex
  10. ผ่านทุกสิ่งในคำถามที่พบบ่อยเว็บไซต์ของฉันถูกแฮ็กข้อมูล Codex

1
ขอโทษที่ถูกกล่าวถึง - ฉันเปลี่ยนรหัสผ่าน WordPress แน่นอน อัปเดตโพสต์และตรวจสอบในรายการที่นี่! ฉันไม่สามารถคิดได้ว่าพวกเขาจะมีรหัสผ่านโฮสติ้งของฉันหรือรหัสผ่าน FTP เพียงแค่เข้าสู่ WordPress ข้อมูลนั้นไม่มีอยู่ในระบบไฟล์หรือฐานข้อมูล
Jeff Atwood

9
คุณมีการหาประโยชน์จากเวกเตอร์ที่น่าจะเป็นไปได้ มันไม่น่าWordPress -> โฮสติ้งบัญชีแต่บัญชีโฮสติ้ง (ผ่านเซิร์ฟเวอร์หรือ FTP) -> WordPress
Chip Bennett

2
@Jeff การหาประโยชน์ระดับเซิร์ฟเวอร์บางอย่างที่คุณไม่สามารถควบคุมได้ (นอกเหนือจากการหาโฮสต์ที่ดีกว่า) แต่เพียงเพราะคุณไม่ได้ใช้ข้อมูลประจำตัวของโฮสต์ / FTP ไม่ได้หมายความว่ามีคนไม่ได้ขโมยข้อมูลเหล่านั้นโดยการเข้าถึงบัญชีโฮสติ้งของคุณ
Chip Bennett

7
มีช่องโหว่ทั่วไปที่ทำให้รอบที่มัลแวร์ติดเวิร์กสเตชันของคุณ (หรือเวิร์กสเตชันของผู้รับเหมา) ขุดผ่านรหัสผ่านที่บันทึกไว้ในโปรแกรม FTP (หรือเปิดใช้งาน FTP) ที่คุณโปรดปรานและส่งผู้โจมตีไปยังผู้โจมตี ไซต์ของคุณและใช้เพื่อแพร่กระจายมัลแวร์เดียวกันไปยังเว็บมาสเตอร์อื่น ๆ นี่เป็นวิธีการทั่วไปที่รหัสผ่าน FTP ของคุณถูกขโมย สิ่งที่ร้ายกาจอย่างยิ่งก็คือมันแพร่กระจายไปตามไซต์ปกติเช่นคุณไม่ใช่คนน่าเกลียดที่คุณควรระวัง
tylerl

3
หากคุณมีสิทธิ์เข้าถึงบรรทัดคำสั่งWP-CLIมีคำสั่งตรวจสอบ checksumsที่จะตรวจสอบแต่ละไฟล์กับ wordpress.org
William Turrell

26

เมื่อดูข้อความ "การท่องเว็บอย่างปลอดภัย" ของ Google Chrome คุณจะได้รับข้อความ ".cc iFrame hack" ซึ่งดูเหมือนว่าจะมีจำนวนมากเมื่อเร็ว ๆ นี้ ฉันคิดว่า 3.1.3 จะแก้ไขสิ่งนี้ แต่ให้ตรวจสอบไฟล์ index.php ของคุณในรูทหากไซต์ของคุณนั่นคือที่ที่มันกดปุ่มฉันจนกว่าฉันจะได้รับการอัปเดตทุกอย่างและเปลี่ยนรหัสผ่าน

มีบางสิ่งที่ยุ่งยากมากที่ผู้คนสามารถทำได้กับการโพสต์และการแสดงความคิดเห็น คุณสามารถเรียกใช้คำสั่งต่อไปนี้กับฐานข้อมูลของคุณที่จะช่วยหาบางส่วนของพวกเขาฉัน blogged ส่วนที่เหลือของ "ติดตาม" ของฉันที่นี่

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%'

หวังว่านี่จะช่วยได้!


4
ฉันจะเพิ่มSELECT * FROM wp_* WHERE comment_content LIKE '%<?%'และSELECT * FROM wp_* WHERE comment_content LIKE '%<?php%'เพียงเพื่อให้แน่ใจ ...
SeanJA

4
โอ้โน้ตตัวสุดท้าย ฉันสมมติว่าคุณมีเครื่องมือ Google Webmaster ผูกไว้กับโดเมนนี้ เมื่อคุณทำความสะอาดแล้วคุณสามารถส่งคำขอจากบัญชีเครื่องมือเว็บมาสเตอร์ของคุณเพื่อให้ Google ทำการสแกนไซต์อีกครั้งและลบข้อความเตือนออก พวกเขาดำเนินการตามคำขอจากเครื่องมือเว็บมาสเตอร์โดยทั่วไปภายในหนึ่งวัน มิฉะนั้นคุณจะอยู่ใน "รายการซน" เป็นเวลา 90 วัน
Dillie-O

พบผลลัพธ์จำนวนมาก แต่เป็นเพราะฝัง iframe สำหรับ Vimeo
tooshel

20

ฐานข้อมูลสามารถมีรหัสที่เป็นอันตรายได้เช่นบัญชีผู้ใช้ที่ซ่อนอยู่หรือค่าที่พิมพ์โดยไม่ใช้ค่า Escape ที่ใดที่หนึ่ง ตรวจสอบไดเรกทอรีอัปโหลดไฟล์ที่ไม่มีอยู่ด้วย

โอ้และพยายามเข้าใจว่าผู้โจมตีเข้ามาในเว็บไซต์ของคุณอย่างไร ในบัญชีที่ใช้ร่วมกันนั้นมักจะเป็นเซิร์ฟเวอร์ทั้งหมด ตรวจสอบเว็บไซต์อื่น ๆบนเซิร์ฟเวอร์เพื่อหาบล็อกที่ถูกแฮ็กหรือหน้าอื่น ๆ ด้วย อ่านบันทึก FTP ของคุณ หากคุณไม่ทราบว่ามันเกิดขึ้นได้อย่างไรคุณไม่สามารถป้องกันการหยุดพักครั้งต่อไปได้


สแกนเนอร์ใช้ประโยชน์จะไม่พบบัญชีผู้ใช้ที่ซ่อนอยู่ใด ๆ
Jeff Atwood

@Jeff Atwood ฉันจะไม่พึ่งพาสิ่งนั้น ตารางผู้ใช้ของคุณไม่ใหญ่มาก คุณสามารถอ่านได้อย่างง่ายดายโดยไม่ต้องใช้ปลั๊กอิน
fuxia

ฉันจะตรวจสอบwp_usersตารางและมีเพียง 2 แถวทั้งคาดว่า .. ไม่มีอะไรใน/uploadโฟลเดอร์ที่ผิดปกติ (เพียง GIFs และ PNGs และ JPEG)
เจฟฟ์แอด

@Jeff Atwood คุณมองเข้าไปในไฟล์หรือเพียงแค่นามสกุล? ไฟล์เหล่านั้นทั้งหมดอยู่ในรายการในไลบรารีสื่อหรือไม่?
fuxia

4
ไฟล์อิมเมจเป็นวิธีการจัดส่ง payload ทั่วไป ดูที่นี่และทีมตรวจสอบธีมได้ใช้ธีมโดยใช้ประโยชน์จาก TIFF ที่คล้ายกัน) ดังนั้นใช่: ฉันจะตรวจสอบแต่ละรายการเพื่อให้แน่ใจว่าเป็นส่วนหนึ่งของ Media Library (การสแกนระดับสูงง่าย ๆ : ตรวจสอบภาพที่ไม่ได้กำหนดขนาดรูปขนาดย่อ)
Chip Bennett

13

ขออภัยที่ได้ยินว่าคุณถูกแฮ็ก - ดูเหมือนว่าคุณจะกู้คืนข้อมูลได้ดี!

ระบบไฟล์ของคุณดูดีมากฉันไม่คิดว่าจะมีอะไรอีกที่คุณทำได้ที่นี่

ฉันคิดว่า Exploit Scanner จะส่งคำเตือนหากพบสคริปต์ใด ๆ iframes, PHP (แม้ว่าจะเป็นอันตรายหาก eval'd) หรือรหัสผิดปกติอื่น ๆ ในฐานข้อมูลของคุณ

ฉันไม่แน่ใจว่ามันตรวจสอบตารางอื่น ๆ นอกเหนือจากโพสต์ & ความคิดเห็นอาจคุ้มค่าที่จะตรวจสอบ/wp-admin/options.phpอย่างรวดเร็วและดูว่าคุณเห็นอะไรแปลก ๆ หรือไม่

ฉันจะตรวจสอบตารางผู้ใช้ของคุณในไคลเอนต์ MySQL (ผู้ใช้อาจอยู่ในฐานข้อมูล แต่ไม่ปรากฏในผู้ดูแลระบบ)


เป็นความคิดที่ดีที่จะเรียกใช้แบบสอบถาม MySQL บนตารางผู้ใช้เพื่อให้แน่ใจว่าไม่มีสิ่งใดที่ไม่คาดคิดเกิดขึ้นและฉันก็ทำเช่นนั้น เคล็ดลับดี!
Jeff Atwood

8

ตรวจสอบเครื่องมือของ Google Webmaster สำหรับสองสิ่ง:

  • ตรวจสอบว่าเว็บไซต์ของคุณไม่ได้ถูกตั้งค่าสถานะว่าถูกบุกรุกและขอให้พิจารณาใหม่หากมี
  • ตรวจสอบเว็บไซต์ของคุณเป็น Googlebot และตรวจสอบว่าไม่มีการแทรกสแปมซึ่ง Googlebot มองเห็นได้เท่านั้น - ตัวอย่างเช่นแฮ็ค WP Pharma

นอกจากนี้ฉันจะใช้ธีมอีกครั้งหรือตรวจสอบอย่างระมัดระวัง PHP ไม่กี่บรรทัดสามารถกำหนดฟังก์ชั่นหลักของ PHP ใหม่ได้เพื่อดึงโค้ดที่เป็นอันตรายออกจากฐานข้อมูลโดยเฉพาะตารางเก็บคีย์ / ค่า wp_options


ใช่ฉันส่งไซต์นั้นซ้ำอีกครั้งผ่าน Google Webmaster Tools และดูเหมือนว่า "จะถูกล้าง" ในตอนนี้
Jeff Atwood

6

ค้นหาฐานข้อมูลผ่าน phpmyadmin เพื่อหา "iframe" หรือดัมพ์ฐานข้อมูลและค้นหาข้อความ

และตรวจสอบผู้ใช้ที่มองไม่เห็นในตารางผู้ใช้ ฉันเคยเห็นผู้ใช้ในตารางที่ไม่ปรากฏใน WP Admin >> ผู้ใช้

ตัวเลือกที่สะอาด«ปลั๊กอินของ WordPressจะแสดงสิ่งที่ขยะจากปลั๊กอินเก่าและอาจมีความเสี่ยงอยู่ในฐานข้อมูล

ธีมของคุณไม่มี<head>แท็กดังนั้นฉันจะตรวจสอบในกรณีที่คุณแก้ไขธีมเพื่อลบลิงก์ที่ไม่ดี

และตามปกติ: และวิธีการค้นหาลับๆใน WordPress ที่ถูกแฮ็กและHardening WordPress « WordPress Codex


5

"มีอะไรอีกบ้างที่ฉันควรตรวจสอบ?" คุณต้องตรวจสอบกระบวนการของคุณและค้นหาว่าคุณถูกแฮ็กอย่างไร (เกือบจะแน่นอนเพราะคุณไม่ได้แก้ไขเวลาหรืออย่างถูกต้อง) และแก้ไขด้วยเช่นกันไม่ใช่แค่อาการ


5
ฉันสงสัยว่ามันเกี่ยวกับการไม่อัปเดต WordPress (แม้ว่าจะเป็นไปได้แต่ก็ไม่น่าจะเป็นไปได้ ) WordPress นั้นแทบจะไม่ใช้ประโยชน์จากเวกเตอร์เลย เวกเตอร์ปกติคือการกำหนดค่าโฮสต์ที่ไม่ปลอดภัยและข้อมูลรับรอง FTP ที่ถูกขโมย
Chip Bennett

4

เกิดขึ้นกับฉันครั้งเดียวผ่านการรั่วไหลของคนไข้ ฉันต้องเขียนปลั๊กอินเพื่อตรวจสอบฐานข้อมูลสำหรับลิงก์ที่ถูกฉีด คุณสามารถคว้ามันนี่เป็นส่วนสำคัญ GitHub

เป็นมิตรกับผู้ใช้มีหลายขั้นตอนในการส่งข้อเสนอแนะและตรวจสอบฐานข้อมูลของคุณอีกครั้งหลังจากเสร็จสิ้น

โชคดี!


4

ฉันมีแฮ็คที่คล้ายกันมากฉันต้องแก้ไขในหนึ่งในเว็บไซต์ลูกค้าของฉัน

มีสคริปต์ที่เป็นอันตรายในระบบไฟล์ (สิ่ง php base64_decode) อย่างไรก็ตามตาราง 'โพสต์' & 'ความคิดเห็น' ของฐานข้อมูลนั้นถูกบุกรุกและรหัส iframe ก็กระจัดกระจายไปตามข้อมูลเช่นกัน

อย่างน้อยฉันก็จะทำการค้นหาบน DB เพื่อความปลอดภัย :)


3

ตรวจสอบปลั๊กอินของคุณ! ในปีนี้มีการใช้ประโยชน์จากปลั๊กอิน. org 60 รายการฉันคาดว่าจำนวนจริงจะสูงกว่านี้มากเนื่องจากไม่มีผู้ใดทำงานเต็มเวลานี้

คุณระบุว่าคุณมีปลั๊กอินเพียงอันเดียวมันมีช่องโหว่ (ไม่แน่ใจว่ามันยาวแค่ไหนและมันอาจไม่ใช่เวกเตอร์)

wp-recaptcha-plugin
การหาประโยชน์ได้รับการเผยแพร่: 2011-03-18
รุ่น Exploit: 2.9.8

ผู้เขียนระบุว่าเขาเขียนใหม่ด้วยเวอร์ชัน 3.0 แต่ไม่มีการกล่าวถึงแพตช์ความปลอดภัย

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

เปลี่ยนบันทึก: http://wordpress.org/extend/plugins/wp-recaptcha/changelog/


2

ฉันใช้คลาวด์เซิร์ฟเวอร์และมีหมายเลขพอร์ต ssh ที่แปลกประหลาดไม่มี ftp เลย รหัสผ่านนั้นยากต่อการแฮ็ค การเข้าถึงรูททั้งหมดถูกปฏิเสธอย่างสมบูรณ์ ฉันยอมรับว่า WordPress จะไม่เป็นผู้ร้ายของคุณ สิ่งที่ต้องตรวจสอบอีกอย่างคือเซสชัน ftp ไม่ได้ปิดไวรัสในคอมพิวเตอร์ของคุณ (โปรดจำไว้ว่าคุณสามารถโหลดไฟล์ไปยังเว็บไซต์ของคุณและผู้ที่เคยโหลดไฟล์นั้นจะได้รับไวรัสตัวเดียวกัน) อย่าเก็บรหัสผ่านของคุณในเว็บไซต์สาธารณะหรือส่วนตัว ไซต์มักจะวางมันลงบนกระดาษไม่เคยอยู่ในเอกสารคำหรือแผ่นจดบันทึก

สุดท้ายถามโฮสต์ของคุณว่าพวกเขามีการละเมิดเมื่อเร็ว ๆ นี้เนื่องจากพวกเขาควรมีการตั้งค่าไฟร์วอลล์


2

ตรวจสอบวันที่ของไฟล์ของคุณ ไม่มีไฟล์ควรมีข้อมูลการเปลี่ยนแปลงที่ใหม่กว่าการแก้ไข / ติดตั้งครั้งล่าสุดของคุณ!

แต่ยังสามารถแกล้งทำ วิธีที่เร็วที่สุดที่จะทำให้แน่ใจว่าจะทำการเปรียบเทียบ (เช่น. hash เปรียบเทียบ) ไฟล์ทั้งหมดที่มีไฟล์การติดตั้งดั้งเดิม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.