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

4 nhận xét:

  1. vậy là có list index file r, nguy hiểm quá nguy hiểm.

    Trả lờiXóa
    Trả lời
    1. Mình chỉ có được CSDL của forum đó lúc pentest, có mật khẩu admin và mật khẩu tường lửa để vào được dashboard quản trị diễn đàn nhưng không leo cao hơn vào server, nên mã nguồn và hệ thống vẫn không ảnh hưởng gì đâu bạn.

      Xóa
  2. Thớt brute force dựa theo thói quen so ra thì cũng 30/70 quá :)) Quá nhọ cho đội cụ NEO bị bắt bài =))z

    Trả lờiXóa
    Trả lời
    1. Mật khẩu với 8 ký tự chữ + 7 ký tự số ghép lại thì theo mình cũng không dễ đâu bạn.

      Xóa

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