投稿文章:记一次打HTB靶机过程

2020-02-04 14:13:09 0 3689

Bank-10.10.10.29

Datetime:2019/12/29

Author:Beauty

致力于开新坑

涉及知识

DNS域传送

Linux文件权限与属性之 SUID

1.信息收集

nmap常规跑

nmap -sC -sV 10.10.10.29
22端口:openSSH    Ubuntu
53端口:53端口为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析,DNS服务在NT系统中使用的最为广泛。通过DNS服务器可以实现域名与IP地址之间的转换,只要记住域名就可以快速访问网站。
端口漏洞:如果开放DNS服务,可以通过分析DNS服务器而直接获取Web服务器等主机的IP地址,再利用53端口突破某些不稳定的防火墙,从而实施攻击。
80端口:Apache/2.4.7      

191231131081e7c60e6e8ee884.png

访问80端口------Apache默认页面

19123113115ee7c4cb4dcb425d.png

dirbuster 跑目录,没发现什么。

2.开始

考虑从53 端口入手。dns作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

使用dig或者nslookup命令。 使用nslookup命令

nslookup
SERVER 10.10.10.29
bank.htb

1912311312a8e4187458ab5628.png

其中 bank.htb 为常识,师父:一般靶机叫什么名,网站就叫什么名。 佩服.jpg

检测到bank.htb 确实存在。

使用dig命令 刚开始使用dig命令时,不知道bank.htb,所以未成功

纠正后

dig axfr bank.htb @10.10.10.29

可以清楚的看到整个域下的域名解析信息,从而将整个域暴漏无遗

19123113132b8ad803c9f11b3b.png

修改resolv.conf 该文件是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名

19123113143e3fccad65442061.png

nameserver表示解析域名时使用该地址指定的主机为域名服务器。

最主要是nameserver关键字,如果没指定nameserver就找不到DNS服务器

1912311315d55da292f00e2319.png

修改后可通过ping域名来检测是否修改成功

19123113157f40c8fe91990cf1.png

修改成功。

浏览器访问[url]http://bank.htb[/url]

发现登录页面,尝试弱口令失败。

由于修改了DNS配置文件,所访问的域也就不同。

再次进行目录扫描

dirsearch工具

19123113170c1fe7c82113ca09.png

字典不够强大~

发现最近扫目录,别的老板都可以扫出自己想要的东西,而我不能。o(╥﹏╥)o

突然发现自己的kali有点迷,在resolv.conf里添加nameserver的时候,必须要将10.10.10.29添加在最上面一行,他才会解析。

balance-transfer目录发现许多acc文件。找到最突出的那个。257(师出反常必有妖)

1912311318990f0664a30c3055.png

发现账户以及密码

191231131831835ca7ff6183fe.png

--ERR ENCRYPT FAILED
+=================+
| HTB Bank Report |
+=================+

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

用这个账户登录进去发现有上传文件的地方

support.php

19123113193834d1783af9c7ec.png

习惯性地查看前端代码,发现一句注释,大概意思就是,会把后缀为.htb的文件当php解析。有点傻

1912311320a7cd32691b404819.png

上传冰蝎php脚本,burp抓包,修改后缀,repeater发现上传成功。

19123113204cb5966eada68806.png

19123113216f187b078a766075.png

点击上传的文件,用冰蝎连接对应路径,出现phpinfo,成功。

19123113216dbf3396c71f8d4c.png

whoami后,不出意外的果然是普通权限

开始漫漫提权路。

3.提权

冰蝎“给我连”结合 msf paload 进行监听

1912311322e313e17d94f7de74.png

到home 目录下,htb的user flag 一般都在home目录下。

19123113234319a84d6de73b33.png

user.txt user flag具体是啥就不透露了

接下来要找到root.flag,尝试进一下root目录,被拒绝。

准备先在本机搭建一个小型服务器,以传输提权脚本

191231132481fe8a7f60120f06.png

shell进入目标机,获取本机的提权建议脚本

其中要注意获取文件的路径

这里我是直接在提权脚本所在文件处搭建的小型服务器

所以wget的时候就难得再加路径了,简单点

191231132547c473b8e21fc059.png

1912311326102a080f29654971.png

提权脚本给出了很多提权建议,其中还包括脏牛提权脚本,图中没列出来

1912311326e934bec1ccf24042.png

先试一试“eBPF_verifier“

下载它

我是在本机下载的,所以再把目标机上使用相同的方式获取该脚本-----45010.c

1912311327e82b590cc104fde2.png

.c文件可以使用gcc命令进行编译。但是在这台目标机上,该提权脚本失败了。还是换回脏牛。

upset,o(╥﹏╥)o 这台机器所给的权限都很低。找不到能执行文件的有效目录。很难受

转战LinEnum,使用LinEnum.sh

同样的方法传到目标机上,运行后,会发现该脚本给出了目标机很多信息

LinEnum列出了一串SUID files

19123113289e05b22d86fae094.png

SetUID(或者 s 权限):当一个具有执行权限的文件设置SetUID权限后,用户执行这个文件时将以文件所有者的身份执行。

在此“文件所有者”的第三位是s权限

进入到 /var/htb/bin 里面

执行emergency文件时,其他用户可以获取所有者身份,只是有时间限制。

然后cd /root

找到root.txt get flag!

191231132985fea17322472831.png

19123113299f45716615ccbb94.png

4.总结

Linux 文件权限

借鉴 [url]https://www.cnblogs.com/Jimmy1988/p/7260215.html[/url] 的博客。学习学习

交互式shell

在目标主机里,很多键和命令都不好使用 用以下命令。使目标主机有交互式shell

$ which python
/usr/bin/python
$ python -c 'import pty;pty.spawn("/bin/bash")'
$ ctrl + z
$ stty raw -echo && fg
$ export TERM=screen

HTB 是一个很好的练习平台,要考OSCP的老板们可以多打打这上面的机器,有退休机(出了攻略的),也有活跃机(没攻略,也不允许在退休前透露机子的攻略)

第一次投稿,老板们轻喷~当然,文中还有许多不足之处,望各位老板指正。

关于作者

Beauty4篇文章38篇回复

评论0次

要评论?请先  登录  或  注册