============
== 白菜 ==
============
一个勤奋的代码搬运工!

Mac终端查看sqlite3数据库

Shell脚本 mac sqlite

用sqlite命令打开数据库文件

sqlite3 db.file

这样我们就进入了数据库操作,下面的命令都只能是sqlite下的命令,如果输入其他命令,都是无效的。

我们可以输入 .help 先查看下大概的命令:

.help

常用的几种简单命令:

  1. 退出sqlite
.quit
  1. 查看所有表
.tables
  1. 配置情况
.show
  1. 设置查询数据排列格式
.mode list
.mode line 
.mode column
  1. 是否显示头
.headers on

解决 UFW 和 Docker 的问题

debian linux ufw docker

问题

UFW 是一个 iptables 前端,可以非常方便的管理防火墙的规则。但是当安装了 Docker,UFW 无法管理 Docker 发布出来的端口了。

具体现象是:

  1. 在一个对外提供服务的服务器上启用了 UFW,并且默认阻止所有未被允许的传入连接。
  2. 运行了一个 Docker 容器,并且使用 -p 选项来把该容器的某个端口发布到服务器的所有 IP 地址上。比如:docker run -d --name httpd -p 0.0.0.0:8080:80 httpd:alpine 将会运行一个 httpd 服务,并且将容器的 80 端口发布到服务器的 8080 端口上。
  3. UFW 将不会阻止所有对 8080 端口访问的请求,用命令 ufw deny 8080 也无法阻止外部访问这个端口。

这个问题其实挺严重的,这意味着本来只是为了在内部提供服务的一个端口被暴露在公共网络上。

解决 UFW 和 Docker 的问题

撤销原先的修改

如果已经按照目前网络上搜索到解决方案修改过了,请先修改回来,包括:

  1. 启用 Docker 的 iptables 功能,删除所有类似 --iptables=false 的修改,包括 /etc/docker/daemon.json 配置文件。
  2. UFW 的默认 FORWARD 规则改回默认的 DROP,而非 ACCEPT
  3. 删除 UFW 配置文件 /etc/ufw/after.rules 中与 Docker 网络相关的规则。
  4. 如果修改了 Docker 相关的配置文件,重启 Docker。稍后还要修改 UFW 的配置,可以一并重启。

目前新的解决方案只需要修改一个 UFW 配置文件即可,Docker 的所有配置和选项都保持默认。

Read more...

docker 映射某个范围内的端口列表

Docker

在Dockerfile、命令行或docker-compose.yml中,都可以使用类似于8080-8090:8080-8090的格式,来映射多个端口

docker-compose.yml

version: '3.6'
services:
  web:
    image: nginx:1.18
    ports:
      # 将会映射8080到8090这个范围内的端口
      - 8080-8090:8080-8090
    volumes:
      - ./www:/www

命令行

docker run -p 8080-8090:8080-8090 nginx

Dockerfile

Dockerfile

EXPOSE 8080-8090

使用adb命令和电脑互传文件

adb shell

电脑传文件到手机

把当前目录下的test.tex文件传到手机 /sdcard/test目录中

adb push test.txt /sdcard/test

手机文件传到电脑

/sdcard/test/ 目录下的test.txt文件传到本机当前目录test目录中

adb pull /sdcard/test/test.txt ./test

查看手机文件目录

#进入到根目录
adb shell 
#查看所有目录
ls
#进入到sdcard目录,安卓手机的文件管理一般都这这里
cd sdcard 
#然后查看要传输哪些文件到哪个文件夹

查找子域名解析: 子域名探测方法大全

技术分享 子域名 DNS subdomain

子域名探测

通过收集子域名信息来进行渗透是目前常见的一种手法。 子域名信息收集可以通过手工,也可以通过工具,还可以通过普通及漏洞搜索引擎来进行分析。 在挖SRC漏洞时,子域名信息的收集至关重要!

为什么要进行子域名探测?

子域名探测可以帮我们发现渗透测试中更多的服务,这将增加发现漏洞的可能性
查找一些用户上较少,被人遗忘的子域名,其上运行的应用程序可能会使我们发现关键漏洞
通常,同一组织的不同域名/应用程序中存在相同的漏洞
子域名中的常见资产类型一般包括办公系统,邮箱系统,论坛,商城等,其他管理系统,网站管理后台等较少出现在子域名中

子域名探测方法大全

在线接口
暴力枚举
搜索引擎
Certificate Transparency(证书透明)
Subject Alternate Name (SAN) - 主题备用名称
Public datasets(公开数据集)
信息泄露
内容解析(HTML,JavaScript,文件)
DNS解析
区域传送
DNS aggregators(DNS聚合器)
DNS Cache Snooping(域名缓存侦测)
Alterations & permutations(换置 & 排序)
DNSSEC(Domain Name System Security Extensions),DNS安全扩展,DNSSEC区域漫步
CSP HTTP首部
SPF记录
虚拟主机爆破
ASN发现
爬虫 Scraping(抓取)

在线接口

https://crt.sh/
https://censys.io/
https://transparencyreport.google.com/https/certificates
https://dnsdumpster.com/
https://hackertarget.com/find-dns-host-records/
https://x.threatbook.cn/
https://www.virustotal.com/gui/home/search
https://site.ip138.com/baidu.com/domain.htm
https://www.t1h2ua.cn/tools/
http://tool.chinaz.com/subdomain/

暴力枚举

Layer子域名爆破机 Layer是windows下的一款子域名探测工具,其工作原理是利用子域名字典进行爆破,使用简单容易上手。

Amass 工具描述:爆破, google, VirusTotal, alt names

go install github.com/OWASP/Amass/...
amass -d target.com -o $outfile

Knock 工具描述:AXFR, virustotal, 爆破

Read more...

开启 Telegram 的邮箱登录

telegram Email

Telegram的邮箱登录是什么? 有什么用?

邮箱登录就是通过电子邮件获取验证码来登录Telegram账户, 此功能可以在把验证码发送到Telegram客户端的情况下同时向邮箱发送一份验证码, 而不是通过短信发送验证码. 极大减少了Telegram官方的短信费用支出. 对于使用接码的用户来说, 再也不怕没客户端也没手机号的情况下收不到验证码了!

如何开启Telegram邮箱登录?

注意 账号绑定的手机号需要可以接收短信验证码, 否则无法设置邮箱登录

根据官方文档来看,

  • auth.sentCodeTypeSetUpEmailRequired: if the user logins often enough, Telegram will ask the user to verify an email that will be used to send the login code.
  • 当你的登录频率足够高时, Telegram服务器会要求客户端设置邮箱登录

具体方法

  • 使用Telegram官方移动客户端登录, 登录时选择 Tap to get a code via SMS
  • 短信验证码和Telegram客户端验证码一致, 任选其一输入即可, 不需要输入2FA密码, 直接返回重新刷

如果过程中出现 Too many attemps, please try again later 则需要休息一段时间再刷

直到出现让你选择登录邮箱的提示界面

根据提示输入完成邮箱验证码后会向你的账号绑定手机号码发送短信验证码, 输入完即可开启邮箱登录 (2FA可以不输入)

如何判断有没有开启邮箱登录?

在设置-隐私与安全界面,可看到已设置的“登录邮箱”

参考:

Telegram的邮箱登录
User Authorization

Read more...

通过 ADB 卸载系统自带应用(无需Root),精简系统app

adb shell

准备 ADB 使用条件

要使用 ADB(Android 调试桥),你需要按照以下步骤操作:

下载并安装 ADB 工具:

在计算机上安装 Android SDK 或者仅安装 ADB 工具。你可以从 Android 官方网站或者其他可信赖的来源获取它们。
如果你使用 macOS 或 Linux,你可以通过终端使用系统包管理器或 Homebrew 安装 ADB。
如果你使用 Windows,你可以下载 Android Studio,它包含了 ADB 工具。

连接 Android 设备:

使用 USB 线将 Android 设备连接到计算机上。
在 Android 设备上打开开发者选项。这通常需要在设备设置中多次点击“关于手机” -> “版本号”或者类似的选项。一旦开启,返回设置菜单并找到“开发者选项”。
在“开发者选项”中,启用“USB 调试”。

打开命令提示符(Windows)/终端(macOS、Linux):

运行以下命令以确保 ADB 正确识别设备:
adb devices

这应该显示已连接设备的列表。

使用 ADB 列出已经安装的应用程序

打开命令提示符(Windows)/终端(macOS、Linux):

在命令提示符/终端中输入以下命令来列出已安装的应用程序:
adb shell pm list packages

如果你想筛选出包含特定关键词的应用程序,可以使用以下命令:

adb shell pm list packages | grep keyword

将 “keyword” 替换为你想要搜索的关键词。 比如魅族的手机

Read more...

Kubernetes 停止和移除 pod

技术分享 k3s kubectl

停止和移除pod

按名称删除pod

按名称删除kubia-gpu pod:

kubectl delete po kubia-gpu

在删除pod的过程中,实际上我们在指示Kubernetes终止该pod中的所有容器。Kubernetes向进程发送一个SIGTERM信号并等待一定的秒数(默认为30),使其正常关闭。如果它没有及时关闭,则通过SIGKILL终止该进程。因此,为了确保你的进程总是正常关闭,进程需要正确处理SIGTERM信号。

提示

还可以通过指定多个空格分隔的名称来删除多个pod(例如:kubectl delete po pod1 pod2)。

使用标签选择器删除pod

停止 kubia-manual 和 kubia-manual-v2 pod 。这两个pod都包含标签 creation_method=manual ,因此可以通过使用一个标签选择器来删除它们:

kubectl delete po -l creation_method=manual

通过删除整个命名空间来删除pod

以下命令删除custom-namespace:

kubectl delete ns custom-namespace

删除命名空间中的所有pod,但保留命名空间

查看 pods

kubectl get pods

通过使用–all选项告诉Kubernetes删除当前命名空间中的所有pod:

kubectl delete po --all

删除命名空间中的(几乎)所有资源

通过使用单个命令删除当前命名空间中的所有资源,可以删除ReplicationCcontroller和pod,以及我们创建的所有service:

kubectl delete all --all

命令中的第一个all指定正在删除所有资源类型,而–all选项指定将删除所有资源实例,而不是按名称指定它们(我们在运行前一个删除命令时已经使用过此选项)。

注意

使用all关键字删除所有内容并不是真的完全删除所有内容。一些资源会被保留下来,并且需要被明确指定删除。

删除资源时,kubectl将打印它删除的每个资源的名称。

注意

kubectl delete all --all 命令也会删除名为kubernetes的Service,但它应该会在几分钟后自动重新创建。

kubectl 命令演示

kubectl 展示搜索出的pod列表(含pod所在的namespace)

kubectl get pod -A |grep <podname>

[root@node ~]# kubectl get pod -A |grep dashboard
kubernetes-dashboard   dashboard-metrics-scraper-5657497c4c-j5kr8   1/1     Running   0              113m
kubernetes-dashboard   kubernetes-dashboard-78f87ddfc-tlmjv         1/1     Running   0              113m

kubectl 删除pod命令

kubectl delete pod <podname> -n <namespace>

在进行删除pod命令时,会发现pod并未被真正删除,原因是k8s误认为我们要删除的pod异常挂了,会启用容灾机制,导致重新在拉起一个新的pod。 故,我们想要正常且彻底的删除一个pod,必须要先破坏掉他的容灾机制,即删除deployment机制。

Read more...

Docker的 privileged 选项解析(特权模式:赋予容器几乎与主机相同的权限)

Docker

Runtime privilege and Linux capabilities

参考官方文档:Docker run reference

By default, Docker containers are “unprivileged” and cannot, for example, run a Docker daemon inside a Docker container. This is because by default a container is not allowed to access any devices, but a “privileged” container is given access to all devices (see the documentation on cgroups devices).

The –privileged flag gives all capabilities to the container. When the operator executes docker run –privileged, Docker will enable access to all devices on the host as well as set some configuration in AppArmor or SELinux to allow the container nearly all the same access to the host as processes running outside containers on the host. Additional information about running with –privileged is available on the Docker Blog.

Read more...

Debian 彻底卸载 LibreOffice

debian linux LibreOffice

LibreOffice是一款非常优秀的开源且免费的办公软件。但我用不到,为了优化更新系统的速度,所以这就卸载了,这不就几条命令的事。

下面的指令对所有基于 Debian 发行版(Debian, Ubuntu, Kubuntu, Xubuntu, buntu, Sidux, Knoppix, Linux Mint, Damn Small Linux, Crunchbag 等)都适用。

彻底卸载 LibreOffice

终端中输入命令:

#不要漏掉通配符“?”,否则无法清除/卸载全部 LibreOffice 软件包
sudo apt-get purge libreoffice?

#不要漏掉通配符“?”,否则无法清除/卸载全部 LibreOffice 软件包
sudo aptitude purge libreoffice? 

#不要漏掉通配符“*”,否则无法清除/卸载全部 LibreOffice 软件包
sudo apt-get remove --purge libreoffice*

然后清理残留:

sudo apt-get clean
sudo apt-get autoremove

附注(不完全卸载):

卸载libreoffice表格

sudo apt remove libreoffice-calc

卸载libreoffice绘图

sudo apt remove libreoffice-draw

卸载libreoffice幻灯片

sudo apt remove libreoffice-impress

卸载libreoffice word文档工具

sudo apt remove libreoffice-writer

清理残留

Read more...
Previous Page 2 of 9 Next Page