Bhunter - แฮ็กโหนด botnet

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

Bhunter - แฮ็กโหนด botnet

ความคิดหลัก

มีหลายวิธีในการแพร่กระจายมัลแวร์เพื่อขยายบอตเน็ต: ตั้งแต่ฟิชชิ่งไปจนถึงการหาประโยชน์จากช่องโหว่ 0 วัน แต่วิธีที่พบบ่อยที่สุดยังคงเป็นรหัสผ่าน SSH ที่บังคับดุร้าย

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

นี่คือวิธีการทำงานของ bhunter ฟังพอร์ต 22 (บริการ SSH) และรวบรวมการเข้าสู่ระบบและรหัสผ่านทั้งหมดที่พวกเขาพยายามเชื่อมต่อ จากนั้นจะพยายามเชื่อมต่อกับโหนดที่ถูกโจมตีโดยใช้รหัสผ่านที่รวบรวมได้

อัลกอริทึมการทำงาน

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

ส่วนที่สองรับผิดชอบการโจมตีโดยตรง นอกจากนี้ การโจมตีจะดำเนินการในสองโหมด: BurstAttack (การโจมตีแบบต่อเนื่อง) - การเข้าสู่ระบบแบบ Brute Force และรหัสผ่านจากรายการทั่วไป และ SingleShotAttack (การโจมตีแบบนัดเดียว) - รหัสผ่านแบบ Brute Force ที่ใช้โดยโหนดที่ถูกโจมตี แต่ยังไม่ได้ถูกโจมตี เพิ่มเข้าไปในรายการทั่วไป

เพื่อให้มีฐานข้อมูลล็อกอินและรหัสผ่านอย่างน้อยทันทีหลังจากเปิดตัว bhunter จะถูกเตรียมใช้งานด้วยรายการจากไฟล์ /etc/bhunter/defaultLoginPairs

อินเตอร์เฟซ

มีหลายวิธีในการเปิดตัว bhunter:

เช่นเดียวกับทีม

sudo bhunter

ด้วยการเปิดตัวครั้งนี้ คุณสามารถควบคุม bhunter ผ่านเมนูข้อความ: เพิ่มล็อกอินและรหัสผ่านสำหรับการโจมตี ส่งออกฐานข้อมูลล็อกอินและรหัสผ่าน ระบุเป้าหมายสำหรับการโจมตี โหนดที่ถูกแฮ็กทั้งหมดสามารถดูได้ในไฟล์ /var/log/bhunter/hacked.log

การใช้ tmux

sudo bhunter-ts # команда запуска bhunter через tmux  
sudo tmux attach -t bhunter # подключаемся к сессии, в которой запущен bhunter

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

สคริปต์ bhunter-ts สร้างเซสชัน tmux และแบ่งหน้าต่างออกเป็นสามแผง รายการแรกที่ใหญ่ที่สุดประกอบด้วยเมนูข้อความ ด้านบนขวามีบันทึกของ Honeypot ที่นี่คุณจะเห็นข้อความเกี่ยวกับการพยายามเข้าสู่ระบบ Honeypot แผงด้านขวาล่างจะแสดงข้อมูลเกี่ยวกับความคืบหน้าของการโจมตีโหนดบอตเน็ตและการแฮ็กที่ประสบความสำเร็จ

ข้อดีของวิธีนี้ในช่วงแรกคือเราสามารถปิดเทอร์มินัลได้อย่างปลอดภัยและกลับมาที่เทอร์มินัลในภายหลังโดยไม่ต้องหยุดการทำงานของมัน สำหรับผู้ที่ไม่ค่อยคุ้นเคยกับ tmux ฉันขอแนะนำ แผ่นโกงนี้.

เป็นบริการ

systemctl enable bhunter
systemctl start bhunter

ในกรณีนี้ เราเปิดใช้งาน bhunter autostart เมื่อเริ่มต้นระบบ ในวิธีนี้ ไม่มีการโต้ตอบกับ bhunter และรายการโหนดที่ถูกแฮ็กสามารถรับได้จาก /var/log/bhunter/hacked.log

ประสิทธิผล

ในขณะที่ทำงานกับ bhunter ฉันจัดการเพื่อค้นหาและเข้าถึงอุปกรณ์ที่แตกต่างกันโดยสิ้นเชิง: ราสเบอร์รี่ pi, เราเตอร์ (โดยเฉพาะ mikrotik), เว็บเซิร์ฟเวอร์ และครั้งหนึ่งเคยเป็นฟาร์มขุด (น่าเสียดายที่เข้าถึงได้ในระหว่างวัน ดังนั้นจึงไม่มีสิ่งที่น่าสนใจเลย เรื่องราว ). นี่คือภาพหน้าจอของโปรแกรมซึ่งแสดงรายการโหนดที่ถูกแฮ็กหลังจากทำงานมาหลายวัน:

Bhunter - แฮ็กโหนด botnet

น่าเสียดายที่ประสิทธิภาพของเครื่องมือนี้ไม่เป็นไปตามความคาดหวังของฉัน bhunter สามารถลองใช้รหัสผ่านไปยังโหนดเป็นเวลาหลายวันโดยไม่ประสบความสำเร็จและสามารถแฮ็กหลายเป้าหมายได้ภายในสองสามชั่วโมง แต่นี่ก็เพียงพอแล้วสำหรับตัวอย่างบอทเน็ตใหม่ๆ ที่หลั่งไหลเข้ามาเป็นประจำ

ประสิทธิภาพจะขึ้นอยู่กับพารามิเตอร์ต่างๆ เช่น ประเทศที่เซิร์ฟเวอร์ที่มี bhunter ตั้งอยู่ โฮสติ้ง และช่วงที่มีการจัดสรรที่อยู่ IP จากประสบการณ์ของฉัน มีกรณีหนึ่งเมื่อฉันเช่าเซิร์ฟเวอร์เสมือนสองตัวจากโฮสต์หนึ่งราย และหนึ่งในนั้นถูกโจมตีโดยบ็อตเน็ตบ่อยกว่า 2 เท่า

ข้อบกพร่องที่ฉันยังไม่ได้แก้ไข

เมื่อโจมตีโฮสต์ที่ติดไวรัส ในบางสถานการณ์ จะไม่สามารถระบุได้อย่างชัดเจนว่ารหัสผ่านนั้นถูกต้องหรือไม่ กรณีดังกล่าวจะถูกบันทึกไว้ในไฟล์ /var/log/debug.log

โมดูล Paramiko ซึ่งใช้ในการทำงานร่วมกับ SSH บางครั้งทำงานไม่ถูกต้อง: โมดูลจะรอการตอบกลับจากโฮสต์อย่างไม่มีที่สิ้นสุดเมื่อพยายามเชื่อมต่อ ฉันทดลองใช้ตัวจับเวลา แต่ไม่ได้ผลลัพธ์ตามที่ต้องการ

จะต้องดำเนินการอะไรอีกบ้าง?

ชื่อบริการ

ตาม RFC-4253 ไคลเอ็นต์และเซิร์ฟเวอร์จะแลกเปลี่ยนชื่อของบริการที่ใช้โปรโตคอล SSH ก่อนการติดตั้ง ชื่อนี้มีอยู่ในฟิลด์ "ชื่อบริการ" ซึ่งมีทั้งในคำขอจากฝั่งไคลเอ็นต์และการตอบกลับจากฝั่งเซิร์ฟเวอร์ ฟิลด์นี้เป็นสตริง และค่าของฟิลด์นี้สามารถพบได้โดยใช้ wireshark หรือ nmap นี่คือตัวอย่างสำหรับ OpenSSH:

$ nmap -p 22 ***.**.***.** -sV
Starting Nmap ...
PORT   STATE SERVICE VERSION
22/tcp open  ssh     <b>OpenSSH 7.9p1 Debian 10+deb10u2</b> (protocol 2.0)
Nmap done: 1 IP address (1 host up) scanned in 0.47 seconds

อย่างไรก็ตาม ในกรณีของ Paramiko ฟิลด์นี้จะมีสตริงเช่น “Paramiko Python sshd 2.4.2” ซึ่งสามารถทำให้บอทเน็ตตกใจที่ออกแบบมาเพื่อ “หลีกเลี่ยง” กับดักได้ ดังนั้นฉันคิดว่าจำเป็นต้องแทนที่บรรทัดนี้ด้วยสิ่งที่เป็นกลางกว่านี้

เวกเตอร์อื่นๆ

SSH ไม่ใช่วิธีเดียวในการจัดการระยะไกล นอกจากนี้ยังมีเทลเน็ต rdp มันคุ้มค่าที่จะดูพวกเขาให้ละเอียดยิ่งขึ้น

นามสกุล

คงจะดีถ้ามีกับดักหลายแห่งในประเทศต่างๆ และรวบรวมการเข้าสู่ระบบ รหัสผ่าน และโหนดที่ถูกแฮ็กจากส่วนกลางไปยังฐานข้อมูลทั่วไป

ฉันจะดาวน์โหลดได้ที่ไหน?

ในขณะที่เขียนมีเพียงเวอร์ชันทดสอบเท่านั้นที่สามารถดาวน์โหลดได้ พื้นที่เก็บข้อมูลบน Github.

ที่มา: will.com

เพิ่มความคิดเห็น