免责声明:本教程作者及相关参与人员对于任何直接或间接使用本教程内容而导致的任何形式的损失或损害,包括但不限于数据丢失、系统损坏、个人隐私泄露或经济损失等,不承担任何责任。所有使用本教程内容的个人或组织应自行承担全部风险。
1.将靶机导入至vm中
首先将靶机的网络设置为nat模式,然后在kali中使用namp命令查找靶机ip
由此可知,靶机的ip为192.168.55.133
2.直接使用nmap扫描目标ip的端口,进行指纹识别、目录枚举、进入网站点击各功能点寻找信息
端口扫描
指纹识别
去网站首页看看
感觉没有什么东西,可以随便看看
Blog界面下点击Comments
存在一个框,但是没有测出来什么东西
点击这个now
出现一个图片没有解析的界面,但是超链接均可以点击,在页面相应的过程中均存kioptrix3.com的解析,随后跳转到别的页面
此时我们可以进行域名映射
windows中:去host添加域名解析的 ip
C:\Windows\System32\drivers\etc\host
Linux中:vim /etc/hosts 即可
更改好后发现网页正常
随后点击此处
选择id
点击图片后发现多了id这个参数。可以尝试进行sql注入
在图片id后面加入’页面报错,存在sql注入
首先进行爆列,可知数据库一共是6列
将表名注入出来,payload:?id=1 union select 1,group_concat(table_name),3,4,5,6 from information_schema.tables where table_schema=database()
下一步注入列名,payload:union select 1,group_concat(column_name),3,4,5,6 from information_schema.columns where table_name='gallarific_users'
爆数据,payload:union select 1,group_concat(username),group_concat(password),4,5,6 from dev_accounts--
由于爆出来的数据是32位,可以尝试使用md5进行解密
账号:dreg,loneferret
密码:Mast3r,starwars
两个账号均成功登陆
使用第二个账号进行登陆
sudo -l 显示出自己(执行 sudo 的使用者)的权限
/usr/local/bin/ht 是HT编辑器无需密码就有root权限
使用命令sudo /usr/local/bin/ht进入HT编辑器
按F3进行编辑文件
执行/etc/sudoers
在此处添加:/bin/bash
按F10保存并退出
运行:sudo /bin/bash进入root模式
方法2:
点击Login
发现使用的CMS信息
查找 LotusCMS的历史漏洞
由于第一个漏洞需要使用msf(oscp只能使用一次msf)所以尽量不要使用msf
第二个漏洞文件包含了多个漏洞的信息
此时我们可以去bing上搜索LotusCMS,来查看它的漏洞信息
复制下载地址,等等在kali中使用git clone命令进行下载
将exp下载到桌面上
此exp没有使用方法,所以直接使用./命令执行exp
执行exp
根据提示,此处填写靶机ip
使用exp进行反弹shell
先看一下靶机有没有python
靶机中有python
启动交互式终端:可以得到回显的信息
python -c 'import pty; pty.spawn("/bin/bash")'
使用三条命令查询系统信息:
uname -a
uname -mrs
lsb_release -a
find / -perm -4000 -print 2>/dev/null
命令解释:
用于查找系统中所有设置了Set User ID (suid) 位的文件
若要搜索SGID则将4000改为2000
SUID和SGID的区别:
suid:
作用对象:suid主要作用于可执行文件。
权限变化:当一个设置了suid位的可执行文件被执行时,该文件将以文件所有者的身份运行。即无论谁来执行这个文件,他都有文件所有者的特权。如果文件所有者是root,那么执行人就有超级用户的特权。
sgid:
作用对象:sgid可以作用于可执行文件或目录。
权限变化:
对于可执行文件:当一个设置了sgid位的可执行文件被执行时,该文件将以文件所属组的身份运行。即执行该文件时,进程的组ID(GID)会被设置为文件所属组的GID。
对于目录:当一个目录设置了sgid位时,该目录下新创建的文件或目录将自动继承该目录的所属组。这意味着,无论哪个用户在该目录下创建文件或目录,这些新创建的文件或目录的组属性都会与目录的组属性相同。
注意到这里有sudo文件,可以进行提权,但是在本靶机中不知道该账号的密码,所以无法使用sudo提权
根据系统信息查找用于提取的历史漏洞:
searchsploit linux 2.6.2 | grep Privilege
根据版本确定只有这三个exp可以使用
注:若编译exp中出现如下-W开头的报错(函数当前版本不适用),可以使用-Wno参数继续编译
40839.c是可以使用的,以下是使用40839.c进行提权的操作
先将40839.c下载到桌面上
将40839.c进行编译,此时报错,我们可以查看exp,看看它的使用方式
将此处的dirty改为40839.c即可编译
kali开启监听,将exp下载到靶机中
靶机报错,此目录下没有写入的权限
返回上一级目录中发现tmp目录下可以进行下载操作
将编译好的exp下载到靶机发现不能执行,我们可以将40839.c下载到靶机内编译执行试试
此时让我们输入一个新的密码,输入123456
执行成功,可以使用用户名firefart密码123456进行登陆
可以在靶机中使用该用户名和密码进行登陆,该用户不是root用户,但是已经在root的用户组里面了,所以已经具有了root权限,提权成功
第二种提权方式:
使用ssh进行连接,发现ssh版本过低,不能使用
增加参数进行连接
ssh firefart@kioptrix3.com -o HostKeyAlgorithms=+ssh-rsa
提权成功
第三种提权方式:
重新进行反弹shell,使用su命令进行用户切换,提权成功