Msrpc trên window là gì

Đã có nhiều kịch bản Đội Đỏ, Thử thách bắt cờ nơi chúng tôi đối mặt với Windows Server. Sau khi khai thác và có được chỗ đứng ban đầu trong máy chủ, thật khó để trích xuất dữ liệu và cũng như có những tình huống chúng ta không thể truy cập vào máy chủ. Nhưng sử dụng SMB, chúng ta có thể thực thi các lệnh từ xa trên máy chủ. SecureAuth đã hình dung ra điều này và họ đã cho chúng tôi một trong những bộ sưu tập các lớp Python tuyệt vời nhất để làm việc trên các giao thức khác nhau. Bộ sưu tập này được đặt tên là Impquet.

Kho lưu trữ chính thức của GitHub:  https://github.com/SecureAuthCorp/impacket

Mục lục

  • Giới thiệu về SMB
  • Giới thiệu về MSRPC
  • Cấu hình được sử dụng trong thực tế
  • Thể loại 
  • Cài đặt
  • smbclient.py
  • lookupsid.py
  • reg.py
  • rpcdump.py
  • samrdump.py
  • services.py
  • ifmap.py
  • opdump.py
  • getArch.py
  • netview.py
  • Phần kết luận

Giới thiệu về SMB

SMB là một giao thức mạng còn được gọi là giao thức Khối tin nhắn máy chủ. Nó được sử dụng để liên lạc giữa máy khách và máy chủ. Nó có thể được sử dụng để chia sẻ các tập tin, máy in và một số tài nguyên mạng khác. Nó được IBM tạo ra vào những năm 1980.

Giới thiệu về MSRPC

MSRPC hoặc Cuộc gọi thủ tục từ xa của Microsoft là phiên bản sửa đổi của DCE / RPC. Nó được Microsoft tạo ra để tạo liền mạch mô hình máy khách / máy chủ trong Windows. Các giao thức miền Windows Server hoàn toàn dựa trên MSRPC.

Cấu hình được sử dụng trong thực tế

  • Máy tấn công
    • HĐH: Kali Linux 2020.1
    • Địa chỉ IP: 168.1.112
  • Máy mục tiêu
    • HĐH: Windows Server 2016
    • Địa chỉ IP: 168.1.105

Thể loại 

  • Thực thi từ xa
  • Kerberos
  • Bí mật Windows
  • Công cụ máy chủ / Tấn công MiTM
  • WMI
  • Lỗ hổng đã biết
  • SMB / MSRPC
    • smbclient.py
    • lookupsid.py
    • reg.py
    • rpcdump.py
    • samrdump.py
    • services.py
    • ifmap.py
    • opdump.py
    • getArch.py
    • netview.py
  • MSSQL / TDS
  • Định dạng tệp
  • Khác

Cài đặt

Trước khi sử dụng bộ công cụ Impquet trên hệ thống của chúng tôi, chúng tôi cần cài đặt nó. Quá trình cài đặt khá đơn giản. Đầu tiên, hãy đến Kho lưu trữ GitHub bằng cách nhấp vào đây . Sau đó, sử dụng lệnh git clone, chúng tôi sao chép kho lưu trữ hoàn chỉnh vào Máy tấn công. Sau khi nhân bản, chúng ta có thể thấy rằng có một tập tin setup.py, hãy để chúng tôi cài đặt nó. Sau khi cài đặt, chúng tôi sẽ hướng đến thư mục ví dụ và sử dụng các tập lệnh theo sự thuận tiện của chúng tôi.

Msrpc trên window là gì

smbclient.py

Có những lúc chúng tôi cần thực hiện nhiều hành động giữa máy tấn công và máy mục tiêu. Nó có thể được liệt kê các chia sẻ và tệp, đổi tên một số tệp, tải lên các tệp nhị phân hoặc tải xuống các tệp từ máy đích. Có một số tình huống chúng ta thậm chí cần tạo một hoặc hai thư mục trên máy đích. Thực hiện các hành động như vậy có thể gặp khó khăn trong khi làm việc với một vỏ có thể được phát hiện hoặc có thể đóng bất cứ lúc nào. Kịch bản smbclient.py giúp chúng ta trong những tình huống này. Nó có thể kết nối với Máy mục tiêu với sự trợ giúp của một loạt các thuộc tính.

Yêu cầu:

  • Miền
  • tên tài khoản
  • Mật khẩu / Mật khẩu Hash
  • Địa chỉ IP mục tiêu

Khi chúng tôi cung cấp các tham số sau cho smbclient theo định dạng như dưới đây và chúng tôi sẽ được kết nối với máy đích và chúng tôi có một vỏ smb có thể chạy toàn bộ các lệnh như dir, cd, pwd, put, đổi tên, thêm, del, rm, mkdir, rmdir, thông tin, v.v.

Cú pháp:

smbclient.py toihuongdan.com / [user]: [mật khẩu / mật khẩu băm] @ [Địa chỉ IP đích]

Msrpc trên window là gì

lookupsid.py

Mã định danh bảo mật (SID) là một giá trị duy nhất có độ dài thay đổi được sử dụng để xác định tài khoản người dùng. Thông qua Bảng liệt kê người dùng SID, chúng tôi có thể trích xuất thông tin về những gì người dùng tồn tại và dữ liệu của họ. Kịch bản tra cứu có thể liệt kê cả người dùng cục bộ và tên miền. Có một mô-đun Metasploit cho cuộc tấn công này. Nếu bạn đang dự định tiêm một máy chủ mục tiêu bằng một vé vàng hoặc bạc thì một trong những điều bắt buộc là SID của 500 người dùng. Lookupsid.py có thể được sử dụng trong kịch bản đó. Khi chúng tôi cung cấp các tham số sau cho Lookupsid theo định dạng như dưới đây.

Yêu cầu:

  • Miền
  • tên tài khoản
  • Mật khẩu / Mật khẩu Hash
  • Địa chỉ IP mục tiêu

Cú pháp:

lookupsid.py toihuongdan.com / [user]: [mật khẩu / mật khẩu băm] @ [Địa chỉ IP đích]

Msrpc trên window là gì

reg.py

Tập lệnh Impquet này được trích xuất ra khỏi reg.exe của HĐH Windows. Reg.exe là một dịch vụ thực thi có thể đọc, sửa đổi và xóa các giá trị đăng ký khi được sử dụng với sự kết hợp eh của truy vấn, thêm, xóa từ khóa tương ứng. Chúng tôi thậm chí có thể bắt đầu bày tỏ tầm quan trọng của việc truy cập vào sổ đăng ký. Đăng ký kiểm soát từng khía cạnh của hệ thống. Nó có thể được sử dụng để có được thông tin về các chính sách, phần mềm khác nhau và cũng có thể thay đổi một số chính sách đó.

Yêu cầu:

  • Miền
  • tên tài khoản
  • Mật khẩu / Mật khẩu Hash
  • Địa chỉ IP mục tiêu
  • Tên khóa đăng ký

Cú pháp:

reg.py toihuongdan.com / [user]: [password: password hash] @ [Địa chỉ IP đích] [hành động] [tham số hành động]

Msrpc trên window là gì

rpcdump.py

RPC hoặc Cuộc gọi thủ tục từ xa là khi một chương trình máy tính khiến một thủ tục thực thi trong không gian địa chỉ khác nhau được mã hóa như một cuộc gọi thủ tục thông thường. Kịch bản này có thể liệt kê những điểm cuối cho chúng ta. Nó cũng khớp chúng với một số điểm cuối nổi tiếng để xác định chúng.

Yêu cầu:

  • Miền
  • tên tài khoản
  • Mật khẩu / Mật khẩu Hash
  • Địa chỉ IP mục tiêu

Cú pháp:

rpcdump.py toihuongdan.com / [user]: [Mật khẩu / Hash mật khẩu] @ [Địa chỉ IP đích]

Msrpc trên window là gì

samrdump.py

Samrdump là một ứng dụng lấy thông tin nhạy cảm về máy mục tiêu được chỉ định bằng Trình quản lý tài khoản bảo mật (SAM). Đó là một giao diện từ xa có thể truy cập được trong dịch vụ Môi trường điện toán phân tán / Cuộc gọi thủ tục từ xa (DCE / RPC). Nó liệt kê tất cả các chia sẻ hệ thống, tài khoản người dùng và thông tin hữu ích khác về sự hiện diện của mục tiêu trong mạng cục bộ. Hình ảnh rõ ràng cho chúng ta thấy tất cả các tài khoản người dùng được giữ bởi máy từ xa. Kiểm tra tất cả các chia sẻ có sẵn cho dữ liệu nhạy cảm và truy cập vào các tài khoản người dùng khác có thể tiết lộ thêm thông tin có giá trị.

Yêu cầu:

  • Miền
  • tên tài khoản
  • Mật khẩu / Mật khẩu Hash
  • Địa chỉ IP mục tiêu

Cú pháp:

samrdump.py [tên miền] / [người dùng]: [Mật khẩu / Mật khẩu băm] @ [Địa chỉ IP đích]

Msrpc trên window là gì

services.py

Kịch bản dịch vụ của Impquet giao tiếp với các dịch vụ Windows với sự trợ giúp của Giao diện MSRPC. Nó có thể bắt đầu, dừng, xóa, đọc trạng thái, cấu hình, liệt kê, tạo và thay đổi bất kỳ dịch vụ nào. Trong khi thực hiện các nhiệm vụ Nhóm Đỏ, có rất nhiều nhiệm vụ có thể được đơn giản hóa nếu chỉ, chúng tôi có quyền truy cập vào các dịch vụ của máy Target. Điều này làm cho tất cả một nhiệm vụ đơn giản.

Yêu cầu:

  • Miền
  • tên tài khoản
  • Mật khẩu / Mật khẩu Hash
  • Địa chỉ IP mục tiêu
  • Hoạt động

Cú pháp:

services.py toihuongdan.com / [user]: [Mật khẩu / Mật khẩu Hash] @ [Địa chỉ IP đích] [Hành động]

Msrpc trên window là gì

ifmap.py

Các tập lệnh Ifmap ban đầu liên kết với giao diện MGMT của máy Target. Sau đó, nó tìm nạp một danh sách các ID giao diện. Sau đó, nó thêm các ID đó vào một danh sách lớn các UUID khác mà nó đã có trong cơ sở dữ liệu của nó. Sau đó, nó cố gắng liên kết từng giao diện và báo cáo trạng thái của giao diện. Tình trạng có thể được liệt kê hoặc lắng nghe. Khả năng thu thập thông tin của nó là vô song. Có một Mô-đun Metasploit hoạt động khá giống với kịch bản này là Phụ trợ / máy quét / dcerpc / endpoint_mapper, Danh sách các UUID (Mã định danh duy nhất) đang chạy ánh xạ điểm cuối được ánh xạ tới các dịch vụ duy nhất. Sau khi nhận được các dịch vụ này, kẻ tấn công có thể tìm kiếm trên internet để tìm xem liệu có bất kỳ dịch vụ nào trong số này dễ bị tràn qua RPC không.

Yêu cầu:

  • Địa chỉ IP mục tiêu
  • Cổng mục tiêu
  • Tên máy chủ (tùy chọn)

Cú pháp:

ifmap.py [Địa chỉ IP đích] [Cổng đích]

Msrpc trên window là gì

opdump.py

Kịch bản lệnh này liên kết với tên máy chủ đã cho: cổng và kết nối với giao diện DCERPC (Môi trường điện toán phân tán / Cuộc gọi thủ tục từ xa). Sau khi kết nối, nó cố gắng gọi lần lượt 256 số thao tác đầu tiên và báo cáo kết quả của mỗi cuộc gọi. Điều này tạo ra một loạt các kết nối TCP đến máy chủ lưu trữ đã cho: port!

Nó cho đầu ra như sau:

op 0 (0x00): rpc_x_bad_stub_data

op 1 (0x01): rpc_x_bad_stub_data

op 2 (0x02): rpc_x_bad_stub_data

trên 3 (0x03): thành công

op 4 (0x04): rpc_x_bad_stub_data

ops 5-255: nca_s_op_rng_error

rpc_x_bad_stub_data, rpc_s_access_denied và thành công thường có nghĩa là có một hoạt động tại số đó.

Yêu cầu:

  • Địa chỉ IP
  • Tên máy chủ (tùy chọn)
  • Phiên bản giao diện cổng

Cú pháp:

opdump.py [Địa chỉ IP đích] [Phiên bản giao diện cổng]

Msrpc trên window là gì

getArch.py

Tất cả các PDU (Đơn vị dữ liệu giao thức) được mã hóa theo cú pháp truyền NDR64 phải sử dụng giá trị 0x10 cho nhãn định dạng biểu diễn dữ liệu. Giá trị này chỉ được sử dụng trong việc chuyển các hệ thống bit x64. Tập lệnh này khi được cung cấp với một mục tiêu đã cố gắng giao tiếp với hệ thống đích và thu thập giá trị của nhãn định dạng biểu diễn dữ liệu. Sau đó, nó khớp với cú pháp NDR64 được lưu trữ trong mã của nó. Sau đó, nó có thể cung cấp thông tin cho kẻ tấn công nếu Hệ điều hành là hệ thống 64 bit hoặc 32 bit. Chúng tôi cũng có thể cung cấp một danh sách các mục tiêu và nó có thể hoạt động đồng thời trên tất cả các mục tiêu.

Yêu cầu:

  • Địa chỉ IP mục tiêu

Cú pháp:

getArch.py ​​-target [Địa chỉ IP mục tiêu]

getArch.py ​​-target [Danh sách mục tiêu]

Msrpc trên window là gì

netview.py

Nó là một công cụ liệt kê. Nó yêu cầu tên miền để liệt kê máy chủ. Nó cũng có thể được cung cấp với một danh sách các máy chủ hoặc mục tiêu. Khi một danh sách được thu thập sau đó netview kiểm tra từng điều sau đây:

  • Các địa chỉ IP
  • Cổ phiếu
  • Phiên
  • Đăng nhập vào người dùng

Khi tìm thấy thông tin, nó không dừng lại. Nó liên tục lặp lại các máy chủ được tìm thấy và theo dõi chi tiết ai đã đăng nhập / đăng xuất từ ​​các máy chủ từ xa. Nó giữ các kết nối với các hệ thống đích và nó rất tàng hình vì nó chỉ gửi một vài gói DCERPC. Kịch bản này yêu cầu máy tấn công có thể phân giải tên NetBIOS của máy miền. Điều này có thể đạt được bằng cách đặt DNS trên máy tấn công thành DNS miền.

Yêu cầu:

  • Miền
  • Địa chỉ IP mục tiêu
  • tên tài khoản

Cú pháp:

netview.py [tên miền] / [Người dùng] -target [Địa chỉ IP mục tiêu] -những người dùng [Danh sách người dùng]

Msrpc trên window là gì

Phần kết luận

Trong bài viết này, chúng tôi đã thảo luận về các tập lệnh trong Bộ công cụ Impquet có thể tương tác với các dịch vụ SMB / MSRPC trên hệ thống đích. Impairs có nhiều danh mục sẽ tiếp tục khám phá trong thời gian tới.