内网渗透笔记
Bash
查看本机IP
1
| for i in {1..65535};do ping -c 1 -W 1 172.16.20.$i;done
|
-c 是 --count 的简写,指定 ping 命令发送的 ICMP Echo Request 包数量,1 表示仅发送 1 个包。
-W 是 --timeout 的简写,指定 ping 命令的等待响应超时时间,单位为秒(部分系统如 Windows 用 -w,单位为毫秒,需注意差异),1 表示发送包后等待 1 秒,若未收到响应则判定为超时(目标不可达)。Linux/macOS:-W 指单个包的响应超时(秒),-w 指整个 ping 命令的总超时(秒)
1
| for i in {1..254};do ping -c 1 -W 1 172.16.20.$i | grep form;done
|
|(管道符)
- 语法作用:将前一个命令(
ping)的标准输出(stdout)直接传递给后一个命令(grep)作为输入,实现输出筛选的流水线操作,无需保存中间结果。
grep(文本过滤命令)
- 工具作用:在输入文本中搜索匹配指定字符串的行,仅输出符合条件的内容,是 Shell 中常用的文本筛选工具。
grep form(字符串匹配筛选)
- 参数含义:搜索包含 “form” 字符串的行,输出匹配结果。
1
| c.traditional -vv -z 127.0.0.1 1-65535 2>&1 | grep -v "?"
|
| 组成部分 |
内容 |
作用 |
| 扫描命令 |
nc.traditional |
调用传统模式的端口扫描工具 |
| 详细输出参数 |
-vv |
启用双详细模式,输出扫描过程中的详细日志(包括连接尝试、端口状态等) |
| 端口扫描参数 |
-z |
启用 Netcat 的端口扫描模式(仅检测端口是否开放,不建立完整连接 / 传输数据) |
| 目标 IP |
127.0.0.1 |
本地回环地址,扫描当前本机的端口状态 |
| 目标端口范围 |
1-65535 |
指定扫描端口范围为 1 到 65535(全端口扫描) |
| 重定向符 |
2>&1 |
将标准错误输出(stderr,文件描述符 2)重定向到标准输出(stdout,文件描述符 1),统一输出流 |
| 管道符 |
| |
将前面命令的统一输出作为 grep 命令的输入 |
| 过滤命令 |
grep -v "?" |
反向筛选输出,排除包含 “?” 字符串的行(保留明确端口状态的日志) |
1
| (echo < /dev/tcp/127.0.0.1/$i) &>/dev/null && printf "the Open Port is : %d" "$i\n" || printf "."
|
&>/dev/null(全输出丢弃)
- 语法等价:等价于
> /dev/null 2>&1,是 Bash 的扩展语法,用于统一处理标准输出(stdout,文件描述符 1)和标准错误(stderr,文件描述符 2)。
查询内核及系统架构信息
查询 Linux 发行版详细信息
1
2
3
4
| cat /etc/passwd
cat /etc/issue
cat /etc/crontab
cat /etc/fstab
|
一些敏感信息
1
2
3
4
5
| hostnamectl # 查询 / 修改系统主机名及系统信息
hostname # 查询 / 设置系统主机名
ip route
ip neigh # 查询 ARP 缓存(邻居表)
arp -a # 查询 ARP 缓存表(传统命令)
|
1
| getcap -r / 2>/dev/null
|
| 组成部分 |
内容 |
作用 |
| 核心命令 |
getcap |
查询文件的 Linux capabilities(权限.cap)配置 |
| 递归查询参数 |
-r |
递归遍历目标目录下的所有文件 / 子目录,不遗漏深层文件 |
| 目标路径 |
/ |
以根目录为起点,扫描整个系统的所有文件 |
| 输出重定向 |
2>/dev/null |
丢弃标准错误输出(如权限不足、无效路径的报错),仅保留有效结果 |
Nmap
1
| sudo nmap -sn 172.16.200.0/24
|
| 组成部分 |
内容 |
作用 |
| 执行权限 |
sudo |
以管理员(root)身份运行命令 |
| 工具名称 |
nmap |
调用网络扫描工具 Nmap |
| 核心参数 |
-sn |
开启「主机存活探测」,禁用端口扫描 |
| 目标网段 |
172.16.200.0/24 |
24 表示子网掩码为 255.255.255.0,包含的 IP 范围是 172.16.200.1 到 254 |
1
| sudo nmap --min-rate 10000 -p- 10.194.238.140 -oA nmapscan/ports
|
| 组成部分 |
内容 |
作用 |
| 执行权限 |
sudo |
以管理员(root)身份运行命令 |
| 工具名称 |
nmap |
调用网络扫描工具 Nmap |
| 扫描参数 |
--min-rate 10000 -p- |
控制扫描速率和扫描端口范围 |
| 目标对象 |
10.194.238.140 |
待扫描的目标 IP 地址(内网 IP) |
| |
-oA |
输出到文件中 |
1
| sudo nmap -sU --min-rate 10000 -p- 10.194.238.140
|
强制UDP扫描
1
| sudo nmap -sT -sV -sC -O -p80,111,777,52497,5353 172.16.20.131
|
| 组成部分 |
内容 |
作用 |
| 扫描类型参数 |
-sT |
启用 TCP 全连接扫描(完整三次握手验证端口状态) |
| 服务版本探测参数 |
-sV |
探测开放端口对应的服务类型及具体版本号 |
| 操作系统探测参数 |
-O |
识别目标主机的操作系统类型及内核版本 |
| 目标端口 |
80,111,777,52497,5353 |
指定需扫描的 5 个 TCP 端口(逗号分隔) |
| 目标 IP |
172.16.20.131 |
待探测的内网目标 IP(172.16.0.0/12 私有网段) |
1
| sudo nmap --script=vuln -p80 127.0.0.1
|
| 组成部分 |
内容 |
作用 |
| 脚本参数 |
--script=vuln |
加载 Nmap 内置的「漏洞探测类脚本集」,针对目标端口进行漏洞扫描 |
| 目标端口 |
-p80 |
指定仅扫描目标主机的 80 端口(HTTP 服务默认端口) |
| 目标 IP |
127.0.0.1 |
本地回环地址,对应当前运行 Nmap 的本机(用于本地服务漏洞自查) |
1
2
3
4
| grep open ./nmapscan/ports.nmap | awk -F'/' '{print $1}' | paste -sd ','
ports=$(grep open ./nmapscan/ports.nmap | awk -F'/' '{print $1}' | paste -sd ',')
|
好习惯,将端口提取出来
linpeans
1
| curl -L https://github.com/peass-ng/PEASS-ng/releases/download/20251115-0322d43c/linpeas.sh | sh
|
UDF提权
secure_file_priv 为空或者为可利用目录时可以UDF提权