privilege escalate with Hijacking

简介
渗透测试过程中, 经常会遇到各种提权场景, 本文将记录HTB及OSCP过程中遇到的Hijacking提权手法

linux path Hijacking

PATH是Linux和类Unix操作系统中的环境变量, 用于告诉shell解释器在那些目录、按什么顺序查找可执行文件; 超级管理员(root)用户比其他用户多/sbin目录和/usr/sbin目录, 这两个目录用于存放管理系统的一些特权执行。查看当前shell中PATH的命令:env|grep PATH, echo $PATH

demo1

通过pspy发现产生一个新的tty时, 系统执行的一批命令

1
2
3
4
5
2019/06/20 07:13:30 CMD: UID=0    PID=20945  | sshd: jkr [priv]
2019/06/20 07:13:30 CMD: UID=0 PID=20946 | sh -c /usr/bin/env -i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin run-parts --lsbsysinit /etc/update-motd.d > /run/motd.dynamic.new
2019/06/20 07:13:30 CMD: UID=0 PID=20947 | run-parts --lsbsysinit /etc/update-motd.d
2019/06/20 07:13:30 CMD: UID=0 PID=20948 | /bin/sh /etc/update-motd.d/10-uname
2019/06/20 07:13:30 CMD: UID=0 PID=20949 | uname -asom

进程20946开启了一个新的shell解释器, 并设置shell的环境变量为/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin, 然后先后用相对路径执行run-partsuname命令, 由于系统先用root权限设置环境变量后用root权限执行run-parts和uname命令, 因此无法通过修改PATH环境变量的方法进行Hijacking。
通过find / -type d -writeable 2>/dev/null命令查看系统中的可修改的目录, 找到/usr/local/bin目录当前用户可写。
通过find / -name run-parts -type f 2>/dev/nullfind / -name uname -type f 2>/dev/null命令查找使用相对路径命令所在位置, 发现uname命令位于/usr/sbin目录中, 因此当执行uname命令时, shell解释器先后从PATH变量中以”:”分割的目录中从前往后搜索uname执行, 当找到可执行的uname时将执行uname -asom
因此, 在/usr/local/bin目录中写入反弹shell并命名为uname, 设置可执行权限, 在攻击机器上开启nc监听端口, 重新登陆一个tty即可实现提权。

demo2

通过find / -perm -4001 -type f 2>/dev/null命令查找到用户自定义的SUID指令, 运行pspy监听进程同时运行对应的指令, 查看指令中是否存在以root权限和相对路径执行命令的情况, 如果存在, 通过修改当前shell的PATH路径(export PATH=/tmp/:$PATH)并在/tmp目录中创建可执行、用于反弹root shell且具有相同名字的指令, 然后运行suid文件即可.
Linux Privilege Escalation Using PATH Variable

python package Hijacking

python是一种解释性语言, 在python脚本中导包时, 也是按照对应的path路径进行查找的, 可通过python -c "import sys;print(sys.path)"查看python导包时的找包目录及顺序; 如果存在当前账号可写的python package目录, 则可利用PATH Hijacking中demo1里的方法来进行Hijacking。
demo: WriteUp
like: Privilege Escalation via Python Library Hijacking

owefsad wechat
进击的DevSecOps,持续分享SAST/IAST/RASP的技术原理及甲方落地实践。如果你对 SAST、IAST、RASP方向感兴趣,可以扫描下方二维码关注公众号,获得更及时的内容推送。
0%