内网渗透初识—信息收集

2020-04-30 约 426 字 预计阅读 2 分钟

声明:本文 【内网渗透初识—信息收集】 由作者 nek0c 于 2020-04-30 09:27:05 首发 先知社区 曾经 浏览数 16 次

感谢 nek0c 的辛苦付出!

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

PS:文中提到的PowerSploit

本机信息

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

本机网络配置

  • ipconfig /all

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

    PS:在win10中,输入wmic /?会提示wmic已弃用,但在server2012R2,win7等版本中可以正常使用
    • 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_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
  • 查询远程连接服务:
    reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlset\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber

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

使用empire收集信息

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

权限

  • 查看当前权限:whoami
  • 获取域id:whoami /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="

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

扫描端口

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

获取Banner

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

端口号 端口说明 攻击技巧
21/22/69 ftp/tftp:文件传输协议 允许匿名上传、下载、爆破、嗅探、溢出和后门
22 ssh:远程连接 爆破OpenSSH;28个退格
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 远程执行

获取域内的基础信息

  • 查询域: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.exenetview.exePVEFindADUser.exe,powersploit的PowerView脚本,Empire的user_hunter模块等

查找域管理进程

本机检查

  • net group "Domain Admins" /domain
  • 列出本机的所有进程及进程用户:tasklist /v

    在以上进程中尽量查找域管理员进程或是与其相关的进程
    ### 查询域控的域用户会话

  • 查询域控制器列表:net group "Domain Controllers" /domain

  • 收集域管理员列表:net group "Domain admins" /domain
  • 收集所有活动域的会话列表:NetSess -h,使用的是NetSess.exe

    目前还没有任何会话,所以显示无
    ## 利用powershell收集域信息

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

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

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

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

小结

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

关键词:[‘渗透测试’, ‘渗透测试’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now