taibeihacker
Moderator
0x01 前言
紅藍對抗的思想最早可追溯到我國現存最早的一部兵書《孙子兵法》 ,在孫子马云惹不起马云謀攻篇有這麼一句話:“知彼知己,百戰不殆;”,意為如果對敵我雙方的情況都能了解透徹,打多少次仗都不會失敗。在信息安全領域目前大家都有一個共識:“未知攻,焉知防”,攻防對抗本身是一個持續的過程,在具體的對抗中,對對手了解越多就會佔據主導地位。紅藍對抗的主要目的在於,提高公司安全成熟度及其檢測和響應攻擊的能力。 Red Teams attack, and Blue Teams defend, but the primary goal is shared between them: improve the security posture of the organization.0x02 准备工作
1 ) 組織結構圖2 ) 全網拓撲圖
3 ) 各系統邏輯結構圖
4 ) 各系統之間的調用關係
5 ) 數據流關係
6 ) 核心資產清單
7 ) 應急響應計劃
8 ) 業務連續性計劃
9 ) 災難恢復計劃
0x03 简单安全评估
1.端口扫描和漏洞检测
1.1主机发现(Ping探测)
# nmap -sn -PE IP地址或地址段1.2端口扫描
# nmap –open IP地址或地址段1.3服务版本检测
# nmap -sV IP地址或地址段1.4扫描多个端口
# nmap -p 80,443 IP地址或地址段1.5 UDP扫描
# nmap -sU -p 53 IP地址或地址段1.6 TCP/UDP扫描(-Pn 跳过主机发现)
# nmap -v -Pn -SU -ST -p U:53,111,137,T:21-25,80,139,8080 IP地址或地址段1.7 Nessus扫描
# nessus -q -x -T html 服務器IP 服務器端口管理員帳號密碼目標.txt 輸出報告.html1.8 OPENVAS扫描
# apt -y install pcregrep# wget https://goo.gl/TYbLwE
# chmod +x openvas-automate.sh ./openvas-automate.sh 目標IP
2. WINDOWS系统篇
2.1 网络发现
基本網絡發現:# C: net view /all
# C: net view 主機名
Ping探測:
# C: for /L %I in (1,1,254) do ping -w 30 -n 1 192.168.1.%I | find '回复' 輸出.txt
2.2 DHCP
啟用DHCP服務器日誌功能:# C: reg add HKLMSystemCurrentControlSetServicesDhcpServerParameters /v ActivityLogFlag /t REG_DWORD /d 1
默認日誌文件目錄:
C: %windir%System32Dhcp
2.3 DNS
啟用DNS服務器日誌功能:# C: DNSCmd DNS服務器名/config /logLevel0x8100F331
# 配置日誌文件目錄:
C: DNSCmd DNS服務器名/config /LogFilePath C:dns.log
# 配置日誌文件大小:
C: DNSCmd DNS服務器名/config /logfilemaxsize0xffffffff
2.4 哈希值
文件校驗和完整性驗證(FCIV):Ref:http://support2.microsoft.com/kb/841290
# 單個文件:
C: fciv.exe 文件名
# 計算C盤所有文件並把結果保存到文件中:
C: fciv.exe c: -r -sha1 -xml 結果.xml
# 列出所有hash值:
C: fciv.exe -list -sha1 -xml 結果.xml
# certutil PowerShell
# certutil -hashfile 文件名SHA1
# PS C: Get-FileHash 文件名| Format-List
# PS C: Get-FileHash -algorithm md5 文件名
2.5 NETBIOS
nbtstat 掃描# C: nbtstat -A 目標IP地址
NetBIOS緩存
# C: nbtstat -c
批量掃描
# C: for /L %I in (1,1,254) do nbtstat -An 192.168.1.%I
2.6 微软基线安全分析器(MBSA)
掃描單個IP# C: mbsacli.exe /target IP地址/n os+iis+sql+password
掃描IP地址段
# C: mbsacli.exe /r IP地址段/n os+iis+sql+password
3. LINUX系统篇
3.1 网络发现
查看開放的SMB共享# smbclient -L 目標主機名
Ping探測
# for ip in ip/dev/null; [ Misplaced ip UP' || : done
3.2 DHCP
DHCP日誌RHEL/CentOS
# cat /var/lib/dhcpd/dhcpd. leases
Debian/Ubuntu
# grep -Ei 'dhcp' /var/log/syslog.1
3.3 DNS
DNS日誌# rndc querylog tail -f /var/log/messages | grep named
3.4 哈希值
計算某目錄下所有可執行文件的HASH值# find /sbin -type f -exec md5sum {} md5sums.txt ;
# md5deep -rs /sbin md5sums.txt
3.5 NETBIOS
nbtstat 掃描# nbtscan 目標IP地址或IP地址段
舉例:nbtscan 192.168.1.2-100
4. 安全加固
4.1 WINDOWS系统篇
4.1.1 禁用/停止服务
# C: sc query# C: sc config '服務名' start=disabled
# C: sc stop '服務名'
# C: wmic service where name='服務名' call ChangeStartmode Disabled
4.1.2 防火墙管理
# 列出所有規則:# C: netsh advfirewall firewall show rule name=all
# 啟用或禁用防火牆:
C: netsh advfirewall set currentprofile state on
C: netsh advfirewall set currentprofile firewallpolicy blockinboundalways,allowoutbound
C: netsh advfirewall set publicprofile state on
C: netsh advfirewall set privateprofile state on
C: netsh advfirewall set domainprofile state on
C: netsh advfirewall set allprofile state on
C: netsh advfirewall set allprof ile state off
# 配置舉例:
netsh advfirewall firewall add rule name='開放TCP:80端口' dir=in action=allow protocol=TCP localport=80
netsh advfirewall firewall add rule name='開放TCP:443端口' dir=in action=allow protocol=TCP localport=443
netsh advfirewall firewall add rule name='屏蔽TCP:445端口' dir=in action=block protocol=TCP localport=445
netsh advfirewall firewall add rule name='允許MyApp' dir=in action=allow program='C:MyAppMyApp.exe' enable=yes
4.1.3 清除DNS缓存和Netios缓存
# C: ipconfig /flushdns# C: nbtstat -R
4.1.4 应用控制
# AppLocker配置# 導入Applocker模塊
PS C: import-module Applocker
# 查看system32目錄下所有exe文件的Applocker信息
PS C: Get-ApplockerFileinformation -Directory C:WindowsSystem32 -Recurse -FileType Exe
# 增加一條針對system32目錄下所有的exe文件的允許規則
PS C: Get-Childitem C:WindowsSystem32*,exe | Get-ApplockerFileinformation | New-ApplockerPolicy -RuleType Publisher, Hash -User Everyone -RuleNamePrefix System32
4.1.5 IPSEC
#使用預共享密鑰的方式新建一條IPSEC本地安全策略,應用到所有連接和協議C: netsh ipsec static add filter filterlist=MyIPsecFilter srcaddr=Any dstaddr=Any protocol=ANY
C: netsh ipsec static add filteraction name=MyIPsecAction action=negotiate
C: netsh ipsec static add policy name=MyIPsecPolicy assign=yes
C: netsh ipsec static add rule name=MyIPsecRule policy=MyIPsecPolicy filterlist=MyIPsecFilter filteraction=MyIPsecAction conntype=all activate=yes psk=密碼
#新建一條允許訪問外網TCP 80和443端口的IPSEC策略
C: netsh ipsec static add filteraction name=Allow action=permit
C: netsh ipsec static add filter filterlist=WebFilter srcaddr=Any dstaddr=Any protocol=TCP dstport=80
C: netsh ipsec static add filter filterlist=WebFilter srcaddr=Any dstaddr=Any protocol=TCP dstport=443
C: netsh ipsec static add rule name=WebAllow policy=MyIPsecPolicy filterlist=WebFilter filteraction=Allow conntype=all activate=yes psk=密碼
#查看和禁用某條IPSEC本地安全策略
C: netsh ipsec static show policy name=MyIPsecPolicy
C: netsh ipsec static set policy name=MyIPsecPolicy assign=no
# 新建一條IPSEC對應的防火牆規則,源地址和目的地址為any
C: netsh advfirewall consec add rule name='IPSEC' endpointl=any endpoint2=any action=requireinrequireout qmsecmethods=default
# 新建一條IPSEC對應的防火牆規則,所有出站請求必須提供預共享密鑰
C: netsh advfirewall firewall add rule name='IPSEC_Out' dir=out action=allow enable=yes profile=any localip=any remoteip=any protocol=any interfacetype=any security=authenticate
4.1.6 其他安全策略
# 禁用遠程桌面連接C: reg add 'HKLMSYSTEMCurrentControlSetControlTerminalServer' /f /v fDenyTSConnections /t REG_DWORD /d 1
# 只發送NTLMv2響應(防止“永恆之藍”漏洞攻擊)
C: reg add HKLMSYSTEMCurrentControlSetControlLsa /v lmcompatibilitylevel /t REG_DWORD /d 5 /f
# 禁用IPV6
C: reg add HKLMSYSTEMCurrentControlSetservicesTCPIP6Parameters /v DisabledComponents /t REG_DWORD /d 255 /f
# 禁用sticky鍵
C: reg add 'HKCUControlPanelAccessibilityStickyKeys' /v Flags /t REG_SZ /d 506 /f
# 禁用管理共享(Servers/Workstations)
C: reg add HKLMSYSTEMCurrentControlSetServicesLanmanServerParameters /f /v AutoShareServer /t REG_DWORD /d 0
C: reg add HKLMSYSTEMCurrentControlSetServicesLanmanServerParameters /f /v AutoShareWks /t REG_DWORD /d 0
# 禁用註冊表編輯器和CMD命令提示符
C: reg add HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem /v DisableRegistryTools /t REG_DWORD /d 1 /f
C: reg add HKCUSoftwarePoliciesMicrosoftWindowsSystem /v DisableCMD /t REG_DWORD /d 1 /f
# 啟用UAC
C: reg add HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem /v EnableLUA /t REG_DWORD /d 1 /f
# 啟用防火牆日誌
C: netsh firewall set logging droppedpackets=enable
C: netsh firewall set logging connections=enable
4.2 LINUX系统篇
4.2.1 服务管理
# 查看服務狀態service –status-all
ps -ef OR ps -aux
initctl list
systemctl list-unit-files
# 啟動,停止和禁用服務
# For Upstart services:
/etc/init.d/apache2 start | stop | status
service apache2 start | stop | status
update-rc.d apache2 disable
# For Systemd services:
systemctl start | stop | status ntp.service
systemctl disable sshd.service
4.2.2 防火墙管理
# iptables 常用操作:iptables-save filewall_rules.bak # 導出當前規則
iptables -vnL –line # 列出所有規則
iptables -S # 同上
iptables -P INPUT DROP # 默認策略,禁止所有連接
iptables -A INPUT -s 10.10.10.10 -j DROP # 禁止單個IP
iptables -A INPUT -s 10,10.10.0/24 -j DROP # 禁止一個網段
iptables -A INPUT -p tcp –dport ssh -s 10.10.10.10 -j DROP # 禁止某IP訪問本機SSH服務
iptables -A INPUT -p tcp –dport ssh -j DROP # 禁止訪問本機SSH服務
iptables -I INPUT 5 -m limit –limit 5/min -j LOG –log-prefix '
iptables denied: ' –log-level 7 # 啟用日誌
iptables -F # 清除所有已加載的工作
4.2.3 DNS缓存
# Unix/Linux系統沒有系統級別DNS緩存4.2.4 配置IPSEC
# 在兩台服務器之間建立IPSEC通道1.)添加防火牆規則允許IPSEC協議
iptables -A INPUT -p esp -j ACCEPT
iptables -A INPUT -p ah -j ACCEPT
iptables -A INPUT -p udp –dport 500 -j ACCEPT
iptables -A INPUT -p udp –dport 4500 -j ACCEPT
2.)安裝Racoon
apt -y install racoon
3.)編輯配置文件:/etc/ipsec-tools.conf
flush;
spdflush;
spdadd 主機A的IP地址主機B的IP地址any -P out ipsec
esp/transport//require;
spdadd 主機B的IP地址主機A的IP地址any -P in ipsec
esp/transport//require;
4.)編輯配置文件:/etc/racoon/racoon.conf
log notify;
path pre_shared_key '/etc/racoon/psk.txt';
path certificate '/etc/racoon/certs';
remote anonymous {
exchange_mode main,aggressive;proposal { encryption_algorithm aes_256; hash_algorithm sha256; authentication_method
pre_shared_key;
dh_group modp1024;
}
generate_policy off;
}
sainfo anonymous{
pfs_group 2;encryption_algorithm aes_256;authentication_algorithm hmac_sha256;compression_algorithm deflate;
}
5.)添加預共享密鑰
主機A:echo 主機B 123 /etc/racoon/psk.txt
主機B:echo 主機A 123 /etc/racoon/psk.txt
6.)重啟服務,檢查協商及配置策略
service setkey restart
setkey -D
setkey -DP
5. 检测(Visibility)
5.1 网络安全监控
5.1.1 数据包捕捉与分析
1.)TCPDUMPtcpdump -tttt -n -vv # 打印時戳、不進行名稱解析及verbose方式顯示tcpdump -nn -c 1000 | awk '{print $3}' | cut -d. -f1-4 | sort -n | uniq -c | sort -nr # 捕捉1000個數據包,找出Top talkers
tcpdump -w target.pcap -i any dst targetIP and port 80 # 在所有接口上捕捉目標IP為:targetIP且端口為80的數據包並寫入target.pcap文件
tcpdump host 10.0.0.1 host 10.0.0.2 # 捕捉兩個主機之間的數據包
tcpdump not net 10.10 not host 192.168.1.2 #檢視非10.10網段及非192.168.1.2主機的數據包
tcp