笔记:内网渗透流程之信息收集
信息收集
首先,收集目标内网的信息,包括子网结构、域名信息、IP地址范围、开放的端口和服务等。这包括通过主动扫描和渗透测试工具收集信息,以及利用公开的信息源进行信息搜集。
本机信息收集
查看系统配置信息
查看系统详细信息,如OS版本、补丁安装情况,可以根据这些信息筛选可利用的漏洞:
systeminfo
详细:
查询操作系统即软件的信息 :
systeminfo | findstr /B /C:"OS"
查看系统架构
:echo %processor_architecture%
查看系统启动时间:net statistics workstation
查看补丁信息:wmic qfe get caption,description,hotfixid,installedon
查看系统安装的软件版本等内容:wmic product get name,version
查杀软:wmic /node:localhost /namespace:\\root\securitycenter2 path antivirusproduct get displayname /format:list
查看防火墙配置信息:
netsh firewall show config
和netsh advfirewall firewall show config
查看系统服务信息
查看启动程序信息:wmic startup get command,caption
查看启动进程,可以根据启动进程判断主机在域中扮演的角色:net start
查询本机服务信息:wmic service list brief
查询进程信息:tasklist
查看计划任务:schtasks /query /fo LIST /V
查看端口开放情况:netstat -ano
注意,一般查看进程端口,先查进程pid,在根据pid查端口
判断是否存在域:net view /domain
查看主机名、域DNS、IP:ipconfig /all
查看系统登录信息
查看登录到系统的用户信息:query user/net session
域内信息收集
判断是否存在域:whoami
,如果当前账户为域用户,则返回结果通常为域名\用户名
ipconfig
如果是双网卡,一般存在内网
systeminfo
如果在域中,则如图,否则为 workgroup
补充:
工作组(Work Group)是局域网中的一个概念。它是最常见最简单最普通的资源管理模式,就是将不同的电脑按功能分别列入不同的组中,以方便管理。
工作组(Work Group)是最常见最简单最普通的资源管理模式,就是将不同的电脑按功能分别列入不同的组中,以方便管理。比如在一个网络内,可能有成百上千台工作电脑,如果这些电脑不进行分组,都列在“网上邻居”内,可想而知会有多么乱(恐怕网络邻居也会显示“下一页”吧)。
为了解决这一问题,Windows 9x/NT/2000 才引用了“工作组”这个概念,比如一所高校,会分为诸如数学系、中文系之类的,然后数学系的电脑全都列入数学系的工作组中,中文系的电脑全部都列入到中文系的工作组中……如果你要访问某个系别的资源,就在“网上邻居”里找到那个系的工作组名,双击就可以看到那个系别的电脑了。
查看登录信息:
net config workstation
在域中,通常计算机全名为计算机名.域名
但是我的电脑
不在域中,如图
查看时间服务器,域中机器的dns服务器和时间服务器通常为域控机
net time /domain
但是我的电脑不在域中
查看IP:
nslookup 域名
查看用户信息:
whoami /all
查看域内用户,可以将其作为字典,对其他主机的密码进行爆破:
net user /domain
但是我的电脑不在域中
探测域内存主机&端口
-
Ping 探测主机在线状态:使用命令行工具如
ping
或者网络扫描工具如nmap
来 ping 主机 IP 地址,以确定主机是否在线。 -
端口扫描:使用端口扫描工具如
nmap
来扫描主机的开放端口。例如,使用命令nmap -p <端口范围> <目标主机>
来扫描特定端口范围内的开放端口,如nmap -p 1-100 192.168.0.1
。 -
漏洞扫描:使用漏洞扫描工具如
Nessus
、OpenVAS
等,来扫描主机上存在的已知漏洞和安全风险。 -
域名解析:使用 DNS 相关工具如
nslookup
、dig
来解析域名,查找主机对应的 IP 地址。 -
端口探测工具:如
telnet
,通过尝试建立 TCP 连接来探测主机上特定端口的可用性。例如,使用命令telnet <目标主机> <端口号>
来尝试连接指定主机的特定端口,如telnet 192.168.0.1 80
。 -
网络发现工具:使用网络发现工具如
arp-scan
,可以扫描局域网内的主机,并列出其 IP 地址、MAC 地址等信息。 -
操作系统指纹识别:使用指纹识别工具如
nmap
的 OS Detection 功能,可以通过分析目标主机的网络行为,尝试识别主机所运行的操作系统。
注:探测存活主机和端口平时最容易想到的工具是
nmap
,但这个工具太大,直接安装存在风险,端口转发受限于网络环境
查看用户&机器&会话相关信息
Linux 环境下的查看方法:
-
用户相关信息:
- 用户列表:使用
cat /etc/passwd
命令可以查看系统上的用户列表。 - 用户权限和组信息:使用
id <用户名>
命令可以查看特定用户的权限和所属组。
- 用户列表:使用
-
机器相关信息:
- 硬件信息:使用
lshw
或sudo lshw
命令可以查看机器的硬件信息。 - 系统配置信息:使用
lsb_release -a
命令可以查看操作系统版本和发行版信息。
- 硬件信息:使用
-
会话相关信息:
- 当前登录用户:使用
who
或w
命令可以查看当前登录的用户信息。 - 当前运行的进程:使用
top
或htop
命令可以查看当前运行的进程和资源利用情况。
- 当前登录用户:使用
Windows 环境下的查看方法:
-
用户相关信息:
- 用户列表:在命令提示符或 PowerShell 中,使用
net user
命令可以列出系统上的用户列表。 - 用户权限和组信息:在命令提示符或 PowerShell 中,使用
whoami /all
命令可以查看当前登录用户的权限和所属组。
- 用户列表:在命令提示符或 PowerShell 中,使用
-
机器相关信息:
- 硬件信息:使用
systeminfo
命令可以查看机器的硬件信息。 - 系统配置信息:使用
systeminfo
命令可以查看操作系统版本和其他系统配置信息。
- 硬件信息:使用
-
会话相关信息:
- 当前登录用户:在命令提示符或 PowerShell 中,使用
query user
命令可以列出当前登录用户和会话信息。 - 当前运行的进程:在任务管理器中,可以查看当前运行的进程和资源利用情况。
- 当前登录用户:在命令提示符或 PowerShell 中,使用
macOS 环境下的查看方法:
-
用户相关信息:
- 用户列表:使用
dscl . -list /Users
命令可以列出系统上的用户列表。 - 用户权限和组信息:使用
id <用户名>
命令可以查看特定用户的权限和所属组。
- 用户列表:使用
-
机器相关信息:
- 硬件信息:使用
system_profiler SPHardwareDataType
命令可以查看机器的硬件信息。 - 系统配置信息:使用
sw_vers
命令可以查看操作系统版本和其他信息。
- 硬件信息:使用
-
会话相关信息:
- 当前登录用户:使用
who
命令可以查看当前登录的用户信息。 - 当前运行的进程:使用 Activity Monitor 应用程序可以查看当前运行的进程和资源利用情况。
- 当前登录用户:使用
典型的内网渗透流程的概述:
-
信息收集:首先,收集目标内网的信息,包括子网结构、域名信息、IP地址范围、开放的端口和服务等。这包括通过主动扫描和渗透测试工具收集信息,以及利用公开的信息源进行信息搜集。
-
漏洞扫描:在收集到足够的信息后,使用漏洞扫描工具扫描目标主机和服务,寻找存在的安全漏洞,如弱口令、漏洞软件或配置错误。
-
入侵和身份提升:一旦发现漏洞,攻击者可以尝试入侵目标主机或服务,并获取更高权限。这可以通过利用漏洞、利用弱口令、社交工程等方法来实现。一旦获得初始访问权限,攻击者可以使用提权工具或漏洞来提升自己的权限。
-
横向移动:一旦攻击者获得了内网中的一台主机的访问权限,他们可能会通过探测其他主机或设备,尝试在内网中横向移动。这可以通过利用弱密码、共享资源、漏洞利用等手段来实现,以获得对更多主机的访问权限。
-
信息收集与利用:获得足够的内网访问权限后,攻击者可以继续收集目标内网的更敏感信息,如数据库、用户凭证、敏感文档等。这些信息可能会被用于后续的攻击或其他非法活动。
-
持久性访问:为了长期访问目标内网,攻击者通常部署后门、定时任务等持久性手段,以保持对目标的访问权限,即使初始访问点被发现或修复。
相关文章:

笔记:内网渗透流程之信息收集
信息收集 首先,收集目标内网的信息,包括子网结构、域名信息、IP地址范围、开放的端口和服务等。这包括通过主动扫描和渗透测试工具收集信息,以及利用公开的信息源进行信息搜集。 本机信息收集 查看系统配置信息 查看系统详细信息…...

【2023.11.23】JDBC基本连接语法学习➹
1.导入jar包依赖:mysql-connector-java-8.0.27.jar 2.连接数据库! 3.无法解析类->导入java.sql.*,(将项目方言改为Mysql) JDBC,启动!! public class Main {public static voi…...
ubuntu 安装python3.13
列出 /usr/bin/ 目录下所有以 python 开头的文件和目录 ls /usr/bin/python* 添加Python软件源。您可以通过以下命令将Python的软件源添加到您的系统中 sudo add-apt-repository ppa:deadsnakes/ppa 然后运行以下命令以更新软件包列表: sudo apt-get update 安…...
OpenCV数据类型及CV_16UC1深度图ros订阅
最近用到深度图,对其数据类型及显示有些迷惑,记笔记于此: 目录 一、cv::Mat 的数据类型及转换方式1. cv::Mat 数据类型2. cv::Mat 数据类型互转2.1 OpenCV数据类型转换的函数2.2 可视化深度图像(CV_16UC1)二、cv::Mat 与 sensor_msgs::msg::Image 互转(基于cv_bridge)1.…...

华清远见嵌入式学习——网络编程——小项目
项目要求: 代码实现: 服务器端: #include <myhead.h>//定义协议包 struct proto {char type;char name[20];char text[128]; };int main(int argc, const char *argv[]) {//判断从终端输入的字符串的个数if(argc ! 3){printf("…...
分库分表、分布式数据库、MPP
分库分表、分布式数据库、MPP的区别吗? 一、MySQL分库分表和MySQL分布式集群在性能方面各有优劣,具体取决于应用场景和需求。 MySQL分库分表: 在分库分表的场景下,可以将负载分散到多个数据库实例上,从而提高整体性能…...

浅学指针(2)数组函数传值调用
系列文章目录 文章目录 系列文章目录前言1. 指针的使⽤和传址调⽤结论:实参传递给形参的时候,形参会单独创建⼀份临时空间来接收实参,对形参的修改不影响实 参。那么这个时候,就要搬出指针大哥,在main函数中将a和b的地…...

C++之unordered_map/set的使用
前面我们已经学习了STL中底层为红黑树结构的一系列关联式容器——set/multiset 和 map/multimap(C98). unordered系列关联式容器 在C98中, STL提供了底层为红黑树结构的一系列关联式容器, 在查询时效率可达到log2N,即最差情况下需要比较红黑树的高度次, 当树中的节点非常多时,…...

docker打包chatpdf(自写)
docker打包上传 docker build -t kitelff/chatpdf:v0.1 .##修改镜像名字 docker tag c2c1a0eb4e08 kitelff/chatpdf:v0.1## push docker push kitelff/chatpdf:v0.1上传文件,测试效果...

shell基础
一.Shell脚本编程概述 1.基本概念 将要执行的命令按顺序保存到一个文本文件; 给该文件可执行权限; 可结合各种Shell控制语句以完成更复杂的操作。 2.作用 Linux系统中的Shell是一个特殊的应用程序,它介于操作系统内核与用户之间&#x…...

力扣1038. 从二叉搜索树到更大和树(java,树的中序遍历解法)
Problem: 1038. 从二叉搜索树到更大和树 文章目录 题目描述思路解题方法复杂度Code 题目描述 给定一个二叉搜索树 root (BST),请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。 提醒一下, 二叉搜索树 满足下列约束条件ÿ…...
使用正则表达式来判断一个字符串只是否包含数字
使用正则表达式来判断一个字符串只是否包含数字 1、第一种 import java.util.regex.Pattern;public class Main {public static void main(String[] args) {String inputString "12345";if (containsOnlyDigits(inputString)) {System.out.println("字符串只…...
C#Wpf关于日志的相关功能扩展
目录 一、日志Sink(接收器) 二、Trace追踪实现日志 三、日志滚动 一、日志Sink(接收器) 安装NuGet包:Serilog Sink有很多种,这里介绍两种: Console接收器(安装Serilog.Sinks.Console); File接收器(安装…...

亚马逊云科技AI创新应用下的托管在AWS上的数据可视化工具—— Amazon QuickSight
目录 Amazon QuickSight简介 Amazon QuickSight的独特之处 Amazon QuickSight注册 Amazon QuickSight使用 Redshift和Amazon QuickSightt平台构建数据可视化应用程序 构建数据仓库 数据可视化 Amazon QuickSight简介 亚马逊QuickSight是一项可用于交付的云级商业智能 (BI…...
MySQL安全性:用户认证、防范SQL注入和SSL/TLS配置详解
MySQL作为广泛使用的关系型数据库管理系统,安全性至关重要。在本篇技术博客中,我们将深入探讨MySQL的用户认证方式、防范SQL注入攻击的方法以及SSL/TLS加密的配置。 1. MySQL用户认证方式 MySQL支持多种用户认证方式,其中两种常见方式是cac…...

EMG肌肉信号处理合集 (一)
本文归纳了常见的肌肉信号预处理流程,方便EMG信号的后续分析。使用pyemgpipeline库 来进行信号的处理。文中使用了 UC Irvine 数据库的下肢数据。 目录 1 使用wrappers 定义数据类,来进行后续的操作 2 肌电信号DC偏置去除 3 带通滤波器处理 4 对肌电…...

学自动化测试?我劝你还是算了吧。。。
本人7年测试经验,在学测试之前对电脑的认知也就只限于上个网,玩个办公软件。这里不能跑题,我为啥说:自学软件测试,一般人我还是劝你算了吧?因为我就是那个一般人! 软件测试基础真的很简单&…...

第一百七十八回 介绍一个三方包组件:SlideSwitch
文章目录 1. 概念介绍2. 使用方法3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了"如何创建垂直方向的Switch"相关的内容,本章回中将 介绍SlideSwitch组件.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们…...
Windows任务管理器内存性能界面各个参数含义
任务管理器的内存性能界面提供了一些关键参数,这些参数可以帮助你了解系统中内存的使用情况。以下是一些常见的参数及其含义: 已提交(Committed): 表示已分配的物理内存和虚拟内存的总和。已提交的内存包括当前正在使…...

深度学习人脸表情识别算法 - opencv python 机器视觉 计算机竞赛
文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习人脸表情识别系…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...