BKAV đã bị hack như thế nào?
BKAV lại bị hack, hacker nói sẽ live stream, nhưng, móng tay nhọn gặp da mặt dày, BKAV đã "xịt nước" tắt hết máy chủ! Sợ té đái là có thiệt nha bà con ơi.
Để đền bù cho đông đảo người hâm mộ, trong đó có tôi, hacker công bố hai video mô tả quá trình hack vào BKAV.
Trong video thứ nhất (thanks chunxong for the shoutout to this blog!), chunxong tìm thấy một máy chủ của BKAV ở địa chỉ https://118.70.155.198:8008. Máy chủ này giờ đã chết. Thật tội nghiệp, không biết ăn phải quả "thủy lôi" của vị lãnh đạo thiện chiến nào.
Trong video, có lẽ quay ngày 7/8/2021, máy chủ này chạy một sản phẩm security do BKAV tự chế có cái tên rất kêu BKAV IPS Firewall. Máy chủ yêu cầu phải đăng nhập và a-lê-hấp hacker nhập ' or 1=1-- và vô được luôn!
Cập nhật: chỗ này chưa chính xác lắm. chunxong nói rằng đoạn code đăng nhập mặc dù có lỗi SQL Injection, nhưng trước đó còn có một đoạn kiểm tra mật khẩu phải đúng như regular expression như sau:
^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,}$)
Tức là mật khẩu phải dài ít nhất 8 ký tự và chứa một chữ cái thường, một chữ cái in, một chữ số và một ký tự đặc biệt trong chuỗi !@#$%^&*. Nếu chỉ đơn thuần nhập vào ' or 1=1-- sẽ không đủ điều kiện. Trong video, chunxong nhập vào 123456a@A' or 1=1--. Tôi không biết tại sao chunxong biết quy định của mật khẩu và sử dụng chuỗi 123456a@A. Chú ý là 123456a@A không phải là mật khẩu của account admin, như có người nói trong phần comment. Thật sự chỉ cần A!' or 1=1-- là có thể bypass được cái regular expression check.
$ python
> import re
> re_p = re.compile("^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,}$)")
> p = "A!' or 1=1--"
> re_p.match(p)
<_sre.SRE_Match object at 0x109377b28>
Hacker không tin vào mắt mình, phải liên tục coi ngày, để chắc chắn rằng anh/chị ấy đã không bị cuốn vào cỗ máy thời gian kéo về năm 1999! Tại sao lại là năm 1999, tôi xin kể một chút về lịch sử. Làm nghề nào cũng vậy, cần hiểu lịch sử để biết mình đang ở đâu trong dòng chảy tri thức nhân loại.
Hè năm 2002, vừa thi đại học xong tôi với đám bạn mướn một chiếc xe xuống Vũng Tàu tắm biển. Tôi còn nhớ như in chuyến đi đó, một phần vì trước khi đi tôi in ra một số bài về SQL Injection để đọc. Lúc đó kỹ thuật này còn rất mới mẻ và thật sự sau khi đi Vũng Tàu về thì không có chỗ nào mà tôi không hack được bằng SQL Injection.
Người phát hiện ra kỹ thuật SQL Injection là một hacker có biệt danh rất dễ thương Rain Forest Puppy tức rfp. Đúng ngày Noel 1998, rfp viết một bài mang tên "NT Web Technology Vulnerabilities" đăng trên tạp chí Phrack số 8. Nói thêm về Phrack, Phrack đã luôn và sẽ mãi là một trong những tạp chí đầu đàn về hacking, người còn sót lại chút tự trọng và vài gram hiểu biết không ai dám mở miệng so sánh Phrack với thể loại tạp chí phải trả tiền để đăng bài.
Bài của rfp trên Phrack là bài đầu tiên trong lịch sử nhắc đến SQL Injection, nhưng bài để lại ấn tượng sâu đậm nhất trong tôi là "How I hacked PacketStorm Forums" rfp viết vào tháng 2 năm 2000. Sau này tôi viết nhiều bài "Tôi đã hack XYZ như thế nào" cũng là vì muốn tri ân rfp.
Sau những đóng góp đột phá của rfp thì SQL Injection bắt đầu được chú ý và trở thành một trong những kỹ thuật hacking chính cho đến tận ngày nay. Xem thêm David Litchfield bàn về lịch sử SQL Injection ở đây.
Ở Việt Nam, lúc đó tôi và đa số bạn bè cũng chỉ dừng lại ở mức thực hành, không có đóng góp gì vào kỹ thuật này. Hacker Việt duy nhất có đóng góp là Đại "vicky" Tuấn của nhóm Vicky khét tiếng ở Đà Nẵng. Nghe nói bây giờ vẫn còn một thành viên Vicky đang ngày đêm inject tiền để "chốt đơn" các hacker mới lớn.
vicky phát hiện ra một kỹ thuật universal SQL Injection thông qua hàm convert. Thay vì phải union các kiểu mới đọc được dữ liệu, sử dụng kỹ thuật của vicky chỉ cần một query duy nhất là có thể đọc được dữ liệu ở cell bất kỳ. Nếu tôi nhớ không lầm thì vicky sử dụng kỹ thuật này để hack VNExpress. Đó là lần đầu tiên VNExpress bị hack.
Thế thì chúng ta đã hiểu tại sao chunxong lại nói về năm 1999. chunxong còn công bố toàn bộ mã nguồn của BIF, trời ơi, chỗ nào cũng có SQL Injection. Nói cho công bằng thì SQL Injection vẫn còn rất phổ biến, nhưng bị lỗ hổng sơ đẳng và ở khắp mọi nơi như BKAV thì không phải là sai sót nữa, mà là thiếu kiến thức cơ bản. Có ai ngờ rằng đằng sau lớp da mặt dày cộm láng cóng là những sản phẩm bị kẹt lại ở thế kỷ trước.
chunxong nói đây là cách họ có được foothold trong mạng BKAV. Anh/chị ấy chưa giải thích làm cách nào để từ đây chui sâu vào trong, hack được VALA, JIRA và Bluezone, nhưng hứa sẽ công bố thêm video nữa. Trong lúc chờ đợi thì chunxong công bố thêm một video quay ngày 8/8/2020 chứa chat logs của lãnh đạo BKAV.
Ngoài những thông tin tôi đã phân tích, một chi tiết thú vị là BKAV có làm việc với Tổng cục 5, Bộ Công An. Trước khi bị giải thể, Tổng cục 5 là cơ quan tình báo, có bằng chứng cho thấy họ hack để theo dõi giới hoạt động chính trị, người bất đồng chính kiến. Họ nằm trong danh sách khách hàng bị lộ của Hacking Team. Nếu có nhà báo nào muốn điều tra về việc này (tôi không rõ Việt Nam có còn nhà báo điều tra nào không, hay là tuyệt con mẹ nó chủng hết rồi), nên nghiên cứu đống email của Hacking Team bị Wikileaks công bố năm 2015.
Việc BKAV hợp tác với giới tình báo Việt Nam không mới, đã được Lulzsec phanh phui từ cả chục năm trước. Vấn đề là Tổng cục 5 đã bị giải thể từ năm 2018 còn đám lãnh đạo thì hoặc là đang ngồi tù hoặc là đang chờ ngày ra tòa. Gần đây nhất Nguyễn Duy Linh, cựu tổng cục phó, con của Nguyễn Văn Hưởng, mới bị bắt. Tất cả nhờ vào công của anh VũAL.
Thế thì BKAV làm gì với Tổng cục 5 vào năm 2021? Dự án cũ? Giúp đối thủ của Mr.Linh theo dõi ông ấy? Hay giúp Mr.Linh theo dõi đám điều tra viên? Chỉ có chunxong mới có thể giúp chúng ta trả lời những câu hỏi này.
Nước nhà đang tràn ngập đau thương vì COVID, bao nhiêu cái dở cái xấu trồi lên cùng một lúc. Biết thì đã quá muộn, bao nhiêu đồng bào đã chết. Tôi hi vọng cú hack của chunxong sẽ mở đầu cho phong trào hacktivism với những hacker yêu tự do và sự thật, hack để đưa ra ánh sáng bao nhiêu gian dối lọc lừa ở quê nhà. Hacking is power!
Comments
Profile như anh mà nói xấu cộng quân là dễ bị để ý lắm đó.
Hacking is the Power hahaha
Qua đây cũng là bài họccảnh báo các công ty làm security. Đừng "lo" bảo vệ khách hàng quá mà quên mình lol.
Rất cảm ơn anh Thái đã chia sẻ.
String user = "sa";
String pass = "secret";
thì nó ko lq gì đến Windows authentication nhé, và một khi mih có thể thực hiện query dưới quyền root or admin( quyền cao nhất rồi) thì mih ko cần thiết tìm password của root hay sa làm gì nữa cả( sorry vì mih nói hơi rối!)
-CM1:"bạn đã viết ứng dụng web kết nối sql bao giờ chưa?..."
+ ý b là mih ko hiểu cách để tạo connect đến db?
+ b hỏi mih có biết MSSQL Win Authen... ko? Mình có hiểu user hdh, sql,... Mih biết hay ko thì có lq đến việc mà db của họ được run bởi root user của db sao? Mih sẽ coi như db của BKAV là MSSQL vậy theo bạn khi viết ứng dụng web connect đến db và sử dụng SQL Server authentication( ac là 'sa':'...') thì mọi query sẽ dk thực hiện dưới quyền của ai? sa,right?( mih cũng kb ns thế này b có hiểu ý mih ko, nhưng mih ko biết giải thích thế nào hơn, chỉ ns chung là db của họ mà chạy bởi root user thì Chunxong là gì trong db họ cũng dk)
-CM2: ns về lỗ hổng SQLi thì hacker có thể làm dk các việc thêm, sửa, xóa dữ liệu, đọc local file, write file to local, rce. Nhưng theo như mih tìm hiểu về bài tấn công của Chunxong thì hacker này ko tạo dk rce bằng SQLi thì chắc là cũng ko write file dk rồi, đọc file thì ko thấy ns đến
+ bạn ns chiếm quyền điểu khiển ứng dụng( b2 dẫn đến bước 3,4 khó hiểu là sao?) nếu chiếm dk quyền rồi thì cần gì pai làm mấy bước khác làm bước 3, 4 làm gì nữa?
+ và cũng theo tt mih tìm hiểu được( có thể sai) thì bằng 1 cách nào đó( ko pai SQLi) đã tạo được meterpreter reverse shell( cách nào thì chắc phải đợi puclic thì mới biết được)
-CM3: b bảo mih dùng 1 SQL User gì gì đấy để hack hệ thống họ xem? b đang nghĩ cái gì vậy? họ cho mih 1 acc db hiển nhiên họ đã pai restrict các lệnh độc hại rồi chứ?
- Mih cũng muốn hỏi b là vậy b đã bao h thực hiện dk RCE through sql injection chưa? vậy theo bạn có những lý do gì dẫn đến RCE này?
- Về việc mà sqli của BKAV này thì mih cũng ko còn lạ gì vì ở VN mih cũng còn đầy các trang web bị lỗi SQLi này, vấn đề là do các coder còn quá non tay( ns chung là kém vì SQLi này chẳng quá khó để khắc phục).
Leo: tui cũng nghĩ đến khả năng từ SQLi bằng cách read/write local files, nhưng muốn làm được thì cái MySQL daemon phải chạy dưới quyền OS root (lưu ý là khác với root@localhost trong MySQL nhé). Hiếm khi nào tui thấy người ta chạy MySQL dưới quyền root lắm.
chunxong nói rằng
>- Through SQLi, I know they run MySQL as 'root' user, but, no ways to RCE from there.
Nhưng tui không rõ 'root' này là OS root hay là DB root.
+ user trong MySQL ko bị disable quyền outfile(write file) và infile(read file)
+ user chạy MySQL daemon phải có quyền write đến cái directory mih muốn ghi. VD: thông thường MySQL daemon thường được chạy bởi mysql(MariaDB)/mysqld thì có thể write file đến thư mục /tmp, /var/lib/mysql,...( những thư mục mà mysql/mysqld có quyền write). Và MySQL daemon hoàn toản có thể chạy bởi other normal user cũng như root. Thế nên theo em ko nhất thiết MySQL daemon phải chạy dưới quyền root OS đâu ạ@@
---Đây chỉ là một ít kinh nghiệm và lập luận của em nếu có sai thì mong ai đọc được cmt này góp ý và bỏ qua cho, tk u!!!---
Ngay cả những phần mềm diệt virut cũng có lối. và cũng có thể bị tấn công.
Nhưng nếu mua để phòng tránh 1 số trường hợp mà click vào link lạ thì phần mềm diệt virut sẽ tự động phát hiện được không anh?