Chiếm server JBOSS trong 2 nốt nhạc!
Hack JBOSS like a boss
Trong bài viết này mình sẽ hướng dẫn các bạn khai thác lỗ hổng RCE tồn tại trên các server JBOSS, qua đó có thể chiếm quyền điều khiển, và làm bất kì thứ gì mình muốn. Nghe hay chứ ). Tuy nhiên mình nói rõ bài viết này chỉ nhằm mục đích tham khảo, thảo luận và mình không hề có ý khuyến khích cũng như không chịu trách nhiệm nếu như có bạn nào sử dụng kiến thức của bài này để làm điều dại dột đâu nhé )). Bóc lịch như chơi ý (
Nói qua về JBOSS, nó là một open-source application server, dựa trên JAVA EE và được triển khai trên khá nhiều server của các doanh nghiệp, tổ chức hiện nay. Phiên bản mới nhất của JBOSS là JBOSS SA 7 hỗ trợ hoàn chỉnh Servlet 3.0. Lỗi mà chúng ta sắp sửa khai thác nằm ở các phiên bản cũ hơn, cụ thể từ JBOSS 5 và 6.
Đầu tiên trước khi tiến hành khai thác ta phải xác định được đối tượng trước đã nhỉ. Ở đây mình sẽ dùng 2 cách để thu thập thông tin về những server sử dụng JBOSS có khả năng tồn tại lỗ hổng, là google dork và shodan. Với google dork, mình sẽ search các mẫu sau: (Các truy vấn này sẽ giúp hiển thị các website với url chứa các chuỗi xác định)
inurl:"jmx-console/HtmlAdaptor"
inurl:"/web-console/Invoker"
inurl:"/invoker/JMXInvokerServlet"
Khá nhiều, gần 23000 kết quả lận )). Hoặc dùng shodan:
Các server JBOSS mà chúng ta khai thác phải public các đường link jmx-console/HtmlAdaptor, /web-console/Invoker hay /invoker/JMXInvokerServlet (Lý do mình sẽ nói ở dưới). Vì thế mình khuyên các bạn nên dùng google dork cho nhanh ))
OK. Giờ lấy 1 server và hack thử nào.
Mình sẽ sử dụng jexboss để khai thác. Đây là một tool được viết bằng python, chuyên dụng để kiểm tra lỗ hổng trên JBOSS. Các bạn có thể clone về từ github:
git clone https://github.com/joaomatosf/jexboss jexboss
Mình kiếm được 1 server, không tiện nói ra, tạm gọi nó là stupid.org )). Giờ vào thư mục jexboss vừa clone về và chạy lệnh sau:
python jexboss.py -host stupid.org
Có lỗi rồi kìa, ở module jmx-console )). Giờ tool sẽ hỏi mình có muốn up shell lên không? OK đi.
Done!
Khoan đã! root kìa )). Mình có nhầm không. Thử lại coi
Get root thật )). Giờ mình có toàn quyền trên server này rồi )). Nghịch tí nào
Vậy đó. Quá đơn giản phải không? Chúng ta get được root chỉ trong vòng 2 nốt nhạc ))
Vậy bản chất của lỗ hổng này là gì. Thực chất lỗ hổng này tồn tại do sự “lười” của người quản trị hệ thống. Khi deploy JBOSS, họ chỉ chạy JBOSS server, tải source code lên mà không chú ý tới phần cấu hình của JBOSS. Đôi khi còn chạy server với quyền root nữa )
Mặc định JBOSS 5 và 6 sẽ public 1 số service dành cho admin. Vì thế nếu không cấu hình lại, bất kì ai cũng có thể sử dụng các service này. Tất cả đều hỗ trợ một action là upload file lên server.
- /jmx-console/HtmlAdaptor
- /invoker/JMXInvokerServlet
- /web-console/Invoker
- /admin-console/
Theo số liệu mà mình thu thập được qua internet scanning thì ở Việt Nam hiện tại có khoảng gần 200 server đang sử dụng nền tảng JBOSS. Trong đó có khoảng 40 server sử dụng các phiên bản nền tảng cũ và đang dính lỗ hổng này. Chúng hoàn toàn có thể dễ dàng trở thành miếng mồi ngon của tin tặc . Như vậy là chỉ với một sơ suất nhỏ của quản trị viên và server của bạn đã có thể bị hack một cách đơn giản bất kì lúc nào bởi bất kì ai biết đến lỗ hổng này và có một chút kiến thức cơ bản về bảo mật . Thật đáng sợ phải không nào.
Qua đây mình cũng xin cảm ơn Whitehat Forum vì kịp thời cung cấp các thông tin về những lỗ hổng mới nhất, tạo điều kiện cho mình có dịp vọc vạch nhiều thứ hay ho như vậy. Hehe
Trong bài viết này mình sẽ hướng dẫn các bạn khai thác lỗ hổng RCE tồn tại trên các server JBOSS, qua đó có thể chiếm quyền điều khiển, và làm bất kì thứ gì mình muốn. Nghe hay chứ ). Tuy nhiên mình nói rõ bài viết này chỉ nhằm mục đích tham khảo, thảo luận và mình không hề có ý khuyến khích cũng như không chịu trách nhiệm nếu như có bạn nào sử dụng kiến thức của bài này để làm điều dại dột đâu nhé )). Bóc lịch như chơi ý (
Nói qua về JBOSS, nó là một open-source application server, dựa trên JAVA EE và được triển khai trên khá nhiều server của các doanh nghiệp, tổ chức hiện nay. Phiên bản mới nhất của JBOSS là JBOSS SA 7 hỗ trợ hoàn chỉnh Servlet 3.0. Lỗi mà chúng ta sắp sửa khai thác nằm ở các phiên bản cũ hơn, cụ thể từ JBOSS 5 và 6.
Đầu tiên trước khi tiến hành khai thác ta phải xác định được đối tượng trước đã nhỉ. Ở đây mình sẽ dùng 2 cách để thu thập thông tin về những server sử dụng JBOSS có khả năng tồn tại lỗ hổng, là google dork và shodan. Với google dork, mình sẽ search các mẫu sau: (Các truy vấn này sẽ giúp hiển thị các website với url chứa các chuỗi xác định)
inurl:"jmx-console/HtmlAdaptor"
inurl:"/web-console/Invoker"
inurl:"/invoker/JMXInvokerServlet"
Khá nhiều, gần 23000 kết quả lận )). Hoặc dùng shodan:
Các server JBOSS mà chúng ta khai thác phải public các đường link jmx-console/HtmlAdaptor, /web-console/Invoker hay /invoker/JMXInvokerServlet (Lý do mình sẽ nói ở dưới). Vì thế mình khuyên các bạn nên dùng google dork cho nhanh ))
OK. Giờ lấy 1 server và hack thử nào.
Mình sẽ sử dụng jexboss để khai thác. Đây là một tool được viết bằng python, chuyên dụng để kiểm tra lỗ hổng trên JBOSS. Các bạn có thể clone về từ github:
git clone https://github.com/joaomatosf/jexboss jexboss
Mình kiếm được 1 server, không tiện nói ra, tạm gọi nó là stupid.org )). Giờ vào thư mục jexboss vừa clone về và chạy lệnh sau:
python jexboss.py -host stupid.org
Có lỗi rồi kìa, ở module jmx-console )). Giờ tool sẽ hỏi mình có muốn up shell lên không? OK đi.
Done!
Khoan đã! root kìa )). Mình có nhầm không. Thử lại coi
Get root thật )). Giờ mình có toàn quyền trên server này rồi )). Nghịch tí nào
Vậy đó. Quá đơn giản phải không? Chúng ta get được root chỉ trong vòng 2 nốt nhạc ))
Vậy bản chất của lỗ hổng này là gì. Thực chất lỗ hổng này tồn tại do sự “lười” của người quản trị hệ thống. Khi deploy JBOSS, họ chỉ chạy JBOSS server, tải source code lên mà không chú ý tới phần cấu hình của JBOSS. Đôi khi còn chạy server với quyền root nữa )
Mặc định JBOSS 5 và 6 sẽ public 1 số service dành cho admin. Vì thế nếu không cấu hình lại, bất kì ai cũng có thể sử dụng các service này. Tất cả đều hỗ trợ một action là upload file lên server.
- /jmx-console/HtmlAdaptor
- /invoker/JMXInvokerServlet
- /web-console/Invoker
- /admin-console/
Theo số liệu mà mình thu thập được qua internet scanning thì ở Việt Nam hiện tại có khoảng gần 200 server đang sử dụng nền tảng JBOSS. Trong đó có khoảng 40 server sử dụng các phiên bản nền tảng cũ và đang dính lỗ hổng này. Chúng hoàn toàn có thể dễ dàng trở thành miếng mồi ngon của tin tặc . Như vậy là chỉ với một sơ suất nhỏ của quản trị viên và server của bạn đã có thể bị hack một cách đơn giản bất kì lúc nào bởi bất kì ai biết đến lỗ hổng này và có một chút kiến thức cơ bản về bảo mật . Thật đáng sợ phải không nào.
Qua đây mình cũng xin cảm ơn Whitehat Forum vì kịp thời cung cấp các thông tin về những lỗ hổng mới nhất, tạo điều kiện cho mình có dịp vọc vạch nhiều thứ hay ho như vậy. Hehe
Chỉnh sửa lần cuối bởi người điều hành: