Để cho đỡ dài dòng thì mình xin bỏ qua phần giới thiệu webshell cũng như mục đích sử dụng webshell…vv.

 

Khi thực hiện pentest, đối với các lỗ hổng có thể tạo webshell trên target thì trong trường hợp chỉ cần PoC đơn giản, các pentester thường tìm đại một webshell nào đó về dùng cho nhanh. Việc tìm “đại” một webshell trên mạng đôi lúc gặp vấn đề là khi drop file lên server thì file bị WinDefend hoặc giải pháp nào đó phát hiện và xóa luôn. 

 

Ví dụ: https://raw.githubusercontent.com/xl7dev/WebShell/master/Aspx/Command.aspx

WinDefend dễ dàng phát hiện.

Kiểm tra trên VirusTotal.

 

Hôm nay, chúng ta cùng tìm hiểu một số “mẹo” để bypass trong trường hợp webshell ASPX nhé.

Cách đầu tiên mình nghĩ tới là thử thay đổi một số keyword dạng signature. Mục tiêu là chia các keyword dạng chuỗi ra thành nhiều phần để tránh việc match các chuỗi này với signature của AV.

Tỉ lệ phát hiện trên VirusTotal giảm đáng kể.

Đối với các tên các function, class thì không thể tách chuỗi rồi cộng chuỗi lại như vậy được. Do đó cách đầu tiên là sử dụng in-line comment để tách ra.

Kết quả vẫn 12/65 😀

Tiếp theo có thể sử dụng Verbatim Identifiers trong C# ( https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/verbatim )

Tỉ lệ phát hiện trên VirusTotal có giảm nhưng không đáng kể.

Cuối cùng là dùng Unicode ( https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#642-unicode-character-escape-sequences )

Kiểm tra lại trên VirusTotal, lần này đã vượt qua hết các AV ở thời điểm hiện tại.

link: https://www.virustotal.com/gui/file/a67d05961871a64bcd3ca9ce5997b9c29a64e651a3577c97533f6239eb14a922

Hy vọng một số “mẹo” này sẽ giúp ích cho cả bên xanh và bên đỏ. Nếu có những “mẹo” mới nào thú vị rất mong nhận được chia sẻ từ mọi người.

Contact: https://twitter.com/Dien_PV

30 lượt xem