Vulnhub DC-1靶机实战

前言

这是一次打DC-1靶机的实战,附上下载链接

https://download.vulnhub.com/solidstate/SolidState.zip

注:前面信息收集的部分太老生常谈了,熟练的可以直接看信息收集总结(不过其实信息收集宁愿麻烦一点,这样后面就不会有遗漏的地方)

信息收集

1.判断靶机ip

开靶机之前nmap扫一次网段,再开靶机之后扫一次,查看多出来的ip就是靶机ip

  • nmap -sP(使用ping扫描确定目标存活)扫网段出结果

这里ip=192.168.250.137

2.初步收集判断漏洞

a.先确定端口

  • 以一个合适的速率对全端口进行扫描

port=22,25,80,110,119,4555

b.-p指定端口进一步收集

使用nmap -O(确定系统版本) -sT(TCP连接) -sV(服务版本) -sC(对sV的加深) 扫描ip获取信息然后存储到nmap文件

  • 22是SSH服务远程连接端口,这里暴露了系统是ubuntu

  • 80是apache端口 版本2.4.25

  • 25(smtp),110(pop3),119,4555(admin-tools) 都是和james有关的邮件服务

  • 其中4555端口有remote比较可疑

3.通过扫描进一步判断

a.nmap自带脚本扫描

  • a--script=vuln

b.niktio漏洞工具扫描

c.对照筛选重要信息

主要报两个可能的洞,csrf和sql注入,以及几个目录(连着下面的目录扫描一起看)

4.目录扫描

a.dirsearch和dirb判断存在目录

/assets/
/images/
/index.html/
/server-status
/about.html
/LICENSE.txt
/README.txt

5.页面查看

首页

wappalyzer插件看一下组件

下面是首页的目录

about.html

  • 这里重点在于输入信息的地方(sql注入尝试)

asset

有一个目录泄露了,都是些重复的信息,scss查了一下是css的扩展功能,感觉没啥用

readme.txt

邮箱账号:aj@lkn.io | @ajlkn
  • 这里是有关 Solid State 的设计相关信息,重点我认为是泄露的邮箱和账号,而且让我知道了AJ这个人是设计这个网站的

LICEMSE.txt

这个我是真看不出什么。

总结

  • linux系统是ubuntu,开放了几个和JAMES邮件服务有关的端口,其中有一个4555端口是用来远程管理邮件的(比较可疑)

  • 其他的就是在80端口找到了几个目录,第一个页面有个上传信息的地方不知道可不可以sql注入,还有就是目录泄露,下面实战我先从JAMES 4555端口开始。如果能直接getshell其他收集的内容大家就可以不用看啦

james的原理

  • 基于上面的分析,我们去查一下james

1.什么是James?

James(Java Apache Mail Enterprise Server)是Apache组织的子项目,由Java语言编写的,整合了诸如POP3,SMTP等邮件协议的企业邮件服务器。

2.POP3,SMTP等内容

概念可以有很多,但是内容其实就那么点

pop3就是只负责接收邮件的协议,SMTP是负责发送邮件的协议

而4555端口运行着的就是james的admin-tools,是专门用来管理所有邮件的工具

上实战

了解完原理以后,我们就要实战了

先到exploitdatbase搜一下这个版本的有无漏洞

我勒个天还真有,直接远程命令执行写我脸上了,去搜一下它的利用条件吧

说是要root账号,我们nc连接一下看看是不是默认账号

事实证明还真是,我们再下载一下刚刚那个执行脚本

审计源码

下面是对刚才那个攻击脚本的审计

总纲介绍

利用:
  • 当我们进入/etc/bash_completion.d的目录的时候就会执行payload

漏洞解析:
  • 首先要知道/etc/bash_completion.d的作用:补全。我们平时能够TAB补全就是因为这个目录

  • 这个漏洞的原理就是,先往里面写入反弹shell的命令,然后当我们在ssh登录的时候(或者以其他方式进入shell的时候)系统就会触发/etc/bash_completion.d,自动补全代码,从而执行里面的命令

第一部分添加用户

这里讲的就是进入管理工具增加一个叫做/etc/bash_completion.d的用户

这样待会使用SMTP向该用户发送信息的时候,系统就会把payload写到这个目录里面去

第二部分SMTP向用户发送信息(payload)

利用漏洞

根据上面的分析,我们知道要利用这个还要先要有人进行SSH登录......(靶机应该不会设置定时有人登录SSH吧),那我们的思路就是去找泄露的ssh账号密码

我们去看ssh有没有版本漏洞,搜出来的全是用户名枚举,一般来说爆破都是最后无能为力的时候才做的,所以这里我们先不管

找SSH登录账号密码

思考

刚刚还有一些东西没有利用到呢,既然有邮件服务我们就去先看一下都有些什么邮件(pop3)。

那新的问题来了,既然要登录邮件,就要知道邮件的账号密码,怎么知道呢,想起了之前有个admin管理工具,应该可以改

1.我们先登录一下看怎么使用

2.大概了解了以后改密码

3.pop3挨个登录

4.看教程

5.挨个查看邮件

最后在mindy的邮件里面发现了一个ssh用户

mindy  
password:P@55W0rd1!2@

SSH登录

发现需要shell逃逸(几乎所有的命令都被限制了......)

看来只能另辟蹊径了

还记得我们最开始的james漏洞不,我们尝试用一下那个

1.先把payload变成反弹shell

执行py代码

ssh登录触发

可以看见我们反弹的shell不用逃逸(原因是因为不是直接连的那个shell,原先那个被限制了)

创建虚拟终端

因为直接弹的shell不完整,我们这里用py建立一个虚拟终端

提权

这里先尝试了suid提权和定时任务提权,以及找它内核版本看看有没有可以用的脏牛提权漏洞啥的

(均无结果,没有sudo命令和当前用户的定时任务)

然后看到了一个思路,有没有平常和我一样懒狗的人平常是 chmod 777 给权限的,能不能有这样的命令文件,然后试了一下

find / -perm 777 -type f \( -name "*.sh" -o -name "*.py" \) 2> a.txt

看它权限没问题,再看下里面的内容

是一个清理tmp内容的,它会不会在高用户里面设置的是定时的?

我们把里面的内容改一下

提权成功

4.总结

内容到这里也就讲完啦,不知道大家有没有兴趣深入学网络安全呢~

如果大家想从事网络安全的学习,我推荐加入我们freebuf泷羽sec的帮会!学习的过程中优良的资源是必备的,这里有大量的工具插件,挖洞案例,免杀教程等等的资源!(B站搜泷羽sec还有免费课程!!!)

zg人不骗zg人,真的很有用,自己收集摸过去除了很累而且是很慢很慢的......(切身体会)!

附图

感兴趣的扫下面的码就可以啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值