一、测试环境:
攻击机:kali、Windows10
靶机:虚拟机内的evilbox。
这个靶场打开可能会出现无法显示ip的情况,需要更改网卡链接。在引导界面按下E,把ro改成rw,ro代表只读,rw代表可读可写,再在后面加上“signle init=/bin/bash”,按下ctrl+x进入单用户界面。
使用ip a 查看IP地址:环回网卡lo,物理网卡名字为ens33.没有IP地址信息
我们编辑网卡的配置文件: vi /etc/network/interfaces 将里面配的网卡名称改成我们虚拟机中分配的名称。
重启虚拟机,然后再使用kali去扫描。
二、信息收集
还是老样子使用kali的nmap去扫所属网段存活的主机,找到目标主机,再扫描端口看看开放哪些服务,为接下来的渗透提供思路。这里扫到分别开放了22端口ssh服务和80端口。在真实机上打开发现就一个apache的手册界面。全是英文还有好多路径,于是先把突破口放到目录遍历上,测试了一波无果。。。。。。,于是扫一下目录,发现一个robots.txt和secret目录,robots文件意思像是给了一个用户名,我也没有去爆破密码,因为打多了不可能这么简单,当然实际工作中一定不要放过任何一次机会。
secret目录没有访问权限,向这种的就需要爆一下下面的目录。41万条数据可不是白跑的,终于露出鸡脚了。访问为空白页面,向这种空白页面可以尝试利用文件包含漏洞,但我们不知道参数名,就需要利用bp fuzz一下。
也是不出所望,找到参数名,也存在文件包含漏洞。发现/etc/passwd下并没有robots给的用户名。还好我没浪费时间去跑。不过发现一个用户名为mowree。我们尝试使用爆破一下试试。因为实在没有别的突破点看一下支持哪几种ssh登录方式。
ssh mowree@192.168.31.64 -v
emmmm,可以看到可以使用私钥登录,那我们去读取一下该用户的私钥信息。
私钥信息保存在/home/mowree/.ssh/id_rsa
我们把他下载到kali里面
wget http:xxxxxxxxxxxxx
这里有个问题想要使用john破解需要先把下载的私钥文件编译成john能够识别的格式。使用命令
ssh2john id_rsa > pass.txt
这里还要注意由于是直接下载的下载的文件名并不是id_rsa 需要修改一下。
编译完成在使用john去破解,最后跑出来密码
我们在使用ssh去登录
登录成功不用看就知道不是root权限,id一下果然不是。
三、提权
提权我之前文章也有介绍。
一般都是先看计划任务和系统版本还有可以写入的文件进行提权
这里发现/etc/passwd文件可以写入
find / -writable 2>/dev/null | grep -v proc
这里有两种方法可以去利用
一是可以直接修改root密码,因为root用户的密码在/etc/shadow文件中,我们可以删除root的“x”改成我们想改的密码的哈希值。
openssl passwd -1 //1代表加密方式
然后输入两次密码。生成成功
编辑/etc/passwd文件。这里顺便说一下vi编辑器的操作
修改完成,
su root
输入密码即可登录root用户。
第二种方法就是写入一个有root权限的用户
perl -le 'print crypt("pass","pass")'
生成加盐的密码,然后写入/etc/passwd下
echo hacker:pauONM/HSu9pM:0:0:root:/root:/bin/bash >> /etc/passwd
然后切换用户
su hacker
登录成功。