cs-checklist
前言
在过去的一次 C/S 客户端渗透过程中,由于是第一次渗透C/S客户端,所以有很多不足的地方,在这里记录学习一下如何渗透 C/S 客户端。
C/S 渗透与 Web 渗透最大的不同就是 C/S 客户端可能存在 TCP、UDP 协议,你使用 proxifier 等抓包工具是抓不到那些请求的,所以如果止步于 Web 渗透的手段,是没办法完整的完成渗透测试的。
工具
C/S 客户端渗透需要准备下列的工具:
burp
proxifier
wireshark或者火绒剑
proxifier 用来做代理抓客户端的https包
wireshark或者火绒剑是用来抓tcp或者udp的包
C/S架构渗透
DLL劫持
原理
这部分主要取决于windows系统dll加载机制。dll文件的加载顺序为:
(1)EXE所在目录;
(2)当前目录;
(3)系统目录;
(4)WINDOWS目录;
(5)环境变量 PATH 所包含的目录。
这就导致我们可以让我们自己编写的同名dll在正常dll之前进行进行加载。
部分dll无法劫持的原因
1.dll采用绝对路径方式加载(这种方式极少)
2.windows新系统采用knowndlls方式保护的dll,可以通过以下路径查看被保护的dll是哪些
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs
过程
- 首先利用火绒剑监控分析一下客户端启动时调用的dll。
- 筛选 cloudmusic.exe 调用的 dll 文件,过滤->动作过滤->FILE_open
- 排除knowdlls记录的dll后,把其他的dll拷贝的应用的目录下,再重新监控一次加载的dll文件
如果加载的是应用目录下的dll文件,那么就可以用来进行dll劫持了。
(这是一张图片)
- 劫持dll
由于利用部分篇幅长且笔者没有进行尝试,所以暂时掠过,可以参考下方文章链接进行利用
https://mp.weixin.qq.com/s/liv4S4rqQwiD0yecnNisNA
抓包测试
一般来说流量的走向是 客户端——>proxifier——>burpsuite。
但是有些客户端不能通过 proxifier 进行代理,就算它有https连接,你也抓不到,一片红,不信你用proxifier抓一下网易云,就是这么亏贼,当时还重新安装了几次proxifier。
所以我们可以客户端+系统的全局代理+burpsuite,这样子抓包,然后在burp中设置只拦截目标IP。
火绒剑的作用是更加清晰的看到进程的网络连接,wireshark的作用是精准的查看数据包,两者互补。
火绒剑适用的场景是,查看客户端与哪个ip在建立连接,比如知道mysql的用户名和密码之后,需要找到mysql的ip。缺点是无法复制详细的数据包。
在火绒剑发现需要重发测试的数据包后,使用wireshark的适用场景是抓取抓不到的包,然后放到burpsuite上修改重发。
wireshark 查看数据包的方式也很简单,只需要筛选出目标数据包,然后右键追踪流选择 TCP/UDP/HTTP 流,就可看到了,复制到burpsuite上,加上目标host和端口,重新发送即可。
总结
当然 C/S 渗透还有反编译客户端,但那不是我擅长的,所以就不写了,掌握前两者已经能满足基本的 C/S 渗透要求了。
参考链接
https://mp.weixin.qq.com/s/I60E1VRVQEj0tX_2N-Hzmw
https://mp.weixin.qq.com/s/liv4S4rqQwiD0yecnNisNA
自动化枚举工具
有个编译好的弹计算机的 dll
https://github.com/sensepost/rattler
一种分析特权进程的文件和目录的工具,通过DLL Hijacking via version.cpp 和version.def 文件找出进程是否容易受到DLL 劫持。
https://securityonline.info/spartacus-dll-hijacking-discovery-tool/
dll挖掘入门