1.mimikatz源码分析-lsadump模块(注册表)
2.Docker源码安装附内网镜像安装演示
3.7. 用Rust手把手编写一个wmproxy(代理,内网内网内网穿透等),传播传播 HTTP及TCP内网穿透原理及运行篇
4.别人手上有拷贝我的源码,是源码源码不是可以随时修改我的软件什么的?
5.全球科技大佬都是怎么防止源代码泄露的?
6.用Ngrok实现内网穿透
mimikatz源码分析-lsadump模块(注册表)
mimikatz是一款内网渗透中的强大工具,本文将深入分析其lsadump模块中的内网内网sam部分,探索如何从注册表获取用户哈希。传播传播
首先,源码源码php大屏互动源码简要了解一下Windows注册表hive文件的内网内网结构。hive文件结构类似于PE文件,传播传播包括文件头和多个节区,源码源码每个节区又有节区头和巢室。内网内网其中,传播传播巢箱由HBASE_BLOCK表示,源码源码巢室由BIN和CELL表示,内网内网整体结构被称为“储巢”。传播传播通过分析hive文件的源码源码结构图,可以更直观地理解其内部组织。
在解析过程中,需要关注的在线聊天php源码关键部分包括块的签名(regf)和节区的签名(hbin)。这些签名对于定位和解析注册表中的数据至关重要。
接下来,深入解析mimikatz的解析流程。在具备sam文件和system文件的情况下,主要分为以下步骤:获取注册表system的句柄、读取计算机名和解密密钥、获取注册表sam的句柄以及读取用户名和用户哈希。若无sam文件和system文件,mimikatz将直接通过官方API读取本地机器的注册表。
在mimikatz中,会定义几个关键结构体,包括用于标识操作的注册表对象和内容的结构体(PKULL_M_REGISTRY_HANDLE)以及注册表文件句柄结构体(HKULL_M_REGISTRY_HANDLE)。这些结构体包含了文件映射句柄、映射到调用进程地址空间的位置、巢箱的起始位置以及用于查找子键和子键值的键巢室。
在获取注册表“句柄”后,接下来的lua函数调用源码任务是获取计算机名和解密密钥。密钥位于HKLM\SYSTEM\ControlSet\Current\Control\LSA,通过查找键值,将其转换为四个字节的密钥数据。利用这个密钥数据,mimikatz能够解析出最终的密钥。
对于sam文件和system文件的操作,主要涉及文件映射到内存的过程,通过Windows API(CreateFileMapping和MapViewOfFile)实现。这些API使得mimikatz能够在不占用大量系统资源的情况下,方便地处理大文件。
在获取了注册表系统和sam的句柄后,mimikatz会进一步解析注册表以获取计算机名和密钥。对于密钥的获取,mimikatz通过遍历注册表项,定位到特定的键值,并通过转换宽字符为字节序列,最终组装出密钥数据。cocos游戏源码截图
接着,解析过程继续进行,获取用户名和用户哈希。在解析sam键时,mimikatz首先会获取SID,然后遍历HKLM\SAM\Domains\Account\Users,解析获取用户名及其对应的哈希。解析流程涉及多个步骤,包括定位samKey、获取用户名和用户哈希,以及使用samKey解密哈希数据。
对于samKey的获取,mimikatz需要解密加密的数据,使用syskey作为解密密钥。解密过程根据加密算法(rc4或aes)有所不同,但在最终阶段,mimikatz会调用系统函数对数据进行解密,安卓txt源码从而获取用户哈希。
在完成用户哈希的解析后,mimikatz还提供了一个额外的功能:获取SupplementalCreds。这个功能可以解析并解密获取对应用户的SupplementalCredentials属性,包括明文密码及哈希值,为用户提供更全面的哈希信息。
综上所述,mimikatz通过解析注册表,实现了从系统中获取用户哈希的高效功能,为内网渗透提供了强大的工具支持。通过深入理解其解析流程和关键结构体的定义,可以更好地掌握如何利用mimikatz进行深入的安全分析和取证工作。
Docker源码安装附内网镜像安装演示
系统版本要求源码包下载
官网下载地址(download.docker.com/lin...)
我这里已docker-...tgz该版本做演示
1.下载源码包文件到本地
2.通过远程连接工具(xShell、SecureCRT等将源码包文件上载到服务器自定义目录)
3.解压文件
4.配置docker为service服务
5.添加可执行权限
注:如遇到启动不成功可通过状态查询、/var/log/messages/运行日志或直接使用dockerd命令查看错误信息,如还解决不了建议服务器重启一下在运行docker启动命令
6.配置镜像加速
7.检查安装版本内网下载镜像
注:使用docker pull拉取镜像的时候需要网络,但是项目部署一般都是在内网。内网访问不了外网,所以需要在外网环境下把需要的镜像拉取下来打包,然后拷贝到内网,载入到内网的docker
1.在外网机器上拉取mysql镜像,可以看到外网的docker已经拉取了镜像。
2.将镜像打包成tar压缩包
3.将打包好的mysql镜像包通过远程工具下载到本地
4.拷贝到内网linux服务器并载入docker
docker基础命令使用(扩展)下载镜像:(hub.docker.com/search/官网镜像地址)
docker pull [IMAGE_NAME]:[TAG] #命令格式
docker pull mysql:8.0 #下载mysql8.0镜像(不指定默认下载最新版本)
查看当前镜像版本
docker -v #查看当前安装版本
docker version #查看版本信息
docker info #查看系统信息
docker images #查看当前镜像
docker search 镜像名 #搜索镜像
镜像、容器删除
docker rm 容器ID
docker rm 容器名字
docker rmi 镜像ID
docker rmi 镜像名
docker rmi -f 镜像ID #强制删除
创建网络及数据卷
docker volume create +数据卷名称
docker volume list #查看当前数据卷信息
docker network create -d bridge +网络名称
docker network ls #查看当前网络
docker inspect containername +id #查看容器的hash值
启动、关闭容器
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2) #关闭所有容器
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2) #开启所有容器
杂
docker inspect 容器ID (使用该命令重点关注容器ip) #查看容器/镜像元数据
docker exec #在运行的容器中执行命令
docker exec -it 容器ID /bin/bash #以交互模式开启伪终端
7. 用Rust手把手编写一个wmproxy(代理,内网穿透等), HTTP及TCP内网穿透原理及运行篇
内网与公网的差异:
内网通常指的是局域网环境,包括家庭、网吧、公司、学校网络,网络内部的设备可以互相访问,但一旦越出网络,无法访问该网络内的主机。公网则泛指互联网,是一个更大规模的网络环境,拥有单独的公网IP,任何外部地址可以直接访问,从而实现对外服务。
内网穿透的需求与场景:
场景一:开发人员本地调试接口,线上项目遇到问题或新功能上线,需要进行本地调试,且通常需要HTTP或HTTPS协议支持。
场景二:远程访问本地存储或公司内部系统,如外出工作或需要远程访问本地的私有数据,如git服务或照片服务等。
场景三:本地搭建私有服务器,为减少云上服务器高昂的费用,使用本地电脑作为服务器,满足对稳定性要求较低的场景。
内网穿透原理:
内网穿透通过在内网与公网之间建立长连接,实现数据转发,使外部用户能够访问到内网服务器的数据。客户端与服务端保持长连接,便于数据的推送,实质上是在转发数据以实现穿透功能。
Rust实现内网穿透:wmproxy工具实现简单易用的内网穿透功能。客户端与服务端分别配置yaml文件,启动程序以实现穿透。
HTTP与TCP内网穿透测试:
在本地端口启动一个简单的HTTP文件服务器,端口实现HTTP内网穿透,将流量映射到端口,通过访问/inconshrevea...
2. 外网服务器:配备公网IP的服务器,需设置子域名(A、CNAME)。
3. 内网客户端:可以是虚拟机,本文以Ubuntu .为例。
准备编译环境:
1. 安装go:使用命令`sudo apt install golang`。
2. 安装git:通过命令`sudo apt install git`实现。
3. 生成自签名证书:执行`cd ngrok`至项目目录,设置服务器域名`NGROK_DOMAIN="ngrok.abc.com"`。然后依次运行`openssl genrsa -out rootCA.key `、`openssl req -x -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days -out rootCA.pem`、`openssl genrsa -out device.key `、`openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr`、`openssl x -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days `。
4. 将证书复制到指定文件夹:`cp rootCA.pem ../assets/client/tls/ngrokroot.crt`、`cp device.crt ../assets/server/tls/snakeoil.crt`、`cp device.key ../assets/server/tls/snakeoil.key`。
编译服务器和客户端:
1. 服务器编译:在Linux系统中,使用命令`GOOS=linux GOARCH= make release-server`(位)或`GOOS=linux GOARCH=amd make release-server`(位),针对Mac OS和Windows系统,分别使用相应命令进行编译。
2. 客户端编译:根据系统类型,执行`GOOS=linux GOARCH= make release-client`(位)或`GOOS=linux GOARCH=amd make release-client`(位),同样包括Mac OS和Windows系统。
编译完成后,服务器和客户端程序将被生成在bin文件夹中。
运行服务器:
将`ngrokd`程序复制至服务器指定目录,若端口被占用可更改端口号,并确保开启防火墙并打开端口允许外网访问。具体操作参考相关文章。
开启服务器命令:`./ngrokd -domain="ngrok.abc.com" -`即可转发至`ngrok.abc.com:`。