文章目录
ICMP协议探测:
平时经常用PING去探测一个主机是否能被探测到或者用于判断机器是否可以出网。这里做个笔记更好了解一下PING和IMCP协议
ICMP出现的原因:
在IP通信中,经常有数据包到达不了对方的情况。原因是,在通信途中的某处的一个路由器由于不能处理所有的数据包,就将数据包一个一个丢弃了。或者,虽然到达了对方,但是由于搞错了端口号,服务器软件可能不能接受它。这时,在错误发生的现场,为了联络而飞过来的信鸽就是ICMP 报文。在IP 网络上,由于数据包被丢弃等原因,为了控制将必要的信息传递给发信方。ICMP 协议是为了辅助IP 协议,交换各种各样的控制信息而被制造出来的。
利用ICMP协议原理:
ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。
发送IMCP包的方法就是PING,具体怎么发送,可以去看一下我之前的文章1和文章2
知道了上面的原理下面就直接再域主机内实现快速探测C段存活主机
探测实现
Windows:for /l %i in (1,1,255) do @ping 10.1.1.%i -w 1 -n 1|find /i "ttl="
Linux:for k in $( seq 1 255);do ping -c 1 192.168.7.$k|grep "ttl"|awk -F "[ :]+" '{print $4}'; done
速度还行
使用ARP-"ping"工具:
下载地址:https://www.elifulkerson.com/projects/arp-ping.php
下载完成后查看一下用法:
由于 arp-ping 只能一次 ping 一台主机,但在测试过程中肯定不能一台一台的 ping ,所以这里参考上面的 ping 脚本写了一个 arp-ping 循环 ping 主机的脚本。
for /l %i in (1,1,255) do @arp-ping.exe 192.168.7.%i -w 1 -n 1|find /i "Reply"
效果:
这里搞了很久,一直在找不到可执行程序arp-ping.exe,老废物一个了
直接切到程序目录下或者直接把.exe拖拽到system32里面就行了
探测存活的端口:
telnet:
windows自带telnet,只不过我们要再自己电脑上勾选这个选项,具体方法各位师傅自行百度把,这里不做讲解了
效果如图:
感觉很麻烦这个,只能扫描单个
nmap
最常用的当然还是nmap扫描
使用命令:
nmap -sS -p 1-65535 -v 192.168.1.254
参数:
-sS TCP SYN扫描 nmap -sS 192.168.1.254
-P 指定端口扫描 nmap -sS -P 1-65535 192.168.1.254
-V 详细信息 nmap -V -sS 192.168.1.254
探测端口结果:
效率还是挺高的
常用域管理员定位工具:
netview:
netview绝大部分的功能不需要管理员权限就可以使用,因此会首选
看看命令详细
-h 显示帮助信息
-f filename.txt 指定要提取主机列表的文件
-e filename.txt 指定要排除的主机名的文件
-o filename.txt 将所有输出重定向到指定的文件
-d domain 指定要提取主机列表的域。如果没有指定,则从当前域中提取主机列表
-g group 指定搜索的组名。如果没有指定,则在Domain Admins组中搜索
-c 对已找到的共享目录/文件的访问权限进行检查
-i interval 枚举主机之间等待的秒数 -j jitter 应用于间隔的抖动百分比(0.0-1.0)
因此直接跟上后面的参数即可
netview.exe -d
效果图如下:
NSE脚本
不同的脚本所属的信息不同,这里给出下载地址,自己根据需要下载:
常用的 NSE 脚本如下:
smb-enum-domains.nse:对域控制器进行信息收集,可以获取主机信息、用户、可使用密码策略的用户等
smb-enum-users.nse:在进行域渗透时,如获取了域内某台主机权限,但权限有限,无法获取更多的域用户信息,可借助此脚本对域控制器进行扫描
smb-enum-shares.nse:遍历远程主机的共享目录
smb-enum-processes.nse:对主机的系统进程进行遍历,通过此信息,可知道目标主机运行着哪些软件
smb-enum-sessions.nse:获取域内主机的用户登陆会话,查看当前是否有用户登陆,且不需要管理员权限
smb-os-discovery.nse:收集目标主机的操作系统、计算机名、域名、域林名称、NetBIOS机器名、NetBIOS域名、工作组、系统时间等信息
下载地址:https://nmap.org/nsedoc/scripts/
这里我们选择下最后一个,下载完成后在本地统一保存为:smb-os-discovery.nse(也可以根据自己需要来定)
使用命令:
nmap --script=smb-os-discovery.nse -p 445 10.1.1.1
效果如图:
获取目标机器主机的操作系统、计算机名、域名、域林名称、NetBIOS机器名、NetBIOS域名、工作组、系统时间等信息
判断内网连通性:
ICMP协议:
ICMP之前的文章也有讲过,这里就不再一一叙述。
我们常用的PING命令就是ICMP协议
如图,在DC主机ping其他域用户:
nc连接:
这个TCP连接方式就真的是太常见了,不多说直接放图
直接开启监听建立连接
还有不开启监听然后探测的,不知道怎么探测的,感觉没啥用
HTTP协议:
HTTP协议当然也是用curl发送最好,curl功能强大
一张图就知道curl:
当我们连接一个不存在端口的时候,就会出现如下:
nslookup与dig:
nslookup是windows操作系统自带的DNS探测命令,在没有指定vps-ip时,nslookup会从系统网络的TCP/IP属性中读取DNS服务器的地址。
目前实战没怎么用到过,主要将下面一个内容:
有一种情况流量不能直接流出,需要在内网中设置代理服务器,常见于通过企业办公网段上的场景。常用的判断方法如下:
1.查看网络连接,判断是否存在与其他机器的8080(不绝对)等端口的连接(可以尝试运行 "ping -n l -a ip"命令)。
2.查看内网中是否有主机名类似于"proxy"的机器。
3.查看IE浏览器的直接代理。
4.根据PAC文件的路径(可能是本地路径,也可能是远程路径,将其下载下来并查看)
5.执行如下命令,利用curl工具进行确认。
curl www.baidu.com //不通
curl -x proxy-ip:port www.baidu.com //通
查看一下curl–help:
很显然上述命令是为了使用内网的代理进行连通
结语:
存活主机探测还有端口扫描这些,工具都挺多的,但是原理无非就是利用TCP/IP协议簇,TCP UDP ICMP ARP协议去实现端口扫描,找到自己喜欢的工具就好啦,判断内网的连通性也没有那么复杂,接触一下实战就知道啦