1、通过华为云沃土云创计划免费薅云服务器
打开链接:https://developer.huaweicloud.com/programs/dev-program.html
使能⽅向选择个⼈
在这个 计划权益中申请优惠券
免费购买成功
2、复现windows、linux权限维持技巧
windows权限维持:
隐藏⽂件:利⽤⽂件属性
⽂件右键属性,勾选隐藏,点击确定后,在这个⽂件夹⾥看不到刚刚的⽂件了
看不到post.php了
查看“组织-⽂件夹和搜索选项”显示即可
真正隐藏⽂件:使⽤Attrib +s +a +h +r
命令就是把原本的⽂件增加了系统⽂件属性、存档⽂件属性、只读⽂件属性和隐藏⽂件属性
这样就做到了真正的隐藏,不管你是否显示隐藏⽂件,在此⽂件夹内都看不⻅
破解隐藏⽂件:取消”隐藏受保护的操作系统⽂件“勾选,在勾选”隐藏⽂件和⽂件夹“下⾯的单选选择“显示隐藏的⽂件、⽂件夹和驱动器”。
attrib 命令如果不加参数,则会影响当前⽬录下全部⽂件
恢复⽂件:attrib -s -a -h -r
利⽤ADS隐藏⽂件内容:在服务器上echo⼀个数据流⽂件进去
这样⼦就⽣成了⼀个不可⻅的shell hidden.jpg,常规的⽂件管理器、type命令,dir命令、del命令发现都找不出hidden.jpg
进⼊⽂件所在⽬录,notepad index.php:hidden.jpg 或者 dir /r可查看文件内容
直接删除index.php,index.php:hidden.jpg也会被删除
⼀个正常⽂件⾥把这个ADS⽂件include进去,<?php include('index.php:hidden.jpg')?>
,这样⼦就可以正常解析⼀句话木马了
隐藏账号:
Windows隐藏系统⽤户操作,CMD命令⾏下,建⽴了⼀个⽤户名为test$,密码为111qqq!的简单隐藏账户,并且把该隐藏账户提升为管理员权限
CMD命令⾏使⽤"net user",看不到"test$"这个账号,但在控制⾯板和本地⽤户和组是可以显示此⽤户的
想要把该隐藏账户提升为管理员权限,可以进⾏账号克隆。
克隆账号的制作过程如下:“开始”→“运⾏”,输⼊“regedit”后回⻋,到“HKEY_LOCAL_MACHINE\SAM\SAM”,会发现⽆法展开该处所在的键值。这是因为系统默认对系统管理员给予"写⼊"和"读取控制"权限,没有给予修改权限,因此没有办法对"SAM"项下的键值进⾏查看和修改。单击右键权限,把名为“administrator”的⽤户赋予完全控制以及读取的权限,在后⾯打勾就⾏
刷新注册表
复制administrator的F值到test$账户
将test$相关的注册表内容导出
执⾏命令 net user test$ /del 删除test$,并双击桌面备份的注册表⽣成克隆账号
然后利⽤test$/111qqq!远程登录,发现仍然能登录成功!并且是administrator权限,为administrator桌⾯
检测和清理⽅法:
使⽤D盾_web查杀⼯具,使⽤克隆账号检测功能进⾏查看,可检测出隐藏、克隆账号
进程注⼊:
⽣成⼀个msf后⻔
通过后⻔投递,获得⽬标机器meterpreter的shell
查看⽬标机器的进程
migrate 6456 注⼊进程,目标用户看不到危险进程
粘滞键后⻔:修改sethc.exe的安全设置当前所有者为administrator
保证administrator对sethc.exe完全控制
粘滞键位置:c:\windows\system32\sethc.exe
move sethc.exe sethc1.exe
:将原本的sethc改名为sethc1
copy cmd.exe sethc.exe
:将cmd复制并重命名为sethc
连按五次shift键即可启动cmd,⽽且不需要登录也可以执⾏
Logon Scripts后⻔:
Logon Scripts是Windows登录脚本,当⽤户登录时触发,注册表位置:HKEY_CURRENT_USER\Environment
注销之后重新登陆服务器,即可上线
映像劫持:
恢复一下粘滞键
在此注册表位置添加项sethc.exe,添加debugger键的值为c:\windows\system32\cmd.exe
此时点击五次shift键会打开cmd
注册表⾃启动后⻔:
在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run添加键test1,值为后⻔程序路径
重新启动会⾃动运⾏后⻔程序,上线成功
计划任务后⻔:
schtasks命令设定计划⾃启动后⻔程序(每1分钟⾃动执⾏7764.exe)
chcp 437:修改编码
schtasks:查看计划任务
1分钟后收到会话
服务⾃启动后⻔:
将exe⽂件注册为服务
linux权限维持:
隐藏⽂件:
Linux 下创建⼀个隐藏⽂件:touch .1.txt,touch 命令可以创建⼀个⽂件,⽂件名前⾯加⼀个点就代表是隐藏⽂件
⼀般的Linux下的隐藏⽬录使⽤命令 ls -l 是查看不出来的,只能查看到⽂件及⽂件夹,查看Linux下的隐藏⽂件需要⽤到命令:ls -al
隐藏⽂件时间戳:
隐藏权限:
使⽤chattr命令为⽂件添加锁定属性无法删除,此权限⽤ls -l是查看不出来的,从⽽达到隐藏权限的⽬的
隐藏历史操作命令:
关闭操作历史记录set +o history
从历史记录中删除指定的命令history | grep "命令"
,history -d [num]
⼀句话添加⽤户和密码:
SUID Shell:
SSH免密登录:
在服务端上⽣成⼀对公私钥,然后把公钥安装到服务器上(~/.ssh/authorized_keys),保留私钥。当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配,如果匹配成功就可以登录了
进⼊/root/.ssh/⽂件夹查看内容,其中 id_rsa 为私钥, id_rsa.pub 为公钥
在服务器上安装公钥,即将 id_rsa.pub 的内容追加到 /root/.ssh/authorized_keys 内
vim /etc/ssh/sshd_config,开启密钥登录的认证⽅式
私钥提取出来保存到本地,可以利⽤此密钥直接进⾏登录
3、复习课件,掌握常见的windows、linux入侵排查思路和方法。
Window⼊侵排查:
检查系统账号安全:
1、查看服务器是否有弱⼝令,远程管理端⼝是否对公⽹开放。
检查⽅法:据实际情况咨询相关服务器管理员。
2、查看服务器是否存在可疑账号、新增账号。
检查⽅法:打开 cmd 窗⼝,输⼊ lusrmgr.msc 命令,查看是否有新增/可疑的账号,如有管理员群组的(Administrators)⾥的新增账户,如有,请⽴即禁⽤或删除掉。
3、查看服务器是否存在隐藏账号、克隆账号。
检查⽅法:
a、打开注册表 ,查看管理员对应键值。
b、使⽤D盾_web查杀⼯具,集成了对克隆账号检测的功能。
4、结合⽇志,查看管理员登录时间、⽤户名是否存在异常。
检查⽅法:
a、Win+R打开运⾏,输⼊“eventvwr.msc”,回⻋运⾏,打开“事件查看器”。
b、导出Windows⽇志--安全,利⽤Log Parser进⾏分析。
检查异常端⼝、进程:
1、检查端⼝连接情况,是否有远程连接、可疑连接。
检查⽅法:
a、netstat -ano 查看⽬前的⽹络连接,定位可疑的ESTABLISHED
b、根据netstat 定位出的pid,再通过tasklist命令进⾏进程定位 tasklist | findstr “PID”
c、使⽤TCPView
2、进程
检查⽅法:
a、开始--运⾏--输⼊msinfo32,依次点击“软件环境→正在运⾏任务”就可以查看到进程的详细信
息,⽐如进程路径、进程ID、⽂件创建⽇期、启动时间等。
b、打开D盾_web查杀⼯具,进程查看,关注没有签名信息的进程。
c、通过微软官⽅提供的 Process Explorer 等⼯具进⾏排查 。
d、查看可疑的进程及其⼦进程。可以通过观察以下内容:
没有签名验证信息的进程,没有描述信息的进程,进程的属主,进程的路径是否合法,CPU或内存资源占⽤⻓时间过⾼的进程
检查启动项、计划任务、服务:
1、检查服务器是否有异常的启动项。
检查⽅法:
a、登录服务器,单击【开始】>【所有程序】>【启动】,默认情况下此⽬录在是⼀个空⽬录,确认
是否有⾮业务程序在该⽬录下。
b、单击开始菜单 >【运⾏】,输⼊ msconfig,查看是否存在命名异常的启动项⽬,是则取消勾选
命名异常的启动项⽬,并到命令中显示的路径删除⽂件。
c、单击【开始】>【运⾏】,输⼊ 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、利⽤安全软件查看启动项、开机时间管理等。
e、组策略,运⾏gpedit.msc。
2、检查计划任务
检查⽅法:
a、单击【开始】>【设置】>【控制⾯板】>【任务计划】,查看计划任务属性,便可以发现⽊⻢⽂件的路径。
b、单击【开始】>【运⾏】;输⼊ cmd,然后输⼊at,检查计算机与⽹络上的其它计算机之间的会话或计划任务,如有,则确认是否为正常连接。
3、服务⾃启动
检查⽅法:单击【开始】>【运⾏】,输⼊services.msc,注意服务状态和启动类型,检查是否有异常服务。
检查系统相关信息:
1、查看系统版本以及补丁信息
检查⽅法:单击【开始】>【运⾏】,输⼊systeminfo,查看系统信息
2、查找可疑⽬录及⽂件
检查⽅法:
a、 查看⽤户⽬录,新建账号会在这个⽬录⽣成⼀个⽤户⽬录,查看是否有新建⽤户⽬录。
Window 2003 C:\Documents and Settings Window 2008R2 C:\Users
b、单击【开始】>【运⾏】,输⼊%UserProfile%\Recent,分析最近打开分析可疑⽂件
c、在服务器各个⽬录,可根据⽂件夹内⽂件列表时间进⾏排序,查找可疑⽂件。
d、回收站、浏览器下载⽬录、浏览器历史记录e、修改时间在创建时间之前的为可疑⽂件
3、得到发现WEBSHELL、远控⽊⻢的创建时间,如何找出同⼀时间范围内创建的⽂件?
a、 使⽤以下 PowerShell 脚本搜索指定⽬录及其⼦⽬录中,在某个时间范围内创建的所有⽂件。
⾃动化查杀:
病毒查杀
检查⽅法:下载安全软件,更新最新病毒库,进⾏全盘扫描。
webshell查杀
检查⽅法:选择具体站点路径进⾏webshell查杀,建议使⽤两款webshell查杀⼯具同时查杀,可相互补充规则库的不⾜。
linux入侵排查:
账号安全的基本使⽤:
1、⽤户信息⽂件 /etc/passwd
root:x:0:0:root:/root:/bin/bash
account:password:UID:GID:GECOS:directory:shell
⽤户名:密码:⽤户ID:组ID:⽤户说明:家⽬录:登陆之后的shell()⽆密码只允许本机登陆,远程不允许登陆
2、影⼦⽂件 /etc/shadow
root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
⽤户名:加密密码:最后⼀次修改时间:最⼩修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段
who 查看当前登录⽤户(tty 本地登陆 pts 远程登录)
w 查看系统信息,想知道某⼀时刻⽤户的⾏为
uptime 查看登陆多久、多少⽤户,负载状态
⼊侵排查
1)查询特权⽤户(uid为0)
[root@localhost ~]# awk -F: '$3==0{print $1}' /etc/passwd
2)查询可以远程登录的账号信息
[root@localhost ~]# awk '/$1|$6/{print $1}' /etc/shadow
3)除root账号外,其他账号是否存在sudo权限,如⾮管理需要,普通账号应删除sudo权限
[root@localhost ~]# more /etc/sudoers | grep -v "#|$" | grep "ALL=(ALL)"
4)禁⽤或删除多余及可疑的账号
usermod -L user 禁⽤账号,账号⽆法登录,/etc/shadow 第⼆栏为 ! 开头
userdel user 删除 user ⽤户
userdel -r user 将删除 user ⽤户,并且将 /home ⽬录下的 user ⽬录⼀并删除
历史命令的入侵排查:
进⼊⽤户⽬录下,导出历史命令cat .bash_history >> history.txt
检查异常⽹络连接:
使⽤ netstat ⽹络连接命令,分析可疑端⼝、IP、PID
netstat -antlp
查看 pid 所对应的进程⽂件路径:运⾏ ls -l /proc/$PID/exe 或 file /proc/$PID/exe($PID 为对应的 pid 号)
检查异常进程:
使⽤ ps 命令,分析进程:
ps 是⽤来显示系统中正在运⾏的进程信息的命令。
a 显示所有⽤户的进程(包括其他⽤户的进程)。
u 显示⽤户信息(例如,进程所属⽤户)。
x 显示所有进程,包括没有控制终端的进程(通常是守护进程)。
检查开机启动项:
查看运⾏级别命令:runlevel,运⾏级别3:完全的多⽤户状态(有NFS),登陆后进⼊控制台命令⾏模式
开机启动配置⽂件,需要设置开机启动的脚本时,只要将可执⾏脚本放在 /etc/init.d ⽬录下,然后在 /etc/rc.d/rc.d ⽬录下建⽴软链接即可
⼊侵排查启动项⽂件:
常⽤命令:systemctl 也是⽤于管理系统服务和启动项的命令
sudo systemctl enable <service_name> #启⽤服务(使服务在系统启动时⾃动启动)
sudo systemctl disable <service_name> # 禁⽤服务(使服务在系统启动时不⾃动启动)
sudo systemctl start <service_name> #启动服务(⼿动启动服务)
sudo systemctl stop <service_name> #停⽌服务(⼿动停⽌服务)
sudo systemctl list-unit-files --type=service #查看所有启⽤的服务
sudo systemctl status <service_name> #查看服务状态
检查定时任务:
利⽤ crontab 创建定时任务
crontab -l 列出某个⽤户定时任务的详细内容
crontab -r 删除每个⽤户cron任务(谨慎:删除所有的计划任务)
crontab -e 使⽤编辑器编辑当前的crontab⽂件
*/1 * * * * echo "hello world" >> /tmp/test.txt
#每分钟写⼊⽂件
⼊侵排查,重点关注以下⽬录中是否存在恶意脚本
/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包安装的服务
ps aux | grep crond 查看当前服务
检查异常⽂件:
1、查看敏感⽬录,如/tmp⽬录下的⽂件,同时注意隐藏⽂件夹,以“..”为名的⽂件夹具有隐藏属性。
2、排查Webshell、远控⽊⻢的创建时间。
检查系统⽇志:
⽇志默认存放位置:/var/log/
查看⽇志配置情况:more /etc/rsyslog.conf
4、复习webshell后门查杀方法
发现隐藏的WebShell后⻔:
⽂件对⽐⼯具
Beyond Compare
5、预习挖矿木马应急实战,相关虚拟机在云盘上
- 了解挖矿木马
定义:挖矿木马是一种恶意软件,它在未经授权的情况下利用受害者的计算资源(CPU、GPU)来挖掘加密货币。
影响:除了消耗大量的电力和硬件资源外,还可能导致系统性能下降、过热甚至硬件损坏。 - 预防措施
更新与补丁:确保所有系统和应用程序都是最新的,并及时应用安全补丁。
强化配置:禁用不必要的服务,关闭未使用的端口,设置强密码策略,使用多因素认证。
防火墙与入侵检测:部署防火墙规则以限制外部访问,使用入侵检测/防御系统(IDS/IPS)监控异常活动。
教育用户:提高员工的安全意识,教导他们识别钓鱼邮件和其他社会工程学攻击手段。 - 检测
监控性能:持续监控系统的CPU、内存和网络使用情况,留意任何不寻常的增长或峰值。
日志分析:定期检查系统日志和应用程序日志,寻找可疑的命令行活动或未知进程。
专用工具:使用专门的安全工具如反病毒软件、EDR(端点检测和响应)解决方案等来扫描和识别潜在的恶意软件。