ทดสอบ Security Awareness ในองค์กรด้วย Gophish

4 ตุลาคม 2022

NT cyfence
NT cyfenceทีมงาน NT cyfence ที่พร้อมให้คำปรึกษา และ ดูแลความปลอดภัยให้กับทุกองค์กร อย่างครบวงจร ด้วยทีมงานมืออาชีพ

“Uber จ่ายเงินปีละ 75 ล้านบาท แค่ใช้ Slack Enterprise (โปรแกรม Chat) และจ่ายเงินงบไอที (ปีละ) 7,600 ล้านบาท แต่จ่ายค่าช่องโหว่ที่ร้ายแรงที่สุดเพียงแค่ 5 แสนบาท?  (ในโครงการ Bug Bounty รับแจ้งช่องโหว่ HackerOne ของ Uber)  ถ้าเทียบกันแล้ว เงินค่าแจ้งช่องโหว่นี้แทบไม่มีค่าอะไรเลย” – Tea Pot เด็กอายุ 18 ปี จากกลุ่มแฮกเกอร์ Lapsus$ ที่ แฮกแทบทุกอย่างในระบบไอทีของ Uber (บริษัทที่มีมูลค่า 2.2 ล้านล้านบาท)

บทสนทนา Telegram ที่อ้างว่าฝ่ายข้อความด้านซ้ายเป็นแฮกเกอร์ที่แฮก Uber

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

หนึ่งในข่าวดังประจำเดือน กันยายน ปี 2565 ที่ผ่านมานี้ คงหนีไม่พ้น ข่าวของ แฮกเกอร์อายุ 18 ปี ที่ใช้นามแฝงว่า Tea Pot และอ้างว่ามาจากกลุ่มแฮกเกอร์ชื่อดังที่ประวัติโชกโชนอย่าง Lapsus$ สามารถเจาะเข้าระบบของ Uber (บริษัทเรียกรถเหมือน Grab ในบ้านเรา) และ RockStar Games (บริษัทผู้สร้างเกมดังอย่าง Grand Theft Auto)

ความน่าสนใจ ของกรณีการแฮก Uber นี้มีหลัก ๆ 2 ข้อคือ

1. Tea Pot เจาะ Uber เข้าไปได้ ลึก มาก ๆ เรียกได้ว่าแทบทุกอย่าง ตั้งแต่บัญชี AWS Root, บัญชีผู้ดูแลระบบของ VPN/G-Suite/Slack/SentinelOne/HackerOne/VMWare vSphere เป็นบัญชีผู้ดูแลระบบสูงสุด เกือบทุกระบบหลัก ๆ ของ Uber ! แถมพก Screenshot สุดจะเหมือนของจริง กลับมาอวดชาวเน็ตด้วยว่า เข้าไปได้จริง ๆ และ Uber ก็ยืนยันข่าวเรียบร้อยแล้วว่าโดนแฮกจริง (https://www.uber.com/newsroom/security-update)

2. Tea Pot ไม่ได้ใช้เทคนิคอันแพรวพราวราวแฮกเกอร์เบอร์หนึ่งของโลก แต่กลับใช้วิธีการดังนี้

2.1 ซื้อบัญชีและรหัสผ่านของพนักงานสัญญาจ้างของ Uber (ที่น่าจะโดนแฮกมาอีกที) จากเว็บขายข้อมูลใต้ดิน (Dark Web)

2.2 ปรากฏว่าตอนจะเอาบัญชีมาใช้เข้าสู่ระบบ VPN ดันติดการยืนยันตัวตนหลายขั้นตอน (Multi-Factor Authentication – MFA) ที่ส่ง คำขอเข้าสู่ระบบไปที่แอปบนโทรศัพท์ของพนักงานสัญญาจ้างของ Uber ที่ตกเป็นเหยื่อ

2.3 แฮกเกอร์ เลยส่งคำขอ MFA นั้นเข้าสู่แอปเหยื่อถี่ ๆ และ ใช้วิธีการทักข้อความผ่าน WhatsApp และโทรเข้าไป หลอกเหยื่อว่าตนเองเป็น พนักงานฝ่ายไอทีของ Uber ตอนนี้ระบบมีปัญหา ต้องแก้ไขโดยการกดยอมรับคำยืนยันขอเข้าสู่ระบบ แถมทักไปตอนเวลาตี 1 กำลังง่วง ๆ งง ๆ เลยทีเดียว

เมื่อเหยื่อหลงเชื่อและกด ยอมรับคำขอ MFA นั้นก็ทำให้แฮกเกอร์ เพิ่มอุปกรณ์ตัวเองสำหรับยืนยัน MFA แทนเหยื่อได้ และหลุดเข้าไปในระบบเครือข่าย Uber ได้ทันที ถัดจากนั้น ทางแฮกเกอร์อ้างว่า ได้เข้าไปทำการค้นหา ไฟล์เซิร์ฟเวอร์ภายใน (SMB File Share) และเจอไฟล์เซิร์ฟเวอร์ที่เข้าได้แถมมี โค้ด PowerShell ที่ฝังรหัสผ่าน ที่มีสิทธิ์สูงมาก ๆ ของระบบ PAM ชื่อ Thycotic (PAM ย่อมาจาก Privileged Access Management เอาไว้บริหารจัดการบัญชีสิทธิ์สูงในองค์กร แต่แฮกเกอร์ ยึด PAM ไปได้ เลยได้สิทธิ์ที่สูงมาก ๆ เหมือนที่ PAM มีเอาไว้ใช้ปกติ)

จากนั้นความเสียหายก็เกิดขึ้นในระบบเครือข่ายของ Uber คือรหัสผ่านนั้นเอาไปใช้เข้า DA (Domain Admins) ได้ เข้าบัญชีสิทธิ์ผู้ดูแลระบบอื่น ๆ ได้

รูปยืนยันการแฮก ระบบในสิทธิ์ผู้ดูแลระบบ Uber ของระบบ AWS/G-Suite/VMWare vSphere/Slack ที่แฮกเกอร์นำมายืนยันผ่านทาง Telegram

เทคนิคที่ Tea Pot ใช้เรียกว่าการหลอกลวงเหยื่อให้มอบข้อมูลหรือกระทำการใด ๆ ที่ทำให้แฮกเกอร์เข้าสู่ระบบได้ หรือว่า Social Engineering นั้นเอง ที่แม้แต่เด็กอายุ 18 ปี ก็สามารถแฮกบริษัทมูลค่าระดับ 2.2 ล้านล้านบาท ได้ แม้ว่าจะมีการติดตั้งระบบดูแลและป้องกันความปลอดภัยระบบไอทีอย่างแน่นหนา แล้วก็ตาม โดยหนึ่งในรูป Screenshot ที่แฮกเกอร์นำมาแสดงคือ สามารถเข้าไปควบคุม Dashboard ของระบบ Endpoint Security (EDR) ชื่อดังอย่าง SentinelOne ที่ Uber ใช้งานอยู่ได้ด้วย

หลังจากเหตุการณ์ที่เกิดขึ้นก็บังเอิญว่า Uber ประกาศรับสมัครงานด้านความปลอดภัยระบบไอทีจำนวนมาก จนชาวเน็ตต่างแอบแซวกันขำ ๆ ว่า รับเพิ่มเติมมาช่วยเสริมทัพความปลอดภัย… หรือไม่เคยมีมาก่อนกันแน่?

ลองมองในมุมย้อนกลับกันว่าถ้าเราเป็น Uber เราอาจจะสามารถที่จะ.. สร้างความระมัดระวังด้านความปลอดภัยระบบไอที หรือ Security Awareness ให้กับพนักงานในองค์กรเพิ่มเติม ก็จะช่วยลดความเสี่ยง ลดโอกาสที่พนักงาน จะพลาดไปเชื่อและกดยืนยัน MFA ให้แฮกเกอร์ เข้ามาสวมรอยบัญชีตัวเองได้หรือเปล่านะ?

ก่อนเราจะมาฟังกันว่า เราจะสร้างและทดสอบ Security Awareness ในองค์กรง่าย ๆ ยังไง

เรามาทำความเข้าใจกับพื้นฐานกันอีกสักเล็กน้อย

มารู้จักกับ MITRE ATT&CK และจุดเริ่มต้นการแฮกเข้าสู่ระบบ (Initial Access) 

เราสามารถที่จะจำแนกและอธิบายกระบวนการ กลยุทธ์ (Tactic) และเทคนิค (Technique) การเจาะระบบของแฮกเกอร์ (Threat Actor) ในแต่ละครั้งได้โดยการใช้ ฐานความรู้ชื่อว่า MITRE ATT&CK (https://attack.mitre.org)

รูปจาก: https://learn.microsoft.com/en-us/advanced-threat-analytics/ata-threats 

ใน MITRE ATT&CK จะมีทั้งหมด 14 กลยุทธ์ และแต่ละกลยุทธ์จะระบุถึงเทคนิคแยกย่อยไปอีก

  1. Reconnaissance (TA0043) กลยุทธ์ที่ใช้หาข้อมูลเกี่ยวกับเหยื่อ
  2. Resource Development (TA0042) การเตรียมระบบ บัญชี มัลแวร์ และข้อมูลต่าง ๆ ก่อนการแฮก
  3. Initial Access (TA0001) จุดเริ่มต้นของการแฮกเจาะเข้าไปในระบบของเหยื่อ
  4. Execution (TA0002) กลยุทธ์ที่แฮกเกอร์ใช้กำหนดให้โค้ดหรือคำสั่งทำงานบนเครื่องเหยื่อ
  5. Persistence (TA0003) กลยุทธ์ที่แฮกเกอร์ใช้ทำให้ตัวเอง อยู่ในระบบนั้นนานมากขึ้น
  6. Privilege Escalation (TA0004) กลยุทธ์ที่แฮกเกอร์ใช้ในการยกระดับสิทธิ์ในระบบ
  7. Defense Evasion (TA0005) กลยุทธ์ที่แฮกเกอร์ใช้ หลีกเลี่ยงการถูกตรวจจับหลังแฮกเครื่องเหยื่อ
  8. Credential Access (TA0006) กลยุทธ์ที่ใช้ในการขโมย บัญชีผู้ใช้งานและรหัสผ่าน เพิ่มเติม
  9. Discovery (TA0007) กลยุทธ์ที่แฮกเกอร์ใช้หาข้อมูลหรือระบบเพิ่มเติม ในการเข้าไปต่อลึก ๆ
  10. Lateral Movement (TA0008) กลยุทธ์ที่แฮกเกอร์ใช้ข้ามจากระบบหนึ่งไปอีกระบบหนึ่ง
  11. Collection (TA0009) กลยุทธ์ที่แฮกเกอร์ใช้รวบรวมข้อมูลเป้าหมายที่ต้องการ
  12. Command and Control (TA0011) กลยุทธ์ที่แฮกเกอร์ใช้เชื่อมต่อและควบคุมระบบที่แฮกได้
  13. Exfiltration (TA0010) กลยุทธ์ที่แฮกเกอร์ใช้นำข้อมูลเป้าหมายที่ต้องการออกมาที่ระบบตนเอง
  14. Impact (TA0040) กลยุทธ์ที่แฮกเกอร์ใช้แก้ไข หยุดยั้ง หรือทำลายระบบเป้าหมาย

โค้ดในวงเล็บจะใช้อ้างอิง กลยุทธ์เช่น Initial Access ใช้โค้ดอ้างอิงกลยุทธ์ (TA) คือ TA0001 และในแต่ละกลยุทธ์ ก็จะมีเทคนิค ที่ใช้ในกลยุทธ์นั้น ๆ อีก เช่น เทคนิค Phishing ที่ใช้โค้ดอ้างอิงเทคนิค (T) คือ T1566 นอกเหนือจาก เทคนิคหลัก ๆ ทั้งหลาย แล้วก็จะมีเทคนิคย่อย ๆ อีกจะเป็นโค้ดอ้างอิงเทคนิคตามด้วยจุด (.) และลำดับของเทคนิคย่อยที่มีไปเรื่อย ๆ

ตัวอย่างเทคนิค Phishing (T1566) ก็จะแบ่งแยกย่อยออกเป็น 3 เทคนิคย่อย ได้แก่ 

  • Spearphishing Attachment (T1566.001) คือการแนบไฟล์อันตรายไปพร้อมกับอีเมล 
  • Spearphishing Link (T1566.002) การส่งลิงก์อันตรายไปพร้อมกับอีเมล 
  • Spearphishing via Service (T1566.003) คือการใช้บริการสาธารณะในการส่งลิงก์หรือไฟล์ให้เหยื่อ เช่นผ่านทางข้อความเฟซบุ๊กหรือประกาศรับสมัครงานปลอม

ตามที่สามารถเปิดดูได้จากลิงก์ของเทคนิค Phishing (T1566) https://attack.mitre.org/techniques/T1566/ 

และถ้าหากเราย้อนกลับไปดูข้อมูลของกลุ่มแฮกเกอร์ชื่อดัง ที่ถูกวิเคราะห์และเปิดเผยเทคนิคออกมาหลาย ๆ กลุ่มนอกเหนือจาก Lapsus$ อย่าง APT29, Gamaredon และ Conti จะพบ จุดร่วมกันอย่างหนึ่งคือ วิธีการที่กลุ่มแฮกเกอร์เหล่านี้ใช้ในกระบวนการแฮกแนว Social Engineering มีความเกี่ยวข้องกับการทำ Phishing (T1566) ทั้งสิ้น

การทำ Phishing (T1566) คือการที่แฮกเกอร์ส่งข้อความหลอกลวงไปหาเหยื่อ ให้เหยื่อทำอะไรบางอย่าง เพื่อทำให้แฮกเกอร์เข้าสู่ระบบของเหยื่อได้สำเร็จ เช่น กรอกรหัสผ่าน หรือติดตั้งไฟล์มัลแวร์ โดยถ้าหากเป็นการเจาะจงเหยื่อแบบบุคคลหรือกลุ่มที่วางแผนมาอย่างดีจะเรียกว่าการทำ Spearphishing (การทำ Phishing ปกติ อาจจะหว่านแหกว้าง ๆ ไม่สนว่าเหยื่อที่ถูกหลอก ที่แฮกได้เป็นใครตั้งแต่เริ่มต้น พอแฮกได้แล้วค่อยว่ากันว่าเหยื่อเป็นใครมาจากไหน)

ตัวอย่างเช่นกลุ่มแฮกเกอร์ NOBELIUM หรือในอีกชื่อหนึ่งว่า APT29 ที่ทาง ไมโครซอฟต์ได้ติดตามและวิเคราะห์ข้อมูลการแฮก (https://www.microsoft.com/security/blog/2021/05/27/new-sophisticated-email-based-attack-from-nobelium/) ซึ่งเชื่อกันว่าเป็นกลุ่มแฮกเกอร์ของ หน่วยข่าวกรองต่างประเทศของรัสเซีย (Russia’s Foreign Intelligence Service – SVR) มีการใช้เทคนิค Phishing (T1566) ในกลยุทธ์การทำ Initial Access (TA0001)

โดยผู้อ่านสามารถใช้ฟังก์ชัน MITRE ATT&CK® Navigator ผ่านเว็บ เพื่อจับคู่เทคนิคที่กลุ่มแฮกเกอร์ APT29 ใช้ในกลยุทธ์ต่าง ๆ ได้ โดยมีคนทำไว้เรียบร้อยแล้วที่ลิงก์ https://mitre-attack.github.io/attack-navigator//#layerURL=https%3A%2F%2Fattack.mitre.org%2Fgroups%2FG0016%2FG0016-enterprise-layer.json

จะพบว่าในกลยุทธ์ Resource Development (TA0042) ทางกลุ่มแฮกเกอร์ APT29 มีการแฮก บัญชีของอีเมล เพื่อใช้ในกลยุทธ์ Initial Access (TA0001) ถัดไป

อ้างอิงจากแหล่งข่าวเว็บไซต์ npr.org (https://www.npr.org/2021/05/28/1001201118/head-of-cyber-security-firm-that-detected-usaid-hack-explains-what-happened) ที่ สัมภาษณ์ Steven Adair ผู้เชี่ยวชาญด้านความปลอดภัยระบบไอที จากบริษัท Volexity (ที่เคยวิเคราะห์การแฮก SolarWinds Orion ของกลุ่ม APT29) บอกว่า แฮกเกอร์กลุ่ม APT29 นี้ได้แฮกบัญชีขององค์การเพื่อการพัฒนาระหว่างประเทศ สหรัฐอเมริกา (United States Agency for International Development – USAID) ที่ใช้สำหรับเข้าสู่ระบบเว็บไซต์ Constant Contact (https://www.constantcontact.com) ซึ่งเว็บนี้เป็นบริการสำหรับการส่งออกอีเมลจำนวนมาก เพื่อการตลาดหรือการโฆษณา ที่คาดว่า USAID จริง ๆ ใช้ส่งออกอีเมลเพื่อประกาศข่าว แก่ประชาชนทั่วไป แต่กลุ่มแฮกเกอร์ ที่แฮกบัญชี USAID ของ Constant Contact ได้ เลย เอามาใช้เป็นหนึ่งในกลยุทธ์ในการเจาะระบบองค์กรอื่น ๆ ต่อไป โดยอาศัยความน่าเชื่อถือของชื่ออีเมลที่ถูกส่งจาก USAID ตัวจริง

ถัดจากนั้น จะพบว่ามีการใช้ เทคนิคย่อยทั้งหมดของ เทคนิค Phishing (T1566) ในกลยุทธ์ Initial Access (TA0001) เพื่อทำ Spearphishing (ถ้ายังจำได้ คือการทำ Phishing แบบเจาะจงกลุ่มเป้าหมายนั่นเอง)

ตามในรูป MITRE ATT&CK® Navigator ด้านล่าง จะพบว่าหนึ่งใน กลยุทธ์ Initial Access (TA0001) ที่ใช้คือ เทคนิคย่อย Spearphishing

ตัวอย่างอีเมล Phishing ของกลุ่ม Lapsus$ ที่ส่งมาจาก Constant Contact ก็ทำมาเนียนเหลือเกิน ตามในรูปด้านล่างนี้

ซึ่งเมื่อเหยื่อได้รับอีเมล Phishing (T1566) ที่ใช้ทำกลยุทธ์ Initial Access (TA0001) ก็ใช้เทคนิคย่อยหลายอย่าง ในการเลี่ยงการถูกตรวจจับบนเครื่อง Windows ของเหยื่อ ตาม กลยุทธ์ Defense Evasion (TA0005) ตามที่เอาไปจับคู่กับเทคนิคในฐานความรู้ MITRE ATT&CK ได้ตัวอย่างเช่น

  • แนบไฟล์ .html มาในอีเมล และฝังไฟล์ ISO Image (.iso) ข้างใน .html อีกที โดยการใช้เทคนิคย่อย HTML Smuggling (T1027.006) ของเทคนิค Obfuscated Files or Information (T1027) เพื่อใช้ในการเลี่ยงการถูกตรวจเจอว่าเป็นมัลแวร์ (ไฟล์ .iso จะถูกดาวน์โหลดลงเครื่องอัตโนมัติหลังจากเปิดไฟล์ .html)
  • ใช้ไฟล์ ISO Image เพื่อใช้เทคนิคย่อย Mark-of-the-Web Bypass (T1553.005) ของเทคนิค Subvert Trust Controls (T1553) เพื่อหลบ Pop-up การแจ้งเตือนไฟล์อันตรายจากอินเทอร์เน็ตของ Windows

จากรูปด้านล่างนี้ หลังจากเปิดไฟล์ .iso ก็จะเจอ ไฟล์ข้างในที่มี ไอคอน หน้าตาคล้ายโฟลเดอร์ชื่อว่า Reports แต่แท้จริงแล้วคือไฟล์นามสกุล .lnk ที่ฝังคำสั่งอันตรายไว้ด้านใน เพื่อใช้โปรแกรม rundll32.exe ไปเรียกใช้โค้ดในไฟล์ซ่อนชื่อ Documents.dll อีกที

ถ้าเหยื่อเผลอกดเปิดไฟล์นี้ ก็จะรันโค้ด (Beacon ของ Cobalt Strike) ที่กลุ่มแฮกเกอร์ APT29 ฝังมา ทำให้ยึดเครื่องได้ทันที ตามกลยุทธ์ Execution (TA0002) ในเทคนิคย่อย Malicious File (T1204.002) ของเทคนิค User Execution (T1204)

หมายเหตุ: แต่ละบริษัทที่วิเคราะห์และติดตามกลุ่มแฮกเกอร์ อาจจะใช้ชื่อเรียกไม่เหมือนกันอย่างกลุ่ม APT29 Volexity จะเรียกกลุ่มนี้ว่า Dark Halo ส่วน Microsoft จะเรียกว่า NOBELIUM และ CrowdStrike เรียกว่า StellarParticle เป็นต้น โดยใน MITRE ATT&CK หมวด Groups สรุปมาให้แล้ว (https://attack.mitre.org/groups/G0016/)

จะเห็นว่าเราสามารถที่จะ วิเคราะห์ กลยุทธ์และเทคนิคการแฮกต่าง ๆ ได้ตาม ฐานความรู้ MITRE ATT&CK และในกรณีกลุ่มแฮกเกอร์ APT29 นี้กลยุทธ์ Initial Access (TA0001) หลัก ๆ ก็มาจากเทคนิคการส่ง Phishing (T1566) นั่นเอง

การทดสอบ Security Awareness ในองค์กรด้วย Phishing Assessment

ในองค์กรนอกจากเราจะมี ซอฟต์แวร์และฮาร์ดแวร์ด้านความปลอดภัยระบบไอที ที่ดี มีกระบวนการและนโยบายที่ดี แล้วนั้น อีกปัจจัยหนึ่งที่สำคัญ จากบทเรียนของการถูกแฮกของ Uber หรือเทคนิคการแฮกแบบ Phishing ตาม MITRE ATT&CK นั้นก็คือ การตระหนักถึงความปลอดภัยระบบไอที หรือ Security Awareness ของ พนักงานภายในองค์กรเอง ที่จะช่วยรับบทเป็นด่านหน้าในการตรวจจับ ป้องกัน หรือรับมือกับภัยคุกคามรูปแบบต่าง ๆ

การเพิ่ม Security Awareness ให้กับพนักงานนั้นก็ทำได้หลายวิธีไม่ว่าจะเป็น

  1. การอบรม Security Awareness ในรูปแบบการบรรยาย หรือกิจกรรมให้พนักงานทราบถึงภัยคุกคามในรูปแบบต่าง ๆ แนวโน้มการโจมตีใหม่ ๆ และข้อควรปฏิบัติ รวมถึงข้อควรเลี่ยง เพื่อความปลอดภัยในการใช้งานระบบสารสนเทศเบื้องต้น
  2. การทำ Cyber Drill เพื่อจำลองเหตุการณ์ภัยคุกคามทางไซเบอร์ และทบทวนซักซ้อมขั้นตอนแผนการปฏิบัติเมื่อเกิดภัยคุกคาม ตามคู่มือที่มี
  3. การจัดการแข่งขันด้านความปลอดภัยไอทีในรูปแบบ CTF (Capture The Flag) โดยมีการจำลองเครื่องเซิร์ฟเวอร์โจทย์ที่มีช่องโหว่ มาให้พนักงานลองทดสอบแฮกจริง เพื่อทำความเข้าใจช่องโหว่ต่าง ๆ
  4. การทำ Phishing Assessment เพื่อจำลองสถานการณ์ การถูกโจมตีด้วยเทคนิค Phishing และประเมินความเสี่ยงส่วนบุคคลของพนักงาน เพื่อสร้างความตระหนักในภัยคุกคามรูปแบบ Phishing โดยการทดสอบจะเป็นการส่งอีเมลปลอม ที่คล้ายอีเมลของจริง ไปหากลุ่มพนักงานที่กำหนด จากนั้นตรวจสอบและเก็บข้อมูลเชิงสถิติว่ามีพนักงานกลุ่มใด ทำการคลิกเปิดอีเมลปลอม หรือดาวน์โหลดไฟล์แนบ หรือ กรอกรหัสผ่านเข้าไปในเว็บจากอีเมลปลอม ที่ถูกส่งเพื่อการจำลองสถานการณ์

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

ข้อสำคัญที่ควรพึงระวังก่อนการเรียนรู้หรือทำ Phishing Assessment มีดังนี้

  • การทำ Phishing Assessment ภายในองค์กร จำเป็นต้องได้รับอนุญาต จากผู้บริหาร หรือผู้รับผิดชอบที่มีอำนาจภายในองค์กรให้ทำได้ อย่างถูกต้องตามกฎหมายเท่านั้น ถ้าหากกระทำการทดสอบ Phishing Assessment โดยไม่ได้รับอนุญาต อาจเข้าข่ายผิดกฎหมายและอาจมีโทษตามกฎหมายได้
  • การส่งเว็บหรืออีเมล Phishing ไปหาบุคคลอื่น ๆ นอกเหนือขอบเขตจากการทำ Phishing Assessment ภายในองค์กรเพื่อเพิ่มหรือทดสอบ Security Awareness อาจเข้าข่ายผิดกฎหมายและอาจมีโทษตามกฎหมายได้
  • ควรระมัดระวังในส่วนของการติดตั้งระบบ, หมายเลขไอพีและชื่อเว็บ (Domain) ที่ใช้ในการทำ Phishing Assessment เนื่องจากมีความสุ่มเสี่ยงที่จะถูกระงับการให้บริการจากผู้ให้บริการ VPS หรือ Cloud โดยทั่วไปได้ ไม่ควรใช้ Infrastructure หรือบัญชี VPS/Cloud ที่ติดตั้งระบบที่ใช้ทำ Phishing Assessment เดียวกันกับระบบอื่น ๆ ขององค์กรโดยเฉพาะอย่างยิ่งระบบที่เปิดใช้งานจริง (Production) และควรตรวจสอบนโยบาย ของ Infrastructure ที่ใช้งาน ว่าอนุญาตให้ใช้งานในกรณีการติดตั้งระบบ Phishing Assessment ได้หรือไม่
  • หมายเลขไอพีและชื่อเว็บ (Domain) ที่ใช้ในการทำ Phishing Assessment มีโอกาสอาจถูกแบน โดยผู้ให้บริการระบบอีเมล หรือระบบตรวจจับเว็บปลอมของเว็บเบราว์เซอร์ต่าง ๆ ได้
  • ควรระมัดระวังในส่วนของ เนื้อหาอีเมล Phishing ที่จะใช้ในการทดสอบ ที่อาจพาดพิงถึงบุคคลที่สาม ให้ได้รับความเสียหายได้ หรือถ้าหากมีการสร้างหน้าเว็บปลอม ควรมีการตั้งค่าให้สามารถเข้าถึงได้เฉพาะกลุ่มบุคคลภายในองค์กรเท่านั้น เช่นการทำ IP Allowlisting เป็นหมายเลขไอพีต้นทางจากภายในองค์กร เพื่อป้องกันการเข้าถึงจากบุคคลภายนอกที่ไม่เกี่ยวข้องกับการทดสอบ
  • ผลชี้วัดจากการทำ Phishing Assessment เป็นข้อมูลเชิงสถิติ เพื่อใช้ประกอบการสร้างความระมัดระวังด้านความปลอดภัยระบบไอทีเท่านั้น ไม่ควรใช้อ้างอิงเพื่อทดแทนการเพิ่ม Security Awareness ในรูปแบบอื่น ๆ เนื่องจากหลายปัจจัยที่อาจไม่สามารถควบคุมได้ เช่น บางครั้งผู้ใช้งานอาจไม่ได้ตรวจสอบอีเมลในระยะเวลาการทดสอบ แต่ในเหตุการโจมตีจริง อาจขาดความตระหนักและเปิดอีเมล Phishing ของจริงก็เป็นได้ รวมถึงเนื้อหาอีเมลที่มีประสิทธิภาพในการหลอกผู้รับอีเมลได้แตกต่างกันไป ในแต่ละสถานการณ์ที่การเกิด Phishing จริง ๆ

อีกสิ่งสำคัญที่ผู้อ่านควรรู้คือ การเปิดใช้งาน Multi-Factor Authentication (MFA) เช่นการส่งหมายเลข OTP ไปทางหมายเลขโทรศัพท์หรือทางอีเมล ไม่ได้ช่วยป้องกันการถูก Phishing สมบูรณ์แบบ (แต่ช่วยลดความเสี่ยงได้) เพราะ แฮกเกอร์สามารถ ทำระบบและหน้าเว็บเพื่อ หลอกขอการยืนยัน MFA นั้น ๆ จากเหยื่อ และนำไปใช้กับเว็บปลายทางของจริงได้อย่างอัตโนมัติ เรียกว่าการทำ Real-Time Phishing (RTP) และก็มีโปรแกรมแจกฟรีอย่าง evilginx2 ที่ใช้ในการโจมตี RTP ที่ใคร ๆ ก็ไปดาวน์โหลดมาลองทำได้ง่าย ๆ

ซึ่งเทคนิคการแฮกแบบ RTP สามารถลดความเสี่ยงได้โดยการใช้ MFA ด้วยอุปกรณ์ Token ตามมาตรฐาน FIDO Universal 2nd Factor Authentication (FIDO U2F) มาลงทะเบียนและให้ผู้ใช้งานเสียบกับเครื่องและแตะเบา ๆ ที่ปุ่มด้านบน เพื่อยืนยันตัวตน (เป็น Authentication Factor ในกลุ่ม Something You Have)

แต่อย่างไรก็ตาม เมื่อปี 2021 มีผลงานวิจัยชื่อ “Is Real-time Phishing Eliminated with FIDO? Social Engineering Downgrade Attacks against FIDO Protocols” ในงานสัมมนา Usenix ออกมาบอกว่าเอาจริง ๆ FIDO U2F ไม่ได้ป้องกัน RTP ได้สมบูรณ์แบบขนาดที่เค้าเคลมกัน เพราะเว็บทุกเว็บที่รองรับ FIDO U2F ที่สำรวจมา จะรองรับทางเลือก MFA ที่ปลอดภัยน้อยกว่าอยู่เสมอ ทำให้ ถูกแฮกเกอร์ทำ Downgrade Attack โดยการสับเปลี่ยนไปให้เหยื่อกรอก MFA ด้วยวิธีการอื่นแทนได้เช่น หมายเลข OTP

จากตัวอย่างรูปด้านล่าง แสดงรูปแบบการโจมตี Downgrade Attack โดย

  • False sense of security: ในกล่องสีส้ม เป็นกระบวนการที่ระบบพยายามจะทำการยืนยันตัวตนด้วย FIDO U2F
  • Downgrade: เป็นการที่แฮกเกอร์ ที่ทำระบบ Phishing อยู่ตรงกลาง (Man-in-the-Middle) ทำการ ขอเปลี่ยนรูปแบบการยืนยันตัวตนจาก FIDO U2F เป็นรูปแบบที่ไม่ได้ป้องกัน จาก Server (ระบบจริง) ซึ่งจากการวิจัยพบว่าทุกเว็บที่รองรับ FIDO U2F รองรับ Fallback ไปรูปแบบอื่นเสมอ
  • Typical Phishing: ทำการ Phishing เพื่อ Bypass แบบ RTP ตามปกติ โดยเหยื่อ 55% จากการวิจัยที่ทดสอบ 51 คน พบว่า ไม่รู้ตัวว่าโดน Phishing เพื่อ Bypass FIDO และยอมใส่ OTP ไปต่อ
อ้างอิงจาก https://www.usenix.org/system/files/sec21_slides_ulqinaku.pdf 

Gophish

สำหรับซอฟต์แวร์ฟรีที่สามารถนำมาใช้ในการทดสอบ Phishing Assessment ได้นั้นมีหลายซอฟต์แวร์เช่น evilginx2, King Phisher และ Gophish โดยในบทความนี้ผู้เขียนจะยกตัวอย่าง Gophish เท่านั้น ซึ่ง Gophish เป็น Phishing Framework ชื่อดังที่พัฒนาด้วยภาษา Go

ข้อดีของ Gophish

  • ฟรี ง่ายต่อการใช้งานและเป็นที่นิยมที่สุด
    https://github.com/gophish/gophish
  • เปิดเผยโค้ดให้นำมาแก้ไขเองได้
  • มีตัวอย่าง Template ทั้งอีเมลและเว็บแจกฟรี
  • มีการแสดงผลการทำ Phishing Assessment ในเชิงสถิติ อย่างละเอียดแต่เข้าใจง่ายและสวยงาม

ข้อเสียของ Gophish

  • เนื่องจากเป็นที่นิยมทำให้ระบบอีเมลส่วนมาก รู้จักและเข้าใจว่าเป็นอีเมลที่มาจาก Gophish และอาจทำการปิดกั้น (Block) ทั้งอีเมล หรือเว็บที่อยู่ในลิงก์ของเนื้อหาอีเมล
  • ถ้าต้องการหลบการปิดกั้น ของระบบอีเมลต่าง ๆ อาจต้องแก้ไขโค้ดเองเพิ่มเติม
  • ไม่รองรับการ ทำ Real-Time Phishing (RTP) เพื่อ Bypass เว็บไซต์ที่มีการเปิดใช้งาน MFA (ถ้าอยากทำต้องไปใช้ evilginx2)

ตัวอย่างกรณีโดนปิดกั้นทางอีเมล และในเว็บเบราว์เซอร์

แต่ไม่ต้องกังวลไป สำหรับการทำ Phishing Assessment ที่เราได้รับอนุญาตนั้น เราสามารถที่จะเพิ่มหรือขอเพิ่มอีเมลที่เราจะใช้ทดสอบเข้าไปในอีเมล Allowlist เพื่อกำหนดให้ Domain ที่เราจะใช้ทดสอบไม่ตกไปอยู่ในกล่องอีเมลขยะได้ ทั้งของ Outlook และ G Suite

ตัวอย่างการตั้งค่า Allowlist ไม่ให้อีเมลไปตกอยู่ในกล่องอีเมลขยะของ G Suite เข้าไปที่เมนู Apps > Google Workspace > Settings for Gmail ในหมวด Spam กด ADD ANOTHER RULE และกดเพิ่มชื่ออีเมลที่ต้องการให้เข้ากล่องอีเมลปกติ ที่ปุ่ม Create or edit list

https://admin.google.com/ac/apps/gmail/spam?dn=example.ltd

สำหรับในส่วนการแก้ไขโค้ด Gophish เพื่อเลี่ยงการถูกตรวจจับ จากรูปแบบ (Pattern) ของ URL ที่ถูกส่งไปในอีเมล ก็อาจจะไปแก้ไขโค้ดเพิ่มเติม เช่นค่า RecipientParameter ที่ค่าเริ่มต้นจะเป็น rid ให้แก้ไขเป็นค่าอื่นแทน ในไฟล์ campaign.go บรรทัดที่ 130 และทำการ Build โปรแกรม GoPhish ใหม่ (ในตัวอย่างของบทความนี้จะไม่ได้ทำการแก้ไข)

https://github.com/gophish/gophish/blob/master/models/campaign.go

เตรียมความพร้อมก่อนตกปลา

1. จดทะเบียนชื่อเว็บ (Domain) เพื่อความเนียนของเว็บ Phishing

สิ่งหนึ่งที่สำคัญของการทำ Phishing คือการเลือกชื่อเว็บ (Domain) ที่จะใช้ส่งอีเมล และใช้เป็นเว็บสำหรับการ หลอกให้ กลุ่มพนักงานที่จะถูกทดสอบ (กลุ่มเป้าหมาย) กรอกข้อมูล โดยจะมีเว็บที่แนะนำชื่อว่า ExpiredDomains.net ซึ่งจะรวบรวมชื่อเว็บ ที่เคยถูกจดทะเบียนและปัจจุบันไม่มีคนใช้แล้วเอาไว้ เผื่อว่า ถ้าเราสามารถที่จะเลือกชื่อเว็บที่มีการใช้งานในอดีตนั้น จะทำให้ โอกาสที่จะโดนระบบป้องกันอีเมล Phishing ต่าง ๆ ดักจับลดน้อยลงไป (กว่าการสมัครอีเมลใหม่ที่ไม่มีประวัติการใช้งานมาก่อน)

ตัวอย่างการค้นหาชื่อเว็บที่เคยถูกจดทะเบียนในอดีต แต่ปัจจุบันว่างให้จับจองแล้ว

https://member.expireddomains.net/domain-name-search/?q=cyfence&searchinit=1

โดยนอกเหนือจากที่เราสามารถจดทะเบียนชื่อเว็บ ที่เคยมีตัวตนอยู่จริงเพื่อจะได้ลดความน่าสงสัยของระบบตรวจจับ Phishing ต่าง ๆ แล้ว เรายังสามารถที่จะ ใช้เว็บ Archive.org ในการ ย้อนกลับไปดาวน์โหลด (Clone) หน้าเว็บ เก่าของจริง กลับมาแปะในเว็บที่เราจดทะเบียนซ้ำได้อีกด้วย

ตัวอย่างเช่น จากในเว็บ ExpiredDomains.net เราได้ชื่อ Domain ที่จะใช้ทำ Phishing เป็น PrivacyFenceInc.net เราก็ใช้ Archive.org ย้อนกลับไปเอาหน้าเว็บเดิมนั้นมา

https://web.archive.org/web/20110429023611/http://privacyfenceinc.net/

อีกเทคนิคหนึ่งคือเราสามารถใส่ id_ ตามหลัง ค่าวันที่ (ในตัวอย่างนี้คือ 20110429023611) เพื่อเอาเมนูของ Archive.org ด้านบนเว็บออกได้ (เผื่อว่าจะ Clone หน้าเว็บมาจะได้สะดวกขึ้น)

https://web.archive.org/web/20110429023611id_/http://privacyfenceinc.net/

ในบทความนี้ผู้เขียนซื้อ Domain ชื่อ system-login.co จากเว็บไซต์ GoDaddy.com ในราคาแบงค์พันมีทอน

เมื่อเราได้ซื้อ Domain เรียบร้อยแล้ว ถัดจากนั้นก็ทำการตั้งค่า DNS Name Server ให้ชี้ไปที่บริการของ Cloudflare เผื่อจะใช้ในการปิดบังหมายเลขไอพีของเซิร์ฟเวอร์ (ลดความเสี่ยงโดนแบนจากระบบต่าง ๆ)

https://dcc.godaddy.com/manage/system-login.co/dns

โดยใส่เป็นค่า

  • donald.ns.cloudflare.com
  • eva.ns.cloudflare.com

ถัดจากนั้นทำการสมัครและตั้งค่า Cloudflare ที่ใช้เป็น DNS Name Server ที่ลิงก์ https://dash.cloudflare.com/ ให้จัดการ Domain ที่เราซื้อมา โดยการไปที่เมนู “Add site” ใส่ชื่อ Domain, เลือกเป็น แผนการใช้งานแบบฟรี (Free $0) และดำเนินการถัดไปเรื่อย ๆ จนจบ

โดยเดี๋ยวเราจะกลับมาตั้งค่า DNS Record อีกครั้งหลังจากเราได้เซิร์ฟเวอร์ VPS และทำระบบส่งออกอีเมลเรียบร้อยแล้ว

2. ตั้งเซิร์ฟเวอร์บน Cloud (IaaS) หรือ VPS

หลังจากที่เราจดทะเบียนชื่อเว็บเรียบร้อยแล้ว ในขั้นต่อไป ผู้อ่านจะต้องทำการสมัคร ใช้บริการเช่าเซิร์ฟเวอร์บน Cloud หรือ VPS โดยสเป็กเครื่องเซิร์ฟเวอร์ขั้นต่ำคือ

  • เนื้อที่เก็บข้อมูล   25 GB SSD
  • หน่วยประมวลผล 1 vCPU
  • หน่วยความจำ      1 GB
  • แบนวิธ เครือข่าย 1 TB

และใช้ระบบปฏิบัติการ Linux Ubuntu รุ่น 22.04 LTS x64 โดยสามารถ สร้าง SSH Key Pair ใหม่สำหรับการเข้าสู่ระบบได้ด้วยคำสั่งต่อไปนี้

local$ ssh-keygen -t ed25519

และนำ SSH Public Key ไปใส่ไว้บนเซิร์ฟเวอร์ ที่ $HOME/.ssh/authorized_keys ด้วยคำสั่งต่อไปนี้

local$ ssh-copy-id -i ~/.ssh/id_ed25519.pub user@ip-address

3. ระบบส่งออกอีเมล

ในทางปฎิบัติจริง ๆ ผู้อ่านอาจสามารถที่จะตั้งค่า เซิร์ฟเวอร์ Gophish ให้สามารถส่งออกอีเมลได้ แต่ จะมีขั้นตอนค่อนข้างเยอะ และปัญหาหลักก็คือ ผู้ให้บริการ Cloud/VPS ส่วนใหญ่ มักจะปิดกั้น TCP Port 25 (SMTP) เนื่องจาก SMTP มักจะถูกใช้ในการส่งออกอีเมลขยะ (Spam) ไปหาคนอื่น แต่ว่าใน Cloud/VPS บางส่วนมักจะ จะไม่ได้ปิดกั้น TCP Port 587 (ใช้สำหรับ SMTP ในรูปแบบแบบเข้ารหัส) ไปด้วยทำให้ ถ้าตั้งให้ Gophish ส่งอีเมลออกอีเมลผ่าน TCP Port 587 อย่างเดียวจะส่งอีเมลออกได้ โดยไม่ต้องใช้ TCP Port 25 ที่โดนปิดกั้น

ดังนั้นทางผู้เขียนจึงใช้วิธีการสมัครบริการส่งออกอีเมลจากเว็บไซต์ Mailgun.com เพื่อเป็นคนกลางในการส่งออกอีเมล เนื่องจาก เป็นบริการที่มีระบบและแอปพลิเคชันอื่น ๆ ใช้ส่งอีเมลปกติ ทำให้โอกาสส่งผ่านทะลุ ระบบป้องกันอีเมลขยะ (Spam) มีมากขึ้น ใน การใช้งานฟรี จะสามารถส่งอีเมลได้ประมาณ 1,000 อีเมลแรก

ก่อนการใช้งานจะต้องนำ Domain มายืนยัน โดยการนำ DNS Record ต่าง ๆ ไปตั้งค่าที่ DNS Name Server (Cloudflare) ไม่ว่าจะเป็น TXT และ MX ดังในรูปด้านล่างนี้

https://app.mailgun.com/app/sending/domains/system-login.co/dns

https://dash.cloudflare.com/xxxx/system-login.co

นอกเหนือจาก Mailgun แล้ว ผู้อ่านอาจใช้ตัวเลือกอื่น ๆ เช่น SendGrid ก็ได้เช่นกัน

4. การติดตั้ง Gophish และใช้งานครั้งแรก

ในกรณีนี้ผู้เขียนใช้ macOS จะใช้คำสั่ง ssh ในโปรแกรม Terminal  เพื่อทำการ เข้าสู่ระบบและยืนยันตัวตนด้วย SSH Private Key ที่กำหนดไว้ตอนสร้างเครื่อง VPS  สำหรับกรณีของผู้อ่านที่ใช้ Windows สามารถเข้าถึงเครื่องเซิร์ฟเวอร์ได้โดยการใช้โปรแกรม Putty (https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)

local$ ssh -i ~/.ssh/id_ed25519 user@ip-address

จากนั้นทำการดาวน์โหลดและติดตั้ง Gophish รุ่นล่าสุดจากลิงก์

https://github.com/gophish/gophish/releases

ตัวอย่างเช่น

remote$ wget https://github.com/gophish/gophish/releases/download/v0.12.1/gophish-v0.12.1-linux-64bit.zip
remote$ unzip gophish-v0.12.1-linux-64bit.zip
remote$ chmod +x gophish
remote$ tmux
remote$ ./gophish

หมายเหตุ:

  • ในตัวอย่างนี้ผู้เขียนใช้โปรแกรม tmux เพื่อทำให้โปรแกรม gophish เปิดอยู่ตลอดเวลาในขณะที่ออกจาก ssh ไปแล้ว
  • ในผลการรันโปรแกรมจะได้รหัสผ่านมาด้วย อยู่หลังข้อความ “Please login with the username admin and the password xxx” จากในตัวอย่างนี้คือค่า 8079eaac2451fb27

จากนั้นเว็บเซิร์ฟเวอร์ สำหรับการตั้งค่าของ Gophish จะเปิดอยู่ที่ TCP Port 3333 แต่เปิดให้เข้าได้เฉพาะจากเครื่องตัวเองเท่านั้น (127.0.0.1) ดังนั้นจึง อาจจะใช้ SSH Reverse Tunnel เพื่อให้เข้าถึง เว็บเซิร์ฟเวอร์ สำหรับการตั้งค่าของ Gophish ได้จากเครื่องคอมพิวเตอร์ของผู้อ่าน

remote$ ssh -L 127.0.0.1:3333:127.0.0.1:3333 root@server-ip -N

จากนั้นเข้าเว็บ Gophish ผ่านทางเว็บเบราว์เซอร์

https://127.0.0.1:3333/

จะพบกับหน้าจอเข้าสู่ระบบ ใช้ ชื่อผู้ใช้งานว่า admin และรหัสผ่านที่ได้จาก หมายเหตุด้านบน

หลังจากเข้าสู่ระบบครั้งแรก จะต้องทำการตั้งรหัสผ่านใหม่

5. จำลองสถานการณ์ที่จะใช้ทำ Phishing

กำหนด หัวข้ออีเมล, เนื้อหาอีเมล, เนื้อหาในหน้าเว็บ ที่จะใช้ในการทดสอบ

โดยสถานการณ์จำลองควรจะเนียน โดยอาจจะพิจารณาประเด็นดังต่อไปนี้

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

เราสามารถนำ เนื้อหาอีเมลไปตรวจสอบ คะแนนว่ามีโอกาส มาก-น้อย แค่ไหนที่ระบบป้องกันอีเมลขยะ (Spam) จะจัดเนื้อหาอีเมลของเราไปอยู่ในกล่องอีเมลขยะที่เว็บไซต์ https://www.mail-tester.com/

เมื่อเข้าไปแล้วจะได้ ชื่ออีเมล เช่น test-abc1234@srv1.mail-tester.com ให้ทดสอบส่งเนื้อหาอีเมล โดยใช้ API ของ Mailgun ส่งไป คะแนนยิ่งเยอะยิ่งดี ตัวอย่างเช่น

หัวข้ออีเมล: ยินดีด้วย คุณคือผู้โชคดีได้รับ iPhone 14 Pro Max

เนื้อหาอีเมล:

ติดต่อรับของรางวัลได้ที่ https://attacker.sth.sh

จะได้ผลคะแนนเป็นดังนี้

แนะนำเมนูและการใช้งาน Gophish เบื้องต้น

การทำ Phishing Assessment แต่ละครั้งในระบบ Gophish จะเรียกว่า แคมเปญ โดยเมื่อส่งออกอีเมลออกไปหากลุ่มเป้าหมายจะมีสถานะต่าง ๆ พร้อมวันที่/เวลาของ เป้าหมายแต่ละคน ได้แก่

  • Campaign Created – แคมเปญถูกสร้าง
  • Email Sent – อีเมลถูกส่งออก (ไปหาเหยื่อ)
  • Email Opened – เหยื่อกดเปิดอีเมล
  • Clicked  Link – เหยื่อกดคลิกลิงก์เว็บในอีเมล
  • Submitted Data – เหยื่อกรอกรหัสผ่านเข้ามาในเว็บ

และจะมีการนำข้อมูลมาแสดงในระบบ Gophish ดังตัวอย่างนี้

นอกเหนือจากการดูผลการทดสอบ Phishing เป็นรายบุคคลแล้ว ยังสามารถดูภาพรวมทั้งแคมเปญได้พร้อม Timeline เหตุการณ์ต่าง ๆ ที่เกิดขึ้นของกลุ่มเป้าหมายที่เมนู Dashboard

วิธีการใช้งาน Gophish ในครั้งแรกเพื่อสร้างแคมเปญ สามารถลองเริ่มใช้งานได้ดังนี้

1. สร้าง Sending Profile

เมื่อเข้าสู่ระบบแล้วให้ไปที่เมนู Sending Profiles ด้านซ้ายมือและตั้งค่าระบบส่งออกอีเมลของ Mailgun ตามที่เราเตรียมความพร้อมก่อนตกปลากัน

โดยสามารถเข้าไปสร้างรหัสผ่านของ บัญชีส่งออกอีเมลเราได้จากลิงก์ (ตัวอย่าง)

https://app.mailgun.com/app/sending/domains/system-login.co/credentials

กด ที่ปุ่ม “Add new SMTP user” และใส่ชื่ออีเมล เช่น no-reply จะเป็นการสร้างบัญชี ส่งออกอีเมลของอีเมล no-reply@system-login.co

เมื่อกดปุ่ม “Create SMTP Credential” จะมีข้อความ Pop-up ขึ้นมาทางมุมขวาล่างของจอ ให้กดเพื่อที่จะ คัดลอก รหัสผ่านของบัญชีอีเมล เพื่อนำมาใช้ตอนสร้าง Sending Profile

กลับมาที่ฝั่ง Gophish ในเมนู Sending Profiles กดปุ่ม “New Profile” และกำหนดค่าต่าง ๆ ดังนี้

  • Name: Mailgun
  • SMTP From: no-reply@system-login.co
  • Host: smtp.mailgun.org:587
  • Username: no-reply@system-login.co
  • Password: [นำมาจากเว็บ Mailgun ในขั้นตอนก่อนหน้า]
  • ติ๊กถูกที่ “Ignore Certificate Errors”

และกดปุ่ม “Save Profile”

2. สร้าง Landing Page

Landing Page คือหน้าเว็บสำหรับหลอกให้เหยื่อกรอกรหัสผ่าน ซึ่งหน้าเว็บ Landing Page ถูกเข้าผ่านโดยการที่เหยื่อกดลิงก์ ที่ได้รับทางอีเมล

โดยสามารถหา Template ของ Landing Page ได้จาก Github ต่อไปนี้

ตั้งชื่อ เช่น STH Coffee Login และในตัวอย่างนี้ผู้เขียนใช้ Template ดังนี้ (ต้องกดปุ่ม Source ให้ทำงานก่อนใส่)

<html lang="en"><head></head><body>
    <meta charset="UTF-8"/>
    <title>STH Coffee Thailand - Login</title>
    <style>
        body { font-family: "Ubuntu", monospace; text-align: center }
        div.login-form { margin:auto; width:300px; border:1px solid #ececec; padding:10px;text-align: left;font-size:13px;}
        div.login-form div input { margin-bottom:7px;}
        div.login-form input { width:280px;}
        div.login-form div:last-child { text-align: center; }
        div.login-form div:last-child input { width:100px;}
    </style>
    <h2>STH Coffee Thailand</h2>
    <h3>Login</h3>
    <form method="post" action="">
        <div class="login-form">
            <div>Username:</div>
            <div><input name="username"/></div>
            <div>Password:</div>
            <div><input type="password" name="password"/></div>
            <div><input type="submit" value="Login"/></div>
        </div>
    </form>
</body></html>

อย่าลืมกดติ๊กที่ “Capture Submitted Data” และ “Capture Passwords” ก่อนกดปุ่ม “Save Page”

3. สร้าง Email Template

ถัดจากนั้นไปที่เมนู Email Templates และกดปุ่ม “New Template”

เหมือนเดิมคือ สามารถหาตัวอย่าง Email Templateได้จาก Github ต่อไปนี้

ในตัวอย่างนี้ผู้เขียนกำหนดค่าต่าง ๆ ดังนี้

  • Name: STH Coffee
  • Envelope Sender: STH Coffee Thailand Exclusive Member
  • Subject: STH Coffee Thailand Exclusive Member

ในส่วนของเนื้อหาอีเมล เลือกเป็น HTML และกดปุ่ม Source และใส่ข้อมูลดังนี้

<html>
<head>
	<title></title>
</head>
<body>
<div style="text-align: center;">
<table align="center" border="0" cellpadding="0" cellspacing="0" style="width:380px; margin:0 auto">
	<tbody>
		<tr>
			<td style="font-family:'Crete Round',Crete Round,'Lato',Lato,'Open Sans',Helvetica,sans-serif; font-size:14px; color:#333; line-height:normal; font-style:italic; font-weight:normal; line-height:1.55em; margin:0; padding:0; font-style:italic; text-align:center; text-decoration:none"><img alt="Café Amazon " border="0" data-imagetype="External" height="175" src="https://upload.wikimedia.org/wikipedia/commons/e/e4/Latte_and_dark_coffee.jpg" style="display:block; margin:0 auto; display:block; min-width:245px; border-radius:8px; max-width:100%" width="auto" /><br />
			Hi {{.FirstName}},</td>
		</tr>
	</tbody>
</table>

<table align="center" border="0" cellpadding="0" cellspacing="0" style="width:380px; margin:0 auto">
	<tbody>
		<tr>
			<td style="font-family:'Lato',Lato,'Open Sans',Helvetica,sans-serif; font-size:14px; color:#333; line-height:normal; font-style:normal; font-weight:normal; letter-spacing:.02em; line-height:1.65em; margin:0; padding:0; text-align:center; text-decoration:none" valign="top">&quot;Just wanted to say thanks!&quot;
			<table align="center" border="0" cellpadding="0" cellspacing="0" style="width:380px; margin:0 auto">
				<tbody>
					<tr>
						<td style="font-family:'Crete Round',Crete Round,'Lato',Lato,'Open Sans',Helvetica,sans-serif; font-size:14px; color:#333; line-height:normal; font-style:italic; font-weight:normal; line-height:1.55em; margin:0; padding:0; font-style:italic; text-align:center; text-decoration:none">From: STH Coffee Thailand<br />
						&nbsp;
						<hr /></td>
					</tr>
				</tbody>
			</table>
			</td>
		</tr>
	</tbody>
</table>

<table align="center" border="0" cellpadding="0" cellspacing="0" style="width:380px; margin:0 auto">
	<tbody>
		<tr>
			<td style="font-family:'Lato',Lato,'Open Sans',Helvetica,sans-serif; font-size:30px; color:#3d3a48; line-height:1em; font-style:normal; font-weight:300; margin:0; padding:0; text-align:center; text-decoration:none" valign="top">1,000.00 Thai Baht</td>
		</tr>
	</tbody>
</table>

<table align="center" border="0" cellpadding="0" cellspacing="0" height="126" style="margin: 0px auto;" width="380">
	<tbody>
		<tr>
			<td style="font-family:'Lato',Lato,'Open Sans',Helvetica,sans-serif; font-size:30px; color:#3d3a48; line-height:1em; font-style:normal; font-weight:300; margin:0; padding:0; text-align:center; text-decoration:none" valign="top">&nbsp;<br />
			<a href="{{.URL}}" style="color:#ffffff; font-family:Arial; font-size:14px; font-weight:bold; text-decoration:none; border:15px solid #235456; background-color:#235456; font-weight:bold; text-transform:uppercase; border:none; outline:none; text-decoration:none; letter-spacing:.05em; border:15px solid #235456; border-left:none; border-right:none; border-radius:5px; background-color:#235456; max-width:100%; display:block; font-weight:500; margin:0 55px">Redeem Your eGift</a></td>
		</tr>
	</tbody>
</table>
&nbsp;

<table align="center" border="0" cellpadding="0" cellspacing="0" style="width:380px; margin:0 auto">
	<tbody>
		<tr>
		</tr>
	</tbody>
</table>

<table align="center" border="0" cellpadding="0" cellspacing="0" style="width:301px; max-width:100%; margin:0 auto">
	<tbody>
		<tr>
			<td style="font-size:.9em; margin:0; padding:0; font-family:&quot;Lato&quot;,Verdana,sans-serif; color:#3d3a35; font-size:14px; font-family:'Lato',Lato,'Open Sans',Helvetica,sans-serif; color:#777571; text-align:center">Pay for your coffee, send a STH Coffee Thailand eGift Card and more, right from the STH Coffee Thailand App.<br />
			<br />
			For our full Terms &amp; Conditions, <a href="{{.URL}}" style="text-decoration:underline; color:#3d3a35; font-weight:bold; color:#777571" target="_blank">click here</a>.</td>
		</tr>
	</tbody>
</table>
&nbsp;

<table align="center" border="0" cellpadding="0" cellspacing="0" style="width:301px; max-width:100%; margin:0 auto">
	<tbody>
		<tr>
			<td style="font-size:.9em; margin:0; padding:0; font-family:&quot;Lato&quot;,Verdana,sans-serif; color:#3d3a35; margin:0 auto; text-align:center; font-size:11px; line-height:1.2em; font-family:'Lato',Lato,'Open Sans',Helvetica,sans-serif; color:#777571">Apple and the Apple logo are trademarks of Apple Inc., registered in the U.S. and other countries. App Store is a service mark of Apple Inc.<br />
			<br />
			Google Play is a trademark of Google Inc.<br />
			<br />
			Have a question about your eGift? We&#39;re here to help. Click <a href="{{.URL}}" style="text-decoration:underline; color:#3d3a35; font-weight:bold; color:#777571">here</a> to access our customer support tools.<br />
			Feel free to <a href="mailto:marketing@system-login.co" rel="external" style="text-decoration:underline; color:#3d3a35; font-weight:bold; color:#777571; font-weight:bold">email us</a> or call 089-326-9636 from 9AM &ndash; 8PM (GMT+7) Mon-Fri and 9AM &ndash; 4PM (GMT+7) Sat-Sun.</td>
		</tr>
	</tbody>
</table>
</div>

<p>{{.Tracker}}</p>
</body>
</html>

ต้องติ๊ก “Add Tracking Image” และใส่ {{.URL}} ในส่วนของลิงก์ต่าง ๆ ในโค้ด HTML

จากนั้นกดปุ่ม “Save Template”

4. สร้าง User & Group

ไปที่เมนู Users & Groups และกดปุ่ม “New Group” เพื่อ ทำการเพิ่มรายชื่อของ “กลุ่ม” เป้าหมายในการทดสอบ Phishing Assessment

จากนั้นกดปุ่ม “Save changes” เพื่อบันทึกข้อมูล

สำหรับในองค์กร ที่มีกลุ่มเป้าหมายในการทำ Phishing Assessment จำนวนมาก สามารถเลือกที่จะอัปโหลดเอกสาร CSV ที่เป็น Format ตาม Column ในตาราง ที่มีข้อมูลของพนักงานขององค์กรแทนการพิมพ์ลงไปเอง ผ่าน Gophish ก็ได้เช่นกัน

5. สร้าง Campaign

หลังจากที่เราเตรียมการทุกอย่างมา ตั้งแต่ จดทะเบียนชื่อเว็บ, ตั้งเซิร์ฟเวอร์, ตั้งระบบส่งออกอีเมล, ติดตั้ง Gophish

Campaign เปรียบเสมือน กรณีในการ Phishing แต่ละครั้งโดยผู้โจมตีจำเป็นต้องเลือก  User & Group, Template และ Landing Page ที่สร้างไว้ นำมาประสานรวมกัน ในการเริ่มต้น Phishing Assessment !

ไปที่เมนู Campaigns กดปุ่ม “New Campaign”

กำหนดข้อมูลต่าง ๆ ดังนี้

  • Name: STH Phishing Assessment Q4
  • Email Template: STH Coffee
  • Landing Page: STH Coffee Login
  • URL: https://system-login.co
  • Launch Date: [… ถ้าอยากส่งทันที ให้เลือกเป็นเวลาในอดีต อาจจะย้อนหลัง 2 วัน …]
  • Sending Profile: Mailgun
  • Groups: STH Rama 9 Branch

จากนั้นกดปุ่ม “Launch Campaign” จากนั้นเหยื่อตามใน กลุ่มเป้าหมายที่เราระบุไว้ ก็จะได้รับอีเมล Phishing ตาม Email Template ที่เรากำหนดไว้

และถ้าเหยื่อกดลิงก์เข้าไปตรงที่เราใส่ {.URL} ก็จะเข้าไปที่ Landing Page ที่หลอกถามรหัสผ่าน

เมื่อเหยื่อกรอก ชื่อผู้ใช้งาน และ รหัสผ่าน จากนั้นกดปุ่ม Login รหัสผ่านก็จะถูกส่งมาเก็บในระบบ Gophish ทันที

ก็จะเห็นรหัสผ่านที่เหยื่อใส่เข้ามาคือ NoTmTP@ssw0rdz

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

สำหรับเทคนิคอื่น ๆ เพิ่มเติมเกี่ยวกับ Gophish ที่ผู้เขียนอาจจะไม่ได้อ้างอิงถึงในบทความนี้โดยละเอียด สามารถ ตรวจสอบเพิ่มเติมได้ที่คู่มือตามลิงก์นี้ครับ https://docs.getgophish.com/user-guide/

บทความที่เกี่ยวข้อง