Kioptrix-4

靶机下载地址

https://download.vulnhub.com/kioptrix/Kioptrix4_vmware.rar

环境搭建

由于这个靶机下载下来之后是一个vmdx的文件,所以要经过处理,直接创建一个新的虚拟机:

选择其他;后面的一律“下一步”即可!

最后将硬盘移除!

使用现有的硬盘,加载下载下来的硬盘即可!内存也需要重新分配一下,之后打开即可:最终配置如下:

信息收集

# arp-scan -l
Interface: eth0, type: EN10MB, MAC: 00:0c:29:43:7c:b1, IPv4: 192.168.1.60
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.1.1     00:50:56:c0:00:08       VMware, Inc.
192.168.1.2     00:50:56:fe:b1:6f       VMware, Inc.
192.168.1.76    00:0c:29:85:3d:2d       VMware, Inc.
192.168.1.254   00:50:56:f0:ab:00       VMware, Inc.

探测存活主机信息,发现目标的靶机地址为192.168.1.76

# nmap -sT --min-rate 10000 -p- 192.168.1.76                   
Starting Nmap 7.94 ( https://nmap.org ) at 2023-12-26 14:09 CST
Nmap scan report for 192.168.1.76
Host is up (0.0034s latency).
Not shown: 39528 closed tcp ports (conn-refused), 26003 filtered tcp ports (no-response)
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds
MAC Address: 00:0C:29:85:3D:2D (VMware)

开放的端口信息为22 ssh 80端口是http 同时开启了139 445端口

# nmap -sT -sC -sV -O -p80,22,139,445 192.168.1.76 -oN details.nmap
Starting Nmap 7.94 ( https://nmap.org ) at 2023-12-26 14:10 CST
Nmap scan report for 192.168.1.76
Host is up (0.00027s latency).

PORT    STATE SERVICE     VERSION
22/tcp  open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1.2 (protocol 2.0)
| ssh-hostkey: 
|   1024 9b:ad:4f:f2:1e:c5:f2:39:14:b9:d3:a0:0b:e8:41:71 (DSA)
|_  2048 85:40:c6:d5:41:26:05:34:ad:f8:6e:f2:a7:6b:4f:0e (RSA)
80/tcp  open  http        Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch)
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch
139/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open  �º`�U      Samba smbd 3.0.28a (workgroup: WORKGROUP)
MAC Address: 00:0C:29:85:3D:2D (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.9 - 2.6.33
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
|_smb2-time: Protocol negotiation failed (SMB2)
|_nbstat: NetBIOS name: KIOPTRIX4, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb-os-discovery: 
|   OS: Unix (Samba 3.0.28a)
|   Computer name: Kioptrix4
|   NetBIOS computer name: 
|   Domain name: localdomain
|   FQDN: Kioptrix4.localdomain
|_  System time: 2023-12-26T09:10:41-05:00
|_clock-skew: mean: 10h30m01s, deviation: 3h32m08s, median: 8h00m00s

服务的详细信息探测结果:

  1. OpenSSH 4.7p1 运行在vm上的主机 ubuntu系统
  2. 80端口 Apache httpd 2.2.8 PHP/5.2.4
  3. 139 445 samba
# nmap -sT --script=vuln -p80,22,139,445 192.168.1.76 -oN vuln.nmap  
Starting Nmap 7.94 ( https://nmap.org ) at 2023-12-26 14:10 CST
Pre-scan script results:
| broadcast-avahi-dos: 
|   Discovered hosts:
|     224.0.0.251
|   After NULL UDP avahi packet DoS (CVE-2011-1002).
|_  Hosts are all up (not vulnerable).
Nmap scan report for 192.168.1.76
Host is up (0.00027s latency).

PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-trace: TRACE is enabled
|_http-vuln-cve2017-1001000: ERROR: Script execution failed (use -d to debug)
| http-csrf: 
| Spidering limited to: maxdepth=3; maxpagecount=20; withinhost=192.168.1.76
|   Found the following possible CSRF vulnerabilities: 
|     
|     Path: http://192.168.1.76:80/
|     Form id: myusername
|     Form action: checklogin.php
|     
|     Path: http://192.168.1.76:80/checklogin.php
|     Form id: 
|     Form action: index.php
|     
|     Path: http://192.168.1.76:80/index.php
|     Form id: myusername
|_    Form action: checklogin.php
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
| http-enum: 
|   /database.sql: Possible database backup
|   /icons/: Potentially interesting folder w/ directory listing
|   /images/: Potentially interesting directory w/ listing on 'apache/2.2.8 (ubuntu) php/5.2.4-2ubuntu5.6 with suhosin-patch'
|_  /index/: Potentially interesting folder
| http-slowloris-check: 
|   VULNERABLE:
|   Slowloris DOS attack
|     State: LIKELY VULNERABLE
|     IDs:  CVE:CVE-2007-6750
|       Slowloris tries to keep many connections to the target web server open and hold
|       them open as long as possible.  It accomplishes this by opening connections to
|       the target web server and sending a partial request. By doing so, it starves
|       the http server's resources causing Denial Of Service.
|       
|     Disclosure date: 2009-09-17
|     References:
|       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6750
|_      http://ha.ckers.org/slowloris/
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds
MAC Address: 00:0C:29:85:3D:2D (VMware)

Host script results:
|_smb-vuln-ms10-054: false
|_smb-vuln-ms10-061: false
|_smb-vuln-regsvc-dos: ERROR: Script execution failed (use -d to debug)

Nmap done: 1 IP address (1 host up) scanned in 344.98 seconds

存在TRACE方法!然后就是存在一个数据库的文件~ 没有其他的暴露出来的信息了,看来突破点可能是在80端口上,先尝试在80端口上寻找突破,没什么思路的话,再看samba~

渗透测试

尝试访问80端口上运行的服务:

有一个登陆注册的页面,这里可以尝试sql注入等相关的信息,同时,如果经过抓包,是明文或者密码是可以解密的话,那么我们就可以进行爆破!先看看源码中是否有相关提示:

没什么提示,当我们输入账号和密码的时候,会提交给checklogin.php进行处理! 其他的没什么信息~先等等进行sql注入等测试,由于上面在信息收集的时候,发现了数据库文件,尝试访问下载下来观察下,并在进行一下目录的扫描:

这个database.sql文件中发现了 数据库中存在表“members” 同时还有一个用户是john 密码是1234 那么我们就不需要去爆破了,直接尝试拿着这个用户去登陆即可!

这里还去做了下目录的扫描。没什么新的发现,接下来就是去登录了。

尝试了database.sql里面的用户名john和密码1234,发现登陆失败了~ 那就看看有没有sql注入吧:

发现mypassword字段可能存在sql注入!尝试使用万能密码进行登录!

这里就直接抓包,然后修改mypassword字段的值为1'+or+'1'='1 用户名就是john~

登陆成功了~

登陆进来什么都没有,由于url变成了username=john,所以尝试修改username=admin等其他用户,观察是否存在水平或者垂直越权漏洞;发现并没有:

既然存在sql注入,这里我就尝试直接上sqlmap去跑:

sqlmap跑出来另一个用户和密码信息,这个密码信息看起来很像是base64;

这个密码就是这样的,其实不是base64;

尝试进行登录:

登陆成功上来还是这个用户控制面板信息,什么功能都没有,这怎么办? ssh碰撞?先把两个账号和密码信息记录在这里:

john	MyNameIsJohn
robert ADGAdsafdfwt4gadfga==

进行碰撞ssh:

第一个用户,就直接登陆成功了~

当前的bash,应该是rbash,受限制的bash环境~ 咱们先退出,尝试另一个,如果还是rbash那就需要去绕过rbash:

还是看不到什么东西~ 这里我不清楚是不是rbash;以前的时候看到过一个靶场类似于这种情况,先看看能不能绕过!

尝试执行了几个命令,发现这就是rbash;ls echo cd 都是可以利用的 但是 / 不能利用;开始进行Linux环境信息的枚举;

ls
cd 
echo
>
>>
<
|

执行sudo,会断开连接~

不能用的东西有点点多啊~ 突然看到了我们刚使用ssh登陆进来的时候,可以使用? 或者help来查看使用的相关命令:

发现了8个命令:

cd clear echo exit help ll lpath ls

那估计就是使用这上面的命令来绕过rbash!

由于我们是通过ssh进行登陆的,登陆进来便是rbash环境了,所以这里尝试ssh绕过rbash,但是失败了:

尝试了很多种方式,都没有绕过,最终的绕过语句为:

echo os.system('/bin/bash')

#刚开始尝试了 echo `ls`     echo $(ls)  都无法执行

提权

进入网站的目录,发现网站的目录下面,存在两个用户的目录,进入到了john目录下面,发现了mysql的数据库账号和密码等相关信息:

尝试进入mysql,在这之前看了一下/etc/passwd:

发现我们刚才的shell被称作是kshell;

在数据库中发现“secure_file_priv”的值为空!可能存在UDF提权~

通常情况下是mysqld_safe是以root执行的,但是mysqld是以mysql用户执行的,但是这里可以看到二者都是以root权限执行的,所以可以尝试进行UDF提权!

存在func表;这块已经存在UDF库,不需要再进行导入了,直接进行利用:

利用sys_exec将当前用户追加到admin组中:

select sys_exec('usermod -a -G admin john');

退出之后,查看当前用户所具有的权限:

至此提权成功~ root下面还有一个最终的flag文件!

总结

整个靶机在练习的过程中,出现了两个问题:

  1. 关于rbash的绕过,掌握的有所欠缺,并未成功的绕过rbash;
  2. 关于UDF提权同样也是理解不到位,需进一步加深对UDF提权的理解;

靶机还存在文件包含漏洞,这是在看了wp之后,才发现的,具体漏洞位置出现在member.php:

变量page通过GET方式传递的username来得到;利用preg_replace()函数将变量page中的/etc/替换为空,但是只是替换了一次,所以这里可以尝试双写绕过;同时后面还通过“.”来拼接了.php

由于php版本为5.2.4,当php版本小于5.3的时候,便可利用%00来截断,从而绕过了后面拼接的php,最终file_exists()函数判断变量page存在,便会包含这个文件;

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Y4y17

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值