百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

实战打靶之trick 打靶视屏

suiw9 2024-11-11 15:51 18 浏览 0 评论

信息收集

端口扫描

首先使用nmap对端口进行探测。找到了SSH (22) 和 HTTP (80)。2个端口。

接着使用nmap对SMTP 协议去爆破一些用户名。

使用脚本爆破SMTP协议

使用smtp-user-enum 脚本来检查这些用户:

使用telnet发现也不能成功。

DNS协议

使用 DNS来看域名的的解析情况。

子域名枚举

接着使用wfuzz对子域名进行枚举。

访问主页查看页面有没有一些可用的东西。

漏洞利用

万能密码登录

当我搜索http://preprod-payroll.trick.htb时,它会自动将我重定向到登录页面。

然后f12查看到,是一个员工管理系统,然后搜索nday漏洞。发现该系统存在sql注入漏洞。


漏洞详情链接:

https://www.sourcecodester.com/php/14475/payroll-management-system-using-phpmysql-source-code.html

使用' or 1=1--,对该网站可以通过万能密码登录。


sql注入漏洞

手动测试

登录框处存在一个时间盲注。

进行手动测试,输入1=1 和1=2进行对比,发现返回的结果1个是1,1个是3。



sqlmap测试

接着使用sqlmap进行从测试。

先判断注入点:sqlmap -r x.txt --dbms --batch

然后找到注入点之后,使用--current-user枚举当前数据库的用户

接着去枚举数据库里面的表。

接着去枚举表里面的用户。


使用sqlmap读取文件

可以配置 SQL,以便我可以通过注入读取文件。sqlmap允许使用--file-read参数。有用:

接着使用wfuzz枚举子域名。成功枚举出新的子域名。


文件包含漏洞

该网站在使用前面的万能密码登录之后,存在文件包含漏洞。接着尝试使用 PHP 过滤器对 URL 进行本地文件包含 (LFI)。

http://preprod-payroll.trick.htb/index.php?page=php://filter/convert.base64-encode/resource=index

先去读doductions文件,然后使用base64解密。

接着去读index文件,然后解密之后发现新的php。

接着继续去读login文件。继续解密。

最后发现了db_connect.php,读出了数据库的用户名和密码。

接着就可以使用ssh进行登录。

目录遍历漏洞

源码分析

目录遍历

尝试在 web 目录之外加载一个文件(/etc/passwd这是一个通用文件,因为它是世界可读的并且总是在同一个地方)使用绝对路径(http://preprod-marketing.trick.htb/index.php?page=/etc/passwd)和相对路径( )都会失败http://preprod-marketing.trick.htb/index.php?page=../../../../../../../../../etc/passwd。

阅读 index.php 源码

只需包含index.php类似http://preprod-marketing.trick.htb/index.php?page=index.php, as 的index.php内容将再次执行,而不是返回源代码。尝试获取源代码的一种方法是使用 PHP 过滤器。访问http://preprod-marketing.trick.htb/index.php?page=php://filter/convert.base64-encode/resource=index.php可以在包含之前进行base64编码index.php,然后只会出现base64文件。接着继续使用sqlmapap读文件--file-read=/var/www/market/index.php

发现源码将../进行过滤。我们可以使用....//进行绕过。

<?php
$file = $_GET['page'];

if(!isset($file) || ($file=="index.php")) {
   include("/var/www/market/home.html");
}
else{
        include("/var/www/market/".str_replace("../","",$file));
}

成功遍历到了/etc/passwd。

接着去遍历id_rsa。

ssh远程连接

然后将其加到本地文件中,使用chmod增加权限,继续使用ssh远程连接。

获取user.txt

连接之后,成功获取到user.txt文件。

权限提升

fail2ban提权

配置分为三个部分fail2ban:

  • 过滤器定义要在给定日志文件中查找的模式。
  • 一个动作定义了可能发生的事情(比如iptables正在制定的规则)。
  • 将过滤器连接到动作。

使用suo -l 检查该用户运行那些程序。

发现michael 可以fail2ban以 root 身份重新启动。

文章链接:https://grumpygeekwrites.wordpress.com/2021/01/29/privilege-escalation-via-fail2ban/


然后进入fail2ban目录。

漏洞利用

接着进行漏洞操作。修改其配置文件。

mv /etc/fail2ban/action.d/iptables-multiport.conf /etc/fail2ban/action.d/iptables-multiport.bak 
cp /etc/fail2ban/action.d /iptables-multiport.bak /etc/fail2ban/action.d/iptables-multiport.conf 
ls -l /etc/fail2ban/action.d/iptables-multiport.conf  

然后使用crackmapexec进行爆破。

接着使用nano进行编辑配置文件

对actionban进行修改。重启服务之后,发现还是不能触发漏洞。

重启环境之后,继续进行第二次测试。

使用vi对配置文件进行编辑。

actionban=cp/bin/bash/tmp/x; chmod4777/tmp/x

接着重启服务。

继续使用crakmapexec进行爆破,触发漏洞。

获取root.txt

成功触发漏洞,然后使用/tmp/x -p执行命令。

最后成功获取到root.txt。

总结

该靶机首先,通过一个ip,然后对ip进行信息收集,发现开放了22,80,25端口,接着使用脚本探测SMTP协议中存在那些用户,接着使用wfuzz进行文件子域名枚举。漏洞利用:主要是登录框存在sql注入和万能密码登录。登录进行之后,存在文件包含漏洞,接着读一些关键的文件,然后继续fuzz子域名。发现子域名的框架也存在文件包含漏洞。然后获取id_rsa,然后登录ssh。接着使用新的一种提权方式-滥用fail2ban进行权限提升。


本文作者:pony686, 原文来自FreeBuf.COM

相关推荐

设置文件的默认打开方式(如何设定文件的默认打开方式)

在操作系统中,设置文件的默认打开方式可以让特定类型的文件始终使用你选择的程序打开。以下是Windows和macOS系统中设置默认打开方式的详细步骤:Windows系统方法1:通过文件属性设置右键点...

电脑怎么设置默认浏览器(电脑怎么设置默认浏览器?)

在电脑上设置默认浏览器的步骤因操作系统不同而有所差异。以下是Windows和Mac系统的设置方法:Windows系统方法1:通过系统设置打开“设置”:...

Java接口默认方法:灵活与约束并存

Java接口默认方法:灵活与约束并存在Java编程的世界里,接口作为定义行为规范的重要工具,一直扮演着举足轻重的角色。然而,在Java8引入了默认方法之后,接口的设计和使用方式发生了微妙的变化。今天...

Java8新特性之默认方法:为接口注入灵魂

Java8新特性之默认方法:为接口注入灵魂Java8发布时,它带来的最大创新之一就是接口的默认方法。这就像给一个传统的木偶注入了生命,让它不仅能动还能说话了。今天我们就来聊聊这个让Java开发者欢呼雀...

CentOS系统在不重启的情况下为虚拟机添加新硬盘

一、概述用过虚拟机的都知道,如果在系统运行的时候去给虚拟机添加一块新设备,比如说硬盘,系统是读取不到这个新硬盘的,因为系统在启动的时候会去检测硬件设备。但是我们也可能会遇到这样的情况,比如正在运行比较...

[常用工具] 基于psutil和GPUtil获取系统状态信息

本文主要介绍在Python3中利用psutil库获取系统状态,利用GPUtil获取gpu状态。psutil(processandsystemutilities)(进程和系统实用程序)是一个跨平...

Docker容器内执行宿主机指令(docker执行宿主机shell)

一背景最近项目有个需求,需要程序配置服务器IP并且可以重启服务器。如果程序直接部署在服务器,相信大家都会操作。但是程序是用docker运行的,在docker中执行指令就很麻烦了。...

容器网络调试怎么办?一条命令就搞定!

nsenter命令是一个可以在指定进程的命令空间下运行指定程序的命令。它位于util-linux包中。用途...

linux自动化巡检脚本集(linux服务器巡检内容以及标准)

以下是一个自动化巡检脚本集的制作方案,包含常见系统检查项和可扩展框架,使用Python和Shell脚本实现:...

麒麟KOS|统信UOS系统添加新数据盘
麒麟KOS|统信UOS系统添加新数据盘

原文链接:麒麟KOS|统信UOS系统添加新数据盘...

2025-03-26 16:57 suiw9

Linux CentOS 7 根目录扩容(linux扩展根目录磁盘空间)

一、现状描述现有一台CentOS7的虚拟机,硬盘容量为30GB通过lsblk命令查看分区容量,当前根目录容量为27.5GB左右二、扩容需求...

从Linux底层分析Docker原理(linux docker-compose)

写在前面如果你觉得本人对你有帮助,请你记得评论,点赞,关注;如果你觉得文章还不错请记得收藏,点赞。如果你觉得文章非常的好可以私信我,我会在第一时间回复你。...

CentOS新增硬盘的使用步骤(centos扩展硬盘)

一、查看机器所挂硬盘个数及分区情况,新增硬盘为/dev/sdb...

Python之psutil库简介(python3 pil库)

psutil(pythonsystemandprocessutilities)是一个跨平台的第三方库,能够轻松实现获取系统运行的进程和系统利用率(包扩CPU、内存、磁盘、网络等)信息。它主...

运维,你还不会查看Linux系统cpu信息?

CPU也称为微处理器或简称为处理器。就像大脑如何控制人体一样,CPU控制着计算机的所有部分。因此CPU被认为是计算机的大脑。那我们怎么在Linux系统中查看如IntelCorei3、i5、AM...

取消回复欢迎 发表评论: