一、网络配置

虚拟机->可移动设备->网络适配器->设置
在这里插入图片描述
将靶场和kali虚拟机的网络连接模式改为一致(要么都是桥接模式,要么都是NAT模式,这里在本机测试建议使用NAT模式)

项目试验

0x01信息探测
实验项目环境:

Kali环境:

渗透测试开始之前我们先要确定自己的环境,实质上是确定自己的ip地址,可以通过使ifconfig指令确认ip相关信息。在这里插入图片描述

有红色框框分析可得,我们是属于C类IP地址(255,255,255,0),可以发现我们在一个ip为192.168.1.*的局域网范围内

Ip扫描嗅探靶场

通过ifconfig我们知道了知道了Kali测试环境的局域网IP地址,我们就可以进行内网网段存活主机的IP探测,使用netdiscover -r ip/mask 指令在这里插入图片描述

发现了疑似靶场ip 地址192.168.157.129,我们使用ping指令 试探一下这个ip,发现这个ip的主机的连接是通畅,我们可以通过这个ip与靶场尝试进行通信
在这里插入图片描述

直接访问该ip地址所创建服务器,返现只能看到一个Nigx容器的欢迎界面,里面啥都不是,找不到我们需要的文件,因此我们猜测该主机估计开放了不少端口,其中会不会我们有用的呢?使用nmap指令看看他开放了哪些端口
Nmap -sV ip
在这里插入图片描述

我们发现这个服务器开放了3个端口号,分别为22端口(ssh协议默认端口),80端口(网页服务器常用端口),和一个31337端口
注:端口号0-1024一般都是系统默认协议所带用的端口号,我们一般观察一些非默认端口号
我们链接31337端口号,发现里面啥都没有,可以猜想他的子目录中藏了一些隐藏文件,我们使用dirb指令递归遍历
Dirb http://ip[:port]
在这里插入图片描述
在这里插入图片描述

发现在这个目录下隐藏着两个我们值得关注的文件,一个是robots.txt(学过爬虫的人肯定对这个文件很敏感)和另一个是.ssh
我们先本地观察robots.txt(robots.txt,俗称机器人协议,是为了限制爬虫随意爬取网页的文件)
其中常用的属性 User-Agent(请求头)、Disallow(不允许爬取的爬虫)、allow(允许爬取的爬虫)、sitemap(网站地图)、delay(相邻爬取之间的时间差)、spider(允许的爬虫)

我们发现里面有个特别的名字—taxes,越是奇怪的文件越能引起我们的兴趣,我们看看里面是啥(正如系统文件命名一般,”.”开头的文件一般都是系统/配置文件)_

我们惊喜的发现 我们拿到了第一个flag数值
现在我们登陆我们发现的另一个子网http://192.168.157.129:31337/.ssh
在这里插入图片描述

我们发现id_rsa(私钥),authorized_keys(用户信息),”id_rsa.pub”(公钥),一般来说私钥是不能直接提交给服务器端的,所以来说这台服务器的私钥已经暴露,这里就是我们一般所说的私钥泄露

我们把私钥和用户信息下载下来,一般都是直接访问这两个文件的路径(url+filename)
在这里插入图片描述

在这里插入图片描述

分别打开下载的两个文件后可以发现一些蛛丝马迹,这不是我们要找的密钥吗?嘻嘻
在这里插入图片描述

发现私钥(RSA 一般是私钥的标志,密钥通过RSA算法加密 BEGIN RSA PRIVATE KEY)
在另一个文件中我们发现了我们登录时所需要的用户名

在这里插入图片描述

在用户信息中我们发现主机的名字是simon

在这里插入图片描述

此时我们已经有了ssh远程连接的对象和其IP
我们不妨试试去远程连接一下,使用ssh指令
Ssh -I id_rsa(密钥) simon(主机名)@ip

发现报错了,最后一行说访问不被允许,原因是我们的密钥权限不够(permission denied)
我们使用一下 ls命令查看一下我们文件的权限 ls -asl

在这里插入图片描述

发现id_rsa的权限为644,为了能建立私密的通信,我们需要把权限跟改为600或者700,使用chmod指令 chmod +mode file

在这里插入图片描述

很尴尬我刚刚把提现的文件题错了,提成了ssh2john.py脚本文件
我们重新来一遍吧

在这里插入图片描述

我们使用该脚本来讲id_rsa(私钥文件)进行化简梳理,并使用john指令进行解码john +file
在下面的运行结果中,我们就得到了我们想要的东西,ssh远程登录时所需要的密码: starwars

在这里插入图片描述

我们再使用ssh指令登录远程机,并输入密码,当现实如图所示界面时代表了远程登陆成功,第一次建立连接时会提示无法判断链接安全性,不过你只要输入yes就行,不然无法建立起远程连接

在这里插入图片描述

我们查看一下该主机用户的所有文件,发现在root文件夹下找到了我们想获取的东西,我们打开一下吧,使用cat指令 cat +file

在这里插入图片描述

哦!我就知道,还会有权限问题,一般flag.txt都藏在root用户的root文件目录路径下,那我们只能去想想提权限的方法了, 但由于simon没有root权限,不能直接使用su -root 提升权限(可以通多id指令查看用户权限)
我们只能继续去寻找,发现旁边有个read_message.c文件,喜喜,绝对有问题,题目中的这种奇奇怪怪的文件多半有问题

在这里插入图片描述

我们使用find / -perm -4000 2>/dev/null 获取我们当前Simon这个用户有哪些权限,咦?我们惊奇的发现我们竟然能够打开read_messae.c文件(他是在root用户下的文件)

在这里插入图片描述

打开后我发现注释中我们找到了第二个flag!!!

再观察一下函数,发现这一代码片段要使用栈溢出进行页面跳转

在这里插入图片描述

我们现根据要求是使前5个字母使Simon后面补齐15个任意字符,由于栈是先进后出,所以溢出的数据会存储到上面的program数组内

在这里插入图片描述

在这里插入图片描述

我们就这样获取了root权限
简单的我们获取了最后的flag

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐