**Pentest Box:**渗透测试盒子,是一款Windows平台下预配置的便携式开源渗透测试环境,而它也是著名黑客Kapustkiy常用的工具之一。这里集成的大都是Linux下的工具,Kali Linux上面的常用的很多工具这里面也都集成了。 它打包了所有的安全工具,并且可以在Windows系统中原生地运行,有效地降低了对虚拟机或者双启动环境的需求。 PentestBox官网:https://pentestbox.org/zh/

本次会将套件安装在U盘中,是为了最大化发挥PentestBox易携带的优点,即插即用,去依赖化;但是也有一些坑等着去填,下面的内容基本上都是填坑!

定制图标和界面

在U盘根目录下创建目录 pentestbox**,**将下载的 PentestBox-with-Metasploit-v2.2.exe 直接解压至pentestbox 目录;

接着在U盘根目录下autorun.inf 文件,ico.ico(u盘图标文件)文件可以使用PentestBox自带的ico就在icons目录,复制一个ico到根目录即可。各个文件内容如下:

autorun.info (自动加载U盘图标)

[autorun]
open=""
autoplay=true
ICON="ico.ico"

设置好的示例图:

mark

定制toolsmanager

初始时,键入’toolsmanager’命令,每次都会自检有没有更新,然后才进入安装的选择界面,安装较多工具时,比较繁琐,可以在自检过一次后,修改 /pentestbox/bin/scripts/toolsmanager.py 倒数第二行,注销这条语句:

#  updating_scripts()

然后,就可以方便的重复进入toolsmanager,快速多安装几个工具了。

定制python环境

使用PentestBox常遇到的一个问题就是:本机python 2.7.x环境和PentestBox内置python环境经常冲突,导包时可能既导入了本机Python包又导入了内置python包,导致一些程序运行出错,怎么避免这种错误呢?

很遗憾,还没找到解决办法,只找到一种缓解方法:同步两种python环境

1. 备份内置的 pentestbox/base/python/Lib 目录
2. 删除 pentestbox/base/python
3. 复制本机 python 到 pentestbox/base/python 目录
4. 用第一步备份的文件覆盖掉pentestbox/base/python/Lib目录

如果以后pentestbox 有新安装的工具依赖和包误安装到本机python环境,可以单独拷贝到pentestbox的python环境中。

ps: 环境混乱可能对本机使用pentestbox无影响,但是在其它机器上使用时会出错。

定制默认工具

所谓定制默认工具,其实是手动替换掉一些难更新的内置工具,比如nmap、wireshark、burpsuite。

定制很简单,就是 找到 pentestbox/bin 目录下的默认工具目录,先备份一下,再全部删除,安装/复制新版的 nmap、wireshark、burpsuite到各自目录,新的工具名和替换前的保持一致。

定制自定义命令

在** pentestbox/bin/customtools** 目录下,有一个 customaliases 文件,里面可以存放我们自定的命令。

在目录下创建个 Tools 目录,把自己的工具都放进去,依葫芦画瓢,写自定义的命令即可,修改后,要新建个窗口或重新打开pentestbox才能使用

基于可执行文件的工具:
charles="%pentestbox_ROOT%\bin\customtools\Tools\charles\Charles.exe"

基于Python的工具:
pydictor=python "%pentestbox_ROOT%\bin\customtools\Tools\pydictor\pydictor.py" $*

基于Ruby的工具:
tool=ruby "%pentestbox_ROOT%bincustomtoolstool.rb" $*

基于Java的工具:
tool=start javaw -jar "%pentestbox_ROOT%bincustomtoolstool.jar" $*
cknife=java -jar "%pentestbox_ROOT%\bin\customtools\Tools\cknife\Cknife.jar"

PentestBox v2.0中引入了一个新功能——Tools Manager,用户可以使用此功能安装/更新/卸载工具。一些并未预安装在PentestBox中,但又值得推荐了工具便可以在Tools Manager中进行安装,这也使得PentestBox更加模块化。

你也可以浏览以下网页来了解可以使用toolsmanager安装的工具列表及介绍:

https://modules.pentestbox.org/

想要了解所有PentestBox预安装工具的启动命令可以访问:

https://tools.pentestbox.org/#linux-utilities

定制默认命令

默认的一些命令存储在 pentestbox/config/aliases 文件中,可以自己修改,比如**:**

beefproject    修改成    beef
burpsuite      修改成    bp

定制exploit-database

git clone https://github.com/vulnersCom/getsploit
到pentestBox\bin\customtools\exploitationTools\目录下
 pip install getsploit
 修改customaliases
 添加下面代码保存
 getsploit=python %pentestbox_ROOT%\bin\customtools\exploitationTools\getsploit\getsploit\getsploit.py $*
 新开窗口输入下面代码搜索wp的漏洞
getsploit wordpress 4.7.0 

##使用参数
保存漏洞文件就加-m
本地化存储漏洞库就--update

Metasploit之更新错误解决

首先下载下面软件:

ruby(2.3.3)[32位]:https://dl.bintray.com/oneclick/rubyinstaller/ruby-2.3.3-i386-mingw32.7z

msf:git clone https://github.com/rapid7/metasploit-framework.git

ruby_devkit:http://dl.bintray.com/oneclick/rubyinstaller/DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe

WpdPack:https://www.winpcap.org/install/bin/WpcapSrc_4_1_3.zip

替换ruby,删除原C:\PentestBox\base\ruby 内的文件 替换文件

ruby_devkit 删除原文件

打开DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe 并解压到C:\PentestBox\base\ruby_devkit

替换msf,删掉原来的msf目录

git clone https://github.com/rapid7/metasploit-framework.git

接着执行ruby -v会看到:

ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]

挨个执行下列命令:

gem update --system
gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
如果还不行 就把https换成http
gem sources --add http://gems.ruby-china.org/ --remove https://rubygems.org/
gem sources -l         ###查看一下当前源      这一个足矣。
gem sources –u                更新源的缓存
安装bundle...
gem install bundler
gem install bundle
bundle config mirror.https://rubygems.org https://gems.ruby-china.org #设置为国内的源

首先cd到msf的目录去执行

bundle update
bundle install
[如果报错就执行这一步。没报错就略过]

这里需要解压WpdPack到c盘目录下

接着修改位于%Pentestbox%\base\ruby\lib\ruby\gems\2.3.0\gems\pcaprub-0.12.4\ext\pcaprub_c下的extconf.rb文件,在pcap_libdir 和have_library之间添加两行代码:

$CFLAGS = "-I#{pcap_includedir}"
$LDFLAGS = "-L#{pcap_libdir}"

然后执行gem install pcaprub -v '0.12.4'就没问题了

WpdPack默认在C盘这里的WpdPack路径可以修改。复制之前解压到C盘的WpdPack文件夹到PentestBox目录。
打开J:\pentestBox\base\ruby\lib\ruby\gems\2.3.0\gems\pcaprub-0.12.4\ext\pcaprub_c目录下的 extconf.rb修改
pcap_dir        = with_config("pcap-dir", "J:/pentestBox/base/WpdPack")
和
elsif /i386-mswin32/ =~ RUBY_PLATFORM || /x64-mswin32/ =~ RUBY_PLATFORM
  pcap_dir        = with_config("pcap-dir", "J:/pentestBox/base/WpdPack")
即可

继续执行 bundle install继续执行 bundle install          [时间有点长,过程,,,,慢慢等待]
[如果报错就执行这一步。没报错就略过]

安装完成后运行 msfconsole会出现bcrypt错误我们还需要执行命令:

gem uninstall bcrypt
gem uninstall bcrypt-ruby
gem install bcrypt --platform=ruby

打开msfconsole的时候可能会报几行错误 这时候我们只需要修改错误提示上的C:/PentestBox/base/rubyb/ruby/gems/2.3.0/gems/rbnacl-4.0.2b/rbnacl/sodiumersion.rb文件。将报错的行数注释掉即可。

将version.rb里的第十行和十一行注释掉即可

不出意外就可以完美运行了,附图:

mark

最重要的一点在更新完其他组件之后msf有可能运行不了报错,就需要重新到msf的目录下执行之前的几步命令:

##从Github拉取最新的msf的程序更新
cd到msf的目录下
git reset --hard
git pull
##再次安装依赖
bundle install
gem uninstall bcrypt
gem uninstall bcrypt-ruby
gem install bcrypt --platform=ruby

就可以解决再一次的bcrypt的报错并且更新到最新版的msf。这是个人定制化的时候发现的一个小BUG说给大家防止后面踩坑!

更新其他组件

在终端运行以下命令:

update

mark

根据图中的选项来选择要更新的组件,切记不要选中第一个!!!,最后一个也尽量不要选容易出问题。

要更新哪个组件直接在命令行输入相对应的命令,比如要更新安卓组件那么就输入:

update android

就会自动从github拉取最新的更新到本地来完成组件的更新。

更新wpscan数据库

使用wpscan -Update 更新漏洞库,报错

[!] Unable to get https://data.wpscan.org/local_vulnerable_files.xml.sha512 (Problem with the SSL CA cert (path? access rights?))

使用curl命令测试

curl https://data.wpscan.org/local_vulnerable_files.xml.sha512

提示

curl: (77) error setting certificate verify locations:
  CAfile: C:\PentestBox\base\curl\bin\ca-bundle.crt
  CApath: none

然后 原始的 base/curl/bin/ca-bundle.crt 文件拷贝到

C:\PentestBox\base\curl\bin\ca-bundle.crt

暂时解决,最后一步** 国外代理破墙**,否则可能被墙的莫名其妙 :(

问题一:metasploit连不上数据库怎么破????

1.首先找到配置路径:F:\bin\customtools (F代表:pentest box整个路径)

mark

  1. 编辑 customaliases 文件,添加以下代码并保存:

其中 msfupdate = cd / d“%pentestbox_ROOT% (d代表:pentestbox文件路径)

msfupdate = cd / d“%pentestbox_ROOT%\ bin \ metasploit-framework \” T ruby“%pentestbox_ROOT%\ bin \ metasploit-framework \ msfupdate” *

mark

\3. 转到 **Windows Defender->排除 – >添加C:\ PentestBox **这是整个文件夹。

4.下载 **PostgreSQL **数据库:**http://www.enterprisedb.com/products-services-training/pgdownload **并创建一个名为 Create-新数据库>数据库。(名称:msf)

mark

mark

mark

找到** F:\bin\metasploit-framework\config 的database.yml** 文件,更改以下代码并保存:

  database: msf       //新建的数据库名称
  username: postgres  //数据库用户
  password: passwod    //数据库用户的密码

mark

使用以下代码链接数据库:

db_connect postgres:密码@localhost/数据库名称
db_status

mark

ettercap无法运行,缺少packet.dll.wpcap.dll ?

packet.dll丢失修复方法:

1. 退出正在运行的所有程序。并将xapofx1_5.dll文件复制到系统目录下

Windows 95/98/Me系统,则复制到C:\WINdows\system32\ 目录下。

Windows NT/2000系统,则复制到C:\WINNT\system32\ 目录下。

Windows XP系统,则复制到C:\WINdows\system32\ 目录下。

Windows 7/8系统,则复制到C:\WINdows\system32\目录下。

2. 单击开始,然后单击运行。

3. 输入 regsvr32 xapofx1_5.dll,然后单击确定。

4. 当收到“DllRegisterServer in Rld.dll succeeded”即成功修复。

下载链接:http://www.33lc.com/soft/32448.html

2.接下来可能会出现wpcap.dll丢失

下载链接为:http://www.3987.com/xiazai/1/18/43559.html#down

同样复制到同样路径即可。

mark

beef报错

以下都建立在更换ruby(2.3.3)已经换源安装bundler后…….

报错(1)

mark

参考:http://blog.sina.com.cn/s/blog_54254a840101hny7.html

这里需要去github下载一个名为therubyracer_for_windows的依赖,由于作者已经删除了该项目,我在github上面找到别人fork的 therubyracer_for_windows:https://github.com/eakmotion/therubyracer_for_windows

这里将v8.dll、v8preparser.dll两个文件丢到ruby/bin/目录下,和ruby.exe同一目录

然后cd到你下载的那个therubyracer_for_windows目录去,找到therubyracer-0.11.0beta1-x86-mingw32.gem

mark

cd到beef目录去执行一次bundle install

mark

再执行beefproject可能会出现以下报错

mark

参考:https://www.ruby-forum.com/topic/216270

32位:https://www.sqlite.org/2018/sqlite-dll-win32-x86-3220000.zip

64位:https://www.sqlite.org/2018/sqlite-dll-win64-x64-3220000.zip

如果以上链接失效了,自己去官网下载最新版就行了………..

将sqlite3.dll放到/ruby/bin/目录下(和ruby.exe同一目录)就行了

报错(2) 参考:http://blog.csdn.net/u011534057/article/details/72576875 这里是在主机上线时候的编码报错

运行beefproject之前先执行一下chcp 65001即可

mark

成果

mark

ipscan报错

mark

我在win7 64运行报错是因为他文件夹给的是32bit的程序只需要去github下载64位即可

https://github.com/angryip/ipscan/releases/download/3.5.2/ipscan-win64-3.5.2.exe
改名覆盖原来的即可

sqlitebrowser更新

下载便携版
https://github.com/sqlitebrowser/sqlitebrowser/releases/download/v3.10.1/SQLiteDatabaseBrowserPortable_3.10.1_English.paf.exe
进入解压目录SQLiteDatabaseBrowserPortable\App
根据自己系统选择文件夹
SQLiteDatabaseBrowser64
进入文件夹复制所有文件,删除pentestbox原有文件夹
exe文件改名和原来一样即可

networkminer更新

https://www.netresec.com/?download=NetworkMiner
下载解压覆盖

关杀软、开代理

特别是安装带有Metasploit版本的pentestbox,需要关闭主机防护软件,关闭windows防火墙;

需要破墙代理,要不许多请求都会被墙,导致各种错误。

一些小TIPS

##把他pentestbox的Python源换掉
pip install pqi
命令行输入 pqi 回车
>>> pqi
Usage:
  pqi ls
  pqi use <name>
  pqi show
  pqi add <name> <url>
  pqi remove <name>
  pqi (-h | --help)
  pqi (-v | --version)
Options:
  -h --help        Show this screen.
  -v --version     Show version.
列举所有支持的pip源
>>> pqi ls
改变pip源
>>> pqi use <name>
例子,比如运行pqi use tuna即把当前pip源改为清华的pip源

显示当前pip源
>>> pqi show
添加新的pip源(如添加USTC源)
>>> pqi add ustc https://mirrors.ustc.edu.cn/pypi/web/simple
移除pip源(如官方PyPi源)
>>> pqi remove pypi

##toolsmanager安装所有的组件命令省得浪费时间复制,打开多个窗口同时安装
install clustered
install weevely
install dnsteal
install jexboss
install routersploit

install usbtracker
install exe2image

install cangibrina
install dnstwist
install masscan
install metagoofil
install cloudflare_enum
install gin
install gobuster
install knock
install shocker
install whatportis
install whois

install CeWL
install hashID
install oclhashcat-amd-2.01
install oclhashcat-nvidia-2.01

install spoofmac
install binwalk

install evilfoca
install evilgrade
install intercepter-ng
install mitmproxy
install netcat
install nighthawk

install loic

install dbpwaudit
install dnsteal
install routerhunter

install arachni
install NoSQLMap
install whatweb
install arachni_web
install BSQLinjector
install cansina
install hqlmap
install hsecscan
install imagejs
install joomlascan
install joomlavs
install LFiFreak
install wafw00f
install xssless
install xsssniper
install xxeinjector

###masscan vs2017编译masscan最新版需要修改的东西
masscan编译修改string_s.h
添加
#if defined(_MSC_VER) && (_MSC_VER == 1910)
/*Visual Studio 2017*/
# include <stdio.h>
# include <string.h>
# define strcasecmp     _stricmp
# define memcasecmp     _memicmp
# ifndef PRIu64
#  define PRIu64 "llu"
#  define PRId64 "lld"
#  define PRIx64 "llx"
# endif

#elif defined(_MSC_VER) && (_MSC_VER == 1900)
/*Visual Studio 2015*/
# include <stdio.h>
# include <string.h>
# define strcasecmp     _stricmp
# define memcasecmp     _memicmp
# ifndef PRIu64
#  define PRIu64 "llu"
#  define PRId64 "lld"
#  define PRIx64 "llx"
# endif

#elif defined(_MSC_VER) && (_MSC_VER == 1911)
/*Visual Studio 2017*/
# include <stdio.h>
# include <string.h>
# define strcasecmp     _stricmp
# define memcasecmp     _memicmp
# ifndef PRIu64
#  define PRIu64 "llu"
#  define PRId64 "lld"
#  define PRIx64 "llx"
# endif

#elif defined(_MSC_VER) && (_MSC_VER == 1912)
/*Visual Studio 2017*/
# include <stdio.h>
# include <string.h>
# define strcasecmp     _stricmp
# define memcasecmp     _memicmp
# ifndef PRIu64
#  define PRIu64 "llu"
#  define PRId64 "lld"
#  define PRIx64 "llx"
# endif

#elif defined(_MSC_VER) && (_MSC_VER == 1600)
/*Visual Studio 2010*/
# include <stdio.h>
# include <string.h>
# define strcasecmp     _stricmp
# define memcasecmp     _memicmp
# ifndef PRIu64
#  define PRIu64 "llu"
#  define PRId64 "lld"
#  define PRIx64 "llx"
# endif

慎用 update

像用update webapplication命令更新一些工具,但是更新大量工具的话,就容易使原来的工具或本身出错,特别是update all命令,千万别用,他会修改覆盖你之前自定义的所有设置!!!

总结优化参考以下来源:

https://landgrey.me/customized-awesome-pentestbox/

https://www.xsafe.org/course/1080.html

http://www.secist.com/archives/2335.html

http://www.secist.com/archives/2392.html

http://www.secist.com/archives/2477.html

http://life-time.me/2017/12/30/beef/

https://www.t00ls.net/viewthread.php?tid=40347&extra=&highlight=pentestbox&page=1

https://www.t00ls.net/viewthread.php?tid=44428&highlight=beef