VulnHub-DC2

前言

  靶机名称:DC:2  靶机难度:入门  靶机ip:10.16.122.1  下载地址:https://www.vulnhub.com/entry/dc-2,311/

信息搜集

  输入ip地址后,出现如图情况
  
  host文件添加对应dns解析即可
  
  拉倒底部后,发现是wordpress框架
  
  这里可以使用nmap漏洞扫描功能,也可以使用wpscan,然而kali自带的wpscan太老了已经没法更新了,需要手动去下载,还要申请api token才能使用。这里我选择使用nmap
  nmap -sV -A –script=vuln 10.16.122.1 发现后台地址和用户名,但是这里并没有扫出wordpress版本,有时能扫出。
  
  也可以用审查元素查看版本
  
  搜索后并没有发现有4.7.10的exp,但找到了路径/index.php/wp-json/wp/v2/users下存在信息泄露
  
  使用json格式化后,得到了两个用户admin和jerry,也是nmap已扫到的
  

flag1

  在主页出直接显示了flag1,提示用cewl命令
  
  cewl http://dc-2 -w pwd.txt将会在当前目录下生成抓取的密码文件
  
  然后在新建一个user.txt,将前面nmap扫出的admin,tom,jerry用户写进去
  
  nmap哪里已经扫出了后台地址http://dc-2/wp-login.php
  
  接下来使用大名鼎鼎的hydra吧

hydra -L user.txt -P pwd.txt dc-2 http-post-form "/wp-login.php:log=^USER^&pwd=^PASS^:<strong>ERROR</strong>"
-s   指定端口
-vV  显示爆破细节
-f   找到正确的账密就停止爆破

  成功爆破出tom和jerry,这里要使用jerry账号登陆,tom账号权限不够
  

flag2

  登陆进后,来到pages即可得到flag2
  意思是如果在此界面无法利用,就换一条路
  
  发布文章时,尝试上传图片马,提示没有权限
  
  卡了许久,完全没思路,后来看了其他大佬的教程,得知靶机开放了其他端口,可见信息搜集的重要性
  nmap -p1-65535 10.16.122.1
  
  全端口扫描后得到开放了7744,发现其实是ssh服务
  
  接下来还是使用hydra爆破ssh
  hydra -L user.txt -P pwd.txt -s 7744 10.16.122.1 ssh,你会发现tom的ssh的登陆密码和web登陆密码是一模一样的
  

flag3

  直接ls发现flag3
  
  使用cat flag3.txt出现命令未找到
  
  发现是rbash简单点说,就是只能使用一部分命令,发现vi命令可以查看flag3
  
  这里也可以使用echo+vi查看文件和文件夹,这样也得到了flag4
  
  继续上面的flag3,提示用jerry用户登陆,那么现在就要绕过rbash
  网上找了很多vi命令的绕过,都写的云里雾里的,这里给出详细过程
  1.vi 绕过

vi
:set shell=/bin/bash
:shell
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin

  进入vi命令行模式后,输入后:set shell=/bin/bash回车
  
  这里光标会跑到第一行,不用管它
  
  继续进入命令行,输入:shell,回车后,会得到一个shell
  
  
  咋一看跟原来的一模一样,不急依次输入
  export PATH=$PATH:/bin/
  export PATH=$PATH:/usr/bin
  这两条命令后,已经绕过了rbash了,并且成功使用cat命令
  

  2.BASH_CMDS[a]=/bin/sh;a 绕过

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

  

flag4

  接下来就切换到jerry用户,而tom的ssh密码和web登陆是一样的,所以这里的jerry的ssh密码可以尝试使用前面已经爆破出来的adipiscing
  输入su jerry 密码:adipiscing,成功登陆后,查看到flag4
  
  提示用git提权到root
  sudo -l 查询root权限,可看到/usr/bin/git是root权限执行,并且不需要密码
  

flag5

  那么接下来就是提权了,git提权参考文章https://gtfobins.github.io/gtfobins/git/
  1.第一种

sudo git help config
!/bin/bash

  2.第二种

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

  3.第三种

TF=$(mktemp -d)
ln -s /bin/sh "$TF/git-x"
sudo git "--exec-path=$TF" x
!/bin/bash

  这里演示第一种,输入sudo git help config后,会强行分页显示
  
  继续输入!/bin/bash回车
  
  提权成功并在root目录下查看到最终flag
  

查看评论 -
评论