
by r3nt0n

ตัวนี้คือ bopscrk โปรแกรมสร้าง wordlist สำหรับการโจมตีแบบเจาะจงเป้าหมาย หรือที่เรียกว่า targeted attack โดยมันจะรับข้อมูลส่วนตัวของเป้าหมายที่เราใส่เข้าไป แล้วนำคำเหล่านั้นมาประกอบรวมกันในทุกรูปแบบที่เป็นไปได้ พร้อมแปลงให้กลายเป็นรหัสผ่านที่น่าจะใช้ได้จริง ตัวโปรแกรมมีเงื่อนไขพิเศษคือต้องใช้ Python 3 ในการรัน แต่ถ้าใครยังติด Python 2.7 ก็มี branch รองรับอยู่
นอกจากนี้ยังมีโมดูลที่ชื่อว่า lyricpass ที่ช่วยให้เราค้นหาเนื้อเพลงของศิลปินที่เป้าหมายชอบ แล้วเอามาใส่ใน wordlist ได้ด้วย ซึ่งถ้าเป้าหมายเป็นคนที่ชอบใช้เนื้อเพลงหรือชื่อศิลปินเป็นรหัสผ่าน ตัวนี้ก็จะเพิ่มโอกาสเจอได้มากขึ้น
จุดเด่นของมันมีหลายอย่างที่น่าสนใจ อย่างแรกคือมีโหมด interactive ที่คุยกับโปรแกรมได้แบบ step by step มันจะถามข้อมูลเป้าหมายทีละช่อง ไม่ต้องจำคำสั่งยาวๆ แต่ถ้าใครชอบพิมพ์คำสั่งเองก็มี non-interactive mode ให้ใช้ได้เหมือนกัน อย่างที่สองคือรองรับการแปลงตัวอักษรแบบ case transform ซึ่งก็คือการเปลี่ยนพิมพ์เล็กพิมพ์ใหญ่ในหลายรูปแบบ เช่น ตัวแรกตัวใหญ่ ตัวสะกดตัวใหญ่ หรือแม้แต่ทุกตัวใหญ่หมดอย่างที่สามคือ leet transform ที่แปลงตัวอักษรเป็นตัวเลขแบที่แฮกเกอร์ชอบใช้ เช่น e เป็น 3 หรือ aเป็น 4 ซึ่งทั้งสองอย่างนี้ช่วยให้ wordlist ครอบคลุมรูปแบบรหัสผ่านที่คนชอบใช้กันมากขึ้น อย่างสุดท้ายคือสามารถปรับแต่ง charset และรูปแบบการแปลงผ่านไฟล์ config ได้เอง ไม่ต้องง้อ default ของโปรแกรม
นอกจากฟีเจอร์หลักแล้ว มันยังมี
ความสามารถเสริมที่เจ๋งอยู่หลายอย่าง อย่างเช่น extra combinationsที่จะเอาคำที่ให้ไปแล้วต่อท้ายด้วยตัวเลขหรือสัญลักษณ์ เช่น 123john หรือ john123 ซึ่งเปิดใช้งานมาให้แล้วตั้งแต่เริ่มต้น แต่ถ้าอยากได้ wordlist ที่ focused กว่านี้ก็ปิดได้ใน config อีกอย่างคือการจัดการกับเนื้อเพลงที่ดึงมาจาก lyricpass เราสามารถเลือกได้ว่าจะเอาวงเล็บออกจากเนื้อเพลงไหม จะเอาตัวย่อจากแต่ละคำในเนื้อเพลงมาใช้ไหม หรือจะแยกคำในชื่อศิลปินและเนื้อเพลงออกมาเป็นคำๆ แล้วเอามาประกอบด้วยกันไหม รวมถึงการแทนที่ช่องว่างด้วยตัวอักษรหรือสตริงที่เรากำหนดเองได้อีก ซึ่งทั้งหมดนี้ช่วยให้wordlist มีความหลากหลายมากขึ้นตามสไตล์ที่เป้าหมายอาจจะใช้ตัวโปรแกรมเขียนด้วย Python 3 เป็นหลัก แล้วใช้ไลบรารี requests สำหรับดึงข้อมูลเนื้อเพลงจากอินเทอร์เน็ต และ alive-progress สำหรับแสดง progress bar ตอนทำงาน ซึ่งดีตรงที่เรารู้ว่ามันทำไปถึงไหนแล้ว โดยเฉพาะตอนสร้าง wordlist ที่ใหญ่ๆ สถาปัตยกรรมการทำงานของมันคือการรับ input เป็นคำหรือข้อมูลส่วนตัว แล้วนำไปผ่านกระบวนการ combine กันในทุกรูปแบดที่เป็นไปได้ตามจำนวนคำที่เรากำหนดผ่านตัวเลือก -n จากนั้นก็ผ่านการ transform ด้วย case และ leet ตามที่เปิดใช้งานไว้ สุดท้ายก็เขียนลงไฟล์ output ที่เราระบุ ทั้งหมดนี้ควบคุมผ่านไฟล์ bopscrk.cfg ได้หมด ซึ่งทำให้มัน flexible มากในการปรับแต่งพฤติกรรมโปรแกรมนี้เหมาะกับ penetration tester หรือ ethical hacker ที่กำลังทำ security assessment แล้วต้องการทดสอบความแข็งแกร่งของรหัสผ่านที่ผู้ใช้ในบริษัทหรือระบบใช้อยู่ ใช้กรณีที่เรามีข้อมูลส่วนตัวของเป้าหมายบ้างแล้ว เช่น ชื่อ นามสกุล วันเกิด ชื่อคู่รัก ชื่อสัตว์เลี้ยง หรือศิลปินที่ชอบ แล้วอยากรู้ว่าเป้าหมายจะใช้รหัสผ่านที่ประกอบจากข้อมูลเหล่านี้หรือไม่ นอกจากนี้ยังเหมาะกับ CTF player ที่ต้องการ wordlist ที่ focused สำหรับ challenge ที่ต้องเดารหัสผ่าน หรือแม้แต่ forensic analyst ที่ต้องการ crack password จากไฟล์ที่ได้มา แต่รู้ว่าเจ้าของเป็นคนที่มี pattern ในการตั้งรหัสผ่านชัดเจน ใช้งานได้ทั้งบน BlackArch Linux ที่มีแพ็คเกจนี้อยู่แล้ว หรือจะติดตั้งเองบนระบบอื่นก็ได้
ข้อดีที่โดดเด่นเมื่อเทียบกับ wordlist generator ตัวอื่นๆ คือมัน focus ที่ targeted attack จริงๆไม่ใช่แค่เอาคำมาต่อกันแบบสุ่มๆ แต่มันเข้าใจ pattern ที่คนทั่วไปใช้ตั้งรหัสผ่าน เช่น การใช้ตัวเลขต่อท้าย การใช้ตัวคั่นแบบ _ หรือ - การเขียน leet speak หรือการสลับพิมพ์เล็กพิมพ์ใหญ่ ซึ่งทำให้ wordlist ที่ได้มีความ relevant สูงกว่าการใช้ wordlist ทั่วไปอย่าง rockyou.txt ที่มีแต่รหัสผ่านเก่าๆ ที่อาจจะไม่ตรงกับเป้าหมายของเรา อีกอย่างคือความสามารถในการดึงเนื้อเพลงมาใช้ ซึ่งเป็นฟีเจอร์ที่หายากในเครื่องมือประเภทนี้ ส่วนการที่มันมีทั้ง interactive และ command-line mode ก็ทำให้ใช้งานได้หลากหลายสถานการณ์ ไม่ว่าจะเป็นการใช้ครั้งเดียวหรือเอาไปเขียน script automate ต่อ
อย่างไรก็ตาม มี
ข้อจำกัดที่ควรรู้ก่อนใช้งาน อย่างแรกคือตัวเลือก -n ที่กำหนดจำนวนคำที่จะประกอบกัน ถ้าตั้งค่าสูงเกินไป wordlist จะโตมหาศาลและอาจกินพื้นที่ดิสก์มหาศาล ทีมแนะนำให้ใช้ค่าระหว่าง 2 ถึง 5อย่างที่สองคือการเปิด recursive_leet หรือ extensive_case ร่วมกับ --max ที่สูงมากๆ อาจทำให้โปรแกรมทำงานนานผิดปกติ หรือกินทรัพยากรเยอะเกินไป ซึ่งต้องระวังในการใช้งาน อย่างสุดท้ายคือตอนใช้ non-interactive mode ต้องระวังการ escape special characters อย่างเครื่องหมายคำพูดหรืออัญประกาศ ไม่งั้นคำสั่งอาจพังได้
สรุปแล้ว bopscrk เป็นเครื่องมือที่ควรหยิบมาใช้ตอนที่เรามีข้อมูลเป้าหมายบางส่วนอยู่ในมือแล้ว และต้องการสร้าง wordlist ที่มีโอกาสเจอรหัสผ่านสูงกว่าการใช้ wordlist ทั่วไป ถ้าเพื่อนกำลังทำ penetration testing หรือทดสอบความปลอดภัยของระบบอยู่ ลองใช้ตัวนี้ดู โดยเฉพาะถ้ารู้ว่าเป้าหมายเป็นคนที่ชอบใช้ข้อมูลส่วนตัวหรือเนื้อเพลงในการตั้งรหัสผ่าน รับรองว่า wordlist ที่ได้จะ focused และมีประสิทธิภาพกว่าวิธีอื่นๆ แน่นอน แถมติดตั้งง่ายแค่ pip install bopscrk ก็ใช้ได้เลย