内网存活扫描

咦!使人觉得遥远的不是时间长,而是两三件不可挽回的事。

icmp扫描

基于icmp的各种内网主机发现方式,如果防火墙过滤的icmp请求,这种方式基本就废了,但是基本上都不会过滤icmp协议的请求。除了本身自带的命令,也可以考虑使用第三方程序,比如cping

在win下使用icmp扫描

  • cmd中执行如下命令,对整个C段进行ping扫描

    1
    for /l %i in (1,1,255) do @ping 192.168.1.%i -w 1 -n 1 | find /i "ttl"
  • B 段查找

    1
    for /l %i in (1,1,255) do @ping -a 10.0.%i.1 -w 1 -n 1 | find /i "Pinging"

另外findstr /i “pinging”findstr /i “ping” 可以换成findstr “[” 的 可以适合多语言环境

  • 利用powershell对目标内网进行icmp扫描
    1
    2
    3
    powershell.exe -exec bypass -Command "Import-Module C:\Invoke-TSPingSweep.ps1;Invoke-TSPingSweep -StartAddress 192.168.3.1 -EndAddress 192.168.3.254 -ResolveHost -ScanPort -Port 21,22,23,25,53,80,81,82,83,84,85,86,87,88,89,110,111,143,389,443,445,873,1025,1433,1521,2601,3306,3389,3690,5432,5900,7001,8000,8080,8081,8082,8083,8084,8085,8086,8087,8089,9090,10000"
    目标网段,并非仅限C段,比如你也可以写成这种方式`192.168.3.1 - 192.168.31.254`

在linux下使用各类icmp扫描

  • 最简单的方式,将下面的代码保存至shell中,赋予其执行权限,执行该脚本即可

    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/bash
    for ip in 192.168.1.{1..254}
    do
    ping $ip -c 1 &> /dev/null
    if [ $? -eq 0 ];then
    echo $ip is alive ....
    fi
    done
  • nmap的icmp扫描

    1
    nmap -sn -PE 192.168.1.0/24

arp扫描

在win下使用各种arp扫描

1
2
3
start /b arpscan.exe -t 192.168.1.0/24 >> result.txt
powershell.exe -exec bypass -Command "Import-Module C:\Invoke-ARPScan.ps1;Invoke-ARPScan -CIDR 192.168.1.0/24" >> result.txt

在 linux 下使用 arp 扫描

1
2
3
4
5
6
7
8
9
10
11
# wget https://nmap.org/dist/nmap-7.40.tar.bz2
# bzip2 -cd nmap-7.40.tar.bz2 | tar xvf -
# cd nmap-7.40
# ./configure 这里可以用--prefix指定安装路径
# echo $?
# make
# make install
# echo $?
# make install
# echo $?
# nmap -sn -PR 192.168.1.0/24 尝试arp扫描
  • 处在别人的vpn内网(kali)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    netdiscover -r 192.168.1.0/24 -i eth0
    msf的arp扫描模块
    msf > use auxiliary/scanner/discovery/arp_sweep
    msf > show options
    msf > set interface eth0
    msf > set smac 00:0c:29:92:fd:85
    msf > set rhosts 192.168.1.0/24
    msf > set threads 20
    msf > set shost 192.168.1.27
    msf > run
  • meterpreter

    1
    2
    3
    meterpreter > getsystem 另外,在目标机器上扫描时,务必先提权(个人建议,会方便很多),不然扫描过程中可能会有些问题
    meterpreter > run autoroute -s 192.168.1.0/24
    meterpreter > run post/windows/gather/arp_scanner RHOSTS=192.168.1.0/24

基于smb和netbios的内网主机发现方式

win下:

1
nbtscan.exe -m 192.168.1.0/24 非常经典的小工具

linux下:

1
2
3
4
5
6
wget http://www.unixwiz.net/tools/nbtscan-source-1.0.35.tgz
tar -zxvf nbtscan-source-1.0.35.tgz
make
echo $?
./nbtscan -h
./nbtscan -m 192.168.1.0/24

域内扫描

1
2
net view
dsquery computer 其实,域内最好用的也就是nbtscan了

Ps:如果计算机名很多的时候,可以利用bat批量ping获取ip

1
2
3
4
5
6
7
@echo off
setlocal ENABLEDELAYEDEXPANSION
@FOR /F "usebackq eol=- skip=1 delims=\" %%j IN (`net view ^| find "命令成功完成" /v ^|find "The command completed successfully." /v`) DO (
@FOR /F "usebackq delims=" %%i IN (`@ping -n 1 -4 %%j ^| findstr "Pinging"`) DO (
@FOR /F "usebackq tokens=2 delims=[]" %%k IN (`echo %%i`) DO (echo %%k %%j)
)
)

!坚持技术分享,您的支持将鼓励我继续创作!