问题单
环境
服务器
10.90.3.26 mcadmin1/ksvd2022 root/unikylinsec
https://10.90.3.26:8443/mc/image/list
- 用户 ygh /
- 规格 ygh-vapp
客户端包
arm
- ip 10.20.1.112
- 用户 kylin/qwer1234
xfreerdp
1 | ygh@ygh:/opt/ksvd/usr/bin$ xfreerdp --help | grep usb -C5 |
功能
1 |
|
- 进程树
- vapp-launcher
- /opt/ksvd//usr/bin/vapp-xfreerdp
调研尝试
在/opt/ksvd/usr/bin/vapp-laucher中添加参数
编译
sudo apt-get install libgnutls28-dev
sudo apt-get install libx11-dev libxcursor-dev libxrandr-dev
apt-file search wintypes.h
1 | 2136 sudo apt-file search wintypes.h |
Unknown module(s) in QT: core gui network
xfreerdp 日志
- WLOG_APPENDER -> FILE
- WLOG_FILEAPPENDER_OUTPUT_FILE_PATH -> /tmp/xrdp.log
export WLOG_APPENDER=FILE
export WLOG_FILEAPPENDER_OUTPUT_FILE_PATH=/tmp/xrdp.log
开启失败
修改代码后,需要替换库
1 | 2457 sudo cp -f /home/ygh/code/kylin/remoteapp/xfreerdp/freerdp-2.7.0/client/common/libfreerdp-client2.so.2.7.0 ../../usr/lib/uniface-vapp/libfreerdp-client2.so.2.7.0 |
分析代码
初步分析结论
- 可能是因为没有root权限导致的
开启日志后,确认是打开问题
1 | [09:44:22:885] [801994:801996] [INFO][com.freerdp.channels.drdynvc.client] - Loading Dynamic Virtual Channel urbdrc |
通过spice的提权应用,给usb进行提权,可以正常枚举
但是在中间的交互过程中,还是会产生错误
IOCTL_INTERNAL_USB_GET_PORT_STATUS请求,失败
1 | [14:39:42:195] [1317707:1317777] [DEBUG][com.freerdp.channels.urbdrc.client] - URB TS_URB_BULK_OR_INTERRUPT_TRANSFER[u] |
编译环境
docker pull 192.168.120.44/dev_builders/vapp_builder@sha256:8b1ab1f5bdb87204fb30a893379c03933adb7dcb195ee0e806d9e30763963d3b
结构
flle | func |
---|---|
build-deb-auto.sh | debian包编译脚本 |
build-rpm-auto.sh | rpm包编译脚本 |
build.sh | 未知 |
build-win.bat | windows编译脚本 |
install_dep | 记录依赖包 |
Makefile.lin | |
setup.nsi | windows使用 |
sysprep.bat | windows使用 |
uniface-vapp.pro | |
uniface-vapp.pro.user | |
uniface-vapp.qm | |
uniface-vapp.spec | rpm包编译spcec文件 |
uniface-vapp.ts | |
uniface-vapp-win.pro |
acl
- usb 提权代码
base64
common
- submodule common
include
- 头文件
kraclient
lib
- submodule boost
libs
- 放了些 dll, windows使用
libvapp-client 【linux】【QT】
NSIS
rdestop 【linux】
- 开源,需要单独configure
script
seamlessrdp 【windows】
super_exec【linux】【QT】
- 疑似以前的提权文件
tools 【windows】
VApp 【windows】【QT】
vapp-launcher 【linux】【QT】
- 分发程序
vapp-login 【linux】【QT】
- 登陆程序
VAppServer 【windows】【QT】
xfreerdp [linux]
- 核心工作程序
- 开源,需要cmake 开启特性
1
cmake -DCHANNEL_URBDRC_CLIENT=ON .
uwac
新划分方案
- win
- seamlessrdp
- qt
- VApp
- VAppSever
- uniface-vapp.pro
- linux
- web
- kraclient
1 | qt: |
编译环境 sw
docker run -itd –privileged –userns=host –network host -v /home/uos/ygh/:/root/code -w /root/code –name vapp 192.168.120.44/dev_builders/uos_sw_64:latest
问题
rdesktop/config.guess 不支持sw
- 暂时修改,使用x86的参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14sw_64:Linux:*:*)
set_cc_for_build
LIBCABI=$LIBC
if test "$CC_FOR_BUILD" != no_compiler_found; then
if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_X32 >/dev/null
then
LIBCABI="$LIBC"x32
fi
fi
#echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI"
echo x86_64-pc-linux-"$LIBCABI"
exit ;;
[rdesktop] CredSSP support requires GSSAPI, install the dependency
- apt-get install libsasl2-modules-gssapi-mit
暂时避过
- ./configure –disable-credssp –disable-smartcard
编译环境 arm
ssh root@192.168.120.167 ksvd@KylinOs
docker run -itd –privileged –userns=host –network host -v /home/ygh/:/root/code -w /root/code –name vapp 192.168.120.44/dev_builders/ky336-tc-aarch64:v1
docker exec -it vapp /bin/bash
USB重定向
竞品环境
http://10.0.0.10:5080/wiki/#/team/6B7ew4b7/space/HqAKrvss/page/4xpGR6xb
sxf文档
ftp://192.168.120.2/vdi/sangfor/
思杰文档
http://10.0.0.10:5080/wiki/#/team/6B7ew4b7/space/L7ryBznf/page/7QQvU9mh
XenApp对应我没VAPP功能,文档中,只描述了基本配置,并未涉及,USB重定向
- 本文作者: crazyboy
- 本文链接: http://crazyboy.www.crazyboy.info/blog/blog/2022/07/11/kylin/vapp/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!