PentestBox渗透套件之私人化定制
**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"
设置好的示例图:
定制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里的第十行和十一行注释掉即可
不出意外就可以完美运行了,附图:
最重要的一点在更新完其他组件之后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
根据图中的选项来选择要更新的组件,切记不要选中第一个!!!,最后一个也尽量不要选容易出问题。
要更新哪个组件直接在命令行输入相对应的命令,比如要更新安卓组件那么就输入:
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整个路径)
- 编辑 customaliases 文件,添加以下代码并保存:
其中 msfupdate = cd / d“%pentestbox_ROOT% (d代表:pentestbox文件路径)
msfupdate = cd / d“%pentestbox_ROOT%\ bin \ metasploit-framework \” T ruby“%pentestbox_ROOT%\ bin \ metasploit-framework \ msfupdate” *
\3. 转到 **Windows Defender->排除 – >添加C:\ PentestBox **这是整个文件夹。
4.下载 **PostgreSQL **数据库:**http://www.enterprisedb.com/products-services-training/pgdownload **并创建一个名为 Create-新数据库>数据库。(名称:msf)
找到** F:\bin\metasploit-framework\config 的database.yml** 文件,更改以下代码并保存:
database: msf //新建的数据库名称
username: postgres //数据库用户
password: passwod //数据库用户的密码
使用以下代码链接数据库:
db_connect postgres:密码@localhost/数据库名称
db_status
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
同样复制到同样路径即可。
beef报错
以下都建立在更换ruby(2.3.3)已经换源安装bundler后…….
报错(1)
参考: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
cd到beef目录去执行一次bundle install
再执行beefproject可能会出现以下报错
参考: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即可
成果
ipscan报错
我在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
- 原文作者:码中春秋
- 原文链接:https://blog.taielab.com/2017-11-14/hacking-pentestBox-msf-update-diy.html
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。