ระบบปฏิบัติการที่ใช้ 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 หากคุณพบว่าหน้านี้มีประโยชน์ อย่าลืมแชร์ในชุมชนออนไลน์ที่คุณชื่นชอบ