一、测试环境
Tr0ll靶机、Mac攻击机、kali2020辅助攻击机
VM名称:Tr0ll:1 下载(镜像):https : //download.vulnhub.com/tr0ll/Tr0ll.rar 描述:目标很简单,获得根目录并从/root目录获取Proof.txt。不为容易受挫!公平警告,前方有巨魔!
靶机Tr0ll
二、信息收集
1、查找靶机ip
2、扫描端口及服务
3、没啥发现,看看web页面吧~
4、搜集一下网站信息
whatweb扫一波
目录扫一波~
5、发现了个robots.txt,打开看看👀
6、再看一下/secret
7、好吧,接下来看看ftp给我们留的信息吧
Anonymous FTP login allowed (FTP code 230)
1xx - 肯定的初步答复
这些状态代码指示一项操作已经成功开始,但客户端希望在继续操作新命令前得到另一个答复。 • 110 重新启动标记答复。
• 120 服务已就绪,在 nnn 分钟后开始。
• 125 数据连接已打开,正在开始传输。
• 150 文件状态正常,准备打开数据连接。
2xx - 肯定的完成答复
一项操作已经成功完成。客户端可以执行新命令。 • 200 命令确定。
• 202 未执行命令,站点上的命令过多。
• 211 系统状态,或系统帮助答复。
• 212 目录状态。
• 213 文件状态。
• 214 帮助消息。
• 215 NAME 系统类型,其中,NAME 是 Assigned Numbers 文档中所列的正式系统名称。
• 220 服务就绪,可以执行新用户的请求。
• 221 服务关闭控制连接。如果适当,请注销。
• 225 数据连接打开,没有进行中的传输。
• 226 关闭数据连接。请求的文件操作已成功(例如,传输文件或放弃文件)。
• 227 进入被动模式 (h1,h2,h3,h4,p1,p2)。
• 230 用户已登录,继续进行。
• 250 请求的文件操作正确,已完成。
• 257 已创建“PATHNAME”。
3xx - 肯定的中间答复
该命令已成功,但服务器需要更多来自客户端的信息以完成对请求的处理。 • 331 用户名正确,需要密码。
• 332 需要登录帐户。
• 350 请求的文件操作正在等待进一步的信息。
4xx - 瞬态否定的完成答复
该命令不成功,但错误是暂时的。如果客户端重试命令,可能会执行成功。 • 421 服务不可用,正在关闭控制连接。如果服务确定它必须关闭,将向任何命令发送这一应答。
• 425 无法打开数据连接。
• 426 Connection closed; transfer aborted.
• 450 未执行请求的文件操作。文件不可用(例如,文件繁忙)。
• 451 请求的操作异常终止:正在处理本地错误。
• 452 未执行请求的操作。系统存储空间不够。
5xx - 永久性否定的完成答复
该命令不成功,错误是永久性的。如果客户端重试命令,将再次出现同样的错误。 • 500 语法错误,命令无法识别。这可能包括诸如命令行太长之类的错误。
• 501 在参数中有语法错误。
• 502 未执行命令。
• 503 错误的命令序列。
• 504 未执行该参数的命令。
• 530 未登录。
• 532 存储文件需要帐户。
• 550 未执行请求的操作。文件不可用(例如,未找到文件,没有访问权限)。
• 551 请求的操作异常终止:未知的页面类型。
• 552 请求的文件操作异常终止:超出存储分配(对于当前目录或数据集)。
• 553 未执行请求的操作。不允许的文件名。
常见的 FTP 状态代码及其原因
• 150 - FTP 使用两个端口:21 用于发送命令,20 用于发送数据。状态代码 150 表示服务器准备在端口 20 上打开新连接,发送一些数据。
• 226 - 命令在端口 20 上打开数据连接以执行操作,如传输文件。该操作成功完成,数据连接已关闭。
• 230 - 客户端发送正确的密码后,显示该状态代码。它表示用户已成功登录。
• 331 - 客户端发送用户名后,显示该状态代码。无论所提供的用户名是否为系统中的有效帐户,都将显示该状态代码。
• 426 - 命令打开数据连接以执行操作,但该操作已被取消,数据连接已关闭。
• 530 - 该状态代码表示用户无法登录,因为用户名和密码组合无效。如果使用某个用户帐户登录,可能键入错误的用户名或密码,也可能选择只允许匿名访问。如果使用匿名帐户登录,IIS 的配置可能拒绝匿名访问。
• 550 - 命令未被执行,因为指定的文件不可用。例如,要 GET 的文件并不存在,或试图将文件 PUT 到您没有写入权限的目录。
第一种:终端(具体命令自行谷歌)
1.打开终端
2.输入:ftp
3.输入:open 服务器ip地址
4.输入:用户名
5.输入:密码
第二种:Mac系统自带的ftp工具(只能下载,不能上传)
1.点击Finder
2.选择菜单栏下[前往]-[连接服务器]-[输入ftp://服务器ip地址](也可直接按快捷键Command+K)
3.输入用户名和密码
4.在弹出的文件目录下选择要下载的文件直接拖出来就能下载到本地了
第三种ftp客户端[FileZilla](可以实现文件互传)
1.打开客户端,点击左上角配置服务器地址
2.左侧显示的是本地文件目录,右侧显示的是服务器文件目录
3.选定相应目录,拖动即可实现互传
三、流量包分析
好啦,接下来让我们看看刚刚得到的数据包,继续分析~
sup3rs3cr3tdirlol这是个啥,密码?网页名称?用户名?没谁的用户名这么变态吧~
算了,当做网页名称试一下
把文件下载下来,使用file
命令后发现是一个ELF文件,Linux下的可执行文件
还是没发现什么信息~
执行一下吧~
打印出一句话
Find address 0x0856BF to proceed:按发现的地址0x0856BF继续
这应该又是一个网页名称吧~
四、密码破解
翻了一翻,啥都没有~估计就是破解密码了~
这几个到底是用户名呢,还是密码呢?如果是密码的话,那用户名是不是之前漏掉了?
我觉得思路就是破解密码无疑了,问题是在这个靶机里破解密码的思路是啥??
文件夹的名字叫this_folder_contains_the_password
:此文件夹包含密码
hydra -L Downloads/user.txt -P Downloads/pass.txt ssh://192.168.43.185
四、提权
- 当前用户无法执行
sudo
命令 - home目录下只有troll,没有overflow
- 当前用户没有超级管理员权限
- 无操作几分钟后自动断开SSH连接
我们去exp官网查看一番:Ubuntu 14.04 3.13
在exploit官网查看可以使用37292进行提权
/usr/share/exploitdb/exploits/linux/local/37292.c
把exp复制一份放在root目录下
cp /usr/share/exploitdb/exploits/linux/local/37292.c /root
然后使用python创建一个服务,通过服务上传37292.c到靶机中
python -m SimpleHTTPServer 5555
使用wget从本机里面下载exp到靶机上
获得root权限,并查看proof.txt内容
结束~
nice