1. 内网基础知识

内网即局域网,由组织或公司的计算机组成,可通过私有协议通信,实现数据安全便捷传输。

1.1 局域网

1.1.1 局域网简介

局域网(LAN)是局部范围内的网络,由计算机、打印机、服务器等设备通过网络互联,实现资源共享与信息交换。拓扑结构可采用星型、环型等,支持以太网等技术。
在这里插入图片描述

常见应用包括文件共享、联机游戏、视频会议等,同时支持电子邮件、FTP等Internet应用。

1.1.2 局域网的网络结构

在这里插入图片描述

核心组成包括:

  • 客户端:用户使用的计算机,用于获取网络资源和服务;
  • 服务器:提供文件、打印、数据库等网络服务;
  • 网络媒介:连接网络设备的物理载体(如电缆、无线电波);
  • 网络设备:连接各类设备(如交换机、路由器);
  • 网络协议:设备通信标准(如TCP/IP、IPX/SPX协议)。
    (3)局域网的特点
    网络规模小(范围数百米内)、传输速度快、拓扑结构灵活、维护成本低、安全性高。

1.2 内网渗透

内网渗透是获取目标服务器控制权后,通过内网信息收集、代理、权限提升、横向移动等技术,获取内网其他主机(如域控、运维主机)权限的过程。

域渗透思路

  1. 通过域成员主机,定位域控制器IP及域管理员账号;
  2. 以域成员主机为跳板,渗透其他域成员;
  3. 利用域管理员权限特性,定位其登录过的主机,dump密码并拿下域控制器;
  4. 渗透整个内网。

2.内网信息收集(Linux命令)

2.1 内核、操作系统和设备信息

  • 打印所有可用的系统信息(内核、主机名、架构等)
$ uname -a
  • 查看内核版本
$ uname -r
  • 查看系统主机名
$ uname -n
  • 查看系统内核架构(64位/32位)
$ uname -m
  • 查看/设置系统主机名
$ hostname 
  • 查看系统发行版详细信息(适用于多数Linux发行版)
$ lsb_release -a
  • 查看内核详细信息(含编译信息)
$ cat /proc/version
  • 查看系统发行版信息(通用方式)
$ cat /etc/*-release
  • 查看系统发行版简易信息(登录前显示内容)
$ cat /etc/issue
  • 查看CPU详细信息(核心数、型号、频率等)
$ cat /proc/cpuinfo
  • 更直观地查看CPU信息
$ lscpu
  • 查看内存详细信息(总内存、空闲内存等)
$ cat /proc/meminfo
  • 以人性化格式查看内存使用情况
$ free -h
  • 查看磁盘分区及空间使用情况
$ df -h
  • 查看磁盘分区结构(直观显示磁盘、分区关系)
$ lsblk

2.2 用户和群组信息

  • 列出系统上的所有用户(含用户ID、家目录、shell等)
$ cat /etc/passwd
  • 查看用户密码哈希(需root权限)
$ cat /etc/shadow
  • 列出系统上的所有组(含组ID、组内用户)
$ cat /etc/group
  • 查看当前用户所在的所有组
$ groups
  • 查看test用户所在的所有组
$ groups test
  • 查看xxx组内的所有用户
$ getent group xxx
  • 列出所有超级用户(UID=0的用户)
$ grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}'
  • 查看是否存在空口令用户
$ awk -F: 'length($2)==0 {print $1}' /etc/shadow
  • 查看使用密码登录(非密钥)的账号
$ awk '/\$1|\$6/{print $1}' /etc/shadow
  • 查看当前登录用户名
$ whoami
  • 查看当前已登录用户及他们的操作(含CPU占用、执行命令)
$ w
  • 显示系统中所有已登录的用户(简洁版)
$ who
  • 查看最后登录用户的列表(含登录时间、IP、退出时间)
$ last
  • 查看所有用户上次登录的信息
$ lastlog
  • 查看指定用户上次登录的详细信息
$ lastlog –u %username%
  • 查看指定用户的UID、GID及所属组
$ id %username%
  • 查看系统默认的用户创建配置
$ useradd -D

2.3 用户和权限信息

  • 查看当前用户名
$ whoami
  • 查看当前用户的UID、GID及所属组
$ id
  • 查看可使用sudo提升至root权限的用户/组
$ cat /etc/sudoers
  • 查看当前用户可以root身份执行的操作
$ sudo -l
  • 查看当前目录下文件/目录的权限
$ ls -l
  • 查看当前目录下所有文件(含隐藏文件)的权限及所有者
$ ls -la
  • 查看权限修改方法(辅助查看权限相关)
$ chmod --help
  • 查看所有者修改方法(辅助查看权限相关)
$ chown --help

2.4 环境信息

  • 显示所有系统环境变量
$ env
  • 显示本地环境变量(含shell内置变量)
$ set
  • 查看环境变量中的路径信息(可执行文件搜索路径)
$ echo $PATH
  • 显示和设置环境变量
$ export [-fnp][变量名称]=[变量设置值]
  • 输出当前工作目录
$ pwd
  • 查看默认系统环境变量配置
$ cat /etc/profile
  • 查看系统可用的shell类型
$ cat /etc/shells
  • 查看/etc目录下所有配置文件
$ ls -la /etc/*.conf
  • 查看当前用户的家目录
$ echo $HOME
  • 查看当前用户使用的shell
$ echo $SHELL
  • 查看当前用户的bash环境配置
$ cat ~/.bashrc

2.5 历史命令

  • 查看当前用户的历史命令记录
$ history
  • 查看当前用户历史命令的存储文件(完整记录)
$ cat ~/.bash_history
  • 查看其他用户(user)的历史命令文件(需权限)
$ cat /home/user/.bash_history
  • 清空当前用户的历史命令(辅助操作)
$ history -c
  • 查看历史命令保存的最大条数
$ echo $HISTSIZE

2.6 进程信息

  • 以用户格式显示所有进程(含非终端进程、CPU/内存占用)
$ ps aux
  • 显示所有进程(含UID、父进程PPID、启动时间等)
$ ps -ef 
  • 查询某个应用(如java)的所有进程信息
$ ps -ef | grep java
  • 实时显示系统资源占用最多的进程(按q退出)
$ top
  • 更直观的实时进程监控工具(需安装)
$ htop
  • 以树状结构显示进程之间的父子关系
$ pstree
  • 查看所有可用的进程信号
$ kill -l
  • 快速查询java进程的PID
$ pgrep java

2.7 服务信息

  • 查询系统中定义的所有服务及端口
$ cat /etc/services
  • 查询与Java相关的服务
$ cat /etc/services | grep Java
  • 查询已开启的服务
$ systemctl list-units --type=service --state=running
  • 查询已停止的服务
$ systemctl list-units --type=service --state=stopped
  • 查看指定服务的运行状态
$ systemctl status <服务名>
  • 查看所有服务的运行状态
$ service --status-all
  • 查看所有服务的开机自启状态
$ chkconfig --list

2.8 计划任务

  • 计划任务存储路径(按优先级排序):
路径 说明
/var/spool/cron/crontabs/ 按账号区分,存储每个用户的个人计划任务
/var/spool/cron/ 所有用户的计划任务
/var/spool/anacron/* anacron计划任务(非实时执行)
/etc/crontab 系统级计划任务(需指定执行用户)
/etc/anacrontab 系统级anacron计划任务
/etc/cron.* 计划任务相关的配置目录(如cron.d、cron.hourly)
  • 查询当前用户的所有计划任务
$ crontab -l
  • 查询指定用户(user)的计划任务(需root权限)
$ crontab -l -u user
  • 查询root用户的计划任务
$ cat /var/spool/cron/crontabs/root
  • 查看系统级计划任务
$ cat /etc/crontab
  • 检查anacron计划任务配置
$ anacron -t

2.9 网络、路由和通信信息

  • 查看网络接口配置(IP、MAC、子网掩码等)
$ ifconfig
  • 查看网络接口配置(替代ifconfig,更全面)
$ ip addr
  • 查询路由表
$ route
  • 查询路由表(以IP地址显示,不解析域名)
$ route -n
  • 查询路由表
$ netstat -r
  • 查询路由表(简写,替代route命令)
$ ip ro
  • 查看ARP缓存表(IP与MAC对应关系)
$ arp -a
  • 查看所有端口(TCP+UDP,显示进程名、PID)
$ netstat -antup
  • 查看所有TCP端口
$ netstat -antp
  • 查看所有UDP端口
$ netstat -anup
  • 查看端口与服务的对应关系
$ cat /etc/services
  • 查看防火墙规则(默认filter表)
$ iptables -L
  • 查看网络接口的流量统计
$ netstat -i
  • 查看DNS配置信息(域名服务器)
$ cat /etc/resolv.conf
  • 打印DNS系统中FQDN名称的域名
$ dnsdomainname -V
  • 查看本地hosts域名解析文件(IP与域名映射)
$ cat /etc/hosts
  • 测试网络连通性
$ ping <目标IP/域名>
  • 测试指定端口是否可达
$ telnet <目标IP 端口>
  • 查看端口占用(替代netstat,更高效)
$ ss -antup
  • 查看网络接口状态
$ ip link show
  • 查看网络统计信息(TCP/UDP连接数等)
$ netstat -s

2.10 已安装应用信息

Redhat、CentOS(RPM包管理):

  • 查看所有已安装软件(按安装时间排序)
$ rpm -qa --last
  • 查看指定应用(polkit)的安装版本
$ rpm -qa polkit
  • 查看指定软件的安装文件路径
$ rpm -ql <软件名>
  • 查看指定软件的详细信息(版本、厂商等)
$ rpm -qi <软件名>

Ubuntu、Debian(DPKG包管理):

  • 查看所有已安装软件
$ dpkg -l
  • 查看指定应用(policykit-1)的安装版本
$ dpkg -l policykit-1
  • 查询某个软件所关联的文件
$ dpkg -L xxx
  • 查看指定软件的详细状态
$ dpkg -s xxx

通用查询:

  • 查看指定命令的可执行文件路径
$ which <命令名>
  • 查看指定命令的可执行文件、配置文件路径
$ whereis <命令名>
  • 查找软件相关文件
$ find / -name "<软件名>"

2.11 可写/可执行目录查找

  • 查找系统中所有可写目录(忽略错误信息)
$ find / -writable -type d 2>/dev/null
  • 查找其他用户可写的目录
$ find / -perm -o+w -type d 2>/dev/null
  • 查找其他用户可执行的目录
$ find / -perm -o+x -type d 2>/dev/null
  • 查找设置了SUID权限的文件(高风险)
$ find / -perm -u+s -type f 2>/dev/null
  • 查找设置了SGID权限的文件(高风险)
$ find / -perm -g+s -type f 2>/dev/null
  • 单独查找/home目录下的可写目录
$ find /home -writable -type d 2>/dev/null

2.12 防火墙配置

  • 查看防火墙规则(filter表,默认)
$ iptables -L
  • 查看防火墙规则(不解析域名,更快速)
$ iptables -L -n
  • 查看防火墙状态:
$ systemctl status firewalld
$ service iptables status
  • 暂时关闭防火墙:
$ systemctl stop firewalld
$ service iptables stop
  • 永久关闭防火墙:
$ systemctl disable firewalld
$ chkconfig iptables off
  • 重启防火墙:
$ systemctl restart firewalld
$ service iptables restart
  • 永久开启防火墙:
$ systemctl enable firewalld

2.13 敏感文件查找

  • 查找历史命令、配置、密码相关敏感文件
$  find / -type f -iname "*.bash_history" -o -iname "*config*" -o -iname "web.xml" -o -iname "*database*" -o -iname "*pass*" 2>/dev/null
  • 查找SSH密钥相关文件
$ find / -name "id_dsa*" -o -name "id_rsa*" -o -name "known_hosts" -o -name "authorized_hosts" -o -name "authorized_keys" 2>/dev/null |xargs -r ls
  • 查找证书、密钥文件
$ find / -name "*.pem" -o -name "*.key" -o -name "*.crt" 2>/dev/null
  • 查找包含密码的日志、文本文件
$ find / -name "*.log" -o -name "*.txt" 2>/dev/null | grep -i pass
  • 查看密码备份文件
$ cat /etc/passwd- /etc/shadow-
  • 查找系统日志文件
$ find /var/log -type f -name "*.log" 2>/dev/null

2.14 Web应用服务配置

3.14.1 Apache/Nginx配置文件路径

  • Apache配置文件:
/apache/apache/conf/httpd.conf
/apache/apache2/conf/httpd.conf
/etc/apache/apache.conf
/etc/apache/httpd.conf
/etc/apache2/apache.conf
/etc/apache2/httpd.conf
/etc/apache2/sites-available/default
/etc/apache2/vhosts.d/00_default_vhost.conf
/etc/httpd/conf.d/httpd.conf
/etc/httpd/conf/httpd.conf
/home/apache/conf/httpd.conf
/home/apache2/conf/httpd.conf
/opt/www/conf/httpd.conf
/usr/local/apache/conf/httpd.conf
/usr/local/apache2/conf/httpd.conf
/usr/local/httpd/conf/httpd.conf
/var/httpd/conf/httpd.conf
/var/local/www/conf/httpd.conf
/var/www/conf/httpd.conf
/www/conf/httpd.conf
  • Nginx配置文件:
/etc/nginx/nginx.conf
/usr/local/nginx/conf/nginx.conf
/var/nginx/conf/nginx.conf

2.14.2 PHP配置文件路径(php.ini)

/apache/php/php.ini
/bin/php.ini
/etc/httpd/conf.d/php.conf
/etc/php.ini
/etc/php/apache/php.ini
/etc/php/apache2/php.ini
/etc/php/cgi/php.ini
/etc/php/php4/php.ini
/etc/php4.4/fcgi/php.ini
/etc/php4/apache/php.ini
/etc/php4/apache2/php.ini
/etc/php4/cgi/php.ini
/etc/php5/apache/php.ini
/etc/php5/apache2/php.ini
/etc/php5/cgi/php.ini
/home/bin/stable/apache/php.ini
/home2/bin/stable/apache/php.ini
/NetServer/bin/stable/apache/php.ini
/opt/xampp/etc/php.ini
/PHP/php.ini
/php/php.ini
/php4/php.ini
/php5/php.ini
/usr/lib/php.ini
/usr/local/apache/conf/php.ini
/usr/local/apache2/conf/php.ini
/usr/local/etc/php.ini
/usr/local/lib/php.ini
/usr/local/php/lib/php.ini
/usr/local/php4/lib/php.ini
/usr/local/php5/etc/php.ini
/usr/local/php5/lib/php.ini
/usr/local/php5/php5.ini
/usr/local/share/examples/php/php.ini
/usr/local/share/examples/php4/php.ini
/usr/local/Zend/etc/php.ini
/var/httpd/conf/php.ini
/var/local/www/conf/php.ini
/web/conf/php.ini
/www/php/php.ini
/www/php4/php.ini
/www/php5/php.ini
/xampp/apache/bin/php.ini

2.14.3 数据库配置文件路径(MySQL/MariaDB)

/etc/init.d/mysql
/etc/my.cnf
/etc/mysql/my.cnf
/var/lib/mysql/my.cnf
/var/lib/mysql/mysql/user.MYD
/usr/local/mysql/bin/mysql
/usr/local/mysql/my.cnf
/usr/share/mysql/my.cnf
# MySQL数据文件
/var/lib/mysql/ibdata1

2.15 其他信息收集命令

时间信息:
  • 查看当前系统时间
$ date
  • 查看/设置系统时间、时区
$ timedatectl
  • 查看系统时区
$ cat /etc/timezone 
系统负载信息:
  • 查看系统运行时间及负载(1/5/15分钟)
$ uptime
  • 查看系统负载及用户登录情况
$ w
开机自启项:
  • 查看开机自启的服务
$ systemctl list-unit-files --type=service | grep enabled
  • 查看开机自启的服务
$ chkconfig --list | grep on
硬件信息:
  • 查看详细硬件信息(需安装)
$ lshw :
  • 查看硬件信息(需安装)
$ hwinfo
  • 查看指定端口对应的进程
$ lsof -i:<端口号>
系统日志信息
  • 查看systemd系统日志
$ journalctl
  • 查看系统通用日志
$ cat /var/log/messages
  • 查看系统安全日志(登录、权限相关)
$ cat /var/log/secure
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐