笔者很喜欢Xerosploit这个工具 奈何其并不支持MacOS 也就意味着日常使用都需要到虚拟机里面去运行 很是麻烦 仔细看了一下Xero的代码 主要集成bettercap和nmap这两个项目(都支持MacOS)其代码并不复杂 就算自己基于MacOS重写一个也不是什么难事 但是怕喷子们骂抄袭嘛 故决定直接移植算了(工程量并不亚于重写。)
Github下载代码后通过tree命令可以看到其代码架构如下:
├── LICENSE
├── Makefile
├── README.md
├── banner.py
├── debian
│ ├── changelog
│ ├── compat
│ ├── control
│ ├── copyright
│ ├── rules
│ └── source
├── install.py
├── run.sh
├── tools
│ ├── bettercap
│ ├── files
│ └── log
└── xerosploit.py
(为避免篇幅过长三级目录被笔者删除了)
核心文件其实就两个install.py
以及xerosploit.py
按照官方说明 需要依次执行:
git clone https://github.com/LionSec/xerosploit
cd xerosploit && sudo python install.py
sudo xerosploit
很明显 需要先修改安装文件install.py
install.py
由于代码篇幅并不长 笔者就直接贴上来了。
if not os.geteuid() == 0:
sys.exit("""\033[1;91m\n[!] Xerosploit installer must be run as root. ¯\_(ツ)_/¯\n\033[1;m""")
print(""" \033[1;36m
┌══════════════════════════════════════════════════════════════┐
█ █
█ Xerosploit Installer █
█ █
└══════════════════════════════════════════════════════════════┘ \033[1;m""")
def main():
print("\033[1;34m\n[++] Please choose your operating system.\033[1;m")
print("""
1) Ubuntu / Kali linux / Others
2) Parrot OS
""")
system0 = raw_input(">>> ")
if system0 == "1":
print("\033[1;34m\n[++] Installing Xerosploit ... \033[1;m")
install = os.system("apt-get update && apt-get install -y nmap hping3 build-essential python-pip ruby-dev git libpcap-dev libgmp3-dev && pip install tabulate terminaltables")
install1 = os.system("""cd tools/bettercap/ && gem build bettercap.* && sudo gem install xettercap-* && rm xettercap-* && cd ../../ && mkdir -p /opt/xerosploit && cp -R tools/ /opt/xerosploit/ && cp xerosploit.py /opt/xerosploit/xerosploit.py && cp banner.py /opt/xerosploit/banner.py && cp run.sh /usr/bin/xerosploit && chmod +x /usr/bin/xerosploit && tput setaf 34; echo "Xerosploit has been sucessfuly instaled. Execute 'xerosploit' in your terminal." """)
elif system0 == "2":
print("\033[1;34m\n[++] Installing Xerosploit ... \033[1;m")
bet_un = os.system("apt-get remove bettercap") # Remove bettercap to avoid some problems . Installed by default with apt-get .
bet_re_ins = os.system("gem install bettercap") # Reinstall bettercap with gem.
install = os.system("apt-get update && apt-get install -y nmap hping3 ruby-dev git libpcap-dev libgmp3-dev python-tabulate python-terminaltables")
install1 = os.system("""cd tools/bettercap/ && gem build bettercap.* && sudo gem install xettercap-* && rm xettercap-* && cd ../../ && mkdir -p /opt/xerosploit && cp -R tools/ /opt/xerosploit/ && cp xerosploit.py /opt/xerosploit/xerosploit.py && cp banner.py /opt/xerosploit/banner.py && cp run.sh /usr/bin/xerosploit && chmod +x /usr/bin/xerosploit && tput setaf 34; echo "Xerosploit has been sucessfuly instaled. Execute 'xerosploit' in your terminal." """)
else:
print("Please select the option 1 or 2")
main()
main()
结合注释可以看到Xerosploit之所以在安装时需要区分Parrot OS
和其他系统是因为Parrot OS
自带的bettercap
存在一定问题 故多了一步卸载bettercap
的过程 其他并无异。
通过apt-get
安装的工具依赖组件如下:
nmap
hping3
build-essential
ruby-dev
libpcap-dev
libgmp3-dev
tabulate
terminaltables
其中nmap可以通过ruby(MacOSy内置)的brew来安装 命令如下:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
brew install nmap
tabulate
和terminaltables
均为Python的模块 可通过pip安装
pip install tabulate terminaltables
需要注意的是由于Kali等系统上自带了driftnet
而MacOS上并没有 不过我们可以通过macports来安装
sudo port install driftnet
请自备macports 自行安装driftnet!!!
其他文档均为bttercap所需调用的组件 由于bttercap
本身支持MacOS 这些组件在编译
修改后的命令
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null && brew install nmap && pip install tabulate terminaltables
接下来的编译bttercap:
cd tools/bettercap/ &&
gem build bettercap.* &&
sudo gem install xettercap-* &&
rm xettercap-* &&
cd ../../ &&
mkdir -p /opt/xerosploit &&
cp -R tools/ /opt/xerosploit/ &&
cp xerosploit.py /opt/xerosploit/xerosploit.py &&
cp banner.py /opt/xerosploit/banner.py &&
cp run.sh /usr/bin/xerosploit &&
chmod +x /usr/bin/xerosploit &&
tput setaf 34; echo "Xerosploit has been sucessfuly instaled. Execute 'xerosploit' in your terminal.
这里面主要存在两个问题 第一是MacOS往/opt/目录里面写文件需要root文件 而kali等不需要 所以涉及到的命令都需要加sudo提升权限再执行; 第二是MacOS禁止用户向/usr/bin
目录里写文件 root权限也不行;解决方案:(此处是为了终端直接输入xerosploit即可运行程序 那么可以将run.sh文件复制到其他目录去 在通过终端配置文件索引到该目录即可)
修改后的命令:
cd tools/bettercap/ && gem build bettercap.* && sudo gem install xettercap-* && rm xettercap-* && cd ../../ && sudo mkdir -p /opt/xerosploit && sudo cp -R tools/ /opt/xerosploit/ && sudo cp xerosploit.py /opt/xerosploit/xerosploit.py && sudo cp banner.py /opt/xerosploit/banner.py && sudo mkdir /opt/xerosploit/bin && sudo cp run.sh /opt/xerosploit/bin && chmod +x /opt/xerosploit/bin && sudo mkdir /opt/xerosploit/tools && sudo cp -R tools/* /opt/xerosploit/tools/
这里需要手动将代码alias xerosploit='python /opt/xerosploit/xerosploit.py
添加到终端配置文件中
nano ~/.bash_profile
添加代码:`alias xerosploit='python /opt/xerosploit/xerosploit.py``
如果是iTerm2用户需编辑~/.zshrc文件(如笔者)
修改完成后程序即可正常安装。
xerosploit.py
环境问题修改完后发现程序运行不正常 很多信息无法显示
直接看到对应的代码(86-89)
table = [["IP Address","MAC Address","Gateway","Iface","Hostname"],
["","","","",""],
[n_ip,n_mac.upper(),gateway,up_interface,n_host]]
print (tabulate(table, stralign="center",tablefmt="fancy_grid",headers="firstrow"))
找到对应的变量的赋值点
n_name = os.popen('iwgetid -r').read() # Get wireless network name
n_mac = os.popen("ip addr | grep 'state UP' -A1 | tail -n1 | awk '{print $2}' | cut -f1 -d'/'").read() # Get network mac
n_ip = os.popen("hostname -I").read() # Local IP address
n_host = os.popen("hostname").read() # hostname
gateway = os.popen("ip route show | grep -i 'default via'| awk '{print $3 }'").read()
发现这些命令在MacOS上并不能运行:
修改:
内网ip(n_ip):
ifconfig|grep 'inet '|grep -v '127.0'|xargs|awk -F '[ :]' '{print $2}'
Mac地址(n_mac):
ifconfig en0|grep "ether"|xargs|awk -F '[ ]' '{print $2}'
网关(gateway):
netstat -nr| grep 'default' | awk '{print $2}'|xargs|awk -F '[\n]' '{print $1}'|xargs|awk -F '[ ]' '{print $1}'
当前WIFI的SSID(n_name):
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I |grep "SSID"|xargs|awk -F '[ ]' '{print $4}'
(MacOS只能通过自带的airport来操作wifi python无任何第三方库可获取到ssid)
修改后:
正常scan后出现如下情况:
定位到命令:
bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
作用是开启ipv4报文路由转发 然而MacOS并没有/proc/sys/net/ipv4/ip_forward
这个文件
另一条需要修改的命令
ip addr | grep 'state UP' -A1 | tail -n1 | awk '{print $2}' | cut -f1 -d'/'
作用是获取自己的mac地址
修改:
sysctl -w net.inet.ip.forwarding=1
(查看指令sudo sysctl -a | grep forward
)
获取自己的mac地址
ifconfig en0|grep "ether"|xargs|awk -F '[ ]' '{print $2}'
修改后:
大致上都是权限不够的给权限即可。
原版Xerosploit里对于国内醉鸡肋的功能就是yplay
(播放youtube的视频)了 故笔者将其修改为youkuPlay
了 插入链接可播放优酷的视频。
注入html文件:
https://github.com/TheKingOfDuck/xerosploit
安装前务必先自己手动安装安装 macports并通过
sudo port install driftnet
安装driftnet图片捕获工具