美文网首页APT
APT攻击溯源项目学习二:流量分析

APT攻击溯源项目学习二:流量分析

作者: Your7Maxx | 来源:发表于2020-06-21 14:24 被阅读0次

    经过两周左右时间的众测,今天将项目学习的进度推进一下。

    一、模拟场景背景:

    某公司内网被某组织进行了攻击,简单了解,该组织首先攻击了一台web服务器,破解了后台的账户的密码,随之利用获取到的口令登陆了该公司的mail系统,接着获取到了vpn的申请方式,然后登陆vpn,在内网pwn掉了一台打印机,该公司提供了一份时间周期的流量包供参考,要求对该组织的攻击行为循迹溯源,并进行相应的分析。

    二、利用工具以及前置知识:

    1、利用工具:Wireshark

    Wireshark是一个网络封包分析软件,它的前身也就是Ethereal。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的玩过封包的资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
    类似的工具还有很多,因为之前接触并且用过wireshark,所以沿用该工具。

    Wireshark基本使用:

    主界面如下:选择网卡进行捕获


    image.png

    下面是选择无线网卡进行流量捕获的界面:


    image.png
    从上至下依次为(行为单位):
    菜单、常用按钮、过滤器(通过添加过滤规则,过滤出相应的数据包,方便快速定位和分析)、参数标题、数据包的界面、格式化后的单个数据包的具体协议内容、未格式化后的单个数据包的具体协议内容(十六进制)。

    下面这行常用按钮从左至右分别为:
    开始新的抓包、停止抓包、重新开始抓包、抓包设置、打开已有的数据包文件、保存文件、关闭文件、重新加载文件、查找分组、转到前一分组、转到后一分组、转到特定的分组、转到首个分组、转到最新分组、开始抓包时自动转到最新分组、根据着色规则进行分组等等。


    image.png

    过滤规则的基本使用:

    1、过滤ip,例如源ip和目标ip:

    ip.src eq xxx.xxx.xxx.xxx or ip.dst==xxx.xxx.xxx.xxx 或者 ip.addr eq xxx.xxx.xxx.xxx
    
    image.png

    2、过滤端口:

    tcp.port == 80 or udp.port == 80 源端口或目的端口为80
    tcp.dstport == 80 只显示tcp协议的目标端口为80
    tcp.srcport == 80 只显示tcp协议的源端口为80
    tcp.port >=1 and tcp.port <=80
    
    image.png

    3、过滤协议:

    tcp/udp/arp/icmp/http/ftp/dns/ip(不在同一层的协议汇总一起说的)
    

    4、过滤MAC地址:

    eth.src == xx:xx:xx:xx:xx:xx
    eth.dst == xx:xx:xx:xx:xx:xx
    eth.addr == xx:xx:xx:xx:xx:xx
    

    5、过滤包长度:

    udp.length == 26 这个长度是指udp本身固定长度8加上udp下面那块数据包之和。
    tcp.len >=7 指的是ip数据包(tcp下面那块数据),不包括 tcp本身
    ip.len == 94 除了以太网头固定长度14,其他都算是ip.len,即从ip本身到最后
    frame.len == 119 整个数据包的长度,从eth开始到最后。
    

    6、过滤HTTP

    HTTP
    HTTP.request.method == "GET"
    HTTP.request.method =="POST"
    HTTP.request.uri == "/img/logo-edu.gif"
    HTTP contains "WVS"————比较常用
    
    image.png

    7、数据流跟踪:
    在关注的http数据包或者tcp数据包中选择追踪流:


    image.png

    在弹出的框中可以看到数据内容:


    image.png
    常见的HTTP流中的关键内容:
    (1)、H5中直接包含重要信息
    (2)、上传或下载文件内容,通常包含文件名、hash值等关键信息,常用POST请求上传。
    (3)一句话,post请求,内容包含eval,内容使用base64加密

    8、数据提取

    文件->导出对象->HTTP->save
    

    三、实验过程:

    一些常见扫描器的指纹:(web漏扫方面)

    1、awvs:acunetix
    2、netsparker:netsparker
    3、appscan:Appscan
    4、nessus:nessus
    5、sqlmap:sqlmap
    

    一些常见的后台地址:

    1、admin
    2、manager
    3、login
    4、system
    

    还有容易忽略掉的robots.txt。

    1、导入受害公司所提供的流量包文件
    2、找到该组织所使用的扫描器:

    http contains "wvs"
    
    image.png

    发现是用的awvs扫描器。
    3、找到他们的切入点登陆后台:

    http contains "admin" 
    http contains "login" 
    
    image.png

    发现存在/admin/login.php?rec=login的登陆站点。
    4、找到他们用的什么弱口令登陆的:

    http contains "password" && http.request.method=="POST"
    
    image.png

    从返回的字段长度可以推测,75x的两个数据包存在问题,可能是登陆成功。
    查看数据包内容:


    image.png

    可知 用户名:admin,密码:admin!@#pass123 被成功猜解。
    5、查看通过哪个接口上传的小马以及文件名:

    http.contains "eval" && http.request.method =="POST"
    

    这里其实是存在运气因素的,因为刚才在找后台的时候就已经确定了后台语言是php,所以只要找eval函数就可以,但也不能排除利用其他绕过形式的小马。


    image.png
    image.png

    由上图可知,小马文件文a.php,上传接口是/images/article。
    6、找到被利用的数据库用户及密码:

    http contains "dbhost"
    
    image.png
    image.png

    找到数据服务器的地址
    修改过滤规则:

    http contains "10.3.3.101"
    
    image.png

    右键追踪TCP流:


    image.png

    将action中post的内容显然是base64加密,解密即可:


    image.png
    choraheiheihei为分割符号,提取出用户名为web,密码为e667jUPvJXHvEUv
    还有一种方法为搜索dbhost,然后查看数据包:
    image.png

    不过这个方法不太正经。
    7、找到被利用mail系统账号:

    ip.addr==“192.168.94.59” && http.request.method="POST"
    地址是上面的web线索里找到的
    
    image.png image.png

    这串并不是标准的base64,解密之后还是乱码:


    image.png

    然后因为用户名是admin,所以密码猜测还是上面的密码。
    最后答案竟然是:AES的CBC加密,填充格式为ZeroPadding,密钥为字符串1234567812345678的hash值,偏移量为1234567812345678

    8、找到该组织获得的vpn.ip是多少
    打开vpntwo.pcap,根据流量大小判断,下面是一个大佬的解答:


    image.png

    到此结束

    四、参考:

    1、安恒网络空间安全学院
    2、公众号:lemon-sec(特别感谢公众号支持给我的资料,受益很多!)
    3、http://www.manongjc.com/detail/15-iaciotevjmwuuws.html

    相关文章

      网友评论

        本文标题:APT攻击溯源项目学习二:流量分析

        本文链接:https://www.haomeiwen.com/subject/dxooxktx.html