首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

红队打靶:W1R3S: 1.0.1详细打靶思路(vulnhub)

  • 25-03-07 01:41
  • 4296
  • 10753
blog.csdn.net

目录

写在开头

第一步:主机发现

第二步:端口扫描

第三步:FTP渗透

第四步:Web渗透

第五步 密码爆破

第六步 提权

总结与思考

写在开头

 近期b站上看到大佬红队笔记的视频,详述了其打靶的思路,感觉豁然开朗。不同于简单的writeup,红队笔记在渗透测试的每一步中的做法都有阐释。逻辑明确,纵然是简单的靶机也有很多知识点,故此做一个总结。红队笔记的视频在下方:

「红队笔记」靶机精讲:W1R3S 1.0.1 - 细节多到即使对于纯萌新也能无感入圈。_哔哩哔哩_bilibili

我是个刚刚开始学习渗透的菜鸟,想找些靶机练习却没有很好的入门思路。正好看到了这篇红队笔记的视频,故这里做一个打靶的复现,将打靶的全过程、踩到的坑都做一些记录。不同于简单的靶机writeup,本文也详细阐释了每一步操作的思路,为什么这么做,当有许多分岔路口的时候该怎么尝试。并非直通flag,而是有逻辑的寻找flag。

本文打靶的靶机是vulhub上的,链接见

W1R3S: 1.0.1 ~ VulnHub

靶机下载链接见:

https://download.vulnhub.com/w1r3s/w1r3s.v1.0.1.zip

 下载好之后,用vmware打开即可,别忘了将网络适配器设置为NAT模式,否则可能在主机发现模块找不到靶机ip

 开启虚拟机,可以看到靶机是一个Ubuntu的登录界面:

 我们开启kali,准备开始打靶。首先是第一个阶段,主机发现。

第一步:主机发现

先看一下自己的kali的ip:

ip a

易得kali的ip为192.168.200.131,所在网段为192.168.200.0/24,因此进行主机发现的时候,扫描此网段即可,命令如下,其中-sn表示采用ping的方法进行扫描,这是主机发现的常规思路(-sP是老版本nmap的ping扫描,建议还是用-sn)。 

另外顺道一提,红队笔记大佬说道,不建议在渗透过程中使用kali的root权限,还是用普通用户更好,需要root的时候sudo即可,在进行扫描阶段的许多nmap指令都是需要root权限的,因此我就直接用root了,大家不要模仿!更规范的方式是每次都sudo。

nmap –sn 192.168.200.0/24

 由nmap的扫描结果可发现靶机的地址为192.168.200.139 。实际测试过程中,应当在靶机上线之前进行一次扫描,靶机上线之后再扫描一次,对比发现上线的主机,更方便确认靶机的ip。下一步即针对这个ip进行端口扫描。

第二步:端口扫描

已经拿到靶机的ip了,那我们下一步就是用nmap对这个ip进行端口扫描,看看开放了哪些端口和服务。命令如下:

nmap –min-rate 10000 –p- 192.168.200.139

这个代码是以最小速率10000对全部端口(1-65535)进行扫描,10000是权衡的结果,数字过大扫描速度快,但容易遗漏端口,数字过小则扫描时间过长,经验表明10000就是扫描的合适速度。-p是端口参数,-p-表示对所有端口进行扫描。理论上应该对靶机的ip扫描两次,对比结果,保证没有信息的遗漏。

 扫描结果表明,开放了21,22,80,3306这四个端口,我们再具体看看这几个端口的服务和操作系统版本。命令如下:

nmap –sT –sV -O –p21,22,80,3306 192.168.200.139

-sT表示进行TCP扫描(三握手),-p表示待扫描的端口(后跟待扫描的端口21,22,80,3306)-sV表示探测开放服务的版本,-O表示探测操作系统版本,扫描结果如下:

可以看到每个开放端口的服务版本和操作系统linux。紧接着我们再进行UDP扫描,保证没有遗漏信息。虽然UDP端口暴露的攻击面是比较小的,但在信息搜集阶段就应该搜集较全的信息,当TCP端口没有找到突破口的时候,说不定UDP也是一条路。 命令如下:其中-sU表示使用UDP扫描

nmap –sU –p21,22,80,3306 192.168.200.139

 UDP扫描结果如上图,结果表明3306端口关闭,其他三个端口是开放/被过滤状态。然后我们再使用nmap中自带的脚本vuln进行漏洞扫描。nmap里面的脚本会对端口的历史常见漏洞进行扫描探测,如果这一步就能发现可利用的漏洞,对后续的操作会很有启发。 --script=vuln表示使用脚本vuln进行扫描,vuln是vulnrability的缩写,这个脚本也会更新,不断加入新的漏洞检测。

nmap –script=vuln –p21,22,80,3306 192.168.200.139

 如上图所示,nmap的漏洞扫描发现21,22,3306都没什么漏洞,80端口发现一个DOS拒绝服务攻击的漏洞,同时还发现了一个CMS为Wordpress的登录页面。然而拒绝服务这种攻击方式对我们没啥启发,一会可以重点关注一下Wordpress的cms有啥漏洞。

下一步我们就要进入渗透过程了。从哪里入手呢?分析如下:

一共有四个端口:21,22,80,3306。

(1)80端口是http的web端口,且已经知道里面可能有wordpress的cms,具有较大的攻击面。这应该是最有可能的突破口

(2)22是ssh远程登录端口,通常没啥漏洞,但是也不绝对,有可能存在弱口令或者暴力破解登录啥的,但这不是我们直接入手的角度,应该放在最后考虑。

(3)21端口是ftp文件传输协议的端口,有可能存在匿名登录,FTP服务器中也可能有一些信息,也有一定的攻击面。FTP的突破口比较单一,操作比较容易。

(4)3306端口是MySQL数据库的端口,前面漏洞扫描也并没有发现太多的思路,不过如果能登录数据库,应该也有信息。

综上,80端口是最有可能的突破口,但是由于FTP可能存在匿名登录,21端口的操作比较容易,我们不妨先试试21端口,再看80端口,接着看3306数据库,最后尝试22远程登录。

综上,我们首先对21端口的FTP进行尝试。

第三步:FTP渗透

先试试FTP能不能匿名登录,用户名anonymous ,密码为空,输入密码的时候直接敲回车。

ftp anonymous

 非常nice,还真登录进来了,那我们找找里面有什么线索先ls看看有啥文件或者目录,发现三个目录,都是有读和执行权限。

 我们一个一个进入看看。

  1. cd content
  2. ls

content目录中有三个文本文件,不管那么多,都先下载下来。这里需要注意的是,如果目录下的文件不是文本.txt文件的话,需要先运行binary指令(即输入binary然后回车)转换为二进制格式,以保证通过FTP下载的文件不会损坏。如果本身就是txt文件,则运不运行binary都可。下载的命令是:

mget 0*.txt

 然后再进入第二个目录docs

  1. cd ../docs
  2. ls

发现又有一个文本文件worktodo.txt,也拿走。

get worktodo.txt

 再进入第三个目录new-employees

  1. cd ../new-employees
  2. ls

也有一个文件,我们把employee-names.txt也拿走

get employee-names

 所有东西都拿走了,我们可以溜了。回到kali,看看刚才拿到的文件内容。

cat 01.txt就显示了一句话,没有太多启发:

cat 02.txt 发现里面有两行东西。其中一行疑似md5,另外一行疑似base64编码。 

我们用hash-identifier识别一下01ec2d8fc11c493b25029fb1f47f39ce,看看这行是不是md5。

hash-identifier '01ec2d8fc11c493b25029fb1f47f39ce'

 还真是md5,那我们再看看下一行:

 很遗憾,这一行没啥结果,那么估计并不是某种加密方式,估计就是个编码方式

下面要进行解密了,找个在线网站,试试能不能把md5解密了。谷歌搜索一下md5 crack,找个能破解md5的网站,如下

Decrypt MD5, SHA1, MySQL, NTLM, SHA256, SHA512, Wordpress, Bcrypt hashes for free online

 

 解密成功,结果为一句话:

This is not a password

感觉也没啥信息,耍我呢?下一步我们再看看哪个疑似base64编码的一行,kali中直接进行base64解码

echo 'SXQgaXMgZWFzeSwgYnV0IG5vdCB0aGF0IGVhc3kuLg==' | base64 –d

其中-d意思是进行base64解码

直译的意思是说:是容易的,但不是那种容易。一头雾水,管他呢,再看下一个文件吧。

cat 03.txt结果是这个公司的文字logo,好像也没啥用

 那我们再看看cat worktodo.txt

 这是个啥玩意,感觉像倒着的英文,可以截个图反过来看看,或者直接吧脑袋倒过来。为了结果显示清晰,我在google上搜索了updownside text,看看有没有在线解密网页。确实有,网址如下

Upside Down Text | Flip Text, Type Upside Down, or Backwards Text

先把第一行复制进去

ı pou,ʇ ʇɥıuʞ ʇɥıs ıs ʇɥǝ ʍɐʎ ʇo ɹooʇ¡

仅仅进行上下镜像,勾选Upside Down Effect,结果如下:

喜提一句话:I don’t think this is the way to root

直译是说,我并不认为这是通往root的路。估计靶机作者暗示我们走FTP这条路获取root权限的前途不大。再试试下一句话吧,这回上下翻转和左右翻转都得勾选。

....punoɹɐ ƃuıʎɐןd doʇs ‘op oʇ ʞɹoʍ ɟo ʇoן ɐ ǝʌɐɥ ǝʍ

 又喜提一句话:we have a lot of work to do, stop playing around...

直译意思是:我们有许多事要做,别到处晃悠了!整的我又是一头雾水。我们再看最后一个文件,cat employee-names.txt

 拿到了职工的一些信息和职位,说不定有用,先存着。其实这个信息再渗透测试过程中可能是有用的。针对每个人的名字和职位,我们就可以做针对性的渗透。比方说经理Naomi的权限说不定会更高,Web Design网页设计者可能在web开发中有一些自己的习惯。HR是我们社工的主要对象等等。FTP就先探索到这里了。下一步我们看看web有啥问题。

第四步:Web渗透

对web渗透就是针对80端口,此处我们先浏览器访问一下靶机ip,发现了一个apache服务,通常这个页面不会有太多的漏洞。 但也不排除可能在这个页面有后门啥的,我们先干别的,不细究这里了。

 之前进行nmap漏洞扫描的时候,提示我们可能有Wordpress的CMS,那么我们先要找出这个cms部署在哪里,可以先进行目录爆破。可选用的工具有dirsearch,dirb,gobuster,feroxbuster等等。我这里先用dirb试一试,如果不行再换,命令为:

dirb http://192.168.200.139

扫描结果很长,我们可以看到扫描出了三个子目录adminstrator,javascript和wordpress。如下图:

 我们最感兴趣的应该是Wordpress这个cms系统,因此浏览器先访问​​​​​​http://192.168.200.139/wordpress试试

结果访问之后,网址就跳回localhost了,我们将localhost手动修改为192.168.200.139,还是会跳回这个页面,看来也没太大希望。那么我们再访问http://192.168.200.139/adminstrator试试吧,j结果页面自动跳转到了/administrator/installation 

 这个页面就有意思了,暴露了CMS是Cuppa,同时这是一个cms安装界面。由于安装界面暴露了权限和配置信息,安装是有写权限的,这个界面很可能有漏洞,我们要重点关注。点一下next试试。发现了一个安装和配置页面:

 题外话:数据库名这个栏目的databases他拼错为databas,这有可能是一个特别特征。因为错误的拼写具有独特性,可能通过互联网搜索这个拼错的信息可能会得到针对性的结果。如下图,不过我们在打靶的时候就先不管这个错误了。

 我们自己设立一个数据库名cuppaTest、密码helloword和邮箱[email protected],你可以随便设置,下面这个管理员账户的账号和密码都是默认admin我们不做修改,点击next试试。界面如下:

很遗憾,没太大收获。反复试了几次,也不成,显示安装失败installation error。上述这个界面还有可能有SQL注入漏洞,但是可能性不大,我们先不整了。但我们还想找这个adminstrator界面的漏洞。可以先到kali中的searchsploit找找有没有cuppa这个cms的漏洞 :

searchsploit cuppa

发现有一个远程文件包含漏洞,我们把这个25971.txt下载下来看看怎么利用 :

searchsploit cuppa –m 25971.txt

 下载之后我们cat 25791.txt如下图所示,发现了这个文件包含漏洞,这个cms用request函数进行了文件包含,可能造成文件包含漏洞泄露信息。

 图中有一行是:

http://target/cuppa/alerts/alertConfigField.php?urlConfig=../../../../../../../../../etc/passwd

url中的target应该就是靶机的ip,我们换为192.168.200.139试试,浏览器访问:

http://192.168.200.139/cuppa/alerts/alertConfigField.php?urlConfig=../../../../../../../../../etc/passwd

很遗憾,路径不存在。那我们再试试其他路径吧,最后发现如下的路径的页面有所不同,应该是读取到了文件。

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

 然而这个界面并没有暴露出/etc/passwd的信息。那我们再会看一下漏洞利用的25971.txt,发现可能会有编码问题,我们借助curl请求一下,进行url编码,试一试能不能暴露出/etc/passwd的信息

 此处相当于是用curl方法取访问http://192.168.200.139/administrator/alerts/alertConfigField.php ,且参数为urlConfig=../../../../../../../../../etc/passwd 。请求时要对数据进行url编码,指令为:

curl --data-urlencode urlConfig=../../../../../../../../../etc/passwd http://192.168.200.139/administrator/alerts/alertConfigField.php 

 显示了一些前端代码,往下翻,成功发现了/etc/passwd文件

 在现在linux系统中,passwd文件里面所有账户的密码都是用x代替的,真正的密码(加密后)放在/etc/shadow中,同样的curl方法,我们改一下参数,看看etc/shadow

curl --data-urlencode urlConfig=../../../../../../../../../etc/shadow http://192.168.200.139/administrator/alerts/alertConfigField.php

成功找到了密码的hash结果,再shadow文件中,有三个账号有密码,分别是root,www-data和w1r3s

第五步 密码爆破

我们试试能不能对密码进行解密。先把这些存为一个名为hash的文件。把含有上述三个用户名的hash后的密码复制,vim创建一个文件,名为hash(随便起名),至于其他的行,可以不用复制进hash,仅仅保留www-data,w1r3s,root三行即可,我这里图复制方便,把一些其他的行也复制进hash里面了,创建的hash文件如下

 然后我们用john解密,可能需要一定时间

john hash

john显示可能是使用了sha512加密,由于我第一次破解时忘了截图了,下图为红队笔记视频中的运行结果:

 成功爆破出了两个密码,www-data的密码也是www-data,w1r3s的密码是computer。root密码始终爆破不出来,等待良久后ctrl + c先退出算了。

注意:如果重复破解相同的密码哈希,john是不会显示结果的,可以用john –show hash ,查看历史破解记录,可得到两个密码。

 通常情况w1r3s的权限应该是高于www-data的,因此我们用w1r3s远程登录ssh的22端口,试试能不能用密码computer登录。

ssh [email protected]

输入密码computer 成功登录了!

 此处已经拿到了w1r3s的权限,非常nice!

第六步 提权

先看看w1r3s自己是什么权限 :

  1. whoami
  2. uname –a
  3. id
  4. sudo -l

 发现w1r3s已经具有了all:all:all的权限,那么我们能够以系统的权限运行/bin/bash

sudo /bin/bash

 成功获得了root权限!如下图:

成功拿到了flag!

至此打靶完成。

总结与思考

 打靶完成后,再进行一下总结。这个打靶的全过程思路如下:

1.主机发现,nmap扫描发现靶机是192.168.200.139

2.端口扫描,发现开放了21,22,80,3306四个端口。并针对这四个端口进行漏洞扫描,发现有名为wordpress的cms

3.综合考虑决定先从21端口FTP开始入手,进行匿名登录,查看里面的信息,发现了许多.txt文件,包括了一些提示信息和人员名单。虽然这些信息最后貌似没有用上,但我们打靶的时候还是要把这些信息记录下来,毕竟在当时我们不知道这些信息是否有利用价值。

4.web渗透,查看web页面,发现apache默认界面,扫描目录发现有wordpress,adminstrator,javascript,逐一访问,发现adminstrator子目录的cms为cuppa,用kali中的searchsploit进行利用,发现文件包含漏洞,/etc/shadow暴露了登录密码。

5.使用join破解密码hash,得到登录账号w1r3s的密码为conputer,尝试对22端口进行ssh登录,成功登录,查看权限,发现已经是系统权限了。

6.提权,以系统权限运行bash,成功升级为root。

如果就打靶拿flag的角度来讲写writeup,似乎只要端口扫描出80,直接爆破目录,查找cuppa的cms漏洞并利用即可,完全不需要进入ftp。 然而这样并没有渗透思考的全过程,本文详细阐述了整个打靶思路和过程。

感谢读者阅读。如果喜欢这篇文章,欢迎点赞转发或私信。后续我也会继续写写红队打靶的博客,希望大家多多支持。

文章知识点与官方知识档案匹配,可进一步学习相关知识
网络技能树首页概览44399 人正在系统学习中
注:本文转载自blog.csdn.net的Boss_frank的文章"https://blog.csdn.net/Bossfrank/article/details/130953265"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top