Lỗi c windows syswow64 cmd.exe c powershell.exe hidden invoke-expression năm 2024

while leaving opened all CMD windows that were evoked by executing of some BAT files; even if PS1 is executed as Administrator

SS

66 Posts: 28 Joined: 2023-Jan-24, 4:51 pm

by SS

66 » 2023-Aug-09, 10:46 am

The problem all along has been an active countdown in CMD window [used it my test files]- it was making any CMD window with it being immune to being closed with PowerShell

Even as simple BAT as this one

will not be closed until the timeout in it is finished, even if PS1 is uses both methods

Code:

Stop-Process -Name cmd -Force
(Get-Process cmd).Kill()

and is executed as Administrator while BAT was without privileges

Solution to this seems to be incorporation of either

or

as apparently CMD window that has an active timeout in changes its name to timeout. This works even if BAT was executed as Administrator while PS1 is not

Leo thang đặc quyền luôn luôn là quá trình thực nhiện việc liệt kê tất cả các thông tin (enumeration) về hệ thống một cách đúng đắn. Nhưng để thực hiện quá trình liệt kê này bạn cần phải biết thứ gì cần tìm và kiểm tra. Điều này cần bạn phải quen thuộc với các hệ điều hành, đi kèm với kinh nghiệm sử dụng. Đầu tiên bạn có thể thấy leo thang đặc quyền là công việc khó thực hiện, nhưng sau một thời gian, bạn bắt đầu lọc bỏ được điều gì là bình thường và điều gì là bất thường. Dần dần công việc này sẽ dễ dàng hơn khi biết được thứ mà bạn cần tìm kiếm hơn là phải đào bới hết mọi thứ và hy vọng tìm ra được cái kim trong đáy bể. Hy vọng rằng hướng dẫn này sẽ cung cấp cho bạn một nền tảng vững chắc để bạn có thể xây dựng và bắt đầu triển khai kỹ năng của bạn.

Hướng dẫn này được truyền cảm hứng từ bài blog g0tm1lk’s Basic Linux Privilege Escalation, thứ mà có thể bạn đã từng xem và sử dụng. Tôi muốn sao chép hướng dẫn của anh ta, ngoại trừ việc đây là hướng dẫn dành cho Windows. Vì vậy mà hướng dẫn này sẽ tập trung chủ yếu vào khía cạnh liệt kê ra các tài nguyên có sẵn.

Lưu ý: Tôi không phải là chuyên gia về việc này và vẫn đang học hỏi rất nhiều.

CẤU TRÚC CỦA HƯỚNG DẪN

Trong mỗi phần đầu tiên tôi sẽ cung cấp câu lệnh CMD truyền thống và sau đó là một câu lệnh trên Powershell có chức năng tương tự. Luôn là cần thiết khi trang bị cả 2 loại câu lệnh này và Powershell thì có phần đa năng hơn về khoản tạo kịch bản hơn câu lệnh CMD truyền thống. Tuy nhiên không có câu lệnh Powershell tương tự cho tất cả mọi thứ (hoặc CMD vẫn dễ dàng/tốt hơn cho một số thứ), vì vậy có những phần của bài viết sẽ chỉ chứa các câu lệnh CMD bình thường.

Phiên bản 1.3 – Cập nhật lần cuối vào Tháng mười năm 2018

HỆ ĐIỀU HÀNH

Bạn đang xài hệ điều hành và kiến trúc gì? Nó có thiếu bản vá nào hay không?

Có điều gì thú vị trong các biến môi trường? Liệu có một domain controller trong

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" 2>nul | findstr "DefaultUserName DefaultDomainName DefaultPassword"

3?

Get-ChildItem Env: | ft Key,Value

Có tồn tại các ổ đĩa mạng hay không?

wmic logicaldisk get caption,description,providername Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root

NGƯỜI DÙNG

Người dùng hiện tại là ai?

Người dùng có quyền hạn nào hay ho hay không? Lưu ý: Cột State không có nghĩa là người dùng có hoặc không có quyền truy cập đến quyền hạn đó. Nếu quyền hạn được liệt kê, vậy thì người dùng có quyền đó.

Có những người dùng nào trên hệ thống? Có thư mục người dùng nào mà chưa được dọn sạch sẽ hay không?

net users dir /b /ad "C:\Users\" dir /b /ad "C:\Documents and Settings\" # Windows XP and below

Get-LocalUser | ft Name,Enabled,LastLogon Get-ChildItem C:\Users -Force | select Name

Có ai đã đăng nhập vào hệ thống hay không?

Có những nhóm nào trên hệ thống?

Có những người dùng nào trong nhóm Administrators?

net localgroup Administrators

Get-LocalGroupMember Administrators | ft Name, PrincipalSource

Có giá trị nào trong Registry cho người dùng Autologon?

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" 2>nul | findstr "DefaultUserName DefaultDomainName DefaultPassword"

Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon' | select "Default*"

Có điều gì thú vị trong Credential Manager hay không?

cmdkey /list dir C:\Users\username\AppData\Local\Microsoft\Credentials\ dir C:\Users\username\AppData\Roaming\Microsoft\Credentials\

Get-ChildItem -Hidden C:\Users\username\AppData\Local\Microsoft\Credentials\ Get-ChildItem -Hidden C:\Users\username\AppData\Roaming\Microsoft\Credentials\

Chúng ta có thể truy cập các tệp SAM và SYSTEM hay không?

wmic logicaldisk get caption,description,providername Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root

0

CÁC CHƯƠNG TRÌNH, TIẾN TRÌNH VÀ DỊCH VỤ

Các phần mềm nào đã được cài đặt?

wmic logicaldisk get caption,description,providername Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root

1

wmic logicaldisk get caption,description,providername Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root

2

Có tồn tại thư mục hoặc tệp tin có quyền hạn thấp hay không?

Quyền Full Permissions đối với Everyone hoặc Users trong các thư mục của chương trình?

wmic logicaldisk get caption,description,providername Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root

3

Quyền Modify Permissions đối với Everyone hoặc Users trong các thư mục của chương trình?

wmic logicaldisk get caption,description,providername Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root

4

wmic logicaldisk get caption,description,providername Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root

5

Bạn cũng có thể tải lên accesschk từ Sysinternals để kiểm tra các thư mục và tệp tin có thể ghi đè.

wmic logicaldisk get caption,description,providername Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root

6

Các dịch vụ/tiến trình đang chạy trên hệ thống là gì? Có dịch vụ ẩn nào không bị lộ? Nếu có, ta có thể mở lên hay không? Xem phần Chuyển tiếp Cổng trong Phụ lục.

wmic logicaldisk get caption,description,providername Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root

7

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" 2>nul | findstr "DefaultUserName DefaultDomainName DefaultPassword"

4 có một tùy chọn là

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" 2>nul | findstr "DefaultUserName DefaultDomainName DefaultPassword"

5 để xem chủ sở hữu của tiến trình, tuy nhiên bạn cần phải có quyền quản trị để sử dụng.

wmic logicaldisk get caption,description,providername Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root

8

Câu lệnh một dòng này trả lại chủ sở hữu của tiến trình mà không cần quyền quản trị, nếu có giá trị trống bên dưới mục owner thì chắc hẳn tiến trình đang chạy dưới người dùng SYSTEM, NETWORK SERVICE, hoặc LOCAL SERVICE.

wmic logicaldisk get caption,description,providername Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root

9

Có dịch vụ nào có quyền hạn thấp hay không? Chúng ta có thể cấu hình lại thứ gì hay không? Để làm được chúng ta lại cần sử dụng công cụ accesschk.

net users dir /b /ad "C:\Users\" dir /b /ad "C:\Documents and Settings\" # Windows XP and below

0

Có dịch vụ nào có đường dẫn chưa được đóng ngoặc?

net users dir /b /ad "C:\Users\" dir /b /ad "C:\Documents and Settings\" # Windows XP and below

1

net users dir /b /ad "C:\Users\" dir /b /ad "C:\Documents and Settings\" # Windows XP and below

2

Có những công việc định kỳ (scheduled tasks) nào? Có công việc nào được thực hiện tùy chỉnh hay không?

net users dir /b /ad "C:\Users\" dir /b /ad "C:\Documents and Settings\" # Windows XP and below

3

net users dir /b /ad "C:\Users\" dir /b /ad "C:\Documents and Settings\" # Windows XP and below

4

Tiến trình nào chạy lúc khởi động?

net users dir /b /ad "C:\Users\" dir /b /ad "C:\Documents and Settings\" # Windows XP and below

5

net users dir /b /ad "C:\Users\" dir /b /ad "C:\Documents and Settings\" # Windows XP and below

6

Tùy chọn AlwaysInstallElevated có được kích hoạt? Tôi vẫn chưa gặp phải trường hợp nào như thế này nhưng cần phải kiểm tra cho đầy đủ.

net users dir /b /ad "C:\Users\" dir /b /ad "C:\Documents and Settings\" # Windows XP and below

7

MẠNG (NETWORKING)

Có những card mạng (NIC) nào được kết nối? Có phải có nhiều mạng khác nhau?

net users dir /b /ad "C:\Users\" dir /b /ad "C:\Documents and Settings\" # Windows XP and below

8

Có những đường định tuyến nào?

net users dir /b /ad "C:\Users\" dir /b /ad "C:\Documents and Settings\" # Windows XP and below

9

Có thứ gì trong bộ đệm ARP?

Get-LocalUser | ft Name,Enabled,LastLogon Get-ChildItem C:\Users -Force | select Name

0

Có kết nối nào đến các máy khác hay không?

Có những thứ gì bên trong tệp tin hosts?

Get-LocalUser | ft Name,Enabled,LastLogon Get-ChildItem C:\Users -Force | select Name

1

Tường lửa được bật hay chưa? Nếu có thì được cấu hình như thế nào?

Get-LocalUser | ft Name,Enabled,LastLogon Get-ChildItem C:\Users -Force | select Name

2

Có cấu hình giao diện khác nào thú vị hay không?

Có cấu hình SNMP nào hay không?

Get-LocalUser | ft Name,Enabled,LastLogon Get-ChildItem C:\Users -Force | select Name

3

Get-LocalUser | ft Name,Enabled,LastLogon Get-ChildItem C:\Users -Force | select Name

4

CÁC TỆP TIN THÚ VỊ VÀ THÔNG TIN NHẠY CẢM

Phần này hơi loạn nên bạn sẽ muốn chuyển đầu ra của câu lệnh vào tệp txt để xem lại và duyệt khi cần.

Có mật khẩu bên trong registry hay không?

Get-LocalUser | ft Name,Enabled,LastLogon Get-ChildItem C:\Users -Force | select Name

5

Có các tệp sysprep hoặc tệp unattend mà chưa được dọn dẹp hay không?

Get-LocalUser | ft Name,Enabled,LastLogon Get-ChildItem C:\Users -Force | select Name

6

Get-LocalUser | ft Name,Enabled,LastLogon Get-ChildItem C:\Users -Force | select Name

7

Nếu máy chủ là máy chủ web IIS, có thứ gì bên trong inetpub? Có thư mục được ẩn đi hay không? Các tệp tin web.config có gì không?

Get-LocalUser | ft Name,Enabled,LastLogon Get-ChildItem C:\Users -Force | select Name

8

Get-LocalUser | ft Name,Enabled,LastLogon Get-ChildItem C:\Users -Force | select Name

9

Bên trong các tệp log của IIS là gì?

net localgroup Administrators

0

XAMPP, Apache hoặc PHP có được cài đặt hay không? Có tệp cấu hình nào hay không?

net localgroup Administrators

1

net localgroup Administrators

2

Có tệp log nào của Apache web server hay không?

net localgroup Administrators

3

net localgroup Administrators

4

Có tệp tin nào thú vị để kiểm tra hay không? Hầu như là ở bên trong các thư mục của người dùng (Desktop, Documents…) ?

net localgroup Administrators

5

net localgroup Administrators

6

Các tệp tin chứa mật khẩu bên trong?

net localgroup Administrators

7

net localgroup Administrators

8

PHỤ LỤC

KỊCH BẢN LIỆT KÊ

Tôi đã tạo ra một kịch bản Powershell hầu như tự động hóa tất cả các công việc trên. Bạn có thể tải về tại đây.

TRUYỀN TẢI CÁC TỆP TIN

Tại một vài thời điểm khi thực hiện leo thang đặc quyền, bạn sẽ cần lấy về các tệp tin từ mục tiêu của mình. Dưới đây là vài cách dễ dàng để thực hiện điều đó.

PowerShell Cmdlet (Powershell 3.0 và cao hơn)

net localgroup Administrators

9

Một dòng PowerShell

Get-LocalGroupMember Administrators | ft Name, PrincipalSource

0

Kịch bản một dòng PowerShell thực thi bên trong bộ nhớ.

Get-LocalGroupMember Administrators | ft Name, PrincipalSource

1

PowerShell với Proxy

Get-LocalGroupMember Administrators | ft Name, PrincipalSource

2

Kịch bản PowerShell

Get-LocalGroupMember Administrators | ft Name, PrincipalSource

3

FTP không tương tác thông qua tệp text. Hữu ích đối với trường hợp bạn bị giới hạn thực thi câu lệnh.

Get-LocalGroupMember Administrators | ft Name, PrincipalSource

4

CertUtil

Get-LocalGroupMember Administrators | ft Name, PrincipalSource

5

Certutil cũng có thể được sử dụng để mã hóa và giải mã base64.

Get-LocalGroupMember Administrators | ft Name, PrincipalSource

6

Get-LocalGroupMember Administrators | ft Name, PrincipalSource

7

Bắt đầu với phiên bản Windows 10 1803 (April 2018 Update) câu lệnh

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" 2>nul | findstr "DefaultUserName DefaultDomainName DefaultPassword"

6 đã được tích hợp, cho phép bạn có cách khác để truyển tải các tệp tin và thậm chí thực thi chúng bên trong bộ nhớ. Nối câu lệnh trực tiếp với cmd sẽ chãy hầu hết mọi thứ nhưng hình như nếu bạn có thứ gì nằm ngoài các câu lệnh thông dụng trong kịch bản, ví dụ các vòng lặp, các câu lệnh if rẽ nhánh, vân vân, nó sẽ không thực thi theo ý muốn.

Get-LocalGroupMember Administrators | ft Name, PrincipalSource

8

Và với PowerShell

Get-LocalGroupMember Administrators | ft Name, PrincipalSource

9

CHUYỂN TIẾP CỔNG (PORT FORWARDING)

Việc làm lộ ra các dịch vụ bên trong mà không thể truy cập từ bên ngoài khá hữu dụng, thông thường là do các cấu hình tường lửa.

Tải lên tệp

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" 2>nul | findstr "DefaultUserName DefaultDomainName DefaultPassword"

7 đến mục tiêu.

Bắt đầu dịch vụ SSH trên máy tính tấn công của bạn.

Ví dụ để làm lộ ra dịch vụ SMB, trên máy mục tiêu, chạy:

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" 2>nul | findstr "DefaultUserName DefaultDomainName DefaultPassword"

0

Đến phiên bản Windows 10 1803 (April 2018 Update), ssh client được bao gồm và được bật sẵn mặc định! Vì vậy bạn có thể sử dụng ssh để chuyển tiếp cổng ngay lập tức.

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" 2>nul | findstr "DefaultUserName DefaultDomainName DefaultPassword"

1

DANH SÁCH TỆP TIN NỘI BỘ ĐƯỢC BAO GỒM (LOCAL FILE INCLUSION)

Đây không phải là một danh sách dài, các thư mục cài đặt sẽ tùy biến, tôi chỉ liệt kê ra những thứ thường gặp phải.