把我们的靶机解压出来,用VM进行打开,可以看到如下界面,可以发现是一个linux的系统
首先,我们可以打开我们的kali,用自带的nmap扫描工具进行对靶机的ip以及端口及版本的扫描
,使用nmap -p 1-10000 -sV 192.168.101.0/24命令现在可以知道信息是靶机的ip为 192.168.101.133,他开放的端口有22、80、1898,版本没有扫描出来。
注:常用的nmap扫描命令
nmap -sP 192.168.101.0/24 扫描c段所有存活的主机
nmap -p- 192.168.101.133 指定扫描靶机ip的所有开放端口
因为80端口是http协议,所以我们拿网页进行打开,查看源代码也没有什么提示,就是说太简单了
所以我们再试一下1898端口,进去发现是一个类似登陆页面的东西
点击图片发现可疑url地址http://192.168.101.133:1898/?q=node/1,我们把1改成2,发现显示内容有变化,提示我们有一个audio.m4a音频和qrc.png图片
打开音频发现说的是user:tiago,可以猜测账号是tiago
再打开图片,发现是一个二维码,我们扫一下看看有什么提示,发现一些字符:Try harder! muahuahua
接下来我们对他进行目录扫描,看看有哪些敏感的目录:使用kali自带的工具dirb+url地址,看到扫描出来很多目录,我们一一尝试,看看有哪些可以利用的信息
在这个页面可以得到他用的第三方软件和他的版本
由于我们上面得到了俩个类似用户名的东西,但我们不知道密码,所以我们用kali自带的cewl工具跑一下
cewl+url地址 根据此url地址以及他的目录下的文件生成密码字典password.txt
这时候我们可以用得到的密码字典去拿hydra九头蛇进行ssh端口爆破,hydra -l tiago -P password.txt 192.168.101.133 ssh(“l”是用指定的用户名,“L”是用用户名字典,p和P同理),可以看到爆破成功,账号为tiago,密码为Virgulino
成功登陆进去,执行一些命令,看看他是否为root权限
id为:0 root 0 < id < 1000 服务用户: 为服务提供权限 1000
使用我们发现的漏洞 相关信息版本号 Drupal 7.54进行搜索(Drupal是一个开源内容管理系统(CMS))
可以用msf进行搜索,看看是否有收录的Drupal 7.54版本的漏洞exp
使用序号为1的漏洞exp,再show options设置端口和ip等参数
设置完端口和ip之后执行run命令,发现获取到了靶机的shell
但是我们执行不了命令,只能执行shell命令,来获取伪终端
再执行python -c 'import pty; pty.spawn("/bin/bash")'获取到真终端
用whoami查询发现我们是www-data用户,权限非常低,所以我们要进行提权
Linux提权的主要几个方式:
1.内核提权---脏牛提权最为典型 ,内核提权一般包括3个步骤,信息收集发现版本号,找到相关版本的exp,使用找到的exp对目标发起攻击,完成提权功能。
2.利用suid提权
3.利用sudo提权 4.mfs提权 5.mysql提权 包括udf mof提权方式
通过uname -a可以看到当前靶机的版本在赃牛漏洞中
再开启一个终端,查找所有的赃牛漏洞
用locate linux/local/40847.cpp来查看他的绝对路径
使用cp /usr/share/exploitdb/exploits/linux/local/40847.cpp /home/kali/桌面命令来把他复制到桌面上
然后在本地开启http服务,把480847.cpp文件放到网站中,再在别人的ssh连接到的终端中去下载,这里我们用python在桌面开启8083端口的http服务
通过wget命令去下载我们开启http服务上的40847.cpp的文件
用这条命令来编译下载好的c++文件:g++ -Wall -pedantic -O2 -std=c++11 -pthread -o yc 40847.cpp -lutil,看到目录下面生成了一个编译好的yc程序,用./yc来运行
可以看到生成了一个root用户的密码:dirtyCowFun,可以提权成功