内网渗透初识—信息收集

进入到内网后,首先要对自己当前所处的网络环境有一个清楚地判断,收集到有关当前环境足够多的信息,为接下来的渗透做好准备

PS:文中提到的PowerSploit

1 本机信息

包括操作系统,当前用户权限,内网ip段,杀毒软件,端口开放情况,系统打的补丁,网络状况,共享文件夹等,如果是域内的主机的话,操作系统、补丁、运行的服务、杀软等一般是域管批量用脚本安装的。

1.1 本机网络配置

  • ipconfig /all

    ### 操作系统
  • 查询操作系统及版本信息,补丁信息等等:systeminfo
  • 查询系统体系架构:echo %PROCESSOR_ARCHITECTURE%
  • 查询已安装的软件及版本信息:wmic product get name,version

    PS
    :在win10中,输入
    wmic /?会提示wmic已弃用,但在server2012R2win7等版本中可以正常使用
    • powershell中可替代该命令的是Get-WmiObject:
      Get-WmiObject -class win32_product | Select-Object -property name,version
  • 查询本机服务:wmic service list brief
  • 查询进程:tasklist,或者:wmic process list brief

    常见的杀软进程:

进程名

软件

360sd.exe

360杀毒

360tray.exe

360实时保护

ZhuDongFangYu.exe

360主动防御

KSafeTray.exe

金山卫士

SafeDogUpdateCenter.exe

安全狗

McAfee McShield.exe

McAfee

egui.exe

NOD32

AVP.exe

卡巴斯基

avguard.exe

小红伞

bdagent.exe

BitDefender

  • 查看已启动的程序信息:wmic startup get command,caption
  • 查看计划任务:schtasks /query /fo LIST /v
    此处在我的靶机Server2008R2中出现了错误:无法加载列资源,这里把编码暂时设置为英文:
    chcp 437,之后再改回来:chcp 936即可
  • 查看主机的开机时间:net statistics workstation
  • 查看用户列表:net user
  • 查看本地管理员信息:net localgroup administrators
  • 查看当前在线的用户:query user || qwinsta
  • 查看本地计算机与所连接客户端之间的会话:net session
    对于该指令,一开始我的机器上报错:"发生系统错误5。拒绝访问",找了一下解决办法,只要以管理员身份运行即可,此处靶机没有回话,所以显示为空
  • 查看端口:netstat -ano
  • 查看补丁信息:
    systeminfo,
    wmic qfe get caption,description,hotfixid,installedon
  • 查看本机共享列表:net sharewmic share get name,path,status

  • 查询路由表及所有可用的ARP缓存表:route printarp -a

  • 查看防火墙相关:
    • 查看防火墙配置:netsh firewall show config

    • 关闭防火墙:
      • winserver 2003之前:netsh firewall set opmode disable
      • winserver 2003之后:netsh advfirewall set allprofiles state off
        一般来说不要操作防火墙的开关,风险极大,只需要查看配置即可
  • 查看代理:
    reg query "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings"
  • 查询远程连接服务:
    reg query "HKEY_LOCAL_MACHINESYSTEMCurrentControlsetControlTerminal ServerWinStationsRDP-Tcp" /v PortNumber

    连接端口为16进制数0xd3d,转换为10进制就是3389

1.2 使用empire收集信息

在攻击机上安装empire后,使用usemodule powershell/situational_awareness/host/winenum即可收集相关信息,注意使用该模块需要拿到管理员权限

2 权限

  • 查看当前权限:whoami
  • 获取域idwhoami /all
  • 获取指定用户的详细信息:net user xxx /domain

    ##
    判断是否存在域
  • 使用ipconfig /all即可做出判断
  • 此时发现域名后,利用nslookup命令直接解析域名的ip,借此来判断dns服务器与域控是否在同一主机上nslookup 域名
  • 查询当前的登录域与用户信息:net config workstation
  • 判断主域:net time /domain

    若是此命令在显示域处显示WORKGROUP,则不存在域,若是报错:发生系统错误5,则存在域,但该用户不是域用户
    ##
    探测域内存活主机
  • 利用ICMP进行探测:for /L %I in (1,1,254) DO @ping -2 1 -n 1 192.168.52.%I | findstr "TTL="

    我在本地机器中做了小小的修改,让它只扫描141142这段
  • 利用empire中的arpscan模块:usemodule situational_awareness/network/arpscan,设置Range(范围)后即可扫描

3 扫描端口

  • 使用telnet进行扫描:telnet 主机名 22
  • 使用metasploit进行扫描:需要用到的是auxiliar/scanner/portscan/ackftpbouncesyntcpxmas等模块
  • PowerSploit中的Invoke-Portscan.ps1脚本,位于Recon目录下
  • 使用NishangPortScan模块,位于scan目录下,上传到主机上执行

3.1 获取Banner

扫描到端口后就要获取到其Banner信息,接着就可以在漏洞库里查找poc,这个可以找一下常见的端口的服务来得知

端口号

端口说明

攻击技巧

21/22/69

ftp/tftp:文件传输协议

允许匿名上传、下载、爆破、嗅探、溢出和后门

22

ssh:远程连接

爆破OpenSSH28个退格

23

telnet:远程连接

爆破嗅探、弱口令

25

smtp:邮件服务

邮件伪造

53

DNS:域名系统

DNS区域传输DNS劫持DNS缓存投毒DNS欺骗利用DNS隧道技术刺透防火墙

67/68

dhcp

劫持欺骗

80/443/8080

常见web服务端口

web攻击、爆破、对应服务器版本漏洞

110

pop3

爆破、嗅探

139

samba

爆破未授权访问远程代码执行

143

imap

爆破

161

snmp

爆破

389

ldap目录访问协议

注入攻击未授权访问,弱口令

512/513/514

linux rexec

直接使用rlogin爆破

873

rsync

未授权访问文件上传

1080

socket

爆破:进行内网渗透

1352

lotus Domino邮件服务

爆破:弱口令信息泄漏:源代码

1433

mssql

爆破:使用系统用户登录注入攻击SA弱口令

1521

oracle

爆破:TNS注入攻击反弹shell

2049

nfs

配置不当

2181

zookeeper

未授权访问

3306

mysql

爆破拒绝服务注入提权

3389

rdp

爆破Shift后门

3690

SVN服务

SVN泄露未授权访问

4848

glassfish

爆破:控制台弱口令认证绕过

5000

sybase/DB2

爆破注入

5432

postgresql

缓冲区溢出注入攻击爆破:弱口令

5632

pcanywhere

拒绝服务代码执行,抓取密码

5900

vnc

爆破:弱口令认证绕过

6379

redis

未授权访问爆破:弱口令

7001/7002

weblogic

Java反序列化控制台弱口令控制台部署webshell

8069

zabbix

远程命令执行SQL注入

8080/8089

JBoss/Resin/Jetty/Jenkins

反序列化、控制台弱口令

9090

websphere控制台

爆破:控制台弱口令Java反序列

9200/9300

elasticsearch

远程代码执行

10000

webmin控制面板

弱口令

11211

memcacache

未授权访问

27017/27018

mongodb

爆破未授权访问

50000

SAP Management Console

远程执行

4 获取域内的基础信息

  • 查询域:net view /domain
  • 查询域内所有计算机:net view /domain:域名
  • 查询域内所有用户组:net group /domain
  • 查看所有域成员计算机列表:net group "domain computers" /domain
  • 获取域密码信息:net accounts /domain
  • 获取域信任信息:nltest /domain_trusts

    ##
    寻找域控
  • 查看域控机器名:nltest /DCLIST:域名
  • 查看域控主机名:nslookup -type=SRV \_ladp._tcp
  • 查看域控制器组:net group "Domain Controllers" /domainnetdom query pdc


    在大型企业中,域控制器组中的用户会不止一个,这是为了保证主域控故障时可以切换到备用域控制器
    ##
    获取域内用户和管理员信息
  • 查询所有域用户列表:net user /domain
  • 获取域内用户的详细信息:wmic useraccount get /all,可以获取到用户名,描述信息,SID域名等
  • 查看存在的用户:dsquery user
  • 查询本地管理员组用户:net localgroup administrators
  • 查询域管理员用户组:net group "domain admins" /domain
  • 查询管理员用户组:net group "Enterprise Admins" /domain

    ##
    定位域管理员
    常规渠道有二个,日志与会话,日志是本地机器的管理员日志,可以用脚本或者内置应用wevtutil导出来看
    ###
    工具
    psloggedon.exe
    netview.exe
    PVEFindADUser.exepowersploitPowerView脚本,Empireuser_hunter模块等

5 查找域管理进程

5.1 本机检查

首先要将powershell的权限限制更改为RemoteSigned,这样就可以执行本地上的脚本

输入:Get-ExecutionPolicy,发现自己并不是RemoteSigned权限,输入:Set-ExecutionPolicy RemoteSigned,按Y确定即可,在本地虚拟机测试时还可以将脚本权限改为Unrestricter,这样可以执行来自网络与本地的任何脚本

此处要使用的脚本在PowerSploit/Recon中,将要用到的PowerView.ps1传入靶机,在powershell中打开该脚本目录并导入:Import-Module .PowerView.ps1就可以进行收集了

具体命令的相关用法在PowerSploit/Recon/READE.md

6 小结

针对内网渗透这方面自己是边学习内网安全攻防这本书边整理的,由于是初学者且没有在真实环境实战过,文内有错误还请师傅们提出,水平一般还望见谅

文章转载于https://xz.aliyun.com/t/7663,侵权则删除。

原文地址:https://www.cnblogs.com/sunny11/p/13845853.html