攻擊成功,並得到一個shell,但是這裏卻只是一個簡單的shell,首先需要把它轉換爲一個交互式的shell
在簡單shell中直接按刪除鍵是不行的,要按住ctrl鍵之後,再按住刪除鍵纔可以,其他鍵的使用也一樣
命令
python -c 'import pty;pty.spawn("/bin/bash")'
現在已經進入了一個交互的shell了,但是可以看到這只是一個普通的用戶,所以我們要把他提到root用戶
suid提權的原理
suid是什麼,有什麼作用?
SUID (Set owner User ID up on execution) 是給予文件的一個特殊類型的文件權 限。在 Linux/Unix中,當一個程序運行的時候, 程序將從登錄用戶處繼承權限。 SUID被定義爲給予一個用戶臨時的(程序/文件)所有者的權限來運行一個程序/文 件。簡而言之用戶在執行程序/文件/命令的時候,將獲取文件所有者的權限以及所有 者的UID和GID
簡單來說。suid,它會出現在文件擁有者權限的執行位上,具有這種權限的文件會在其執行時,使調用者暫時獲得該文件擁有者的權限。
所以我們去找一個文件擁有者爲root,而且其執行位上有s的執行文件,那麼即使我們用普通用戶運行這個文件時,這個文件的執行權限就是root
命令
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {}
爲什麼使用find命令呢?
原因:在find的後面,是可以帶入命令的,而我們要的就是執行其他命令。也就是說,當我們調用find命令時,因爲find命令有s權限,所以find在執行時的權限就是root命令,而在find後面的帶入的命令也就是在root權限下執行的命令了
去查看find
帶入命令的方法:
-exec command 。-exec選項後面跟隨着所要執行的命令或腳本,然後是一對大括號 { },-個空格,一個反斜槓\加上一個分號。因爲分號;在bash的環境下空格是有特殊意義的,因此利用反斜槓來跳脫
提權命令
先創建一個空文件test,使用命令:
find test -exec '/bin/sh' \ ;