+ [Vulnhub靶机安装:](#Vulnhub_8)
+ [Vulnhub靶机漏洞详解:](#Vulnhub_14)
+ - * [①:信息收集:](#_15)
* [②:命令执行:](#_75)
* [③:提权:](#_98)
* [④:获取FLAG:](#FLAG_130)
+ [Vulnhub靶机渗透总结:](#Vulnhub_133)
Vulnhub靶机介绍:
vulnhub是个提供各种漏洞平台的综合靶场,可供下载多种虚拟机进行下载,本地VM打开即可,像做游戏一样去完成渗透测试、提权、漏洞利用、代码审计等等有趣的实战。
这是一个漏洞靶机,老样子需要找到flag即可。
Vulnhub靶机下载:
官方下载:download.vulnhub.com/theplanets/…
Vulnhub靶机安装:
下载好了把安装包解压 然后使用Oracle VM打开即可。
Vulnhub靶机漏洞详解:
①:信息收集:
kali里使用arp-scan -l或者netdiscover发现主机
渗透机:kali IP :192.168.0.102 靶机IP :192.168.0.105
使用命令:
nmap -sS -sV -A -n -p- 192.168.0.105
发现开启了22、80、443 老样子先访问80发现400报错,修改hosts文件vim /etc/hosts
192.168.0.105 earth.local terratest.earth.local #然后访问earth.local
在Message输入随便的字符 下面的数字会进行加密 dirb扫一下后台发现/admin/发现需要账号密码,尝试暴力破解无果!
接着扫另一个https域名: dirb https://terratest.earth.local发现了robots.txt进行访问
- 加密算法是
XOR(异或) testdata.txt是加密文件terra是管理员的用户名
wget https://terratest.earth.local/testdata.txt --no-check-certificate ##下载密文
import base64
import binascii
data1 = "2402111b1a0705070a41000a431a000a0e0a0f04104601164d050f070c0f15540d1018000000000c0c06410f0901420e105c0d074d04181a01041c170d4f4c2c0c13000d430e0e1c0a0006410b420d074d55404645031b18040a03074d181104111b410f000a4c41335d1c1d040f4e070d04521201111f1d4d031d090f010e00471c07001647481a0b412b1217151a531b4304001e151b171a4441020e030741054418100c130b1745081c541c0b0949020211040d1b410f090142030153091b4d150153040714110b174c2c0c13000d441b410f13080d12145c0d0708410f1d014101011a050d0a084d540906090507090242150b141c1d08411e010a0d1b120d110d1d040e1a450c0e410f090407130b5601164d00001749411e151c061e454d0011170c0a080d470a1006055a010600124053360e1f1148040906010e130c00090d4e02130b05015a0b104d0800170c0213000d104c1d050000450f01070b47080318445c090308410f010c12171a48021f49080006091a48001d47514c50445601190108011d451817151a104c080a0e5a"
#data1中的数据为https://earth.local页面中最下面一行数据的内容 如果不确定是哪个可以都试试 只有这个数据可以异或出来有效数据
f = binascii.b2a_hex(open('testdata.txt', 'rb').read()).decode()
#(open('a.txt', 'rb') rb参数表示获取到的是 testdata.txt中内容的16进制 其整体结果为2进制的表现形式。testdata.txt 是上一步扫描获取到的信息 可以复制出来 也可以 使用命令:wget https://terratest.earth.local/testdata.txt --no-check-certificate
#binascii.b2a\_hex 把二进制形式的16进制字符串转换为16进制的形式
res=hex(int(data1,16) ^ int(f,16)) #&与 |或 ^异或 ~非 >>右移 <<左移 异或的时候需要知道必须要与加密文件大小相同
print(res) #输出异或运算后的16进制字符串
0x6561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174 #这一串有密码
16进制在线转字符串:www.bejson.com/convert/ox2…
现在知道了账号:terra和密码:earthclimatechangebad4humans 尝试登入, 登入成功!!!
②:命令执行:
发现可以直接命令执行,直接看看能不能找flag find / -name "*flag*"查看源码这样方便看点 cat /var/earth_web/user_flag.txt
这里其实可以直接反弹shell了 但是显示被禁止所以需要绕过 把ip进行16进制编码即可完成绕过 然后就回弹了shell
在线转换地址:www.tbfl.store/net/ip.html
/var/earth_web/secure_message/forms.py #这个文件限制了ip