ฉันโดนแฮ๊กหรือเปล่า !?!?!

หลายท่านอาจจะเคยได้รับ email หน้าตาประมาณนี้ ข้อเท็จจริงคือ เราสามารถปลอมเป็นใคร ส่ง email ออกไปให้ใครก็ได้ Truth … แล้ว จะรู้ได้อย่างไร !?! ต้องดูสิ่งที่เรียกว่า Header … โดยทำตามวิธีการต่อไปนี้ 1. คลิกที่ View Full Header จะได้ผลประมาณนี้ จากภาพ จะเห็นว่า ส่งจาก (ดูจาก ล่าง ขึ้น บน) Received: from [154.117.164.59] (unknown [154.117.164.59])     by mailscan.in.psu.ac.th (Postfix) with ESMTP id 69F2B150768     for <kanakorn.h@psu.ac.th>; Thu, 5 Mar 2020 13:24:42 +0700 (ICT) แล้วจึงส่งเข้าระบบ PSU Email Received: from mailscan.in.psu.ac.th (unknown [192.168.107.12])     by mail.psu.ac.th (Postfix) with ESMTP id A034D464FC7     for <kanakorn.h@psu.ac.th>; Thu, 5 Mar 2020 13:24:46 +0700 (+07) แล้วจึงเข้า Mailbox ของ PSU (ข้อมูล version ของ cyrus เอาออกไม่ได้จริง ๆ ครับ ไว้รอ Upgrade) Received: from mail.psu.ac.th ([unix socket])     by mail (Cyrus v2.4.18-Debian-2.4.18-3) with LMTPA;     Thu, 05 Mar 2020 13:24:46 +0700 จะเห็นได้ว่า ต้นทางคือ IP Address : 154.117.164.59 ตรวจสอบว่าอยู่ที่ไหนในโลก ด้วย https://whatismyipaddress.com/ip/154.117.164.59 ประมาณ South Africa สรุป ! ไม่ได้โดน Hack (ไม่ได้เข้ามาใช้ PSU Email ส่ง) ครับ

Read More »

ELK #09 Anomaly Detection (Case Study)

ระบบ PSU Email ให้บริการผู้ใช้ของมหาวิทยาลัยสงขลานครินทร์ ซึ่งมีการใช้งานจากทั่วโลก ทั้งระบบประกอบขึ้นจากคอมพิวเตอร์หลายเครื่อง การจะตรวจสอบ Log เมื่อเกิด Incident ขึ้น อาจจะต้องใช้ระยะเวลานาน และเป็นการยากพอสมควรที่จะเชื่อมโยงความสัมพันธ์ของเหตุการณ์ และสรุปออกมาเป็นรายงานได้ จึงเริ่มใช้ ELK สำหรับรวบรวม Log ของทั้งระบบไว้ที่ส่วนกลาง และพัฒนาต่อยอดเพื่อการตรวจจับความผิดปรกติต่าง ๆ ได้ ในบทความนี้ จะนำเสนอวิธีการใช้ ELK เพื่อตรวจจับ การ Login ที่ผิดปรกติบน PSU Email โดยจะสนใจ ผู้ใช้ที่มีการ Login จากนอกประเทศเป็นหลัก การส่ง Log จาก Server เข้า ELK ที่เครื่อง Server แต่ละเครื่อง กำหนดให้ส่ง Log จาก /etc/rsyslog.d/50-default.conf เข้าไปที่ your.logstash.server:port ตามที่กำหนดไว้ การสร้าง Logstash Filter ที่ Logstash Server Input เพื่อรับข้อมูลจาก syslog ที่ port ที่ต้องการ เช่นในที่นี้เป็น 5516 เป็นต้น Filter ใช้ Grok Plugin เพื่อจับข้อมูล จาก message แบ่งเป็นส่วน ๆ ตามลักษณะ แล้วตั้งชื่อตาม Field ตามต้องการ ในที่นี้คือ description, username, domainname, clientip, actiondate, actiontime เป็นต้น (ตัวที่สำคัญในตอนนี้คือ username และ clientip) Output ตั้งว่าให้ส่งผลไปยัง Elasticsearch ที่ “your.elasticsearch.server” ที่ port 9200 [ตรงนี้มีกระบวนการบางอย่าง ซึ่งค่อยมาลงรายละเอียด] เมื่อมี Log ไหลเข้าสู่ Logstash และ ถูกประมวลผลแล้ว ก็จะเข้าสู่ Elasticsearch แล้ว ก็นำไปใช้งานบน Kibana หลังจากนั้น สามารถ Search ข้อมูล และใส่ Fields ที่สนใจ เช่น Time, Username, geoip.country_name และ description ได้ แล้ว Save เอาไว้ใช้งานต่อ ในที่นี้ ตั้งชื่อว่า squirrelmail-geoip จากนั้น สามารถเอาไปสร้างเป็น Visualization แบบ Coordinate Map ได้ เช่น ดูว่า มีการ Login Success / Failed Login / Sent จากที่ไหนบ้างในโลก จะเห็นได้ว่า ส่วนใหญ่ ใช้งานจากในประเทศไทย (วงกลมสีแดงเข้ม ๆ) ส่วนนอกประเทศ จะเป็นวงสีเหลืองเล็ก ๆ การตรวจหาการใช้งานที่ผิดปรกติ สร้าง Search ใหม่ กรองเฉพาะ ที่มี (exist) Username และ ไม่เป็น N/A และ มี (exist) geoip.country_code และ ไม่ใช่ Thailand แล้ว Save ไว้ใช้งานต่อไป ในที่ตั้งชื่อว่า squirrelmail-geoip-outside-th จากนั้น เอาไปสร้าง Visualization แบบ Vertical Barกำหนดให้Y Axis เป็นจำนวนX Axis เป็น Usernameโดยที่ Group by geoip.country_name และ descriptionก็จะทำให้รู้ว่า ใครบ้างที่ มีการใช้งานนอกประเทศ และ

Read More »

ปิดช่องโหว่เหลือค้าง

หลังจากไม่ได้ตรวจสอบช่องโหว่มานาน วันนี้ Nessus ทำใหม่แล้วลองสแกนซักหน่อย ซึ่งจะพบว่ามี Medium สองรายการ คือ Browsable Web Directory และ WordPress User Enumeration โดย Browsable Web Directory คือ สามารถเข้าถึงรายการใน directory ได้ เช่น ชื่อไฟล์ มีไฟล์อะไรบ้าง ขนาดเท่าไหร่ เป็นต้น เมื่อตรวจสอบก็พบว่าเป็น directory ที่ผู้ใช้ไม่จำเป็นต้องเข้าถึง WordPress User Enumeration คือ สามารถเข้าถึง username ได้ว่ามี user อะไรบ้าง ปิด Directory Browsing ทำได้ 2 วิธีคือ แก้ไขแฟ้ม config ของ site ที่ต้องการปิด โดยทั่วไปแฟ้มจะอยู่ที่ /etc/apache2/site-enabled/site.conf โดย site.conf คือชื่อไฟล์ที่ต้องการ โดยเพิ่มในส่วนของ Directory ของไซต์นั้น ตัวอย่างเป็น /var/www/html/aaeee ให้ทำการแก้ไขหรือเพิ่มข้อความตามตัวอย่าง ส่วนสำคัญคือ Options ต้องไม่มีคำว่า Indexes เมื่อแก้ไขเสร็จ ให้ reload หรือ restart apache2 ด้วยคำสั่ง sudo systemctl reload apache2 หรือ sudo systemctl restart apache2 สำหรับวิธีที่สองนี้ ต้องมีการระบุ AllowOverride All ในแฟ้มของไซต์ ด้วยจึงจะใช้งานได้ (หากแก้ไขไฟล์ไซต์ของ apache2 ต้อง reload หรือ restart ด้วย) เช่น สร้างแฟ้ม .htaccess เอาไว้ใน Directory (จากตัวอย่างนี้คือ /var/www/html/aaeee) ที่ต้องการ โดยเพิ่มข้อความข้างล่างนี้วิธีนี้ มีผลทันทีไม่ต้อง reload หรือ restart apache2 ปิด WordPress User Enumeration ในไซต์ของ WordPress จะมีแฟ้ม .htaccess อยู่ให้เพิ่มข้อความต่อไปนี้ลงไป โดย yoursite.name คือชื่อเว็บไซต์ เมื่อทำสองอย่างแล้วให้ nessus เข้าตรวจสอบอีกครั้ง เย่….หายไปละ จบขอให้สนุก

Read More »

ติดตั้ง Let’s Encrypt Certificate สำหรับ SSL Sites บน IIS

หลังจากที่พี่หนุ่ม คณกรณ์ หอศิริธรรม  ได้เขียนเรื่อง วิธีติดตั้ง HTTPS ด้วย Certificate ของ Let’s Encrypt ไปแล้วนั้น ก็จะมาถึงทางฝั่ง Windows กันบ้าง ซึ่งจะติดตั้งผ่านเครื่องมือ บน Command Line ครับ ตัวอย่างนี้จะเป็นวิธีการติดตั้งโดยใช้เครื่องมือที่ชื่อว่า WinACME ซึ่ง ดาวน์โหลดได้ที่นี่ (จริงๆ มีหลายตัวให้เลือกใช้ครับ ซึ่งส่วนใหญ่จะเป็นการพัฒนาผ่าน ACME API มีทั้งแบบเป็น Command Line, Power shell และเป็น GUI ครับ) หลังจากดาวน์โหลดไฟล์มาแล้ว ผม Extract ไปไว้ที่ C:\LetsEncryptSSL จากนั้นก็เปิด Command Prompt ด้วยสิทธิ Administrator(เปิดด้วยสิทธิ Administrator เพื่อให้มีการสร้าง Schedule Task ในการ Renew Cert. โดยอัตโนมัติครับ) จากนั้นทำการเรียกด้วยคำสั่ง letsencrypt จะพบกับเมนูดังภาพนี้ครับ ผมเลือกตอบตัว “n” จะพบกับเมนูให้เลือกด้านล่างนี้ (สำหรับผู้ที่มีความชำนาญ สามารถเลือก M เพื่อเปิด advanced option ได้ครับ) และเนื่องจากเครื่องที่แสดงอยู่นี้ เป็น multiple site และผมจะทำการติดตั้งลงไปเพียง 1 site ตามนี้ครับ เลือก site จากนั้นกด Enter จะพบว่าโปรแกรมเริ่มทำการ Generate SSL Cert. และ Assign ไปยัง Site ของเรา พร้อมทั้งกำหนด Schedule Task เรียบร้อยแล้ว ลองดูผลลัพธ์ใน II ลองเปิดเว็บดู ผ่าน Google Chrome ปรากฎว่ามีรูปกุญแจขึ้นแล้วและเป็น Cert. ของ Let’s Encrypt ตามที่ต้องการ กลับไปตรวจสอบ Schedule Task พบว่ามีการสร้าง Task เพื่อ Renew Cert. เอาไว้แล้ว จบปิ๊ง…

Read More »

เตือนภัยอีเมลหลอกลวงว่าเป็นธนาคารกรุงไทย (Spam 2018-11-14)

เช้านี้มีอีเมลหลอกลวงหลุดเข้ามา อ้างว่ามาจาก Krungthai Bank PCL ดังภาพ จะเห็นว่า From ก็หลอกว่ามาจาก info@ktb.co.th และในเนื้อหาก็มี Logo ของธนาคาร แถมมี Link  ที่วิ่งไป HTTPS://WWW.KTB.CO.TH/PERSONAL/DETAIL/VERIFY/172 แต่ไม่ใช่ของจริง !!! เพราะ ถ้าท่านดูอีเมลฉบับนี้แบบ HTML จะเป็นการส่ง Link ไปที่ “เว็บไซต์หลอกลวง” หรือเรียกว่า Phishing Site  ไม่แนะนำให้คลิกตาม https://scrappse.tk/jssl/ktbnetbank/krungthai/index.html ซึ่งจะได้หน้าตาเหมือนกับของธนาคารจริง ๆ เพราะมันไปใช้ภาพจากเว็บไซต์จริง และใช้ HTTPS และได้ “กุญแจ” ที่บอกว่า valid certificate อีกด้วย เพราะใช้ Let’s Encrypt ดังนั้นจึงแจ้งเตือนภัยมายังประชาคมให้รับทราบ ว่าปัจจุบันนี้ เห็น LINK ใน Email แล้วเป็น URL ชื่อของธนาคารจริง ก็ยังไม่พอ (กรณีนี้เป็นของ www.ktb.co.th) คลิกไป เจอหน้าเว็บ หน้าตาน่าเชื่อถือ ก็ไม่พอ (ตามภาพ เลียนแบบเหมือนมาก) ดูว่ามี “กุญแจ” ของ HTTPS ถูกต้องก็ไม่พอ (กรณีนี้ ได้กุญแจมาแล้ว แต่เป็นของเว็บไซต์หลอกลวง) ดังนั้น ต้องดูด้วยว่า URL ที่ท่านเห็นด้านบน เป็นของธนาคารจริง ๆ หรือไม่ !!! (ในกรณีนี้ ไม่จริง เพราะเป็นของ https://scrappse.tk ) ธนาคารกรุงไทย ได้แจ้งเตือนเรื่องนี้ไว้แล้วที่  https://www.ktb.co.th/th/krungthai-update/announcement-detail/162 ดังนั้น หากท่านได้รับ Email ในทำนองนี้ ให้ตรวจสอบกับธนาคาร หรือผู้เชี่ยวชาญก่อน เพราะคนร้ายจะหลอกให้ท่านกรอก Username/Password เพื่อเข้าสู่บัญชีธนาคารของท่านได้

Read More »