# CS登录通信分析

Cobalt Strike服务端和客户端通信过程，使用的是SSLSocket（安全Socket）其实就是在普通的明文Socket上套了一层TLS这样可以在一定程度上保证通信安全

还是先看代码aggressor\dialogs\Connect.class

![创建安全Socket然后请求服务端登录验证](https://3226329500-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MDZyrMxFR2BnFjV82cS%2F-MIlxDKqf_CR1qtKul3W%2F-MImmEIzrdjwmLsotXnf%2Fimage.png?alt=media\&token=71920747-b389-4144-a092-f64b66746f0f)

我们跟进到authenticate函数里

![](https://3226329500-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MDZyrMxFR2BnFjV82cS%2F-MImwXVxsApt09MEbjW8%2F-MImxw75vXxTLWwYV0xA%2Fimage.png?alt=media\&token=5af53059-a059-4855-9a90-5bb71188e90d)

看完代码现在我们来验证一下，打开Wireshark登录一下看看通信过程（注：别忘了解密TLS要不然看到的是加密的数据，自己谷歌java ssl Wireshark）

![Finished之前的那些包都是TLS或TCP握手过程（对这个不太明白的可以自行谷歌一下相关协议通信过程）](https://3226329500-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MDZyrMxFR2BnFjV82cS%2F-MIlxDKqf_CR1qtKul3W%2F-MImpEWojGNuyLazurLm%2Fimage.png?alt=media\&token=05008b4a-b38e-4a09-b975-122db8670e1b)

从解密后的包里可以看到发送的数据，正如我们分析的代码，其结构如下

> 感谢Jas502n师傅指出此图片中的总长度标错，以修改为261字节

![](https://3226329500-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MDZyrMxFR2BnFjV82cS%2F-MgLZYFgt5PiyFflmLYj%2F-MgLaXu6-73CEMtQteBx%2Fimage2.png?alt=media\&token=6fa9fb66-a355-4146-b261-04fff2033f17)

数据发送到服务端后，cs接收数据并验证密码，基本过程如下图代码

![](https://3226329500-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MDZyrMxFR2BnFjV82cS%2F-MImwXVxsApt09MEbjW8%2F-MImyBBMieup3qjZE8TW%2Fimage.png?alt=media\&token=4a061130-cf52-4be7-8f5b-e7debe94cb73)

![](https://3226329500-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MDZyrMxFR2BnFjV82cS%2F-MImwXVxsApt09MEbjW8%2F-MIn-0j8dVrQXXAzl-wm%2Fimage.png?alt=media\&token=85988f6c-281d-4c70-9f97-889a2503bf76)

![](https://3226329500-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MDZyrMxFR2BnFjV82cS%2F-MImwXVxsApt09MEbjW8%2F-MIn0lGG3Uc3gMMKKYQU%2Fimage.png?alt=media\&token=384ad79a-64ae-4013-a6ce-0f595a5e8320)

以上就是cs密码的认证过程，关于爆破我就不说了根据这个过程发包就完了记得使用TLS就行

至于那个魔数(48879) 判断版本，根据分析大概3.x之前的版本才会使用别的魔数，如果你爆破3.x(包括3.x)到4.x都不用在意这个问题，不过估计也爆不开啥（笑，毕竟稍微懂一些的估计密码都不会简单，端口都会改，注：故意钓鱼的除外）

老外写的一个爆破工具：<https://github.com/ryanohoro/csbruter>
