วิธีใช้เครื่องมือแฮ็คที่ดีที่สุดของ Linux

ระบบปฏิบัติการที่ใช้ Linux และ Unix เป็นแกนหลักของความปลอดภัยของข้อมูล, ความปลอดภัยเครือข่าย, การเข้ารหัส ฯลฯ พวกมันมาพร้อมกับเครื่องมือที่หลากหลายเพื่อจุดประสงค์ในการรักษาความปลอดภัยในโลกไซเบอร์

ให้เราดูที่เครื่องมือสามอย่าง: Aircrack-ng, Jack The Ripper และ Radare2

Aircrack-ng สวีท

ชุด Aircrack-ng อาจเป็นชุดเครื่องมือดักจับเครือข่าย WiFi และเครื่องมือดักจับรหัสผ่านที่ใช้กันอย่างแพร่หลาย มีขึ้นเพื่อถอดรหัสรหัสผ่านเครือข่ายไร้สายของโปรโตคอล IEEE 802.11 ซึ่งส่วนใหญ่ได้รับการปกป้องโดยมาตรฐาน Wifi Protected Access (WPA) หรือ Wifi Protected Access 2 (WPA2) และรับรองความถูกต้องโดยวิธีการตรวจสอบสิทธิ์ Pre-Shared Key (PSK)

มีโปรแกรมแยกต่างหากสำหรับตรวจสอบสถานะของอุปกรณ์เครือข่าย ดักจับแพ็กเก็ตและดัมพ์ในไฟล์ การแคร็กรหัสผ่าน ฯลฯ

โปรดทราบว่านักวิจัยพบว่าการถอดรหัส WPA/WPA2 โดยใช้อัลกอริทึมการเข้ารหัสนั้นแทบจะเป็นไปไม่ได้เลย ดังนั้น วิธีถอดรหัส WPA/WPA2 โดยโปรแกรมอย่าง aircrack-ng คือ Brute Force และต้องใช้พจนานุกรมของรหัสผ่านเพื่อถอดรหัส นั่นหมายความว่าสามารถถอดรหัสรหัสผ่านได้ก็ต่อเมื่อรหัสผ่านเป็นคำในพจนานุกรม

คุณสามารถติดตั้ง Aircrack-ng บนระบบของคุณได้อย่างง่ายดายโดยใช้สคริปต์ตัวติดตั้งที่จัดทำโดย packagecloud.io เปิดเทอร์มินัลแล้วเรียกใช้คำสั่งต่อไปนี้ตามประเภทระบบปฏิบัติการ Linux ของคุณ

ในการแจกแจงแบบเดเบียน รันคำสั่งต่อไปนี้:

curl -s //packagecloud.io/install/repositories/aircrack-ng/release/script.deb.sh | sudo bash

สำหรับ Red-hat Package Manager (RPM) รันคำสั่งต่อไปนี้:

curl -s //packagecloud.io/install/repositories/aircrack-ng/release/script.rpm.sh | sudo bash

ตอนนี้ มาลองถอดรหัสรหัสผ่านของเครือข่าย Wi-Fi ในพื้นที่โดยใช้ Aircrack-ng

ก่อนอื่นให้เรียกใช้คำสั่ง iwconfig เพื่อค้นหาชื่ออินเทอร์เฟซเครือข่ายไร้สายของคุณ

iwconfig

ที่นี่, wlp2s0 เป็นชื่อของอินเทอร์เฟซไร้สายของฉัน ESSID กล่าวคือ ชื่อเครือข่ายคือ "tmp" ซึ่งเป็นชื่อเครือข่าย Wifi ที่ฉันเชื่อมต่ออยู่

เราจะใช้ airmon-ng คำสั่งให้เริ่มอินเทอร์เฟซการตรวจสอบเครือข่ายบน wlp2s0.

sudo airmon-ng เริ่ม wlp2s0

มองหาบรรทัดที่ส่วนท้ายเพื่อค้นหาอินเทอร์เฟซโหมดจอภาพ ในตัวอย่างข้างต้น มันคือ จันทร์0. ตอนนี้เราจะเริ่มจับแพ็กเก็ตเครือข่ายโดยเรียกใช้ airodump-ng บน จันทร์0.

sudo airodump-ng mon0 -w log

จะแสดงการตรวจสอบแพ็กเก็ตเครือข่ายที่จับได้จากเครือข่ายต่างๆ ดิ -w บันทึก ส่วนหนึ่งใช้สำหรับบันทึกแพ็กเก็ตเครือข่ายในไฟล์บันทึก คำนำหน้าของไฟล์บันทึกจะเป็นส่วนที่ระบุหลัง -w ในกรณีนี้คือ 'log'

เพื่อให้โปรแกรมจับแฮชคีย์รหัสผ่าน ต้องมี WPA handshake บนเครือข่าย กล่าวคือ ผู้ใช้ควรพยายามเชื่อมต่อกับมัน ผู้ใช้สามารถยกเลิกการเชื่อมต่อ Wifi แล้วเชื่อมต่อใหม่ได้ ที่มุมบนขวาตอนนี้ แจ้งเตือนว่ามีการจับมือ WPA แล้ว

ตอนนี้กด Ctrl + C เพื่อยุติการถ่ายโอนข้อมูล คุณสามารถดูล็อกไฟล์ที่สร้างขึ้นในโฟลเดอร์ปัจจุบัน

ขั้นตอนถัดไปและขั้นสุดท้ายคือการเรียกใช้ aircrack-ng ด้วยพจนานุกรมเพื่อดูว่าคำใดตรงกับคีย์แฮชที่สกัดกั้นจากการจับมือกัน

aircrack-ng log-01.cap -w tmpdict.txt 

ที่นี่ log-01.cap เป็นไฟล์บันทึกที่สร้างโดย airodump-ng คำสั่งและ tmpdict.txt เป็นไฟล์พจนานุกรม มีพจนานุกรมขนาดใหญ่หลายเล่มที่สามารถดาวน์โหลดและใช้งานได้ที่นี่

ในการเลือกเครือข่ายเป้าหมาย ให้ป้อนหมายเลขดัชนีสำหรับเครือข่ายจากรายการเครือข่ายที่แสดงบนหน้าจอ

หากคีย์ตรงกับในพจนานุกรม คีย์นั้นจะหยุดและแสดงข้อความต่อไปนี้

เห็นได้ชัดว่าในกรณีของไฟล์พจนานุกรมขนาดใหญ่ โปรแกรมจะใช้เวลาทำงานมากขึ้น เนื่องจากจะตรวจสอบทุกรายการในพจนานุกรม

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

จอห์น เดอะ ริปเปอร์

John the Ripper เป็นเครื่องมือที่ใช้ในการถอดรหัสรหัสผ่าน Unix ที่ไม่รัดกุม เป็นเครื่องมือที่ใช้งานง่ายมากซึ่งเรียกใช้ในไฟล์รหัสผ่าน มันทำงานในสามโหมด

สถานะโสด

ตรวจสอบรหัสผ่านของฟิลด์ GECOS ทั้งหมด เช่น ตรวจสอบรหัสผ่านในข้อมูลบัญชีผู้ใช้ ชื่อผู้ใช้ ชื่อ นามสกุล ฯลฯ

sudo john --single / etc / เงา

โหมดรายการคำศัพท์

ตรวจสอบรหัสผ่านกับแต่ละรายการจากไฟล์คำศัพท์ (พจนานุกรม)

sudo john --wordlist=passlist.txt /etc/shadow

ที่นี่รหัสผ่านของผู้ใช้ 'user3' คือ "admin" John สามารถถอดรหัสได้เนื่องจากมีวลี 'admin' อยู่ในไฟล์ passlist.txt

โหมดที่เพิ่มขึ้น

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

การกำหนดค่าสำหรับสิ่งนี้สามารถเปลี่ยนแปลงได้ใน /etc/john/john.conf ไฟล์.

sudo john --ส่วนเพิ่ม /etc/shadow

Radare2

Radare2 (นามแฝง r2) เป็นเครื่องมือวิศวกรรมย้อนกลับสำหรับ Linux มันสามารถแยกชิ้นส่วน ดีบักไฟล์ไบนารีที่เรียกใช้งานได้ พร้อมรายการตัวเลือกมากมายเพื่อจัดการข้อมูลขณะใช้งานจริง

ให้เราดูวิธีการถอดโปรแกรม C ขนาดเล็กมากโดยใช้ r2 โปรดทราบว่าจำเป็นต้องมีความเข้าใจพื้นฐานของภาษาแอสเซมบลีเพื่อใช้เครื่องมือนี้

ขั้นแรก สร้างโปรแกรม C ขนาดเล็กในกลุ่มหรือโปรแกรมแก้ไขที่คุณเลือก

/*test.c*/ #include int main() { int i = 0; printf("%d\n", ผม); กลับ 0; }

อย่างที่คุณเห็น โปรแกรมนี้เก็บตัวเลข 0 ไว้ในตัวแปร และเข้าถึงตัวแปรเพื่อพิมพ์ออกมา

ตอนนี้เราจะรวบรวมโปรแกรม

gcc test.c -o ทดสอบ

ไฟล์เรียกทำงานถูกสร้างขึ้นในไดเร็กทอรีปัจจุบันที่มีชื่อ 'test' เรียกใช้เพื่อดูผลลัพธ์ '0'

./ทดสอบ

มาติดตั้ง r2 กันเถอะ ชื่อแพ็คเกจใน Ubuntu และการแจกแจงที่คล้ายกันคือ Radare2

sudo apt ติดตั้งเรดาร์2

บันทึก: สำหรับ Ubuntu เวอร์ชันเก่า (เวอร์ชัน 14.04 และต่ำกว่า) คุณต้องใช้ apt-get ควรใช้แทน ฉลาด.

ตอนนี้เราจะเริ่มพรอมต์คำสั่ง r2 ด้วยไฟล์ปฏิบัติการของเรา 'test'

r2 ทดสอบ

ในการรับรายการคำสั่งย่อย ให้ป้อน ?. เช่น. เพื่อรับรายการคำสั่งย่อยสำหรับ command เอ, เข้าสู่ ก?

ก?

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

ต่อไปเราจะย้ายไปที่ หลัก การทำงานของโปรแกรม โปรแกรม C ที่เรียกใช้งานได้ทุกโปรแกรมมี หลัก ทำหน้าที่เป็นจุดเริ่มต้น

หลัก

คุณจะเห็นว่าคำนำหน้าของพรอมต์เปลี่ยนที่อยู่หน่วยความจำปัจจุบัน กล่าวคือ ตอนนี้โปรแกรมกำลังค้นหาที่อยู่ของฟังก์ชัน หลัก.

ต่อไปเราจะใช้คำสั่งย่อย ไฟล์ PDFซึ่งจะพิมพ์ disassembly ของฟังก์ชัน เราเรียกมันว่า sym.mainซึ่งเป็นชื่อฟังก์ชันหลักในภาษาแอสเซมบลี

pdf sym.main

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

ตัวอย่างเช่น, mov dword [rbp-0x4], 0x0 คือการกำหนดค่า (0) ให้กับตำแหน่งหน่วยความจำ rbp – ตัวชี้ฐาน 0x4 — ขนาดหน่วยความจำที่จำเป็นสำหรับจำนวนเต็ม

เรามี โทร sym.imp.printfซึ่งจะพิมพ์เนื้อหาของ register เอกซ์นั่นคือค่า 0

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

pdf main > main.s

นี่คือภาพรวมของเครื่องมือแฮ็คบางตัวที่ใช้กันอย่างแพร่หลายที่สุดใน Linux หากคุณพบว่าหน้านี้มีประโยชน์ อย่าลืมแชร์ในชุมชนออนไลน์ที่คุณชื่นชอบ